From d90532a5952c08c4376167294ef7c316b8817f72 Mon Sep 17 00:00:00 2001 From: opencode Date: Mon, 10 Aug 2026 06:07:05 +0000 Subject: [PATCH 01/33] sync release versions for v1.18.16 --- bun.lock | 56 ++++++++++----------- packages/app/package.json | 2 +- packages/cli/package.json | 2 +- packages/codemode/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 +- 30 files changed, 57 insertions(+), 57 deletions(-) diff --git a/bun.lock b/bun.lock index 1e3a64257196..0cf32fd5fc15 100644 --- a/bun.lock +++ b/bun.lock @@ -29,7 +29,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@corvu/drawer": "catalog:", "@dnd-kit/abstract": "0.5.0", @@ -96,7 +96,7 @@ }, "packages/cli": { "name": "@opencode-ai/cli", - "version": "1.18.15", + "version": "1.18.16", "bin": { "lildax": "./bin/lildax.cjs", }, @@ -144,7 +144,7 @@ }, "packages/codemode": { "name": "@opencode-ai/codemode", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "acorn": "8.15.0", "effect": "catalog:", @@ -158,7 +158,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -194,7 +194,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -221,7 +221,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@ai-sdk/anthropic": "3.0.82", "@ai-sdk/openai": "3.0.48", @@ -243,7 +243,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -267,7 +267,7 @@ }, "packages/console/support": { "name": "@opencode-ai/console-support", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@opencode-ai/console-core": "workspace:*", @@ -287,7 +287,7 @@ }, "packages/core": { "name": "@opencode-ai/core", - "version": "1.18.15", + "version": "1.18.16", "bin": { "opencode": "./bin/opencode", }, @@ -381,7 +381,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@zip.js/zip.js": "2.7.62", "drizzle-orm": "catalog:", @@ -435,7 +435,7 @@ }, "packages/effect-drizzle-sqlite": { "name": "@opencode-ai/effect-drizzle-sqlite", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "drizzle-orm": "catalog:", "effect": "catalog:", @@ -449,7 +449,7 @@ }, "packages/effect-sqlite-node": { "name": "@opencode-ai/effect-sqlite-node", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "effect": "catalog:", }, @@ -461,7 +461,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@hono/standard-validator": "catalog:", "@opencode-ai/core": "workspace:*", @@ -493,7 +493,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -509,7 +509,7 @@ }, "packages/http-recorder": { "name": "@opencode-ai/http-recorder", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@effect/platform-node": "4.0.0-beta.83", "@effect/platform-node-shared": "4.0.0-beta.83", @@ -540,7 +540,7 @@ }, "packages/llm": { "name": "@opencode-ai/llm", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@opencode-ai/schema": "workspace:*", "@smithy/eventstream-codec": "4.2.14", @@ -559,7 +559,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.18.15", + "version": "1.18.16", "bin": { "opencode": "./bin/opencode", }, @@ -690,7 +690,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@ai-sdk/provider": "3.0.8", "@opencode-ai/sdk": "workspace:*", @@ -766,7 +766,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "cross-spawn": "catalog:", }, @@ -781,7 +781,7 @@ }, "packages/server": { "name": "@opencode-ai/server", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@opencode-ai/core": "workspace:*", "@opencode-ai/protocol": "workspace:*", @@ -796,7 +796,7 @@ }, "packages/session-ui": { "name": "@opencode-ai/session-ui", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/client": "file:../app/vendor/opencode-ai-client-1.17.13-v2.tgz", @@ -836,7 +836,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -849,7 +849,7 @@ }, "packages/stats/app": { "name": "@opencode-ai/stats-app", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@ibm/plex": "6.4.1", "@kobalte/core": "catalog:", @@ -883,7 +883,7 @@ }, "packages/stats/core": { "name": "@opencode-ai/stats-core", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@aws-sdk/client-athena": "3.933.0", "@planetscale/database": "1.19.0", @@ -902,7 +902,7 @@ }, "packages/stats/server": { "name": "@opencode-ai/stats-server", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@aws-sdk/client-firehose": "3.933.0", "@effect/platform-node": "catalog:", @@ -944,7 +944,7 @@ }, "packages/tui": { "name": "@opencode-ai/tui", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@opencode-ai/core": "workspace:*", "@opencode-ai/plugin": "workspace:*", @@ -971,7 +971,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.18.15", + "version": "1.18.16", "dependencies": { "@kobalte/core": "catalog:", "@pierre/diffs": "catalog:", @@ -1022,7 +1022,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.18.15", + "version": "1.18.16", "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 e2e97abe5c75..c378fe597ab8 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.18.15", + "version": "1.18.16", "description": "", "type": "module", "exports": { diff --git a/packages/cli/package.json b/packages/cli/package.json index b633236d1d6e..f4b6c6fae717 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.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "bin": { diff --git a/packages/codemode/package.json b/packages/codemode/package.json index efa6456ed133..e8e538d0809e 100644 --- a/packages/codemode/package.json +++ b/packages/codemode/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/codemode", - "version": "1.18.15", + "version": "1.18.16", "description": "Effect-native confined code execution over schema-described tools", "private": true, "type": "module", diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 59feda0c8c55..284755dc88e7 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 21dbdbf8b7c9..6313e418aaf3 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.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 210069d993ab..876888f763e0 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.18.15", + "version": "1.18.16", "$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 5a0941327dc7..a5f1308aa39b 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.18.15", + "version": "1.18.16", "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 1ad1d82e9df4..416a8c2c223b 100644 --- a/packages/console/support/package.json +++ b/packages/console/support/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-support", - "version": "1.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/core/package.json b/packages/core/package.json index 0aa257a8353b..f682e9e4e33d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.18.15", + "version": "1.18.16", "name": "@opencode-ai/core", "type": "module", "license": "MIT", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 47550938e3f9..8538d1a07ebd 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.18.15", + "version": "1.18.16", "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 b90a729d4989..7a7373dc2f3b 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.18.15", + "version": "1.18.16", "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 3904f5617448..176f81484799 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.18.15", + "version": "1.18.16", "name": "@opencode-ai/effect-sqlite-node", "type": "module", "license": "MIT", diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 0c4fb78e309f..3421349ad92d 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/function/package.json b/packages/function/package.json index 7c233d42f5c6..8671e13ecb3e 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.18.15", + "version": "1.18.16", "$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 d3aa66a54942..99750298ea97 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.18.15", + "version": "1.18.16", "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 8d51bec5b3b7..a034aab4ddef 100644 --- a/packages/llm/package.json +++ b/packages/llm/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.18.15", + "version": "1.18.16", "name": "@opencode-ai/llm", "type": "module", "license": "MIT", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 5db88bf2ef78..1719c4e8045e 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.18.15", + "version": "1.18.16", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 706121ee78b4..a5cc0affdf5c 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.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 5132c344bb0d..9a6dab7d2cd6 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.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 3899d3890bc6..12ac0846c905 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.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/session-ui/package.json b/packages/session-ui/package.json index 65a884f54373..854d3f04381d 100644 --- a/packages/session-ui/package.json +++ b/packages/session-ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/session-ui", - "version": "1.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/slack/package.json b/packages/slack/package.json index 2e7260f93fa9..333b2199f264 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/stats/app/package.json b/packages/stats/app/package.json index 5d1d57bac41f..e9abd10ad5b2 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.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/core/package.json b/packages/stats/core/package.json index e1caa58ae1bf..ffedc71d4292 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.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/server/package.json b/packages/stats/server/package.json index 86cfff56bb69..cb5a7f867995 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.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/tui/package.json b/packages/tui/package.json index 50ab4edfd203..b83e3f4cf25c 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.18.15", + "version": "1.18.16", "private": true, "type": "module", "license": "MIT", diff --git a/packages/ui/package.json b/packages/ui/package.json index 75a0a956c90b..f4025a8fa7af 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.18.15", + "version": "1.18.16", "type": "module", "license": "MIT", "repository": { diff --git a/packages/web/package.json b/packages/web/package.json index 280a52e656c4..64295118f6e2 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.18.15", + "version": "1.18.16", "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 8c4964b958dd..60e90b28d657 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.18.15", + "version": "1.18.16", "publisher": "sst-dev", "repository": { "type": "git", From 941e71dbbb94ea5b32226c2845585992dadb361f Mon Sep 17 00:00:00 2001 From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:14:17 +0800 Subject: [PATCH 02/33] fix(app): use current default model (#38603) --- .../app/src/context/global-sync/utils.test.ts | 5 +++++ packages/app/src/context/global-sync/utils.ts | 1 + packages/app/src/context/local.tsx | 7 +++---- .../app/src/hooks/provider-catalog.test.ts | 20 ++++++++++++++++++- packages/app/src/hooks/provider-catalog.ts | 10 ++++++++++ packages/app/src/hooks/use-providers.ts | 1 + .../composer/prompt-model-selection.ts | 7 +++---- packages/session-ui/src/context/data.tsx | 4 ++++ 8 files changed, 46 insertions(+), 9 deletions(-) diff --git a/packages/app/src/context/global-sync/utils.test.ts b/packages/app/src/context/global-sync/utils.test.ts index 69ca494992b0..5c62a8f6a07b 100644 --- a/packages/app/src/context/global-sync/utils.test.ts +++ b/packages/app/src/context/global-sync/utils.test.ts @@ -103,6 +103,7 @@ describe("normalizeProviderList", () => { ) expect(result.connected).toEqual(["openai"]) + expect(result.defaultModel).toEqual({ providerID: "openai", modelID: "gpt-5" }) expect(result.default).toEqual({ openai: "gpt-5" }) expect(result.all.get("openai")?.models["gpt-old"]).toBeUndefined() expect(result.all.get("openai")?.models["gpt-5"]).toMatchObject({ @@ -113,6 +114,10 @@ describe("normalizeProviderList", () => { variants: { high: {} }, }) }) + + test("preserves an empty current default", () => { + expect(normalizeProviderList([] as ProviderListOutput["data"], [], null).defaultModel).toBeNull() + }) }) describe("directoryKey", () => { diff --git a/packages/app/src/context/global-sync/utils.ts b/packages/app/src/context/global-sync/utils.ts index 59632e53c92e..1b2c2f4d2da4 100644 --- a/packages/app/src/context/global-sync/utils.ts +++ b/packages/app/src/context/global-sync/utils.ts @@ -139,6 +139,7 @@ export function normalizeProviderList( return { all, connected: providers.map((provider) => provider.id), + defaultModel: defaultModel ? { providerID: defaultModel.providerID, modelID: defaultModel.id } : null, default: Object.fromEntries( providers.flatMap((provider) => { const model = diff --git a/packages/app/src/context/local.tsx b/packages/app/src/context/local.tsx index 83db571385f2..b99ce2db9085 100644 --- a/packages/app/src/context/local.tsx +++ b/packages/app/src/context/local.tsx @@ -6,6 +6,7 @@ import { createStore } from "solid-js/store" import { useModels } from "@/context/models" import { useSettings } from "@/context/settings" import { useProviders } from "@/hooks/use-providers" +import { resolveDefaultModel } from "@/hooks/provider-catalog" import { Persist, persisted } from "@/utils/persist" import { hasCustomAgent, resolveAgent } from "./local-agent" import { cycleModelVariant, getConfiguredAgentVariant, resolveModelVariant } from "./model-variant" @@ -149,10 +150,8 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ }) const configuredModel = () => { - const configured = sync().data.config.model - if (!configured) return - const [providerID, modelID] = configured.split("/") - const model = { providerID, modelID } + const model = resolveDefaultModel(providers.defaultModel(), sync().data.config.model) + if (!model) return if (validModel(model)) return model } diff --git a/packages/app/src/hooks/provider-catalog.test.ts b/packages/app/src/hooks/provider-catalog.test.ts index 04fbe5ab66e1..99e3884ab883 100644 --- a/packages/app/src/hooks/provider-catalog.test.ts +++ b/packages/app/src/hooks/provider-catalog.test.ts @@ -1,6 +1,6 @@ import { expect, test } from "bun:test" import type { NormalizedProviderListResponse } from "@opencode-ai/session-ui/context" -import { selectProviderCatalog } from "./provider-catalog" +import { resolveDefaultModel, selectProviderCatalog } from "./provider-catalog" const catalog = (id: string): NormalizedProviderListResponse => ({ all: new Map([[id, { id, name: id, source: "api", env: [], options: {}, models: {} }]]), @@ -57,3 +57,21 @@ test("falls back to the global catalog for route consumers", () => { }), ).toBe(global) }) + +test("uses the current server default model", () => { + expect(resolveDefaultModel({ providerID: "openai", modelID: "gpt-5" }, "anthropic/claude")).toEqual({ + providerID: "openai", + modelID: "gpt-5", + }) +}) + +test("does not use legacy config when the current server has no default", () => { + expect(resolveDefaultModel(null, "anthropic/claude")).toBeUndefined() +}) + +test("uses config for legacy servers", () => { + expect(resolveDefaultModel(undefined, "anthropic/claude")).toEqual({ + providerID: "anthropic", + modelID: "claude", + }) +}) diff --git a/packages/app/src/hooks/provider-catalog.ts b/packages/app/src/hooks/provider-catalog.ts index 01b966eda634..d02b84c6334d 100644 --- a/packages/app/src/hooks/provider-catalog.ts +++ b/packages/app/src/hooks/provider-catalog.ts @@ -25,3 +25,13 @@ export function selectProviderCatalog(input: ProviderCatalogInput) { if (input.explicit) return emptyProviderCatalog return input.global } + +export function resolveDefaultModel( + current: NormalizedProviderListResponse["defaultModel"], + legacy: string | undefined, +) { + if (current !== undefined) return current ?? undefined + if (!legacy) return undefined + const [providerID, modelID] = legacy.split("/") + return { providerID, modelID } +} diff --git a/packages/app/src/hooks/use-providers.ts b/packages/app/src/hooks/use-providers.ts index 60ad01c86743..7a7774b62e95 100644 --- a/packages/app/src/hooks/use-providers.ts +++ b/packages/app/src/hooks/use-providers.ts @@ -41,6 +41,7 @@ export function useProviders(directory: Accessor) { return { all: () => providers().all, default: () => providers().default, + defaultModel: () => providers().defaultModel, popular: () => pipe( providers().all, diff --git a/packages/app/src/pages/session/composer/prompt-model-selection.ts b/packages/app/src/pages/session/composer/prompt-model-selection.ts index 3f5bb0f477e8..fe890c7f4afe 100644 --- a/packages/app/src/pages/session/composer/prompt-model-selection.ts +++ b/packages/app/src/pages/session/composer/prompt-model-selection.ts @@ -6,6 +6,7 @@ import { usePrompt } from "@/context/prompt" import { useSDK } from "@/context/sdk" import { useSync } from "@/context/sync" import { useProviders } from "@/hooks/use-providers" +import { resolveDefaultModel } from "@/hooks/provider-catalog" export function createPromptModelSelection(input: { agent: () => { model?: ModelKey; variant?: string } | undefined }) { const sdk = useSDK() @@ -21,10 +22,8 @@ export function createPromptModelSelection(input: { agent: () => { model?: Model } const configured = () => { - const value = sync().data.config.model - if (!value) return - const [providerID, modelID] = value.split("/") - const model = { providerID, modelID } + const model = resolveDefaultModel(providers.defaultModel(), sync().data.config.model) + if (!model) return if (valid(model)) return model } diff --git a/packages/session-ui/src/context/data.tsx b/packages/session-ui/src/context/data.tsx index 76eacb333621..6bede42bfda7 100644 --- a/packages/session-ui/src/context/data.tsx +++ b/packages/session-ui/src/context/data.tsx @@ -5,6 +5,10 @@ import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr" export type NormalizedProviderListResponse = { all: Map + defaultModel?: { + providerID: string + modelID: string + } | null default: { [key: string]: string } From 550d1ffd24718454925c4636e937878f0274de48 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 22:00:00 +1000 Subject: [PATCH 03/33] fix(i18n): use widely recognized developer terminology (#41532) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> --- packages/app/src/i18n/zh.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts index b6e89aa90d5c..b0ba0453479b 100644 --- a/packages/app/src/i18n/zh.ts +++ b/packages/app/src/i18n/zh.ts @@ -583,7 +583,7 @@ export const dict = { "dialog.usageExceeded.dontShowAgain": "不再显示", "context.breakdown.title": "上下文细分", - "context.breakdown.note": "输入词元的大致细分。“其他”包含工具定义和开销。", + "context.breakdown.note": "输入 token 的大致细分。“其他”包含工具定义和开销。", "context.breakdown.system": "系统", "context.breakdown.user": "用户", "context.breakdown.assistant": "助手", @@ -598,18 +598,18 @@ export const dict = { "context.stats.provider": "提供商", "context.stats.model": "模型", "context.stats.limit": "上下文限制", - "context.stats.totalTokens": "词元总数", + "context.stats.totalTokens": "总 token", "context.stats.usage": "使用率", - "context.stats.inputTokens": "输入词元", - "context.stats.outputTokens": "输出词元", - "context.stats.reasoningTokens": "推理词元", - "context.stats.cacheTokens": "缓存词元(读/写)", + "context.stats.inputTokens": "输入 token", + "context.stats.outputTokens": "输出 token", + "context.stats.reasoningTokens": "推理 token", + "context.stats.cacheTokens": "缓存 token(读/写)", "context.stats.userMessages": "用户消息", "context.stats.assistantMessages": "助手消息", "context.stats.totalCost": "总成本", "context.stats.sessionCreated": "创建时间", "context.stats.lastActivity": "最后活动", - "context.usage.tokens": "词元数", + "context.usage.tokens": "Token", "context.usage.usage": "使用率", "context.usage.cost": "成本", "context.usage.clickToView": "点击查看上下文", From b9f3b382fcfd82b57103b29b77572f112ce9e1e5 Mon Sep 17 00:00:00 2001 From: Matthias Reso <13337103+mreso@users.noreply.github.com> Date: Mon, 10 Aug 2026 11:28:04 -0700 Subject: [PATCH 04/33] fix(session): route all Muse family models to the Meta system prompt (#41581) --- packages/opencode/src/session/prompt/meta.txt | 4 ++-- packages/opencode/src/session/system.ts | 5 ++++- packages/opencode/test/session/system.test.ts | 18 +++++++++++++++--- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/session/prompt/meta.txt b/packages/opencode/src/session/prompt/meta.txt index ae43d7c48e88..d5aa008c03f8 100644 --- a/packages/opencode/src/session/prompt/meta.txt +++ b/packages/opencode/src/session/prompt/meta.txt @@ -1,4 +1,4 @@ -You are OpenCode, a coding agent that helps users with software engineering tasks. You are powered by Muse Spark, a large language model trained by Meta MSL. +You are OpenCode, a coding agent that helps users with software engineering tasks. You are powered by {{MODEL_NAME}}, a large language model trained by Meta MSL. Use the instructions below and the tools available to assist the user. @@ -61,5 +61,5 @@ Use the instructions below and the tools available to assist the user. - NEVER use comments as a place for long-winded chain-of-thought. Long thinking texts must be generated as private reasoning. Comments in code must be appropriately concise. # User Help & Feedback -- Users can give feedback or report issues at https://github.com/anomalyco/opencode and mention that they are using Meta Muse Spark. +- Users can give feedback or report issues at https://github.com/anomalyco/opencode and mention that they are using Meta {{MODEL_NAME}}. - When users ask directly about OpenCode (eg. "can OpenCode do...", "are you able to do...") or its features (eg. implement a hook, write a slash command, or install an MCP server), use the WebFetch tool to gather information to answer the question from the OpenCode docs at https://opencode.ai/docs. diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index b94e79426585..952b95b63489 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -25,7 +25,10 @@ import { MCP } from "@/mcp" import { PermissionV1 } from "@opencode-ai/core/v1/permission" export function provider(model: Provider.Model) { - if (model.api.id.includes("muse-spark")) return [PROMPT_META] + if (model.api.id.includes("muse")) { + const name = model.api.id.includes("muse-glimmer") ? "Muse Glimmer" : "Muse Spark" + return [PROMPT_META.replaceAll("{{MODEL_NAME}}", name)] + } if (model.api.id.includes("gpt-4") || model.api.id.includes("o1") || model.api.id.includes("o3")) return [PROMPT_BEAST] if (model.api.id.includes("gpt")) { diff --git a/packages/opencode/test/session/system.test.ts b/packages/opencode/test/session/system.test.ts index d9d47be3df94..c8e27eef4335 100644 --- a/packages/opencode/test/session/system.test.ts +++ b/packages/opencode/test/session/system.test.ts @@ -85,9 +85,21 @@ const it = testEffect( describe("session.system", () => { test("selects the Meta prompt for Muse Spark model IDs", () => { - expect(SystemPrompt.provider({ api: { id: "meta/muse-spark-preview" } } as Provider.Model)[0]).toContain( - "Meta Muse Spark", - ) + for (const id of ["meta/muse-spark-preview", "muse-spark-1.1", "muse-spark-1.2"]) { + const prompt = SystemPrompt.provider({ api: { id } } as Provider.Model)[0] + expect(prompt).toContain("powered by Muse Spark,") + expect(prompt).toContain("using Meta Muse Spark.") + expect(prompt).not.toContain("{{MODEL_NAME}}") + } + }) + + test("selects the Meta prompt for Muse Glimmer model IDs", () => { + for (const id of ["meta/muse-glimmer", "meta/muse-glimmer-30b", "muse-glimmer-30b"]) { + const prompt = SystemPrompt.provider({ api: { id } } as Provider.Model)[0] + expect(prompt).toContain("powered by Muse Glimmer,") + expect(prompt).toContain("using Meta Muse Glimmer.") + expect(prompt).not.toContain("{{MODEL_NAME}}") + } }) it.effect("skills output is sorted by name and stable across calls", () => From 3a90639cb57619a21e59f544b3e8d23ffed56f48 Mon Sep 17 00:00:00 2001 From: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Date: Tue, 11 Aug 2026 00:08:45 +0200 Subject: [PATCH 05/33] fix(ui): correct OC-2 weak icon color (#41504) --- packages/ui/src/theme/themes/oc-2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/theme/themes/oc-2.json b/packages/ui/src/theme/themes/oc-2.json index ef05ccfbffc2..461262533ab4 100644 --- a/packages/ui/src/theme/themes/oc-2.json +++ b/packages/ui/src/theme/themes/oc-2.json @@ -25,7 +25,7 @@ "border-weak-base": "#DBDBDB", "border-weaker-base": "#E8E8E8", "icon-base": "#8F8F8F", - "icon-weak-base": "C7C7C7", + "icon-weak-base": "#C7C7C7", "surface-raised-base": "#F3F3F3", "surface-raised-base-hover": "#EDEDED", "surface-base": "#F8F8F8", From 5d953482ab690e426bf29bb7d4a3536923a2f846 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 23:01:56 -0500 Subject: [PATCH 06/33] fix(provider): scope DeepSeek V4 Flash sampling defaults (#41620) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 侯秀凯 <9627034+hoooou@users.noreply.github.com> --- packages/opencode/src/provider/transform.ts | 6 ++++ .../opencode/test/provider/transform.test.ts | 31 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 9d98815cdad5..4a2738e875ee 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -551,6 +551,12 @@ export function topP(model: Provider.Model) { if (["minimax-m2", "kimi-k2.5", "kimi-k2p5", "kimi-k2-5"].some((s) => id.includes(s))) { return 0.95 } + if ( + ["deepseek-v4-flash-0731", "deepseek-v4-flash:0731"].some((name) => id.includes(name)) || + (id.includes("deepseek-v4-flash") && (model.providerID === "deepseek" || model.providerID.startsWith("opencode"))) + ) { + return 0.95 + } return undefined } diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 9897c543fb81..d1e437642e65 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -3272,6 +3272,37 @@ describe("ProviderTransform sampling defaults - Gemini", () => { }) }) +describe("ProviderTransform sampling defaults - DeepSeek", () => { + const model = (providerID: string, id: string) => + ({ + id: `${providerID}/${id}`, + providerID, + api: { id }, + }) as any + + test.each([ + ["deepseek", "deepseek-v4-flash"], + ["opencode", "deepseek-v4-flash"], + ["opencode-go", "deepseek-v4-flash"], + ["openrouter", "deepseek/deepseek-v4-flash-0731"], + ["ollama-cloud", "deepseek-v4-flash:0731"], + ])("defaults top_p for %s/%s", (providerID, id) => { + expect(ProviderTransform.temperature(model(providerID, id))).toBeUndefined() + expect(ProviderTransform.topP(model(providerID, id))).toBe(0.95) + expect(ProviderTransform.topK(model(providerID, id))).toBeUndefined() + }) + + test.each([ + ["openrouter", "deepseek/deepseek-v4-flash"], + ["vercel", "deepseek/deepseek-v4-flash"], + ["custom", "deepseek-ai/DeepSeek-V4-Flash"], + ])("preserves legacy defaults for %s/%s", (providerID, id) => { + expect(ProviderTransform.temperature(model(providerID, id))).toBeUndefined() + expect(ProviderTransform.topP(model(providerID, id))).toBeUndefined() + expect(ProviderTransform.topK(model(providerID, id))).toBeUndefined() + }) +}) + describe("ProviderTransform.reasoningVariants", () => { const model = (reasoning_options: ModelsDev.Model["reasoning_options"]) => ({ reasoning_options }) as ModelsDev.Model const target = (npm: string, id = "test-model") => From d62e50075ae6642399ee5b953179d212976ecdce Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Tue, 11 Aug 2026 14:33:42 +1000 Subject: [PATCH 07/33] chore: build beta from v2 (#41627) --- script/beta.ts | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/script/beta.ts b/script/beta.ts index d738c36ff017..21ab038486fe 100755 --- a/script/beta.ts +++ b/script/beta.ts @@ -86,7 +86,7 @@ async function build() { console.log(" Running final build smoke check...") try { - await $`./script/build.ts --single`.cwd("packages/opencode") + await $`./script/build.ts --single`.cwd("packages/cli") return true } catch (err) { console.log(`Build failed: ${err}`) @@ -200,7 +200,7 @@ async function smoke(prs: PR[], applied: number[]) { "The beta merge batch is complete, but the deterministic final smoke check failed.", `Merged PRs on HEAD:\n${done}`, "Run `bun typecheck` at the repo root.", - "Run `./script/build.ts --single` in `packages/opencode`.", + "Run `./script/build.ts --single` in `packages/cli`.", "Fix any merge-caused issues until both commands pass.", "Do not create a commit.", ].join("\n") @@ -216,25 +216,27 @@ async function smoke(prs: PR[], applied: number[]) { return commitSmokeChanges() } +async function checkout() { + console.log("Fetching latest v2 branch...") + await $`git fetch origin v2` + + console.log("Checking out beta branch...") + await $`git checkout -B beta origin/v2` + + console.log("Installing v2 dependencies...") + await $`bun install --frozen-lockfile` +} + async function main() { console.log("Fetching open PRs with beta label...") const stdout = - await $`gh pr list --state open --draft=false --label beta --json number,title,author,labels --limit 100`.text() + await $`gh pr list --state open --draft=false --base v2 --label beta --json number,title,author,labels --limit 100`.text() const prs: PR[] = JSON.parse(stdout).sort((a: PR, b: PR) => a.number - b.number) console.log(`Found ${prs.length} open PRs with beta label`) - if (prs.length === 0) { - console.log("No team PRs to merge") - return - } - - console.log("Fetching latest dev branch...") - await $`git fetch origin dev` - - console.log("Checking out beta branch...") - await $`git checkout -B beta origin/dev` + await checkout() const applied: number[] = [] const failed: FailedPR[] = [] @@ -262,7 +264,7 @@ async function main() { if (!(await fix(pr, files, prs, applied, idx))) { await cleanup() failed.push({ number: pr.number, title: pr.title, reason: "Merge conflicts" }) - await commentOnPR(pr.number, "Merge conflicts with dev branch") + await commentOnPR(pr.number, "Merge conflicts with v2 branch") continue } } else { @@ -318,7 +320,7 @@ async function main() { await $`git fetch origin beta` const localTree = (await $`git rev-parse beta^{tree}`.text()).trim() - const remoteTrees = (await $`git log origin/dev..origin/beta --format=%T`.text()).split("\n") + const remoteTrees = (await $`git log origin/v2..origin/beta --format=%T`.text()).split("\n") const matchIdx = remoteTrees.indexOf(localTree) if (matchIdx !== -1) { @@ -335,7 +337,7 @@ async function main() { await $`git fetch origin beta` const validatedTree = (await $`git rev-parse beta^{tree}`.text()).trim() - const remoteTreesAfterSmoke = (await $`git log origin/dev..origin/beta --format=%T`.text()).split("\n") + const remoteTreesAfterSmoke = (await $`git log origin/v2..origin/beta --format=%T`.text()).split("\n") const matchIdxAfterSmoke = remoteTreesAfterSmoke.indexOf(validatedTree) if (matchIdxAfterSmoke !== -1) { if (matchIdxAfterSmoke !== 0) { From d041eee55c4b669f583fcbe0eb73e78d53393ae8 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 04:58:15 +0000 Subject: [PATCH 08/33] chore: use DeepSeek for beta conflicts (#41669) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> --- script/beta.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/beta.ts b/script/beta.ts index 21ab038486fe..b90c399828c5 100755 --- a/script/beta.ts +++ b/script/beta.ts @@ -3,7 +3,7 @@ import { $ } from "bun" import fs from "fs/promises" -const model = "opencode/gpt-5.3-codex" +const model = "opencode/deepseek-v4-flash" interface PR { number: number From 9fdd4824d3c1e1c533a72359dd6c5f285ae9fc63 Mon Sep 17 00:00:00 2001 From: Jack Date: Tue, 11 Aug 2026 22:15:53 +0800 Subject: [PATCH 09/33] docs(zen): add Nemotron 3.5 Lightning (#41750) --- packages/web/src/content/docs/ar/zen.mdx | 4 ++++ packages/web/src/content/docs/bs/zen.mdx | 4 ++++ packages/web/src/content/docs/da/zen.mdx | 4 ++++ packages/web/src/content/docs/de/zen.mdx | 4 ++++ packages/web/src/content/docs/es/zen.mdx | 4 ++++ packages/web/src/content/docs/fr/zen.mdx | 4 ++++ packages/web/src/content/docs/it/zen.mdx | 4 ++++ packages/web/src/content/docs/ja/zen.mdx | 4 ++++ packages/web/src/content/docs/ko/zen.mdx | 4 ++++ packages/web/src/content/docs/nb/zen.mdx | 4 ++++ packages/web/src/content/docs/pl/zen.mdx | 4 ++++ packages/web/src/content/docs/pt-br/zen.mdx | 4 ++++ packages/web/src/content/docs/ru/zen.mdx | 4 ++++ packages/web/src/content/docs/th/zen.mdx | 4 ++++ packages/web/src/content/docs/tr/zen.mdx | 4 ++++ packages/web/src/content/docs/zen.mdx | 4 ++++ packages/web/src/content/docs/zh-cn/zen.mdx | 4 ++++ packages/web/src/content/docs/zh-tw/zen.mdx | 4 ++++ 18 files changed, 72 insertions(+) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index 8ea987295832..b603b5c8ddd0 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -115,6 +115,7 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | يستخدم [معرّف النموذج](/docs/config/#models) في إعدادات OpenCode الصيغة `opencode/`. على سبيل المثال، بالنسبة إلى GPT 5.5، ستستخدم `opencode/gpt-5.5` في إعداداتك. @@ -145,6 +146,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -222,6 +224,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - North Mini Code Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Nemotron 3 Ultra Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. +- Nemotron 3.5 Lightning Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Big Pickle نموذج خفي ومتاح مجانا على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. تواصل معنا إذا كانت لديك أي أسئلة. @@ -281,6 +284,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - North Mini Code Free: خلال فترته المجانية، قد يُحتفَظ بالبيانات المُجمَّعة وتُستخدم لتحسين النموذج. لا تُرسل بيانات شخصية أو سرية. راجع [شروط الاستخدام](https://cohere.com/terms-of-use) و[سياسة الخصوصية](https://cohere.com/privacy). - Nemotron 3 Ultra Free (نقاط نهاية NVIDIA المجانية): للاستخدام التجريبي فقط — لا ترسل بيانات شخصية أو سرية. يُسجَّل استخدامك لأغراض أمنية ولتحسين منتجات وخدمات NVIDIA. بيانات الجلسة المُسجَّلة لأغراض التحسين غير مرتبطة بهويتك أو بأي مُعرِّف دائم. لمزيد من المعلومات حول ممارسات معالجة البيانات لدينا، راجع [سياسة الخصوصية](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). بتفاعلك مع نقطة النهاية هذه، فإنك توافق على جمعنا لهذه المعلومات وتسجيلها واستخدامها وعلى [شروط خدمة النسخة التجريبية من واجهة NVIDIA API](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (نقاط نهاية NVIDIA المجانية): للاستخدام التجريبي فقط — لا ترسل بيانات شخصية أو سرية. يُسجَّل استخدامك لأغراض أمنية ولتحسين منتجات وخدمات NVIDIA. بيانات الجلسة المُسجَّلة لأغراض التحسين غير مرتبطة بهويتك أو بأي مُعرِّف دائم. لمزيد من المعلومات حول ممارسات معالجة البيانات لدينا، راجع [سياسة الخصوصية](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). بتفاعلك مع نقطة النهاية هذه، فإنك توافق على جمعنا لهذه المعلومات وتسجيلها واستخدامها وعلى [شروط خدمة النسخة التجريبية من واجهة NVIDIA API](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: يتم الاحتفاظ بالطلبات لمدة 30 يوما وفقا لـ [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: يتم الاحتفاظ بالطلبات لمدة 30 يوما وفقا لـ [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index de1cfb413b16..eb6514c74073 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -120,6 +120,7 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) u vašoj OpenCode konfiguraciji koristi format @@ -152,6 +153,7 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ Besplatni modeli: - LongCat-2.0 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - North Mini Code Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Nemotron 3 Ultra Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. +- Nemotron 3.5 Lightning Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Big Pickle je stealth model koji je besplatan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. Kontaktirajte nas ako imate bilo kakvih pitanja. @@ -293,6 +296,7 @@ i ne koriste vaše podatke za treniranje modela, uz sljedeće izuzetke: - LongCat-2.0 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - North Mini Code Free: Tokom besplatnog perioda, prikupljeni podaci mogu biti zadržani i korišteni za poboljšanje modela. Nemojte slati lične ili povjerljive podatke. Pogledajte naše [Uslove korištenja](https://cohere.com/terms-of-use) i [Politiku privatnosti](https://cohere.com/privacy). - Nemotron 3 Ultra Free (besplatni NVIDIA endpointi): Samo za probnu upotrebu — nemojte slati lične ili povjerljive podatke. Vaše korištenje se bilježi radi sigurnosti i poboljšanja NVIDIA proizvoda i usluga. Zabilježeni podaci sesije koji se koriste u svrhu poboljšanja nisu povezani s vašim identitetom niti bilo kojim trajnim identifikatorom. Za više informacija o našim praksama obrade podataka pogledajte našu [Politiku privatnosti](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interakcijom s ovim endpointom pristajete na naše prikupljanje, bilježenje i korištenje takvih informacija te na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (besplatni NVIDIA endpointi): Samo za probnu upotrebu — nemojte slati lične ili povjerljive podatke. Vaše korištenje se bilježi radi sigurnosti i poboljšanja NVIDIA proizvoda i usluga. Zabilježeni podaci sesije koji se koriste u svrhu poboljšanja nisu povezani s vašim identitetom niti bilo kojim trajnim identifikatorom. Za više informacija o našim praksama obrade podataka pogledajte našu [Politiku privatnosti](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interakcijom s ovim endpointom pristajete na naše prikupljanje, bilježenje i korištenje takvih informacija te na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Requests are retained for 30 days in accordance with [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index 35246103990a..c10bd5c452fd 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -120,6 +120,7 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) i din OpenCode-konfiguration @@ -152,6 +153,7 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**. | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ De gratis modeller: - LongCat-2.0 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - North Mini Code Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Nemotron 3 Ultra Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. +- Nemotron 3.5 Lightning Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Big Pickle er en stealth-model, som er gratis på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. Kontakt os, hvis du har spørgsmål. @@ -291,6 +294,7 @@ Alle vores modeller hostes i US. Vores udbydere følger en nul-opbevaringspoliti - LongCat-2.0 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - North Mini Code Free: I gratisperioden kan indsamlede data blive opbevaret og brugt til at forbedre modellen. Indsend ikke personlige eller fortrolige oplysninger. Se vores [Brugsvilkår](https://cohere.com/terms-of-use) og [Privatlivspolitik](https://cohere.com/privacy). - Nemotron 3 Ultra Free (gratis NVIDIA-endpoints): Kun til prøvebrug — indsend ikke personlige eller fortrolige data. Din brug logges af sikkerhedshensyn og for at forbedre NVIDIAs produkter og tjenester. De loggede sessionsdata, der bruges til forbedringsformål, er ikke knyttet til din identitet eller nogen vedvarende identifikator. For mere information om vores databehandlingspraksis, se vores [privatlivspolitik](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved at interagere med dette endpoint giver du samtykke til vores indsamling, registrering og brug af sådanne oplysninger samt [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (gratis NVIDIA-endpoints): Kun til prøvebrug — indsend ikke personlige eller fortrolige data. Din brug logges af sikkerhedshensyn og for at forbedre NVIDIAs produkter og tjenester. De loggede sessionsdata, der bruges til forbedringsformål, er ikke knyttet til din identitet eller nogen vedvarende identifikator. For mere information om vores databehandlingspraksis, se vores [privatlivspolitik](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved at interagere med dette endpoint giver du samtykke til vores indsamling, registrering og brug af sådanne oplysninger samt [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Anmodninger opbevares i 30 dage i overensstemmelse med [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Anmodninger opbevares i 30 dage i overensstemmelse med [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index 476c8cf1a697..27f073b34822 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -111,6 +111,7 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | Die [Model-ID](/docs/config/#models) in deiner OpenCode-Konfiguration verwendet das Format `opencode/`. Für GPT 5.5 würdest du zum Beispiel `opencode/gpt-5.5` in deiner Konfiguration verwenden. @@ -141,6 +142,7 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ Die kostenlosen Modelle: - LongCat-2.0 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - North Mini Code Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Nemotron 3 Ultra Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. +- Nemotron 3.5 Lightning Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Big Pickle ist ein Stealth-Modell, das für begrenzte Zeit kostenlos auf OpenCode verfügbar ist. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. Kontaktiere uns, wenn du Fragen hast. @@ -277,6 +280,7 @@ Alle unsere Modelle werden in den USA gehostet. Unsere Provider folgen einer Zer - LongCat-2.0 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - North Mini Code Free: Während des kostenlosen Zeitraums können erhobene Daten gespeichert und zur Verbesserung des Modells verwendet werden. Übermitteln Sie keine personenbezogenen oder vertraulichen Daten. Weitere Informationen finden Sie in unseren [Nutzungsbedingungen](https://cohere.com/terms-of-use) und unserer [Datenschutzerklärung](https://cohere.com/privacy). - Nemotron 3 Ultra Free (kostenlose NVIDIA-Endpunkte): Nur für Testzwecke — übermitteln Sie keine personenbezogenen oder vertraulichen Daten. Ihre Nutzung wird zu Sicherheitszwecken und zur Verbesserung der Produkte und Dienste von NVIDIA protokolliert. Die zu Verbesserungszwecken protokollierten Sitzungsdaten sind nicht mit Ihrer Identität oder einem dauerhaften Identifikator verknüpft. Weitere Informationen zu unseren Datenverarbeitungspraktiken finden Sie in unserer [Datenschutzrichtlinie](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Durch die Interaktion mit diesem Endpunkt stimmen Sie unserer Erhebung, Aufzeichnung und Nutzung solcher Informationen sowie den [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) zu. +- Nemotron 3.5 Lightning Free (kostenlose NVIDIA-Endpunkte): Nur für Testzwecke — übermitteln Sie keine personenbezogenen oder vertraulichen Daten. Ihre Nutzung wird zu Sicherheitszwecken und zur Verbesserung der Produkte und Dienste von NVIDIA protokolliert. Die zu Verbesserungszwecken protokollierten Sitzungsdaten sind nicht mit Ihrer Identität oder einem dauerhaften Identifikator verknüpft. Weitere Informationen zu unseren Datenverarbeitungspraktiken finden Sie in unserer [Datenschutzrichtlinie](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Durch die Interaktion mit diesem Endpunkt stimmen Sie unserer Erhebung, Aufzeichnung und Nutzung solcher Informationen sowie den [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) zu. - OpenAI APIs: Anfragen werden in Übereinstimmung mit [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 30 Tage lang gespeichert. - Anthropic APIs: Anfragen werden in Übereinstimmung mit [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) 30 Tage lang gespeichert. diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index 493491b5b8cd..789c71ea31c9 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -120,6 +120,7 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | El [identificador del modelo](/docs/config/#models) en tu configuración de OpenCode @@ -152,6 +153,7 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ Los modelos gratuitos: - LongCat-2.0 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - North Mini Code Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Nemotron 3 Ultra Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. +- Nemotron 3.5 Lightning Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Big Pickle es un modelo stealth que es gratuito en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. Contáctanos si tienes alguna pregunta. @@ -291,6 +294,7 @@ Todos nuestros modelos están alojados en US. Nuestros proveedores siguen una po - LongCat-2.0 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - North Mini Code Free: Durante el período gratuito, los datos recopilados podrán conservarse y utilizarse para mejorar el modelo. No envíes datos personales ni confidenciales. Consulta nuestros [Términos de uso](https://cohere.com/terms-of-use) y nuestra [Política de privacidad](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoints gratuitos de NVIDIA): Solo para uso de prueba — no envíes datos personales ni confidenciales. Tu uso se registra con fines de seguridad y para mejorar los productos y servicios de NVIDIA. Los datos de sesión registrados con fines de mejora no están vinculados a tu identidad ni a ningún identificador persistente. Para obtener más información sobre nuestras prácticas de procesamiento de datos, consulta nuestra [Política de privacidad](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Al interactuar con este endpoint, aceptas que recopilemos, registremos y usemos dicha información, así como los [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (endpoints gratuitos de NVIDIA): Solo para uso de prueba — no envíes datos personales ni confidenciales. Tu uso se registra con fines de seguridad y para mejorar los productos y servicios de NVIDIA. Los datos de sesión registrados con fines de mejora no están vinculados a tu identidad ni a ningún identificador persistente. Para obtener más información sobre nuestras prácticas de procesamiento de datos, consulta nuestra [Política de privacidad](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Al interactuar con este endpoint, aceptas que recopilemos, registremos y usemos dicha información, así como los [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Las solicitudes se conservan durante 30 días de acuerdo con [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Las solicitudes se conservan durante 30 días de acuerdo con [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index 510fc2ca028a..f473d56b15a6 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -111,6 +111,7 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | Le [model id](/docs/config/#models) dans votre configuration OpenCode utilise le format `opencode/`. Par exemple, pour GPT 5.5, vous utiliseriez `opencode/gpt-5.5` dans votre configuration. @@ -141,6 +142,7 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ Les modèles gratuits : - LongCat-2.0 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - North Mini Code Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Nemotron 3 Ultra Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. +- Nemotron 3.5 Lightning Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Big Pickle est un modèle stealth gratuit sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. Contactez-nous si vous avez des questions. @@ -277,6 +280,7 @@ Tous nos modèles sont hébergés aux US. Nos fournisseurs suivent une politique - LongCat-2.0 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - North Mini Code Free : Pendant la période de gratuité, les données collectées peuvent être conservées et utilisées pour améliorer le modèle. Ne transmettez aucune donnée personnelle ou confidentielle. Consultez nos [Conditions d’utilisation](https://cohere.com/terms-of-use) et notre [Politique de confidentialité](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoints NVIDIA gratuits) : Réservé à un usage d'essai — n'envoyez pas de données personnelles ou confidentielles. Votre utilisation est journalisée à des fins de sécurité et pour améliorer les produits et services de NVIDIA. Les données de session journalisées à des fins d'amélioration ne sont pas liées à votre identité ni à un quelconque identifiant persistant. Pour plus d'informations sur nos pratiques de traitement des données, consultez notre [Politique de confidentialité](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). En interagissant avec cet endpoint, vous consentez à notre collecte, à notre enregistrement et à notre utilisation de ces informations ainsi qu'aux [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (endpoints NVIDIA gratuits) : Réservé à un usage d'essai — n'envoyez pas de données personnelles ou confidentielles. Votre utilisation est journalisée à des fins de sécurité et pour améliorer les produits et services de NVIDIA. Les données de session journalisées à des fins d'amélioration ne sont pas liées à votre identité ni à un quelconque identifiant persistant. Pour plus d'informations sur nos pratiques de traitement des données, consultez notre [Politique de confidentialité](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). En interagissant avec cet endpoint, vous consentez à notre collecte, à notre enregistrement et à notre utilisation de ces informations ainsi qu'aux [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs : Les requêtes sont conservées pendant 30 jours conformément à [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs : Les requêtes sont conservées pendant 30 jours conformément à [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index 263a3c88cd4f..8b1f9cf00995 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -120,6 +120,7 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | Il [model id](/docs/config/#models) nella config di OpenCode @@ -152,6 +153,7 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**. | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ I modelli gratuiti: - LongCat-2.0 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - North Mini Code Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Nemotron 3 Ultra Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. +- Nemotron 3.5 Lightning Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Big Pickle è un modello stealth che è gratuito su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. Contattaci se hai domande. @@ -291,6 +294,7 @@ Tutti i nostri modelli sono ospitati negli US. I nostri provider seguono una pol - LongCat-2.0 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - North Mini Code Free: Durante il periodo gratuito, i dati raccolti possono essere conservati e utilizzati per migliorare il modello. Non inviare dati personali o riservati. Consulta i nostri [Termini di utilizzo](https://cohere.com/terms-of-use) e la nostra [Informativa sulla privacy](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoint NVIDIA gratuiti): solo per uso di prova — non inviare dati personali o riservati. Il tuo utilizzo viene registrato per finalità di sicurezza e per migliorare i prodotti e i servizi di NVIDIA. I dati di sessione registrati a fini di miglioramento non sono collegati alla tua identità né ad alcun identificatore persistente. Per maggiori informazioni sulle nostre pratiche di trattamento dei dati, consulta la nostra [Informativa sulla privacy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interagendo con questo endpoint, acconsenti alla nostra raccolta, registrazione e utilizzo di tali informazioni e ai [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (endpoint NVIDIA gratuiti): solo per uso di prova — non inviare dati personali o riservati. Il tuo utilizzo viene registrato per finalità di sicurezza e per migliorare i prodotti e i servizi di NVIDIA. I dati di sessione registrati a fini di miglioramento non sono collegati alla tua identità né ad alcun identificatore persistente. Per maggiori informazioni sulle nostre pratiche di trattamento dei dati, consulta la nostra [Informativa sulla privacy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interagendo con questo endpoint, acconsenti alla nostra raccolta, registrazione e utilizzo di tali informazioni e ai [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: le richieste vengono conservate per 30 giorni in conformità con [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: le richieste vengono conservate per 30 giorni in conformità con [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index d43a7a778ac7..2b99ed675e43 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -111,6 +111,7 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode 設定で使う [model id](/docs/config/#models) は `opencode/` 形式です。たとえば、GPT 5.5 では設定に `opencode/gpt-5.5` を使用します。 @@ -141,6 +142,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - North Mini Code Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Nemotron 3 Ultra Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 +- Nemotron 3.5 Lightning Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Big Pickle はステルスモデルで、期間限定で OpenCode で無料提供されています。チームはこの期間中にフィードバックを集め、モデルを改善しています。 ご不明な点があれば、お問い合わせください。 @@ -277,6 +280,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - North Mini Code Free: 無料提供期間中、収集されたデータは保持され、モデルの改善に使用される場合があります。個人情報や機密情報を送信しないでください。詳しくは、[利用規約](https://cohere.com/terms-of-use)および[プライバシーポリシー](https://cohere.com/privacy)をご覧ください。 - Nemotron 3 Ultra Free(NVIDIA の無料エンドポイント): 試用専用です — 個人情報や機密データは送信しないでください。お客様の利用は、セキュリティ目的および NVIDIA の製品とサービスの改善のために記録されます。改善目的で記録されたセッションデータは、お客様の身元や永続的な識別子とは関連付けられません。当社のデータ処理慣行の詳細については、[プライバシーポリシー](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)をご覧ください。このエンドポイントを利用することで、お客様はそのような情報の当社による収集、記録、利用、および [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) に同意したものとみなされます。 +- Nemotron 3.5 Lightning Free(NVIDIA の無料エンドポイント): 試用専用です — 個人情報や機密データは送信しないでください。お客様の利用は、セキュリティ目的および NVIDIA の製品とサービスの改善のために記録されます。改善目的で記録されたセッションデータは、お客様の身元や永続的な識別子とは関連付けられません。当社のデータ処理慣行の詳細については、[プライバシーポリシー](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)をご覧ください。このエンドポイントを利用することで、お客様はそのような情報の当社による収集、記録、利用、および [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) に同意したものとみなされます。 - OpenAI APIs: リクエストは [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) に従って 30 日間保持されます。 - Anthropic APIs: リクエストは [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) に従って 30 日間保持されます。 diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index bad1610bb562..51aa61f357aa 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -111,6 +111,7 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode config에서 사용하는 [모델 ID](/docs/config/#models)는 `opencode/` 형식입니다. 예를 들어 GPT 5.5를 사용하려면 config에서 `opencode/gpt-5.5`를 사용하면 됩니다. @@ -141,6 +142,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - North Mini Code Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Nemotron 3 Ultra Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. +- Nemotron 3.5 Lightning Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Big Pickle은 한정된 기간 동안 OpenCode에서 무료로 제공되는 stealth model입니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. 궁금한 점이 있으면 Contact us로 문의해 주세요. @@ -277,6 +280,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - North Mini Code Free: 무료 제공 기간 동안 수집된 데이터는 보관되며 모델 개선에 사용될 수 있습니다. 개인 정보나 기밀 정보를 제출하지 마세요. 자세한 내용은 [이용 약관](https://cohere.com/terms-of-use) 및 [개인정보 처리방침](https://cohere.com/privacy)을 참조하세요. - Nemotron 3 Ultra Free(NVIDIA 무료 엔드포인트): 평가판 전용이며 — 개인 정보나 기밀 데이터는 제출하지 마세요. 사용 내역은 보안 목적과 NVIDIA 제품 및 서비스 개선을 위해 기록됩니다. 개선 목적으로 기록된 세션 데이터는 사용자의 신원이나 영구 식별자와 연결되지 않습니다. 당사의 데이터 처리 관행에 대한 자세한 내용은 [개인정보처리방침](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)을 참조하세요. 이 엔드포인트와 상호 작용함으로써 사용자는 당사가 이러한 정보를 수집, 기록, 사용하는 것과 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)에 동의하게 됩니다. +- Nemotron 3.5 Lightning Free(NVIDIA 무료 엔드포인트): 평가판 전용이며 — 개인 정보나 기밀 데이터는 제출하지 마세요. 사용 내역은 보안 목적과 NVIDIA 제품 및 서비스 개선을 위해 기록됩니다. 개선 목적으로 기록된 세션 데이터는 사용자의 신원이나 영구 식별자와 연결되지 않습니다. 당사의 데이터 처리 관행에 대한 자세한 내용은 [개인정보처리방침](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)을 참조하세요. 이 엔드포인트와 상호 작용함으로써 사용자는 당사가 이러한 정보를 수집, 기록, 사용하는 것과 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)에 동의하게 됩니다. - OpenAI APIs: 요청은 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data)에 따라 30일 동안 보관됩니다. - Anthropic APIs: 요청은 [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage)에 따라 30일 동안 보관됩니다. diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index 3721ae45a256..181b2cd44545 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -120,6 +120,7 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [modell-id](/docs/config/#models) i OpenCode-konfigurasjonen din @@ -152,6 +153,7 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**. | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ Gratis-modellene: - LongCat-2.0 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - North Mini Code Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Nemotron 3 Ultra Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. +- Nemotron 3.5 Lightning Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Big Pickle er en stealth-modell som er gratis på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. Kontakt oss hvis du har spørsmål. @@ -291,6 +294,7 @@ Alle modellene våre hostes i US. Leverandørene våre følger en policy for zer - LongCat-2.0 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - North Mini Code Free: I gratisperioden kan innsamlede data bli oppbevart og brukt til å forbedre modellen. Ikke send inn personopplysninger eller konfidensielle opplysninger. Se våre [Vilkår for bruk](https://cohere.com/terms-of-use) og vår [Personvernerklæring](https://cohere.com/privacy). - Nemotron 3 Ultra Free (gratis NVIDIA-endepunkter): Kun for prøvebruk — ikke send inn personopplysninger eller konfidensielle data. Bruken din logges av sikkerhetshensyn og for å forbedre NVIDIAs produkter og tjenester. Sesjonsdataene som logges for forbedringsformål, er ikke knyttet til identiteten din eller noen vedvarende identifikator. For mer informasjon om vår databehandlingspraksis, se vår [personvernerklæring](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved å samhandle med dette endepunktet samtykker du til at vi samler inn, registrerer og bruker slik informasjon, samt til [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (gratis NVIDIA-endepunkter): Kun for prøvebruk — ikke send inn personopplysninger eller konfidensielle data. Bruken din logges av sikkerhetshensyn og for å forbedre NVIDIAs produkter og tjenester. Sesjonsdataene som logges for forbedringsformål, er ikke knyttet til identiteten din eller noen vedvarende identifikator. For mer informasjon om vår databehandlingspraksis, se vår [personvernerklæring](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved å samhandle med dette endepunktet samtykker du til at vi samler inn, registrerer og bruker slik informasjon, samt til [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Forespørsler lagres i 30 dager i samsvar med [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Forespørsler lagres i 30 dager i samsvar med [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index 330896804a1e..ae504ed0a7a5 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -120,6 +120,7 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [ID modelu](/docs/config/#models) w Twojej konfiguracji OpenCode używa formatu @@ -152,6 +153,7 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów* | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ Darmowe modele: - LongCat-2.0 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - North Mini Code Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Nemotron 3 Ultra Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. +- Nemotron 3.5 Lightning Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Big Pickle to stealth model, który jest darmowy w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. Skontaktuj się z nami, jeśli masz pytania. @@ -291,6 +294,7 @@ Wszystkie nasze modele są hostowane w US. Nasi dostawcy stosują politykę zero - LongCat-2.0 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - North Mini Code Free: W okresie bezpłatnego dostępu zebrane dane mogą być przechowywane i wykorzystywane do ulepszania modelu. Nie przesyłaj danych osobowych ani poufnych. Zapoznaj się z naszym [Regulaminem korzystania](https://cohere.com/terms-of-use) i [Polityką prywatności](https://cohere.com/privacy). - Nemotron 3 Ultra Free (darmowe endpointy NVIDIA): Tylko do użytku próbnego — nie przesyłaj danych osobowych ani poufnych. Twoje korzystanie jest rejestrowane w celach bezpieczeństwa oraz w celu ulepszania produktów i usług NVIDIA. Rejestrowane dane sesji wykorzystywane do celów ulepszania nie są powiązane z Twoją tożsamością ani żadnym trwałym identyfikatorem. Aby uzyskać więcej informacji o naszych praktykach przetwarzania danych, zapoznaj się z naszą [Polityką prywatności](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Korzystając z tego endpointu, wyrażasz zgodę na gromadzenie, rejestrowanie i wykorzystywanie przez nas takich informacji oraz na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (darmowe endpointy NVIDIA): Tylko do użytku próbnego — nie przesyłaj danych osobowych ani poufnych. Twoje korzystanie jest rejestrowane w celach bezpieczeństwa oraz w celu ulepszania produktów i usług NVIDIA. Rejestrowane dane sesji wykorzystywane do celów ulepszania nie są powiązane z Twoją tożsamością ani żadnym trwałym identyfikatorem. Aby uzyskać więcej informacji o naszych praktykach przetwarzania danych, zapoznaj się z naszą [Polityką prywatności](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Korzystając z tego endpointu, wyrażasz zgodę na gromadzenie, rejestrowanie i wykorzystywanie przez nas takich informacji oraz na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Żądania są przechowywane przez 30 dni zgodnie z [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Żądania są przechowywane przez 30 dni zgodnie z [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index 284589df3f64..4ed6f4f56f44 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -111,6 +111,7 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | O [model id](/docs/config/#models) na sua configuração do OpenCode usa o formato `opencode/`. Por exemplo, para GPT 5.5, você usaria `opencode/gpt-5.5` na sua configuração. @@ -141,6 +142,7 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**. | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ Os modelos gratuitos: - LongCat-2.0 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - North Mini Code Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Nemotron 3 Ultra Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. +- Nemotron 3.5 Lightning Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Big Pickle é um modelo stealth que está gratuito no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. Entre em contato se você tiver alguma dúvida. @@ -277,6 +280,7 @@ Todos os nossos modelos são hospedados nos US. Nossos provedores seguem uma pol - LongCat-2.0 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - North Mini Code Free: Durante o período gratuito, os dados coletados poderão ser retidos e usados para aprimorar o modelo. Não envie dados pessoais ou confidenciais. Consulte nossos [Termos de Uso](https://cohere.com/terms-of-use) e nossa [Política de Privacidade](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoints gratuitos da NVIDIA): Apenas para uso de avaliação — não envie dados pessoais ou confidenciais. Seu uso é registrado para fins de segurança e para melhorar os produtos e serviços da NVIDIA. Os dados de sessão registrados para fins de melhoria não estão vinculados à sua identidade nem a qualquer identificador persistente. Para mais informações sobre nossas práticas de processamento de dados, consulte nossa [Política de Privacidade](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ao interagir com este endpoint, você consente com a nossa coleta, registro e uso dessas informações e com os [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (endpoints gratuitos da NVIDIA): Apenas para uso de avaliação — não envie dados pessoais ou confidenciais. Seu uso é registrado para fins de segurança e para melhorar os produtos e serviços da NVIDIA. Os dados de sessão registrados para fins de melhoria não estão vinculados à sua identidade nem a qualquer identificador persistente. Para mais informações sobre nossas práticas de processamento de dados, consulte nossa [Política de Privacidade](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ao interagir com este endpoint, você consente com a nossa coleta, registro e uso dessas informações e com os [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: As solicitações são retidas por 30 dias de acordo com [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: As solicitações são retidas por 30 dias de acordo com [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index 3b668bf69732..5e67a346d205 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -120,6 +120,7 @@ OpenCode Zen работает как любой другой провайдер | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [идентификатор модели](/docs/config/#models) в вашей конфигурации OpenCode @@ -152,6 +153,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - North Mini Code Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Nemotron 3 Ultra Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. +- Nemotron 3.5 Lightning Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Big Pickle — это скрытая модель, которая доступна бесплатно в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. Свяжитесь с нами, если у вас есть вопросы. @@ -291,6 +294,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - North Mini Code Free: В течение бесплатного периода собранные данные могут храниться и использоваться для улучшения модели. Не отправляйте персональные или конфиденциальные данные. Ознакомьтесь с нашими [Условиями использования](https://cohere.com/terms-of-use) и [Политикой конфиденциальности](https://cohere.com/privacy). - Nemotron 3 Ultra Free (бесплатные эндпоинты NVIDIA): только для пробного использования — не отправляйте персональные или конфиденциальные данные. Использование логируется в целях безопасности и для улучшения продуктов и сервисов NVIDIA. Логируемые данные сессии, используемые в целях улучшения, не связаны с вашей личностью или каким-либо постоянным идентификатором. Подробнее о наших практиках обработки данных см. в нашей [Политике конфиденциальности](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Взаимодействуя с этим эндпоинтом, вы соглашаетесь на сбор, запись и использование нами такой информации, а также с [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (бесплатные эндпоинты NVIDIA): только для пробного использования — не отправляйте персональные или конфиденциальные данные. Использование логируется в целях безопасности и для улучшения продуктов и сервисов NVIDIA. Логируемые данные сессии, используемые в целях улучшения, не связаны с вашей личностью или каким-либо постоянным идентификатором. Подробнее о наших практиках обработки данных см. в нашей [Политике конфиденциальности](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Взаимодействуя с этим эндпоинтом, вы соглашаетесь на сбор, запись и использование нами такой информации, а также с [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: запросы хранятся 30 дней в соответствии с [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: запросы хранятся 30 дней в соответствии с [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index 626dceade3c2..a8137008e547 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -113,6 +113,7 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) ใน OpenCode config ของคุณใช้รูปแบบ `opencode/` ตัวอย่างเช่น สำหรับ GPT 5.5 คุณจะใช้ `opencode/gpt-5.5` ใน config ของคุณ @@ -143,6 +144,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -220,6 +222,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - North Mini Code Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Nemotron 3 Ultra Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล +- Nemotron 3.5 Lightning Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Big Pickle เป็น stealth model ที่ใช้งานฟรีบน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล ติดต่อเรา หากคุณมีคำถาม @@ -279,6 +282,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - North Mini Code Free: ในช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกเก็บรักษาและนำไปใช้เพื่อปรับปรุงโมเดล โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลที่เป็นความลับ ดู[ข้อกำหนดการใช้งาน](https://cohere.com/terms-of-use)และ[นโยบายความเป็นส่วนตัว](https://cohere.com/privacy)ของเรา - Nemotron 3 Ultra Free (endpoint ฟรีของ NVIDIA): ใช้สำหรับการทดลองเท่านั้น — โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลลับ การใช้งานของคุณจะถูกบันทึกเพื่อวัตถุประสงค์ด้านความปลอดภัยและเพื่อปรับปรุงผลิตภัณฑ์และบริการของ NVIDIA ข้อมูลเซสชันที่บันทึกไว้เพื่อวัตถุประสงค์ในการปรับปรุงจะไม่เชื่อมโยงกับตัวตนของคุณหรือตัวระบุถาวรใด ๆ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแนวปฏิบัติในการประมวลผลข้อมูลของเรา โปรดดู [นโยบายความเป็นส่วนตัว](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) ของเรา การโต้ตอบกับ endpoint นี้ถือว่าคุณยินยอมให้เราเก็บรวบรวม บันทึก และใช้ข้อมูลดังกล่าว รวมถึง [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) +- Nemotron 3.5 Lightning Free (endpoint ฟรีของ NVIDIA): ใช้สำหรับการทดลองเท่านั้น — โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลลับ การใช้งานของคุณจะถูกบันทึกเพื่อวัตถุประสงค์ด้านความปลอดภัยและเพื่อปรับปรุงผลิตภัณฑ์และบริการของ NVIDIA ข้อมูลเซสชันที่บันทึกไว้เพื่อวัตถุประสงค์ในการปรับปรุงจะไม่เชื่อมโยงกับตัวตนของคุณหรือตัวระบุถาวรใด ๆ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแนวปฏิบัติในการประมวลผลข้อมูลของเรา โปรดดู [นโยบายความเป็นส่วนตัว](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) ของเรา การโต้ตอบกับ endpoint นี้ถือว่าคุณยินยอมให้เราเก็บรวบรวม บันทึก และใช้ข้อมูลดังกล่าว รวมถึง [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) - OpenAI APIs: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index afb60ce307cc..f5884ec6070c 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -111,6 +111,7 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode yapılandırmanızdaki [model id](/docs/config/#models) `opencode/` biçimini kullanır. Örneğin, GPT 5.5 için yapılandırmanızda `opencode/gpt-5.5` kullanırsınız. @@ -141,6 +142,7 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ Kredi kartı ücretleri maliyet üzerinden yansıtılır (%4.4 + işlem başına - LongCat-2.0 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - North Mini Code Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Nemotron 3 Ultra Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. +- Nemotron 3.5 Lightning Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Big Pickle, sınırlı bir süre için OpenCode'da ücretsiz olan gizli bir modeldir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. Sorularınız varsa bizimle iletişime geçin. @@ -277,6 +280,7 @@ Tüm modellerimiz US'de barındırılıyor. Sağlayıcılarımız zero-retention - LongCat-2.0 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - North Mini Code Free: Ücretsiz kullanım süresi boyunca toplanan veriler saklanabilir ve modeli geliştirmek için kullanılabilir. Kişisel veya gizli veriler göndermeyin. [Kullanım Koşullarımıza](https://cohere.com/terms-of-use) ve [Gizlilik Politikamıza](https://cohere.com/privacy) bakın. - Nemotron 3 Ultra Free (ücretsiz NVIDIA uç noktaları): Yalnızca deneme amaçlıdır — kişisel veya gizli veri göndermeyin. Kullanımınız güvenlik amacıyla ve NVIDIA ürünlerini ve hizmetlerini geliştirmek için kaydedilir. Geliştirme amacıyla kaydedilen oturum verileri kimliğinizle veya herhangi bir kalıcı tanımlayıcıyla ilişkilendirilmez. Veri işleme uygulamalarımız hakkında daha fazla bilgi için [Gizlilik Politikamıza](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) bakın. Bu uç noktayla etkileşime geçerek, bu tür bilgileri toplamamıza, kaydetmemize ve kullanmamıza ve [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) koşullarına onay vermiş olursunuz. +- Nemotron 3.5 Lightning Free (ücretsiz NVIDIA uç noktaları): Yalnızca deneme amaçlıdır — kişisel veya gizli veri göndermeyin. Kullanımınız güvenlik amacıyla ve NVIDIA ürünlerini ve hizmetlerini geliştirmek için kaydedilir. Geliştirme amacıyla kaydedilen oturum verileri kimliğinizle veya herhangi bir kalıcı tanımlayıcıyla ilişkilendirilmez. Veri işleme uygulamalarımız hakkında daha fazla bilgi için [Gizlilik Politikamıza](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) bakın. Bu uç noktayla etkileşime geçerek, bu tür bilgileri toplamamıza, kaydetmemize ve kullanmamıza ve [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) koşullarına onay vermiş olursunuz. - OpenAI APIs: İstekler [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) uyarınca 30 gün boyunca saklanır. - Anthropic APIs: İstekler [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) uyarınca 30 gün boyunca saklanır. diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 7f5f21fe0b1c..685cc1c72f8a 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -120,6 +120,7 @@ You can also access our models through the following API endpoints. | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | The [model id](/docs/config/#models) in your OpenCode config @@ -152,6 +153,7 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -229,6 +231,7 @@ The free models: - LongCat-2.0 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - North Mini Code Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Nemotron 3 Ultra Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. +- Nemotron 3.5 Lightning Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Big Pickle is a stealth model that's free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. Contact us if you have any questions. @@ -291,6 +294,7 @@ All our models are hosted in the US. Our providers follow a zero-retention polic - LongCat-2.0 Free: During its free period, collected data may be used to improve the model. - North Mini Code Free: During its free period, collected data may be retained and used to improve the model. Do not submit personal or confidential data. See our [Terms of Use](https://cohere.com/terms-of-use) and [Privacy Policy](https://cohere.com/privacy). - Nemotron 3 Ultra Free (NVIDIA free endpoints): Trial use only — do not submit personal or confidential data. Your use is logged for security purposes and to improve NVIDIA products and services. The logged session data for improvement purposes is not linked to your identity or any persistent identifier. For more information about our data processing practices, see our [Privacy Policy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). By interacting with this endpoint, you consent to our collection, recording, and use of such information and the [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). +- Nemotron 3.5 Lightning Free (NVIDIA free endpoints): Trial use only — do not submit personal or confidential data. Your use is logged for security purposes and to improve NVIDIA products and services. The logged session data for improvement purposes is not linked to your identity or any persistent identifier. For more information about our data processing practices, see our [Privacy Policy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). By interacting with this endpoint, you consent to our collection, recording, and use of such information and the [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). - Anthropic APIs: Requests are retained for 30 days in accordance with [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage). diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index 306f3bdabeb8..26bc00e00f0e 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -111,6 +111,7 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | 在你的 OpenCode 配置中,[模型 ID](/docs/config/#models) 使用 `opencode/` 格式。例如,对于 GPT 5.5,你需要在配置中使用 `opencode/gpt-5.5`。 @@ -141,6 +142,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -218,6 +220,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - North Mini Code Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Nemotron 3 Ultra Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 +- Nemotron 3.5 Lightning Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Big Pickle 是一个隐身模型,目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 如果你有任何问题,请联系我们。 @@ -277,6 +280,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free:在免费期间,收集的数据可能会被用于改进模型。 - North Mini Code Free:免费期间,所收集的数据可能会被保留并用于改进模型。请勿提交个人或机密数据。请参阅我们的[使用条款](https://cohere.com/terms-of-use)和[隐私政策](https://cohere.com/privacy)。 - Nemotron 3 Ultra Free(NVIDIA 免费端点):仅供试用 — 请勿提交个人或机密数据。出于安全目的以及为改进 NVIDIA 产品和服务,系统会记录你的使用情况。出于改进目的而记录的会话数据不会与你的身份或任何持久标识符相关联。有关我们数据处理实践的更多信息,请参阅我们的[隐私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。与此端点进行交互,即表示你同意我们收集、记录和使用此类信息,并同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 +- Nemotron 3.5 Lightning Free(NVIDIA 免费端点):仅供试用 — 请勿提交个人或机密数据。出于安全目的以及为改进 NVIDIA 产品和服务,系统会记录你的使用情况。出于改进目的而记录的会话数据不会与你的身份或任何持久标识符相关联。有关我们数据处理实践的更多信息,请参阅我们的[隐私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。与此端点进行交互,即表示你同意我们收集、记录和使用此类信息,并同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 - OpenAI APIs:请求会根据 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 保留 30 天。 - Anthropic APIs:请求会根据 [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) 保留 30 天。 diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index d0396a1c228f..222f03fc0be1 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -115,6 +115,7 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode 設定中的 [模型 ID](/docs/config/#models) 會使用 `opencode/` @@ -146,6 +147,7 @@ https://opencode.ai/zen/v1/models | LongCat-2.0 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | +| Nemotron 3.5 Lightning Free | Free | Free | Free | - | | 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 | - | @@ -223,6 +225,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - North Mini Code Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Nemotron 3 Ultra Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 +- Nemotron 3.5 Lightning Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Big Pickle 是一個隱身模型,在 OpenCode 上限時免費提供。團隊正在利用這段時間收集回饋並改進模型。 如果你有任何問題,請聯絡我們。 @@ -283,6 +286,7 @@ https://opencode.ai/zen/v1/models - LongCat-2.0 Free: 在免費期間,收集到的資料可能會用於改進模型。 - North Mini Code Free:免費期間,所收集的資料可能會被保留並用於改進模型。請勿提交個人或機密資料。請參閱我們的[使用條款](https://cohere.com/terms-of-use)和[隱私權政策](https://cohere.com/privacy)。 - Nemotron 3 Ultra Free(NVIDIA 免費端點):僅供試用 — 請勿提交個人或機密資料。基於安全目的以及為了改進 NVIDIA 產品與服務,系統會記錄你的使用情況。基於改進目的而記錄的工作階段資料不會與你的身分或任何持久識別碼相關聯。有關我們資料處理實務的更多資訊,請參閱我們的[隱私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。與此端點進行互動,即表示你同意我們收集、記錄與使用此類資訊,並同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 +- Nemotron 3.5 Lightning Free(NVIDIA 免費端點):僅供試用 — 請勿提交個人或機密資料。基於安全目的以及為了改進 NVIDIA 產品與服務,系統會記錄你的使用情況。基於改進目的而記錄的工作階段資料不會與你的身分或任何持久識別碼相關聯。有關我們資料處理實務的更多資訊,請參閱我們的[隱私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。與此端點進行互動,即表示你同意我們收集、記錄與使用此類資訊,並同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 - OpenAI APIs: 請求會依據 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 保留 30 天。 - Anthropic APIs: 請求會依據 [Anthropic's Data Policies](https://docs.anthropic.com/en/docs/claude-code/data-usage) 保留 30 天。 From 0d927ba03f36d7f87e3cdb2b6c1f34c44913a099 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Tue, 11 Aug 2026 14:17:42 +0000 Subject: [PATCH 10/33] chore: generate --- packages/web/src/content/docs/ar/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/bs/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/da/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/de/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/es/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/fr/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/it/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/ja/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/ko/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/nb/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/pl/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/pt-br/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/ru/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/th/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/tr/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/zh-cn/zen.mdx | 128 ++++++++++---------- packages/web/src/content/docs/zh-tw/zen.mdx | 128 ++++++++++---------- 18 files changed, 1152 insertions(+), 1152 deletions(-) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index b603b5c8ddd0..a231afdb057c 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -53,70 +53,70 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن يمكنك أيضا الوصول إلى نماذجنا عبر نقاط نهاية API التالية. -| النموذج | معرّف النموذج | نقطة النهاية | حزمة AI SDK | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| النموذج | معرّف النموذج | نقطة النهاية | حزمة AI SDK | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | يستخدم [معرّف النموذج](/docs/config/#models) في إعدادات OpenCode الصيغة `opencode/`. على سبيل المثال، بالنسبة إلى GPT 5.5، ستستخدم `opencode/gpt-5.5` في إعداداتك. diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index eb6514c74073..ec241724fb7e 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -58,70 +58,70 @@ Naplata se vrši po zahtjevu i možete dodavati kredit na svoj račun. Našim modelima možete pristupiti i preko sljedećih API endpointa. -| Model | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) u vašoj OpenCode konfiguraciji koristi format `opencode/`. Na primjer, za GPT 5.5 u konfiguraciji biste diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index c10bd5c452fd..74168989dec9 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -58,70 +58,70 @@ Du bliver opkrævet pr. anmodning, og du kan tilføje kredit til din konto. Du kan også få adgang til vores modeller gennem følgende API-endpoints. -| Model | Model ID | Endpoint | AI SDK-pakke | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK-pakke | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) i din OpenCode-konfiguration bruger formatet `opencode/`. For eksempel ville du for GPT 5.5 diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index 27f073b34822..c1e8ee590b12 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -49,70 +49,70 @@ Dir wird pro Anfrage berechnet, und du kannst deinem Konto Guthaben hinzufügen. Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. -| Model | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | Die [Model-ID](/docs/config/#models) in deiner OpenCode-Konfiguration verwendet das Format `opencode/`. Für GPT 5.5 würdest du zum Beispiel `opencode/gpt-5.5` in deiner Konfiguration verwenden. diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index 789c71ea31c9..41d7cdd006bf 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -58,70 +58,70 @@ Se te cobra por solicitud y puedes agregar créditos a tu cuenta. También puedes acceder a nuestros modelos a través de los siguientes endpoints de API. -| Modelo | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Modelo | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | El [identificador del modelo](/docs/config/#models) en tu configuración de OpenCode usa el formato `opencode/`. Por ejemplo, para GPT 5.5, usarías diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index f473d56b15a6..e59ffba2b845 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -49,70 +49,70 @@ La facturation se fait à la requête et vous pouvez ajouter des crédits à vot Vous pouvez également accéder à nos modèles via les points de terminaison API suivants. -| Modèle | ID du modèle | Point de terminaison | Package AI SDK | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Modèle | ID du modèle | Point de terminaison | Package AI SDK | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | Le [model id](/docs/config/#models) dans votre configuration OpenCode utilise le format `opencode/`. Par exemple, pour GPT 5.5, vous utiliseriez `opencode/gpt-5.5` dans votre configuration. diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index 8b1f9cf00995..a49820b805b7 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -58,70 +58,70 @@ Ti viene addebitato ogni richiesta e puoi aggiungere credito al tuo account. Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. -| Modello | Model ID | Endpoint | Pacchetto AI SDK | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Modello | Model ID | Endpoint | Pacchetto AI SDK | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | Il [model id](/docs/config/#models) nella config di OpenCode usa il formato `opencode/`. Per esempio, per GPT 5.5, useresti diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index 2b99ed675e43..e8a79d09d79f 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -49,70 +49,70 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 以下の API エンドポイントを通じて、私たちのモデルにアクセスすることもできます。 -| Model | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode 設定で使う [model id](/docs/config/#models) は `opencode/` 形式です。たとえば、GPT 5.5 では設定に `opencode/gpt-5.5` を使用します。 diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index 51aa61f357aa..3d5af28b4590 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -49,70 +49,70 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. 다음 API 엔드포인트를 통해서도 모델에 접근할 수 있습니다. -| 모델 | 모델 ID | 엔드포인트 | AI SDK 패키지 | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 모델 | 모델 ID | 엔드포인트 | AI SDK 패키지 | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode config에서 사용하는 [모델 ID](/docs/config/#models)는 `opencode/` 형식입니다. 예를 들어 GPT 5.5를 사용하려면 config에서 `opencode/gpt-5.5`를 사용하면 됩니다. diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index 181b2cd44545..456179a94926 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -58,70 +58,70 @@ Du blir belastet per forespørsel, og du kan legge til kreditt på kontoen din. Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. -| Modell | Modell-ID | Endepunkt | AI SDK-pakke | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Modell | Modell-ID | Endepunkt | AI SDK-pakke | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [modell-id](/docs/config/#models) i OpenCode-konfigurasjonen din bruker formatet `opencode/`. For eksempel, for GPT 5.5, ville du diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index ae504ed0a7a5..df23b711a8a2 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -58,70 +58,70 @@ Płatność jest naliczana za każde żądanie i możesz doładować swoje konto Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. -| Model | ID modelu | Endpoint | Pakiet AI SDK | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | ID modelu | Endpoint | Pakiet AI SDK | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [ID modelu](/docs/config/#models) w Twojej konfiguracji OpenCode używa formatu `opencode/`. Na przykład dla GPT 5.5 użyjesz w konfiguracji diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index 4ed6f4f56f44..b27d34e03cc0 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -49,70 +49,70 @@ Você é cobrado por solicitação e pode adicionar créditos à sua conta. Você também pode acessar nossos modelos pelos seguintes endpoints de API. -| Modelo | ID do modelo | Endpoint | Pacote AI SDK | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Modelo | ID do modelo | Endpoint | Pacote AI SDK | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | O [model id](/docs/config/#models) na sua configuração do OpenCode usa o formato `opencode/`. Por exemplo, para GPT 5.5, você usaria `opencode/gpt-5.5` na sua configuração. diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index 5e67a346d205..c7fb14c75405 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -58,70 +58,70 @@ OpenCode Zen работает как любой другой провайдер Вы также можете получить доступ к нашим моделям через следующие конечные точки API. -| Модель | Идентификатор модели | Конечная точка | Пакет AI SDK | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Модель | Идентификатор модели | Конечная точка | Пакет AI SDK | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [идентификатор модели](/docs/config/#models) в вашей конфигурации OpenCode использует формат `opencode/`. Например, для GPT 5.5 вам нужно diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index a8137008e547..12e64ead4c44 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -51,70 +51,70 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน คุณยังสามารถเข้าถึงโมเดลของเราผ่าน API endpoints ต่อไปนี้ได้ -| Model | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | [model id](/docs/config/#models) ใน OpenCode config ของคุณใช้รูปแบบ `opencode/` ตัวอย่างเช่น สำหรับ GPT 5.5 คุณจะใช้ `opencode/gpt-5.5` ใน config ของคุณ diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index f5884ec6070c..1c167f2cf46b 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -49,70 +49,70 @@ OpenCode Zen, OpenCode'daki diğer sağlayıcılar gibi çalışır. Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsiniz. -| Model | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode yapılandırmanızdaki [model id](/docs/config/#models) `opencode/` biçimini kullanır. Örneğin, GPT 5.5 için yapılandırmanızda `opencode/gpt-5.5` kullanırsınız. diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 685cc1c72f8a..73b80796fc7d 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -58,70 +58,70 @@ You are charged per request and you can add credits to your account. You can also access our models through the following API endpoints. -| Model | Model ID | Endpoint | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Model | Model ID | Endpoint | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | The [model id](/docs/config/#models) in your OpenCode config uses the format `opencode/`. For example, for GPT 5.5, you would diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index 26bc00e00f0e..7984a8a3d2b0 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -49,70 +49,70 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 你也可以通过以下 API 端点访问我们的模型。 -| 模型 | 模型 ID | 端点 | AI SDK 包 | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 模型 | 模型 ID | 端点 | AI SDK 包 | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | 在你的 OpenCode 配置中,[模型 ID](/docs/config/#models) 使用 `opencode/` 格式。例如,对于 GPT 5.5,你需要在配置中使用 `opencode/gpt-5.5`。 diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index 222f03fc0be1..2eb9a2036dbb 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -53,70 +53,70 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 你也可以透過以下 API 端點存取我們的模型。 -| 模型 | Model ID | 端點 | AI SDK Package | -| ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------- | -| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | -| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | -| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | -| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| 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` | -| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| 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` | -| Kimi K3 | kimi-k3 | `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` | -| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 模型 | Model ID | 端點 | AI SDK Package | +| --------------------------- | --------------------------- | --------------------------------------------------------- | --------------------------- | +| GPT 5.6 Sol | gpt-5.6-sol | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Terra | gpt-5.6-terra | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.6 Luna | gpt-5.6-luna | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 | gpt-5.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.5 Pro | gpt-5.5-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 | gpt-5.4 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Pro | gpt-5.4-pro | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Mini | gpt-5.4-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.4 Nano | gpt-5.4-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.3 Codex Spark | gpt-5.3-codex-spark | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Fable 5 | claude-fable-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 5 | claude-opus-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.8 | claude-opus-4-8 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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 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 Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.6 Flash | gemini-3.6-flash | `https://opencode.ai/zen/v1/models/gemini-3.6-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | +| Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.7 Plus | qwen3.7-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Qwen3.6 Plus | qwen3.6-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| 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` | +| GLM 5.1 | glm-5.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| 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` | +| Kimi K3 | kimi-k3 | `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` | +| Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | OpenCode 設定中的 [模型 ID](/docs/config/#models) 會使用 `opencode/` 格式。例如,如果是 GPT 5.5,你會在設定中使用 `opencode/gpt-5.5`。 From 6afef2f881a18231a524c25dd0597151bdd56fb0 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 14:41:37 -0400 Subject: [PATCH 11/33] fix(console): update blocked account message (#41819) Co-authored-by: Dax Raad Co-authored-by: Dax --- packages/console/app/src/i18n/en.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/console/app/src/i18n/en.ts b/packages/console/app/src/i18n/en.ts index b3f4dc136079..d778788beb62 100644 --- a/packages/console/app/src/i18n/en.ts +++ b/packages/console/app/src/i18n/en.ts @@ -373,7 +373,8 @@ export const dict = { "zen.api.error.providerNotSupported": "Provider {{provider}} not supported", "zen.api.error.missingApiKey": "Missing API key.", "zen.api.error.invalidApiKey": "Invalid API key.", - "zen.api.error.requestBlockedByUpstreamProvider": "Request blocked by upstream provider.", + "zen.api.error.requestBlockedByUpstreamProvider": + "This account has found to be committing fraud or is in breach of terms of services and has been blocked. If you believe this is a mistake please send an email to help@anoma.ly.", "zen.api.error.subscriptionQuotaExceeded": "Subscription quota exceeded. Retry in {{retryIn}}.", "zen.api.error.goSubscriptionRollingLimitExceeded": "5-hour usage limit reached. Resets in {{retryIn}}. To continue using this model now, enable usage from your available balance: {{consoleGoUrl}}", From 36b205370d61b1817943358cf3abf9eaaec9289f Mon Sep 17 00:00:00 2001 From: Jack Date: Wed, 12 Aug 2026 02:42:06 +0800 Subject: [PATCH 12/33] docs(zen): add Hy3 Free (#41814) --- packages/web/src/content/docs/ar/zen.mdx | 4 ++++ packages/web/src/content/docs/bs/zen.mdx | 4 ++++ packages/web/src/content/docs/da/zen.mdx | 4 ++++ packages/web/src/content/docs/de/zen.mdx | 4 ++++ packages/web/src/content/docs/es/zen.mdx | 4 ++++ packages/web/src/content/docs/fr/zen.mdx | 4 ++++ packages/web/src/content/docs/it/zen.mdx | 4 ++++ packages/web/src/content/docs/ja/zen.mdx | 4 ++++ packages/web/src/content/docs/ko/zen.mdx | 4 ++++ packages/web/src/content/docs/nb/zen.mdx | 4 ++++ packages/web/src/content/docs/pl/zen.mdx | 4 ++++ packages/web/src/content/docs/pt-br/zen.mdx | 4 ++++ packages/web/src/content/docs/ru/zen.mdx | 4 ++++ packages/web/src/content/docs/th/zen.mdx | 4 ++++ packages/web/src/content/docs/tr/zen.mdx | 4 ++++ packages/web/src/content/docs/zen.mdx | 4 ++++ packages/web/src/content/docs/zh-cn/zen.mdx | 4 ++++ packages/web/src/content/docs/zh-tw/zen.mdx | 4 ++++ 18 files changed, 72 insertions(+) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index a231afdb057c..72b032935394 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -110,6 +110,7 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,6 +142,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -219,6 +221,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - MiMo-V2.5 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. +- Hy3 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Laguna S 2.1 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Ling-3.0-tiny Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - LongCat-2.0 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. @@ -279,6 +282,7 @@ https://opencode.ai/zen/v1/models - Big Pickle: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - DeepSeek V4 Flash Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - MiMo-V2.5 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. +- Hy3 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - Laguna S 2.1 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - Ling-3.0-tiny Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - LongCat-2.0 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index ec241724fb7e..da0a60b7d921 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -115,6 +115,7 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ Besplatni modeli: - DeepSeek V4 Flash Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - MiMo-V2.5 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. +- Hy3 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Laguna S 2.1 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Ling-3.0-tiny Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - LongCat-2.0 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. @@ -291,6 +294,7 @@ i ne koriste vaše podatke za treniranje modela, uz sljedeće izuzetke: - Big Pickle: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - DeepSeek V4 Flash Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - MiMo-V2.5 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. +- Hy3 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - Laguna S 2.1 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - Ling-3.0-tiny Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - LongCat-2.0 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index 74168989dec9..c7b8bdd2def9 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -115,6 +115,7 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**. | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ De gratis modeller: - DeepSeek V4 Flash Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - MiMo-V2.5 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. +- Hy3 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Laguna S 2.1 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Ling-3.0-tiny Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - LongCat-2.0 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. @@ -289,6 +292,7 @@ Alle vores modeller hostes i US. Vores udbydere følger en nul-opbevaringspoliti - Big Pickle: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - DeepSeek V4 Flash Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - MiMo-V2.5 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. +- Hy3 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - Laguna S 2.1 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - Ling-3.0-tiny Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - LongCat-2.0 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index c1e8ee590b12..972d802cf79a 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -106,6 +106,7 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ Die kostenlosen Modelle: - DeepSeek V4 Flash Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - MiMo-V2.5 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. +- Hy3 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Laguna S 2.1 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Ling-3.0-tiny Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - LongCat-2.0 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. @@ -275,6 +278,7 @@ Alle unsere Modelle werden in den USA gehostet. Unsere Provider folgen einer Zer - Big Pickle: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - DeepSeek V4 Flash Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - MiMo-V2.5 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. +- Hy3 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - Laguna S 2.1 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - Ling-3.0-tiny Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - LongCat-2.0 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index 41d7cdd006bf..d248c753ffb3 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -115,6 +115,7 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ Los modelos gratuitos: - DeepSeek V4 Flash Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - MiMo-V2.5 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. +- Hy3 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Laguna S 2.1 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Ling-3.0-tiny Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - LongCat-2.0 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. @@ -289,6 +292,7 @@ Todos nuestros modelos están alojados en US. Nuestros proveedores siguen una po - Big Pickle: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - DeepSeek V4 Flash Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - MiMo-V2.5 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. +- Hy3 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - Laguna S 2.1 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - Ling-3.0-tiny Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - LongCat-2.0 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index e59ffba2b845..428936850488 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -106,6 +106,7 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ Les modèles gratuits : - DeepSeek V4 Flash Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - MiMo-V2.5 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. +- Hy3 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Laguna S 2.1 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Ling-3.0-tiny Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - LongCat-2.0 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. @@ -275,6 +278,7 @@ Tous nos modèles sont hébergés aux US. Nos fournisseurs suivent une politique - Big Pickle : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - DeepSeek V4 Flash Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - MiMo-V2.5 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. +- Hy3 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - Laguna S 2.1 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - Ling-3.0-tiny Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - LongCat-2.0 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index a49820b805b7..b0c9abb53d78 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -115,6 +115,7 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**. | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ I modelli gratuiti: - DeepSeek V4 Flash Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - MiMo-V2.5 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. +- Hy3 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Laguna S 2.1 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Ling-3.0-tiny Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - LongCat-2.0 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. @@ -289,6 +292,7 @@ Tutti i nostri modelli sono ospitati negli US. I nostri provider seguono una pol - Big Pickle: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - DeepSeek V4 Flash Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - MiMo-V2.5 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. +- Hy3 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - Laguna S 2.1 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - Ling-3.0-tiny Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - LongCat-2.0 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index e8a79d09d79f..96eae30e7886 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -106,6 +106,7 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - MiMo-V2.5 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 +- Hy3 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Laguna S 2.1 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Ling-3.0-tiny Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - LongCat-2.0 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 @@ -275,6 +278,7 @@ https://opencode.ai/zen/v1/models - Big Pickle: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - DeepSeek V4 Flash Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - MiMo-V2.5 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 +- Hy3 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - Laguna S 2.1 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - Ling-3.0-tiny Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - LongCat-2.0 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index 3d5af28b4590..16a34d3ee4d9 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -106,6 +106,7 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - MiMo-V2.5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. +- Hy3 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Laguna S 2.1 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Ling-3.0-tiny Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - LongCat-2.0 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. @@ -275,6 +278,7 @@ https://opencode.ai/zen/v1/models - Big Pickle: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - DeepSeek V4 Flash Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - MiMo-V2.5 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. +- Hy3 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - Laguna S 2.1 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - Ling-3.0-tiny Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - LongCat-2.0 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index 456179a94926..afc27499956c 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -115,6 +115,7 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**. | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ Gratis-modellene: - DeepSeek V4 Flash Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - MiMo-V2.5 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. +- Hy3 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Laguna S 2.1 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Ling-3.0-tiny Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - LongCat-2.0 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. @@ -289,6 +292,7 @@ Alle modellene våre hostes i US. Leverandørene våre følger en policy for zer - Big Pickle: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - DeepSeek V4 Flash Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - MiMo-V2.5 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. +- Hy3 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - Laguna S 2.1 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - Ling-3.0-tiny Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - LongCat-2.0 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index df23b711a8a2..2bd2d35fb9e3 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -115,6 +115,7 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów* | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ Darmowe modele: - DeepSeek V4 Flash Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - MiMo-V2.5 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. +- Hy3 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Laguna S 2.1 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Ling-3.0-tiny Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - LongCat-2.0 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. @@ -289,6 +292,7 @@ Wszystkie nasze modele są hostowane w US. Nasi dostawcy stosują politykę zero - Big Pickle: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - DeepSeek V4 Flash Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - MiMo-V2.5 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. +- Hy3 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - Laguna S 2.1 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - Ling-3.0-tiny Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - LongCat-2.0 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index b27d34e03cc0..986c3a4c4e69 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -106,6 +106,7 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**. | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ Os modelos gratuitos: - DeepSeek V4 Flash Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - MiMo-V2.5 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. +- Hy3 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Laguna S 2.1 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Ling-3.0-tiny Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - LongCat-2.0 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. @@ -275,6 +278,7 @@ Todos os nossos modelos são hospedados nos US. Nossos provedores seguem uma pol - Big Pickle: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - DeepSeek V4 Flash Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - MiMo-V2.5 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. +- Hy3 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - Laguna S 2.1 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - Ling-3.0-tiny Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - LongCat-2.0 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index c7fb14c75405..619884b6e4f4 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -115,6 +115,7 @@ OpenCode Zen работает как любой другой провайдер | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - MiMo-V2.5 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. +- Hy3 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Laguna S 2.1 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Ling-3.0-tiny Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - LongCat-2.0 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. @@ -289,6 +292,7 @@ https://opencode.ai/zen/v1/models - Big Pickle: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - DeepSeek V4 Flash Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - MiMo-V2.5 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. +- Hy3 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - Laguna S 2.1 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - Ling-3.0-tiny Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - LongCat-2.0 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index 12e64ead4c44..8b1959f394a6 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -108,6 +108,7 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -139,6 +140,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -217,6 +219,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - MiMo-V2.5 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล +- Hy3 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Laguna S 2.1 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Ling-3.0-tiny Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - LongCat-2.0 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล @@ -277,6 +280,7 @@ https://opencode.ai/zen/v1/models - Big Pickle: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - DeepSeek V4 Flash Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - MiMo-V2.5 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล +- Hy3 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - Laguna S 2.1 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - Ling-3.0-tiny Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - LongCat-2.0 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index 1c167f2cf46b..2b818310b16e 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -106,6 +106,7 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ Kredi kartı ücretleri maliyet üzerinden yansıtılır (%4.4 + işlem başına - DeepSeek V4 Flash Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - MiMo-V2.5 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. +- Hy3 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Laguna S 2.1 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Ling-3.0-tiny Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - LongCat-2.0 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. @@ -275,6 +278,7 @@ Tüm modellerimiz US'de barındırılıyor. Sağlayıcılarımız zero-retention - Big Pickle: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - DeepSeek V4 Flash Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - MiMo-V2.5 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. +- Hy3 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - Laguna S 2.1 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - Ling-3.0-tiny Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - LongCat-2.0 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 73b80796fc7d..59512a5ba7e4 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -115,6 +115,7 @@ You can also access our models through the following API endpoints. | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -148,6 +149,7 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -226,6 +228,7 @@ The free models: - DeepSeek V4 Flash Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - MiMo-V2.5 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. +- Hy3 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Laguna S 2.1 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Ling-3.0-tiny Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - LongCat-2.0 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. @@ -289,6 +292,7 @@ All our models are hosted in the US. Our providers follow a zero-retention polic - Big Pickle: During its free period, collected data may be used to improve the model. - DeepSeek V4 Flash Free: During its free period, collected data may be used to improve the model. - MiMo-V2.5 Free: During its free period, collected data may be used to improve the model. +- Hy3 Free: During its free period, collected data may be used to improve the model. - Laguna S 2.1 Free: During its free period, collected data may be used to improve the model. - Ling-3.0-tiny Free: During its free period, collected data may be used to improve the model. - LongCat-2.0 Free: During its free period, collected data may be used to improve the model. diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index 7984a8a3d2b0..70939504e203 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -106,6 +106,7 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -137,6 +138,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -215,6 +217,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - MiMo-V2.5 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 +- Hy3 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Laguna S 2.1 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Ling-3.0-tiny Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - LongCat-2.0 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 @@ -275,6 +278,7 @@ https://opencode.ai/zen/v1/models - Big Pickle:在免费期间,收集的数据可能会被用于改进模型。 - DeepSeek V4 Flash Free:在免费期间,收集的数据可能会被用于改进模型。 - MiMo-V2.5 Free:在免费期间,收集的数据可能会被用于改进模型。 +- Hy3 Free:在免费期间,收集的数据可能会被用于改进模型。 - Laguna S 2.1 Free:在免费期间,收集的数据可能会被用于改进模型。 - Ling-3.0-tiny Free:在免费期间,收集的数据可能会被用于改进模型。 - LongCat-2.0 Free:在免费期间,收集的数据可能会被用于改进模型。 diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index 2eb9a2036dbb..302d298a203e 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -110,6 +110,7 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | Kimi K3 | kimi-k3 | `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` | +| Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -142,6 +143,7 @@ https://opencode.ai/zen/v1/models | Big Pickle | Free | Free | Free | - | | DeepSeek V4 Flash Free | Free | Free | Free | - | | MiMo-V2.5 Free | Free | Free | Free | - | +| Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | | LongCat-2.0 Free | Free | Free | Free | - | @@ -220,6 +222,7 @@ https://opencode.ai/zen/v1/models - DeepSeek V4 Flash Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - MiMo-V2.5 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 +- Hy3 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Laguna S 2.1 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Ling-3.0-tiny Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - LongCat-2.0 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 @@ -281,6 +284,7 @@ https://opencode.ai/zen/v1/models - Big Pickle: 在免費期間,收集到的資料可能會用於改進模型。 - DeepSeek V4 Flash Free: 在免費期間,收集到的資料可能會用於改進模型。 - MiMo-V2.5 Free: 在免費期間,收集到的資料可能會用於改進模型。 +- Hy3 Free: 在免費期間,收集到的資料可能會用於改進模型。 - Laguna S 2.1 Free: 在免費期間,收集到的資料可能會用於改進模型。 - Ling-3.0-tiny Free: 在免費期間,收集到的資料可能會用於改進模型。 - LongCat-2.0 Free: 在免費期間,收集到的資料可能會用於改進模型。 From 2b8a5969e932c15083e599c82d34ce0268f81b9e Mon Sep 17 00:00:00 2001 From: "Arif Rahman (Bolt)" <32804415+peculiarnewbie@users.noreply.github.com> Date: Wed, 12 Aug 2026 03:25:23 +0700 Subject: [PATCH 13/33] feat(console): add go usage endpoint (#16513) Co-authored-by: vimtor --- .../console/app/src/routes/zen/go/v1/usage.ts | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 packages/console/app/src/routes/zen/go/v1/usage.ts diff --git a/packages/console/app/src/routes/zen/go/v1/usage.ts b/packages/console/app/src/routes/zen/go/v1/usage.ts new file mode 100644 index 000000000000..3548634b71b2 --- /dev/null +++ b/packages/console/app/src/routes/zen/go/v1/usage.ts @@ -0,0 +1,144 @@ +import type { APIEvent } from "@solidjs/start/server" +import { and, Database, eq, isNull } from "@opencode-ai/console-core/drizzle/index.js" +import { BillingTable, LiteTable } from "@opencode-ai/console-core/schema/billing.sql.js" +import { KeyTable } from "@opencode-ai/console-core/schema/key.sql.js" +import { UserTable } from "@opencode-ai/console-core/schema/user.sql.js" +import { WorkspaceTable } from "@opencode-ai/console-core/schema/workspace.sql.js" +import { LiteData } from "@opencode-ai/console-core/lite.js" +import { Subscription } from "@opencode-ai/console-core/subscription.js" + +export async function GET(input: APIEvent) { + const apiKey = input.request.headers.get("authorization")?.match(/^Bearer (\S+)$/)?.[1] + + if (!apiKey) { + return new Response( + JSON.stringify({ + type: "error", + error: { + type: "AuthError", + message: "Missing API key.", + }, + }), + { + status: 401, + headers: { + "Content-Type": "application/json", + }, + }, + ) + } + + const auth = await Database.use((tx) => + tx + .select({ + lite: BillingTable.lite, + userID: KeyTable.userID, + workspaceID: KeyTable.workspaceID, + }) + .from(KeyTable) + .innerJoin( + UserTable, + and( + eq(UserTable.workspaceID, KeyTable.workspaceID), + eq(UserTable.id, KeyTable.userID), + isNull(UserTable.timeDeleted), + ), + ) + .innerJoin(WorkspaceTable, and(eq(WorkspaceTable.id, KeyTable.workspaceID), isNull(WorkspaceTable.timeDeleted))) + .innerJoin( + BillingTable, + and(eq(BillingTable.workspaceID, KeyTable.workspaceID), isNull(BillingTable.timeDeleted)), + ) + .where(and(eq(KeyTable.key, apiKey), isNull(KeyTable.timeDeleted))) + .then((rows) => rows[0]), + ) + + if (!auth) { + return new Response( + JSON.stringify({ + type: "error", + error: { + type: "AuthError", + message: "Unauthorized", + }, + }), + { + status: 401, + headers: { + "Content-Type": "application/json", + }, + }, + ) + } + + const row = await Database.use((tx) => + tx + .select({ + timeCreated: LiteTable.timeCreated, + rollingUsage: LiteTable.rollingUsage, + weeklyUsage: LiteTable.weeklyUsage, + monthlyUsage: LiteTable.monthlyUsage, + timeRollingUpdated: LiteTable.timeRollingUpdated, + timeWeeklyUpdated: LiteTable.timeWeeklyUpdated, + timeMonthlyUpdated: LiteTable.timeMonthlyUpdated, + }) + .from(LiteTable) + .where( + and( + eq(LiteTable.workspaceID, auth.workspaceID), + eq(LiteTable.userID, auth.userID), + isNull(LiteTable.timeDeleted), + ), + ) + .then((rows) => rows[0]), + ) + + if (!row) { + return new Response( + JSON.stringify({ + type: "error", + error: { + type: "EntitlementError", + message: "OpenCode Go subscription required.", + }, + }), + { + status: 403, + headers: { + "Content-Type": "application/json", + }, + }, + ) + } + + const limits = LiteData.getLimits() + + return new Response( + JSON.stringify({ + useBalance: auth.lite?.useBalance ?? false, + rollingUsage: Subscription.analyzeRollingUsage({ + limit: limits.rollingLimit, + window: limits.rollingWindow, + usage: row.rollingUsage ?? 0, + timeUpdated: row.timeRollingUpdated ?? new Date(), + }), + weeklyUsage: Subscription.analyzeWeeklyUsage({ + limit: limits.weeklyLimit, + usage: row.weeklyUsage ?? 0, + timeUpdated: row.timeWeeklyUpdated ?? new Date(), + }), + monthlyUsage: Subscription.analyzeMonthlyUsage({ + limit: limits.monthlyLimit, + usage: row.monthlyUsage ?? 0, + timeUpdated: row.timeMonthlyUpdated ?? new Date(), + timeSubscribed: row.timeCreated, + }), + }), + { + status: 200, + headers: { + "Content-Type": "application/json", + }, + }, + ) +} From 561afb401a4df9c8e677011b87e08f65b31cdfc3 Mon Sep 17 00:00:00 2001 From: Steven Ao Date: Tue, 11 Aug 2026 14:04:36 -0700 Subject: [PATCH 14/33] fix(opencode): detect Copilot PDF input support (#41522) --- .../src/plugin/github-copilot/models.ts | 5 +- .../test/plugin/github-copilot-models.test.ts | 68 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/plugin/github-copilot/models.ts b/packages/opencode/src/plugin/github-copilot/models.ts index f3f32a0b0b92..870e3f87a0fd 100644 --- a/packages/opencode/src/plugin/github-copilot/models.ts +++ b/packages/opencode/src/plugin/github-copilot/models.ts @@ -88,6 +88,9 @@ function build(key: string, remote: SelectableItem, url: string, prev?: Model): const image = (remote.capabilities.supports.vision ?? false) || (remote.capabilities.limits.vision?.supported_media_types ?? []).some((item) => item.startsWith("image/")) + const pdf = + (remote.capabilities.supports.vision ?? false) && + (remote.capabilities.limits.vision?.supported_media_types?.includes("application/pdf") ?? false) const isMsgApi = remote.supported_endpoints?.includes("/v1/messages") const endpoint: CopilotEndpoint | undefined = isMsgApi @@ -127,7 +130,7 @@ function build(key: string, remote: SelectableItem, url: string, prev?: Model): audio: false, image, video: false, - pdf: false, + pdf, }, output: { text: true, diff --git a/packages/opencode/test/plugin/github-copilot-models.test.ts b/packages/opencode/test/plugin/github-copilot-models.test.ts index e6d89fe01cc7..d968402e3b8e 100644 --- a/packages/opencode/test/plugin/github-copilot-models.test.ts +++ b/packages/opencode/test/plugin/github-copilot-models.test.ts @@ -187,6 +187,74 @@ test("converts Copilot AIC token prices to USD per million tokens", async () => expect(models["ignored-non-chat-record"]).toBeUndefined() }) +test("detects PDF input support when vision and media type are advertised", async () => { + globalThis.fetch = mock(() => + Promise.resolve( + new Response( + JSON.stringify({ + data: [ + { + model_picker_enabled: true, + id: "pdf-model", + name: "PDF Model", + version: "pdf-model-2026-06-01", + capabilities: { + family: "pdf-model", + limits: { + max_context_window_tokens: 128000, + max_output_tokens: 16384, + max_prompt_tokens: 128000, + vision: { + max_prompt_image_size: 10000000, + max_prompt_images: 10, + supported_media_types: ["application/pdf"], + }, + }, + supports: { + streaming: true, + vision: true, + tool_calls: true, + }, + }, + }, + { + model_picker_enabled: true, + id: "vision-only-model", + name: "Vision Only Model", + version: "vision-only-model-2026-06-01", + capabilities: { + family: "vision-only-model", + limits: { + max_context_window_tokens: 128000, + max_output_tokens: 16384, + max_prompt_tokens: 128000, + vision: { + max_prompt_image_size: 10000000, + max_prompt_images: 10, + supported_media_types: ["image/png"], + }, + }, + supports: { + streaming: true, + vision: true, + tool_calls: true, + }, + }, + }, + ], + }), + { status: 200 }, + ), + ), + ) as unknown as typeof fetch + + const models = (await CopilotModels.get("https://api.githubcopilot.com")).models + const model = models["pdf-model"] + + expect(model.capabilities.input.pdf).toBe(true) + expect(models["vision-only-model"].capabilities.input.pdf).toBe(false) +}) + test("uses zero cost when Copilot reports a zero billing batch size", async () => { globalThis.fetch = mock(() => Promise.resolve( From d4704347465c1ee63d0c213ed00e648e7f0231c5 Mon Sep 17 00:00:00 2001 From: vimtor Date: Tue, 11 Aug 2026 23:18:43 +0200 Subject: [PATCH 15/33] refactor(console): simplify go usage response --- .../console/app/src/routes/zen/go/v1/usage.ts | 52 ++++++++++++------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/packages/console/app/src/routes/zen/go/v1/usage.ts b/packages/console/app/src/routes/zen/go/v1/usage.ts index 3548634b71b2..c16851dc78ff 100644 --- a/packages/console/app/src/routes/zen/go/v1/usage.ts +++ b/packages/console/app/src/routes/zen/go/v1/usage.ts @@ -31,7 +31,6 @@ export async function GET(input: APIEvent) { const auth = await Database.use((tx) => tx .select({ - lite: BillingTable.lite, userID: KeyTable.userID, workspaceID: KeyTable.workspaceID, }) @@ -115,24 +114,31 @@ export async function GET(input: APIEvent) { return new Response( JSON.stringify({ - useBalance: auth.lite?.useBalance ?? false, - rollingUsage: Subscription.analyzeRollingUsage({ - limit: limits.rollingLimit, - window: limits.rollingWindow, - usage: row.rollingUsage ?? 0, - timeUpdated: row.timeRollingUpdated ?? new Date(), - }), - weeklyUsage: Subscription.analyzeWeeklyUsage({ - limit: limits.weeklyLimit, - usage: row.weeklyUsage ?? 0, - timeUpdated: row.timeWeeklyUpdated ?? new Date(), - }), - monthlyUsage: Subscription.analyzeMonthlyUsage({ - limit: limits.monthlyLimit, - usage: row.monthlyUsage ?? 0, - timeUpdated: row.timeMonthlyUpdated ?? new Date(), - timeSubscribed: row.timeCreated, - }), + usage: { + rolling: formatUsage( + Subscription.analyzeRollingUsage({ + limit: limits.rollingLimit, + window: limits.rollingWindow, + usage: row.rollingUsage ?? 0, + timeUpdated: row.timeRollingUpdated ?? new Date(), + }), + ), + weekly: formatUsage( + Subscription.analyzeWeeklyUsage({ + limit: limits.weeklyLimit, + usage: row.weeklyUsage ?? 0, + timeUpdated: row.timeWeeklyUpdated ?? new Date(), + }), + ), + monthly: formatUsage( + Subscription.analyzeMonthlyUsage({ + limit: limits.monthlyLimit, + usage: row.monthlyUsage ?? 0, + timeUpdated: row.timeMonthlyUpdated ?? new Date(), + timeSubscribed: row.timeCreated, + }), + ), + }, }), { status: 200, @@ -142,3 +148,11 @@ export async function GET(input: APIEvent) { }, ) } + +function formatUsage(usage: { status: "ok" | "rate-limited"; resetInSec: number; usagePercent: number }) { + return { + status: usage.status, + percent: usage.usagePercent, + resetsAt: new Date(Date.now() + usage.resetInSec * 1000).toISOString(), + } +} From c78986831c8c951369c087a89be6a9c3333e2ebc Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 11 Aug 2026 22:50:52 -0500 Subject: [PATCH 16/33] fix(opencode): cap session retries with jitter (#41939) --- packages/opencode/src/session/retry.ts | 14 +++++-- packages/opencode/test/session/retry.test.ts | 39 ++++++++++++++++++-- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/packages/opencode/src/session/retry.ts b/packages/opencode/src/session/retry.ts index cab48dda6330..fe9b81f3777b 100644 --- a/packages/opencode/src/session/retry.ts +++ b/packages/opencode/src/session/retry.ts @@ -25,8 +25,10 @@ export type Retryable = { export const RETRY_INITIAL_DELAY = 2000 export const RETRY_BACKOFF_FACTOR = 2 +export const RETRY_JITTER_FACTOR = 0.25 export const RETRY_MAX_DELAY_NO_HEADERS = 30_000 // 30 seconds export const RETRY_MAX_DELAY = 2_147_483_647 // max 32-bit signed integer for setTimeout +export const RETRY_MAX_RETRIES = 5 const RETRYABLE_MESSAGE_PATTERNS = [ /429|500|502|503|504|524/i, @@ -41,7 +43,7 @@ function cap(ms: number) { return Math.min(ms, RETRY_MAX_DELAY) } -export function delay(attempt: number, error?: SessionV1.APIError) { +export function delay(attempt: number, error?: SessionV1.APIError, random = Math.random()) { if (error) { const headers = error.data.responseHeaders if (headers) { @@ -67,11 +69,16 @@ export function delay(attempt: number, error?: SessionV1.APIError) { } } - return cap(RETRY_INITIAL_DELAY * Math.pow(RETRY_BACKOFF_FACTOR, attempt - 1)) + return cap(exponential(attempt, random)) } } - return cap(Math.min(RETRY_INITIAL_DELAY * Math.pow(RETRY_BACKOFF_FACTOR, attempt - 1), RETRY_MAX_DELAY_NO_HEADERS)) + return cap(Math.min(exponential(attempt, random), RETRY_MAX_DELAY_NO_HEADERS)) +} + +function exponential(attempt: number, random: number) { + const base = RETRY_INITIAL_DELAY * Math.pow(RETRY_BACKOFF_FACTOR, attempt - 1) + return Math.ceil(base + base * RETRY_JITTER_FACTOR * random) } export function retryable(error: Err, provider: string) { @@ -182,6 +189,7 @@ export function policy(opts: { const error = opts.parse(meta.input) const retry = retryable(error, opts.provider) if (!retry) return Cause.done(meta.attempt) + if (meta.attempt > RETRY_MAX_RETRIES) return Cause.done(meta.attempt) return Effect.gen(function* () { const wait = delay(meta.attempt, SessionV1.APIError.isInstance(error) ? error : undefined) const now = yield* Clock.currentTimeMillis diff --git a/packages/opencode/test/session/retry.test.ts b/packages/opencode/test/session/retry.test.ts index 018f76fc3eaf..e21b12c0895e 100644 --- a/packages/opencode/test/session/retry.test.ts +++ b/packages/opencode/test/session/retry.test.ts @@ -35,10 +35,18 @@ function wrap(message: unknown): ReturnType { describe("session.retry.delay", () => { test("caps delay at 30 seconds when headers missing", () => { const error = apiError() - const delays = Array.from({ length: 10 }, (_, index) => SessionRetry.delay(index + 1, error)) + const delays = Array.from({ length: 10 }, (_, index) => SessionRetry.delay(index + 1, error, 0)) expect(delays).toStrictEqual([2000, 4000, 8000, 16000, 30000, 30000, 30000, 30000, 30000, 30000]) }) + test("adds jitter to exponential delays", () => { + const error = apiError() + expect(SessionRetry.delay(1, error, 0)).toBe(2000) + expect(SessionRetry.delay(1, error, 1)).toBe(2500) + expect(SessionRetry.delay(4, error, 1)).toBe(20000) + expect(SessionRetry.delay(5, error, 1)).toBe(30000) + }) + test("prefers retry-after-ms when shorter than exponential", () => { const error = apiError({ "retry-after-ms": "1500" }) expect(SessionRetry.delay(4, error)).toBe(1500) @@ -59,18 +67,18 @@ describe("session.retry.delay", () => { test("ignores invalid retry hints", () => { const error = apiError({ "retry-after": "not-a-number" }) - expect(SessionRetry.delay(1, error)).toBe(2000) + expect(SessionRetry.delay(1, error, 0)).toBe(2000) }) test("ignores malformed date retry hints", () => { const error = apiError({ "retry-after": "Invalid Date String" }) - expect(SessionRetry.delay(1, error)).toBe(2000) + expect(SessionRetry.delay(1, error, 0)).toBe(2000) }) test("ignores past date retry hints", () => { const pastDate = new Date(Date.now() - 5000).toUTCString() const error = apiError({ "retry-after": pastDate }) - expect(SessionRetry.delay(1, error)).toBe(2000) + expect(SessionRetry.delay(1, error, 0)).toBe(2000) }) test("uses retry-after values even when exceeding 10 minutes with headers", () => { @@ -115,6 +123,29 @@ describe("session.retry.delay", () => { }) }), ) + + it.instance("policy stops after five retries", () => + Effect.gen(function* () { + const attempts: number[] = [] + const error = apiError({ "retry-after-ms": "0" }) + const step = yield* Schedule.toStepWithMetadata( + SessionRetry.policy({ + provider: "test", + parse: Schema.decodeUnknownSync(SessionV1.APIError.Schema), + set: (info) => + Effect.sync(() => { + attempts.push(info.attempt) + }), + }), + ) + + yield* Effect.forEach(Array.from({ length: SessionRetry.RETRY_MAX_RETRIES + 1 }), () => + Effect.ignore(step(error)), + ) + + expect(attempts).toStrictEqual([1, 2, 3, 4, 5]) + }), + ) }) describe("session.retry.retryable", () => { From 1f94d8a3c86b67f4f49a0e341de74e9188381b3a Mon Sep 17 00:00:00 2001 From: Jack Date: Wed, 12 Aug 2026 12:03:45 +0800 Subject: [PATCH 17/33] docs(zen): remove expired free models (#41943) --- packages/web/src/content/docs/ar/zen.mdx | 8 -------- packages/web/src/content/docs/bs/zen.mdx | 8 -------- packages/web/src/content/docs/da/zen.mdx | 8 -------- packages/web/src/content/docs/de/zen.mdx | 8 -------- packages/web/src/content/docs/es/zen.mdx | 8 -------- packages/web/src/content/docs/fr/zen.mdx | 8 -------- packages/web/src/content/docs/it/zen.mdx | 8 -------- packages/web/src/content/docs/ja/zen.mdx | 8 -------- packages/web/src/content/docs/ko/zen.mdx | 8 -------- packages/web/src/content/docs/nb/zen.mdx | 8 -------- packages/web/src/content/docs/pl/zen.mdx | 8 -------- packages/web/src/content/docs/pt-br/zen.mdx | 8 -------- packages/web/src/content/docs/ru/zen.mdx | 8 -------- packages/web/src/content/docs/th/zen.mdx | 8 -------- packages/web/src/content/docs/tr/zen.mdx | 8 -------- packages/web/src/content/docs/zen.mdx | 8 -------- packages/web/src/content/docs/zh-cn/zen.mdx | 8 -------- packages/web/src/content/docs/zh-tw/zen.mdx | 8 -------- 18 files changed, 144 deletions(-) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index 72b032935394..709ddd4eca16 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -113,8 +113,6 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -145,8 +143,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -224,8 +220,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Laguna S 2.1 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Ling-3.0-tiny Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. -- LongCat-2.0 Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. -- North Mini Code Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Nemotron 3 Ultra Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Nemotron 3.5 Lightning Free متاح على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. - Big Pickle نموذج خفي ومتاح مجانا على OpenCode لفترة محدودة. يستخدم الفريق هذه الفترة لجمع الملاحظات وتحسين النموذج. @@ -285,8 +279,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - Laguna S 2.1 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. - Ling-3.0-tiny Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. -- LongCat-2.0 Free: خلال فترته المجانية، قد تُستخدم البيانات المجمعة لتحسين النموذج. -- North Mini Code Free: خلال فترته المجانية، قد يُحتفَظ بالبيانات المُجمَّعة وتُستخدم لتحسين النموذج. لا تُرسل بيانات شخصية أو سرية. راجع [شروط الاستخدام](https://cohere.com/terms-of-use) و[سياسة الخصوصية](https://cohere.com/privacy). - Nemotron 3 Ultra Free (نقاط نهاية NVIDIA المجانية): للاستخدام التجريبي فقط — لا ترسل بيانات شخصية أو سرية. يُسجَّل استخدامك لأغراض أمنية ولتحسين منتجات وخدمات NVIDIA. بيانات الجلسة المُسجَّلة لأغراض التحسين غير مرتبطة بهويتك أو بأي مُعرِّف دائم. لمزيد من المعلومات حول ممارسات معالجة البيانات لدينا، راجع [سياسة الخصوصية](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). بتفاعلك مع نقطة النهاية هذه، فإنك توافق على جمعنا لهذه المعلومات وتسجيلها واستخدامها وعلى [شروط خدمة النسخة التجريبية من واجهة NVIDIA API](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (نقاط نهاية NVIDIA المجانية): للاستخدام التجريبي فقط — لا ترسل بيانات شخصية أو سرية. يُسجَّل استخدامك لأغراض أمنية ولتحسين منتجات وخدمات NVIDIA. بيانات الجلسة المُسجَّلة لأغراض التحسين غير مرتبطة بهويتك أو بأي مُعرِّف دائم. لمزيد من المعلومات حول ممارسات معالجة البيانات لدينا، راجع [سياسة الخصوصية](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). بتفاعلك مع نقطة النهاية هذه، فإنك توافق على جمعنا لهذه المعلومات وتسجيلها واستخدامها وعلى [شروط خدمة النسخة التجريبية من واجهة NVIDIA API](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: يتم الاحتفاظ بالطلبات لمدة 30 يوما وفقا لـ [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index da0a60b7d921..84ff2270f5a2 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -118,8 +118,6 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ Besplatni modeli: - Hy3 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Laguna S 2.1 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Ling-3.0-tiny Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. -- LongCat-2.0 Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. -- North Mini Code Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Nemotron 3 Ultra Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Nemotron 3.5 Lightning Free je dostupan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. - Big Pickle je stealth model koji je besplatan na OpenCode ograničeno vrijeme. Tim koristi ovo vrijeme da prikupi povratne informacije i poboljša model. @@ -297,8 +291,6 @@ i ne koriste vaše podatke za treniranje modela, uz sljedeće izuzetke: - Hy3 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - Laguna S 2.1 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. - Ling-3.0-tiny Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. -- LongCat-2.0 Free: Tokom besplatnog perioda, prikupljeni podaci mogu se koristiti za poboljšanje modela. -- North Mini Code Free: Tokom besplatnog perioda, prikupljeni podaci mogu biti zadržani i korišteni za poboljšanje modela. Nemojte slati lične ili povjerljive podatke. Pogledajte naše [Uslove korištenja](https://cohere.com/terms-of-use) i [Politiku privatnosti](https://cohere.com/privacy). - Nemotron 3 Ultra Free (besplatni NVIDIA endpointi): Samo za probnu upotrebu — nemojte slati lične ili povjerljive podatke. Vaše korištenje se bilježi radi sigurnosti i poboljšanja NVIDIA proizvoda i usluga. Zabilježeni podaci sesije koji se koriste u svrhu poboljšanja nisu povezani s vašim identitetom niti bilo kojim trajnim identifikatorom. Za više informacija o našim praksama obrade podataka pogledajte našu [Politiku privatnosti](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interakcijom s ovim endpointom pristajete na naše prikupljanje, bilježenje i korištenje takvih informacija te na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (besplatni NVIDIA endpointi): Samo za probnu upotrebu — nemojte slati lične ili povjerljive podatke. Vaše korištenje se bilježi radi sigurnosti i poboljšanja NVIDIA proizvoda i usluga. Zabilježeni podaci sesije koji se koriste u svrhu poboljšanja nisu povezani s vašim identitetom niti bilo kojim trajnim identifikatorom. Za više informacija o našim praksama obrade podataka pogledajte našu [Politiku privatnosti](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interakcijom s ovim endpointom pristajete na naše prikupljanje, bilježenje i korištenje takvih informacija te na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index c7b8bdd2def9..ad869d1f8cb8 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -118,8 +118,6 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**. | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ De gratis modeller: - Hy3 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Laguna S 2.1 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Ling-3.0-tiny Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. -- LongCat-2.0 Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. -- North Mini Code Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Nemotron 3 Ultra Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Nemotron 3.5 Lightning Free er tilgængelig på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. - Big Pickle er en stealth-model, som er gratis på OpenCode i en begrænset periode. Teamet bruger denne tid til at indsamle feedback og forbedre modellen. @@ -295,8 +289,6 @@ Alle vores modeller hostes i US. Vores udbydere følger en nul-opbevaringspoliti - Hy3 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - Laguna S 2.1 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. - Ling-3.0-tiny Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. -- LongCat-2.0 Free: I den gratis periode kan indsamlede data blive brugt til at forbedre modellen. -- North Mini Code Free: I gratisperioden kan indsamlede data blive opbevaret og brugt til at forbedre modellen. Indsend ikke personlige eller fortrolige oplysninger. Se vores [Brugsvilkår](https://cohere.com/terms-of-use) og [Privatlivspolitik](https://cohere.com/privacy). - Nemotron 3 Ultra Free (gratis NVIDIA-endpoints): Kun til prøvebrug — indsend ikke personlige eller fortrolige data. Din brug logges af sikkerhedshensyn og for at forbedre NVIDIAs produkter og tjenester. De loggede sessionsdata, der bruges til forbedringsformål, er ikke knyttet til din identitet eller nogen vedvarende identifikator. For mere information om vores databehandlingspraksis, se vores [privatlivspolitik](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved at interagere med dette endpoint giver du samtykke til vores indsamling, registrering og brug af sådanne oplysninger samt [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (gratis NVIDIA-endpoints): Kun til prøvebrug — indsend ikke personlige eller fortrolige data. Din brug logges af sikkerhedshensyn og for at forbedre NVIDIAs produkter og tjenester. De loggede sessionsdata, der bruges til forbedringsformål, er ikke knyttet til din identitet eller nogen vedvarende identifikator. For mere information om vores databehandlingspraksis, se vores [privatlivspolitik](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved at interagere med dette endpoint giver du samtykke til vores indsamling, registrering og brug af sådanne oplysninger samt [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Anmodninger opbevares i 30 dage i overensstemmelse med [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index 972d802cf79a..b836a1764c00 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -109,8 +109,6 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ Die kostenlosen Modelle: - Hy3 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Laguna S 2.1 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Ling-3.0-tiny Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. -- LongCat-2.0 Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. -- North Mini Code Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Nemotron 3 Ultra Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Nemotron 3.5 Lightning Free ist für begrenzte Zeit auf OpenCode verfügbar. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. - Big Pickle ist ein Stealth-Modell, das für begrenzte Zeit kostenlos auf OpenCode verfügbar ist. Das Team nutzt diese Zeit, um Feedback zu sammeln und das Modell zu verbessern. @@ -281,8 +275,6 @@ Alle unsere Modelle werden in den USA gehostet. Unsere Provider folgen einer Zer - Hy3 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - Laguna S 2.1 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. - Ling-3.0-tiny Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. -- LongCat-2.0 Free: Während des kostenlosen Zeitraums können gesammelte Daten zur Verbesserung des Modells verwendet werden. -- North Mini Code Free: Während des kostenlosen Zeitraums können erhobene Daten gespeichert und zur Verbesserung des Modells verwendet werden. Übermitteln Sie keine personenbezogenen oder vertraulichen Daten. Weitere Informationen finden Sie in unseren [Nutzungsbedingungen](https://cohere.com/terms-of-use) und unserer [Datenschutzerklärung](https://cohere.com/privacy). - Nemotron 3 Ultra Free (kostenlose NVIDIA-Endpunkte): Nur für Testzwecke — übermitteln Sie keine personenbezogenen oder vertraulichen Daten. Ihre Nutzung wird zu Sicherheitszwecken und zur Verbesserung der Produkte und Dienste von NVIDIA protokolliert. Die zu Verbesserungszwecken protokollierten Sitzungsdaten sind nicht mit Ihrer Identität oder einem dauerhaften Identifikator verknüpft. Weitere Informationen zu unseren Datenverarbeitungspraktiken finden Sie in unserer [Datenschutzrichtlinie](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Durch die Interaktion mit diesem Endpunkt stimmen Sie unserer Erhebung, Aufzeichnung und Nutzung solcher Informationen sowie den [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) zu. - Nemotron 3.5 Lightning Free (kostenlose NVIDIA-Endpunkte): Nur für Testzwecke — übermitteln Sie keine personenbezogenen oder vertraulichen Daten. Ihre Nutzung wird zu Sicherheitszwecken und zur Verbesserung der Produkte und Dienste von NVIDIA protokolliert. Die zu Verbesserungszwecken protokollierten Sitzungsdaten sind nicht mit Ihrer Identität oder einem dauerhaften Identifikator verknüpft. Weitere Informationen zu unseren Datenverarbeitungspraktiken finden Sie in unserer [Datenschutzrichtlinie](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Durch die Interaktion mit diesem Endpunkt stimmen Sie unserer Erhebung, Aufzeichnung und Nutzung solcher Informationen sowie den [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) zu. - OpenAI APIs: Anfragen werden in Übereinstimmung mit [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 30 Tage lang gespeichert. diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index d248c753ffb3..1685cbbf07e6 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -118,8 +118,6 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ Los modelos gratuitos: - Hy3 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Laguna S 2.1 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Ling-3.0-tiny Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. -- LongCat-2.0 Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. -- North Mini Code Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Nemotron 3 Ultra Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Nemotron 3.5 Lightning Free está disponible en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. - Big Pickle es un modelo stealth que es gratuito en OpenCode por tiempo limitado. El equipo está usando este tiempo para recopilar comentarios y mejorar el modelo. @@ -295,8 +289,6 @@ Todos nuestros modelos están alojados en US. Nuestros proveedores siguen una po - Hy3 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - Laguna S 2.1 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. - Ling-3.0-tiny Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. -- LongCat-2.0 Free: Durante su período gratuito, los datos recopilados pueden usarse para mejorar el modelo. -- North Mini Code Free: Durante el período gratuito, los datos recopilados podrán conservarse y utilizarse para mejorar el modelo. No envíes datos personales ni confidenciales. Consulta nuestros [Términos de uso](https://cohere.com/terms-of-use) y nuestra [Política de privacidad](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoints gratuitos de NVIDIA): Solo para uso de prueba — no envíes datos personales ni confidenciales. Tu uso se registra con fines de seguridad y para mejorar los productos y servicios de NVIDIA. Los datos de sesión registrados con fines de mejora no están vinculados a tu identidad ni a ningún identificador persistente. Para obtener más información sobre nuestras prácticas de procesamiento de datos, consulta nuestra [Política de privacidad](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Al interactuar con este endpoint, aceptas que recopilemos, registremos y usemos dicha información, así como los [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (endpoints gratuitos de NVIDIA): Solo para uso de prueba — no envíes datos personales ni confidenciales. Tu uso se registra con fines de seguridad y para mejorar los productos y servicios de NVIDIA. Los datos de sesión registrados con fines de mejora no están vinculados a tu identidad ni a ningún identificador persistente. Para obtener más información sobre nuestras prácticas de procesamiento de datos, consulta nuestra [Política de privacidad](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Al interactuar con este endpoint, aceptas que recopilemos, registremos y usemos dicha información, así como los [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Las solicitudes se conservan durante 30 días de acuerdo con [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index 428936850488..85414c4410dc 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -109,8 +109,6 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ Les modèles gratuits : - Hy3 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Laguna S 2.1 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Ling-3.0-tiny Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. -- LongCat-2.0 Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. -- North Mini Code Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Nemotron 3 Ultra Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Nemotron 3.5 Lightning Free est disponible sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. - Big Pickle est un modèle stealth gratuit sur OpenCode pour une durée limitée. L'équipe utilise cette période pour recueillir des retours et améliorer le modèle. @@ -281,8 +275,6 @@ Tous nos modèles sont hébergés aux US. Nos fournisseurs suivent une politique - Hy3 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - Laguna S 2.1 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. - Ling-3.0-tiny Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. -- LongCat-2.0 Free : Pendant sa période gratuite, les données collectées peuvent être utilisées pour améliorer le modèle. -- North Mini Code Free : Pendant la période de gratuité, les données collectées peuvent être conservées et utilisées pour améliorer le modèle. Ne transmettez aucune donnée personnelle ou confidentielle. Consultez nos [Conditions d’utilisation](https://cohere.com/terms-of-use) et notre [Politique de confidentialité](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoints NVIDIA gratuits) : Réservé à un usage d'essai — n'envoyez pas de données personnelles ou confidentielles. Votre utilisation est journalisée à des fins de sécurité et pour améliorer les produits et services de NVIDIA. Les données de session journalisées à des fins d'amélioration ne sont pas liées à votre identité ni à un quelconque identifiant persistant. Pour plus d'informations sur nos pratiques de traitement des données, consultez notre [Politique de confidentialité](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). En interagissant avec cet endpoint, vous consentez à notre collecte, à notre enregistrement et à notre utilisation de ces informations ainsi qu'aux [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (endpoints NVIDIA gratuits) : Réservé à un usage d'essai — n'envoyez pas de données personnelles ou confidentielles. Votre utilisation est journalisée à des fins de sécurité et pour améliorer les produits et services de NVIDIA. Les données de session journalisées à des fins d'amélioration ne sont pas liées à votre identité ni à un quelconque identifiant persistant. Pour plus d'informations sur nos pratiques de traitement des données, consultez notre [Politique de confidentialité](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). En interagissant avec cet endpoint, vous consentez à notre collecte, à notre enregistrement et à notre utilisation de ces informations ainsi qu'aux [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs : Les requêtes sont conservées pendant 30 jours conformément à [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index b0c9abb53d78..7620ee13b072 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -118,8 +118,6 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**. | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ I modelli gratuiti: - Hy3 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Laguna S 2.1 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Ling-3.0-tiny Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. -- LongCat-2.0 Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. -- North Mini Code Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Nemotron 3 Ultra Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Nemotron 3.5 Lightning Free è disponibile su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. - Big Pickle è un modello stealth che è gratuito su OpenCode per un periodo limitato. Il team usa questo periodo per raccogliere feedback e migliorare il modello. @@ -295,8 +289,6 @@ Tutti i nostri modelli sono ospitati negli US. I nostri provider seguono una pol - Hy3 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - Laguna S 2.1 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. - Ling-3.0-tiny Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. -- LongCat-2.0 Free: durante il periodo gratuito, i dati raccolti possono essere usati per migliorare il modello. -- North Mini Code Free: Durante il periodo gratuito, i dati raccolti possono essere conservati e utilizzati per migliorare il modello. Non inviare dati personali o riservati. Consulta i nostri [Termini di utilizzo](https://cohere.com/terms-of-use) e la nostra [Informativa sulla privacy](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoint NVIDIA gratuiti): solo per uso di prova — non inviare dati personali o riservati. Il tuo utilizzo viene registrato per finalità di sicurezza e per migliorare i prodotti e i servizi di NVIDIA. I dati di sessione registrati a fini di miglioramento non sono collegati alla tua identità né ad alcun identificatore persistente. Per maggiori informazioni sulle nostre pratiche di trattamento dei dati, consulta la nostra [Informativa sulla privacy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interagendo con questo endpoint, acconsenti alla nostra raccolta, registrazione e utilizzo di tali informazioni e ai [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (endpoint NVIDIA gratuiti): solo per uso di prova — non inviare dati personali o riservati. Il tuo utilizzo viene registrato per finalità di sicurezza e per migliorare i prodotti e i servizi di NVIDIA. I dati di sessione registrati a fini di miglioramento non sono collegati alla tua identità né ad alcun identificatore persistente. Per maggiori informazioni sulle nostre pratiche di trattamento dei dati, consulta la nostra [Informativa sulla privacy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Interagendo con questo endpoint, acconsenti alla nostra raccolta, registrazione e utilizzo di tali informazioni e ai [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: le richieste vengono conservate per 30 giorni in conformità con [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index 96eae30e7886..cb72bab04c2e 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -109,8 +109,6 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Laguna S 2.1 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Ling-3.0-tiny Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 -- LongCat-2.0 Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 -- North Mini Code Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Nemotron 3 Ultra Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Nemotron 3.5 Lightning Free は期間限定で OpenCode で利用できます。チームはこの期間中にフィードバックを集め、モデルを改善しています。 - Big Pickle はステルスモデルで、期間限定で OpenCode で無料提供されています。チームはこの期間中にフィードバックを集め、モデルを改善しています。 @@ -281,8 +275,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - Laguna S 2.1 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 - Ling-3.0-tiny Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 -- LongCat-2.0 Free: 無料提供期間中、収集されたデータがモデル改善に使われる場合があります。 -- North Mini Code Free: 無料提供期間中、収集されたデータは保持され、モデルの改善に使用される場合があります。個人情報や機密情報を送信しないでください。詳しくは、[利用規約](https://cohere.com/terms-of-use)および[プライバシーポリシー](https://cohere.com/privacy)をご覧ください。 - Nemotron 3 Ultra Free(NVIDIA の無料エンドポイント): 試用専用です — 個人情報や機密データは送信しないでください。お客様の利用は、セキュリティ目的および NVIDIA の製品とサービスの改善のために記録されます。改善目的で記録されたセッションデータは、お客様の身元や永続的な識別子とは関連付けられません。当社のデータ処理慣行の詳細については、[プライバシーポリシー](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)をご覧ください。このエンドポイントを利用することで、お客様はそのような情報の当社による収集、記録、利用、および [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) に同意したものとみなされます。 - Nemotron 3.5 Lightning Free(NVIDIA の無料エンドポイント): 試用専用です — 個人情報や機密データは送信しないでください。お客様の利用は、セキュリティ目的および NVIDIA の製品とサービスの改善のために記録されます。改善目的で記録されたセッションデータは、お客様の身元や永続的な識別子とは関連付けられません。当社のデータ処理慣行の詳細については、[プライバシーポリシー](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)をご覧ください。このエンドポイントを利用することで、お客様はそのような情報の当社による収集、記録、利用、および [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) に同意したものとみなされます。 - OpenAI APIs: リクエストは [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) に従って 30 日間保持されます。 diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index 16a34d3ee4d9..1369c8ab7aa2 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -109,8 +109,6 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Laguna S 2.1 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Ling-3.0-tiny Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. -- LongCat-2.0 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. -- North Mini Code Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Nemotron 3 Ultra Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Nemotron 3.5 Lightning Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. - Big Pickle은 한정된 기간 동안 OpenCode에서 무료로 제공되는 stealth model입니다. 팀은 이 기간에 피드백을 수집하고 모델을 개선합니다. @@ -281,8 +275,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - Laguna S 2.1 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. - Ling-3.0-tiny Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. -- LongCat-2.0 Free: 무료 제공 기간에는 수집된 데이터가 모델 개선에 사용될 수 있습니다. -- North Mini Code Free: 무료 제공 기간 동안 수집된 데이터는 보관되며 모델 개선에 사용될 수 있습니다. 개인 정보나 기밀 정보를 제출하지 마세요. 자세한 내용은 [이용 약관](https://cohere.com/terms-of-use) 및 [개인정보 처리방침](https://cohere.com/privacy)을 참조하세요. - Nemotron 3 Ultra Free(NVIDIA 무료 엔드포인트): 평가판 전용이며 — 개인 정보나 기밀 데이터는 제출하지 마세요. 사용 내역은 보안 목적과 NVIDIA 제품 및 서비스 개선을 위해 기록됩니다. 개선 목적으로 기록된 세션 데이터는 사용자의 신원이나 영구 식별자와 연결되지 않습니다. 당사의 데이터 처리 관행에 대한 자세한 내용은 [개인정보처리방침](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)을 참조하세요. 이 엔드포인트와 상호 작용함으로써 사용자는 당사가 이러한 정보를 수집, 기록, 사용하는 것과 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)에 동의하게 됩니다. - Nemotron 3.5 Lightning Free(NVIDIA 무료 엔드포인트): 평가판 전용이며 — 개인 정보나 기밀 데이터는 제출하지 마세요. 사용 내역은 보안 목적과 NVIDIA 제품 및 서비스 개선을 위해 기록됩니다. 개선 목적으로 기록된 세션 데이터는 사용자의 신원이나 영구 식별자와 연결되지 않습니다. 당사의 데이터 처리 관행에 대한 자세한 내용은 [개인정보처리방침](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)을 참조하세요. 이 엔드포인트와 상호 작용함으로써 사용자는 당사가 이러한 정보를 수집, 기록, 사용하는 것과 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)에 동의하게 됩니다. - OpenAI APIs: 요청은 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data)에 따라 30일 동안 보관됩니다. diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index afc27499956c..de0d15ee6dd0 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -118,8 +118,6 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**. | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ Gratis-modellene: - Hy3 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Laguna S 2.1 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Ling-3.0-tiny Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. -- LongCat-2.0 Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. -- North Mini Code Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Nemotron 3 Ultra Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Nemotron 3.5 Lightning Free er tilgjengelig på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. - Big Pickle er en stealth-modell som er gratis på OpenCode i en begrenset periode. Teamet bruker denne tiden til å samle inn tilbakemeldinger og forbedre modellen. @@ -295,8 +289,6 @@ Alle modellene våre hostes i US. Leverandørene våre følger en policy for zer - Hy3 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - Laguna S 2.1 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. - Ling-3.0-tiny Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. -- LongCat-2.0 Free: I gratisperioden kan innsamlede data brukes til å forbedre modellen. -- North Mini Code Free: I gratisperioden kan innsamlede data bli oppbevart og brukt til å forbedre modellen. Ikke send inn personopplysninger eller konfidensielle opplysninger. Se våre [Vilkår for bruk](https://cohere.com/terms-of-use) og vår [Personvernerklæring](https://cohere.com/privacy). - Nemotron 3 Ultra Free (gratis NVIDIA-endepunkter): Kun for prøvebruk — ikke send inn personopplysninger eller konfidensielle data. Bruken din logges av sikkerhetshensyn og for å forbedre NVIDIAs produkter og tjenester. Sesjonsdataene som logges for forbedringsformål, er ikke knyttet til identiteten din eller noen vedvarende identifikator. For mer informasjon om vår databehandlingspraksis, se vår [personvernerklæring](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved å samhandle med dette endepunktet samtykker du til at vi samler inn, registrerer og bruker slik informasjon, samt til [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (gratis NVIDIA-endepunkter): Kun for prøvebruk — ikke send inn personopplysninger eller konfidensielle data. Bruken din logges av sikkerhetshensyn og for å forbedre NVIDIAs produkter og tjenester. Sesjonsdataene som logges for forbedringsformål, er ikke knyttet til identiteten din eller noen vedvarende identifikator. For mer informasjon om vår databehandlingspraksis, se vår [personvernerklæring](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ved å samhandle med dette endepunktet samtykker du til at vi samler inn, registrerer og bruker slik informasjon, samt til [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Forespørsler lagres i 30 dager i samsvar med [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index 2bd2d35fb9e3..cc52f21def6d 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -118,8 +118,6 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów* | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ Darmowe modele: - Hy3 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Laguna S 2.1 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Ling-3.0-tiny Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. -- LongCat-2.0 Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. -- North Mini Code Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Nemotron 3 Ultra Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Nemotron 3.5 Lightning Free jest dostępny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. - Big Pickle to stealth model, który jest darmowy w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas do zbierania opinii i ulepszania modelu. @@ -295,8 +289,6 @@ Wszystkie nasze modele są hostowane w US. Nasi dostawcy stosują politykę zero - Hy3 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - Laguna S 2.1 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. - Ling-3.0-tiny Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. -- LongCat-2.0 Free: W czasie darmowego okresu zebrane dane mogą być wykorzystywane do ulepszania modelu. -- North Mini Code Free: W okresie bezpłatnego dostępu zebrane dane mogą być przechowywane i wykorzystywane do ulepszania modelu. Nie przesyłaj danych osobowych ani poufnych. Zapoznaj się z naszym [Regulaminem korzystania](https://cohere.com/terms-of-use) i [Polityką prywatności](https://cohere.com/privacy). - Nemotron 3 Ultra Free (darmowe endpointy NVIDIA): Tylko do użytku próbnego — nie przesyłaj danych osobowych ani poufnych. Twoje korzystanie jest rejestrowane w celach bezpieczeństwa oraz w celu ulepszania produktów i usług NVIDIA. Rejestrowane dane sesji wykorzystywane do celów ulepszania nie są powiązane z Twoją tożsamością ani żadnym trwałym identyfikatorem. Aby uzyskać więcej informacji o naszych praktykach przetwarzania danych, zapoznaj się z naszą [Polityką prywatności](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Korzystając z tego endpointu, wyrażasz zgodę na gromadzenie, rejestrowanie i wykorzystywanie przez nas takich informacji oraz na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (darmowe endpointy NVIDIA): Tylko do użytku próbnego — nie przesyłaj danych osobowych ani poufnych. Twoje korzystanie jest rejestrowane w celach bezpieczeństwa oraz w celu ulepszania produktów i usług NVIDIA. Rejestrowane dane sesji wykorzystywane do celów ulepszania nie są powiązane z Twoją tożsamością ani żadnym trwałym identyfikatorem. Aby uzyskać więcej informacji o naszych praktykach przetwarzania danych, zapoznaj się z naszą [Polityką prywatności](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Korzystając z tego endpointu, wyrażasz zgodę na gromadzenie, rejestrowanie i wykorzystywanie przez nas takich informacji oraz na [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Żądania są przechowywane przez 30 dni zgodnie z [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index 986c3a4c4e69..3364fb61d1c3 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -109,8 +109,6 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**. | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ Os modelos gratuitos: - Hy3 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Laguna S 2.1 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Ling-3.0-tiny Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. -- LongCat-2.0 Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. -- North Mini Code Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Nemotron 3 Ultra Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Nemotron 3.5 Lightning Free está disponível no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. - Big Pickle é um modelo stealth que está gratuito no OpenCode por tempo limitado. A equipe está usando esse período para coletar feedback e melhorar o modelo. @@ -281,8 +275,6 @@ Todos os nossos modelos são hospedados nos US. Nossos provedores seguem uma pol - Hy3 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - Laguna S 2.1 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. - Ling-3.0-tiny Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. -- LongCat-2.0 Free: Durante seu período gratuito, os dados coletados podem ser usados para melhorar o modelo. -- North Mini Code Free: Durante o período gratuito, os dados coletados poderão ser retidos e usados para aprimorar o modelo. Não envie dados pessoais ou confidenciais. Consulte nossos [Termos de Uso](https://cohere.com/terms-of-use) e nossa [Política de Privacidade](https://cohere.com/privacy). - Nemotron 3 Ultra Free (endpoints gratuitos da NVIDIA): Apenas para uso de avaliação — não envie dados pessoais ou confidenciais. Seu uso é registrado para fins de segurança e para melhorar os produtos e serviços da NVIDIA. Os dados de sessão registrados para fins de melhoria não estão vinculados à sua identidade nem a qualquer identificador persistente. Para mais informações sobre nossas práticas de processamento de dados, consulte nossa [Política de Privacidade](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ao interagir com este endpoint, você consente com a nossa coleta, registro e uso dessas informações e com os [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (endpoints gratuitos da NVIDIA): Apenas para uso de avaliação — não envie dados pessoais ou confidenciais. Seu uso é registrado para fins de segurança e para melhorar os produtos e serviços da NVIDIA. Os dados de sessão registrados para fins de melhoria não estão vinculados à sua identidade nem a qualquer identificador persistente. Para mais informações sobre nossas práticas de processamento de dados, consulte nossa [Política de Privacidade](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Ao interagir com este endpoint, você consente com a nossa coleta, registro e uso dessas informações e com os [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: As solicitações são retidas por 30 dias de acordo com [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index 619884b6e4f4..7fb3d06e0ed3 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -118,8 +118,6 @@ OpenCode Zen работает как любой другой провайдер | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Laguna S 2.1 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Ling-3.0-tiny Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. -- LongCat-2.0 Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. -- North Mini Code Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Nemotron 3 Ultra Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Nemotron 3.5 Lightning Free доступна в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. - Big Pickle — это скрытая модель, которая доступна бесплатно в OpenCode ограниченное время. Команда использует это время, чтобы собирать отзывы и улучшать модель. @@ -295,8 +289,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - Laguna S 2.1 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. - Ling-3.0-tiny Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. -- LongCat-2.0 Free: во время бесплатного периода собранные данные могут использоваться для улучшения модели. -- North Mini Code Free: В течение бесплатного периода собранные данные могут храниться и использоваться для улучшения модели. Не отправляйте персональные или конфиденциальные данные. Ознакомьтесь с нашими [Условиями использования](https://cohere.com/terms-of-use) и [Политикой конфиденциальности](https://cohere.com/privacy). - Nemotron 3 Ultra Free (бесплатные эндпоинты NVIDIA): только для пробного использования — не отправляйте персональные или конфиденциальные данные. Использование логируется в целях безопасности и для улучшения продуктов и сервисов NVIDIA. Логируемые данные сессии, используемые в целях улучшения, не связаны с вашей личностью или каким-либо постоянным идентификатором. Подробнее о наших практиках обработки данных см. в нашей [Политике конфиденциальности](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Взаимодействуя с этим эндпоинтом, вы соглашаетесь на сбор, запись и использование нами такой информации, а также с [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (бесплатные эндпоинты NVIDIA): только для пробного использования — не отправляйте персональные или конфиденциальные данные. Использование логируется в целях безопасности и для улучшения продуктов и сервисов NVIDIA. Логируемые данные сессии, используемые в целях улучшения, не связаны с вашей личностью или каким-либо постоянным идентификатором. Подробнее о наших практиках обработки данных см. в нашей [Политике конфиденциальности](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). Взаимодействуя с этим эндпоинтом, вы соглашаетесь на сбор, запись и использование нами такой информации, а также с [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: запросы хранятся 30 дней в соответствии с [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index 8b1959f394a6..8ec2945a9049 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -111,8 +111,6 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -143,8 +141,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -222,8 +218,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Laguna S 2.1 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Ling-3.0-tiny Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล -- LongCat-2.0 Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล -- North Mini Code Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Nemotron 3 Ultra Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Nemotron 3.5 Lightning Free เปิดให้ใช้บน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล - Big Pickle เป็น stealth model ที่ใช้งานฟรีบน OpenCode ในช่วงเวลาจำกัด ทีมกำลังใช้ช่วงเวลานี้เพื่อเก็บ feedback และปรับปรุงโมเดล @@ -283,8 +277,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - Laguna S 2.1 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล - Ling-3.0-tiny Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล -- LongCat-2.0 Free: ระหว่างช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกนำไปใช้เพื่อปรับปรุงโมเดล -- North Mini Code Free: ในช่วงที่เปิดให้ใช้ฟรี ข้อมูลที่เก็บรวบรวมอาจถูกเก็บรักษาและนำไปใช้เพื่อปรับปรุงโมเดล โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลที่เป็นความลับ ดู[ข้อกำหนดการใช้งาน](https://cohere.com/terms-of-use)และ[นโยบายความเป็นส่วนตัว](https://cohere.com/privacy)ของเรา - Nemotron 3 Ultra Free (endpoint ฟรีของ NVIDIA): ใช้สำหรับการทดลองเท่านั้น — โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลลับ การใช้งานของคุณจะถูกบันทึกเพื่อวัตถุประสงค์ด้านความปลอดภัยและเพื่อปรับปรุงผลิตภัณฑ์และบริการของ NVIDIA ข้อมูลเซสชันที่บันทึกไว้เพื่อวัตถุประสงค์ในการปรับปรุงจะไม่เชื่อมโยงกับตัวตนของคุณหรือตัวระบุถาวรใด ๆ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแนวปฏิบัติในการประมวลผลข้อมูลของเรา โปรดดู [นโยบายความเป็นส่วนตัว](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) ของเรา การโต้ตอบกับ endpoint นี้ถือว่าคุณยินยอมให้เราเก็บรวบรวม บันทึก และใช้ข้อมูลดังกล่าว รวมถึง [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) - Nemotron 3.5 Lightning Free (endpoint ฟรีของ NVIDIA): ใช้สำหรับการทดลองเท่านั้น — โปรดอย่าส่งข้อมูลส่วนบุคคลหรือข้อมูลลับ การใช้งานของคุณจะถูกบันทึกเพื่อวัตถุประสงค์ด้านความปลอดภัยและเพื่อปรับปรุงผลิตภัณฑ์และบริการของ NVIDIA ข้อมูลเซสชันที่บันทึกไว้เพื่อวัตถุประสงค์ในการปรับปรุงจะไม่เชื่อมโยงกับตัวตนของคุณหรือตัวระบุถาวรใด ๆ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแนวปฏิบัติในการประมวลผลข้อมูลของเรา โปรดดู [นโยบายความเป็นส่วนตัว](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) ของเรา การโต้ตอบกับ endpoint นี้ถือว่าคุณยินยอมให้เราเก็บรวบรวม บันทึก และใช้ข้อมูลดังกล่าว รวมถึง [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) - OpenAI APIs: คำขอจะถูกเก็บไว้เป็นเวลา 30 วันตาม [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index 2b818310b16e..d15490cc7d71 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -109,8 +109,6 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ Kredi kartı ücretleri maliyet üzerinden yansıtılır (%4.4 + işlem başına - Hy3 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Laguna S 2.1 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Ling-3.0-tiny Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. -- LongCat-2.0 Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. -- North Mini Code Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Nemotron 3 Ultra Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Nemotron 3.5 Lightning Free, sınırlı bir süre için OpenCode'da ücretsizdir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. - Big Pickle, sınırlı bir süre için OpenCode'da ücretsiz olan gizli bir modeldir. Ekip bu süreyi geri bildirim toplamak ve modeli iyileştirmek için kullanıyor. @@ -281,8 +275,6 @@ Tüm modellerimiz US'de barındırılıyor. Sağlayıcılarımız zero-retention - Hy3 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - Laguna S 2.1 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. - Ling-3.0-tiny Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. -- LongCat-2.0 Free: Ücretsiz döneminde toplanan veriler modeli iyileştirmek için kullanılabilir. -- North Mini Code Free: Ücretsiz kullanım süresi boyunca toplanan veriler saklanabilir ve modeli geliştirmek için kullanılabilir. Kişisel veya gizli veriler göndermeyin. [Kullanım Koşullarımıza](https://cohere.com/terms-of-use) ve [Gizlilik Politikamıza](https://cohere.com/privacy) bakın. - Nemotron 3 Ultra Free (ücretsiz NVIDIA uç noktaları): Yalnızca deneme amaçlıdır — kişisel veya gizli veri göndermeyin. Kullanımınız güvenlik amacıyla ve NVIDIA ürünlerini ve hizmetlerini geliştirmek için kaydedilir. Geliştirme amacıyla kaydedilen oturum verileri kimliğinizle veya herhangi bir kalıcı tanımlayıcıyla ilişkilendirilmez. Veri işleme uygulamalarımız hakkında daha fazla bilgi için [Gizlilik Politikamıza](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) bakın. Bu uç noktayla etkileşime geçerek, bu tür bilgileri toplamamıza, kaydetmemize ve kullanmamıza ve [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) koşullarına onay vermiş olursunuz. - Nemotron 3.5 Lightning Free (ücretsiz NVIDIA uç noktaları): Yalnızca deneme amaçlıdır — kişisel veya gizli veri göndermeyin. Kullanımınız güvenlik amacıyla ve NVIDIA ürünlerini ve hizmetlerini geliştirmek için kaydedilir. Geliştirme amacıyla kaydedilen oturum verileri kimliğinizle veya herhangi bir kalıcı tanımlayıcıyla ilişkilendirilmez. Veri işleme uygulamalarımız hakkında daha fazla bilgi için [Gizlilik Politikamıza](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) bakın. Bu uç noktayla etkileşime geçerek, bu tür bilgileri toplamamıza, kaydetmemize ve kullanmamıza ve [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf) koşullarına onay vermiş olursunuz. - OpenAI APIs: İstekler [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) uyarınca 30 gün boyunca saklanır. diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 59512a5ba7e4..668ba29b23ff 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -118,8 +118,6 @@ You can also access our models through the following API endpoints. | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -152,8 +150,6 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -231,8 +227,6 @@ The free models: - Hy3 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Laguna S 2.1 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Ling-3.0-tiny Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. -- LongCat-2.0 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. -- North Mini Code Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Nemotron 3 Ultra Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Nemotron 3.5 Lightning Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. - Big Pickle is a stealth model that's free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model. @@ -295,8 +289,6 @@ All our models are hosted in the US. Our providers follow a zero-retention polic - Hy3 Free: During its free period, collected data may be used to improve the model. - Laguna S 2.1 Free: During its free period, collected data may be used to improve the model. - Ling-3.0-tiny Free: During its free period, collected data may be used to improve the model. -- LongCat-2.0 Free: During its free period, collected data may be used to improve the model. -- North Mini Code Free: During its free period, collected data may be retained and used to improve the model. Do not submit personal or confidential data. See our [Terms of Use](https://cohere.com/terms-of-use) and [Privacy Policy](https://cohere.com/privacy). - Nemotron 3 Ultra Free (NVIDIA free endpoints): Trial use only — do not submit personal or confidential data. Your use is logged for security purposes and to improve NVIDIA products and services. The logged session data for improvement purposes is not linked to your identity or any persistent identifier. For more information about our data processing practices, see our [Privacy Policy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). By interacting with this endpoint, you consent to our collection, recording, and use of such information and the [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - Nemotron 3.5 Lightning Free (NVIDIA free endpoints): Trial use only — do not submit personal or confidential data. Your use is logged for security purposes and to improve NVIDIA products and services. The logged session data for improvement purposes is not linked to your identity or any persistent identifier. For more information about our data processing practices, see our [Privacy Policy](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). By interacting with this endpoint, you consent to our collection, recording, and use of such information and the [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf). - OpenAI APIs: Requests are retained for 30 days in accordance with [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data). diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index 70939504e203..f1e12f3e8031 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -109,8 +109,6 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -141,8 +139,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -220,8 +216,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Laguna S 2.1 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Ling-3.0-tiny Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 -- LongCat-2.0 Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 -- North Mini Code Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Nemotron 3 Ultra Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Nemotron 3.5 Lightning Free 目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 - Big Pickle 是一个隐身模型,目前在 OpenCode 上限时免费提供。团队正在利用这段时间收集反馈并改进模型。 @@ -281,8 +275,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free:在免费期间,收集的数据可能会被用于改进模型。 - Laguna S 2.1 Free:在免费期间,收集的数据可能会被用于改进模型。 - Ling-3.0-tiny Free:在免费期间,收集的数据可能会被用于改进模型。 -- LongCat-2.0 Free:在免费期间,收集的数据可能会被用于改进模型。 -- North Mini Code Free:免费期间,所收集的数据可能会被保留并用于改进模型。请勿提交个人或机密数据。请参阅我们的[使用条款](https://cohere.com/terms-of-use)和[隐私政策](https://cohere.com/privacy)。 - Nemotron 3 Ultra Free(NVIDIA 免费端点):仅供试用 — 请勿提交个人或机密数据。出于安全目的以及为改进 NVIDIA 产品和服务,系统会记录你的使用情况。出于改进目的而记录的会话数据不会与你的身份或任何持久标识符相关联。有关我们数据处理实践的更多信息,请参阅我们的[隐私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。与此端点进行交互,即表示你同意我们收集、记录和使用此类信息,并同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 - Nemotron 3.5 Lightning Free(NVIDIA 免费端点):仅供试用 — 请勿提交个人或机密数据。出于安全目的以及为改进 NVIDIA 产品和服务,系统会记录你的使用情况。出于改进目的而记录的会话数据不会与你的身份或任何持久标识符相关联。有关我们数据处理实践的更多信息,请参阅我们的[隐私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。与此端点进行交互,即表示你同意我们收集、记录和使用此类信息,并同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 - OpenAI APIs:请求会根据 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 保留 30 天。 diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index 302d298a203e..47795d2cde1c 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -113,8 +113,6 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | Hy3 Free | hy3-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Laguna S 2.1 Free | laguna-s-2.1-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Ling-3.0-tiny Free | ling-3.0-tiny-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| LongCat-2.0 Free | longcat-2.0-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| North Mini Code Free | north-mini-code-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3 Ultra Free | nemotron-3-ultra-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Nemotron 3.5 Lightning Free | nemotron-3.5-lightning-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash Free | deepseek-v4-flash-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -146,8 +144,6 @@ https://opencode.ai/zen/v1/models | Hy3 Free | Free | Free | Free | - | | Laguna S 2.1 Free | Free | Free | Free | - | | Ling-3.0-tiny Free | Free | Free | Free | - | -| LongCat-2.0 Free | Free | Free | Free | - | -| North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | | Nemotron 3.5 Lightning Free | Free | Free | Free | - | | MiniMax M3 | $0.30 | $1.20 | $0.06 | - | @@ -225,8 +221,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Laguna S 2.1 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Ling-3.0-tiny Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 -- LongCat-2.0 Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 -- North Mini Code Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Nemotron 3 Ultra Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Nemotron 3.5 Lightning Free 在 OpenCode 上限時提供。團隊正在利用這段時間收集回饋並改進模型。 - Big Pickle 是一個隱身模型,在 OpenCode 上限時免費提供。團隊正在利用這段時間收集回饋並改進模型。 @@ -287,8 +281,6 @@ https://opencode.ai/zen/v1/models - Hy3 Free: 在免費期間,收集到的資料可能會用於改進模型。 - Laguna S 2.1 Free: 在免費期間,收集到的資料可能會用於改進模型。 - Ling-3.0-tiny Free: 在免費期間,收集到的資料可能會用於改進模型。 -- LongCat-2.0 Free: 在免費期間,收集到的資料可能會用於改進模型。 -- North Mini Code Free:免費期間,所收集的資料可能會被保留並用於改進模型。請勿提交個人或機密資料。請參閱我們的[使用條款](https://cohere.com/terms-of-use)和[隱私權政策](https://cohere.com/privacy)。 - Nemotron 3 Ultra Free(NVIDIA 免費端點):僅供試用 — 請勿提交個人或機密資料。基於安全目的以及為了改進 NVIDIA 產品與服務,系統會記錄你的使用情況。基於改進目的而記錄的工作階段資料不會與你的身分或任何持久識別碼相關聯。有關我們資料處理實務的更多資訊,請參閱我們的[隱私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。與此端點進行互動,即表示你同意我們收集、記錄與使用此類資訊,並同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 - Nemotron 3.5 Lightning Free(NVIDIA 免費端點):僅供試用 — 請勿提交個人或機密資料。基於安全目的以及為了改進 NVIDIA 產品與服務,系統會記錄你的使用情況。基於改進目的而記錄的工作階段資料不會與你的身分或任何持久識別碼相關聯。有關我們資料處理實務的更多資訊,請參閱我們的[隱私政策](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。與此端點進行互動,即表示你同意我們收集、記錄與使用此類資訊,並同意 [NVIDIA API Trial Terms of Service](https://assets.ngc.nvidia.com/products/api-catalog/legal/NVIDIA%20API%20Trial%20Terms%20of%20Service.pdf)。 - OpenAI APIs: 請求會依據 [OpenAI's Data Policies](https://platform.openai.com/docs/guides/your-data) 保留 30 天。 From 46a14e685a1f07f5b5eed13223f4480e8270595f Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 12 Aug 2026 09:49:10 -0500 Subject: [PATCH 18/33] feat(stats): query r2 data catalog --- infra/stats.ts | 14 +- packages/stats/core/package.json | 1 + .../stats/core/src/domain/inference.test.ts | 23 +- packages/stats/core/src/domain/inference.ts | 243 ++++++++++-------- packages/stats/core/src/r2-sql.ts | 105 ++++++++ packages/stats/core/src/resource.d.ts | 11 + packages/stats/core/src/stat-sync.ts | 27 +- packages/stats/server/src/stat-sync.ts | 10 +- 8 files changed, 310 insertions(+), 124 deletions(-) create mode 100644 packages/stats/core/src/r2-sql.ts diff --git a/infra/stats.ts b/infra/stats.ts index 10d37119f0d7..29c9537daf88 100644 --- a/infra/stats.ts +++ b/infra/stats.ts @@ -181,6 +181,16 @@ const statsSyncConfig = new sst.Linkable("StatsSyncConfig", { }, }) +const r2SqlAuthToken = new sst.Secret("R2SqlAuthToken") +const r2Sql = new sst.Linkable("R2Sql", { + properties: { + accountId: "15d29c8639fd3733b1b5486a2acfd968", + bucket: `platform-${$app.stage}-lake`, + namespace: "inference", + table: "generation", + }, +}) + export const statSync = new sst.aws.Service("StatsSyncService", { cluster: lakeCluster, architecture: "arm64", @@ -193,7 +203,9 @@ export const statSync = new sst.aws.Service("StatsSyncService", { dockerfile: "packages/stats/server/Dockerfile", }, command: ["bun", "src/stat-sync.ts"], - link: [database, inferenceEvent, statsSyncConfig], + // Keep the legacy Athena link and IAM permissions during the first R2-backed + // release so reverting the application code remains a one-deploy rollback. + link: [database, inferenceEvent, r2Sql, r2SqlAuthToken, statsSyncConfig], permissions: lakeQueryPermissions, scaling: { min: 1, diff --git a/packages/stats/core/package.json b/packages/stats/core/package.json index ffedc71d4292..92e8ab0e262a 100644 --- a/packages/stats/core/package.json +++ b/packages/stats/core/package.json @@ -12,6 +12,7 @@ "./database": "./src/database.ts", "./database/*": "./src/database/*.ts", "./domain/*": "./src/domain/*.ts", + "./r2-sql": "./src/r2-sql.ts", "./runtime": "./src/runtime.ts", "./stat-sync": "./src/stat-sync.ts" }, diff --git a/packages/stats/core/src/domain/inference.test.ts b/packages/stats/core/src/domain/inference.test.ts index fa71fb51e60e..f58e7deab6a7 100644 --- a/packages/stats/core/src/domain/inference.test.ts +++ b/packages/stats/core/src/domain/inference.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test" -import { toGeoAggregate, toModelAggregate, toProviderAggregate } from "./inference" +import { buildStatsQueries, toGeoAggregate, toModelAggregate, toProviderAggregate } from "./inference" import { modelAuthor, normalizeInferenceModel, statModel, statProvider } from "./model-normalization" describe("inference stat normalization", () => { @@ -82,6 +82,27 @@ describe("inference stat normalization", () => { }), ).toMatchObject([{ period_key: "2026-W20" }]) }) + + test("builds bounded R2 SQL queries for each day and week", () => { + const queries = buildStatsQueries(new Date("2026-08-10T00:00:00.000Z"), new Date("2026-08-12T12:00:00.000Z"), { + namespace: "inference", + table: "generation", + dataset: "zen", + }) + + expect(queries).toHaveLength(8) + expect(queries[0]).toContain("'week' AS grain") + expect(queries[0]).toContain("'2026-W33' AS period_key") + expect(queries[2]).toContain("'2026-08-10' AS period_key") + expect(queries[6]).toContain("'2026-08-12' AS period_key") + expect(queries[0]).toContain('FROM "inference"."generation"') + expect(queries[0]).toContain("event_type = 'generation.completed'") + expect(queries[0]).toContain("product = 'go'") + expect(queries[0]).toContain("LIMIT 10000") + expect(queries[0]).toContain("approx_distinct(session) AS sessions") + expect(queries[1]).toContain("'geo_model' ELSE 'geo'") + expect(queries[1]).toContain("0 AS sessions") + }) }) function aggregate(model: string, provider: string) { diff --git a/packages/stats/core/src/domain/inference.ts b/packages/stats/core/src/domain/inference.ts index 558832f99536..ad2460530548 100644 --- a/packages/stats/core/src/domain/inference.ts +++ b/packages/stats/core/src/domain/inference.ts @@ -1,5 +1,5 @@ import { Resource } from "sst/resource" -import type { AthenaData } from "../athena" +import type { R2SqlData } from "../r2-sql" import type { GeoStatAggregate } from "./geo" import type { ModelStatAggregate } from "./model" import { @@ -13,22 +13,66 @@ import type { ProviderStatAggregate } from "./provider" import { normalizeCountry, normalizeTier, type StatBaseAggregate } from "./stat" export type StatDimension = "model" | "provider" | "geo" | "geo_model" +export type StatsQuerySource = { namespace: string; table: string; dataset: string } +type StatsQueryFamily = "usage" | "geo" -// All stat dimensions and both grains are computed in one query via GROUPING SETS so -// the source table is scanned once per sync pass; separate queries per dimension (and -// the previous weekly/daily UNION ALL) each re-scanned the same events. -export function buildStatsQuery(periodStart: Date, periodEnd: Date) { - const periodStartValue = sqlString(periodStart.toISOString()) - const periodEndValue = sqlString(periodEnd.toISOString()) - const periodStartDateValue = sqlString(periodStart.toISOString().slice(0, 10)) - const periodEndDateValue = sqlString(periodEnd.toISOString().slice(0, 10)) - const sourceTable = [Resource.InferenceEvent.catalog, Resource.InferenceEvent.database, Resource.InferenceEvent.table] - .map(sqlIdentifier) - .join(".") +const DAY_MS = 86_400_000 +const WEEK_MS = 7 * DAY_MS + +// R2 SQL limits result sets to 10,000 rows and does not support OFFSET. Two +// queries per day/week keep each result bounded and avoid combining the costly +// distinct user/session aggregates with the high-cardinality geo dimensions. +export function buildStatsQueries(periodStart: Date, periodEnd: Date, input?: StatsQuerySource) { + const source = input ?? { + namespace: Resource.R2Sql.namespace, + table: Resource.R2Sql.table, + dataset: Resource.StatsSyncConfig.dataset, + } + return [...statPeriods("week", periodStart, periodEnd), ...statPeriods("day", periodStart, periodEnd)].flatMap( + (period) => [buildStatsQuery(period, source, "usage"), buildStatsQuery(period, source, "geo")], + ) +} + +function buildStatsQuery( + period: { grain: "day" | "week"; key: string; start: Date; end: Date }, + source: StatsQuerySource, + family: StatsQueryFamily, +) { + const periodStartValue = sqlString(period.start.toISOString()) + const periodEndValue = sqlString(period.end.toISOString()) + const ingestEndValue = sqlString(new Date(period.end.getTime() + DAY_MS).toISOString()) + const sourceTable = [source.namespace, source.table].map(sqlIdentifier).join(".") + const dimensions = + family === "usage" + ? `CASE WHEN grouping(model) = 0 THEN 'model' ELSE 'provider' END AS dimension, + tier, + provider, + CASE WHEN grouping(model) = 0 THEN model END AS model, + CASE WHEN grouping(model) = 0 THEN COALESCE(MAX(NULLIF(provider_model, '')), '') END AS provider_model, + null AS country, + null AS continent` + : `CASE WHEN grouping(model) = 0 THEN 'geo_model' ELSE 'geo' END AS dimension, + tier, + CASE WHEN grouping(model) = 0 THEN provider ELSE 'all' END AS provider, + CASE WHEN grouping(model) = 0 THEN model ELSE 'all' END AS model, + null AS provider_model, + country, + COALESCE(MAX(NULLIF(continent, '')), '') AS continent` + const distinctColumns = + family === "usage" + ? `approx_distinct(session) AS sessions, + approx_distinct(user_key) AS unique_users` + : `0 AS sessions, + 0 AS unique_users` + const groupingSets = + family === "usage" + ? `(tier, provider, model), + (tier, provider)` + : `(tier, country), + (tier, provider, model, country)` const aggregateColumns = ` - COUNT(DISTINCT session) AS sessions, + ${distinctColumns}, COUNT(*) AS requests, - COUNT(DISTINCT user_key) AS unique_users, COALESCE(SUM(tokens_input), 0) AS input_tokens, COALESCE(SUM(tokens_output), 0) AS output_tokens, COALESCE(SUM(tokens_reasoning), 0) AS reasoning_tokens, @@ -38,65 +82,57 @@ export function buildStatsQuery(periodStart: Date, periodEnd: Date) { COALESCE(SUM(cost_output_microcents), 0) AS output_cost_microcents, COALESCE(SUM(cost_total_microcents), 0) AS total_cost_microcents, AVG(duration_ms) AS avg_duration_ms, - approx_percentile(CAST(duration_ms AS double), 0.5) AS p50_duration_ms, - approx_percentile(CAST(duration_ms AS double), 0.95) AS p95_duration_ms, + null AS p50_duration_ms, + null AS p95_duration_ms, AVG(ttfb_ms) AS avg_ttfb_ms, - approx_percentile(CAST(ttfb_ms AS double), 0.5) AS p50_ttfb_ms, - approx_percentile(CAST(ttfb_ms AS double), 0.95) AS p95_ttfb_ms, + null AS p50_ttfb_ms, + null AS p95_ttfb_ms, AVG(output_tps) AS avg_output_tps, - SUM(CASE WHEN status >= 200 AND status < 400 THEN 1 ELSE 0 END) AS success_count, - SUM(CASE WHEN status >= 400 THEN 1 ELSE 0 END) AS error_count, + SUM(CASE WHEN outcome = 'succeeded' THEN 1 ELSE 0 END) AS success_count, + SUM(CASE WHEN outcome = 'failed' THEN 1 ELSE 0 END) AS error_count, COUNT(*) AS sample_count` return ` WITH normalized AS ( SELECT - from_iso8601_timestamp(event_timestamp) AS event_time, - model AS raw_model, - ${statModelSql("model", "provider_model")} AS model, - COALESCE(NULLIF(provider_model, ''), '') AS provider_model, - COALESCE(NULLIF(provider, ''), '') AS raw_provider, - UPPER(COALESCE(NULLIF(cf_country, ''), 'ZZ')) AS country, - COALESCE(NULLIF(cf_continent, ''), '') AS continent, - session, - COALESCE(NULLIF(workspace, ''), '') AS workspace, - COALESCE(NULLIF(api_key, ''), '') AS api_key, + model_requested AS raw_model, + ${statModelSql("model_requested", "route_model")} AS model, + COALESCE(NULLIF(route_model, ''), '') AS provider_model, + COALESCE(NULLIF(provider_id, ''), '') AS raw_provider, + UPPER(COALESCE(NULLIF(country, ''), 'ZZ')) AS country, + COALESCE(NULLIF(continent, ''), '') AS continent, + session_id AS session, + COALESCE(NULLIF(workspace_id, ''), '') AS workspace, + COALESCE(NULLIF(service_api_key_id, ''), '') AS api_key, COALESCE(NULLIF(user_id, ''), '') AS user_id, - status, - duration AS duration_ms, - time_to_first_byte AS ttfb_ms, - timestamp_first_byte, - timestamp_last_byte, + outcome, + duration_ms, + time_to_first_token_ms AS ttfb_ms, + CASE + WHEN first_token_at IS NULL OR last_token_at IS NULL THEN null + ELSE date_part('epoch', last_token_at) - date_part('epoch', first_token_at) + END AS output_seconds, tokens_input, tokens_output, tokens_reasoning, tokens_cache_read, - tokens_cache_write_5m, - tokens_cache_write_1h, - cost_input_microcents, - cost_output_microcents, - cost_total_microcents, - cost_input, - cost_output, - cost_total, - source + tokens_cache_write, + cost_input AS cost_input_microcents, + cost_output AS cost_output_microcents, + cost_total AS cost_total_microcents FROM ${sourceTable} - WHERE event_type = 'completions' - AND model IS NOT NULL - AND model <> '' - AND source = 'lite' - AND event_date >= ${periodStartDateValue} - AND event_date <= ${periodEndDateValue} - AND event_timestamp >= ${periodStartValue} - AND event_timestamp < ${periodEndValue} + WHERE event_type = 'generation.completed' + AND source IN ('inference', 'inference-legacy') + AND product = 'go' + AND model_requested IS NOT NULL + AND model_requested <> '' + AND __ingest_ts >= ${periodStartValue} + AND __ingest_ts < ${ingestEndValue} + AND started_at >= ${periodStartValue} + AND started_at < ${periodEndValue} ), filtered AS ( SELECT - event_time, - CASE - WHEN source = 'lite' THEN 'Go' - WHEN raw_model IN ('gpt-5-nano', 'grok-code', 'big-pickle') OR regexp_like(raw_model, '-free(:global)?$') THEN 'Free' - ELSE 'Paid' - END AS tier, + 'Go' AS tier, ${statProviderSql("model", "provider_model", "raw_provider")} AS provider, provider_model, model, @@ -104,63 +140,39 @@ WITH normalized AS ( continent, session, COALESCE(NULLIF(user_id, ''), NULLIF(workspace, ''), NULLIF(api_key, '')) AS user_key, - status, + outcome, duration_ms, ttfb_ms, CASE - WHEN timestamp_last_byte - timestamp_first_byte < 100 THEN null - ELSE CAST(tokens_output AS double) / (timestamp_last_byte - timestamp_first_byte) * 1000 + WHEN output_seconds < 0.1 THEN null + ELSE CAST(tokens_output AS double) / output_seconds END AS output_tps, tokens_input, tokens_output, tokens_reasoning, tokens_cache_read, - COALESCE(tokens_cache_read, 0) + COALESCE(tokens_cache_write_5m, 0) + COALESCE(tokens_cache_write_1h, 0) + COALESCE(tokens_input, 0) + COALESCE(tokens_output, 0) AS tokens_total, - COALESCE(cost_input_microcents, cost_input * 1000000) AS cost_input_microcents, - COALESCE(cost_output_microcents, cost_output * 1000000) AS cost_output_microcents, - COALESCE(cost_total_microcents, cost_total * 1000000) AS cost_total_microcents + COALESCE(tokens_cache_read, 0) + COALESCE(tokens_cache_write, 0) + COALESCE(tokens_input, 0) + COALESCE(tokens_output, 0) AS tokens_total, + cost_input_microcents, + cost_output_microcents, + cost_total_microcents FROM normalized WHERE lower(model) NOT IN (${[...EXCLUDED_MODELS].map(sqlString).join(", ")}) -), periods AS ( - SELECT - concat(CAST(year_of_week(event_time) AS varchar), '-W', lpad(CAST(week(event_time) AS varchar), 2, '0')) AS week_key, - substr(to_iso8601(date_trunc('day', event_time)), 1, 10) AS day_key, - * - FROM filtered ) SELECT - CASE WHEN grouping(week_key) = 0 THEN 'week' ELSE 'day' END AS grain, - COALESCE(week_key, day_key) AS period_key, - ${sqlString(Resource.StatsSyncConfig.dataset)} AS dataset, - CASE - WHEN grouping(country) = 0 AND grouping(model) = 0 THEN 'geo_model' - WHEN grouping(country) = 0 THEN 'geo' - WHEN grouping(model) = 0 THEN 'model' - ELSE 'provider' - END AS dimension, - tier, - CASE WHEN grouping(provider) = 0 THEN provider ELSE 'all' END AS provider, - CASE WHEN grouping(model) = 0 THEN model WHEN grouping(country) = 0 THEN 'all' END AS model, - CASE WHEN grouping(model) = 0 AND grouping(country) = 1 THEN COALESCE(MAX(NULLIF(provider_model, '')), '') END AS provider_model, - CASE WHEN grouping(country) = 0 THEN country END AS country, - CASE WHEN grouping(country) = 0 THEN COALESCE(MAX(NULLIF(continent, '')), '') END AS continent, + ${sqlString(period.grain)} AS grain, + ${sqlString(period.key)} AS period_key, + ${sqlString(source.dataset)} AS dataset, + ${dimensions}, ${aggregateColumns} -FROM periods +FROM filtered GROUP BY GROUPING SETS ( - (week_key, tier, provider, model), - (week_key, tier, provider), - (week_key, tier, country), - (week_key, tier, provider, model, country), - (day_key, tier, provider, model), - (day_key, tier, provider), - (day_key, tier, country), - (day_key, tier, provider, model, country) + ${groupingSets} ) -ORDER BY grain, period_key, total_tokens DESC +LIMIT 10000 ` } -export function toModelAggregate(data: AthenaData): ModelStatAggregate[] { +export function toModelAggregate(data: R2SqlData): ModelStatAggregate[] { const model = statModel(data.model, data.provider_model) const provider = statProvider(model, data.provider_model, data.provider) if (!provider) return [] @@ -170,13 +182,13 @@ export function toModelAggregate(data: AthenaData): ModelStatAggregate[] { ]) } -export function toProviderAggregate(data: AthenaData): ProviderStatAggregate[] { +export function toProviderAggregate(data: R2SqlData): ProviderStatAggregate[] { return toStatBaseAggregate(data).flatMap((base) => [ { ...base, provider: statProvider(data.model, data.provider_model, data.provider) || "unknown" }, ]) } -export function toGeoAggregate(data: AthenaData): GeoStatAggregate[] { +export function toGeoAggregate(data: R2SqlData): GeoStatAggregate[] { return toStatBaseAggregate(data).flatMap((base) => [ { ...base, @@ -188,7 +200,7 @@ export function toGeoAggregate(data: AthenaData): GeoStatAggregate[] { ]) } -function toStatBaseAggregate(data: AthenaData): StatBaseAggregate[] { +function toStatBaseAggregate(data: R2SqlData): StatBaseAggregate[] { const grain = data.grain === "day" || data.grain === "week" ? data.grain : undefined if (!grain || !data.period_key) return [] @@ -223,21 +235,21 @@ function toStatBaseAggregate(data: AthenaData): StatBaseAggregate[] { ] } -function integer(data: AthenaData, key: string) { +function integer(data: R2SqlData, key: string) { return Math.round(number(data, key)) } -function nullableNumber(data: AthenaData, key: string) { +function nullableNumber(data: R2SqlData, key: string) { if (data[key] === undefined || data[key] === "") return null return Number(number(data, key).toFixed(2)) } -function nullableInteger(data: AthenaData, key: string) { +function nullableInteger(data: R2SqlData, key: string) { if (data[key] === undefined || data[key] === "") return null return Math.round(number(data, key)) } -function number(data: AthenaData, key: string) { +function number(data: R2SqlData, key: string) { const value = Number(data[key]) return Number.isFinite(value) ? value : 0 } @@ -250,6 +262,29 @@ function sqlString(value: string) { return `'${value.replace(/'/g, "''")}'` } +function statPeriods(grain: "day" | "week", periodStart: Date, periodEnd: Date) { + const interval = grain === "day" ? DAY_MS : WEEK_MS + const count = Math.max(0, Math.ceil((periodEnd.getTime() - periodStart.getTime()) / interval)) + return Array.from({ length: count }, (_, index) => { + const start = new Date(periodStart.getTime() + index * interval) + return { + grain, + key: grain === "day" ? start.toISOString().slice(0, 10) : isoWeekKey(start), + start, + end: new Date(Math.min(start.getTime() + interval, periodEnd.getTime())), + } + }) +} + +function isoWeekKey(date: Date) { + const thursday = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate())) + const day = thursday.getUTCDay() || 7 + thursday.setUTCDate(thursday.getUTCDate() + 4 - day) + const year = thursday.getUTCFullYear() + const week = Math.ceil((thursday.getTime() - Date.UTC(year, 0, 1) + DAY_MS) / WEEK_MS) + return `${year}-W${String(week).padStart(2, "0")}` +} + function statModelSql(model: string, providerModel: string) { return `COALESCE(NULLIF(regexp_replace(CASE WHEN lower(${model}) = 'big-pickle' THEN NULLIF(${providerModel}, '') diff --git a/packages/stats/core/src/r2-sql.ts b/packages/stats/core/src/r2-sql.ts new file mode 100644 index 000000000000..91093643c0e2 --- /dev/null +++ b/packages/stats/core/src/r2-sql.ts @@ -0,0 +1,105 @@ +import { Context, Effect, Layer, Schema } from "effect" +import { Resource } from "sst/resource" + +const R2_SQL_MAX_ROWS = 10_000 +const R2SqlValue = Schema.Union([Schema.String, Schema.Number, Schema.Boolean, Schema.Null]) +const R2SqlResponse = Schema.Struct({ + success: Schema.Boolean, + result: Schema.optional( + Schema.NullOr( + Schema.Struct({ + request_id: Schema.String, + rows: Schema.Array(Schema.Record(Schema.String, R2SqlValue)), + }), + ), + ), + errors: Schema.Array(Schema.Unknown), +}) +const decodeResponse = Schema.decodeUnknownEffect(Schema.fromJsonString(R2SqlResponse)) + +export type R2SqlData = Record + +export class R2SqlQueryError extends Error { + readonly _tag = "R2SqlQueryError" + readonly requestId?: string + readonly status?: number + + constructor(input: { message: string; requestId?: string; status?: number; cause?: unknown }) { + super(input.message, { cause: input.cause }) + this.name = "R2SqlQueryError" + this.requestId = input.requestId + this.status = input.status + } +} + +export declare namespace R2Sql { + export interface Service { + readonly query: (query: string) => Effect.Effect + } +} + +export class R2Sql extends Context.Service()("@opencode/stats/R2Sql") { + static readonly layer: Layer.Layer = Layer.succeed( + R2Sql, + R2Sql.of({ + query: Effect.fn("R2Sql.query")(function* (query: string) { + const response = yield* Effect.tryPromise({ + try: () => + Bun.fetch( + `https://api.sql.cloudflarestorage.com/api/v1/accounts/${Resource.R2Sql.accountId}/r2-sql/query/${Resource.R2Sql.bucket}`, + { + method: "POST", + headers: { + Authorization: `Bearer ${Resource.R2SqlAuthToken.value}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ query }), + }, + ), + catch: (cause) => new R2SqlQueryError({ message: "Failed to run R2 SQL stats query", cause }), + }) + const body = yield* Effect.tryPromise({ + try: () => response.text(), + catch: (cause) => + new R2SqlQueryError({ message: "Failed to read R2 SQL stats response", status: response.status, cause }), + }) + const decoded = yield* decodeResponse(body).pipe( + Effect.mapError( + (cause) => + new R2SqlQueryError({ + message: "R2 SQL returned an invalid stats response", + status: response.status, + cause, + }), + ), + ) + if (!response.ok || !decoded.success || !decoded.result) + return yield* Effect.fail( + new R2SqlQueryError({ + message: `R2 SQL stats query failed: ${JSON.stringify(decoded.errors)}`, + requestId: decoded.result?.request_id, + status: response.status, + }), + ) + + // R2 SQL has no OFFSET support and caps LIMIT at 10,000. Each stats + // query is scoped to one day or week, and reaching the cap is treated as + // an error so a newly high-cardinality period can never be truncated. + if (decoded.result.rows.length >= R2_SQL_MAX_ROWS) + return yield* Effect.fail( + new R2SqlQueryError({ + message: `R2 SQL stats query reached the ${R2_SQL_MAX_ROWS} row limit`, + requestId: decoded.result.request_id, + status: response.status, + }), + ) + + return decoded.result.rows.map((row) => + Object.fromEntries( + Object.entries(row).flatMap(([key, value]) => (value === null ? [] : [[key, String(value)]])), + ), + ) + }), + }), + ) +} diff --git a/packages/stats/core/src/resource.d.ts b/packages/stats/core/src/resource.d.ts index 8343f7baa63d..b8017777971e 100644 --- a/packages/stats/core/src/resource.d.ts +++ b/packages/stats/core/src/resource.d.ts @@ -11,6 +11,17 @@ declare module "sst/resource" { type: "sst.sst.Linkable" workgroup: string } + R2Sql: { + accountId: string + bucket: string + namespace: string + table: string + type: "sst.sst.Linkable" + } + R2SqlAuthToken: { + type: "sst.sst.Secret" + value: string + } StatsSyncConfig: { dataset: string type: "sst.sst.Linkable" diff --git a/packages/stats/core/src/stat-sync.ts b/packages/stats/core/src/stat-sync.ts index 736ca852f3f4..ceec6f7e6dcc 100644 --- a/packages/stats/core/src/stat-sync.ts +++ b/packages/stats/core/src/stat-sync.ts @@ -1,12 +1,12 @@ import { DateTime, Effect } from "effect" import { Resource } from "sst/resource" -import { Athena, AthenaQueryError, AthenaQueryTimeoutError } from "./athena" import { DatabaseError } from "./database" import { GeoStatRepo, rowsFromAggregates as geoRowsFromAggregates } from "./domain/geo" -import { buildStatsQuery, toGeoAggregate, toModelAggregate, toProviderAggregate } from "./domain/inference" +import { buildStatsQueries, toGeoAggregate, toModelAggregate, toProviderAggregate } from "./domain/inference" import { ModelStatRepo, rowsFromAggregates as modelRowsFromAggregates } from "./domain/model" import { ProviderStatRepo, rowsFromAggregates as providerRowsFromAggregates } from "./domain/provider" import { startOfIsoWeek } from "./domain/stat" +import { R2Sql, R2SqlQueryError } from "./r2-sql" const DATALAKE_INGESTION_LAG_MS = 5 * 60_000 const STATS_DATA_START_MS = new Date("2026-05-28T00:00:00.000Z").getTime() @@ -18,23 +18,25 @@ const DISPLAY_WINDOW_MS = 56 * 86_400_000 const INCREMENTAL_LOOKBACK_MS = 2 * 3_600_000 export type SyncStatsResult = { ok: true; rows: number; startedAt: string; periodStart: string; periodEnd: string } -export type SyncStatsError = AthenaQueryError | AthenaQueryTimeoutError | DatabaseError +export type SyncStatsError = R2SqlQueryError | DatabaseError export const syncStats: (options?: { full?: boolean -}) => Effect.Effect = +}) => Effect.Effect = Effect.fn("StatSync.sync")(function* (options?: { full?: boolean }) { const startedAt = yield* DateTime.nowAsDate const periodEnd = new Date(Math.floor((startedAt.getTime() - DATALAKE_INGESTION_LAG_MS) / 60_000) * 60_000) const periodStart = options?.full ? fullPeriodStart(periodEnd) : incrementalPeriodStart(periodEnd) - const athena = yield* Athena + const r2Sql = yield* R2Sql const modelStats = yield* ModelStatRepo const providerStats = yield* ProviderStatRepo const geoStats = yield* GeoStatRepo yield* logRuntimeCheck() - const rows = yield* athena.query(buildStatsQuery(periodStart, periodEnd)) + const rows = yield* Effect.forEach(buildStatsQueries(periodStart, periodEnd), r2Sql.query, { + concurrency: 4, + }).pipe(Effect.map((batches) => batches.flat())) const modelRows = modelRowsFromAggregates(rows.filter((row) => row.dimension === "model").flatMap(toModelAggregate)) const providerRows = providerRowsFromAggregates( rows.filter((row) => row.dimension === "provider").flatMap(toProviderAggregate), @@ -77,7 +79,7 @@ export const syncStats: (options?: { } }) -// May 27 was partial, so keep Athena stats anchored at the first complete day. +// May 27 was partial, so keep stats anchored at the first complete day. function fullPeriodStart(periodEnd: Date) { return new Date( Math.max( @@ -99,13 +101,12 @@ function incrementalPeriodStart(periodEnd: Date) { function logRuntimeCheck() { return Effect.logInfo( - `athena stats runtime check ${JSON.stringify({ - catalog: Resource.InferenceEvent.catalog, - database: Resource.InferenceEvent.database, + `r2 sql stats runtime check ${JSON.stringify({ + accountId: Resource.R2Sql.accountId, + bucket: Resource.R2Sql.bucket, dataset: Resource.StatsSyncConfig.dataset, - table: Resource.InferenceEvent.table, - workgroup: Resource.InferenceEvent.workgroup, - region: Resource.InferenceEvent.region, + namespace: Resource.R2Sql.namespace, + table: Resource.R2Sql.table, stage: Resource.App.stage, })}`, ) diff --git a/packages/stats/server/src/stat-sync.ts b/packages/stats/server/src/stat-sync.ts index 613fbec5b7d4..797660963267 100644 --- a/packages/stats/server/src/stat-sync.ts +++ b/packages/stats/server/src/stat-sync.ts @@ -1,6 +1,6 @@ import * as NodeRuntime from "@effect/platform-node/NodeRuntime" -import { Athena } from "@opencode-ai/stats-core/athena" import { ModelStatRepo } from "@opencode-ai/stats-core/domain/model" +import { R2Sql } from "@opencode-ai/stats-core/r2-sql" import { layer as statsLayer } from "@opencode-ai/stats-core/runtime" import { syncStats } from "@opencode-ai/stats-core/stat-sync" import { Cause, Duration, Effect, Layer, Schedule } from "effect" @@ -8,7 +8,7 @@ import { Cause, Duration, Effect, Layer, Schedule } from "effect" const SYNC_INTERVAL = "1 hour" const SYNC_INTERVAL_MS = 3_600_000 -const runtimeLayer = Layer.mergeAll(statsLayer, Athena.layer) +const runtimeLayer = Layer.mergeAll(statsLayer, R2Sql.layer) const daemon = Effect.gen(function* () { yield* Effect.logInfo("stats sync daemon started") @@ -40,9 +40,9 @@ const daemon = Effect.gen(function* () { yield* pass.pipe(Effect.repeat(Schedule.fixed(SYNC_INTERVAL))) }).pipe(Effect.forkScoped) -// A restarted daemon must not immediately re-run the expensive Athena pass; resume -// the hourly cadence from the last completed sync instead. This caps the Athena -// spend of a crash loop at one pass per interval. +// A restarted daemon must not immediately re-run the R2 SQL pass; resume the +// hourly cadence from the last completed sync instead. This caps the query spend +// of a crash loop at one pass per interval. const initialDelay = Effect.fnUntraced(function* () { const modelStats = yield* ModelStatRepo const lastSynced = yield* modelStats.lastSyncedAt().pipe(Effect.catchCause(() => Effect.succeed(null))) From d92d1e654bd1aa8ccb972b3059825314c1633eb8 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 12 Aug 2026 10:51:52 -0400 Subject: [PATCH 19/33] docs(zen): add Grok 4.6 --- packages/web/src/content/docs/ar/zen.mdx | 3 +++ packages/web/src/content/docs/bs/zen.mdx | 3 +++ packages/web/src/content/docs/da/zen.mdx | 3 +++ packages/web/src/content/docs/de/zen.mdx | 3 +++ packages/web/src/content/docs/es/zen.mdx | 3 +++ packages/web/src/content/docs/fr/zen.mdx | 3 +++ packages/web/src/content/docs/it/zen.mdx | 3 +++ packages/web/src/content/docs/ja/zen.mdx | 3 +++ packages/web/src/content/docs/ko/zen.mdx | 3 +++ packages/web/src/content/docs/nb/zen.mdx | 3 +++ packages/web/src/content/docs/pl/zen.mdx | 3 +++ packages/web/src/content/docs/pt-br/zen.mdx | 3 +++ packages/web/src/content/docs/ru/zen.mdx | 3 +++ packages/web/src/content/docs/th/zen.mdx | 3 +++ packages/web/src/content/docs/tr/zen.mdx | 3 +++ packages/web/src/content/docs/zen.mdx | 3 +++ packages/web/src/content/docs/zh-cn/zen.mdx | 3 +++ packages/web/src/content/docs/zh-tw/zen.mdx | 3 +++ 18 files changed, 54 insertions(+) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index 709ddd4eca16..5c3b4b04c4e6 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -90,6 +90,7 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -178,6 +179,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index 84ff2270f5a2..8c315d508d12 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -95,6 +95,7 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index ad869d1f8cb8..fb5b85b77255 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -95,6 +95,7 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**. | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index b836a1764c00..c7e1ad687847 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -86,6 +86,7 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index 1685cbbf07e6..f325c7f124ce 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -95,6 +95,7 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index 85414c4410dc..536224829028 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -86,6 +86,7 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index 7620ee13b072..8b9c50e0f735 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -95,6 +95,7 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**. | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index cb72bab04c2e..0f8b9005befc 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -86,6 +86,7 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index 1369c8ab7aa2..2e8129b8329c 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -86,6 +86,7 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index de0d15ee6dd0..9afef5334842 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -95,6 +95,7 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**. | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index cc52f21def6d..70dabc77e3cd 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -95,6 +95,7 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów* | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index 3364fb61d1c3..95b153962a44 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -86,6 +86,7 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**. | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index 7fb3d06e0ed3..1bd3afa34233 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -95,6 +95,7 @@ OpenCode Zen работает как любой другой провайдер | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index 8ec2945a9049..83b785136a8a 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -88,6 +88,7 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -176,6 +177,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index d15490cc7d71..ec9cd41d509d 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -86,6 +86,7 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 668ba29b23ff..3fa6c16fa24d 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -95,6 +95,7 @@ You can also access our models through the following API endpoints. | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -185,6 +186,8 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index f1e12f3e8031..064bd76b5a05 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -86,6 +86,7 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -174,6 +175,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index 47795d2cde1c..4bb836112dd8 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -90,6 +90,7 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | Gemini 3.5 Flash Lite | gemini-3.5-flash-lite | `https://opencode.ai/zen/v1/models/gemini-3.5-flash-lite` | `@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` | +| Grok 4.6 | grok-4.6 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok 4.5 | grok-4.5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | Qwen3.7 Max | qwen3.7-max | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | @@ -179,6 +180,8 @@ https://opencode.ai/zen/v1/models | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| Grok 4.6 (≤ 200K tokens) | $2.00 | $6.00 | $0.50 | - | +| Grok 4.6 (> 200K tokens) | $4.00 | $12.00 | $1.00 | - | | Grok 4.5 (≤ 200K tokens) | $2.00 | $6.00 | $0.30 | - | | Grok 4.5 (> 200K tokens) | $4.00 | $12.00 | $0.60 | - | | Grok Build 0.1 | $1.00 | $2.00 | $0.20 | - | From 8571a922dbb3d8d72f6b743607fafdd82954ac91 Mon Sep 17 00:00:00 2001 From: Matthew Feroz <136640686+MatthewFeroz@users.noreply.github.com> Date: Wed, 12 Aug 2026 11:31:19 -0400 Subject: [PATCH 20/33] fix(provider): add Merge Gateway reasoning variants (#41867) --- packages/opencode/src/provider/transform.ts | 3 +++ .../opencode/test/provider/provider.test.ts | 27 +++++++++++++++++++ .../opencode/test/provider/transform.test.ts | 20 ++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 4a2738e875ee..fdd03d520566 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -84,6 +84,8 @@ function sdkKey(npm: string): string | undefined { return "gateway" case "@openrouter/ai-sdk-provider": return "openrouter" + case "merge-gateway-ai-sdk-provider": + return "mergeGateway" case "ai-gateway-provider": // ai-gateway-provider/unified wraps createOpenAICompatible({ name: "Unified" }), // and @ai-sdk/openai-compatible parses compatibleOptions from one of @@ -1772,6 +1774,7 @@ function reasoningEffort(model: Provider.Model, effort: string) { case "@ai-sdk/togetherai": case "venice-ai-sdk-provider": case "ai-gateway-provider": + case "merge-gateway-ai-sdk-provider": return { reasoningEffort: effort } case "@ai-sdk/cohere": case "@ai-sdk/perplexity": diff --git a/packages/opencode/test/provider/provider.test.ts b/packages/opencode/test/provider/provider.test.ts index 44e82c7e1f44..df23a5c4963e 100644 --- a/packages/opencode/test/provider/provider.test.ts +++ b/packages/opencode/test/provider/provider.test.ts @@ -1548,6 +1548,33 @@ test("models.dev reasoning options replace generated variants and unsupported to expect(models["gemini-3-pro-fast"].variants).toEqual(models.override.variants) }) +test("MERGE Gateway exposes declared effort variants without model-specific handling", () => { + const provider = { + id: "merge-gateway", + name: "MERGE Gateway", + env: ["MERGE_GATEWAY_API_KEY"], + npm: "merge-gateway-ai-sdk-provider", + models: { + "openai/gpt-5.6-sol": { + id: "openai/gpt-5.6-sol", + name: "GPT-5.6 Sol", + reasoning: true, + reasoning_options: [{ type: "effort", values: ["none", "low", "medium", "high", "xhigh", "max"] }], + limit: { context: 128_000, output: 64_000 }, + }, + }, + } as unknown as ModelsDev.Provider + + expect(Provider.fromModelsDevProvider(provider).models["openai/gpt-5.6-sol"].variants).toEqual({ + none: { reasoningEffort: "none" }, + low: { reasoningEffort: "low" }, + medium: { reasoningEffort: "medium" }, + high: { reasoningEffort: "high" }, + xhigh: { reasoningEffort: "xhigh" }, + max: { reasoningEffort: "max" }, + }) +}) + test("public provider info omits invalid models", () => { const provider = Provider.fromModelsDevProvider({ id: "test", diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index d1e437642e65..701658987402 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -3370,6 +3370,7 @@ describe("ProviderTransform.reasoningVariants", () => { ["@ai-sdk/togetherai", { reasoningEffort: "high" }], ["venice-ai-sdk-provider", { reasoningEffort: "high" }], ["ai-gateway-provider", { reasoningEffort: "high" }], + ["merge-gateway-ai-sdk-provider", { reasoningEffort: "high" }], ["@ai-sdk/amazon-bedrock", { reasoningConfig: { type: "enabled", maxReasoningEffort: "high" } }], ])("converts effort for %s", (npm, expected, ...args) => { const id = args[0] as string | undefined @@ -5555,6 +5556,25 @@ describe("ProviderTransform.providerOptions - ai-gateway-provider", () => { }) }) +describe("ProviderTransform.providerOptions - merge-gateway-ai-sdk-provider", () => { + const model = { + id: "merge-gateway/openai/gpt-5.6-sol", + providerID: "merge-gateway", + api: { + id: "openai/gpt-5.6-sol", + url: "https://api-gateway.merge.dev/v1/ai-sdk", + npm: "merge-gateway-ai-sdk-provider", + }, + capabilities: { reasoning: true }, + } as any + + test("routes normalized effort under the adapter's mergeGateway key", () => { + expect(ProviderTransform.providerOptions(model, { reasoningEffort: "high" })).toEqual({ + mergeGateway: { reasoningEffort: "high" }, + }) + }) +}) + describe("ProviderTransform.options - kimi family adaptive thinking", () => { const createModel = (overrides: Record = {}) => ({ From ca3df21b7f8c2fa0adc07fdf3b7f33f29f5e1385 Mon Sep 17 00:00:00 2001 From: SKY ZHAO Date: Wed, 12 Aug 2026 23:31:47 +0800 Subject: [PATCH 21/33] docs: fix broken DigitalOcean and Daytona links (#42048) Co-authored-by: skyzhao1223 --- packages/web/src/content/docs/ecosystem.mdx | 2 +- packages/web/src/content/docs/providers.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/src/content/docs/ecosystem.mdx b/packages/web/src/content/docs/ecosystem.mdx index ce4f3100afb5..6c13b3004caf 100644 --- a/packages/web/src/content/docs/ecosystem.mdx +++ b/packages/web/src/content/docs/ecosystem.mdx @@ -17,7 +17,7 @@ You can also check out [awesome-opencode](https://github.com/awesome-opencode/aw | Name | Description | | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| [opencode-daytona](https://github.com/daytonaio/daytona/tree/main/libs/opencode-plugin) | Automatically run OpenCode sessions in isolated Daytona sandboxes with git sync and live previews | +| [opencode-daytona](https://github.com/daytona/integrations/tree/main/packages/opencode-plugin) | Automatically run OpenCode sessions in isolated Daytona sandboxes with git sync and live previews | | [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) | Automatically inject Helicone session headers for request grouping | | [opencode-type-inject](https://github.com/nick-vi/opencode-type-inject) | Auto-inject TypeScript/Svelte types into file reads with lookup tools | | [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Use your ChatGPT Plus/Pro subscription instead of API credits | diff --git a/packages/web/src/content/docs/providers.mdx b/packages/web/src/content/docs/providers.mdx index a5a17de3a34d..ce40ce5a004c 100644 --- a/packages/web/src/content/docs/providers.mdx +++ b/packages/web/src/content/docs/providers.mdx @@ -759,7 +759,7 @@ Cloudflare Workers AI lets you run AI models on Cloudflare's global network dire ### DigitalOcean -DigitalOcean's [Inference Engine](https://docs.digitalocean.com/products/inference/) provides access to open models like GPT-OSS, Llama, Qwen, and DeepSeek, plus custom [Inference Routers](https://docs.digitalocean.com/products/genai-platform/concepts/inference-routers/) that route each request to the cheapest, fastest, or best-fit model for a task. +DigitalOcean's [Inference Engine](https://docs.digitalocean.com/products/inference/) provides access to open models like GPT-OSS, Llama, Qwen, and DeepSeek, plus custom [Inference Routers](https://docs.digitalocean.com/products/inference/how-to/use-inference-router/) that route each request to the cheapest, fastest, or best-fit model for a task. OpenCode supports two authentication methods: From 959c8bd4981fe838df102ddb7a7974e3117e92c6 Mon Sep 17 00:00:00 2001 From: SKY ZHAO Date: Wed, 12 Aug 2026 23:32:23 +0800 Subject: [PATCH 22/33] docs: fix provider display name and PAT typos (#42034) Co-authored-by: skyzhao1223 --- packages/web/src/content/docs/github.mdx | 2 +- packages/web/src/content/docs/providers.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web/src/content/docs/github.mdx b/packages/web/src/content/docs/github.mdx index a31fe1e7be82..e940b616b157 100644 --- a/packages/web/src/content/docs/github.mdx +++ b/packages/web/src/content/docs/github.mdx @@ -97,7 +97,7 @@ Or you can set it up manually. issues: write ``` - You can also use a [personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) if preferred. + You can also use a [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT) if preferred. --- diff --git a/packages/web/src/content/docs/providers.mdx b/packages/web/src/content/docs/providers.mdx index ce40ce5a004c..1a5d0fd23a97 100644 --- a/packages/web/src/content/docs/providers.mdx +++ b/packages/web/src/content/docs/providers.mdx @@ -2487,7 +2487,7 @@ You can use any OpenAI-compatible provider with opencode. Most modern AI provide "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", - "name": "My AI ProviderDisplay Name", + "name": "My AI Provider Display Name", "options": { "baseURL": "https://api.myprovider.com/v1" }, @@ -2525,7 +2525,7 @@ Here's an example setting the `apiKey`, `headers`, and model `limit` options. "provider": { "myprovider": { "npm": "@ai-sdk/openai-compatible", - "name": "My AI ProviderDisplay Name", + "name": "My AI Provider Display Name", "options": { "baseURL": "https://api.myprovider.com/v1", "apiKey": "{env:ANTHROPIC_API_KEY}", From 7e0353cca93e4fc1e1f93cb58ea51603fbf83cd9 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 12 Aug 2026 11:36:23 -0500 Subject: [PATCH 23/33] fix(stats): correct r2 daily totals --- .../stats/core/src/domain/inference.test.ts | 38 +++++++++++++++++++ packages/stats/core/src/domain/inference.ts | 33 +++++++++------- 2 files changed, 58 insertions(+), 13 deletions(-) diff --git a/packages/stats/core/src/domain/inference.test.ts b/packages/stats/core/src/domain/inference.test.ts index f58e7deab6a7..858d2ab7fb40 100644 --- a/packages/stats/core/src/domain/inference.test.ts +++ b/packages/stats/core/src/domain/inference.test.ts @@ -103,6 +103,44 @@ describe("inference stat normalization", () => { expect(queries[1]).toContain("'geo_model' ELSE 'geo'") expect(queries[1]).toContain("0 AS sessions") }) + + test("aligns periods to UTC calendar boundaries", () => { + const queries = buildStatsQueries( + new Date("2026-06-17T15:56:00.000Z"), + new Date("2026-06-19T15:56:00.000Z"), + { + namespace: "inference", + table: "generation", + dataset: "zen", + }, + ) + + expect(queries).toHaveLength(8) + expect(queries[0]).toContain("'2026-W25' AS period_key") + expect(queries[0]).toContain("started_at >= '2026-06-15T00:00:00.000Z'") + expect(queries[2]).toContain("'2026-06-17' AS period_key") + expect(queries[2]).toContain("started_at >= '2026-06-17T00:00:00.000Z'") + expect(queries[2]).toContain("started_at < '2026-06-18T00:00:00.000Z'") + expect(queries[6]).toContain("'2026-06-19' AS period_key") + expect(queries[6]).toContain("started_at < '2026-06-19T15:56:00.000Z'") + }) + + test("uses an exclusive live and legacy source handoff", () => { + const [query] = buildStatsQueries( + new Date("2026-08-11T00:00:00.000Z"), + new Date("2026-08-12T00:00:00.000Z"), + { + namespace: "inference", + table: "generation", + dataset: "zen", + }, + ) + + expect(query).toContain( + "(source = 'inference-legacy' AND started_at < '2026-08-11T10:57:48.186Z')", + ) + expect(query).toContain("(source = 'inference' AND started_at >= '2026-08-11T10:57:48.186Z')") + }) }) function aggregate(model: string, provider: string) { diff --git a/packages/stats/core/src/domain/inference.ts b/packages/stats/core/src/domain/inference.ts index ad2460530548..178bfd75deac 100644 --- a/packages/stats/core/src/domain/inference.ts +++ b/packages/stats/core/src/domain/inference.ts @@ -10,7 +10,14 @@ import { statProvider, } from "./model-normalization" import type { ProviderStatAggregate } from "./provider" -import { normalizeCountry, normalizeTier, type StatBaseAggregate } from "./stat" +import { + normalizeCountry, + normalizeTier, + periodKeyFor, + startOfIsoWeek, + startOfUtcDay, + type StatBaseAggregate, +} from "./stat" export type StatDimension = "model" | "provider" | "geo" | "geo_model" export type StatsQuerySource = { namespace: string; table: string; dataset: string } @@ -18,6 +25,10 @@ type StatsQueryFamily = "usage" | "geo" const DAY_MS = 86_400_000 const WEEK_MS = 7 * DAY_MS +// The typed production stream began before the legacy backfill's original end +// boundary. Use one exclusive handoff so the overlapping rows are never counted +// from both sources. +const LIVE_SOURCE_START = "2026-08-11T10:57:48.186Z" // R2 SQL limits result sets to 10,000 rows and does not support OFFSET. Two // queries per day/week keep each result bounded and avoid combining the costly @@ -123,6 +134,10 @@ WITH normalized AS ( FROM ${sourceTable} WHERE event_type = 'generation.completed' AND source IN ('inference', 'inference-legacy') + AND ( + (source = 'inference-legacy' AND started_at < ${sqlString(LIVE_SOURCE_START)}) + OR (source = 'inference' AND started_at >= ${sqlString(LIVE_SOURCE_START)}) + ) AND product = 'go' AND model_requested IS NOT NULL AND model_requested <> '' @@ -264,27 +279,19 @@ function sqlString(value: string) { function statPeriods(grain: "day" | "week", periodStart: Date, periodEnd: Date) { const interval = grain === "day" ? DAY_MS : WEEK_MS - const count = Math.max(0, Math.ceil((periodEnd.getTime() - periodStart.getTime()) / interval)) + const first = grain === "day" ? startOfUtcDay(periodStart) : startOfIsoWeek(periodStart) + const count = Math.max(0, Math.ceil((periodEnd.getTime() - first.getTime()) / interval)) return Array.from({ length: count }, (_, index) => { - const start = new Date(periodStart.getTime() + index * interval) + const start = new Date(first.getTime() + index * interval) return { grain, - key: grain === "day" ? start.toISOString().slice(0, 10) : isoWeekKey(start), + key: periodKeyFor(grain, start), start, end: new Date(Math.min(start.getTime() + interval, periodEnd.getTime())), } }) } -function isoWeekKey(date: Date) { - const thursday = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate())) - const day = thursday.getUTCDay() || 7 - thursday.setUTCDate(thursday.getUTCDate() + 4 - day) - const year = thursday.getUTCFullYear() - const week = Math.ceil((thursday.getTime() - Date.UTC(year, 0, 1) + DAY_MS) / WEEK_MS) - return `${year}-W${String(week).padStart(2, "0")}` -} - function statModelSql(model: string, providerModel: string) { return `COALESCE(NULLIF(regexp_replace(CASE WHEN lower(${model}) = 'big-pickle' THEN NULLIF(${providerModel}, '') From 284187ac55b9c38e3831143bed6c64053e8c85cc Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 12 Aug 2026 11:45:00 -0500 Subject: [PATCH 24/33] fix(ci): authenticate pulumi downloads --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 18e6cf7acb44..ef977a93bd2d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -35,6 +35,7 @@ jobs: - run: bun sst deploy --stage=${{ github.ref_name }} env: + GITHUB_TOKEN: ${{ github.token }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} PLANETSCALE_SERVICE_TOKEN_NAME: ${{ secrets.PLANETSCALE_SERVICE_TOKEN_NAME }} PLANETSCALE_SERVICE_TOKEN: ${{ secrets.PLANETSCALE_SERVICE_TOKEN }} From 6d3ae4d63d9b4116b97e4cf77516ebf1467e1c48 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Wed, 12 Aug 2026 16:47:08 +0000 Subject: [PATCH 25/33] chore: generate --- .../stats/core/src/domain/inference.test.ts | 32 +++++++------------ 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/packages/stats/core/src/domain/inference.test.ts b/packages/stats/core/src/domain/inference.test.ts index 858d2ab7fb40..57236d294957 100644 --- a/packages/stats/core/src/domain/inference.test.ts +++ b/packages/stats/core/src/domain/inference.test.ts @@ -105,15 +105,11 @@ describe("inference stat normalization", () => { }) test("aligns periods to UTC calendar boundaries", () => { - const queries = buildStatsQueries( - new Date("2026-06-17T15:56:00.000Z"), - new Date("2026-06-19T15:56:00.000Z"), - { - namespace: "inference", - table: "generation", - dataset: "zen", - }, - ) + const queries = buildStatsQueries(new Date("2026-06-17T15:56:00.000Z"), new Date("2026-06-19T15:56:00.000Z"), { + namespace: "inference", + table: "generation", + dataset: "zen", + }) expect(queries).toHaveLength(8) expect(queries[0]).toContain("'2026-W25' AS period_key") @@ -126,19 +122,13 @@ describe("inference stat normalization", () => { }) test("uses an exclusive live and legacy source handoff", () => { - const [query] = buildStatsQueries( - new Date("2026-08-11T00:00:00.000Z"), - new Date("2026-08-12T00:00:00.000Z"), - { - namespace: "inference", - table: "generation", - dataset: "zen", - }, - ) + const [query] = buildStatsQueries(new Date("2026-08-11T00:00:00.000Z"), new Date("2026-08-12T00:00:00.000Z"), { + namespace: "inference", + table: "generation", + dataset: "zen", + }) - expect(query).toContain( - "(source = 'inference-legacy' AND started_at < '2026-08-11T10:57:48.186Z')", - ) + expect(query).toContain("(source = 'inference-legacy' AND started_at < '2026-08-11T10:57:48.186Z')") expect(query).toContain("(source = 'inference' AND started_at >= '2026-08-11T10:57:48.186Z')") }) }) From df09c3ec6134ca0a9a22614de9aca7e3b122dcfb Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 12 Aug 2026 12:48:08 -0400 Subject: [PATCH 26/33] update ds v4 pro --- packages/console/app/src/routes/zen/util/handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts index 445bc369be1a..951228c9e7e9 100644 --- a/packages/console/app/src/routes/zen/util/handler.ts +++ b/packages/console/app/src/routes/zen/util/handler.ts @@ -139,7 +139,7 @@ export async function handler( if ( authInfo && opts.modelList === "lite" && - modelInfo.id === "deepseek-v4-flash" && + ["deepseek-v4-flash", "deepseek-v4-pro"].includes(modelInfo.id) && !allowedRegions?.includes("cn") ) throw new RegionError( From 521906f5fae2af065a84a6050141ed946452577a Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 12:53:58 -0400 Subject: [PATCH 27/33] docs(go): clarify DeepSeek ZDR coverage (#42085) Co-authored-by: Dax Raad --- packages/web/src/content/docs/go.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web/src/content/docs/go.mdx b/packages/web/src/content/docs/go.mdx index 507c901a76e4..de70705c1c2f 100644 --- a/packages/web/src/content/docs/go.mdx +++ b/packages/web/src/content/docs/go.mdx @@ -252,13 +252,13 @@ https://opencode.ai/zen/go/v1/models | Qwen3.6 Plus | Not used | 0 days | | MiniMax M3 | Not used | 0 days | | MiniMax M2.7 | Not used | 0 days | -| DeepSeek V4 Pro | Not used | 0 days | -| DeepSeek V4 Flash | Not used | 0 days | +| DeepSeek V4 Pro | Not used | 0 days* | +| DeepSeek V4 Flash | Not used | 0 days* | | Hy3 | Not used | 0 days | - **Grok 4.5:** ZDR disables important API features that depend on stored data, including the stateful Responses API, Files and Collections, and the Batch API. [Learn more](https://docs.x.ai/developers/faq/security#what-is-zero-data-retention-zdr). - **GPT 5.6 Luna:** Abuse monitoring logs are generated for all API feature usage and retained for up to 30 days. [Learn more](https://developers.openai.com/api/docs/guides/your-data#data-retention-controls-for-abuse-monitoring). -- **DeepSeek V4 Flash:** ZDR agreement is renewed monthly. The current agreement is valid through August 31, 2026. +- **DeepSeek:** ZDR agreement is renewed monthly. The current agreement is valid through August 31, 2026. --- From 999be62662c7720cffbe75465fdf318fdbfea92d Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Wed, 12 Aug 2026 16:56:04 +0000 Subject: [PATCH 28/33] chore: generate --- packages/web/src/content/docs/go.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/src/content/docs/go.mdx b/packages/web/src/content/docs/go.mdx index de70705c1c2f..892010586faf 100644 --- a/packages/web/src/content/docs/go.mdx +++ b/packages/web/src/content/docs/go.mdx @@ -252,8 +252,8 @@ https://opencode.ai/zen/go/v1/models | Qwen3.6 Plus | Not used | 0 days | | MiniMax M3 | Not used | 0 days | | MiniMax M2.7 | Not used | 0 days | -| DeepSeek V4 Pro | Not used | 0 days* | -| DeepSeek V4 Flash | Not used | 0 days* | +| DeepSeek V4 Pro | Not used | 0 days\* | +| DeepSeek V4 Flash | Not used | 0 days\* | | Hy3 | Not used | 0 days | - **Grok 4.5:** ZDR disables important API features that depend on stored data, including the stateful Responses API, Files and Collections, and the Batch API. [Learn more](https://docs.x.ai/developers/faq/security#what-is-zero-data-retention-zdr). From 39fb919a054190498f6d5b7985bde231f93ad7a6 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 13:30:38 -0500 Subject: [PATCH 29/33] chore: add neriousy to team members (#42107) Co-authored-by: Aiden Cline --- .github/TEAM_MEMBERS | 1 + .opencode/tool/github-triage.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/TEAM_MEMBERS b/.github/TEAM_MEMBERS index ee2e26f45233..5268ff59ddc8 100644 --- a/.github/TEAM_MEMBERS +++ b/.github/TEAM_MEMBERS @@ -10,6 +10,7 @@ kitlangton kommander ludvigrask MrMushrooooom +neriousy nexxeln R44VC0RP rekram1-node diff --git a/.opencode/tool/github-triage.ts b/.opencode/tool/github-triage.ts index e861e1e467b2..d610a81e497e 100644 --- a/.opencode/tool/github-triage.ts +++ b/.opencode/tool/github-triage.ts @@ -4,7 +4,7 @@ import { tool } from "@opencode-ai/plugin" const TEAM = { tui: ["kommander", "simonklee"], desktop_web: ["Hona", "Brendonovich"], - core: ["jlongster", "rekram1-node", "nexxeln", "kitlangton"], + core: ["jlongster", "rekram1-node", "neriousy", "nexxeln", "kitlangton"], inference: ["fwang", "MrMushrooooom", "starptech"], windows: ["Hona"], } as const From dab2637217f188afca5e6631f67b935723e6218a Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Wed, 12 Aug 2026 14:36:51 -0500 Subject: [PATCH 30/33] fix(compaction): adjust instructions and structure to be more clear to smaller models like dsv4 flash (#42045) Co-authored-by: akenra <37288280+akenra@users.noreply.github.com> --- packages/core/src/plugin/agent.ts | 8 +- packages/core/src/session/compaction.ts | 44 ++++++----- packages/core/src/v1/config/config.ts | 2 +- packages/core/test/session-compaction.test.ts | 20 +++++ packages/core/test/session-runner.test.ts | 63 +++++++++++++++- .../opencode/src/agent/prompt/compaction.txt | 8 +- packages/opencode/src/session/compaction.ts | 41 ++++++----- .../opencode/test/session/compaction.test.ts | 73 ++++++++++++++++++- 8 files changed, 207 insertions(+), 52 deletions(-) diff --git a/packages/core/src/plugin/agent.ts b/packages/core/src/plugin/agent.ts index 9a763c7ea9b8..915df79d5be5 100644 --- a/packages/core/src/plugin/agent.ts +++ b/packages/core/src/plugin/agent.ts @@ -30,15 +30,11 @@ Guidelines: Complete the user's search request efficiently and report your findings clearly.` -const PROMPT_COMPACTION = `You are an anchored context summarization assistant for coding sessions. - -Summarize only the conversation history you are given. The newest turns may be kept verbatim outside your summary, so focus on the older context that still matters for continuing the work. - -If the prompt includes a block, treat it as the current anchored summary. Update it with the new history by preserving still-true details, removing stale details, and merging in new facts. +const PROMPT_COMPACTION = `You are a context summarization agent. You are given a conversation between a user and an agent. Your goal is to produce a structured summary matching the format specified so another coding agent can continue the work. Always follow the exact output structure requested by the user prompt. Keep every section, preserve exact file paths and identifiers when known, and prefer terse bullets over paragraphs. -Do not answer the conversation itself. Do not mention that you are summarizing, compacting, or merging context. Respond in the same language as the conversation.` +Do not continue the conversation. Do not respond to any questions in the conversation. Only output the structured summary in the exact format requested by the user prompt. Respond in the same language as the conversation.` const PROMPT_TITLE = `You are a title generator. You output ONLY a thread title. Nothing else. diff --git a/packages/core/src/session/compaction.ts b/packages/core/src/session/compaction.ts index 4b21ff348fe4..ea4cf04aaade 100644 --- a/packages/core/src/session/compaction.ts +++ b/packages/core/src/session/compaction.ts @@ -44,6 +44,15 @@ Rules: - Use terse bullets, not prose paragraphs. - Preserve exact file paths, symbols, commands, error strings, URLs, and identifiers when known. - Do not mention the summary process or that context was compacted.` +const SUMMARY_UPDATE_INSTRUCTIONS = `The summarizes everything that happened before the . Construct a new summary that combines both. The is discarded after this: anything you do not carry into the new summary is lost. + +When combining: +- Carry forward objectives, constraints, user directives, decisions, and parallel workstreams from the even when the does not mention them. Drop only what is finished and no longer needed. +- The is more recent than the . Where they conflict, the conversation wins: state the corrected fact and drop the old claim. +- Add new progress, decisions, constraints, and context from the conversation. +- Move completed work from "Active" to "Completed". +- If a blocker has been resolved, update the summary to reflect that while keeping any details still needed to continue the work. +- Update "Objective" and "Next Move" to reflect the current work state.` type Entry = { readonly seq: number @@ -136,36 +145,33 @@ const select = ( if (conversation.length === 0) return let total = 0 let split = conversation.length - let splitPrefix = "" - let splitSuffix = "" for (let index = conversation.length - 1; index >= 0; index--) { const next = total + Token.estimate(conversation[index]) - if (next > tokens) { - const remaining = Math.max(0, tokens - total) * 4 - if (remaining > 0) { - splitPrefix = conversation[index].slice(0, -remaining) - splitSuffix = conversation[index].slice(-remaining) - split = index + 1 - } - break - } + if (next > tokens) break total = next split = index } return { - head: [...conversation.slice(0, split), splitPrefix].filter(Boolean).join("\n\n"), - recent: [splitSuffix, ...conversation.slice(split)].filter(Boolean).join("\n\n"), + head: conversation.slice(0, split).join("\n\n"), + recent: conversation.slice(split).join("\n\n"), } } -export const buildPrompt = (input: { readonly previousSummary?: string; readonly context: readonly string[] }) => - [ - input.previousSummary - ? `Update the anchored summary below using the conversation history above.\nPreserve still-true details, remove stale details, and merge in the new facts.\n\n${input.previousSummary}\n` - : "Create a new anchored summary from the conversation history.", +export const buildPrompt = (input: { readonly previousSummary?: string; readonly context: readonly string[] }) => { + const conversation = `Here is the conversation so far:\n\n\n${input.context.join("\n\n")}\n` + if (!input.previousSummary) + return [ + conversation, + "Create a new anchored summary from the conversation history in the tags above so another coding agent can continue the work.", + SUMMARY_TEMPLATE, + ].join("\n\n") + return [ + conversation, + `Here is the summary of the conversation before the above:\n\n\n${input.previousSummary}\n`, + SUMMARY_UPDATE_INSTRUCTIONS, SUMMARY_TEMPLATE, - ...input.context, ].join("\n\n") +} export const make = (dependencies: Dependencies) => { const config = settings(dependencies.config) diff --git a/packages/core/src/v1/config/config.ts b/packages/core/src/v1/config/config.ts index 691f55150aed..7ebb4b69b023 100644 --- a/packages/core/src/v1/config/config.ts +++ b/packages/core/src/v1/config/config.ts @@ -156,7 +156,7 @@ export const Info = Schema.Struct({ }), tail_turns: Schema.optional(NonNegativeInt).annotate({ description: - "Number of recent user turns, including their following assistant/tool responses, to keep verbatim during compaction (default: 2)", + "Maximum number of recent user turns, including their following assistant/tool responses, to keep verbatim during compaction. By default retention is limited only by the preserved token budget.", }), preserve_recent_tokens: Schema.optional(NonNegativeInt).annotate({ description: "Maximum number of tokens from recent turns to preserve verbatim after compaction", diff --git a/packages/core/test/session-compaction.test.ts b/packages/core/test/session-compaction.test.ts index 9d45e0acc334..246ddc35f5ab 100644 --- a/packages/core/test/session-compaction.test.ts +++ b/packages/core/test/session-compaction.test.ts @@ -4,12 +4,32 @@ import { SessionCompaction } from "@opencode-ai/core/session/compaction" test("compaction prompt preserves detailed work state and relevant files", () => { const prompt = SessionCompaction.buildPrompt({ context: ["conversation history"] }) + expect(prompt).toStartWith( + "Here is the conversation so far:\n\n\nconversation history\n", + ) + expect(prompt.indexOf("")).toBeLessThan(prompt.indexOf("Create a new anchored summary")) + expect(prompt).toContain("conversation history in the tags above") expect(prompt).toContain("## Work State\n### Completed") expect(prompt).toContain("### Active") expect(prompt).toContain("### Blocked") expect(prompt).toContain("## Relevant Files") }) +test("compaction prompt gives update instructions for a prior summary", () => { + const prompt = SessionCompaction.buildPrompt({ + context: ["new conversation"], + previousSummary: "existing summary", + }) + + expect(prompt.indexOf("")).toBeLessThan(prompt.indexOf("")) + expect(prompt.indexOf("")).toBeLessThan(prompt.indexOf("The summarizes")) + expect(prompt).toContain( + "Carry forward objectives, constraints, user directives, decisions, and parallel workstreams from the ", + ) + expect(prompt).toContain('Move completed work from "Active" to "Completed".') + expect(prompt).toContain('Update "Objective" and "Next Move" to reflect the current work state.') +}) + test("compaction describes tool media without embedding base64", () => { const base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB" const serialized = SessionCompaction.serializeToolContent([ diff --git a/packages/core/test/session-runner.test.ts b/packages/core/test/session-runner.test.ts index 0515d55cf5be..57d4456d2df2 100644 --- a/packages/core/test/session-runner.test.ts +++ b/packages/core/test/session-runner.test.ts @@ -1135,7 +1135,7 @@ describe("SessionRunnerLLM", () => { expect(requests).toHaveLength(2) expect(userTexts(requests[0])[0]).toContain( - "\n## Objective\n- Preserve the task\n", + "\n## Objective\n- Preserve the task\n", ) expect(userTexts(requests[0])[0]).toContain("Recent exact request") expect((yield* (yield* SessionStore.Service).context(sessionID))[0]).toMatchObject({ @@ -1145,6 +1145,67 @@ describe("SessionRunnerLLM", () => { }), ) + it.effect("retains only complete serialized messages during compaction", () => + Effect.gen(function* () { + yield* setup + const session = yield* SessionV2.Service + const earlier = `EARLIER_BOUNDARY ${"a".repeat(3_000)} EARLIER_END` + const recent = `RECENT_BOUNDARY ${"b".repeat(3_000)} RECENT_END` + response = fragmentFixture("text", "text-earlier", ["Earlier answer"]).completeEvents + yield* session.prompt({ sessionID, prompt: Prompt.make({ text: earlier }), resume: false }) + yield* session.resume(sessionID) + + currentModel = compactModel + requests.length = 0 + responses = [ + fragmentFixture("text", "text-summary", ["## Objective\n- Preserve the task"]).completeEvents, + fragmentFixture("text", "text-final", ["Continued"]).completeEvents, + ] + yield* session.prompt({ sessionID, prompt: Prompt.make({ text: recent }), resume: false }) + yield* session.resume(sessionID) + + expect(requests).toHaveLength(2) + const summary = userTexts(requests[0])[0] + const continuation = userTexts(requests[1])[0] + expect(summary.match(/EARLIER_BOUNDARY/g)).toHaveLength(1) + expect(summary).toContain(`EARLIER_BOUNDARY ${"a".repeat(3_000)} EARLIER_END`) + expect(summary).not.toContain("RECENT_BOUNDARY") + expect(continuation).not.toContain("EARLIER_BOUNDARY") + expect(continuation).not.toContain("EARLIER_END") + expect(continuation).toContain("\n[Assistant]: Earlier answer") + expect(continuation).toContain(`RECENT_BOUNDARY ${"b".repeat(3_000)} RECENT_END`) + }), + ) + + it.effect("summarizes an oversized newest message without retaining a fragment", () => + Effect.gen(function* () { + yield* setup + const session = yield* SessionV2.Service + response = fragmentFixture("text", "text-earlier", ["Earlier answer"]).completeEvents + yield* session.prompt({ sessionID, prompt: Prompt.make({ text: "Earlier question" }), resume: false }) + yield* session.resume(sessionID) + + const oversized = `OVERSIZED_BOUNDARY ${"x".repeat(4_500)} OVERSIZED_END` + currentModel = compactModel + requests.length = 0 + responses = [ + fragmentFixture("text", "text-summary", ["## Objective\n- Preserve the task"]).completeEvents, + fragmentFixture("text", "text-final", ["Continued"]).completeEvents, + ] + yield* session.prompt({ sessionID, prompt: Prompt.make({ text: oversized }), resume: false }) + yield* session.resume(sessionID) + + expect(requests).toHaveLength(2) + const summary = userTexts(requests[0])[0] + const continuation = userTexts(requests[1])[0] + expect(summary.match(/OVERSIZED_BOUNDARY/g)).toHaveLength(1) + expect(summary).toContain(oversized) + expect(continuation).not.toContain("OVERSIZED_BOUNDARY") + expect(continuation).not.toContain("OVERSIZED_END") + expect(continuation).toContain("\n\n") + }), + ) + it.effect("forces one compaction and retries after provider context overflow", () => Effect.gen(function* () { const session = yield* setupOverflowRecovery diff --git a/packages/opencode/src/agent/prompt/compaction.txt b/packages/opencode/src/agent/prompt/compaction.txt index c7cb838bbaa0..1bf58de8a92c 100644 --- a/packages/opencode/src/agent/prompt/compaction.txt +++ b/packages/opencode/src/agent/prompt/compaction.txt @@ -1,9 +1,5 @@ -You are an anchored context summarization assistant for coding sessions. - -Summarize only the conversation history you are given. The newest turns may be kept verbatim outside your summary, so focus on the older context that still matters for continuing the work. - -If the prompt includes a block, treat it as the current anchored summary. Update it with the new history by preserving still-true details, removing stale details, and merging in new facts. +You are a context summarization agent. You are given a conversation between a user and an agent. Your goal is to produce a structured summary matching the format specified so another coding agent can continue the work. Always follow the exact output structure requested by the user prompt. Keep every section, preserve exact file paths and identifiers when known, and prefer terse bullets over paragraphs. -Do not answer the conversation itself. Do not mention that you are summarizing, compacting, or merging context. Respond in the same language as the conversation. +Do not continue the conversation. Do not respond to any questions in the conversation. Only output the structured summary in the exact format requested by the user prompt. Respond in the same language as the conversation. diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index 7693f5ccfdcc..75d6374bfa54 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -29,9 +29,8 @@ export const PRUNE_MINIMUM = 20_000 export const PRUNE_PROTECT = 40_000 const TOOL_OUTPUT_MAX_CHARS = 2_000 const PRUNE_PROTECTED_TOOLS = ["skill"] -const DEFAULT_TAIL_TURNS = 2 const MIN_PRESERVE_RECENT_TOKENS = 2_000 -const MAX_PRESERVE_RECENT_TOKENS = 8_000 +const MAX_PRESERVE_RECENT_TOKENS = 15_000 type Turn = { start: number end: number @@ -226,27 +225,22 @@ const layer = Layer.effect( cfg: ConfigV1.Info model: Provider.Model }) { - const limit = input.cfg.compaction?.tail_turns ?? DEFAULT_TAIL_TURNS - if (limit <= 0) return { head: input.messages, tail_start_id: undefined } + const limit = input.cfg.compaction?.tail_turns + if (limit !== undefined && limit <= 0) return { head: input.messages, tail_start_id: undefined } const budget = preserveRecentBudget({ cfg: input.cfg, model: input.model }) const all = turns(input.messages) if (!all.length) return { head: input.messages, tail_start_id: undefined } - const recent = all.slice(-limit) - const sizes = yield* Effect.forEach( - recent, - (turn) => - estimate({ - messages: input.messages.slice(turn.start, turn.end), - model: input.model, - }), - { concurrency: 1 }, - ) + const recent = limit === undefined ? all : all.slice(-limit) let total = 0 let keep: Tail | undefined for (let i = recent.length - 1; i >= 0; i--) { const turn = recent[i]! - const size = sizes[i] + // estimate lazily so cost stays proportional to the retained tail, not the whole session + const size = yield* estimate({ + messages: input.messages.slice(turn.start, turn.end), + model: input.model, + }) if (total + size <= budget) { total += size keep = { start: turn.start, id: turn.id } @@ -381,10 +375,20 @@ const layer = Layer.effect( { sessionID: input.sessionID }, { context: [], prompt: undefined }, ) - const nextPrompt = compacting.prompt ?? buildPrompt({ previousSummary, context: compacting.context }) const msgs = structuredClone(selected.head) yield* plugin.trigger("experimental.chat.messages.transform", {}, { messages: msgs }) const conversation = msgs.map(serialize).filter(Boolean).join("\n\n") + const nextPrompt = + compacting.prompt ?? + [ + buildPrompt({ + previousSummary, + context: [conversation], + }), + ...compacting.context, + ] + .filter(Boolean) + .join("\n\n") const ctx = yield* InstanceState.context const msg: SessionV1.Assistant = { id: MessageID.ascending(), @@ -430,7 +434,10 @@ const layer = Layer.effect( content: [ { type: "text", - text: [nextPrompt, "The following is the conversation history:", conversation] + text: [ + nextPrompt, + ...(compacting.prompt ? ["The following is the conversation history:", conversation] : []), + ] .filter(Boolean) .join("\n\n"), }, diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index 0dff7354b5b6..4f0981fa647e 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -365,6 +365,20 @@ function autocontinue(enabled: boolean) { }) } +function compactionContext(context: string) { + return Layer.mock(Plugin.Service)({ + trigger: (name: Name, _input: Input, output: Output) => { + if (name !== "experimental.session.compacting") return Effect.succeed(output) + return Effect.sync(() => { + ;(output as { context: string[] }).context.push(context) + return output + }) + }, + list: () => Effect.succeed([]), + init: () => Effect.void, + }) +} + describe("session.compaction.isOverflow", () => { it.live( "returns true when token count exceeds usable context", @@ -1389,11 +1403,21 @@ describe("session.compaction.process", () => { const captured = JSON.stringify(messages) expect(messages).toHaveLength(1) expect(messages[0]?.role).toBe("user") + expect(captured).toContain("Here is the conversation so far:") + expect(captured).toContain("") + expect(captured.indexOf("[User]: older context")).toBeLessThan( + captured.indexOf("Create a new anchored summary"), + ) expect(captured).toContain("[User]: older context") expect(captured).not.toContain("keep this turn") expect(captured).not.toContain("and this one too") expect(captured).not.toContain("What did we do so far?") - }).pipe(withCompaction({ llm: stub.llmLayer })) + }).pipe( + withCompaction({ + llm: stub.llmLayer, + config: cfg({ tail_turns: 2, preserve_recent_tokens: 10_000 }), + }), + ) }, { git: true }, ) @@ -1430,9 +1454,11 @@ describe("session.compaction.process", () => { expect(parent).toBeTruthy() yield* SessionCompaction.use.process({ parentID: parent!, messages: msgs, sessionID: session.id, auto: false }) - expect(captured).toContain("") + expect(captured).toContain("") expect(captured).toContain("summary one") expect(captured.match(/summary one/g)?.length).toBe(1) + expect(captured.indexOf("latest turn")).toBeLessThan(captured.indexOf("")) + expect(captured).toContain("summary of the conversation before the above") expect(captured).toContain("## Important Details") expect(captured).toContain("## Work State") }).pipe(withCompaction({ llm: stub.llmLayer })) @@ -1440,6 +1466,49 @@ describe("session.compaction.process", () => { { git: true }, ) + itCompaction.instance( + "keeps plugin context outside the serialized conversation", + () => { + const stub = llm() + let captured = "" + stub.push( + reply("summary", (input) => { + captured = JSON.stringify(input.messages) + }), + ) + + return Effect.gen(function* () { + const ssn = yield* SessionNs.Service + const session = yield* ssn.create({}) + yield* createUserMessage(session.id, "older context") + yield* createUserMessage(session.id, "keep this turn") + yield* createUserMessage(session.id, "and this one too") + yield* createCompactionMarker(session.id) + + const msgs = yield* ssn.messages({ sessionID: session.id }) + const parent = msgs.at(-1)?.info.id + expect(parent).toBeTruthy() + yield* SessionCompaction.use.process({ + parentID: parent!, + messages: msgs, + sessionID: session.id, + auto: false, + }) + + expect(captured).toContain("Prioritize unresolved migration details") + expect(captured.indexOf("")).toBeLessThan( + captured.indexOf("Prioritize unresolved migration details"), + ) + }).pipe( + withCompaction({ + llm: stub.llmLayer, + plugin: compactionContext("Prioritize unresolved migration details"), + }), + ) + }, + { git: true }, + ) + itCompaction.instance( "serializes repeated compaction history as one user message", () => { From 02546dfc2e4515a4f90aaf9ceb3890df2ac2b479 Mon Sep 17 00:00:00 2001 From: opencode Date: Wed, 12 Aug 2026 20:24:50 +0000 Subject: [PATCH 31/33] release: v1.18.17 --- bun.lock | 56 ++++++++++----------- packages/app/package.json | 2 +- packages/cli/package.json | 2 +- packages/codemode/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 +- 30 files changed, 57 insertions(+), 57 deletions(-) diff --git a/bun.lock b/bun.lock index 0cf32fd5fc15..95aaf2e39ee5 100644 --- a/bun.lock +++ b/bun.lock @@ -29,7 +29,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@corvu/drawer": "catalog:", "@dnd-kit/abstract": "0.5.0", @@ -96,7 +96,7 @@ }, "packages/cli": { "name": "@opencode-ai/cli", - "version": "1.18.16", + "version": "1.18.17", "bin": { "lildax": "./bin/lildax.cjs", }, @@ -144,7 +144,7 @@ }, "packages/codemode": { "name": "@opencode-ai/codemode", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "acorn": "8.15.0", "effect": "catalog:", @@ -158,7 +158,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -194,7 +194,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -221,7 +221,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@ai-sdk/anthropic": "3.0.82", "@ai-sdk/openai": "3.0.48", @@ -243,7 +243,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -267,7 +267,7 @@ }, "packages/console/support": { "name": "@opencode-ai/console-support", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@opencode-ai/console-core": "workspace:*", @@ -287,7 +287,7 @@ }, "packages/core": { "name": "@opencode-ai/core", - "version": "1.18.16", + "version": "1.18.17", "bin": { "opencode": "./bin/opencode", }, @@ -381,7 +381,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@zip.js/zip.js": "2.7.62", "drizzle-orm": "catalog:", @@ -435,7 +435,7 @@ }, "packages/effect-drizzle-sqlite": { "name": "@opencode-ai/effect-drizzle-sqlite", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "drizzle-orm": "catalog:", "effect": "catalog:", @@ -449,7 +449,7 @@ }, "packages/effect-sqlite-node": { "name": "@opencode-ai/effect-sqlite-node", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "effect": "catalog:", }, @@ -461,7 +461,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@hono/standard-validator": "catalog:", "@opencode-ai/core": "workspace:*", @@ -493,7 +493,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -509,7 +509,7 @@ }, "packages/http-recorder": { "name": "@opencode-ai/http-recorder", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@effect/platform-node": "4.0.0-beta.83", "@effect/platform-node-shared": "4.0.0-beta.83", @@ -540,7 +540,7 @@ }, "packages/llm": { "name": "@opencode-ai/llm", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@opencode-ai/schema": "workspace:*", "@smithy/eventstream-codec": "4.2.14", @@ -559,7 +559,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.18.16", + "version": "1.18.17", "bin": { "opencode": "./bin/opencode", }, @@ -690,7 +690,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@ai-sdk/provider": "3.0.8", "@opencode-ai/sdk": "workspace:*", @@ -766,7 +766,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "cross-spawn": "catalog:", }, @@ -781,7 +781,7 @@ }, "packages/server": { "name": "@opencode-ai/server", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@opencode-ai/core": "workspace:*", "@opencode-ai/protocol": "workspace:*", @@ -796,7 +796,7 @@ }, "packages/session-ui": { "name": "@opencode-ai/session-ui", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/client": "file:../app/vendor/opencode-ai-client-1.17.13-v2.tgz", @@ -836,7 +836,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -849,7 +849,7 @@ }, "packages/stats/app": { "name": "@opencode-ai/stats-app", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@ibm/plex": "6.4.1", "@kobalte/core": "catalog:", @@ -883,7 +883,7 @@ }, "packages/stats/core": { "name": "@opencode-ai/stats-core", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@aws-sdk/client-athena": "3.933.0", "@planetscale/database": "1.19.0", @@ -902,7 +902,7 @@ }, "packages/stats/server": { "name": "@opencode-ai/stats-server", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@aws-sdk/client-firehose": "3.933.0", "@effect/platform-node": "catalog:", @@ -944,7 +944,7 @@ }, "packages/tui": { "name": "@opencode-ai/tui", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@opencode-ai/core": "workspace:*", "@opencode-ai/plugin": "workspace:*", @@ -971,7 +971,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.18.16", + "version": "1.18.17", "dependencies": { "@kobalte/core": "catalog:", "@pierre/diffs": "catalog:", @@ -1022,7 +1022,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.18.16", + "version": "1.18.17", "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 c378fe597ab8..df3d30670e51 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.18.16", + "version": "1.18.17", "description": "", "type": "module", "exports": { diff --git a/packages/cli/package.json b/packages/cli/package.json index f4b6c6fae717..273b8c74c764 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.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "bin": { diff --git a/packages/codemode/package.json b/packages/codemode/package.json index e8e538d0809e..9ebffe4dbf10 100644 --- a/packages/codemode/package.json +++ b/packages/codemode/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/codemode", - "version": "1.18.16", + "version": "1.18.17", "description": "Effect-native confined code execution over schema-described tools", "private": true, "type": "module", diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 284755dc88e7..d485be2455e9 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 6313e418aaf3..500171425b0a 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.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 876888f763e0..93d430d2ea34 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.18.16", + "version": "1.18.17", "$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 a5f1308aa39b..bcf61c96c626 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.18.16", + "version": "1.18.17", "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 416a8c2c223b..60d54c31dfc3 100644 --- a/packages/console/support/package.json +++ b/packages/console/support/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-support", - "version": "1.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/core/package.json b/packages/core/package.json index f682e9e4e33d..d5d5260b08b3 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.18.16", + "version": "1.18.17", "name": "@opencode-ai/core", "type": "module", "license": "MIT", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 8538d1a07ebd..8b6af6f3a155 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.18.16", + "version": "1.18.17", "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 7a7373dc2f3b..f09668004f59 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.18.16", + "version": "1.18.17", "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 176f81484799..7cf7af1b5647 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.18.16", + "version": "1.18.17", "name": "@opencode-ai/effect-sqlite-node", "type": "module", "license": "MIT", diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 3421349ad92d..c8760ef6d6e3 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/function/package.json b/packages/function/package.json index 8671e13ecb3e..a857ef135358 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.18.16", + "version": "1.18.17", "$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 99750298ea97..671468d915c6 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.18.16", + "version": "1.18.17", "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 a034aab4ddef..e7a54b6d6faf 100644 --- a/packages/llm/package.json +++ b/packages/llm/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.18.16", + "version": "1.18.17", "name": "@opencode-ai/llm", "type": "module", "license": "MIT", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 1719c4e8045e..9abb393db7ae 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.18.16", + "version": "1.18.17", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index a5cc0affdf5c..daa27018d521 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.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 9a6dab7d2cd6..46f995b2406c 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.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 12ac0846c905..0e289bc0b58e 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.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/session-ui/package.json b/packages/session-ui/package.json index 854d3f04381d..5c4a3910ba85 100644 --- a/packages/session-ui/package.json +++ b/packages/session-ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/session-ui", - "version": "1.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/slack/package.json b/packages/slack/package.json index 333b2199f264..38829e819eb2 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/stats/app/package.json b/packages/stats/app/package.json index e9abd10ad5b2..557c1d66e0c9 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.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/core/package.json b/packages/stats/core/package.json index 92e8ab0e262a..97f6e0057c16 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.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/server/package.json b/packages/stats/server/package.json index cb5a7f867995..90eb6faa6e6e 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.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/tui/package.json b/packages/tui/package.json index b83e3f4cf25c..81318d1e0e14 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.18.16", + "version": "1.18.17", "private": true, "type": "module", "license": "MIT", diff --git a/packages/ui/package.json b/packages/ui/package.json index f4025a8fa7af..e82b37eff614 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.18.16", + "version": "1.18.17", "type": "module", "license": "MIT", "repository": { diff --git a/packages/web/package.json b/packages/web/package.json index 64295118f6e2..b4bff3c7a4a4 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.18.16", + "version": "1.18.17", "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 60e90b28d657..c95622245565 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.18.16", + "version": "1.18.17", "publisher": "sst-dev", "repository": { "type": "git", From c2795236dde1973b9eb2f9350688efc1e7d40c43 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 21:32:50 +0000 Subject: [PATCH 32/33] chore(termux): seed release automation --- .github/actions/build-android-cli/action.yml | 167 +++++++++ .../scripts/termux-cleanup-release-branch.sh | 176 +++++++++ .github/scripts/termux-configure-git.sh | 37 ++ .../termux-create-android-build-deployment.sh | 55 +++ .../scripts/termux-create-checkpoint-pr.sh | 154 ++++++++ ...ermux-create-or-update-mirrored-release.sh | 67 ++++ .github/scripts/termux-create-release-pr.sh | 311 ++++++++++++++++ .github/scripts/termux-find-pr-artifact.sh | 53 +++ .github/scripts/termux-find-release-pr.sh | 41 +++ .../termux-finish-android-build-deployment.sh | 31 ++ .../scripts/termux-read-release-metadata.sh | 54 +++ .github/scripts/termux-release-paths.sh | 66 ++++ .github/scripts/termux-resolve-release-ref.sh | 35 ++ .github/scripts/termux-select-release.sh | 335 ++++++++++++++++++ .github/scripts/termux-validate-gh-env.sh | 12 + .github/workflows/publish.yml | 134 ++++++- .../termux-android-artifact-smoke.yml | 170 +++++++++ .../termux-release-branch-cleanup.yml | 89 +++++ .../workflows/termux-release-checkpoint.yml | 106 ++++++ .github/workflows/termux-release-ci.yml | 144 ++++++++ .github/workflows/termux-release-deploy.yml | 265 ++++++++++++++ .github/workflows/termux-release-watch.yml | 174 +++++++++ .github/workflows/test.yml | 18 +- 23 files changed, 2683 insertions(+), 11 deletions(-) create mode 100644 .github/actions/build-android-cli/action.yml create mode 100755 .github/scripts/termux-cleanup-release-branch.sh create mode 100755 .github/scripts/termux-configure-git.sh create mode 100755 .github/scripts/termux-create-android-build-deployment.sh create mode 100755 .github/scripts/termux-create-checkpoint-pr.sh create mode 100755 .github/scripts/termux-create-or-update-mirrored-release.sh create mode 100755 .github/scripts/termux-create-release-pr.sh create mode 100755 .github/scripts/termux-find-pr-artifact.sh create mode 100755 .github/scripts/termux-find-release-pr.sh create mode 100755 .github/scripts/termux-finish-android-build-deployment.sh create mode 100755 .github/scripts/termux-read-release-metadata.sh create mode 100755 .github/scripts/termux-release-paths.sh create mode 100755 .github/scripts/termux-resolve-release-ref.sh create mode 100755 .github/scripts/termux-select-release.sh create mode 100755 .github/scripts/termux-validate-gh-env.sh create mode 100644 .github/workflows/termux-android-artifact-smoke.yml create mode 100644 .github/workflows/termux-release-branch-cleanup.yml create mode 100644 .github/workflows/termux-release-checkpoint.yml create mode 100644 .github/workflows/termux-release-ci.yml create mode 100644 .github/workflows/termux-release-deploy.yml create mode 100644 .github/workflows/termux-release-watch.yml diff --git a/.github/actions/build-android-cli/action.yml b/.github/actions/build-android-cli/action.yml new file mode 100644 index 000000000000..161a5e89a53a --- /dev/null +++ b/.github/actions/build-android-cli/action.yml @@ -0,0 +1,167 @@ +name: "Build Android CLI" +description: "Build and smoke-check the Android arm64 opencode artifact" +inputs: + version: + description: "Version to embed in the Android CLI" + required: true + release: + description: "Release flag passed to the opencode build" + required: false + default: "" + repo: + description: "Repository name passed to the opencode build" + required: true +runs: + using: "composite" + steps: + - uses: ./.github/actions/setup-bun + + - name: Setup Zig + shell: bash + run: | + set -euo pipefail + zig_version=0.15.2 + case "${RUNNER_OS}-${RUNNER_ARCH}" in + Linux-X64) zig_target="x86_64-linux" ;; + Linux-ARM64) zig_target="aarch64-linux" ;; + *) echo "Unsupported Zig host: ${RUNNER_OS}-${RUNNER_ARCH}" >&2; exit 1 ;; + esac + + zig_dir="${RUNNER_TOOL_CACHE:-${RUNNER_TEMP}}/zig/${zig_version}/${zig_target}" + if [[ ! -x "${zig_dir}/zig" ]]; then + archive="${RUNNER_TEMP}/zig-${zig_target}-${zig_version}.tar.xz" + mkdir -p "${zig_dir}" + curl -fsSL "https://ziglang.org/download/${zig_version}/zig-${zig_target}-${zig_version}.tar.xz" -o "${archive}" + tar -xJf "${archive}" -C "${zig_dir}" --strip-components=1 + fi + + echo "${zig_dir}" >> "${GITHUB_PATH}" + "${zig_dir}/zig" version + + - name: Install Bun build toolchain + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends curl wget gnupg software-properties-common ninja-build cmake file binutils + for attempt in 1 2 3 + do + if curl -fsSL --retry 5 --retry-delay 5 --retry-all-errors --connect-timeout 20 --max-time 120 https://apt.llvm.org/llvm.sh -o "$RUNNER_TEMP/llvm.sh"; then + break + fi + if [[ "$attempt" -eq 3 ]]; then + exit 1 + fi + echo "LLVM installer download failed on attempt $attempt; retrying..." >&2 + sleep $((attempt * 30)) + done + chmod +x "$RUNNER_TEMP/llvm.sh" + for attempt in 1 2 3 + do + if sudo "$RUNNER_TEMP/llvm.sh" 21; then + break + fi + if [[ "$attempt" -eq 3 ]]; then + exit 1 + fi + echo "LLVM apt setup failed on attempt $attempt; retrying..." >&2 + sudo rm -f /etc/apt/sources.list.d/*llvm* /etc/apt/sources.list.d/archive_uri-https_apt_llvm_org_noble_-noble.list + sleep $((attempt * 30)) + done + for attempt in 1 2 3 + do + if sudo apt-get update -o Acquire::Retries=5 && sudo apt-get install -y --no-install-recommends clang-21 lld-21; then + break + fi + if [[ "$attempt" -eq 3 ]]; then + exit 1 + fi + echo "LLVM package install failed on attempt $attempt; retrying..." >&2 + sleep $((attempt * 30)) + done + LLVM_RESOURCE_DIR="$(clang-21 -print-resource-dir)" + NDK_PREBUILT="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64" + NDK_CLANG_VERSION="$(ls "$NDK_PREBUILT/lib/clang" | sort -V | tail -n 1)" + NDK_RUNTIME_DIR="$NDK_PREBUILT/lib/clang/$NDK_CLANG_VERSION/lib/linux" + sudo mkdir -p "$LLVM_RESOURCE_DIR/lib/aarch64-unknown-linux-android28" "$LLVM_RESOURCE_DIR/lib/linux/aarch64" + sudo ln -sf "$NDK_RUNTIME_DIR/libclang_rt.builtins-aarch64-android.a" "$LLVM_RESOURCE_DIR/lib/aarch64-unknown-linux-android28/libclang_rt.builtins.a" + sudo ln -sf "$NDK_RUNTIME_DIR/aarch64/libunwind.a" "$LLVM_RESOURCE_DIR/lib/aarch64-unknown-linux-android28/libunwind.a" + sudo ln -sf "$NDK_RUNTIME_DIR/libclang_rt.builtins-aarch64-android.a" "$LLVM_RESOURCE_DIR/lib/linux/libclang_rt.builtins-aarch64-android.a" + sudo ln -sf "$NDK_RUNTIME_DIR/aarch64/libunwind.a" "$LLVM_RESOURCE_DIR/lib/linux/aarch64/libunwind.a" + + - name: Build Android Bun runtime with FFI + shell: bash + run: | + export CC=clang-21 + export CXX=clang++-21 + export LD=ld.lld-21 + NDK_PREBUILT="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64" + mkdir -p "$RUNNER_TEMP/android-toolchain-bin" + ln -sf "$NDK_PREBUILT/bin/llvm-strip" "$RUNNER_TEMP/android-toolchain-bin/strip" + export PATH="$RUNNER_TEMP/android-toolchain-bin:$PATH" + BUN_VERSION="$(node -p "require('./package.json').packageManager.split('@')[1]")" + BUN_SOURCE="$RUNNER_TEMP/bun-src" + git clone --depth=1 --branch "bun-v${BUN_VERSION}" https://github.com/oven-sh/bun.git "$BUN_SOURCE" + BUN_BUILD="$BUN_SOURCE/build/android-ffi" + cd "$BUN_SOURCE" + bun install --frozen-lockfile + bun scripts/build.ts --profile=android-release --tinycc=on --build-dir="$BUN_BUILD" --target=bun -j"$(nproc)" + test -x "$BUN_BUILD/bun" + file "$BUN_BUILD/bun" + echo "OPENCODE_ANDROID_BUN=$BUN_BUILD/bun" >> "$GITHUB_ENV" + + - name: Build Android CLI + shell: bash + run: ./packages/opencode/script/build.ts --target=android-arm64 + env: + OPENCODE_VERSION: ${{ inputs.version }} + OPENCODE_RELEASE: ${{ inputs.release }} + GH_REPO: ${{ inputs.repo }} + + - name: Smoke Android CLI artifact + shell: bash + run: | + set -euo pipefail + artifact_dir="packages/opencode/dist/opencode-android-arm64" + binary="${artifact_dir}/bin/opencode" + opentui_lib="packages/opencode/node_modules/@opentui/core/android-arm64/libopentui.so" + smoke_dir="packages/opencode/dist/android-smoke" + mkdir -p "$smoke_dir" + + test -x "$binary" + file "$binary" | tee "$smoke_dir/file.txt" + readelf -h "$binary" | tee "$smoke_dir/readelf-header.txt" + readelf -l "$binary" | tee "$smoke_dir/readelf-program-headers.txt" + readelf -S "$binary" > "$smoke_dir/readelf-sections.txt" + readelf -d "$binary" | tee "$smoke_dir/readelf-dynamic.txt" + + grep -q "Machine:.*AArch64" "$smoke_dir/readelf-header.txt" + grep -q "Type:.*DYN" "$smoke_dir/readelf-header.txt" + if grep -E "Requesting program interpreter: .*(ld-linux|ld-musl)" "$smoke_dir/readelf-program-headers.txt"; then + echo "Android artifact unexpectedly references a Linux ELF interpreter." >&2 + exit 1 + fi + if grep -E "Shared library: \\[(libc\\.so\\.6|ld-linux|ld-musl)" "$smoke_dir/readelf-dynamic.txt"; then + echo "Android artifact unexpectedly links Linux libc/runtime libraries." >&2 + exit 1 + fi + + test -f "$opentui_lib" + file "$opentui_lib" | tee "$smoke_dir/opentui-file.txt" + readelf -d "$opentui_lib" | tee "$smoke_dir/opentui-readelf-dynamic.txt" + readelf -Ws "$opentui_lib" > "$smoke_dir/opentui-readelf-symbols.txt" + readelf -r "$opentui_lib" > "$smoke_dir/opentui-readelf-relocs.txt" + + if grep -E "Shared library: \\[(libc\\.so\\.6|ld-linux|ld-musl|libstdc\\+\\+|libgcc_s)" "$smoke_dir/opentui-readelf-dynamic.txt"; then + echo "OpenTUI Android library unexpectedly links non-Android runtime libraries." >&2 + exit 1 + fi + if grep -E "Shared library: \\[(libc\\+\\+|libc\\+\\+_shared|libunwind)\\.so" "$smoke_dir/opentui-readelf-dynamic.txt"; then + echo "OpenTUI Android library requires an unbundled C++/unwind runtime." >&2 + exit 1 + fi + grep -E " (YGNode|facebook4yoga|yogaNode)" "$smoke_dir/opentui-readelf-symbols.txt" | head -80 || true + + - name: Pack Android artifact + shell: bash + working-directory: packages/opencode/dist/opencode-android-arm64/bin + run: tar -czf ../../opencode-android-arm64.tar.gz * diff --git a/.github/scripts/termux-cleanup-release-branch.sh b/.github/scripts/termux-cleanup-release-branch.sh new file mode 100755 index 000000000000..1c739a45a942 --- /dev/null +++ b/.github/scripts/termux-cleanup-release-branch.sh @@ -0,0 +1,176 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" + +cleanup_limit="${CLEANUP_LIMIT:-100}" +cleanup_matched_checkpoint=false + +append_cleanup_summary() { + local outcome="$1" + local release_branch="${2:-}" + local detail="${3:-}" + + [[ -n "${GITHUB_STEP_SUMMARY:-}" ]] || return 0 + + { + echo "## Termux release branch cleanup" + echo + echo "- Outcome: ${outcome}" + if [[ -n "${release_branch}" ]]; then + echo "- Release branch: \`${release_branch}\`" + fi + if [[ -n "${detail}" ]]; then + echo "- Detail: ${detail}" + fi + } >> "${GITHUB_STEP_SUMMARY}" +} + +checkpoint_source_branch() { + jq -r ' + [ + (.body // "") + | split("\n")[] + | try capture("^- Source branch: `(?[^`]+)`").branch catch empty + ][0] // "" + ' <<< "$1" +} + +checkpoint_has_label() { + local checkpoint_json="$1" + local label="$2" + + jq -e --arg label "${label}" '[.labels[]?.name] | index($label) != null' <<< "${checkpoint_json}" >/dev/null +} + +release_branch_is_valid() { + [[ "$1" =~ ^release-[A-Za-z0-9._-]+$ ]] +} + +open_prs_using_branch() { + local release_branch="$1" + + gh pr list \ + --repo "${GITHUB_REPOSITORY}" \ + --state open \ + --limit 200 \ + --json number,title,url,headRefName,baseRefName,headRepository \ + | jq \ + --arg branch "${release_branch}" \ + --arg repo "${GITHUB_REPOSITORY}" \ + ' + [ + .[] + | select( + .baseRefName == $branch + or ( + .headRefName == $branch + and ((.headRepository.nameWithOwner // "") == $repo) + ) + ) + ] + ' +} + +delete_release_branch_if_unused() { + local release_branch="$1" + local checkpoint_url="$2" + local open_prs + local branch_sha + + if ! release_branch_is_valid "${release_branch}"; then + echo "::warning::Refusing to delete unexpected release branch name: ${release_branch}" + append_cleanup_summary "skipped" "${release_branch}" "branch name did not match release-* cleanup policy" + return 0 + fi + + if ! branch_sha="$(gh api --method GET "repos/${GITHUB_REPOSITORY}/git/ref/heads/${release_branch}" --jq '.object.sha' 2>/dev/null)"; then + echo "${release_branch} no longer exists on ${GITHUB_REPOSITORY}." + append_cleanup_summary "already deleted" "${release_branch}" "remote branch was not found" + return 0 + fi + + open_prs="$(open_prs_using_branch "${release_branch}")" + if [[ "$(jq 'length' <<< "${open_prs}")" != "0" ]]; then + echo "Leaving ${release_branch} in place because open PRs still use it as a source or target:" + jq -r '.[] | "- #\(.number) \(.title) (\(.url))"' <<< "${open_prs}" + append_cleanup_summary "skipped" "${release_branch}" "open PRs still use this branch" + return 0 + fi + + echo "Deleting ${release_branch} at ${branch_sha} after merged checkpoint ${checkpoint_url}." + gh api --silent --method DELETE "repos/${GITHUB_REPOSITORY}/git/refs/heads/${release_branch}" + echo "Deleted ${release_branch} at ${branch_sha} after merged checkpoint ${checkpoint_url}." + append_cleanup_summary "deleted" "${release_branch}" "checkpoint ${checkpoint_url} merged and no open PRs use the branch" +} + +cleanup_checkpoint_pr() { + local checkpoint_json="$1" + local checkpoint_url + local release_branch + + checkpoint_url="$(jq -r '.url // empty' <<< "${checkpoint_json}")" + + if [[ "$(jq -r '.mergedAt // empty' <<< "${checkpoint_json}")" == "" ]]; then + echo "Checkpoint PR ${checkpoint_url:-unknown} is not merged yet; release branch cleanup is deferred." + append_cleanup_summary "deferred" "" "checkpoint PR is not merged yet" + return 0 + fi + + if ! checkpoint_has_label "${checkpoint_json}" "checkpoint" || ! checkpoint_has_label "${checkpoint_json}" "termux-release"; then + echo "Skipping ${checkpoint_url:-checkpoint PR}; it is not labeled as a Termux checkpoint." + return 0 + fi + + release_branch="$(checkpoint_source_branch "${checkpoint_json}")" + if [[ -z "${release_branch}" ]]; then + echo "::warning::Could not find release source branch in checkpoint PR ${checkpoint_url}." + append_cleanup_summary "skipped" "" "checkpoint PR did not include a source branch" + return 0 + fi + + if [[ -n "${SOURCE_BRANCH:-}" && "${release_branch}" != "${SOURCE_BRANCH}" ]]; then + echo "Skipping ${checkpoint_url}; source branch ${release_branch} does not match requested ${SOURCE_BRANCH}." + return 0 + fi + + cleanup_matched_checkpoint=true + delete_release_branch_if_unused "${release_branch}" "${checkpoint_url}" +} + +if [[ -n "${CHECKPOINT_PR:-}" ]]; then + cleanup_checkpoint_pr "$( + gh pr view "${CHECKPOINT_PR}" \ + --repo "${GITHUB_REPOSITORY}" \ + --json number,title,body,baseRefName,headRefName,labels,mergedAt,state,url + )" + exit 0 +fi + +while IFS= read -r checkpoint_json; do + cleanup_checkpoint_pr "${checkpoint_json}" +done < <( + gh pr list \ + --repo "${GITHUB_REPOSITORY}" \ + --state merged \ + --limit "${cleanup_limit}" \ + --json number,title,body,baseRefName,headRefName,labels,mergedAt,state,url \ + | jq -c ' + .[] + | select(([.labels[]?.name] | index("checkpoint") != null)) + | select(([.labels[]?.name] | index("termux-release") != null)) + ' +) + +if [[ "${cleanup_matched_checkpoint}" == "false" ]]; then + if [[ -n "${SOURCE_BRANCH:-}" ]]; then + echo "No merged Termux checkpoint PR found for ${SOURCE_BRANCH} in the most recent ${cleanup_limit} merged PRs." + append_cleanup_summary "skipped" "${SOURCE_BRANCH}" "no merged checkpoint PR found" + exit 0 + fi + + echo "No merged Termux checkpoint PRs found in the most recent ${cleanup_limit} merged PRs." + append_cleanup_summary "skipped" "" "no merged checkpoint PRs found" +fi diff --git a/.github/scripts/termux-configure-git.sh b/.github/scripts/termux-configure-git.sh new file mode 100755 index 000000000000..764e936776d6 --- /dev/null +++ b/.github/scripts/termux-configure-git.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +set -euo pipefail + +git config user.name "github-actions[bot]" +git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + +while (($#)); do + case "$1" in + --origin) + shift + origin_refs=() + while (($#)) && [[ "$1" != --* ]]; do + origin_refs+=("$1") + shift + done + if ((${#origin_refs[@]})); then + git fetch --prune origin "${origin_refs[@]}" + fi + ;; + --upstream-tag) + if (($# < 3)); then + echo "--upstream-tag requires ." >&2 + exit 1 + fi + upstream_repo="$2" + upstream_tag="$3" + git remote add upstream "https://github.com/${upstream_repo}.git" 2>/dev/null || true + git fetch --prune --no-tags upstream "+refs/tags/${upstream_tag}:refs/tags/${upstream_tag}" + shift 3 + ;; + *) + echo "Unknown argument: $1" >&2 + exit 1 + ;; + esac +done diff --git a/.github/scripts/termux-create-android-build-deployment.sh b/.github/scripts/termux-create-android-build-deployment.sh new file mode 100755 index 000000000000..ac85205b0718 --- /dev/null +++ b/.github/scripts/termux-create-android-build-deployment.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GITHUB_OUTPUT:?GITHUB_OUTPUT is required}" +: "${GITHUB_RUN_ID:?GITHUB_RUN_ID is required}" +: "${GITHUB_SERVER_URL:?GITHUB_SERVER_URL is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" +: "${RELEASE_BRANCH:?RELEASE_BRANCH is required}" +: "${RELEASE_SHA:?RELEASE_SHA is required}" +: "${TERMUX_TAG:?TERMUX_TAG is required}" + +deployment_json="$( + jq -n \ + --arg ref "${RELEASE_SHA}" \ + --arg termux_tag "${TERMUX_TAG}" \ + --arg release_branch "${RELEASE_BRANCH}" \ + '{ + ref: $ref, + task: "build-android", + auto_merge: false, + required_contexts: [], + environment: "termux-android", + description: ("Build Android artifact for " + $termux_tag), + transient_environment: true, + production_environment: false, + payload: { + termux_tag: $termux_tag, + release_branch: $release_branch + } + }' \ + | gh api --method POST "repos/${GITHUB_REPOSITORY}/deployments" --input - +)" + +deployment_id="$(jq -r '.id' <<< "${deployment_json}")" +if [[ -z "${deployment_id}" || "${deployment_id}" == "null" ]]; then + echo "GitHub did not return a deployment id." >&2 + echo "${deployment_json}" >&2 + exit 1 +fi + +gh api --method POST "repos/${GITHUB_REPOSITORY}/deployments/${deployment_id}/statuses" \ + --input - <<< "$( + jq -n \ + --arg log_url "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" \ + '{ + state: "in_progress", + environment: "termux-android", + log_url: $log_url, + description: "Building Android artifact" + }' + )" + +echo "deployment_id=${deployment_id}" >> "${GITHUB_OUTPUT}" diff --git a/.github/scripts/termux-create-checkpoint-pr.sh b/.github/scripts/termux-create-checkpoint-pr.sh new file mode 100755 index 000000000000..d00ef62eec15 --- /dev/null +++ b/.github/scripts/termux-create-checkpoint-pr.sh @@ -0,0 +1,154 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" +: "${DESTINATION_BRANCH:?DESTINATION_BRANCH is required}" +: "${RUNNER_TEMP:?RUNNER_TEMP is required}" + +script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +# shellcheck source=.github/scripts/termux-release-paths.sh +source "${script_dir}/termux-release-paths.sh" + +source_branch="${SOURCE_BRANCH:-${REQUESTED_SOURCE_BRANCH:-${GITHUB_REF_NAME:-}}}" +source_sha="${SOURCE_SHA:-${REQUESTED_SOURCE_SHA:-}}" +if [[ -z "${source_branch}" ]]; then + echo "SOURCE_BRANCH is required." >&2 + exit 1 +fi +if [[ -z "${source_sha}" ]]; then + source_sha="$(git rev-parse "origin/${source_branch}")" +fi +rm -rf "${PROMOTED_DIR:-promoted}" + +short_sha="${source_sha:0:12}" +checkpoint_branch="checkpoint-${short_sha}" +pr_title="checkpoint: ${source_branch} into ${DESTINATION_BRANCH} @ ${short_sha}" +merge_conflicted=false +conflict_summary="" + +existing_pr="$( + gh pr list \ + --repo "${GITHUB_REPOSITORY}" \ + --head "${checkpoint_branch}" \ + --state all \ + --json body,number,state,mergedAt,url \ + --jq '[.[] | select(.state == "OPEN" or .mergedAt != null)] | .[0] // empty' +)" +if [[ -n "${existing_pr}" ]]; then + existing_url="$(jq -r '.url' <<< "${existing_pr}")" + echo "Checkpoint PR already exists for ${checkpoint_branch}: ${existing_url}." + echo "pr_url=${existing_url}" >> "${GITHUB_OUTPUT:-/dev/null}" + exit 0 +fi + +git fetch origin "${DESTINATION_BRANCH}" "${source_branch}" +git checkout -B "${checkpoint_branch}" "origin/${DESTINATION_BRANCH}" + +if ! git merge --no-ff --no-edit "${source_sha}"; then + mapfile -t conflicted_paths < <(git diff --name-only --diff-filter=U) + for conflicted_path in "${conflicted_paths[@]}"; do + if termux_is_checkpoint_release_only_path "${conflicted_path}"; then + echo "Auto-resolving release-only checkpoint conflict in ${conflicted_path} by keeping ${DESTINATION_BRANCH}." + if git cat-file -e "HEAD:${conflicted_path}" 2>/dev/null; then + git checkout --ours -- "${conflicted_path}" + git add "${conflicted_path}" + else + git rm -f --ignore-unmatch "${conflicted_path}" + fi + elif termux_is_checkpoint_source_wins_path "${conflicted_path}"; then + echo "Auto-resolving checkpoint conflict in ${conflicted_path} from ${source_branch}." + if git cat-file -e "${source_sha}:${conflicted_path}" 2>/dev/null; then + git checkout --theirs -- "${conflicted_path}" + git add "${conflicted_path}" + else + git rm -f --ignore-unmatch "${conflicted_path}" + fi + fi + done + + mapfile -t remaining_conflicts < <(git diff --name-only --diff-filter=U) + if [[ "${#remaining_conflicts[@]}" -eq 0 ]]; then + git commit --no-edit + else + merge_conflicted=true + conflict_summary="$(printf '%s\n' "${remaining_conflicts[@]}" | awk '{ print "- `" $0 "`" }')" + echo "Automatic checkpoint merge failed; creating a manual-resolution PR." >&2 + if git rev-parse -q --verify MERGE_HEAD >/dev/null; then + git merge --abort + fi + git checkout -B "${checkpoint_branch}" "${source_sha}" + fi +fi + +for release_only_path in "${TERMUX_CHECKPOINT_RELEASE_ONLY_PATHS[@]}"; do + if git cat-file -e "origin/${DESTINATION_BRANCH}:${release_only_path}" 2>/dev/null; then + git checkout "origin/${DESTINATION_BRANCH}" -- "${release_only_path}" + else + git rm -f --ignore-unmatch -- "${release_only_path}" + fi +done + +if ! git diff --quiet || ! git diff --cached --quiet; then + git add -A + if [[ "${merge_conflicted}" == "true" ]]; then + git commit -m "checkpoint: prepare ${source_branch} for ${DESTINATION_BRANCH}" + else + git commit --amend --no-edit + fi +fi + +if git diff --quiet "origin/${DESTINATION_BRANCH}" HEAD; then + echo "Checkpoint merge produced no destination changes after release-only files were restored." + exit 0 +fi + +git push --no-verify --force-with-lease origin "${checkpoint_branch}" + +body_path="${RUNNER_TEMP}/termux-checkpoint-pr.md" +{ + echo "## Termux release checkpoint" + echo + echo "- Source branch: \`${source_branch}\`" + echo "- Source hash: \`${source_sha}\`" + echo "- Destination branch: \`${DESTINATION_BRANCH}\`" + echo + echo "This PR carries release-train conflict fixes and follow-up changes back into the reusable Termux patch branch. Release metadata is removed before opening the PR." + if [[ "${merge_conflicted}" == "true" ]]; then + echo + echo "## Merge conflicts" + echo + echo "GitHub Actions could not create the checkpoint merge commit automatically, so this PR was created from the release branch state for manual conflict resolution." + echo + printf '%s\n' "${conflict_summary:-"- Conflict details unavailable"}" + fi +} > "${body_path}" + +pr_url="$( + gh pr create \ + --repo "${GITHUB_REPOSITORY}" \ + --base "${DESTINATION_BRANCH}" \ + --head "${checkpoint_branch}" \ + --title "${pr_title}" \ + --body-file "${body_path}" +)" +if [[ -n "${REVIEWER:-}" ]]; then + gh pr edit "${pr_url}" --repo "${GITHUB_REPOSITORY}" --add-reviewer "${REVIEWER}" || true +fi +gh label create checkpoint --repo "${GITHUB_REPOSITORY}" --color c5def5 --description "Checkpoint merge" --force +gh label create termux-release --repo "${GITHUB_REPOSITORY}" --color 0e8a16 --description "Termux release automation" --force +gh pr edit "${pr_url}" --repo "${GITHUB_REPOSITORY}" --add-label "checkpoint" --add-label "termux-release" + +if [[ "${merge_conflicted}" != "true" ]]; then + pr_head_sha="$(gh pr view "${pr_url}" --repo "${GITHUB_REPOSITORY}" --json headRefOid --jq '.headRefOid')" + gh pr merge "${pr_url}" \ + --repo "${GITHUB_REPOSITORY}" \ + --merge \ + --auto \ + --delete-branch \ + --match-head-commit "${pr_head_sha}" \ + || echo "::warning::Could not enable checkpoint auto-merge for ${pr_url}." +fi + +echo "pr_url=${pr_url}" >> "${GITHUB_OUTPUT:-/dev/null}" diff --git a/.github/scripts/termux-create-or-update-mirrored-release.sh b/.github/scripts/termux-create-or-update-mirrored-release.sh new file mode 100755 index 000000000000..033ea8562547 --- /dev/null +++ b/.github/scripts/termux-create-or-update-mirrored-release.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" +: "${RUNNER_TEMP:?RUNNER_TEMP is required}" +: "${UPSTREAM_TAG:?UPSTREAM_TAG is required}" +: "${UPSTREAM_REPO:?UPSTREAM_REPO is required}" +: "${UPSTREAM_NAME?UPSTREAM_NAME is required}" +: "${TERMUX_TAG:?TERMUX_TAG is required}" +: "${UPSTREAM_PRERELEASE:?UPSTREAM_PRERELEASE is required}" +: "${UPSTREAM_HTML_URL?UPSTREAM_HTML_URL is required}" +: "${RELEASE_TRAIN?RELEASE_TRAIN is required}" +: "${RELEASE_EXISTS:?RELEASE_EXISTS is required}" +: "${PR_NUMBER:?PR_NUMBER is required}" +: "${HEAD_SHA:?HEAD_SHA is required}" +: "${RELEASE_SHA:?RELEASE_SHA is required}" + +promoted_dir="${PROMOTED_DIR:-promoted}" +asset_path="${promoted_dir}/opencode-android-arm64.tar.gz" +body_path="${RUNNER_TEMP}/termux-release-body.md" +upstream_body_path="${RUNNER_TEMP}/termux-upstream-release-body.md" + +if ! gh release view "${UPSTREAM_TAG}" --repo "${UPSTREAM_REPO}" --json body --jq '.body // ""' > "${upstream_body_path}"; then + echo "::warning::Could not read ${UPSTREAM_REPO} release ${UPSTREAM_TAG}." + : > "${upstream_body_path}" +fi + +{ + echo "Termux Android build for ${UPSTREAM_TAG}." + echo + echo "- Upstream release: ${UPSTREAM_HTML_URL}" + echo "- Release train: \`${RELEASE_TRAIN}\`" + echo "- Promoted PR: #${PR_NUMBER}" + echo "- Promoted PR head SHA: \`${HEAD_SHA}\`" + echo + if [[ -s "${upstream_body_path}" ]]; then + echo "## Upstream release notes" + echo + cat "${upstream_body_path}" + fi +} > "${body_path}" + +release_title="${UPSTREAM_NAME}" +if [[ -z "${release_title}" || "${release_title}" == "null" ]]; then + release_title="${TERMUX_TAG}" +fi + +if [[ "${RELEASE_EXISTS}" == "true" ]]; then + gh release upload "${TERMUX_TAG}" "${asset_path}#opencode-android-arm64.tar.gz" --repo "${GITHUB_REPOSITORY}" --clobber + gh release edit "${TERMUX_TAG}" --repo "${GITHUB_REPOSITORY}" --notes-file "${body_path}" --title "${release_title}" + exit 0 +fi + +release_args=( + gh release create "${TERMUX_TAG}" + --repo "${GITHUB_REPOSITORY}" + --target "${RELEASE_SHA}" + --title "${release_title}" + --notes-file "${body_path}" +) +if [[ "${UPSTREAM_PRERELEASE}" == "true" ]]; then + release_args+=(--prerelease) +fi +release_args+=("${asset_path}#opencode-android-arm64.tar.gz") +"${release_args[@]}" diff --git a/.github/scripts/termux-create-release-pr.sh b/.github/scripts/termux-create-release-pr.sh new file mode 100755 index 000000000000..546d92eb6655 --- /dev/null +++ b/.github/scripts/termux-create-release-pr.sh @@ -0,0 +1,311 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${UPSTREAM_REPO:?UPSTREAM_REPO is required}" +: "${UPSTREAM_TAG:?UPSTREAM_TAG is required}" +: "${UPSTREAM_NAME?UPSTREAM_NAME is required}" +: "${UPSTREAM_HTML_URL:?UPSTREAM_HTML_URL is required}" +: "${UPSTREAM_PRERELEASE:?UPSTREAM_PRERELEASE is required}" +: "${UPSTREAM_TARGET?UPSTREAM_TARGET is required}" +: "${UPSTREAM_ID?UPSTREAM_ID is required}" +: "${RELEASE_TRAIN:?RELEASE_TRAIN is required}" +: "${RELEASE_BRANCH:?RELEASE_BRANCH is required}" +: "${WORK_BRANCH:?WORK_BRANCH is required}" +: "${TERMUX_TAG:?TERMUX_TAG is required}" +: "${PATCH_BRANCH:?PATCH_BRANCH is required}" +: "${REVIEWER?REVIEWER is required}" +: "${RUNNER_TEMP:?RUNNER_TEMP is required}" +: "${GITHUB_OUTPUT:?GITHUB_OUTPUT is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" + +script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +automation_root="$(cd -- "${script_dir}/../.." && pwd)" +# shellcheck source=.github/scripts/termux-release-paths.sh +source "${script_dir}/termux-release-paths.sh" + +pr_title="Termux ${UPSTREAM_TAG}" +seed_dir="${RUNNER_TEMP}/termux-release-seed" + +capture_seeded_release_files() { + local seeded_path + + for seeded_path in "${TERMUX_RELEASE_AUTOMATION_PATHS[@]}"; do + mkdir -p "${seed_dir}/$(dirname "${seeded_path}")" + cp "${automation_root}/${seeded_path}" "${seed_dir}/${seeded_path}" + done +} + +seed_release_automation_files() { + local seeded_path + + for seeded_path in "${TERMUX_RELEASE_AUTOMATION_PATHS[@]}"; do + mkdir -p "$(dirname "${seeded_path}")" + cp "${seed_dir}/${seeded_path}" "${seeded_path}" + case "${seeded_path}" in + .github/scripts/*.sh) + chmod +x "${seeded_path}" + ;; + esac + done +} + +normalize_workspace_versions() { + local version="${UPSTREAM_TAG#v}" + version="${version%-termux}" + + OPENCODE_UPSTREAM_VERSION="${version}" node <<'NODE' +const fs = require("fs") +const path = require("path") + +const version = process.env.OPENCODE_UPSTREAM_VERSION + +function visit(dir) { + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + const full = path.join(dir, entry.name) + if (entry.isDirectory()) { + visit(full) + continue + } + if (entry.name !== "package.json") continue + const text = fs.readFileSync(full, "utf8") + const pkg = JSON.parse(text) + if (!pkg.version) continue + if (pkg.name !== "opencode" && !String(pkg.name || "").startsWith("@opencode-ai/")) continue + pkg.version = version + fs.writeFileSync(full, `${JSON.stringify(pkg, null, 2)}\n`) + } +} + +visit("packages") +visit("sdks") +NODE + + if command -v bun >/dev/null 2>&1; then + bun install --lockfile-only --ignore-scripts + else + echo "::warning::bun is unavailable; package versions were normalized but bun.lock was not refreshed." + fi +} + +open_prs_json() { + gh pr list \ + --repo "${GITHUB_REPOSITORY}" \ + --state open \ + --limit 200 \ + --json number,title,body,headRefName,baseRefName,url +} + +existing_open_release_pr() { + open_prs_json \ + | jq -c \ + --arg release_branch "${RELEASE_BRANCH}" \ + ' + [ + .[] + | select(.baseRefName == $release_branch) + | select( + ((.title // "") | startswith("Termux v")) + and ((.body // "") | contains("Release branch: `" + $release_branch + "`")) + ) + ] + | sort_by(.number) + | reverse + | .[0] // empty + ' +} + +merge_release_pr_after_ci() { + local pr_url="$1" + local ci_run_id="" + local details_url + local expected_head + local pr_info + + if ! pr_info="$(gh pr view "${pr_url}" --repo "${GITHUB_REPOSITORY}" --json headRefOid,mergeStateStatus,mergeable,state,url)"; then + echo "::warning::Could not inspect ${pr_url}; leaving auto-merge disabled." + return 0 + fi + + if [[ "$(jq -r '.state' <<< "${pr_info}")" != "OPEN" ]]; then + return 0 + fi + + if [[ "$(jq -r '.mergeable // ""' <<< "${pr_info}")" == "CONFLICTING" || "$(jq -r '.mergeStateStatus // ""' <<< "${pr_info}")" == "DIRTY" ]]; then + echo "Skipping merge for ${pr_url}; GitHub reports conflicts." + return 0 + fi + + expected_head="$(jq -r '.headRefOid' <<< "${pr_info}")" + for _ in $(seq 1 210); do + details_url="$( + gh pr view "${pr_url}" \ + --repo "${GITHUB_REPOSITORY}" \ + --json statusCheckRollup \ + --jq '[.statusCheckRollup[]? | select(.workflowName == "termux-release-ci") | .detailsUrl] | map(select(. != null)) | .[0] // empty' + )" + ci_run_id="$(sed -n 's#.*\/actions\/runs\/\([0-9][0-9]*\).*#\1#p' <<< "${details_url}")" + [[ -z "${ci_run_id}" ]] || break + sleep 10 + done + + if [[ -z "${ci_run_id}" ]]; then + echo "Release CI did not start for ${pr_url}." >&2 + return 1 + fi + + gh run watch "${ci_run_id}" --repo "${GITHUB_REPOSITORY}" --exit-status + pr_info="$(gh pr view "${pr_url}" --repo "${GITHUB_REPOSITORY}" --json headRefOid,mergeStateStatus,mergeable,state,url)" + if [[ "$(jq -r '.headRefOid' <<< "${pr_info}")" != "${expected_head}" ]]; then + echo "Release PR head changed while CI ran; refusing to merge stale result." >&2 + return 1 + fi + + gh pr merge "${pr_url}" \ + --repo "${GITHUB_REPOSITORY}" \ + --squash \ + --delete-branch \ + --match-head-commit "${expected_head}" +} + +append_pr_summary() { + local outcome="$1" + local pr_url="${2:-}" + + [[ -n "${GITHUB_STEP_SUMMARY:-}" ]] || return 0 + + { + echo "## Termux release PR" + echo + echo "- Outcome: ${outcome}" + echo "- Upstream tag: \`${UPSTREAM_TAG}\`" + echo "- Termux tag: \`${TERMUX_TAG}\`" + echo "- Release branch: \`${RELEASE_BRANCH}\`" + echo "- Work branch: \`${WORK_BRANCH}\`" + echo "- Patch branch: \`${PATCH_BRANCH}\`" + if [[ -n "${pr_url}" ]]; then + echo "- PR: ${pr_url}" + fi + } >> "${GITHUB_STEP_SUMMARY}" +} + +capture_seeded_release_files + +release_branch_exists=false +if git ls-remote --exit-code --heads origin "${RELEASE_BRANCH}" >/dev/null 2>&1; then + release_branch_exists=true + git fetch origin "${RELEASE_BRANCH}" +fi + +if [[ "${release_branch_exists}" == "false" ]]; then + git checkout -B "${RELEASE_BRANCH}" "refs/tags/${UPSTREAM_TAG}" + seed_release_automation_files + git add -- "${TERMUX_RELEASE_AUTOMATION_PATHS[@]}" + if ! git diff --cached --quiet; then + git commit -m "chore(termux): seed release automation" + fi + git push --no-verify origin "${RELEASE_BRANCH}" +fi + +git fetch origin "${RELEASE_BRANCH}" +existing_pr="$(existing_open_release_pr)" +if [[ -n "${existing_pr}" && "$(jq -r '.headRefName' <<< "${existing_pr}")" != "${WORK_BRANCH}" ]]; then + WORK_BRANCH="$(jq -r '.headRefName' <<< "${existing_pr}")" +fi + +if git ls-remote --exit-code --heads origin "${WORK_BRANCH}" >/dev/null 2>&1; then + git fetch origin "${WORK_BRANCH}" + git checkout -B "${WORK_BRANCH}" "origin/${WORK_BRANCH}" +else + git checkout -B "${WORK_BRANCH}" "origin/${PATCH_BRANCH}" +fi + +seed_release_automation_files +normalize_workspace_versions + +mkdir -p .github +jq -n \ + --arg upstream_repo "${UPSTREAM_REPO}" \ + --arg upstream_tag "${UPSTREAM_TAG}" \ + --arg upstream_name "${UPSTREAM_NAME}" \ + --arg upstream_html_url "${UPSTREAM_HTML_URL}" \ + --arg upstream_target "${UPSTREAM_TARGET}" \ + --arg upstream_release_id "${UPSTREAM_ID}" \ + --arg release_train "${RELEASE_TRAIN}" \ + --arg release_branch "${RELEASE_BRANCH}" \ + --arg work_branch "${WORK_BRANCH}" \ + --arg patch_branch "${PATCH_BRANCH}" \ + --arg patch_source_sha "$(git rev-parse "origin/${PATCH_BRANCH}")" \ + --arg termux_tag "${TERMUX_TAG}" \ + --argjson upstream_prerelease "${UPSTREAM_PRERELEASE}" \ + '{ + upstream_repo: $upstream_repo, + upstream_tag: $upstream_tag, + upstream_name: $upstream_name, + upstream_html_url: $upstream_html_url, + upstream_target: $upstream_target, + upstream_release_id: $upstream_release_id, + upstream_prerelease: $upstream_prerelease, + release_train: $release_train, + release_branch: $release_branch, + work_branch: $work_branch, + patch_branch: $patch_branch, + patch_source_sha: $patch_source_sha, + termux_tag: $termux_tag + }' > .github/termux-release.json + +git add -A +if git diff --cached --quiet; then + echo "No changes to propose for ${UPSTREAM_TAG}." + append_pr_summary "no changes to propose" + exit 0 +fi + +git commit -m "chore(termux): prepare ${UPSTREAM_TAG}" +git push --no-verify --force-with-lease origin "${WORK_BRANCH}" + +body_path="${RUNNER_TEMP}/termux-release-pr.md" +{ + echo "## Termux release train" + echo + echo "- Upstream release: ${UPSTREAM_HTML_URL}" + echo "- Upstream tag: \`${UPSTREAM_TAG}\`" + echo "- Termux release tag: \`${TERMUX_TAG}\`" + echo "- Release branch: \`${RELEASE_BRANCH}\`" + echo "- Patch source: \`${PATCH_BRANCH}\`" + echo + echo "This PR carries the Termux patch branch onto the upstream release tag. If GitHub reports conflicts, resolve them by keeping upstream release code and preserving the Termux compatibility fixes." + echo + echo "This PR builds and smoke-tests \`opencode-android-arm64\` before merge. After merge, the deploy workflow verifies and promotes that exact artifact when its source tree matches, mirrors it to \`${TERMUX_TAG}\`, and opens a checkpoint PR back to \`${PATCH_BRANCH}\`." + echo + echo "## Upstream notes" + echo + printf '%s\n' "${UPSTREAM_BODY}" +} > "${body_path}" + +if [[ -n "${existing_pr}" ]]; then + pr_url="$(jq -r '.url' <<< "${existing_pr}")" + gh pr edit "${pr_url}" --repo "${GITHUB_REPOSITORY}" --title "${pr_title}" --body-file "${body_path}" + pr_action="updated" +else + pr_url="$( + gh pr create \ + --repo "${GITHUB_REPOSITORY}" \ + --base "${RELEASE_BRANCH}" \ + --head "${WORK_BRANCH}" \ + --title "${pr_title}" \ + --body-file "${body_path}" + )" + pr_action="created" +fi + +if [[ -n "${REVIEWER}" ]]; then + gh pr edit "${pr_url}" --repo "${GITHUB_REPOSITORY}" --add-reviewer "${REVIEWER}" || true +fi +gh label create termux-release --repo "${GITHUB_REPOSITORY}" --color 0e8a16 --description "Termux release automation" --force +gh label create release-train --repo "${GITHUB_REPOSITORY}" --color 1d76db --description "Release train PR" --force +gh pr edit "${pr_url}" --repo "${GITHUB_REPOSITORY}" --add-label "termux-release" --add-label "release-train" +merge_release_pr_after_ci "${pr_url}" +echo "pr_url=${pr_url}" >> "${GITHUB_OUTPUT}" +append_pr_summary "${pr_action} release train PR" "${pr_url}" diff --git a/.github/scripts/termux-find-pr-artifact.sh b/.github/scripts/termux-find-pr-artifact.sh new file mode 100755 index 000000000000..dd9a7d45be22 --- /dev/null +++ b/.github/scripts/termux-find-pr-artifact.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" +: "${PR_NUMBER:?PR_NUMBER is required}" +: "${PR_HEAD_SHA:?PR_HEAD_SHA is required}" +: "${GITHUB_OUTPUT:?GITHUB_OUTPUT is required}" + +artifact_name="opencode-android-arm64-pr-${PR_NUMBER}-${PR_HEAD_SHA}" +artifact_json="$( + gh api --method GET "repos/${GITHUB_REPOSITORY}/actions/artifacts?name=${artifact_name}&per_page=100" \ + --jq '[.artifacts[] | select(.expired == false)] | sort_by(.created_at) | reverse | .[0] // empty' +)" + +if [[ -z "${artifact_json}" ]]; then + { + echo "found=false" + echo "artifact_name=${artifact_name}" + } >> "${GITHUB_OUTPUT}" + exit 0 +fi + +artifact_id="$(jq -r '.id' <<< "${artifact_json}")" +run_id="$(jq -r '.workflow_run.id' <<< "${artifact_json}")" +run_json="$(gh api --method GET "repos/${GITHUB_REPOSITORY}/actions/runs/${run_id}")" + +if ! jq -e \ + --arg head_ref "${PR_HEAD_REF:-}" \ + --arg head_sha "${PR_HEAD_SHA}" \ + ' + .event == "pull_request" + and .status == "completed" + and .conclusion == "success" + and .path == ".github/workflows/termux-release-ci.yml" + and .head_sha == $head_sha + and ($head_ref == "" or .head_branch == $head_ref) + ' <<< "${run_json}" >/dev/null; then + echo "::warning::Artifact ${artifact_name} came from release CI run ${run_id}, but that run is not a successful check for PR ${PR_NUMBER}." + { + echo "found=false" + echo "artifact_name=${artifact_name}" + } >> "${GITHUB_OUTPUT}" + exit 0 +fi + +{ + echo "found=true" + echo "artifact_id=${artifact_id}" + echo "artifact_name=${artifact_name}" + echo "run_id=${run_id}" +} >> "${GITHUB_OUTPUT}" diff --git a/.github/scripts/termux-find-release-pr.sh b/.github/scripts/termux-find-release-pr.sh new file mode 100755 index 000000000000..0560f51b58a9 --- /dev/null +++ b/.github/scripts/termux-find-release-pr.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" + +if [[ -n "${INPUT_PR_NUMBER:-}" || -n "${INPUT_PR_HEAD_SHA:-}" ]]; then + if [[ -z "${INPUT_PR_NUMBER:-}" || -z "${INPUT_PR_HEAD_SHA:-}" ]]; then + echo "workflow_dispatch inputs pr_number and pr_head_sha must be provided together." >&2 + exit 1 + fi + pr_number="${INPUT_PR_NUMBER}" + head_sha="${INPUT_PR_HEAD_SHA}" + head_ref="" +else + : "${RELEASE_BRANCH:?RELEASE_BRANCH is required}" + : "${RELEASE_SHA:?RELEASE_SHA is required}" + pr_json="$( + gh pr list \ + --repo "${GITHUB_REPOSITORY}" \ + --base "${RELEASE_BRANCH}" \ + --state merged \ + --limit 100 \ + --json number,headRefOid,headRefName,mergeCommit \ + --jq "[.[] | select(.mergeCommit.oid == \"${RELEASE_SHA}\")] | sort_by(.number) | reverse | .[0] // empty" + )" + if [[ -z "${pr_json}" ]]; then + echo "Unable to find merged PR for ${RELEASE_SHA} into ${RELEASE_BRANCH}" >&2 + exit 1 + fi + pr_number="$(jq -r '.number' <<< "${pr_json}")" + head_sha="$(jq -r '.headRefOid' <<< "${pr_json}")" + head_ref="$(jq -r '.headRefName' <<< "${pr_json}")" +fi + +{ + echo "number=${pr_number}" + echo "head_sha=${head_sha}" + echo "head_ref=${head_ref}" +} >> "${GITHUB_OUTPUT}" diff --git a/.github/scripts/termux-finish-android-build-deployment.sh b/.github/scripts/termux-finish-android-build-deployment.sh new file mode 100755 index 000000000000..0cf33af079fe --- /dev/null +++ b/.github/scripts/termux-finish-android-build-deployment.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GITHUB_RUN_ID:?GITHUB_RUN_ID is required}" +: "${GITHUB_SERVER_URL:?GITHUB_SERVER_URL is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" +: "${DEPLOYMENT_ID:?DEPLOYMENT_ID is required}" +: "${BUILD_RESULT:?BUILD_RESULT is required}" + +state="success" +description="Android artifact build completed" +if [[ "${BUILD_RESULT}" != "success" ]]; then + state="failure" + description="Android artifact build failed" +fi + +gh api --method POST "repos/${GITHUB_REPOSITORY}/deployments/${DEPLOYMENT_ID}/statuses" \ + --input - <<< "$( + jq -n \ + --arg state "${state}" \ + --arg description "${description}" \ + --arg log_url "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" \ + '{ + state: $state, + environment: "termux-android", + log_url: $log_url, + description: $description + }' + )" diff --git a/.github/scripts/termux-read-release-metadata.sh b/.github/scripts/termux-read-release-metadata.sh new file mode 100755 index 000000000000..be17c87a9204 --- /dev/null +++ b/.github/scripts/termux-read-release-metadata.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_OUTPUT:?GITHUB_OUTPUT is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" + +metadata=".github/termux-release.json" +if [[ ! -f "${metadata}" ]]; then + echo "No ${metadata}; this is not a Termux release deployment." + echo "deploy=false" >> "${GITHUB_OUTPUT}" + exit 0 +fi + +upstream_tag="$(jq -r '.upstream_tag // empty' "${metadata}")" +upstream_name="$(jq -r '.upstream_name // .upstream_tag // empty' "${metadata}")" +termux_tag="$(jq -r '.termux_tag // empty' "${metadata}")" +upstream_prerelease="$(jq -r '.upstream_prerelease // false' "${metadata}")" +upstream_html_url="$(jq -r '.upstream_html_url // ""' "${metadata}")" +upstream_repo="$(jq -r '.upstream_repo // "anomalyco/opencode"' "${metadata}")" +release_train="$(jq -r '.release_train // ""' "${metadata}")" + +if [[ -z "${upstream_tag}" || -z "${termux_tag}" ]]; then + echo "Missing upstream_tag or termux_tag in ${metadata}" >&2 + exit 1 +fi + +release_exists=false +asset_exists=false +if gh release view "${termux_tag}" --repo "${GITHUB_REPOSITORY}" >/dev/null 2>&1; then + release_exists=true + if [[ "$( + gh release view "${termux_tag}" \ + --repo "${GITHUB_REPOSITORY}" \ + --json assets \ + --jq '.assets | map(.name) | any(. == "opencode-android-arm64.tar.gz")' + )" == "true" ]]; then + asset_exists=true + fi +fi + +{ + echo "deploy=true" + echo "upstream_tag=${upstream_tag}" + echo "upstream_name=${upstream_name}" + echo "termux_tag=${termux_tag}" + echo "build_version=${termux_tag#v}" + echo "upstream_prerelease=${upstream_prerelease}" + echo "upstream_html_url=${upstream_html_url}" + echo "upstream_repo=${upstream_repo}" + echo "release_train=${release_train}" + echo "release_exists=${release_exists}" + echo "asset_exists=${asset_exists}" +} >> "${GITHUB_OUTPUT}" diff --git a/.github/scripts/termux-release-paths.sh b/.github/scripts/termux-release-paths.sh new file mode 100755 index 000000000000..72a8e9c26309 --- /dev/null +++ b/.github/scripts/termux-release-paths.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +set -euo pipefail + +readonly -a TERMUX_RELEASE_WORKFLOW_PATHS=( + .github/actions/build-android-cli/action.yml + .github/workflows/publish.yml + .github/workflows/test.yml + .github/workflows/termux-android-artifact-smoke.yml + .github/workflows/termux-release-branch-cleanup.yml + .github/workflows/termux-release-checkpoint.yml + .github/workflows/termux-release-ci.yml + .github/workflows/termux-release-deploy.yml + .github/workflows/termux-release-watch.yml +) + +readonly -a TERMUX_RELEASE_SCRIPT_PATHS=( + .github/scripts/termux-configure-git.sh + .github/scripts/termux-cleanup-release-branch.sh + .github/scripts/termux-create-checkpoint-pr.sh + .github/scripts/termux-create-android-build-deployment.sh + .github/scripts/termux-create-or-update-mirrored-release.sh + .github/scripts/termux-create-release-pr.sh + .github/scripts/termux-find-release-pr.sh + .github/scripts/termux-find-pr-artifact.sh + .github/scripts/termux-finish-android-build-deployment.sh + .github/scripts/termux-read-release-metadata.sh + .github/scripts/termux-release-paths.sh + .github/scripts/termux-resolve-release-ref.sh + .github/scripts/termux-select-release.sh + .github/scripts/termux-validate-gh-env.sh +) + +readonly -a TERMUX_RELEASE_AUTOMATION_PATHS=( + "${TERMUX_RELEASE_WORKFLOW_PATHS[@]}" + "${TERMUX_RELEASE_SCRIPT_PATHS[@]}" +) + +readonly -a TERMUX_CHECKPOINT_RELEASE_ONLY_PATHS=( + "${TERMUX_RELEASE_AUTOMATION_PATHS[@]}" + .github/termux-release.json +) + +termux_path_in_list() { + local candidate="$1" + shift + local listed_path + + for listed_path in "$@"; do + [[ "${candidate}" != "${listed_path}" ]] || return 0 + done + return 1 +} + +termux_is_checkpoint_release_only_path() { + termux_path_in_list "$1" "${TERMUX_CHECKPOINT_RELEASE_ONLY_PATHS[@]}" +} + +termux_is_checkpoint_source_wins_path() { + case "$1" in + bun.lock | packages/*/package.json | sdks/*/package.json) + return 0 + ;; + esac + return 1 +} diff --git a/.github/scripts/termux-resolve-release-ref.sh b/.github/scripts/termux-resolve-release-ref.sh new file mode 100755 index 000000000000..02e92b4e3d8f --- /dev/null +++ b/.github/scripts/termux-resolve-release-ref.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_EVENT_NAME:?GITHUB_EVENT_NAME is required}" +: "${GITHUB_OUTPUT:?GITHUB_OUTPUT is required}" + +input_release_branch="${INPUT_RELEASE_BRANCH:-${REQUESTED_RELEASE_BRANCH:-}}" +input_release_sha="${INPUT_RELEASE_SHA:-${REQUESTED_RELEASE_SHA:-}}" + +if [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then + if [[ -z "${input_release_branch}" ]]; then + echo "release_branch is required for workflow_dispatch." >&2 + exit 1 + fi + release_branch="${input_release_branch}" + git fetch origin "${release_branch}" + git checkout --detach "origin/${release_branch}" + if [[ -n "${input_release_sha}" ]]; then + git checkout --detach "${input_release_sha}" + release_sha="${input_release_sha}" + else + release_sha="$(git rev-parse HEAD)" + fi +else + : "${GITHUB_REF_NAME:?GITHUB_REF_NAME is required}" + : "${GITHUB_SHA:?GITHUB_SHA is required}" + release_branch="${GITHUB_REF_NAME}" + release_sha="${GITHUB_SHA}" +fi + +{ + echo "branch=${release_branch}" + echo "sha=${release_sha}" +} >> "${GITHUB_OUTPUT}" diff --git a/.github/scripts/termux-select-release.sh b/.github/scripts/termux-select-release.sh new file mode 100755 index 000000000000..2784c8c91737 --- /dev/null +++ b/.github/scripts/termux-select-release.sh @@ -0,0 +1,335 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${UPSTREAM_REPO:?UPSTREAM_REPO is required}" +: "${REQUESTED_TAG?REQUESTED_TAG is required}" +: "${BYPASS_PRIOR_RELEASE_TRAIN:?BYPASS_PRIOR_RELEASE_TRAIN is required}" +: "${GITHUB_OUTPUT:?GITHUB_OUTPUT is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" + +normalize_tag_version() { + local tag="$1" + local version="${tag#v}" + version="${version%-termux}" + printf '%s\n' "${version}" +} + +requested_upstream_tag() { + local requested="${1#refs/tags/}" + printf 'v%s\n' "$(normalize_tag_version "${requested}")" +} + +release_train_for_tag() { + local version + version="$(normalize_tag_version "$1")" + printf '%s\n' "${version%%-*}" +} + +release_branch_for_tag() { + printf 'release-%s\n' "$(release_train_for_tag "$1")" +} + +work_branch_for_tag() { + printf 'termux-%s\n' "$(release_train_for_tag "$1")" +} + +termux_tag_for_tag() { + printf '%s-termux\n' "$1" +} + +latest_release_json() { + gh api --method GET "repos/${UPSTREAM_REPO}/releases?per_page=1" \ + | jq -c ' + .[0] // empty + | select(type == "object") + | { + tagName: (.tag_name // .tagName // ""), + name: (.name // .tag_name // .tagName // ""), + body: (.body // ""), + url: (.html_url // .url // ""), + isPrerelease: (.prerelease // .isPrerelease // false), + targetCommitish: (.target_commitish // .targetCommitish // ""), + databaseId: (.id // .databaseId // "") + } + ' +} + +release_json_for_tag() { + local tag="$1" + gh api --method GET "repos/${UPSTREAM_REPO}/releases/tags/${tag}" \ + | jq -c '{ + tagName: (.tag_name // .tagName // ""), + name: (.name // .tag_name // .tagName // ""), + body: (.body // ""), + url: (.html_url // .url // ""), + isPrerelease: (.prerelease // .isPrerelease // false), + targetCommitish: (.target_commitish // .targetCommitish // ""), + databaseId: (.id // .databaseId // "") + }' +} + +open_prs_json() { + gh pr list \ + --repo "${GITHUB_REPOSITORY}" \ + --state open \ + --limit 200 \ + --json number,title,body,headRefName,baseRefName,url +} + +release_branch_current_tag() { + git show "origin/$1:.github/termux-release.json" 2>/dev/null \ + | jq -r '.upstream_tag // empty' 2>/dev/null \ + || true +} + +version_is_newer() { + local candidate="$1" + local current="$2" + local candidate_version + local current_version + local newest + + if [[ -z "${current}" ]]; then + return 0 + fi + + candidate_version="$(normalize_tag_version "${candidate}")" + current_version="$(normalize_tag_version "${current}")" + newest="$(printf '%s\n%s\n' "${current_version}" "${candidate_version}" | sort -V | tail -n 1)" + [[ "${newest}" == "${candidate_version}" && "${candidate_version}" != "${current_version}" ]] +} + +latest_mirrored_termux_tag() { + local release_train="${1:-}" + local newest_tag="" + local tag + local tag_train + + while IFS= read -r tag; do + [[ -n "${tag}" ]] || continue + [[ "${tag}" == v*-termux ]] || continue + if [[ -n "${release_train}" ]]; then + tag_train="$(release_train_for_tag "${tag}")" + [[ "${tag_train}" == "${release_train}" ]] || continue + fi + if [[ -z "${newest_tag}" ]] || version_is_newer "${tag}" "${newest_tag}"; then + newest_tag="${tag}" + fi + done < <( + gh release list \ + --repo "${GITHUB_REPOSITORY}" \ + --exclude-drafts \ + --limit 200 \ + --json tagName \ + --jq '.[].tagName' + ) + + printf '%s\n' "${newest_tag}" +} + +latest_mirrored_termux_tag_for_train() { + latest_mirrored_termux_tag "$1" +} + +open_release_train_pr_for_branch() { + local release_branch="$1" + open_prs_json \ + | jq -c \ + --arg release_branch "${release_branch}" \ + ' + [ + .[] + | select(.baseRefName == $release_branch) + | select( + ((.title // "") | startswith("Termux v")) + and ((.body // "") | contains("Release branch: `" + $release_branch + "`")) + ) + | . + { + upstreamTag: ( + (.body // "") + | try capture("- Upstream tag: `(?v[^`]+)`").tag catch "" + ) + } + ] + | sort_by(.number) + | reverse + | .[0] // empty + ' +} + +open_other_release_train_prs() { + local release_branch="$1" + open_prs_json \ + | jq -r \ + --arg release_branch "${release_branch}" \ + ' + .[] + | select(.baseRefName != $release_branch) + | select( + ((.title // "") | startswith("Termux v")) + and ((.body // "") | contains("Release branch: `release-")) + ) + | "- #\(.number) \(.title) (\(.url))" + ' +} + +append_selection_summary() { + local selected="$1" + local upstream_tag="${2:-}" + local release_branch="${3:-}" + local work_branch="${4:-}" + local termux_tag="${5:-}" + + [[ -n "${GITHUB_STEP_SUMMARY:-}" ]] || return 0 + + { + echo "## Termux release selection" + echo + echo "- Repository: \`${GITHUB_REPOSITORY}\`" + echo "- Upstream repository: \`${UPSTREAM_REPO}\`" + if [[ "${selected}" == "true" ]]; then + echo "- Selected upstream tag: \`${upstream_tag}\`" + echo "- Release branch: \`${release_branch}\`" + echo "- Work branch: \`${work_branch}\`" + echo "- Termux tag: \`${termux_tag}\`" + else + echo "- Selected: no" + fi + } >> "${GITHUB_STEP_SUMMARY}" +} + +emit_selected_release() { + local release_json="$1" + local release_branch="$2" + local work_branch="$3" + local termux_tag="$4" + local upstream_tag + local upstream_body + + upstream_tag="$(jq -r '.tagName' <<< "${release_json}")" + upstream_body="$(jq -r '.body // ""' <<< "${release_json}")" + + { + echo "selected=true" + echo "upstream_tag=${upstream_tag}" + echo "upstream_name=$(jq -r '.name' <<< "${release_json}")" + echo "upstream_html_url=$(jq -r '.url' <<< "${release_json}")" + echo "upstream_prerelease=$(jq -r '.isPrerelease' <<< "${release_json}")" + echo "upstream_target=$(jq -r '.targetCommitish' <<< "${release_json}")" + echo "upstream_id=$(jq -r '.databaseId' <<< "${release_json}")" + echo "release_train=$(release_train_for_tag "${upstream_tag}")" + echo "release_branch=${release_branch}" + echo "work_branch=${work_branch}" + echo "termux_tag=${termux_tag}" + } >> "${GITHUB_OUTPUT}" + + body_delimiter="termux_release_body_$(date +%s%N)_${RANDOM}_${RANDOM}" + while grep -qxF "${body_delimiter}" <<< "${upstream_body}"; do + body_delimiter="termux_release_body_$(date +%s%N)_${RANDOM}_${RANDOM}" + done + { + echo "body<<${body_delimiter}" + printf '%s\n' "${upstream_body}" + echo "${body_delimiter}" + } >> "${GITHUB_OUTPUT}" + + append_selection_summary "true" "${upstream_tag}" "${release_branch}" "${work_branch}" "${termux_tag}" +} + +maybe_select_release() { + local release_json="$1" + local selection_mode="${2:-latest}" + local upstream_tag + local release_train + local release_branch + local work_branch + local termux_tag + local current_tag + local mirrored_tag + local open_pr_json + local open_pr_tag + local pending_other_prs + + upstream_tag="$(jq -r '.tagName // empty' <<< "${release_json}")" + [[ "${upstream_tag}" == v* ]] || return 1 + + release_train="$(release_train_for_tag "${upstream_tag}")" + release_branch="$(release_branch_for_tag "${upstream_tag}")" + work_branch="$(work_branch_for_tag "${upstream_tag}")" + termux_tag="$(termux_tag_for_tag "${upstream_tag}")" + + if gh release view "${termux_tag}" --repo "${GITHUB_REPOSITORY}" >/dev/null 2>&1; then + echo "${termux_tag} already exists; nothing to do." + return 1 + fi + + open_pr_json="$(open_release_train_pr_for_branch "${release_branch}")" + if [[ -n "${open_pr_json}" ]]; then + open_pr_tag="$(jq -r '.upstreamTag // empty' <<< "${open_pr_json}")" + work_branch="$(jq -r '.headRefName' <<< "${open_pr_json}")" + if [[ "${open_pr_tag}" == "${upstream_tag}" && "${selection_mode}" == "requested" ]]; then + emit_selected_release "${release_json}" "${release_branch}" "${work_branch}" "${termux_tag}" + return 0 + fi + if [[ "${open_pr_tag}" == "${upstream_tag}" ]]; then + echo "${upstream_tag} already has open release PR $(jq -r '.url' <<< "${open_pr_json}"); nothing to do." + return 1 + fi + if [[ "${selection_mode}" != "requested" ]] && ! version_is_newer "${upstream_tag}" "${open_pr_tag}"; then + echo "${upstream_tag} is not newer than open PR tag ${open_pr_tag}; nothing to do." + return 1 + fi + fi + + if [[ "${selection_mode}" != "requested" ]]; then + current_tag="$(release_branch_current_tag "${release_branch}")" + if ! version_is_newer "${upstream_tag}" "${current_tag}"; then + echo "${upstream_tag} is not newer than ${current_tag} already recorded on ${release_branch}; nothing to do." + return 1 + fi + + mirrored_tag="$(latest_mirrored_termux_tag)" + if ! version_is_newer "${upstream_tag}" "${mirrored_tag}"; then + echo "${upstream_tag} is not newer than ${mirrored_tag} already mirrored; nothing to do." + return 1 + fi + + mirrored_tag="$(latest_mirrored_termux_tag_for_train "${release_train}")" + if ! version_is_newer "${upstream_tag}" "${mirrored_tag}"; then + echo "${upstream_tag} is not newer than ${mirrored_tag} already mirrored for ${release_train}; nothing to do." + return 1 + fi + + if [[ "${BYPASS_PRIOR_RELEASE_TRAIN}" != "true" ]]; then + pending_other_prs="$(open_other_release_train_prs "${release_branch}")" + if [[ -n "${pending_other_prs}" ]]; then + echo "${upstream_tag} is newer, but another release train PR is open." + printf '%s\n' "${pending_other_prs}" + return 1 + fi + fi + fi + + emit_selected_release "${release_json}" "${release_branch}" "${work_branch}" "${termux_tag}" +} + +if [[ -n "${REQUESTED_TAG}" ]]; then + requested_tag="$(requested_upstream_tag "${REQUESTED_TAG}")" + if ! release_json="$(release_json_for_tag "${requested_tag}")"; then + echo "Requested upstream release ${requested_tag} does not exist remotely." + elif maybe_select_release "${release_json}" "requested"; then + exit 0 + else + echo "Requested upstream release ${requested_tag} does not need a Termux mirror." + fi +else + if release_json="$(latest_release_json)" && [[ -n "${release_json}" ]] && maybe_select_release "${release_json}"; then + exit 0 + fi +fi + +echo "No upstream release needs a Termux mirror." +echo "selected=false" >> "${GITHUB_OUTPUT}" +append_selection_summary "false" diff --git a/.github/scripts/termux-validate-gh-env.sh b/.github/scripts/termux-validate-gh-env.sh new file mode 100755 index 000000000000..c57a9774d11d --- /dev/null +++ b/.github/scripts/termux-validate-gh-env.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -euo pipefail + +: "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" +: "${GH_TOKEN:?GH_TOKEN is required}" + +command -v gh +command -v jq + +printf 'GITHUB_REPOSITORY=%s\n' "${GITHUB_REPOSITORY}" +printf 'GITHUB_REF_NAME=%s\n' "${GITHUB_REF_NAME:-}" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c86a1fda1353..cdd65000c479 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,5 +1,5 @@ name: publish -run-name: "${{ format('release {0}', inputs.bump) }}" +run-name: "${{ inputs.target == 'android-arm64' && 'build android artifact' || inputs.target == 'android-smoke' && 'build android smoke artifact' || format('release {0}', inputs.bump) }}" on: push: @@ -23,18 +23,39 @@ on: description: "Override version (optional)" required: false type: string + target: + description: "Manual build target" + required: false + default: all + type: choice + options: + - all + - android-arm64 + - android-smoke -concurrency: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.version || inputs.bump }} +concurrency: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.target || 'all' }}-${{ inputs.version || inputs.bump }} permissions: + actions: read + artifact-metadata: read + attestations: read + checks: read id-token: write contents: write + deployments: read + discussions: read + issues: read + models: read packages: write + pages: read + pull-requests: read + security-events: read + statuses: read jobs: version: runs-on: blacksmith-4vcpu-ubuntu-2404 - if: github.repository == 'anomalyco/opencode' + if: github.repository == 'anomalyco/opencode' && !contains(fromJSON('["android-arm64","android-smoke"]'), inputs.target) steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: @@ -71,7 +92,7 @@ jobs: build-cli: needs: version runs-on: blacksmith-4vcpu-ubuntu-2404 - if: github.repository == 'anomalyco/opencode' + if: github.repository == 'anomalyco/opencode' && !contains(fromJSON('["android-arm64","android-smoke"]'), inputs.target) steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: @@ -79,6 +100,11 @@ jobs: - uses: ./.github/actions/setup-bun + - name: Setup Zig + uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2 + with: + version: 0.15.2 + - name: Setup git committer id: committer uses: ./.github/actions/setup-git-committer @@ -101,6 +127,7 @@ jobs: with: name: opencode-cli path: | + packages/opencode/dist/opencode-android* packages/opencode/dist/opencode-darwin* packages/opencode/dist/opencode-linux* @@ -117,6 +144,87 @@ jobs: outputs: version: ${{ needs.version.outputs.version }} + build-android: + runs-on: ubuntu-24.04 + if: github.event_name == 'workflow_dispatch' && inputs.target == 'android-arm64' + timeout-minutes: 120 + steps: + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + with: + fetch-tags: true + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - name: Build Android CLI + uses: ./.github/actions/build-android-cli + with: + version: ${{ inputs.version || format('0.0.0-android.{0}', github.run_number) }} + release: "" + repo: ${{ github.repository }} + + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: opencode-android-arm64 + path: | + packages/opencode/dist/opencode-android-arm64 + packages/opencode/dist/opencode-android-arm64.tar.gz + packages/opencode/dist/android-smoke + + termux-android-smoke: + name: Smoke Android artifact in Termux + needs: build-android + if: github.event_name == 'workflow_dispatch' && inputs.target == 'android-arm64' + permissions: + actions: read + contents: read + uses: ./.github/workflows/termux-android-artifact-smoke.yml + with: + artifact_name: opencode-android-arm64 + artifact_run_id: ${{ github.run_id }} + + build-android-smoke: + runs-on: ubuntu-24.04 + if: github.event_name == 'workflow_dispatch' && inputs.target == 'android-smoke' + steps: + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - uses: ./.github/actions/setup-bun + + - name: Build Android compile smoke + run: | + mkdir -p "$RUNNER_TEMP/opencode-android-smoke" + cat > "$RUNNER_TEMP/opencode-android-smoke/smoke.ts" <<'EOF' + console.log("bun android compile smoke") + console.log(process.platform) + console.log(process.arch) + EOF + bun build "$RUNNER_TEMP/opencode-android-smoke/smoke.ts" \ + --compile \ + --target=bun-android-arm64 \ + --outfile="$RUNNER_TEMP/opencode-android-smoke/smoke" + bun packages/opencode/script/patch-android-elf.ts "$RUNNER_TEMP/opencode-android-smoke/smoke" + file "$RUNNER_TEMP/opencode-android-smoke/smoke" | tee "$RUNNER_TEMP/opencode-android-smoke/file.txt" + readelf -l "$RUNNER_TEMP/opencode-android-smoke/smoke" > "$RUNNER_TEMP/opencode-android-smoke/readelf-program-headers.txt" + readelf -S "$RUNNER_TEMP/opencode-android-smoke/smoke" > "$RUNNER_TEMP/opencode-android-smoke/readelf-sections.txt" + readelf -d "$RUNNER_TEMP/opencode-android-smoke/smoke" > "$RUNNER_TEMP/opencode-android-smoke/readelf-dynamic.txt" + + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: bun-android-compile-smoke + path: ${{ runner.temp }}/opencode-android-smoke + sign-cli-windows: needs: - build-cli @@ -219,6 +327,7 @@ jobs: build-electron: needs: + - build-cli - version if: github.repository == 'anomalyco/opencode' continue-on-error: false @@ -315,14 +424,16 @@ jobs: env: OPENCODE_VERSION: ${{ needs.version.outputs.version }} OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }} + OPENCODE_CLI_ARTIFACT: ${{ (runner.os == 'Windows' && 'opencode-cli-windows') || 'opencode-cli' }} RUST_TARGET: ${{ matrix.settings.target }} + GH_TOKEN: ${{ github.token }} + GITHUB_RUN_ID: ${{ github.run_id }} - name: Build run: bun run build working-directory: packages/desktop env: NODE_OPTIONS: --max-old-space-size=4096 - OPENCODE_VERSION: ${{ needs.version.outputs.version }} OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_ORG: ${{ vars.SENTRY_ORG }} @@ -340,7 +451,8 @@ jobs: env: OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }} GH_TOKEN: ${{ steps.committer.outputs.token }} - CSC_KEYCHAIN: build.keychain + CSC_LINK: ${{ secrets.APPLE_CERTIFICATE }} + CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} APPLE_API_KEY: ${{ runner.temp }}/apple-api-key.p8 APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY }} APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} @@ -407,14 +519,15 @@ jobs: - build-cli - sign-cli-windows - build-electron - if: always() && !failure() && !cancelled() - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' && (always() && !failure() && !cancelled()) + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - uses: ./.github/actions/setup-bun - name: Login to GitHub Container Registry + if: github.repository == 'anomalyco/opencode' uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: registry: ghcr.io @@ -466,6 +579,7 @@ jobs: merge-multiple: true - name: Setup git committer + if: github.repository == 'anomalyco/opencode' id: committer uses: ./.github/actions/setup-git-committer with: @@ -481,6 +595,7 @@ jobs: ${{ runner.os }}-apt-aur- - name: Setup SSH for AUR + if: github.repository == 'anomalyco/opencode' run: | sudo apt-get update sudo apt-get install -y pacman-package-manager @@ -492,7 +607,7 @@ jobs: ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true - name: Upload desktop release assets - if: needs.version.outputs.release + if: github.repository == 'anomalyco/opencode' && (needs.version.outputs.release) env: GH_TOKEN: ${{ steps.committer.outputs.token }} run: | @@ -505,6 +620,7 @@ jobs: gh release upload "v${{ needs.version.outputs.version }}" "${files[@]}" --clobber --repo "${{ needs.version.outputs.repo }}" - run: ./script/publish.ts + if: github.repository == 'anomalyco/opencode' env: OPENCODE_VERSION: ${{ needs.version.outputs.version }} OPENCODE_RELEASE: ${{ needs.version.outputs.release }} diff --git a/.github/workflows/termux-android-artifact-smoke.yml b/.github/workflows/termux-android-artifact-smoke.yml new file mode 100644 index 000000000000..9c281bfa1ff7 --- /dev/null +++ b/.github/workflows/termux-android-artifact-smoke.yml @@ -0,0 +1,170 @@ +name: termux-android-artifact-smoke + +on: + workflow_call: + inputs: + artifact_name: + description: Name of the Actions artifact to download from artifact_run_id. + required: true + type: string + artifact_run_id: + description: Workflow run id containing artifact_name. + required: true + type: string + +permissions: + actions: read + contents: read + +jobs: + smoke: + name: Smoke opencode in Termux + uses: wallentx/gh-actions/.github/workflows/termux-run.yml@main + secrets: + github-token: ${{ github.token }} + with: + packages: | + binutils + ca-certificates + coreutils + file + tar + util-linux + copy-paths: | + termux-smoke-artifact + env: | + ARTIFACT_NAME=${{ inputs.artifact_name }} + ARTIFACT_RUN_ID=${{ inputs.artifact_run_id }} + DOWNLOAD_DIR=termux-smoke-artifact + PATH=/workspace-src/.github/scripts/termux-ci-bin:/data/data/com.termux/files/usr/bin:/usr/bin:/bin + TERMUX_PACMAN_MIRROR=https://ftp.agdsn.de/termux-pacman + host-commands: | + set -Eeuo pipefail + + rm -rf "$DOWNLOAD_DIR" + mkdir -p "$DOWNLOAD_DIR" + gh run download "$ARTIFACT_RUN_ID" \ + --repo "$GITHUB_REPOSITORY" \ + --name "$ARTIFACT_NAME" \ + --dir "$DOWNLOAD_DIR" + + archive="$( + find "$DOWNLOAD_DIR" -type f -name 'opencode-android-arm64.tar.gz' -print -quit + )" + if [[ -z "$archive" ]]; then + echo "Could not find opencode-android-arm64.tar.gz in $DOWNLOAD_DIR." >&2 + find "$DOWNLOAD_DIR" -maxdepth 4 -type f -print >&2 + exit 1 + fi + tar -tzf "$archive" + + { + for package in core keymap solid + do + grep -Fq "\"@opentui/${package}\": \"0.3.4\"" package.json + grep -Fq "\"@opentui/${package}\": \"0.3.4\"" bun.lock + echo "@opentui/${package}=0.3.4" + done + } | tee "$DOWNLOAD_DIR/opentui-pin.txt" + commands: | + set -Eeuo pipefail + + archive="$( + find termux-smoke-artifact -type f -name 'opencode-android-arm64.tar.gz' -print -quit + )" + if [[ -z "$archive" ]]; then + echo "Could not find opencode-android-arm64.tar.gz in termux-smoke-artifact." >&2 + find termux-smoke-artifact -maxdepth 4 -type f -print >&2 + exit 1 + fi + + rm -rf opencode-smoke termux-smoke-output termux-home smoke-project + mkdir -p opencode-smoke termux-smoke-output termux-home smoke-project + tar -xzf "$archive" -C opencode-smoke + find opencode-smoke -maxdepth 3 -type f -print | tee termux-smoke-output/files.txt + + binary="" + for candidate in \ + opencode-smoke/opencode \ + opencode-smoke/bin/opencode \ + opencode-smoke/opencode-android-arm64/bin/opencode + do + if [[ -x "$candidate" ]]; then + binary="$candidate" + break + fi + done + + if [[ -z "$binary" ]]; then + echo "Could not find executable opencode in $archive." >&2 + exit 1 + fi + + binary="$(realpath "$binary")" + readelf_tool="$(command -v readelf || command -v greadelf)" + file "$binary" | tee termux-smoke-output/file.txt + "$readelf_tool" -h "$binary" | tee termux-smoke-output/readelf-header.txt + "$readelf_tool" -l "$binary" | tee termux-smoke-output/readelf-program-headers.txt + "$readelf_tool" -d "$binary" | tee termux-smoke-output/readelf-dynamic.txt + + grep -q "Machine:.*AArch64" termux-smoke-output/readelf-header.txt + grep -q "Type:.*DYN" termux-smoke-output/readelf-header.txt + if grep -E "Requesting program interpreter: .*(ld-linux|ld-musl)" termux-smoke-output/readelf-program-headers.txt; then + echo "Android artifact unexpectedly references a Linux ELF interpreter." >&2 + exit 1 + fi + if grep -E "Shared library: \[(libc\.so\.6|ld-linux|ld-musl)" termux-smoke-output/readelf-dynamic.txt; then + echo "Android artifact unexpectedly links Linux libc/runtime libraries." >&2 + exit 1 + fi + + "$binary" --version | tee termux-smoke-output/version.txt + set +e + "$binary" -h 2>&1 | tee termux-smoke-output/help.txt + help_status="${PIPESTATUS[0]}" + set -e + echo "help status $help_status" + grep -Eiq 'opencode|commands|options' termux-smoke-output/help.txt + { + echo "@opentui/core=0.3.4" + echo "@opentui/keymap=0.3.4" + echo "@opentui/solid=0.3.4" + } | tee termux-smoke-output/opentui-pin.txt + + export HOME="$PWD/termux-home" + export OPENCODE_DISABLE_AUTOUPDATE=1 + export TERM=xterm-256color + export SMOKE_OUTPUT="$PWD/termux-smoke-output" + + cd smoke-project + + smoke_tui() { + local name="$1" + local seconds="${OPENCODE_TUI_SMOKE_SECONDS:-8}" + local status + shift + + echo "starting $name tui smoke" + set +e + script -q -e -f \ + -O "$SMOKE_OUTPUT/$name.pty.log" \ + -- timeout -k 2s "${seconds}s" "$binary" "$@" + status="$?" + set -e + echo "$name tui smoke status $status" + + if [[ "$status" -eq 124 ]]; then + echo "$name survived ${seconds}s without abort" + return + fi + + echo "$name exited before ${seconds}s with status $status" >&2 + tail -c 4000 "$SMOKE_OUTPUT/$name.pty.log" >&2 || true + exit 1 + } + + smoke_tui default --pure --print-logs --log-level DEBUG + smoke_tui mini --mini --demo --pure --print-logs --log-level DEBUG + sync-back-paths: | + termux-smoke-output + upload-artifact-name: opencode-android-arm64-termux-smoke-${{ inputs.artifact_run_id }} diff --git a/.github/workflows/termux-release-branch-cleanup.yml b/.github/workflows/termux-release-branch-cleanup.yml new file mode 100644 index 000000000000..902ecca36d2f --- /dev/null +++ b/.github/workflows/termux-release-branch-cleanup.yml @@ -0,0 +1,89 @@ +name: termux-release-branch-cleanup + +on: + workflow_dispatch: + inputs: + release_branch: + description: "Release branch to clean up, for example release-1.17.13" + required: false + type: string + default: "" + checkpoint_pr: + description: "Checkpoint PR number or URL to verify before cleanup" + required: false + type: string + default: "" + cleanup_limit: + description: "Number of recent merged checkpoint PRs to scan" + required: false + type: string + default: "100" + schedule: + - cron: "37 8 * * *" + +permissions: + actions: read + artifact-metadata: read + attestations: read + checks: read + contents: write + deployments: read + discussions: read + id-token: none + issues: read + models: read + packages: read + pages: read + pull-requests: read + security-events: read + statuses: read + +concurrency: + group: termux-release-branch-cleanup-${{ inputs.release_branch || inputs.checkpoint_pr || github.event_name }} + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + cleanup: + if: github.repository == 'wallentx/opencode-termux' + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Export GitHub App token for gh + env: + APP_TOKEN: ${{ steps.app-token.outputs.token }} + run: echo "GH_TOKEN=${APP_TOKEN}" >> "${GITHUB_ENV}" + + - name: Checkout automation branch + uses: actions/checkout@v6 + with: + fetch-depth: 1 + ref: dev + token: ${{ steps.app-token.outputs.token }} + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - name: Validate GitHub CLI environment + run: bash .github/scripts/termux-validate-gh-env.sh + + - name: Delete release branches after merged checkpoints + env: + CHECKPOINT_PR: ${{ inputs.checkpoint_pr }} + SOURCE_BRANCH: ${{ inputs.release_branch }} + CLEANUP_LIMIT: ${{ inputs.cleanup_limit || '100' }} + run: bash .github/scripts/termux-cleanup-release-branch.sh diff --git a/.github/workflows/termux-release-checkpoint.yml b/.github/workflows/termux-release-checkpoint.yml new file mode 100644 index 000000000000..a69a1a596979 --- /dev/null +++ b/.github/workflows/termux-release-checkpoint.yml @@ -0,0 +1,106 @@ +name: termux-release-checkpoint + +on: + workflow_dispatch: + inputs: + source_branch: + description: "Release branch to checkpoint from" + required: true + type: string + source_sha: + description: "Release branch SHA; defaults to source branch head" + required: false + type: string + default: "" + destination_branch: + description: "Reusable Termux patch branch" + required: false + type: string + default: "termux-target" + reviewer: + description: "GitHub username to request as reviewer" + required: false + type: string + default: "wallentx" + +permissions: + actions: read + artifact-metadata: read + attestations: read + checks: read + contents: write + deployments: read + discussions: read + id-token: none + issues: write + models: read + packages: read + pages: read + pull-requests: write + security-events: read + statuses: read + +concurrency: + group: termux-release-checkpoint-${{ inputs.source_branch }}-${{ inputs.destination_branch }} + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + checkpoint: + if: github.repository == 'wallentx/opencode-termux' + runs-on: ubuntu-24.04 + timeout-minutes: 30 + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Export GitHub App token for gh + env: + APP_TOKEN: ${{ steps.app-token.outputs.token }} + run: echo "GH_TOKEN=${APP_TOKEN}" >> "${GITHUB_ENV}" + + - name: Checkout destination branch + uses: actions/checkout@v6 + with: + fetch-depth: 0 + ref: ${{ inputs.destination_branch }} + token: ${{ steps.app-token.outputs.token }} + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - name: Validate GitHub CLI environment + run: bash .github/scripts/termux-validate-gh-env.sh + + - name: Configure git + run: bash .github/scripts/termux-configure-git.sh --origin "${SOURCE_BRANCH}" "${DESTINATION_BRANCH}" + env: + SOURCE_BRANCH: ${{ inputs.source_branch }} + DESTINATION_BRANCH: ${{ inputs.destination_branch || 'termux-target' }} + + - name: Create checkpoint PR + id: checkpoint-pr + env: + REQUESTED_SOURCE_BRANCH: ${{ inputs.source_branch }} + REQUESTED_SOURCE_SHA: ${{ inputs.source_sha }} + DESTINATION_BRANCH: ${{ inputs.destination_branch || 'termux-target' }} + REVIEWER: ${{ inputs.reviewer || 'wallentx' }} + run: bash .github/scripts/termux-create-checkpoint-pr.sh + + - name: Delete release branch after merged checkpoint + if: steps.checkpoint-pr.outputs.pr_url != '' + env: + CHECKPOINT_PR: ${{ steps.checkpoint-pr.outputs.pr_url }} + SOURCE_BRANCH: ${{ inputs.source_branch }} + run: bash .github/scripts/termux-cleanup-release-branch.sh diff --git a/.github/workflows/termux-release-ci.yml b/.github/workflows/termux-release-ci.yml new file mode 100644 index 000000000000..fd7ccd6d30df --- /dev/null +++ b/.github/workflows/termux-release-ci.yml @@ -0,0 +1,144 @@ +name: termux-release-ci + +on: + pull_request: + branches: + - "release-*" + - termux-target + types: + - opened + - reopened + - synchronize + - ready_for_review + +permissions: + actions: read + contents: read + +concurrency: + group: termux-release-ci-${{ github.event.pull_request.number }} + cancel-in-progress: true + +defaults: + run: + shell: bash + +jobs: + build: + name: Build Android release artifact + if: github.repository == 'wallentx/opencode-termux' + runs-on: ubuntu-24.04 + timeout-minutes: 180 + outputs: + artifact_name: ${{ steps.metadata.outputs.artifact_name }} + steps: + - name: Classify Termux PR + id: pr + env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + run: | + set -euo pipefail + if [[ "$BASE_REF" == release-* && "$HEAD_REF" == termux-* ]]; then + echo "release=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + if [[ "$BASE_REF" == "termux-target" && "$HEAD_REF" == checkpoint-* ]]; then + echo "release=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + echo "::error::Unexpected Termux PR shape: ${HEAD_REF} -> ${BASE_REF}" + exit 1 + + - name: Accept checkpoint without rebuilding + if: steps.pr.outputs.release != 'true' + run: echo "Checkpoint PR reuses the Android artifact already validated by its release PR." + + - name: Checkout release PR merge + if: steps.pr.outputs.release == 'true' + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Read release metadata + if: steps.pr.outputs.release == 'true' + id: metadata + env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + set -euo pipefail + metadata=.github/termux-release.json + test -f "$metadata" + jq -e \ + --arg base_ref "$BASE_REF" \ + --arg head_ref "$HEAD_REF" \ + '.release_branch == $base_ref and .work_branch == $head_ref and (.termux_tag | startswith("v") and endswith("-termux"))' \ + "$metadata" >/dev/null + + termux_tag="$(jq -r '.termux_tag' "$metadata")" + { + echo "artifact_name=opencode-android-arm64-pr-${PR_NUMBER}-${PR_HEAD_SHA}" + echo "build_version=${termux_tag#v}" + echo "source_tree=$(git rev-parse 'HEAD^{tree}')" + echo "termux_tag=${termux_tag}" + } >> "$GITHUB_OUTPUT" + + - name: Build Android CLI + if: steps.pr.outputs.release == 'true' + uses: ./.github/actions/build-android-cli + with: + version: ${{ steps.metadata.outputs.build_version }} + release: "" + repo: ${{ github.repository }} + + - name: Stage Android release artifact + if: steps.pr.outputs.release == 'true' + env: + PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} + PR_NUMBER: ${{ github.event.pull_request.number }} + SOURCE_TREE: ${{ steps.metadata.outputs.source_tree }} + TERMUX_TAG: ${{ steps.metadata.outputs.termux_tag }} + run: | + set -euo pipefail + mkdir -p release-ci + cp packages/opencode/dist/opencode-android-arm64.tar.gz release-ci/ + ( + cd release-ci + sha256sum opencode-android-arm64.tar.gz > opencode-android-arm64.tar.gz.sha256 + ) + jq -n \ + --arg pr_number "$PR_NUMBER" \ + --arg pr_head_sha "$PR_HEAD_SHA" \ + --arg source_tree "$SOURCE_TREE" \ + --arg termux_tag "$TERMUX_TAG" \ + '{ + pr_number: $pr_number, + pr_head_sha: $pr_head_sha, + source_tree: $source_tree, + termux_tag: $termux_tag + }' > release-ci/provenance.json + cp -a packages/opencode/dist/android-smoke release-ci/ + + - name: Upload Android release artifact + if: steps.pr.outputs.release == 'true' + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: ${{ steps.metadata.outputs.artifact_name }} + if-no-files-found: error + retention-days: 14 + path: release-ci + + termux-smoke: + name: Smoke Android release artifact in Termux + needs: build + if: github.repository == 'wallentx/opencode-termux' && startsWith(github.base_ref, 'release-') && startsWith(github.head_ref, 'termux-') + permissions: + actions: read + contents: read + uses: ./.github/workflows/termux-android-artifact-smoke.yml + with: + artifact_name: ${{ needs.build.outputs.artifact_name }} + artifact_run_id: ${{ github.run_id }} diff --git a/.github/workflows/termux-release-deploy.yml b/.github/workflows/termux-release-deploy.yml new file mode 100644 index 000000000000..1e71ed5b8c3d --- /dev/null +++ b/.github/workflows/termux-release-deploy.yml @@ -0,0 +1,265 @@ +name: termux-release-deploy + +on: + push: + branches: + - "release-*" + workflow_dispatch: + inputs: + release_branch: + description: "Release branch to deploy, for example release-1.17.13" + required: true + type: string + release_sha: + description: "Release branch SHA to deploy; defaults to current branch head" + required: false + type: string + default: "" + pr_number: + description: "Merged release PR number, optional with pr_head_sha" + required: false + type: string + default: "" + pr_head_sha: + description: "Merged release PR head SHA, optional with pr_number" + required: false + type: string + default: "" + destination_branch: + description: "Reusable Termux patch branch to checkpoint into" + required: false + type: string + default: "termux-target" + reviewer: + description: "GitHub username to request on checkpoint PR" + required: false + type: string + default: "wallentx" + +permissions: + actions: write + artifact-metadata: read + attestations: read + checks: read + contents: write + deployments: write + discussions: read + id-token: none + issues: write + models: read + packages: read + pages: read + pull-requests: write + security-events: read + statuses: read + +concurrency: + group: termux-release-deploy-${{ inputs.release_branch || github.ref_name }} + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + deploy: + if: github.repository == 'wallentx/opencode-termux' + runs-on: ubuntu-24.04 + timeout-minutes: 180 + env: + TERMUX_AUTOMATION_DIR: ${{ github.workspace }}/.termux-release-automation + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Export GitHub App token for gh + env: + APP_TOKEN: ${{ steps.app-token.outputs.token }} + run: echo "GH_TOKEN=${APP_TOKEN}" >> "${GITHUB_ENV}" + + - name: Checkout release branch + uses: actions/checkout@v6 + with: + fetch-depth: 0 + ref: ${{ inputs.release_branch || github.ref_name }} + token: ${{ steps.app-token.outputs.token }} + + - name: Checkout automation helpers + uses: actions/checkout@v6 + with: + fetch-depth: 1 + ref: ${{ github.workflow_sha }} + path: .termux-release-automation + token: ${{ steps.app-token.outputs.token }} + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - name: Validate GitHub CLI environment + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-validate-gh-env.sh" + + - name: Configure git + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-configure-git.sh" + + - name: Resolve release ref + id: release-ref + env: + INPUT_RELEASE_BRANCH: ${{ inputs.release_branch }} + INPUT_RELEASE_SHA: ${{ inputs.release_sha }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-resolve-release-ref.sh" + + - name: Read release metadata + id: metadata + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-read-release-metadata.sh" + + - name: Find merged release PR + id: pr + if: steps.metadata.outputs.deploy == 'true' + env: + RELEASE_BRANCH: ${{ steps.release-ref.outputs.branch }} + RELEASE_SHA: ${{ steps.release-ref.outputs.sha }} + INPUT_PR_NUMBER: ${{ inputs.pr_number }} + INPUT_PR_HEAD_SHA: ${{ inputs.pr_head_sha }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-find-release-pr.sh" + + - name: Find validated release PR artifact + id: pr-artifact + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists != 'true' + env: + PR_NUMBER: ${{ steps.pr.outputs.number }} + PR_HEAD_SHA: ${{ steps.pr.outputs.head_sha }} + PR_HEAD_REF: ${{ steps.pr.outputs.head_ref }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-find-pr-artifact.sh" + + - name: Create Android build deployment + id: android-deployment + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists != 'true' && steps.pr-artifact.outputs.found != 'true' + env: + RELEASE_BRANCH: ${{ steps.release-ref.outputs.branch }} + RELEASE_SHA: ${{ steps.release-ref.outputs.sha }} + TERMUX_TAG: ${{ steps.metadata.outputs.termux_tag }} + GH_TOKEN: ${{ github.token }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-create-android-build-deployment.sh" + + - name: Build Android artifact + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists != 'true' && steps.pr-artifact.outputs.found != 'true' + uses: ./.github/actions/build-android-cli + with: + version: ${{ steps.metadata.outputs.build_version }} + release: "" + repo: ${{ github.repository }} + + - name: Promote built Android artifact + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists != 'true' && steps.pr-artifact.outputs.found != 'true' + run: | + set -euo pipefail + mkdir -p promoted + cp packages/opencode/dist/opencode-android-arm64.tar.gz promoted/ + sha256sum promoted/opencode-android-arm64.tar.gz + + - name: Download validated release PR artifact + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists != 'true' && steps.pr-artifact.outputs.found == 'true' + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + artifact-ids: ${{ steps.pr-artifact.outputs.artifact_id }} + github-token: ${{ steps.app-token.outputs.token }} + run-id: ${{ steps.pr-artifact.outputs.run_id }} + merge-multiple: true + path: promoted + + - name: Verify promoted release PR artifact + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists != 'true' && steps.pr-artifact.outputs.found == 'true' + env: + EXPECTED_HEAD_SHA: ${{ steps.pr.outputs.head_sha }} + EXPECTED_PR_NUMBER: ${{ steps.pr.outputs.number }} + RELEASE_SHA: ${{ steps.release-ref.outputs.sha }} + run: | + set -euo pipefail + expected_tree="$(git rev-parse "${RELEASE_SHA}^{tree}")" + jq -e \ + --arg expected_head_sha "$EXPECTED_HEAD_SHA" \ + --arg expected_pr_number "$EXPECTED_PR_NUMBER" \ + --arg expected_tree "$expected_tree" \ + ' + .pr_head_sha == $expected_head_sha + and .pr_number == $expected_pr_number + and .source_tree == $expected_tree + ' promoted/provenance.json >/dev/null + ( + cd promoted + sha256sum -c opencode-android-arm64.tar.gz.sha256 + ) + + - name: Finish Android build deployment + if: always() && steps.android-deployment.outputs.deployment_id != '' + env: + DEPLOYMENT_ID: ${{ steps.android-deployment.outputs.deployment_id }} + BUILD_RESULT: ${{ job.status }} + GH_TOKEN: ${{ github.token }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-finish-android-build-deployment.sh" + + - name: Download existing Android artifact if release needs repair + if: steps.metadata.outputs.deploy == 'true' && steps.metadata.outputs.asset_exists == 'true' + run: | + set -euo pipefail + mkdir -p promoted + gh release download "${TERMUX_TAG}" \ + --repo "${GITHUB_REPOSITORY}" \ + --pattern opencode-android-arm64.tar.gz \ + --dir promoted \ + --clobber + env: + TERMUX_TAG: ${{ steps.metadata.outputs.termux_tag }} + + - name: Create or repair mirrored release + if: steps.metadata.outputs.deploy == 'true' + env: + UPSTREAM_TAG: ${{ steps.metadata.outputs.upstream_tag }} + UPSTREAM_REPO: ${{ steps.metadata.outputs.upstream_repo }} + UPSTREAM_NAME: ${{ steps.metadata.outputs.upstream_name }} + TERMUX_TAG: ${{ steps.metadata.outputs.termux_tag }} + UPSTREAM_PRERELEASE: ${{ steps.metadata.outputs.upstream_prerelease }} + UPSTREAM_HTML_URL: ${{ steps.metadata.outputs.upstream_html_url }} + RELEASE_TRAIN: ${{ steps.metadata.outputs.release_train }} + RELEASE_EXISTS: ${{ steps.metadata.outputs.release_exists }} + PR_NUMBER: ${{ steps.pr.outputs.number }} + HEAD_SHA: ${{ steps.pr.outputs.head_sha }} + RELEASE_SHA: ${{ steps.release-ref.outputs.sha }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-create-or-update-mirrored-release.sh" + + - name: Open checkpoint PR + id: checkpoint-pr + if: steps.metadata.outputs.deploy == 'true' + env: + SOURCE_BRANCH: ${{ steps.release-ref.outputs.branch }} + SOURCE_SHA: ${{ steps.release-ref.outputs.sha }} + DESTINATION_BRANCH: ${{ inputs.destination_branch || 'termux-target' }} + REVIEWER: ${{ inputs.reviewer || 'wallentx' }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-create-checkpoint-pr.sh" + + - name: Delete release branch after merged checkpoint + if: steps.metadata.outputs.deploy == 'true' && steps.checkpoint-pr.outputs.pr_url != '' + env: + CHECKPOINT_PR: ${{ steps.checkpoint-pr.outputs.pr_url }} + SOURCE_BRANCH: ${{ steps.release-ref.outputs.branch }} + run: bash "${TERMUX_AUTOMATION_DIR}/.github/scripts/termux-cleanup-release-branch.sh" + + - name: Restore local action metadata + if: always() + run: | + set -euo pipefail + if [[ ! -d "${TERMUX_AUTOMATION_DIR}/.github/actions" ]]; then + echo "Automation helpers were not checked out; skipping local action metadata restore." + exit 0 + fi + mkdir -p .github/actions + cp -a "${TERMUX_AUTOMATION_DIR}/.github/actions/build-android-cli" .github/actions/ + cp -a "${TERMUX_AUTOMATION_DIR}/.github/actions/setup-bun" .github/actions/ diff --git a/.github/workflows/termux-release-watch.yml b/.github/workflows/termux-release-watch.yml new file mode 100644 index 000000000000..d61b7362e7cc --- /dev/null +++ b/.github/workflows/termux-release-watch.yml @@ -0,0 +1,174 @@ +name: termux-release-watch + +on: + schedule: + - cron: "17 */3 * * *" + workflow_dispatch: + inputs: + upstream_tag: + description: "Specific upstream version or tag to process, for example 1.17.13 or v1.17.13" + required: false + type: string + default: "" + patch_branch: + description: "Branch carrying reusable Termux fixes" + required: false + type: string + default: "termux-target" + reviewer: + description: "GitHub username to request as reviewer" + required: false + type: string + default: "wallentx" + bypass_prior_release_train: + description: "Allow workflow_dispatch to update a train while another Termux release PR is open" + required: false + type: boolean + default: false + +permissions: + actions: write + artifact-metadata: read + attestations: read + checks: read + contents: write + deployments: read + discussions: read + id-token: none + issues: write + models: read + packages: read + pages: read + pull-requests: write + security-events: read + statuses: read + +concurrency: + group: termux-release-watch + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + look-for-newer-release: + if: github.repository == 'wallentx/opencode-termux' + runs-on: ubuntu-24.04 + timeout-minutes: 15 + outputs: + selected: ${{ steps.upstream.outputs.selected }} + upstream_tag: ${{ steps.upstream.outputs.upstream_tag }} + upstream_name: ${{ steps.upstream.outputs.upstream_name }} + upstream_html_url: ${{ steps.upstream.outputs.upstream_html_url }} + upstream_prerelease: ${{ steps.upstream.outputs.upstream_prerelease }} + upstream_target: ${{ steps.upstream.outputs.upstream_target }} + upstream_id: ${{ steps.upstream.outputs.upstream_id }} + release_train: ${{ steps.upstream.outputs.release_train }} + release_branch: ${{ steps.upstream.outputs.release_branch }} + work_branch: ${{ steps.upstream.outputs.work_branch }} + termux_tag: ${{ steps.upstream.outputs.termux_tag }} + body: ${{ steps.upstream.outputs.body }} + env: + UPSTREAM_REPO: anomalyco/opencode + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Export GitHub App token for gh + env: + APP_TOKEN: ${{ steps.app-token.outputs.token }} + run: echo "GH_TOKEN=${APP_TOKEN}" >> "${GITHUB_ENV}" + + - name: Checkout automation branch + uses: actions/checkout@v6 + with: + fetch-depth: 0 + token: ${{ steps.app-token.outputs.token }} + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - name: Validate GitHub CLI environment + run: bash .github/scripts/termux-validate-gh-env.sh + + - name: Select upstream release + id: upstream + env: + REQUESTED_TAG: ${{ inputs.upstream_tag }} + BYPASS_PRIOR_RELEASE_TRAIN: ${{ inputs.bypass_prior_release_train || false }} + run: bash .github/scripts/termux-select-release.sh + + create-release-pr: + needs: look-for-newer-release + if: github.repository == 'wallentx/opencode-termux' && needs.look-for-newer-release.outputs.selected == 'true' + runs-on: ubuntu-24.04 + timeout-minutes: 45 + env: + REVIEWER: ${{ inputs.reviewer || 'wallentx' }} + UPSTREAM_REPO: anomalyco/opencode + PATCH_BRANCH: ${{ inputs.patch_branch || 'termux-target' }} + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Export GitHub App token for gh + env: + APP_TOKEN: ${{ steps.app-token.outputs.token }} + run: echo "GH_TOKEN=${APP_TOKEN}" >> "${GITHUB_ENV}" + + - name: Checkout automation branch + uses: actions/checkout@v6 + with: + fetch-depth: 0 + token: ${{ steps.app-token.outputs.token }} + + - name: 🧰 Actions Toolbox + uses: wallentx/gh-actions/composite/actions-toolbox@main + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + checkout: false + + - name: Setup Bun + uses: ./.github/actions/setup-bun + + - name: Validate GitHub CLI environment + run: bash .github/scripts/termux-validate-gh-env.sh + + - name: Configure git + env: + UPSTREAM_TAG: ${{ needs.look-for-newer-release.outputs.upstream_tag }} + run: | + set -euo pipefail + bash .github/scripts/termux-configure-git.sh \ + --origin "${PATCH_BRANCH}" \ + --upstream-tag "${UPSTREAM_REPO}" "${UPSTREAM_TAG}" + + - name: Create or update release train PR + id: pr + env: + UPSTREAM_TAG: ${{ needs.look-for-newer-release.outputs.upstream_tag }} + UPSTREAM_NAME: ${{ needs.look-for-newer-release.outputs.upstream_name }} + UPSTREAM_HTML_URL: ${{ needs.look-for-newer-release.outputs.upstream_html_url }} + UPSTREAM_PRERELEASE: ${{ needs.look-for-newer-release.outputs.upstream_prerelease }} + UPSTREAM_TARGET: ${{ needs.look-for-newer-release.outputs.upstream_target }} + UPSTREAM_ID: ${{ needs.look-for-newer-release.outputs.upstream_id }} + RELEASE_TRAIN: ${{ needs.look-for-newer-release.outputs.release_train }} + RELEASE_BRANCH: ${{ needs.look-for-newer-release.outputs.release_branch }} + WORK_BRANCH: ${{ needs.look-for-newer-release.outputs.work_branch }} + TERMUX_TAG: ${{ needs.look-for-newer-release.outputs.termux_tag }} + UPSTREAM_BODY: ${{ needs.look-for-newer-release.outputs.body }} + run: bash .github/scripts/termux-create-release-pr.sh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c69de1d93b0d..42135fa6136d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,13 @@ env: jobs: unit: name: unit (${{ matrix.settings.name }}) + if: | + !( + github.event_name == 'pull_request' && + github.repository == 'wallentx/opencode-termux' && + (github.base_ref == 'upstream-dev' || startsWith(github.base_ref, 'release-')) && + (github.head_ref == 'termux-target' || startsWith(github.head_ref, 'termux-')) + ) strategy: fail-fast: false matrix: @@ -31,7 +38,7 @@ jobs: host: blacksmith-4vcpu-ubuntu-2404 - name: windows host: blacksmith-4vcpu-windows-2025 - runs-on: ${{ matrix.settings.host }} + runs-on: ${{ github.repository == 'anomalyco/opencode' && (matrix.settings.host) || 'ubuntu-latest' }} defaults: run: shell: bash @@ -81,6 +88,13 @@ jobs: e2e: name: e2e (${{ matrix.settings.name }}) + if: | + !( + github.event_name == 'pull_request' && + github.repository == 'wallentx/opencode-termux' && + (github.base_ref == 'upstream-dev' || startsWith(github.base_ref, 'release-')) && + (github.head_ref == 'termux-target' || startsWith(github.head_ref, 'termux-')) + ) strategy: fail-fast: false matrix: @@ -89,7 +103,7 @@ jobs: host: blacksmith-4vcpu-ubuntu-2404 - name: windows host: blacksmith-4vcpu-windows-2025 - runs-on: ${{ matrix.settings.host }} + runs-on: ${{ github.repository == 'anomalyco/opencode' && (matrix.settings.host) || 'ubuntu-latest' }} env: PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/.playwright-browsers defaults: From 6e296fc0c48cb284033b2774986ee292b3871fbc Mon Sep 17 00:00:00 2001 From: "unemployabot[bot]" <277198073+unemployabot[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 21:48:41 +0000 Subject: [PATCH 33/33] Termux v1.18.17 (#50) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * chore(termux): prepare v1.17.20 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * feat(install): Support custom release repositories and Termux forks Signed-off-by: wallentx * fix(termux): correct OpenTUI worker export * fix(termux): drop OpenTUI package patch * release: v1.18.5 * chore(termux): seed release automation * chore(termux): prepare v1.18.5 * release: v1.18.6 * chore(termux): seed release automation * chore(termux): prepare v1.18.6 * release: v1.18.7 * fix(ci): download promoted artifact from PR run * fix(ci): flatten promoted PR artifact * chore(termux): seed release automation * Termux v1.18.7 (#36) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.1… * release: v1.18.11 * chore(termux): seed release automation * Termux v1.18.11 (#38) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.… * release: v1.18.13 * chore(termux): seed release automation * Termux v1.18.13 (#42) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.… * fix(ci): satisfy checkpoint build gate * release: v1.18.14 * chore(termux): seed release automation * Termux v1.18.14 (#44) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.… * release: v1.18.15 * chore(termux): seed release automation * Termux v1.18.15 (#46) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.… * release: v1.18.16 * chore(termux): seed release automation * Termux v1.18.16 (#48) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * release: v1.17.19 * chore(termux): seed release automation * Termux v1.17.19 (#24) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.15 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * release: v1.17.16 * chore(termux): seed release automation * chore(termux): prepare v1.17.16 * release: v1.17.18 * chore(termux): seed release automation * chore(termux): prepare v1.17.18 * fix(termux): stabilize release branches * chore(termux): remove Zig build cache * fix(termux): skip release PR tests * chore(termux): prepare v1.17.19 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> * checkpoint: prepare release-1.17.19 for termux-target * release: v1.17.20 * chore(termux): seed release automation * Termux v1.17.20 (#26) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.15 (#18) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * release: v1.17.14 * chore(termux): seed release automation * Termux v1.17.14 (#10) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore(termux): prepare v1.17.14 --------- Co-authored-by: wallentx Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * Termux v1.17.14 (#14) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * chore(termux): prepare v1.17.15 * fix(ci): disable upstream housekeeping on forks * chore(codegraph): Ignore generated data files Signed-off-by: wallentx * fix(termux): pin OpenTUI for Android build * chore(termux): prepare v1.17.14 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode-agent[bot] Co-authored-by: opencode Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen * chore(termux): seed release automation * Termux v1.17.14 (#16) * fix(termux): add Android artifact support * fix(termux): make target fork friendly * chore: generate * sync release versions for v1.17.14 * feat(data): improved model usage section * fix(data): refine model trend charts * chore: generate * feat(app): align cmd k menu with v2 styles (#35152) Co-authored-by: Brendan Allan * fix(config): handle unavailable config directories (#35632) Co-authored-by: James Long * feat(app): visual improvements (#35134) * chore: generate * feat(app): reintroduce model context tooltip in model selector (#35087) * chore: generate * feat(app): change traffic light position, fix sequoia bug (#35081) * fix(app): apply settings themes on select (#35011) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> * fix(app): persist session tab info (#34934) * chore: generate * fix(app): show unread for pending questions (#34684) Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] Co-authored-by: Brendan Allan * fix(app): prioritize shortcuts in terminal (#35668) * chore: generate * fix(app): hide markdown task markers (#35670) * feat(data): redesign model efficiency * chore: generate * fix(core): expand home-relative permission paths (#35737) * chore: generate * fix(core): ensure relevant files survive compaction (#35636) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * fix(llm): classify zai token limit overflow (#35671) * release: v1.17.15 * chore(termux): seed release automation * Termux v1.… * chore(termux): prepare v1.18.17 --------- Signed-off-by: wallentx Co-authored-by: wallentx Co-authored-by: opencode Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: unemployabot[bot] <277198073+unemployabot[bot]@users.noreply.github.com> Co-authored-by: William Allen Co-authored-by: opencode-agent[bot] Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan Co-authored-by: James Long Co-authored-by: James Long Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Dustin Deus Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> --- .codegraph/.gitignore | 5 + .github/actionlint.yaml | 12 + .github/termux-release.json | 15 + .github/workflows/beta.yml | 5 +- .github/workflows/close-issues.yml | 1 + .github/workflows/close-prs.yml | 1 + .github/workflows/compliance-close.yml | 1 + .github/workflows/containers.yml | 4 +- .github/workflows/docs-locale-sync.yml | 5 +- .github/workflows/duplicate-issues.yml | 12 +- .github/workflows/generate.yml | 16 +- .github/workflows/nix-eval.yml | 2 +- .github/workflows/nix-hashes.yml | 5 +- .github/workflows/notify-discord.yml | 4 +- .github/workflows/opencode.yml | 14 +- .github/workflows/pr-management.yml | 6 +- .github/workflows/pr-standards.yml | 2 + .github/workflows/publish-github-action.yml | 3 +- .github/workflows/publish-vscode.yml | 4 +- .github/workflows/release-github-action.yml | 3 +- .github/workflows/review.yml | 4 +- .github/workflows/storybook.yml | 2 +- .github/workflows/triage.yml | 5 +- .github/workflows/typecheck.yml | 2 +- .gitignore | 3 + .termux-release-automation | 1 + bun.lock | 39 +- install | 36 +- package.json | 6 +- packages/core/package.json | 2 + packages/core/src/filesystem/watcher.ts | 1 + packages/core/src/flag/flag.ts | 3 +- packages/desktop/scripts/utils.ts | 10 + packages/opencode/bin/opencode | 3 + packages/opencode/script/build.ts | 57 ++- packages/opencode/script/opentui-android.ts | 262 +++++++++++ packages/opencode/script/patch-android-elf.ts | 421 ++++++++++++++++++ packages/opencode/script/postinstall.mjs | 3 + packages/opencode/script/publish.ts | 2 +- packages/opencode/src/installation/index.ts | 24 +- .../test/installation/installation.test.ts | 52 +++ packages/plugin/package.json | 6 +- 42 files changed, 968 insertions(+), 96 deletions(-) create mode 100644 .codegraph/.gitignore create mode 100644 .github/actionlint.yaml create mode 100644 .github/termux-release.json create mode 160000 .termux-release-automation create mode 100644 packages/opencode/script/opentui-android.ts create mode 100644 packages/opencode/script/patch-android-elf.ts diff --git a/.codegraph/.gitignore b/.codegraph/.gitignore new file mode 100644 index 000000000000..d20c0fe4bdba --- /dev/null +++ b/.codegraph/.gitignore @@ -0,0 +1,5 @@ +# CodeGraph data files — local to each machine, not for committing. +# Ignore everything in .codegraph/ except this file itself, so transient +# files (the database, daemon.pid, sockets, logs) never show up in git. +* +!.gitignore diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 000000000000..0c3172c605c9 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,12 @@ +self-hosted-runner: + labels: + - blacksmith-4vcpu-ubuntu-2404 + - blacksmith-4vcpu-ubuntu-2404-arm + - blacksmith-4vcpu-windows-2025 + +config-variables: null + +paths: + .github/workflows/docs-locale-sync.yml: + ignore: + - 'constant expression "false" in condition' diff --git a/.github/termux-release.json b/.github/termux-release.json new file mode 100644 index 000000000000..e34ac27419e1 --- /dev/null +++ b/.github/termux-release.json @@ -0,0 +1,15 @@ +{ + "upstream_repo": "anomalyco/opencode", + "upstream_tag": "v1.18.17", + "upstream_name": "v1.18.17", + "upstream_html_url": "https://github.com/anomalyco/opencode/releases/tag/v1.18.17", + "upstream_target": "dab2637217f188afca5e6631f67b935723e6218a", + "upstream_release_id": "369485660", + "upstream_prerelease": false, + "release_train": "1.18.17", + "release_branch": "release-1.18.17", + "work_branch": "termux-1.18.17", + "patch_branch": "termux-target", + "patch_source_sha": "b0535485ec7690c8295d59366e296b8385a20ce3", + "termux_tag": "v1.18.17-termux" +} diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index e93d5fbdb260..ff4ca381acef 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -7,7 +7,8 @@ on: jobs: sync: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: write pull-requests: write @@ -21,6 +22,7 @@ jobs: uses: ./.github/actions/setup-bun - name: Setup Git Committer + if: github.repository == 'anomalyco/opencode' id: setup-git-committer uses: ./.github/actions/setup-git-committer with: @@ -31,6 +33,7 @@ jobs: run: bun i -g opencode-ai - name: Sync beta branch + if: github.repository == 'anomalyco/opencode' env: GH_TOKEN: ${{ steps.setup-git-committer.outputs.token }} OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} diff --git a/.github/workflows/close-issues.yml b/.github/workflows/close-issues.yml index b8a2e3f575d8..99f020620b89 100644 --- a/.github/workflows/close-issues.yml +++ b/.github/workflows/close-issues.yml @@ -7,6 +7,7 @@ on: jobs: close: + if: github.repository == 'anomalyco/opencode' runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/close-prs.yml b/.github/workflows/close-prs.yml index a1e603a88104..7030a5b4909d 100644 --- a/.github/workflows/close-prs.yml +++ b/.github/workflows/close-prs.yml @@ -17,6 +17,7 @@ on: jobs: close: + if: github.repository == 'anomalyco/opencode' runs-on: ubuntu-latest timeout-minutes: 240 permissions: diff --git a/.github/workflows/compliance-close.yml b/.github/workflows/compliance-close.yml index a83824e5cf60..a89ef16f24ac 100644 --- a/.github/workflows/compliance-close.yml +++ b/.github/workflows/compliance-close.yml @@ -13,6 +13,7 @@ permissions: jobs: close-non-compliant: + if: github.repository == 'anomalyco/opencode' runs-on: ubuntu-latest steps: - name: Close non-compliant issues and PRs after 2 hours diff --git a/.github/workflows/containers.yml b/.github/workflows/containers.yml index 15bf0783160e..270b2aabd468 100644 --- a/.github/workflows/containers.yml +++ b/.github/workflows/containers.yml @@ -16,7 +16,8 @@ permissions: jobs: build: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} env: REGISTRY: ghcr.io/${{ github.repository_owner }} TAG: "24.04" @@ -32,6 +33,7 @@ jobs: uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Login to GHCR + if: github.repository == 'anomalyco/opencode' uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: registry: ghcr.io diff --git a/.github/workflows/docs-locale-sync.yml b/.github/workflows/docs-locale-sync.yml index 5f921e8bb717..fb09c2c3a1d3 100644 --- a/.github/workflows/docs-locale-sync.yml +++ b/.github/workflows/docs-locale-sync.yml @@ -11,7 +11,7 @@ jobs: sync-locales: if: false #if: github.actor != 'opencode-agent[bot]' - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: write steps: @@ -26,6 +26,7 @@ jobs: uses: ./.github/actions/setup-bun - name: Setup git committer + if: github.repository == 'anomalyco/opencode' id: committer uses: ./.github/actions/setup-git-committer with: @@ -53,7 +54,7 @@ jobs: run: curl -fsSL https://opencode.ai/install | bash - name: Sync locale docs with OpenCode - if: steps.changes.outputs.has_changes == 'true' + if: github.repository == 'anomalyco/opencode' && (steps.changes.outputs.has_changes == 'true') env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} OPENCODE_CONFIG_CONTENT: | diff --git a/.github/workflows/duplicate-issues.yml b/.github/workflows/duplicate-issues.yml index 3972247dafc6..c2f36eb5dd40 100644 --- a/.github/workflows/duplicate-issues.yml +++ b/.github/workflows/duplicate-issues.yml @@ -6,8 +6,8 @@ on: jobs: check-duplicates: - if: github.event.action == 'opened' - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' && github.event.action == 'opened' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: read issues: write @@ -41,7 +41,7 @@ jobs: run: curl -fsSL https://opencode.ai/install | bash - name: Check duplicates and compliance - if: steps.author.outputs.skip != 'true' + if: github.repository == 'anomalyco/opencode' && (steps.author.outputs.skip != 'true') env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -140,8 +140,8 @@ jobs: Remember: post at most ONE comment combining all findings. If everything is fine, post nothing." recheck-compliance: - if: github.event.action == 'edited' && contains(github.event.issue.labels.*.name, 'needs:compliance') - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' && github.event.action == 'edited' && contains(github.event.issue.labels.*.name, 'needs:compliance') + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: read issues: write @@ -175,7 +175,7 @@ jobs: run: curl -fsSL https://opencode.ai/install | bash - name: Recheck compliance - if: steps.author.outputs.skip != 'true' + if: github.repository == 'anomalyco/opencode' && (steps.author.outputs.skip != 'true') env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index 324cfec02001..c2f9486b6bea 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -7,7 +7,8 @@ on: jobs: generate: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: write pull-requests: write @@ -19,6 +20,7 @@ jobs: uses: ./.github/actions/setup-bun - name: Setup git committer + if: github.repository == 'anomalyco/opencode' id: committer uses: ./.github/actions/setup-git-committer with: @@ -37,15 +39,3 @@ jobs: git add -A git commit -m "chore: generate" --allow-empty git push origin HEAD:${{ github.ref_name }} --no-verify - # if ! git push origin HEAD:${{ github.event.pull_request.head.ref || github.ref_name }} --no-verify; then - # echo "" - # echo "============================================" - # echo "Failed to push generated code." - # echo "Please run locally and push:" - # echo "" - # echo " ./script/generate.ts" - # echo " git add -A && git commit -m \"chore: generate\" && git push" - # echo "" - # echo "============================================" - # exit 1 - # fi diff --git a/.github/workflows/nix-eval.yml b/.github/workflows/nix-eval.yml index 75332695a1ad..28b9781ac7ce 100644 --- a/.github/workflows/nix-eval.yml +++ b/.github/workflows/nix-eval.yml @@ -16,7 +16,7 @@ permissions: jobs: nix-eval: - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} timeout-minutes: 15 steps: - name: Checkout repository diff --git a/.github/workflows/nix-hashes.yml b/.github/workflows/nix-hashes.yml index ce1d9237fde5..67abeb3d5a9c 100644 --- a/.github/workflows/nix-hashes.yml +++ b/.github/workflows/nix-hashes.yml @@ -25,6 +25,7 @@ jobs: # Native runners required: bun install cross-compilation flags (--os/--cpu) # do not produce byte-identical node_modules as native installs. compute-hash: + if: github.repository == 'anomalyco/opencode' strategy: fail-fast: false matrix: @@ -37,7 +38,7 @@ jobs: runner: macos-15-intel - system: aarch64-darwin runner: macos-latest - runs-on: ${{ matrix.runner }} + runs-on: ${{ github.repository == 'anomalyco/opencode' && (matrix.runner) || 'ubuntu-latest' }} steps: - name: Checkout repository @@ -90,7 +91,7 @@ jobs: update-hashes: needs: compute-hash - if: github.event_name != 'pull_request' + if: github.repository == 'anomalyco/opencode' && github.event_name != 'pull_request' runs-on: blacksmith-4vcpu-ubuntu-2404 steps: diff --git a/.github/workflows/notify-discord.yml b/.github/workflows/notify-discord.yml index 0b2b1cde051b..7b5e53c5401e 100644 --- a/.github/workflows/notify-discord.yml +++ b/.github/workflows/notify-discord.yml @@ -6,9 +6,11 @@ on: jobs: notify: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - name: Send nicely-formatted embed to Discord + if: github.repository == 'anomalyco/opencode' uses: SethCohen/github-releases-to-discord@24d166886aee4646d448c8a389ff9e1ebcab3682 # v1.20.0 with: webhook_url: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/opencode.yml b/.github/workflows/opencode.yml index 3469c21917f8..c0b077e69a22 100644 --- a/.github/workflows/opencode.yml +++ b/.github/workflows/opencode.yml @@ -9,11 +9,14 @@ on: jobs: opencode: if: | - contains(github.event.comment.body, ' /oc') || - startsWith(github.event.comment.body, '/oc') || - contains(github.event.comment.body, ' /opencode') || - startsWith(github.event.comment.body, '/opencode') - runs-on: blacksmith-4vcpu-ubuntu-2404 + github.repository == 'anomalyco/opencode' && + ( + contains(github.event.comment.body, ' /oc') || + startsWith(github.event.comment.body, '/oc') || + contains(github.event.comment.body, ' /opencode') || + startsWith(github.event.comment.body, '/opencode') + ) + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: id-token: write contents: read @@ -26,6 +29,7 @@ jobs: - uses: ./.github/actions/setup-bun - name: Run opencode + if: github.repository == 'anomalyco/opencode' uses: anomalyco/opencode/github@2c14fc5586fe0b88e5c04732d2e846769cc35671 # latest env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} diff --git a/.github/workflows/pr-management.yml b/.github/workflows/pr-management.yml index b6aa4e589d89..117d18a0c6ab 100644 --- a/.github/workflows/pr-management.yml +++ b/.github/workflows/pr-management.yml @@ -6,7 +6,8 @@ on: jobs: check-duplicates: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: read pull-requests: write @@ -57,7 +58,7 @@ jobs: } > pr_info.txt - name: Check for duplicate PRs - if: steps.team-check.outputs.is_team != 'true' + if: github.repository == 'anomalyco/opencode' && (steps.team-check.outputs.is_team != 'true') env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -72,6 +73,7 @@ jobs: fi add-contributor-label: + if: github.repository == 'anomalyco/opencode' runs-on: ubuntu-latest permissions: pull-requests: write diff --git a/.github/workflows/pr-standards.yml b/.github/workflows/pr-standards.yml index 06838089d354..53d5a41c96fc 100644 --- a/.github/workflows/pr-standards.yml +++ b/.github/workflows/pr-standards.yml @@ -6,6 +6,7 @@ on: jobs: check-standards: + if: github.repository == 'anomalyco/opencode' runs-on: ubuntu-latest permissions: contents: read @@ -153,6 +154,7 @@ jobs: console.log('PR meets all standards'); check-compliance: + if: github.repository == 'anomalyco/opencode' runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/publish-github-action.yml b/.github/workflows/publish-github-action.yml index e5ca91b5618a..9c6cb168af9f 100644 --- a/.github/workflows/publish-github-action.yml +++ b/.github/workflows/publish-github-action.yml @@ -14,7 +14,8 @@ permissions: jobs: publish: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: diff --git a/.github/workflows/publish-vscode.yml b/.github/workflows/publish-vscode.yml index 00c7e260482e..1820d224e41f 100644 --- a/.github/workflows/publish-vscode.yml +++ b/.github/workflows/publish-vscode.yml @@ -13,7 +13,8 @@ permissions: jobs: publish: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: @@ -29,6 +30,7 @@ jobs: working-directory: ./sdks/vscode - name: Publish + if: github.repository == 'anomalyco/opencode' run: | ./script/publish working-directory: ./sdks/vscode diff --git a/.github/workflows/release-github-action.yml b/.github/workflows/release-github-action.yml index 4a1d7218bb2c..ece440691684 100644 --- a/.github/workflows/release-github-action.yml +++ b/.github/workflows/release-github-action.yml @@ -14,7 +14,8 @@ permissions: jobs: release: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml index 00a4fba8ca13..4197fc32c876 100644 --- a/.github/workflows/review.yml +++ b/.github/workflows/review.yml @@ -7,10 +7,11 @@ on: jobs: check-guidelines: if: | + github.repository == 'anomalyco/opencode' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/review') && contains(fromJson('["OWNER","MEMBER"]'), github.event.comment.author_association) - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: read pull-requests: write @@ -44,6 +45,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Check PR guidelines compliance + if: github.repository == 'anomalyco/opencode' env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml index be2e099d0ed9..9ba6088429a7 100644 --- a/.github/workflows/storybook.yml +++ b/.github/workflows/storybook.yml @@ -28,7 +28,7 @@ concurrency: jobs: build: name: storybook build - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - name: Checkout repository uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 0350e43877c4..7749b394977f 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -6,7 +6,8 @@ on: jobs: triage: - runs-on: blacksmith-4vcpu-ubuntu-2404 + if: github.repository == 'anomalyco/opencode' + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} permissions: contents: read issues: write @@ -41,7 +42,7 @@ jobs: run: curl -fsSL https://opencode.ai/install | bash - name: Triage issue - if: steps.author.outputs.skip != 'true' + if: github.repository == 'anomalyco/opencode' && (steps.author.outputs.skip != 'true') env: OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index fc9a52797c1d..0ef6327e7ce7 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -9,7 +9,7 @@ on: jobs: typecheck: - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ${{ github.repository == 'anomalyco/opencode' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} steps: - name: Checkout repository uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 diff --git a/.gitignore b/.gitignore index 006cab8c276c..d5c4505208b1 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,6 @@ UPCOMING_CHANGELOG.md logs/ *.bun-build tsconfig.tsbuildinfo +.zig-cache/ +.codegraph/ +.codex/ diff --git a/.termux-release-automation b/.termux-release-automation new file mode 160000 index 000000000000..592ebe0d18d5 --- /dev/null +++ b/.termux-release-automation @@ -0,0 +1 @@ +Subproject commit 592ebe0d18d5d6569f9368004fc1b518a7004fe7 diff --git a/bun.lock b/bun.lock index 95aaf2e39ee5..98296635fe99 100644 --- a/bun.lock +++ b/bun.lock @@ -359,6 +359,7 @@ }, "devDependencies": { "@opencode-ai/http-recorder": "workspace:*", + "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", @@ -707,9 +708,9 @@ "typescript": "catalog:", }, "peerDependencies": { - "@opentui/core": ">=0.4.5", - "@opentui/keymap": ">=0.4.5", - "@opentui/solid": ">=0.4.5", + "@opentui/core": ">=0.3.4", + "@opentui/keymap": ">=0.3.4", + "@opentui/solid": ">=0.3.4", }, "optionalPeers": [ "@opentui/core", @@ -1100,9 +1101,9 @@ "@npmcli/arborist": "9.4.0", "@octokit/rest": "22.0.0", "@openauthjs/openauth": "0.0.0-20250322224806", - "@opentui/core": "0.4.5", - "@opentui/keymap": "0.4.5", - "@opentui/solid": "0.4.5", + "@opentui/core": "0.3.4", + "@opentui/keymap": "0.3.4", + "@opentui/solid": "0.3.4", "@pierre/diffs": "1.2.10", "@playwright/test": "1.59.1", "@sentry/solid": "10.36.0", @@ -2040,27 +2041,27 @@ "@opentelemetry/semantic-conventions": ["@opentelemetry/semantic-conventions@1.41.1", "", {}, "sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA=="], - "@opentui/core": ["@opentui/core@0.4.5", "", { "dependencies": { "bun-ffi-structs": "0.2.4", "diff": "9.0.0", "marked": "17.0.1", "string-width": "7.2.0", "strip-ansi": "7.1.2" }, "optionalDependencies": { "@opentui/core-darwin-arm64": "0.4.5", "@opentui/core-darwin-x64": "0.4.5", "@opentui/core-linux-arm64": "0.4.5", "@opentui/core-linux-arm64-musl": "0.4.5", "@opentui/core-linux-x64": "0.4.5", "@opentui/core-linux-x64-musl": "0.4.5", "@opentui/core-win32-arm64": "0.4.5", "@opentui/core-win32-x64": "0.4.5" }, "peerDependencies": { "web-tree-sitter": "0.25.10" } }, "sha512-JsgRTPkA6e+Vxmumxai6SElOSlRQkbzNKHlCfemlArRiLhfC1IZ9RXJo2QH4xSu+uBOWAM90uss73/pPlkdEig=="], + "@opentui/core": ["@opentui/core@0.3.4", "", { "dependencies": { "bun-ffi-structs": "0.2.2", "diff": "9.0.0", "marked": "17.0.1", "string-width": "7.2.0", "strip-ansi": "7.1.2", "yoga-layout": "3.2.1" }, "optionalDependencies": { "@opentui/core-darwin-arm64": "0.3.4", "@opentui/core-darwin-x64": "0.3.4", "@opentui/core-linux-arm64": "0.3.4", "@opentui/core-linux-arm64-musl": "0.3.4", "@opentui/core-linux-x64": "0.3.4", "@opentui/core-linux-x64-musl": "0.3.4", "@opentui/core-win32-arm64": "0.3.4", "@opentui/core-win32-x64": "0.3.4" }, "peerDependencies": { "web-tree-sitter": "0.25.10" } }, "sha512-y0DlrChP9lcJ4jC5z/1wMS34+ygfSTW7gD5OJHwJaAScfmlFvuJOZbwmCGrJURZ+5wFBxuOi9LatZsmeAUIKAA=="], - "@opentui/core-darwin-arm64": ["@opentui/core-darwin-arm64@0.4.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-8KUG0oRidnR+oW1RSZJ72/PhZLl+qRRMk5U/mieF4c0SJ5V3tYACpBZAKzQfHNd1f7QzD8FHZct1lPpQgtmkWg=="], + "@opentui/core-darwin-arm64": ["@opentui/core-darwin-arm64@0.3.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-4A7JYXUsZqhu9PPCe07E30ourSJYkitkwMujUyNKjM5e/dHNDVnz+5r5cO3M5snofLafc1DN7+9jEPn4UQzchQ=="], - "@opentui/core-darwin-x64": ["@opentui/core-darwin-x64@0.4.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-R2bocsg55gwjOqCp/MWFgFYzRmsduKegB6nzgFAPCvAD/L5Jf30xpWJWFlSg3x8vxe1L9WJ84dfqa4M7mZZ3wA=="], + "@opentui/core-darwin-x64": ["@opentui/core-darwin-x64@0.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-Jvm9E8n2sPhKEyKSXn9GlmJcj8WoJXJTooXb3djwjVaiimjihIj0XxHzCWhdqbDtQp+VxDFyCKoQagOOz20qhA=="], - "@opentui/core-linux-arm64": ["@opentui/core-linux-arm64@0.4.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-R4MZ25a4CzOAGVjW9aj1hUfzQGVfCJwrwBDbNs2SXaIvzcZqkxCVtU4FoQ5LsaD0j/BdNQVg2CIfFkFsm1fDuQ=="], + "@opentui/core-linux-arm64": ["@opentui/core-linux-arm64@0.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-0uPuHCeZxm/O7+L+iNQl8zRAfehiwYstKkT9J0uTZO64/byBCLvy5lvn1DiE/72s/nTJ5nwpLN+pQs2/WYVKLQ=="], - "@opentui/core-linux-arm64-musl": ["@opentui/core-linux-arm64-musl@0.4.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-ieqdyKI6EIYPalYAETB2wsdP83hr5Ifi+dFnBFUmdEEFHsoKwBmn2S7bsTOYlX7Bg03F4/YPIg+IvRpeC+cUJw=="], + "@opentui/core-linux-arm64-musl": ["@opentui/core-linux-arm64-musl@0.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-sJYUzYcSOb5PCXRlhwsse/fdsMiVomNvIwq/2TDhAANef+YPO3Br+OH9kQRbuj0bjVDmUS36SGYWSTFu2lUO+A=="], - "@opentui/core-linux-x64": ["@opentui/core-linux-x64@0.4.5", "", { "os": "linux", "cpu": "x64" }, "sha512-SNyuQoxMKI1vuJhgxSSW96adWM6LqFl2SoS3GM4tGeneGOanVVG2Y06PvlytXvF4cKik97t0rqkVMRetmOs93w=="], + "@opentui/core-linux-x64": ["@opentui/core-linux-x64@0.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-btYIQeNdPbN4JCrCjVB/RwMGrnRY7qWB2piNEfALSByuULKNjPKQ33PYIj38Yd01zCvCV7FotIeXEGSHx3tgCA=="], - "@opentui/core-linux-x64-musl": ["@opentui/core-linux-x64-musl@0.4.5", "", { "os": "linux", "cpu": "x64" }, "sha512-mKVKcIcPiSVVZZsdPSBoWwoa2/TCeQAaMDeHF7PFw2kt5bTXZPP7xxWfRQLCNIcA1eaGl59UuwUWHDR2Ve548Q=="], + "@opentui/core-linux-x64-musl": ["@opentui/core-linux-x64-musl@0.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-fhmUey4oJJ2+N62xlIgAPxAl36Fa7wYffqDOT4QLpm0jfyD5xzo+wL/hr2zUqaEI439R8Iq6jHNxf/Nsx1WuuQ=="], - "@opentui/core-win32-arm64": ["@opentui/core-win32-arm64@0.4.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-GHTTsqeR45q2Iek9Rb7ty+x/hAKn2jZ1ujlCgPR8LBKyF7h0E1dNFryoZ7ehMc3kJndP1sKn836IemKFqxuDdQ=="], + "@opentui/core-win32-arm64": ["@opentui/core-win32-arm64@0.3.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-sh432vPU+eLp8eA4I0KWKKn7D0VHbk01YTg6mA9/ihCNYHntc6LZ8/sLvsPv8CvKscMotfIkh3M5YhdS36BuXw=="], - "@opentui/core-win32-x64": ["@opentui/core-win32-x64@0.4.5", "", { "os": "win32", "cpu": "x64" }, "sha512-Y8T/yXCDGagRGiQrtmuB6AhRcPucKFs/Dre3v8kJwNYqDccI4FzUPKclZ7djfmRZNjl7JUqPhZZP/PwDpQocMg=="], + "@opentui/core-win32-x64": ["@opentui/core-win32-x64@0.3.4", "", { "os": "win32", "cpu": "x64" }, "sha512-dw8FcjUZaLAjw25P3/7BarobCh/QOHn3srYaWYQdysoqyvSlPkQumpI8kV/KgpJtdITU1GW02MQC4EeLIFFalA=="], - "@opentui/keymap": ["@opentui/keymap@0.4.5", "", { "dependencies": { "@opentui/core": "0.4.5" }, "peerDependencies": { "@opentui/react": "0.4.5", "@opentui/solid": "0.4.5", "react": ">=19.2.0", "solid-js": "1.9.12" }, "optionalPeers": ["@opentui/react", "@opentui/solid", "react", "solid-js"] }, "sha512-S1wzKHhF70zT6bH+VBFY+lSeTImLcIFW28JNQiME8MoPcy6KGPs7rKFSHrb/U7P8rsTJeRfW5A4d1Cy6PKodDg=="], + "@opentui/keymap": ["@opentui/keymap@0.3.4", "", { "dependencies": { "@opentui/core": "0.3.4" }, "peerDependencies": { "@opentui/react": "0.3.4", "@opentui/solid": "0.3.4", "react": ">=19.2.0", "solid-js": "1.9.12" }, "optionalPeers": ["@opentui/react", "@opentui/solid", "react", "solid-js"] }, "sha512-8fo6BZWQgCjANfbKkzPo0ghAzS1E7TlHjDDS+SUhrX01qEUO1clFTRssKluHbXd2UJY1Ehle01TV5bFmY78f8w=="], - "@opentui/solid": ["@opentui/solid@0.4.5", "", { "dependencies": { "@babel/core": "7.28.0", "@babel/preset-typescript": "7.27.1", "@opentui/core": "0.4.5", "babel-plugin-module-resolver": "5.0.2", "babel-preset-solid": "1.9.12", "entities": "7.0.1", "s-js": "^0.4.9" }, "peerDependencies": { "solid-js": "1.9.12" } }, "sha512-B0RSkXnrtPVfEJOX+Hj+axjLJ3lzbG1BZw5I7Pvb9OPp48Vzg2cW2a3cSa86/q48ndLt647i/XwFPIw/jqnI5g=="], + "@opentui/solid": ["@opentui/solid@0.3.4", "", { "dependencies": { "@babel/core": "7.28.0", "@babel/preset-typescript": "7.27.1", "@opentui/core": "0.3.4", "babel-plugin-module-resolver": "5.0.2", "babel-preset-solid": "1.9.12", "entities": "7.0.1", "s-js": "^0.4.9" }, "peerDependencies": { "solid-js": "1.9.12" } }, "sha512-gin1VnsVBahX0nrU3mpgh5U1qvyJBIZu4NE5mc0YnObWOEf9HVNxKY4/BpUvQPh91kT6zeOzTBvAvYK4R7g9MQ=="], "@oslojs/asn1": ["@oslojs/asn1@1.0.0", "", { "dependencies": { "@oslojs/binary": "1.0.0" } }, "sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA=="], @@ -3254,7 +3255,7 @@ "builder-util-runtime": ["builder-util-runtime@9.7.0", "", { "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" } }, "sha512-g/kR520giAFYkSXTzcmF3kqQq7wi8F6N6SzeDgZrqTBN+VHdmgWOyTdD1yD7AATDId/yXLvuP34CxW46/BwCdw=="], - "bun-ffi-structs": ["bun-ffi-structs@0.2.4", "", { "peerDependencies": { "typescript": "^5" } }, "sha512-AJzsqoVFs1KBbJbWHIYrVZLDC3NhTqqh25awRXqzoLzmBAKr5oqk6+CwuYHAekKx+VBCYVohBoKuRq40dV+TYg=="], + "bun-ffi-structs": ["bun-ffi-structs@0.2.2", "", { "peerDependencies": { "typescript": "^5" } }, "sha512-N/ZWtyN0piZlrXQT7TO0V+q952orYqkfhXRXM1Hcbb+R3QSiBH4vLnib187Mrs1H7pWIYECAmPeapGYDOMCl+w=="], "bun-pty": ["bun-pty@0.4.8", "", {}, "sha512-rO70Mrbr13+jxHHHu2YBkk2pNqrJE5cJn29WE++PUr+GFA0hq/VgtQPZANJ8dJo6d7XImvBk37Innt8GM7O28w=="], @@ -5608,6 +5609,8 @@ "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="], + "yoga-layout": ["yoga-layout@3.2.1", "", {}, "sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ=="], + "youch": ["youch@4.1.0-beta.10", "", { "dependencies": { "@poppinss/colors": "^4.1.5", "@poppinss/dumper": "^0.6.4", "@speed-highlight/core": "^1.2.7", "cookie": "^1.0.2", "youch-core": "^0.3.3" } }, "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ=="], "youch-core": ["youch-core@0.3.3", "", { "dependencies": { "@poppinss/exception": "^1.2.2", "error-stack-parser-es": "^1.0.5" } }, "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA=="], diff --git a/install b/install index b0716d532082..b7e256a52d02 100755 --- a/install +++ b/install @@ -92,6 +92,12 @@ else arch="x64" fi + if [ "$os" = "linux" ] && [ "$arch" = "arm64" ]; then + if [ -n "${TERMUX_VERSION:-}" ] || [ "${PREFIX:-}" = "/data/data/com.termux/files/usr" ] || [ -d /data/data/com.termux/files/usr ]; then + os="android" + fi + fi + if [ "$os" = "darwin" ] && [ "$arch" = "x64" ]; then rosetta_flag=$(sysctl -n sysctl.proc_translated 2>/dev/null || echo 0) if [ "$rosetta_flag" = "1" ]; then @@ -101,7 +107,7 @@ else combo="$os-$arch" case "$combo" in - linux-x64|linux-arm64|darwin-x64|darwin-arm64|windows-x64) + android-arm64|linux-x64|linux-arm64|darwin-x64|darwin-arm64|windows-x64) ;; *) echo -e "${RED}Unsupported OS/Arch: $os/$arch${NC}" @@ -110,7 +116,7 @@ else esac archive_ext=".zip" - if [ "$os" = "linux" ]; then + if [ "$os" = "linux" ] || [ "$os" = "android" ]; then archive_ext=".tar.gz" fi @@ -166,9 +172,13 @@ else fi filename="$APP-$target$archive_ext" + release_repo="${OPENCODE_RELEASE_REPO:-anomalyco/opencode}" + if [ "$os" = "android" ] && [ -z "${OPENCODE_RELEASE_REPO:-}" ]; then + release_repo="wallentx/opencode-termux" + fi - if [ "$os" = "linux" ]; then + if [ "$os" = "linux" ] || [ "$os" = "android" ]; then if ! command -v tar >/dev/null 2>&1; then echo -e "${RED}Error: 'tar' is required but not installed.${NC}" exit 1 @@ -181,8 +191,8 @@ else fi if [ -z "$requested_version" ]; then - url="https://github.com/anomalyco/opencode/releases/latest/download/$filename" - specific_version=$(curl -s https://api.github.com/repos/anomalyco/opencode/releases/latest | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p') + url="https://github.com/${release_repo}/releases/latest/download/$filename" + specific_version=$(curl -s "https://api.github.com/repos/${release_repo}/releases/latest" | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p') if [[ $? -ne 0 || -z "$specific_version" ]]; then echo -e "${RED}Failed to fetch version information${NC}" @@ -191,14 +201,14 @@ else else # Strip leading 'v' if present requested_version="${requested_version#v}" - url="https://github.com/anomalyco/opencode/releases/download/v${requested_version}/$filename" + url="https://github.com/${release_repo}/releases/download/v${requested_version}/$filename" specific_version=$requested_version # Verify the release exists before downloading - http_status=$(curl -sI -o /dev/null -w "%{http_code}" "https://github.com/anomalyco/opencode/releases/tag/v${requested_version}") + http_status=$(curl -sI -o /dev/null -w "%{http_code}" "https://github.com/${release_repo}/releases/tag/v${requested_version}") if [ "$http_status" = "404" ]; then echo -e "${RED}Error: Release v${requested_version} not found${NC}" - echo -e "${MUTED}Available releases: https://github.com/anomalyco/opencode/releases${NC}" + echo -e "${MUTED}Available releases: https://github.com/${release_repo}/releases${NC}" exit 1 fi fi @@ -274,7 +284,9 @@ download_with_progress() { exec 4>/dev/null fi - local tmp_dir=${TMPDIR:-/tmp} + local tmp_dir="${TMPDIR:-${PREFIX:+${PREFIX}/tmp}}" + tmp_dir="${tmp_dir:-/tmp}" + mkdir -p "$tmp_dir" local basename="${tmp_dir}/opencode_install_$$" local tracefile="${basename}.trace" @@ -326,7 +338,9 @@ download_with_progress() { download_and_install() { print_message info "\n${MUTED}Installing ${NC}opencode ${MUTED}version: ${NC}$specific_version" - local tmp_dir="${TMPDIR:-/tmp}/opencode_install_$$" + local tmp_root="${TMPDIR:-${PREFIX:+${PREFIX}/tmp}}" + tmp_root="${tmp_root:-/tmp}" + local tmp_dir="${tmp_root}/opencode_install_$$" mkdir -p "$tmp_dir" if [[ "$os" == "windows" ]] || ! [ -t 2 ] || ! download_with_progress "$url" "$tmp_dir/$filename"; then @@ -334,7 +348,7 @@ download_and_install() { curl -# -L -o "$tmp_dir/$filename" "$url" fi - if [ "$os" = "linux" ]; then + if [ "$os" = "linux" ] || [ "$os" = "android" ]; then tar -xzf "$tmp_dir/$filename" -C "$tmp_dir" else unzip -q "$tmp_dir/$filename" -d "$tmp_dir" diff --git a/package.json b/package.json index 58712547b4b8..5a6a4f13e797 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,9 @@ "@octokit/rest": "22.0.0", "@hono/standard-validator": "0.2.0", "@hono/zod-validator": "0.4.2", - "@opentui/core": "0.4.5", - "@opentui/keymap": "0.4.5", - "@opentui/solid": "0.4.5", + "@opentui/core": "0.3.4", + "@opentui/keymap": "0.3.4", + "@opentui/solid": "0.3.4", "@tanstack/solid-virtual": "3.13.32", "@shikijs/stream": "4.2.0", "ulid": "3.0.1", diff --git a/packages/core/package.json b/packages/core/package.json index d5d5260b08b3..a3601feeb8f5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -34,6 +34,7 @@ "default": "./src/pty/pty.bun.ts" }, "#fff": { + "android": "./src/filesystem/fff.node.ts", "bun": "./src/filesystem/fff.bun.ts", "node": "./src/filesystem/fff.node.ts", "default": "./src/filesystem/fff.bun.ts" @@ -49,6 +50,7 @@ "@types/semver": "catalog:", "@types/turndown": "5.0.5", "@types/which": "3.0.4", + "@parcel/watcher-android-arm64": "2.5.1", "@parcel/watcher-darwin-arm64": "2.5.1", "@parcel/watcher-darwin-x64": "2.5.1", "@parcel/watcher-linux-arm64-glibc": "2.5.1", diff --git a/packages/core/src/filesystem/watcher.ts b/packages/core/src/filesystem/watcher.ts index c5e20631917e..c8dd01f5780c 100644 --- a/packages/core/src/filesystem/watcher.ts +++ b/packages/core/src/filesystem/watcher.ts @@ -36,6 +36,7 @@ const watcher = lazy((): typeof import("@parcel/watcher") | undefined => { }) function getBackend() { + if (process.platform === "android") return "inotify" if (process.platform === "win32") return "windows" if (process.platform === "darwin") return "fs-events" if (process.platform === "linux") return "inotify" diff --git a/packages/core/src/flag/flag.ts b/packages/core/src/flag/flag.ts index a0eb78a13e2a..591455818c5d 100644 --- a/packages/core/src/flag/flag.ts +++ b/packages/core/src/flag/flag.ts @@ -31,7 +31,8 @@ export const Flag = { OPENCODE_FAKE_VCS: process.env["OPENCODE_FAKE_VCS"], OPENCODE_SERVER_PASSWORD: process.env["OPENCODE_SERVER_PASSWORD"], OPENCODE_SERVER_USERNAME: process.env["OPENCODE_SERVER_USERNAME"], - OPENCODE_DISABLE_FFF: fff === undefined ? process.platform === "win32" : truthy("OPENCODE_DISABLE_FFF"), + OPENCODE_DISABLE_FFF: + fff === undefined ? process.platform === "android" || process.platform === "win32" : truthy("OPENCODE_DISABLE_FFF"), // Experimental OPENCODE_EXPERIMENTAL_FILEWATCHER: Config.boolean("OPENCODE_EXPERIMENTAL_FILEWATCHER").pipe( diff --git a/packages/desktop/scripts/utils.ts b/packages/desktop/scripts/utils.ts index bf728758ed14..9381571e2370 100644 --- a/packages/desktop/scripts/utils.ts +++ b/packages/desktop/scripts/utils.ts @@ -50,6 +50,16 @@ export const CLI_BINARIES: Array<{ rustTarget: string; package: string; os: stri os: "linux", cpu: "arm64", }, + { + rustTarget: "aarch64-linux-android", + ocBinary: "opencode-android-arm64", + assetExt: "tar.gz", + }, + { + rustTarget: "aarch64-linux-android", + ocBinary: "opencode-android-arm64", + assetExt: "tar.gz", + }, ] export const RUST_TARGET = Bun.env.RUST_TARGET diff --git a/packages/opencode/bin/opencode b/packages/opencode/bin/opencode index a7101f42b0fe..880607c434ff 100755 --- a/packages/opencode/bin/opencode +++ b/packages/opencode/bin/opencode @@ -52,6 +52,7 @@ const scriptDir = path.dirname(scriptPath) const cached = path.join(scriptDir, ".opencode") const platformMap = { + android: "android", darwin: "darwin", linux: "linux", win32: "windows", @@ -127,6 +128,8 @@ const names = (() => { const avx2 = supportsAvx2() const baseline = arch === "x64" && !avx2 + if (platform === "android") return [base] + if (platform === "linux") { const musl = (() => { try { diff --git a/packages/opencode/script/build.ts b/packages/opencode/script/build.ts index ce45f770f04e..c7d679645088 100755 --- a/packages/opencode/script/build.ts +++ b/packages/opencode/script/build.ts @@ -22,6 +22,7 @@ const skipInstall = process.argv.includes("--skip-install") const sourcemapsFlag = process.argv.includes("--sourcemaps") const plugin = createSolidTransformPlugin() const skipEmbedWebUi = process.argv.includes("--skip-embed-web-ui") +const targetFlag = process.argv.find((item) => item.startsWith("--target="))?.slice("--target=".length) const createEmbeddedWebUIBundle = async () => { console.log(`Building Web UI to embed in the binary`) @@ -48,14 +49,20 @@ const createEmbeddedWebUIBundle = async () => { } const embeddedFileMap = skipEmbedWebUi ? null : await createEmbeddedWebUIBundle() -const treeSitterWorker = await Bun.file(fileURLToPath(import.meta.resolve("@opentui/core/parser.worker"))).text() +const treeSitterWorker = await Bun.file( + path.join(path.dirname(fileURLToPath(import.meta.resolve("@opentui/core"))), "parser.worker.js"), +).text() const allTargets: { - os: string + os: "android" | "darwin" | "linux" | "win32" arch: "arm64" | "x64" abi?: "musl" avx2?: false }[] = [ + { + os: "android", + arch: "arm64", + }, { os: "linux", arch: "arm64", @@ -113,6 +120,19 @@ const allTargets: { }, ] +function targetName(item: (typeof allTargets)[number]) { + return [ + pkg.name, + // changing to win32 flags npm for some reason + item.os === "win32" ? "windows" : item.os, + item.arch, + item.avx2 === false ? "baseline" : undefined, + item.abi === undefined ? undefined : item.abi, + ] + .filter(Boolean) + .join("-") +} + const targets = singleFlag ? allTargets.filter((item) => { if (item.os !== process.platform || item.arch !== process.arch) { @@ -132,8 +152,17 @@ const targets = singleFlag return true }) + : targetFlag + ? allTargets.filter((item) => { + const name = targetName(item) + return targetFlag === name || targetFlag === name.replace(`${pkg.name}-`, "") + }) : allTargets +if (targetFlag && targets.length === 0) { + throw new Error(`Unknown build target: ${targetFlag}`) +} + await $`rm -rf dist` const binaries: Record = {} @@ -142,17 +171,11 @@ if (!skipInstall) { await $`bun install --os="*" --cpu="*" @parcel/watcher@${pkg.dependencies["@parcel/watcher"]}` await $`bun install --os="*" --cpu="*" @ff-labs/fff-bun@${pkg.dependencies["@ff-labs/fff-bun"]}` } +if (targets.some((item) => item.os === "android")) { + await import("./opentui-android.ts") +} for (const item of targets) { - const name = [ - pkg.name, - // changing to win32 flags npm for some reason - item.os === "win32" ? "windows" : item.os, - item.arch, - item.avx2 === false ? "baseline" : undefined, - item.abi === undefined ? undefined : item.abi, - ] - .filter(Boolean) - .join("-") + const name = targetName(item) console.log(`building ${name}`) await $`mkdir -p dist/${name}/bin` @@ -161,7 +184,7 @@ for (const item of targets) { const bunfsRoot = item.os === "win32" ? "B:/~BUN/root/" : "/$bunfs/root/" await Bun.build({ - conditions: ["bun", "node"], + conditions: item.os === "android" ? ["android", "bun", "node"] : ["bun", "node"], tsconfig: "./tsconfig.json", plugins: [plugin], external: ["node-gyp"], @@ -175,6 +198,7 @@ for (const item of targets) { autoloadTsconfig: true, autoloadPackageJson: true, target: name.replace(pkg.name, "bun") as any, + executablePath: item.os === "android" ? process.env.OPENCODE_ANDROID_BUN : undefined, outfile: `dist/${name}/bin/opencode`, execArgv: [`--user-agent=opencode/${Script.version}`, "--use-system-ca", "--"], windows: {}, @@ -201,6 +225,11 @@ for (const item of targets) { }, }) + if (item.os === "android") { + const androidElf = await import("./patch-android-elf.ts") + await androidElf.patchAndroidElf(`dist/${name}/bin/opencode`) + } + // Smoke test: only run if binary is for current platform if (item.os === process.platform && item.arch === process.arch && !item.abi) { const binaryPath = `dist/${name}/bin/opencode` @@ -234,7 +263,7 @@ for (const item of targets) { if (Script.release) { for (const key of Object.keys(binaries)) { - if (key.includes("linux")) { + if (key.includes("linux") || key.includes("android")) { await $`tar -czf ../../${key}.tar.gz *`.cwd(`dist/${key}/bin`) } else { await $`zip -r ../../${key}.zip *`.cwd(`dist/${key}/bin`) diff --git a/packages/opencode/script/opentui-android.ts b/packages/opencode/script/opentui-android.ts new file mode 100644 index 000000000000..47edfdd195d2 --- /dev/null +++ b/packages/opencode/script/opentui-android.ts @@ -0,0 +1,262 @@ +#!/usr/bin/env bun + +import { $ } from "bun" +import fs from "fs" +import os from "os" +import path from "path" +import pkg from "../package.json" +import top from "../../../package.json" + +const dir = path.resolve(import.meta.dirname, "..") +const root = path.resolve(dir, "../..") +const dep = pkg.dependencies["@opentui/core"] +const ver = dep === "catalog:" ? top.workspaces.catalog["@opentui/core"] : dep + +if (!ver || ver.includes(":")) { + throw new Error(`Cannot resolve @opentui/core version from ${dep}`) +} + +const core = [path.join(dir, "node_modules/@opentui/core"), path.join(root, "node_modules/@opentui/core")].find((item) => + fs.existsSync(item), +) + +if (!core) { + throw new Error("Cannot find installed @opentui/core") +} + +const name = "@opentui/core-android-arm64" +const native = path.join(core, "android-arm64") +const head = JSON.parse((await $`npm view @opentui/core@${ver} gitHead --json`.text()).trim()) + +if (!head) { + throw new Error(`Cannot resolve @opentui/core@${ver} gitHead`) +} + +const tmp = process.env.RUNNER_TEMP ?? process.env.TMPDIR ?? os.tmpdir() +const src = path.join(tmp, `opentui-${ver}-${head.slice(0, 12)}`) +const ndk = androidNdk() +const libc = path.join(tmp, `android-ndk-${ndk.api}.libc`) + +await Bun.write( + libc, + [ + `include_dir=${path.join(ndk.sysroot, "usr/include")}`, + `sys_include_dir=${ndk.sysInclude}`, + `crt_dir=${ndk.libDir}`, + "msvc_lib_dir=", + "kernel32_lib_dir=", + "gcc_dir=", + "", + ].join("\n"), +) + +if (!fs.existsSync(path.join(src, "packages/core/src/zig/build.zig"))) { + fs.mkdirSync(src, { recursive: true }) + await $`git init`.cwd(src) + await $`git remote add origin https://github.com/anomalyco/opentui`.cwd(src) + await $`git fetch --depth 1 origin ${head}`.cwd(src) + await $`git checkout --detach FETCH_HEAD`.cwd(src) +} + +patchOpenTUIBuild(path.join(src, "packages/core/src/zig/build.zig")) + +await $`OPENCODE_ANDROID_NDK_LIBDIR=${ndk.libDir} zig build -Dtarget=aarch64-linux-android -Doptimize=ReleaseFast --libc ${libc}`.cwd( + path.join(src, "packages/core/src/zig"), +) + +const lib = path.join(src, "packages/core/src/zig/lib/aarch64-linux-android/libopentui.so") + +if (!fs.existsSync(lib)) { + throw new Error(`OpenTUI Android build did not produce ${lib}`) +} + +fs.rmSync(native, { recursive: true, force: true }) +fs.mkdirSync(native, { recursive: true }) +fs.copyFileSync(lib, path.join(native, "libopentui.so")) +fs.chmodSync(path.join(native, "libopentui.so"), 0o755) + +await Bun.write( + path.join(native, "index.js"), + `import { fileURLToPath } from "node:url" + +export default fileURLToPath(new URL("./libopentui.so", import.meta.url)) +`, +) +await Bun.write( + path.join(native, "index.bun.js"), + `const module = await import("./libopentui.so", { with: { type: "file" } }) + +export default module.default +`, +) +await Bun.write(path.join(native, "index.d.ts"), "declare const path: string\nexport default path\n") +await Bun.write( + path.join(native, "package.json"), + JSON.stringify( + { + name, + version: ver, + description: `Prebuilt android-arm64 binaries for @opentui/core`, + type: "module", + main: "index.js", + module: "index.js", + types: "index.d.ts", + license: "MIT", + repository: { + type: "git", + url: "https://github.com/anomalyco/opentui", + directory: "packages/core", + }, + keywords: ["prebuild", "prebuilt"], + exports: { + ".": { + bun: "./index.bun.js", + import: "./index.js", + types: "./index.d.ts", + }, + }, + os: ["android"], + cpu: ["arm64"], + }, + null, + 2, + ) + "\n", +) +await Bun.write(path.join(native, "README.md"), `## ${name}\n\n> Prebuilt android-arm64 binaries for \`@opentui/core\`.\n`) + +const license = path.join(src, "LICENSE") +if (fs.existsSync(license)) { + fs.copyFileSync(license, path.join(native, "LICENSE")) +} + +const marker = "@opentui/core-android-arm64" +const block = ` // ${marker} + if (process.platform === "android") { + if (process.arch === "arm64") return await import("./android-arm64/index.bun.js") + } + +` +let patched = 0 + +for (const file of fs.readdirSync(core)) { + if (!file.endsWith(".js")) continue + + const target = path.join(core, file) + const text = fs.readFileSync(target, "utf8") + + if (text.includes(marker) || text.includes('process.platform === "android"')) continue + if (!text.includes('@opentui/core-linux-arm64')) continue + + const next = text.replace(' if (process.platform === "linux") {\n', block + ' if (process.platform === "linux") {\n') + if (next === text) continue + + fs.writeFileSync(target, next) + patched++ +} + +if (patched === 0) { + throw new Error("Did not patch @opentui/core native loader for Android") +} + +function androidNdk() { + const roots = [ + process.env.ANDROID_NDK_ROOT, + process.env.ANDROID_NDK_HOME, + process.env.NDK_ROOT, + process.env.ANDROID_HOME ? path.join(process.env.ANDROID_HOME, "ndk") : undefined, + process.env.ANDROID_SDK_ROOT ? path.join(process.env.ANDROID_SDK_ROOT, "ndk") : undefined, + "/usr/local/lib/android/sdk/ndk", + ].filter((item): item is string => item !== undefined && item.length > 0) + + const ndkRoots = roots.flatMap((item) => { + if (!fs.existsSync(item)) return [] + if (fs.existsSync(path.join(item, "toolchains/llvm/prebuilt"))) return [item] + return fs + .readdirSync(item, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .map((entry) => path.join(item, entry.name)) + .sort() + .reverse() + }) + const sysroot = ndkRoots + .flatMap((item) => { + const prebuilt = path.join(item, "toolchains/llvm/prebuilt") + if (!fs.existsSync(prebuilt)) return [] + return fs + .readdirSync(prebuilt, { withFileTypes: true }) + .filter((entry) => entry.isDirectory()) + .map((entry) => path.join(prebuilt, entry.name, "sysroot")) + }) + .find( + (item) => + fs.existsSync(path.join(item, "usr/include")) && + fs.existsSync(path.join(item, "usr/lib/aarch64-linux-android")), + ) + + if (!sysroot) { + throw new Error("Cannot find Android NDK sysroot. Set ANDROID_NDK_ROOT or ANDROID_NDK_HOME.") + } + + const libRoot = path.join(sysroot, "usr/lib/aarch64-linux-android") + const api = androidApi(libRoot) + const libDir = path.join(libRoot, api) + const include = path.join(sysroot, "usr/include") + const archInclude = path.join(include, "aarch64-linux-android") + + return { + api, + libDir, + sysroot, + sysInclude: fs.existsSync(archInclude) ? archInclude : include, + } +} + +function androidApi(libRoot: string) { + const requested = process.env.ANDROID_API_LEVEL ?? process.env.ANDROID_NDK_API ?? "24" + + if (fs.existsSync(path.join(libRoot, requested, "libdl.so"))) { + return requested + } + + const fallback = fs + .readdirSync(libRoot, { withFileTypes: true }) + .filter((entry) => entry.isDirectory() && /^\d+$/.test(entry.name)) + .map((entry) => entry.name) + .sort((a, b) => Number(a) - Number(b)) + .findLast((item) => fs.existsSync(path.join(libRoot, item, "libdl.so"))) + + if (!fallback) { + throw new Error(`Cannot find Android NDK libraries under ${libRoot}`) + } + + return fallback +} + +function patchOpenTUIBuild(file: string) { + const marker = "OPENCODE_ANDROID_NDK_LIBDIR" + const text = fs.readFileSync(file, "utf8") + + if (text.includes(marker)) return + + const before = ` .linux => { + artifact.linkSystemLibrary("dl"); + artifact.linkSystemLibrary("pthread"); + },` + const after = ` .linux => { + if (target.result.abi == .android) { + if (b.graph.env_map.get("${marker}")) |lib_path| { + artifact.addLibraryPath(.{ .cwd_relative = lib_path }); + } + artifact.linkSystemLibrary("dl"); + } else { + artifact.linkSystemLibrary("dl"); + artifact.linkSystemLibrary("pthread"); + } + },` + + if (!text.includes(before)) { + throw new Error("Cannot patch OpenTUI Android system library handling") + } + + fs.writeFileSync(file, text.replace(before, after)) +} diff --git a/packages/opencode/script/patch-android-elf.ts b/packages/opencode/script/patch-android-elf.ts new file mode 100644 index 000000000000..29665e5bab49 --- /dev/null +++ b/packages/opencode/script/patch-android-elf.ts @@ -0,0 +1,421 @@ +#!/usr/bin/env bun + +import { readFile, writeFile } from "node:fs/promises" + +const ET_DYN = 3 +const EM_AARCH64 = 183 +const PT_LOAD = 1 +const PT_DYNAMIC = 2 +const PF_W = 2 +const SHT_NOBITS = 8 +const SHF_ALLOC = 2 +const DT_NULL = 0 +const DT_RELA = 7 +const DT_RELASZ = 8 +const DT_RELAENT = 9 +const R_AARCH64_RELATIVE = 1027 + +type LoadSegment = { + offset: number + vaddr: number + filesz: number + flags: number +} + +type DynamicSegment = { + offset: number + filesz: number +} + +type DynamicEntry = { + tag: number + value: number + valueOffset: number +} + +type Section = { + name: string + type: number + flags: number + addr: number + offset: number + size: number +} + +type Elf = { + view: DataView + loadSegments: LoadSegment[] + dynamicSegment: DynamicSegment + sections: Section[] +} + +type PointerSlot = { + offset: number + vaddr: number +} + +export async function patchAndroidElf(file: string) { + const data = new Uint8Array(await readFile(file)) + const elf = parseElf(data) + const dynamic = parseDynamic(elf) + const rela = requireDynamic(dynamic, DT_RELA, "DT_RELA") + const relasz = requireDynamic(dynamic, DT_RELASZ, "DT_RELASZ") + const relaent = dynamic.find((item) => item.tag === DT_RELAENT)?.value ?? 24 + + if (relaent < 24) { + throw new Error(`Unsupported DT_RELAENT ${relaent}`) + } + if (relasz.value % relaent !== 0) { + throw new Error(`DT_RELASZ ${relasz.value} is not divisible by DT_RELAENT ${relaent}`) + } + + const relaOffset = vaddrToOffset(elf.loadSegments, rela.value, relasz.value) + const bun = requireBunSection(elf.sections) + const slot = findBunPointerSlot(data, elf.loadSegments, bun, { offset: relaOffset, size: relasz.value }) + + if (hasPayloadRelocation(elf.view, relaOffset, relasz.value, relaent, slot.vaddr, bun.addr)) { + console.log(`Android ELF already patches Bun standalone payload pointer in ${file}`) + return + } + + const nextSize = relasz.value + relaent + const nextRelaOffset = requireWritablePadding(data, elf, slot.offset, nextSize, { offset: relaOffset, size: relasz.value }) + const nextRelaVaddr = offsetToVaddr(elf.loadSegments, nextRelaOffset, nextSize) + data.set(data.slice(relaOffset, relaOffset + relasz.value), nextRelaOffset) + + const nextEntry = nextRelaOffset + relasz.value + writeU64(elf.view, nextEntry, slot.vaddr) + writeU64(elf.view, nextEntry + 8, R_AARCH64_RELATIVE) + writeI64(elf.view, nextEntry + 16, bun.addr) + writeU64(elf.view, rela.valueOffset, nextRelaVaddr) + writeU64(elf.view, relasz.valueOffset, nextSize) + + await writeFile(file, data) + console.log( + `Patched Android ELF ${file}: relocated Bun payload pointer ${hex(slot.vaddr)} -> ${hex(bun.addr)}`, + ) +} + +function parseElf(data: Uint8Array): Elf { + const view = new DataView(data.buffer, data.byteOffset, data.byteLength) + if ( + data.byteLength < 64 || + data[0] !== 0x7f || + data[1] !== 0x45 || + data[2] !== 0x4c || + data[3] !== 0x46 + ) { + throw new Error("Expected an ELF file") + } + if (data[4] !== 2 || data[5] !== 1) { + throw new Error("Expected a 64-bit little-endian ELF file") + } + if (readU16(view, 0x10) !== ET_DYN || readU16(view, 0x12) !== EM_AARCH64) { + throw new Error("Expected an AArch64 PIE ELF file") + } + + const programHeaderOffset = readU64(view, 0x20, "e_phoff") + const sectionHeaderOffset = readU64(view, 0x28, "e_shoff") + const programHeaderEntrySize = readU16(view, 0x36) + const programHeaderCount = readU16(view, 0x38) + const sectionHeaderEntrySize = readU16(view, 0x3a) + const sectionHeaderCount = readU16(view, 0x3c) + const sectionNameIndex = readU16(view, 0x3e) + + const loadSegments: LoadSegment[] = [] + let dynamicSegment: DynamicSegment | undefined + + for (let i = 0; i < programHeaderCount; i += 1) { + const offset = programHeaderOffset + i * programHeaderEntrySize + const type = readU32(view, offset) + const flags = readU32(view, offset + 4) + if (type === PT_LOAD) { + loadSegments.push({ + flags, + offset: readU64(view, offset + 8, "p_offset"), + vaddr: readU64(view, offset + 16, "p_vaddr"), + filesz: readU64(view, offset + 32, "p_filesz"), + }) + } + if (type === PT_DYNAMIC) { + dynamicSegment = { + offset: readU64(view, offset + 8, "p_offset"), + filesz: readU64(view, offset + 32, "p_filesz"), + } + } + } + + if (!dynamicSegment) { + throw new Error("ELF file has no PT_DYNAMIC segment") + } + + return { + view, + loadSegments, + dynamicSegment, + sections: parseSections(data, view, sectionHeaderOffset, sectionHeaderEntrySize, sectionHeaderCount, sectionNameIndex), + } +} + +function parseSections( + data: Uint8Array, + view: DataView, + sectionHeaderOffset: number, + sectionHeaderEntrySize: number, + sectionHeaderCount: number, + sectionNameIndex: number, +) { + if (!sectionHeaderOffset || !sectionHeaderCount) { + throw new Error("ELF file has no section headers; cannot find Bun payload section") + } + if (sectionNameIndex >= sectionHeaderCount) { + throw new Error(`Invalid section string table index ${sectionNameIndex}`) + } + + const stringHeader = sectionHeaderOffset + sectionNameIndex * sectionHeaderEntrySize + const stringOffset = readU64(view, stringHeader + 24, "sh_offset") + const sections: Section[] = [] + + for (let i = 0; i < sectionHeaderCount; i += 1) { + const offset = sectionHeaderOffset + i * sectionHeaderEntrySize + sections.push({ + name: readString(data, stringOffset + readU32(view, offset)), + type: readU32(view, offset + 4), + flags: readU64(view, offset + 8, "sh_flags"), + addr: readU64(view, offset + 16, "sh_addr"), + offset: readU64(view, offset + 24, "sh_offset"), + size: readU64(view, offset + 32, "sh_size"), + }) + } + + return sections +} + +function parseDynamic(elf: Elf) { + const result: DynamicEntry[] = [] + for (let offset = elf.dynamicSegment.offset; offset < elf.dynamicSegment.offset + elf.dynamicSegment.filesz; offset += 16) { + const tag = readU64(elf.view, offset, "d_tag") + result.push({ + tag, + value: readU64(elf.view, offset + 8, "d_val"), + valueOffset: offset + 8, + }) + if (tag === DT_NULL) break + } + return result +} + +function requireDynamic(dynamic: DynamicEntry[], tag: number, name: string) { + const entry = dynamic.find((item) => item.tag === tag) + if (!entry) { + throw new Error(`ELF dynamic section has no ${name}`) + } + return entry +} + +function requireBunSection(sections: Section[]) { + const matches = sections.filter((item) => item.name === ".bun" && item.type !== SHT_NOBITS && item.size > 0) + if (matches.length !== 1) { + throw new Error(`Expected exactly one .bun section, found ${matches.length}`) + } + return matches[0] +} + +function findBunPointerSlot( + data: Uint8Array, + loadSegments: LoadSegment[], + bun: Section, + rela: { offset: number; size: number }, +): PointerSlot { + const needle = u64Bytes(bun.addr) + const excluded = [ + { offset: bun.offset, size: bun.size }, + rela, + ] + const candidates = loadSegments + .filter((item) => (item.flags & PF_W) !== 0) + .flatMap((segment) => { + const result: PointerSlot[] = [] + const end = segment.offset + segment.filesz - needle.length + for (let offset = align(segment.offset, 8); offset <= end; offset += 8) { + if (excluded.some((item) => contains(item.offset, item.size, offset, needle.length))) continue + if (!matches(data, offset, needle)) continue + result.push({ + offset, + vaddr: offsetToVaddr(loadSegments, offset, needle.length), + }) + } + return result + }) + + if (candidates.length !== 1) { + throw new Error( + `Expected exactly one writable Bun payload pointer slot for ${hex(bun.addr)}, found ${candidates.length}`, + ) + } + return candidates[0] +} + +function hasPayloadRelocation( + view: DataView, + relaOffset: number, + relasz: number, + relaent: number, + slotVaddr: number, + payloadVaddr: number, +) { + for (let offset = relaOffset; offset < relaOffset + relasz; offset += relaent) { + if ( + readU64(view, offset, "r_offset") === slotVaddr && + readU64(view, offset + 8, "r_info") % 0x100000000 === R_AARCH64_RELATIVE && + readI64(view, offset + 16, "r_addend") === payloadVaddr + ) { + return true + } + } + return false +} + +function requireWritablePadding( + data: Uint8Array, + elf: Elf, + slotOffset: number, + size: number, + rela: { offset: number; size: number }, +) { + const occupied = [ + ...elf.sections + .filter((item) => (item.flags & SHF_ALLOC) !== 0 && item.type !== SHT_NOBITS && item.size > 0) + .map((item) => ({ offset: item.offset, size: item.size })), + { offset: slotOffset, size: 8 }, + rela, + ] + + const offset = findWritablePadding(data, elf.loadSegments, occupied, size, slotOffset + 8) + if (offset !== undefined) return offset + + const fallback = findWritablePadding(data, elf.loadSegments, occupied, size, 0) + if (fallback !== undefined) return fallback + + throw new Error(`Could not find ${size} bytes of writable zero padding for patched RELA table`) +} + +function findWritablePadding( + data: Uint8Array, + loadSegments: LoadSegment[], + occupied: Array<{ offset: number; size: number }>, + size: number, + minimumOffset: number, +) { + for (const segment of loadSegments.filter((item) => (item.flags & PF_W) !== 0)) { + const segmentStart = Math.max(segment.offset, minimumOffset) + const segmentEnd = segment.offset + segment.filesz + const ranges = occupied + .map((item) => ({ start: item.offset, end: item.offset + item.size })) + .filter((item) => item.start < segmentEnd && item.end > segmentStart) + .sort((a, b) => a.start - b.start) + let cursor = segmentStart + + for (const range of ranges) { + const offset = align(cursor, 8) + if (offset + size <= range.start && isZero(data, offset, size)) return offset + cursor = Math.max(cursor, range.end) + } + + const offset = align(cursor, 8) + if (offset + size <= segmentEnd && isZero(data, offset, size)) return offset + } +} + +function vaddrToOffset(loadSegments: LoadSegment[], vaddr: number, size: number) { + const segment = loadSegments.find((item) => vaddr >= item.vaddr && vaddr + size <= item.vaddr + item.filesz) + if (!segment) { + throw new Error(`Could not map virtual address ${hex(vaddr)} to a file offset`) + } + return segment.offset + vaddr - segment.vaddr +} + +function offsetToVaddr(loadSegments: LoadSegment[], offset: number, size: number) { + const segment = loadSegments.find((item) => offset >= item.offset && offset + size <= item.offset + item.filesz) + if (!segment) { + throw new Error(`Could not map file offset ${hex(offset)} to a virtual address`) + } + return segment.vaddr + offset - segment.offset +} + +function readU16(view: DataView, offset: number) { + return view.getUint16(offset, true) +} + +function readU32(view: DataView, offset: number) { + return view.getUint32(offset, true) +} + +function readU64(view: DataView, offset: number, label: string) { + const value = view.getBigUint64(offset, true) + if (value > BigInt(Number.MAX_SAFE_INTEGER)) { + throw new Error(`${label} ${value} is too large to handle safely`) + } + return Number(value) +} + +function readI64(view: DataView, offset: number, label: string) { + const value = view.getBigInt64(offset, true) + if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER)) { + throw new Error(`${label} ${value} is too large to handle safely`) + } + return Number(value) +} + +function writeU64(view: DataView, offset: number, value: number) { + view.setBigUint64(offset, BigInt(value), true) +} + +function writeI64(view: DataView, offset: number, value: number) { + view.setBigInt64(offset, BigInt(value), true) +} + +function readString(data: Uint8Array, offset: number) { + const end = data.indexOf(0, offset) + return new TextDecoder().decode(data.slice(offset, end === -1 ? data.length : end)) +} + +function u64Bytes(value: number) { + const data = new Uint8Array(8) + writeU64(new DataView(data.buffer), 0, value) + return data +} + +function align(value: number, amount: number) { + return Math.ceil(value / amount) * amount +} + +function matches(data: Uint8Array, offset: number, needle: Uint8Array) { + for (let i = 0; i < needle.length; i += 1) { + if (data[offset + i] !== needle[i]) return false + } + return true +} + +function contains(offset: number, size: number, targetOffset: number, targetSize: number) { + return targetOffset < offset + size && targetOffset + targetSize > offset +} + +function isZero(data: Uint8Array, offset: number, size: number) { + for (let i = 0; i < size; i += 1) { + if (data[offset + i] !== 0) return false + } + return true +} + +function hex(value: number) { + return `0x${value.toString(16)}` +} + +if (import.meta.main) { + const file = Bun.argv[2] + if (!file) { + throw new Error("Usage: patch-android-elf.ts ") + } + await patchAndroidElf(file) +} diff --git a/packages/opencode/script/postinstall.mjs b/packages/opencode/script/postinstall.mjs index fa303b746b8c..34a9d5aa0125 100644 --- a/packages/opencode/script/postinstall.mjs +++ b/packages/opencode/script/postinstall.mjs @@ -12,6 +12,7 @@ const require = createRequire(import.meta.url) const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"), "utf8")) const platformMap = { + android: "android", darwin: "darwin", linux: "linux", win32: "windows", @@ -96,6 +97,8 @@ function isMusl() { function packageNames() { const baseline = arch === "x64" && !supportsAvx2() + if (platform === "android") return [base] + if (platform === "linux") { if (isMusl()) { if (arch === "x64") diff --git a/packages/opencode/script/publish.ts b/packages/opencode/script/publish.ts index ac1cafff56f4..7fa73189cb57 100755 --- a/packages/opencode/script/publish.ts +++ b/packages/opencode/script/publish.ts @@ -63,7 +63,7 @@ await Bun.file(`./dist/${pkg.name}/package.json`).write( }, version: version, license: pkg.license, - os: ["darwin", "linux", "win32"], + os: ["android", "darwin", "linux", "win32"], cpu: ["arm64", "x64"], optionalDependencies: binaries, }, diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index 4300220255b3..e9fc351985fd 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -83,6 +83,23 @@ export class Service extends Context.Service()("@opencode/In export const use = serviceUse(Service) +const UPSTREAM_RELEASE_REPO = "anomalyco/opencode" +const TERMUX_RELEASE_REPO = "wallentx/opencode-termux" + +function releaseRepo() { + if (process.env.OPENCODE_RELEASE_REPO) return process.env.OPENCODE_RELEASE_REPO + if (process.platform === "android" || InstallationVersion.endsWith("-termux")) return TERMUX_RELEASE_REPO + return UPSTREAM_RELEASE_REPO +} + +function installScriptUrl(target: string) { + if (process.env.OPENCODE_INSTALL_URL) return process.env.OPENCODE_INSTALL_URL + if (releaseRepo() === TERMUX_RELEASE_REPO) { + return `https://raw.githubusercontent.com/${TERMUX_RELEASE_REPO}/v${target}/install` + } + return "https://opencode.ai/install" +} + const layer: Layer.Layer = Layer.effect( Service, Effect.gen(function* () { @@ -144,14 +161,14 @@ const layer: Layer.Layer { }), ) + const forkReleaseCalls: string[] = [] + testEffect( + testLayer((request) => { + forkReleaseCalls.push(request.url) + return jsonResponse({ tag_name: "v1.17.15-termux" }) + }), + ).effect("reads configured fork release versions", () => + Effect.gen(function* () { + const original = process.env.OPENCODE_RELEASE_REPO + process.env.OPENCODE_RELEASE_REPO = "wallentx/opencode-termux" + try { + const result = yield* Installation.use.latest("curl") + expect(result).toBe("1.17.15-termux") + expect(forkReleaseCalls).toContain("https://api.github.com/repos/wallentx/opencode-termux/releases/latest") + } finally { + if (original === undefined) delete process.env.OPENCODE_RELEASE_REPO + else process.env.OPENCODE_RELEASE_REPO = original + } + }), + ) + const npmCalls: string[] = [] testEffect( testLayer((request) => { @@ -236,5 +257,36 @@ describe("installation", () => { yield* Installation.use.upgrade("curl", "9.9.9") }), ) + + const installCalls: string[] = [] + testEffect( + testLayer( + (request) => { + installCalls.push(request.url) + return new Response("install script", { status: 200 }) + }, + (cmd, args) => { + if (cmd === "bash" && args[0] === "--version") return "GNU bash" + if (cmd === "bash") return "ok" + return "" + }, + ), + ).effect("uses configured install URL for curl upgrade", () => + Effect.gen(function* () { + const originalUrl = process.env.OPENCODE_INSTALL_URL + const originalRepo = process.env.OPENCODE_RELEASE_REPO + process.env.OPENCODE_INSTALL_URL = "https://example.test/install" + process.env.OPENCODE_RELEASE_REPO = "wallentx/opencode-termux" + try { + yield* Installation.use.upgrade("curl", "1.17.15-termux") + expect(installCalls).toContain("https://example.test/install") + } finally { + if (originalUrl === undefined) delete process.env.OPENCODE_INSTALL_URL + else process.env.OPENCODE_INSTALL_URL = originalUrl + if (originalRepo === undefined) delete process.env.OPENCODE_RELEASE_REPO + else process.env.OPENCODE_RELEASE_REPO = originalRepo + } + }), + ) }) }) diff --git a/packages/plugin/package.json b/packages/plugin/package.json index daa27018d521..cc4ada2d60cc 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -27,9 +27,9 @@ "zod": "catalog:" }, "peerDependencies": { - "@opentui/core": ">=0.4.5", - "@opentui/keymap": ">=0.4.5", - "@opentui/solid": ">=0.4.5" + "@opentui/core": ">=0.3.4", + "@opentui/keymap": ">=0.3.4", + "@opentui/solid": ">=0.3.4" }, "peerDependenciesMeta": { "@opentui/core": {