* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
12 KiB
OpenCode Integration (Türkçe)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Durum: Genel kullanıma açık. Hedef kitle: OpenCode'u bir OmniRoute dağıtımına bağlayan operatörler. Doğruluk kaynağı (yapılandırma şeması):
src/shared/services/opencodeConfig.tsDoğruluk kaynağı (npm paketi):@omniroute/opencode-provider/(yayımlanabilir çalışma alanı)
OpenCode, aracı tabanlı bir CLI/masaüstü yapay zekâ istemcisidir. Sağlayıcı kataloğunu ~/.config/opencode/opencode.json (veya opencode.jsonc) dosyasından okur ve https://opencode.ai/config.json adresindeki şemayı izler. OmniRoute, kendisini OpenCode'a bu sağlayıcılardan biri olarak sunar — her istek OmniRoute'un standart OpenAI uyumlu /v1 yüzeyi üzerinden geçer; böylece OpenCode, Auto-Combo yönlendirme, devre kesiciler, anahtar politikaları, gözlemlenebilirlik vb. özelliklerden otomatik olarak yararlanır.
Desteklenen iki entegrasyon yolu vardır. Birini seçin — her ikisi de aynı yapılandırmayı oluşturur.
Yol 1 — CLI oluşturucu (npm kurulumu gerekmez)
Son kullanıcılar için önerilir. OmniRoute ile birlikte gelir. opencode.json dosyasını yerinde günceller.
# OmniRoute'u kurduktan sonra (npm i -g @omniroute/cli veya yerel klon)
omniroute config opencode \
--base-url http://localhost:20128 \
--api-key "$OMNIROUTE_API_KEY"
CLI, arka planda mergeOpenCodeConfigText() (src/shared/services/opencodeConfig.ts:104) fonksiyonunu çağırır; böylece mevcut bir opencode.json, diğer sağlayıcılarını ve yorumlarını korur. OmniRoute girdisi atomik olarak eklenir/değiştirilir.
Oluşturulan dosya (varsayılan model kataloğu):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1",
"apiKey": "<your-key>",
},
"models": {
"claude-opus-4-5-thinking": { "name": "claude-opus-4-5-thinking" },
"claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" },
"gemini-3.1-pro-high": { "name": "gemini-3.1-pro-high" },
"gemini-3-flash": { "name": "gemini-3-flash" },
},
},
},
}
Yol 2 — npm paketi @omniroute/opencode-provider
Yapılandırmayı Node/TS üzerinden betikle oluşturduğunuz durumlarda önerilir (CI işlem hatları, monorepo'lar, özel yükleyici akışları).
npm install --save-dev @omniroute/opencode-provider
import { writeFileSync } from "node:fs";
import { buildOmniRouteOpenCodeConfig } from "@omniroute/opencode-provider";
const config = buildOmniRouteOpenCodeConfig({
baseURL: "http://localhost:20128",
apiKey: process.env.OMNIROUTE_API_KEY ?? "sk_omniroute",
// İsteğe bağlı: OpenCode'a sunulan model kataloğunu geçersiz kılın
models: ["auto", "claude-opus-4-7", "gpt-5.5"],
modelLabels: { auto: "Auto-Combo" },
});
writeFileSync("opencode.json", JSON.stringify(config, null, 2));
Mevcut bir dosyayla yıkıcı olmayan bir birleştirme gerçekleştirmek için opencodeConfig.ts içindeki mergeOpenCodeConfigText() fonksiyonunu çoğaltın veya CLI oluşturucuyu çağırın.
API'nin tamamı için paket README dosyasına bakın.
Çalışma zamanı gerçekte ne yapar?
Her iki yol da aynı provider.omniroute.npm: "@ai-sdk/openai-compatible" değerini üretir. OpenCode, çalışma zamanında @ai-sdk/openai-compatible paketini (zaten OpenCode'un geçişli bir bağımlılığıdır) yükler ve baseURL + apiKey ile yapılandırır. Ardından akış şu şekilde ilerler:
OpenCode kullanıcı arayüzü/aracısı
→ @ai-sdk/openai-compatible
→ HTTP POST {baseURL}/chat/completions (OmniRoute OpenAI yüzeyi)
→ OmniRoute /v1/chat/completions işleyicisi (open-sse/handlers/chatCore.ts)
→ birleşik yönlendirme / Auto-Combo / yürütücü
→ üst sağlayıcı
Eklenti hiçbir zaman HTTP ile doğrudan etkileşime girmez. Yalnızca yapılandırma üretir.
Model kataloğu varsayılanları
export const OMNIROUTE_DEFAULT_OPENCODE_MODELS = [
"claude-opus-4-5-thinking",
"claude-sonnet-4-5-thinking",
"gemini-3.1-pro-high",
"gemini-3-flash",
] as const;
models: [...] aracılığıyla geçersiz kılabilirsiniz. Önerilen eklemeler:
"auto"— OmniRoute'un sıfır yapılandırmalı Auto-Combo yönlendiricisini kullanıma sunar. Kataloğu doğrudan kodunuza yazmanıza gerek kalmadan OpenCode'un "mevcut en iyi modeli" seçmesini sağlar."<combo-name>"— panoda tanımladığınız herhangi bir kombinasyon; OmniRoute bunu şeffaf biçimde çözümler.
URL normalizasyonu
Yardımcı işlev her iki biçimi de kabul eder ve tam olarak bir /v1 üretir:
| Girdi | Çıktı (options.baseURL) |
|---|---|
http://localhost:20128 |
http://localhost:20128/v1 |
http://localhost:20128/ |
http://localhost:20128/v1 |
http://localhost:20128/v1 |
http://localhost:20128/v1 |
http://localhost:20128/v1/// |
http://localhost:20128/v1 |
Bu tekilleştirme, eski yapılandırmalarda görülen en yaygın bozulma nedenidir. v3.8.0 öncesinden kalma ve /v1/v1/... yolunu gösteren bir opencode.json dosyanız varsa oluşturucuyu yeniden çalıştırın veya createOmniRouteProvider işlevini tekrar çağırın.
Kimlik doğrulama modları
| OmniRoute ayarı | Önerilen apiKey değeri |
|---|---|
REQUIRE_API_KEY=false (yerel için varsayılan) |
sk_omniroute (değişmez yer tutucu) |
REQUIRE_API_KEY=true |
Pano → API Anahtarları bölümünden gerçek bir kullanıcı başına API anahtarı. |
x-api-key + anthropic-version gönderen Anthropic tarzı istemciler için OmniRoute'un extractApiKey işlevi, x-api-key içindeki anahtarı da kabul eder. OpenCode, OpenAI arayüzünü kullandığından her zaman Authorization: Bearer ${apiKey} gönderir — burada Anthropic'e özgü özel bir durum geçerli değildir.
Sorun giderme
| Belirti | Neden | Çözüm |
|---|---|---|
URL'sinde /v1/v1/ bulunan her istekte 404 |
/v1 son ekini iki kez ekleyen v3.8 öncesi eklentiden kalma eski yapılandırma. |
1. veya 2. Yol aracılığıyla yeniden oluşturun. |
401 Invalid API key |
OmniRoute'ta REQUIRE_API_KEY=true ve anahtar bilinmiyor. |
Anahtarı panoda oluşturun veya REQUIRE_API_KEY=false (yalnızca yerel) olarak ayarlayıp sk_omniroute kullanın. |
| OpenCode kullanıcı arayüzünde model listesi boş | Varsayılan 4 modelin tamamı OmniRoute'un sağlayıcı görünürlüğünde gizli. | Etkinleştirdiklerinizi kullanıma sunmak için models: ["auto", ...] aktarın. |
cannot read property 'models' ile OpenCode 500 hatası |
Eski OpenCode (< 0.1.x), satır içi models değerini kabul etmiyordu. |
OpenCode'u v1 şemasını (opencode.ai/config.json) izleyen bir sürüme yükseltin. |
Ayrıca bakınız
- API referansı — OmniRoute REST yüzeyinin tamamı
- Auto-Combo —
model: "auto"ifadesinin anlamı @omniroute/opencode-providerREADME dosyası- Kaynak:
src/shared/services/opencodeConfig.ts,src/lib/cli-helper/config-generator/opencode.ts,@omniroute/opencode-provider/src/index.ts