* 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 (Azərbaycan dili)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇧🇬 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 · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Status: Ümumi istifadəyə açıqdır. Auditoriya: OpenCode-u OmniRoute yerləşdirməsinə qoşan operatorlar. Həqiqət mənbəyi (konfiqurasiya sxemi):
src/shared/services/opencodeConfig.tsHəqiqət mənbəyi (npm paketi):@omniroute/opencode-provider/(dərc edilə bilən iş sahəsi)
OpenCode agent əsaslı CLI/masaüstü süni intellekt müştərisidir. O, provayder kataloqunu ~/.config/opencode/opencode.json (və ya opencode.jsonc) faylından oxuyur və https://opencode.ai/config.json ünvanındakı sxemə uyğun işləyir. OmniRoute özünü OpenCode-a həmin provayderlərdən biri kimi təqdim edir — hər sorğu OmniRoute-un standart OpenAI-uyğun /v1 interfeysindən keçir, buna görə OpenCode avtomatik olaraq Auto-Combo marşrutlaşdırması, dövrə kəsiciləri, açar siyasətləri, müşahidəolunma və digər imkanlardan faydalanır.
İki dəstəklənən inteqrasiya yolu mövcuddur. Onlardan birini seçin — hər ikisi eyni konfiqurasiyanı yaradır.
Yol 1 — CLI generatoru (npm quraşdırılması tələb olunmur)
Son istifadəçilər üçün tövsiyə olunur. OmniRoute ilə birlikdə təqdim edilir. opencode.json faylını olduğu yerdə yeniləyir.
# OmniRoute quraşdırıldıqdan sonra (npm i -g @omniroute/cli və ya lokal klon)
omniroute config opencode \
--base-url http://localhost:20128 \
--api-key "$OMNIROUTE_API_KEY"
Arxa planda CLI mergeOpenCodeConfigText() funksiyasını (src/shared/services/opencodeConfig.ts:104) çağırır, beləliklə mövcud opencode.json digər provayderlərini və şərhlərini qoruyur. OmniRoute qeydi atomik şəkildə əlavə edilir və ya əvəzlənir.
Nəticədə yaranan fayl (standart model kataloqu):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1",
"apiKey": "<açarınız>",
},
"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
Konfiqurasiyanı Node/TS vasitəsilə skriptləşdirdiyiniz zaman (CI konveyerləri, monorepolar, fərdi quraşdırıcı axınları) tövsiyə olunur.
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",
// İstəyə bağlı: OpenCode-a təqdim edilən model kataloqunu dəyişdirin
models: ["auto", "claude-opus-4-7", "gpt-5.5"],
modelLabels: { auto: "Auto-Combo" },
});
writeFileSync("opencode.json", JSON.stringify(config, null, 2));
Mövcud faylla məlumat itkisinə səbəb olmayan birləşdirmə üçün opencodeConfig.ts faylındakı mergeOpenCodeConfigText() funksiyasını təkrarlayın və ya CLI generatorunu çağırın.
Tam API üçün paketin README faylına baxın.
İcra mühitində əslində nə baş verir
Hər iki yol eyni provider.omniroute.npm: "@ai-sdk/openai-compatible" dəyərini yaradır. İcra zamanı OpenCode @ai-sdk/openai-compatible paketini (artıq OpenCode-un tranzitiv asılılığıdır) yükləyir və onu baseURL + apiKey ilə konfiqurasiya edir. Bundan sonra:
OpenCode istifadəçi interfeysi/agenti
→ @ai-sdk/openai-compatible
→ HTTP POST {baseURL}/chat/completions (OmniRoute OpenAI interfeysi)
→ OmniRoute /v1/chat/completions emalçısı (open-sse/handlers/chatCore.ts)
→ kombinasiya marşrutlaşdırması / Auto-Combo / icraçı
→ yuxarı axın provayderi
Plagin heç vaxt HTTP-yə toxunmur. O, yalnız konfiqurasiya yaradır.
Model kataloqunun standart dəyərləri
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;
Bunu models: [...] vasitəsilə əvəz edə bilərsiniz. Tövsiyə olunan əlavələr:
"auto"— OmniRoute-un sıfır konfiqurasiyalı Auto-Combo yönləndiricisini əlçatan edir. Kataloqu sərt şəkildə kodlaşdırmadan OpenCode-a «mövcud olan ən yaxşı modeli» seçməyə imkan verir."<combo-name>"— idarəetmə panelində müəyyən etdiyiniz istənilən kombinasiya; OmniRoute onu şəffaf şəkildə müəyyənləşdirir.
URL-in normallaşdırılması
Köməkçi hər iki formanı qəbul edir və nəticədə yalnız bir /v1 yaradır:
| Giriş | Çıxış (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 təkrarlanmanın aradan qaldırılması köhnə konfiqurasiyalarda rast gəlinən ən geniş yayılmış nasazlıqdır. Əgər v3.8.0-dan əvvəl yaradılmış və /v1/v1/... ünvanına yönələn opencode.json faylınız varsa, generatoru yenidən işə salın və ya createOmniRouteProvider funksiyasını təkrar çağırın.
Autentifikasiya rejimləri
| OmniRoute ayarı | Tövsiyə olunan apiKey dəyəri |
|---|---|
REQUIRE_API_KEY=false (lokal üçün standart) |
sk_omniroute (hərfi mənada yer tutucu) |
REQUIRE_API_KEY=true |
İdarəetmə paneli → API Keys bölməsindən real istifadəçi açarı. |
x-api-key + anthropic-version göndərən Anthropic üslublu klientlər üçün OmniRoute-un extractApiKey funksiyası x-api-key daxilindəki açarı da nəzərə alır. OpenCode, OpenAI interfeysindən istifadə etdiyinə görə həmişə Authorization: Bearer ${apiKey} göndərəcək — burada Anthropic-ə xas xüsusi hal tətbiq edilmir.
Problemlərin aradan qaldırılması
| Əlamət | Səbəb | Həll |
|---|---|---|
URL-də /v1/v1/ olan hər sorğuda 404 |
/v1 sonluğunu iki dəfə əlavə edən v3.8-dən əvvəlki plaqindən qalmış konfiqurasiya. |
1-ci və ya 2-ci üsul vasitəsilə yenidən yaradın. |
401 Invalid API key |
OmniRoute-da REQUIRE_API_KEY=true təyin edilib və açar tanınmır. |
Açarı idarəetmə panelində yaradın və ya REQUIRE_API_KEY=false təyin edib (yalnız lokal olaraq) sk_omniroute istifadə edin. |
| OpenCode interfeysində model siyahısı boşdur | 4 standart modelin hamısı OmniRoute-un provayder görünüşündə gizlədilib. | Aktivləşdirdiyiniz modelləri göstərmək üçün models: ["auto", ...] ötürün. |
OpenCode 500 və cannot read property 'models' |
Köhnə OpenCode (< 0.1.x) daxili models parametrini qəbul etmirdi. |
OpenCode-u v1 sxeminə (opencode.ai/config.json) uyğun versiyaya təkmilləşdirin. |
Həmçinin baxın
- API arayışı — OmniRoute REST interfeysinin tam təsviri
- Auto-Combo —
model: "auto"ifadəsinin mənası @omniroute/opencode-providerREADME- Mənbə:
src/shared/services/opencodeConfig.ts,src/lib/cli-helper/config-generator/opencode.ts,@omniroute/opencode-provider/src/index.ts