* 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.
16 KiB
OpenCode Integration (हिन्दी)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇭🇷 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
स्थिति: सामान्य रूप से उपलब्ध। लक्षित पाठक: OmniRoute परिनियोजन से OpenCode को जोड़ने वाले ऑपरेटर। प्रामाणिक स्रोत (कॉन्फ़िग स्कीमा):
src/shared/services/opencodeConfig.tsप्रामाणिक स्रोत (npm पैकेज):@omniroute/opencode-provider/(प्रकाशित किया जा सकने वाला वर्कस्पेस)
OpenCode एक एजेंटिक CLI/डेस्कटॉप AI क्लाइंट है। यह अपनी प्रोवाइडर कैटलॉग को ~/.config/opencode/opencode.json (या opencode.jsonc) से पढ़ता है और https://opencode.ai/config.json पर मौजूद स्कीमा का पालन करता है। OmniRoute स्वयं को OpenCode के सामने उन प्रोवाइडरों में से एक के रूप में प्रस्तुत करता है — प्रत्येक अनुरोध OmniRoute के मानक OpenAI-संगत /v1 इंटरफ़ेस से होकर गुजरता है, इसलिए OpenCode को Auto-Combo रूटिंग, सर्किट ब्रेकर, कुंजी नीतियों, ऑब्ज़र्वेबिलिटी आदि का लाभ स्वतः मिलता है।
दो समर्थित एकीकरण पथ उपलब्ध हैं। इनमें से एक चुनें — दोनों समान कॉन्फ़िग उत्पन्न करते हैं।
पथ 1 — CLI जनरेटर (npm इंस्टॉल की आवश्यकता नहीं)
अंतिम उपयोगकर्ताओं के लिए अनुशंसित। OmniRoute के साथ आता है। मौजूदा स्थान पर opencode.json लिखता है।
# OmniRoute इंस्टॉल करने के बाद (npm i -g @omniroute/cli या लोकल क्लोन)
omniroute config opencode \
--base-url http://localhost:20128 \
--api-key "$OMNIROUTE_API_KEY"
आंतरिक रूप से CLI, mergeOpenCodeConfigText() (src/shared/services/opencodeConfig.ts:104) को कॉल करता है, इसलिए मौजूदा opencode.json अपने अन्य प्रोवाइडरों और टिप्पणियों को बनाए रखता है। OmniRoute प्रविष्टि को परमाण्विक रूप से जोड़ा/बदला जाता है।
परिणामी फ़ाइल (डिफ़ॉल्ट मॉडल कैटलॉग):
{
"$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" },
},
},
},
}
पथ 2 — npm पैकेज @omniroute/opencode-provider
जब आप Node/TS से कॉन्फ़िग स्क्रिप्ट कर रहे हों (CI पाइपलाइन, मोनोरेपो, कस्टम इंस्टॉलर फ़्लो), तब यह अनुशंसित है।
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",
// वैकल्पिक: OpenCode को उपलब्ध कराई गई मॉडल कैटलॉग को ओवरराइड करें
models: ["auto", "claude-opus-4-7", "gpt-5.5"],
modelLabels: { auto: "Auto-Combo" },
});
writeFileSync("opencode.json", JSON.stringify(config, null, 2));
किसी मौजूदा फ़ाइल के साथ गैर-विनाशकारी मर्ज के लिए, opencodeConfig.ts से mergeOpenCodeConfigText() को दोहराएँ या CLI जनरेटर को कॉल करें।
संपूर्ण API के लिए पैकेज README देखें।
रनटाइम वास्तव में क्या करता है
दोनों पथ समान provider.omniroute.npm: "@ai-sdk/openai-compatible" उत्पन्न करते हैं। रनटाइम पर, OpenCode @ai-sdk/openai-compatible (जो पहले से ही OpenCode की एक ट्रांज़िटिव डिपेंडेंसी है) को लोड करता है और इसे baseURL + apiKey के साथ कॉन्फ़िगर करता है। वहाँ से:
OpenCode UI/एजेंट
→ @ai-sdk/openai-compatible
→ HTTP POST {baseURL}/chat/completions (OmniRoute OpenAI इंटरफ़ेस)
→ OmniRoute /v1/chat/completions हैंडलर (open-sse/handlers/chatCore.ts)
→ कॉम्बो रूटिंग / Auto-Combo / एक्ज़ीक्यूटर
→ अपस्ट्रीम प्रोवाइडर
प्लगइन कभी भी HTTP को स्पर्श नहीं करता। यह केवल कॉन्फ़िगरेशन उत्पन्न करता है।
मॉडल कैटलॉग के डिफ़ॉल्ट
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: [...] के माध्यम से इन्हें ओवरराइड कर सकते हैं। अनुशंसित अतिरिक्त विकल्प:
"auto"— OmniRoute के Auto-Combo शून्य-कॉन्फ़िगरेशन राउटर को उपलब्ध कराता है। इससे OpenCode कैटलॉग को हार्ड-कोड किए बिना "सर्वोत्तम उपलब्ध मॉडल" चुन सकता है।"<combo-name>"— डैशबोर्ड में आपके द्वारा परिभाषित कोई भी कॉम्बो; OmniRoute इसे पारदर्शी रूप से रिज़ॉल्व करता है।
URL सामान्यीकरण
हेल्पर दोनों प्रारूप स्वीकार करता है और ठीक एक /v1 उत्पन्न करता है:
| इनपुट | आउटपुट (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 |
यह डिडुप्लिकेशन पुराने कॉन्फ़िगरेशन में दिखाई देने वाली सबसे आम खराबी है। यदि आपके पास v3.8.0 से पहले का कोई opencode.json है जो /v1/v1/... की ओर संकेत करता है, तो जनरेटर को फिर से चलाएँ या createOmniRouteProvider को दोबारा कॉल करें।
प्रमाणीकरण मोड
| OmniRoute सेटिंग | अनुशंसित apiKey मान |
|---|---|
REQUIRE_API_KEY=false (स्थानीय के लिए डिफ़ॉल्ट) |
sk_omniroute (शाब्दिक प्लेसहोल्डर) |
REQUIRE_API_KEY=true |
डैशबोर्ड → API Keys से प्राप्त वास्तविक प्रति-उपयोगकर्ता API कुंजी। |
x-api-key + anthropic-version भेजने वाले Anthropic-शैली के क्लाइंट के लिए, OmniRoute का extractApiKey, x-api-key से मिली कुंजी को भी स्वीकार करता है। OpenCode, OpenAI इंटरफ़ेस का उपयोग करता है, इसलिए यह हमेशा Authorization: Bearer ${apiKey} भेजेगा — यहाँ Anthropic का कोई विशेष मामला लागू नहीं होता।
समस्या निवारण
| लक्षण | कारण | समाधान |
|---|---|---|
/v1/v1/ वाले URL के प्रत्येक अनुरोध पर 404 |
v3.8 से पहले के प्लगइन का पुराना कॉन्फ़िगरेशन, जिसने /v1 प्रत्यय दो बार जोड़ा था। |
पथ 1 या 2 के माध्यम से पुनः जनरेट करें। |
401 Invalid API key |
OmniRoute में REQUIRE_API_KEY=true है और कुंजी अज्ञात है। |
डैशबोर्ड में कुंजी बनाएँ, या REQUIRE_API_KEY=false (केवल स्थानीय) सेट करें और sk_omniroute का उपयोग करें। |
| OpenCode UI में मॉडल सूची खाली है | सभी 4 डिफ़ॉल्ट मॉडल OmniRoute की प्रदाता दृश्यता में छिपे हुए हैं। | आपके द्वारा सक्षम किए गए मॉडल दिखाने के लिए models: ["auto", ...] पास करें। |
cannot read property 'models' के साथ OpenCode 500 |
पुराने OpenCode (< 0.1.x) में इनलाइन models स्वीकार नहीं किए जाते थे। |
OpenCode को ऐसे संस्करण में अपग्रेड करें जो v1 स्कीमा (opencode.ai/config.json) का पालन करता हो। |
यह भी देखें
- API संदर्भ — OmniRoute REST का संपूर्ण इंटरफ़ेस
- Auto-Combo —
model: "auto"का अर्थ @omniroute/opencode-providerREADME- स्रोत:
src/shared/services/opencodeConfig.ts,src/lib/cli-helper/config-generator/opencode.ts,@omniroute/opencode-provider/src/index.ts