Files
OmniRoute/docs/i18n/ur/docs/frameworks/OPENCODE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* 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.
2026-09-18 13:16:46 -03:00

13 KiB
Raw Blame History

OpenCode Integration (اردو)

🌐 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 · 🇹🇷 tr · 🇺🇦 uk-UA · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


حیثیت: عمومی طور پر دستیاب۔ مخاطبین: وہ آپریٹرز جو OpenCode کو OmniRoute کی تعیناتی سے مربوط کر رہے ہیں۔ حتمی ماخذ (کنفیگ اسکیما): src/shared/services/opencodeConfig.ts حتمی ماخذ (npm پیکیج): @omniroute/opencode-provider/ (شائع کیے جانے کے قابل workspace)

OpenCode ایک ایجنٹ پر مبنی CLI/desktop AI کلائنٹ ہے۔ یہ اپنا provider catalog ~/.config/opencode/opencode.json (یا opencode.jsonc) سے پڑھتا ہے اور https://opencode.ai/config.json پر موجود اسکیما کی پیروی کرتا ہے۔ OmniRoute خود کو OpenCode کے سامنے ان providers میں سے ایک کے طور پر پیش کرتا ہے — ہر درخواست OmniRoute کے معیاری OpenAI-compatible /v1 انٹرفیس سے گزرتی ہے، اس لیے OpenCode خودکار طور پر Auto-Combo routing، circuit breakers، key policies، observability وغیرہ سے فائدہ اٹھاتا ہے۔

انضمام کے دو معاونت یافتہ طریقے ہیں۔ کسی ایک کو منتخب کریں — دونوں ایک جیسا کنفیگ تیار کرتے ہیں۔


طریقہ 1 — CLI generator (npm install کے بغیر)

آخری صارفین کے لیے تجویز کردہ۔ OmniRoute کے ساتھ شامل ہوتا ہے۔ opencode.json کو اسی جگہ تحریر کرتا ہے۔

# OmniRoute انسٹال کرنے کے بعد (npm i -g @omniroute/cli یا local clone)
omniroute config opencode \
  --base-url http://localhost:20128 \
  --api-key "$OMNIROUTE_API_KEY"

پسِ پردہ CLI، mergeOpenCodeConfigText() (src/shared/services/opencodeConfig.ts:104) کو کال کرتا ہے، لہٰذا موجودہ opencode.json اپنے دیگر providers اور comments برقرار رکھتا ہے۔ OmniRoute entry کو یک جوہری انداز میں شامل/تبدیل کیا جاتا ہے۔

نتیجے میں بننے والی فائل (ڈیفالٹ model catalog):

{
  "$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 pipelines، monorepos، حسبِ ضرورت installer flows)۔

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 کے سامنے پیش کیے جانے والے model catalog کو override کریں
  models: ["auto", "claude-opus-4-7", "gpt-5.5"],
  modelLabels: { auto: "Auto-Combo" },
});

writeFileSync("opencode.json", JSON.stringify(config, null, 2));

موجودہ فائل کے ساتھ غیر تباہ کن merge کے لیے، opencodeConfig.ts سے mergeOpenCodeConfigText() کو نقل کریں یا CLI generator کو کال کریں۔

مکمل API کے لیے پیکیج README دیکھیں۔


runtime درحقیقت کیا کرتا ہے

دونوں طریقے ایک ہی provider.omniroute.npm: "@ai-sdk/openai-compatible" تیار کرتے ہیں۔ runtime پر، OpenCode، @ai-sdk/openai-compatible کو لوڈ کرتا ہے (جو پہلے ہی OpenCode کی ایک transitive dependency ہے) اور اسے baseURL + apiKey کے ساتھ کنفیگر کرتا ہے۔ اس کے بعد:

OpenCode UI/agent
   → @ai-sdk/openai-compatible
      → HTTP POST {baseURL}/chat/completions          (OmniRoute کا OpenAI انٹرفیس)
         → OmniRoute /v1/chat/completions handler     (open-sse/handlers/chatCore.ts)
            → combo routing / Auto-Combo / executor
               → upstream provider

plugin کبھی بھی HTTP سے براہِ راست تعامل نہیں کرتا۔ یہ صرف configuration خارج کرتا ہے۔


ماڈل کیٹلاگ کی طے شدہ اقدار

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 کلید۔

Anthropic طرز کے ایسے کلائنٹس کے لیے جو x-api-key + anthropic-version بھیجتے ہیں، 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) کی پیروی کرتا ہو۔

مزید دیکھیں