* 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.
99 KiB
OmniRoute Architecture (اردو)
🌐 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
🌐 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
آخری بار اپ ڈیٹ کیا گیا: 2026-06-28
انتظامی خلاصہ
OmniRoute ایک مقامی AI روٹنگ گیٹ وے اور ڈیش بورڈ ہے جو Next.js پر بنایا گیا ہے۔
یہ ایک واحد OpenAI-مطابق اینڈ پوائنٹ (/v1/*) فراہم کرتا ہے اور ترجمے، متبادل راستے، ٹوکن کی تجدید، اور استعمال کی ٹریکنگ کے ساتھ ٹریفک کو متعدد اپ اسٹریم فراہم کنندگان میں روٹ کرتا ہے۔
بنیادی صلاحیتیں:
- CLI/ٹولز کے لیے OpenAI-مطابق API سطح (355 فراہم کنندگان، 108 ایگزیکیوٹرز)
- فراہم کنندگان کے فارمیٹس کے درمیان درخواست/جواب کا ترجمہ
- ماڈل کومبو کا متبادل راستہ (متعدد ماڈلز کی ترتیب)
compositeTiersکے لحاظ سے رن ٹائم ترتیب کے ساتھ منظم کومبو مراحل (provider + model + connection)- اکاؤنٹ کی سطح پر متبادل راستہ (ہر فراہم کنندہ کے لیے متعدد اکاؤنٹس)
- مرکزی چیٹ پاتھ میں کوٹا کی پیشگی جانچ اور کوٹا سے آگاہ P2C اکاؤنٹ کا انتخاب
- OAuth + API کلید کے ذریعے فراہم کنندہ کنکشن کا نظم (22 OAuth فراہم کنندہ ماڈیولز)
/v1/embeddingsکے ذریعے ایمبیڈنگز کی تخلیق (18 فراہم کنندگان)/v1/images/generationsکے ذریعے تصاویر کی تخلیق (10+ فراہم کنندگان، 20+ ماڈلز)/v1/audio/transcriptionsکے ذریعے آڈیو کی نقل نویسی (18 فراہم کنندگان)/v1/audio/speechکے ذریعے متن سے آواز کی تخلیق (24 بلٹ اِن فراہم کنندگان)/v1/videos/generationsکے ذریعے ویڈیو کی تخلیق (ComfyUI + SD WebUI)/v1/music/generationsکے ذریعے موسیقی کی تخلیق (ComfyUI)/v1/searchکے ذریعے ویب تلاش (20 فراہم کنندگان)/v1/moderationsکے ذریعے مواد کی جانچ/v1/rerankکے ذریعے دوبارہ درجہ بندی- استدلالی ماڈلز کے لیے تھنک ٹیگ کی پارسنگ (
<think>...</think>) - سخت OpenAI SDK مطابقت کے لیے جوابات کی صفائی
- مختلف فراہم کنندگان کے درمیان مطابقت کے لیے رول نارملائزیشن (developer→system، system→user)
- منظم آؤٹ پٹ کی تبدیلی (json_schema → Gemini responseSchema)
- فراہم کنندگان، کلیدوں، عرفی ناموں، کومبوز، ترتیبات، اور قیمتوں کے لیے مقامی مستقل ذخیرہ (122 DB ماڈیولز)
- استعمال/لاگت کی ٹریکنگ اور درخواستوں کی لاگنگ
- متعدد ڈیوائسز/حالت کی ہم وقت سازی کے لیے اختیاری کلاؤڈ سنک
- API رسائی کے کنٹرول کے لیے IP اجازت فہرست/بلاک فہرست
- تھنکنگ بجٹ کا نظم (passthrough/auto/custom/adaptive)
- عالمی سسٹم پرامپٹ کا اندراج
- سیشن ٹریکنگ اور فنگر پرنٹنگ
- فراہم کنندہ سے مخصوص پروفائلز کے ساتھ فی اکاؤنٹ بہتر شرح کی تحدید
- فراہم کنندہ کی لچک کے لیے سرکٹ بریکر پیٹرن
- میوٹیکس لاکنگ کے ساتھ تھنڈرنگ ہرڈ سے تحفظ
- دستخط پر مبنی درخواستوں کی نقل ختم کرنے والا کیش
- ڈومین لیئر: لاگت کے قواعد، متبادل راستے کی پالیسی، لاک آؤٹ پالیسی
- Context Relay: اکاؤنٹ کی تبدیلی کے دوران تسلسل کے لیے سیشن ہینڈ آف کے خلاصے
- ڈومین اسٹیٹ کا مستقل ذخیرہ (متبادل راستوں، بجٹس، لاک آؤٹس، اور سرکٹ بریکرز کے لیے SQLite رائٹ تھرو کیش)
- درخواستوں کی مرکزی جانچ کے لیے پالیسی انجن (لاک آؤٹ → بجٹ → متبادل راستہ)
- p50/p95/p99 تاخیر کی مجموعی پیمائش کے ساتھ درخواست ٹیلی میٹری
combo_execution_key/combo_step_idکے ذریعے کومبو ٹارگٹ ٹیلی میٹری اور کومبو ٹارگٹ کی تاریخی صحت- ابتدا سے انتہا تک ٹریسنگ کے لیے کوریلیشن ID (X-Request-Id)
- فی API کلید آپٹ آؤٹ کے ساتھ تعمیل کی آڈٹ لاگنگ
- LLM معیار کی یقین دہانی کے لیے ایویل فریم ورک
- فراہم کنندہ کے سرکٹ بریکر کی حقیقی وقت کی حالت کے ساتھ صحت کا ڈیش بورڈ
- MCP Server (110 ٹولز)، 3 ٹرانسپورٹس کے ساتھ (stdio/SSE/Streamable HTTP)
- A2A Server (JSON-RPC 2.0 + SSE)، مہارتوں اور ٹاسک لائف سائیکل کے ساتھ
- میموری سسٹم (اخذ، اندراج، بازیافت، خلاصہ سازی)
- مہارتوں کا نظام (رجسٹری، ایگزیکیوٹر، سینڈ باکس، بلٹ اِن مہارتیں)
- سرٹیفکیٹ کے نظم اور DNS ہینڈلنگ کے ساتھ MITM پراکسی
- پرامپٹ انجیکشن گارڈ مڈل ویئر
- Caveman، RTK، اسٹیک شدہ پائپ لائنز، کمپریشن کومبوز، لینگویج پیکس، اور تجزیات کے ساتھ پرامپٹ کمپریشن پائپ لائن
- ACP (Agent Communication Protocol) رجسٹری
- ماڈیولر OAuth فراہم کنندگان (
src/lib/oauth/providers/کے تحت 22 انفرادی ماڈیولز) - اَن انسٹال/مکمل اَن انسٹال اسکرپٹس
- OAuth ماحول کی مرمت کی کارروائی
- OpenAI-مطابق WS کلائنٹس کے لیے WebSocket برج (
/v1/ws) - سنک ٹوکن کا نظم (اجرا/تنسیخ، ETag-ورژن شدہ کنفیگریشن بنڈل ڈاؤن لوڈ)
- GLM Thinking (
glmt) بطور فرسٹ کلاس فراہم کنندہ پری سیٹ - ہائبرڈ ٹوکن گنتی (فراہم کنندہ کی جانب سے
/messages/count_tokens، تخمینے کے متبادل کے ساتھ) - ماڈل عرفی ناموں کی خودکار ابتدائی تیاری (اسٹارٹ اپ پر 30+ کراس پراکسی ڈائیلیکٹ نارملائزیشنز)
- SSRF گارڈ، نجی URLs کی بلاکنگ، اور قابل ترتیب دوبارہ کوشش کے ساتھ محفوظ آؤٹ باؤنڈ فیچ
- قابل ترتیب
requestRetryاورmaxRetryIntervalSecکے ساتھ کول ڈاؤن سے آگاہ چیٹ کی دوبارہ کوششیں - اسٹارٹ اپ پر Zod کے ذریعے رن ٹائم ماحول کی توثیق
- صفحہ بندی، فراہم کنندہ کے CRUD واقعات، اور SSRF کے باعث بلاک شدہ توثیق کی لاگنگ کے ساتھ تعمیل آڈٹ v2
بنیادی رن ٹائم ماڈل:
src/app/api/*کے تحت Next.js ایپ روٹس ڈیش بورڈ APIs اور مطابقتی APIs دونوں نافذ کرتے ہیںsrc/sse/*+open-sse/*میں موجود مشترکہ SSE/روٹنگ کور فراہم کنندہ کے نفاذ، ترجمے، اسٹریمنگ، متبادل راستے، اور استعمال کو سنبھالتا ہے
حوالہ جاتی خاکے
v3.8.0 پلیٹ فارم کے لیے مستند، ورژن کنٹرول شدہ Mermaid ماخذ
docs/diagrams/ میں موجود ہیں۔ رہنمائی کے لیے ان میں سے دو ذیل میں دوبارہ پیش کیے گئے ہیں؛
باقی خاکوں کے روابط ان کی ڈومین سے مخصوص رہنما دستاویزات میں موجود ہیں۔
ماخذ: diagrams/resilience-3layers.mmd — اس کا ربط RESILIENCE_GUIDE.md اور
CLAUDE.mdکے لچک پذیری کے حوالے میں بھی موجود ہے۔
دائرۂ کار اور حدود
دائرۂ کار میں شامل
- مقامی گیٹ وے رن ٹائم
- ڈیش بورڈ مینجمنٹ APIs
- فراہم کنندہ کی توثیق اور ٹوکن ریفریش
- درخواست کی تبدیلی اور SSE اسٹریمنگ
- مقامی حالت + استعمال کی مستقل ذخیرہ کاری
- اختیاری کلاؤڈ سنک آرکیسٹریشن
دائرۂ کار سے خارج
NEXT_PUBLIC_CLOUD_URLکے پسِ پشت کلاؤڈ سروس کا نفاذ- مقامی پراسیس سے باہر فراہم کنندہ کا SLA/کنٹرول پلین
- خود بیرونی CLI بائنریز (Claude CLI، Codex CLI، وغیرہ)
ڈیش بورڈ کی سطح (موجودہ)
src/app/(dashboard)/dashboard/ کے تحت مرکزی صفحات:
/dashboard— فوری آغاز + فراہم کنندگان کا جائزہ/dashboard/endpoint— اینڈ پوائنٹ پراکسی + MCP + A2A + API اینڈ پوائنٹ ٹیبز/dashboard/providers— فراہم کنندگان کے کنکشنز اور اسناد/dashboard/combos— کومبو حکمتِ عملیاں، ٹیمپلیٹس، مرحلہ وار بلڈر، ماڈل روٹنگ کے قواعد، دستی طور پر مستقل محفوظ کردہ ترتیب/dashboard/auto-combo— Auto Combo Engine: اسکورنگ کے اوزان، موڈ پیکس، ورچوئل فیکٹری پری سیٹس، ٹیلی میٹری/dashboard/costs— لاگت کی مجموعہ بندی اور قیمتوں کی مرئیت/dashboard/analytics— استعمال کے تجزیات، جائزے، کومبو اہداف کی صحت/dashboard/limits— کوٹا/شرح کے کنٹرولز/dashboard/cli-tools— CLI آن بورڈنگ، رن ٹائم کی شناخت، کنفیگریشن کی تخلیق/dashboard/agents— شناخت شدہ ACP ایجنٹس + حسبِ ضرورت ایجنٹ رجسٹریشن/dashboard/cloud-agents— کلاؤڈ پر ہوسٹ کردہ ایجنٹ ٹاسکس (Codex Cloud، Devin، Jules) اور ٹاسک لائف سائیکل/dashboard/skills— A2A اسکل رجسٹری، سینڈ باکس عمل درآمد، بلٹ اِن اسکل کیٹلاگ/dashboard/memory— مستقل مکالماتی میموری کا معائنہ اور بازیافت/dashboard/webhooks— آؤٹ باؤنڈ ویب ہُک سبسکرپشنز، سیکرٹ روٹیشن، دوبارہ کوشش کے اعداد و شمار/dashboard/batch— بیچ جاب جمع کروانا اور پیش رفت/dashboard/cache— ریڈ تھرو اور ریزننگ کیش کے اعداد و شمار، اخراج کے کنٹرولز/dashboard/playground— کسی بھی کنفیگر کردہ کومبو/ماڈل کے ساتھ انٹرایکٹو چیٹ پلے گراؤنڈ/dashboard/changelog— ایپ کے اندر چینج لاگ ویور (CHANGELOG.mdکو رینڈر کرتا ہے)/dashboard/system— رن ٹائم تشخیص، ورژن کی معلومات، ماحول کی توثیق کی سطح/dashboard/onboarding— نئی تنصیبات کے لیے پہلی بار سیٹ اپ وزرڈ/dashboard/media— تصویر/ویڈیو/موسیقی کا پلے گراؤنڈ/dashboard/search-tools— تلاش کے فراہم کنندگان کی جانچ اور تاریخچہ/dashboard/health— اپ ٹائم، سرکٹ بریکرز، شرح کی حدود، کوٹا کی نگرانی والے سیشنز/dashboard/logs— درخواست/پراکسی/آڈٹ/کنسول لاگز/dashboard/settings— سسٹم سیٹنگز کے ٹیبز (عمومی، روٹنگ، کومبو ڈیفالٹس، وغیرہ)/dashboard/context/caveman— Caveman کمپریشن کے قواعد، لینگویج پیکس، پیش منظر، اور آؤٹ پٹ موڈ/dashboard/context/rtk— RTK کمانڈ آؤٹ پٹ فلٹرز، پیش منظر، اور رن ٹائم حفاظتی سیٹنگز/dashboard/context/combos— روٹنگ کومبوز کو تفویض کردہ نام زد کمپریشن پائپ لائنز/dashboard/translator— مترجم کا معائنہ اور درخواست کے فارمیٹ کی تبدیلی کا پیش منظر/dashboard/audit— صفحہ بندی اور ساختی میٹا ڈیٹا کے ساتھ تعمیل آڈٹ لاگ براؤزر/dashboard/usage—usage_historyسے منسلک فی درخواست استعمال کا براؤزر/dashboard/compression— کمپریشن کے تجزیات، اعداد و شمار، اور پائپ لائن کی تفویض/dashboard/api-manager— API کلید کا لائف سائیکل اور ماڈل کی اجازتیں
اعلیٰ سطحی سسٹم کا سیاق و سباق
flowchart LR
subgraph Clients[Developer Clients]
C1[Claude Code]
C2[Codex CLI]
C3[OpenClaw / Droid / Cline / Continue / Roo]
C4[Custom OpenAI-compatible clients]
BROWSER[Browser Dashboard]
end
subgraph Router[OmniRoute Local Process]
API[V1 Compatibility API\n/v1/*]
DASH[Dashboard + Management API\n/api/*]
CORE[SSE + Translation Core\nopen-sse + src/sse]
DB[(storage.sqlite)]
UDB[(usage tables + log artifacts)]
end
subgraph Upstreams[Upstream Providers]
P1[OAuth Providers\nClaude/Codex/Gemini/Qoder/GitHub/Kiro/Cursor/Antigravity]
P2[API Key Providers\nOpenAI/Anthropic/OpenRouter/GLM/Kimi/MiniMax\nDeepSeek/Groq/xAI/Mistral/Perplexity\nTogether/Fireworks/Cerebras/Cohere/NVIDIA]
P3[Compatible Nodes\nOpenAI-compatible / Anthropic-compatible]
end
subgraph Cloud[Optional Cloud Sync]
CLOUD[Cloud Sync Endpoint\nNEXT_PUBLIC_CLOUD_URL]
end
C1 --> API
C2 --> API
C3 --> API
C4 --> API
BROWSER --> DASH
API --> CORE
DASH --> DB
CORE --> DB
CORE --> UDB
CORE --> P1
CORE --> P2
CORE --> P3
DASH --> CLOUD
بنیادی رن ٹائم اجزاء
1) API اور روٹنگ کی تہہ (Next.js ایپ روٹس)
مرکزی ڈائریکٹریاں:
- مطابقتی APIs کے لیے
src/app/api/v1/*اورsrc/app/api/v1beta/* - انتظامی/کنفیگریشن APIs کے لیے
src/app/api/* next.config.mjsمیں موجود Next ری رائٹس،/v1/*کو/api/v1/*سے میپ کرتی ہیں
اہم مطابقتی روٹس:
src/app/api/v1/chat/completions/route.tssrc/app/api/v1/messages/route.tssrc/app/api/v1/responses/route.tssrc/app/api/v1/models/route.ts— اس میںcustom: trueوالے کسٹم ماڈلز شامل ہیںsrc/app/api/v1/embeddings/route.ts— ایمبیڈنگ جنریشن (6 پرووائیڈرز)src/app/api/v1/images/generations/route.ts— امیج جنریشن (4+ پرووائیڈرز، بشمول Antigravity/Nebius)src/app/api/v1/messages/count_tokens/route.tssrc/app/api/v1/providers/[provider]/chat/completions/route.ts— ہر پرووائیڈر کے لیے مختص چیٹsrc/app/api/v1/providers/[provider]/embeddings/route.ts— ہر پرووائیڈر کے لیے مختص ایمبیڈنگزsrc/app/api/v1/providers/[provider]/images/generations/route.ts— ہر پرووائیڈر کے لیے مختص تصاویرsrc/app/api/v1beta/models/route.tssrc/app/api/v1beta/models/[...path]/route.ts
انتظامی ڈومینز:
- توثیق/ترتیبات:
src/app/api/auth/*،src/app/api/settings/* - پرووائیڈرز/کنکشنز:
src/app/api/providers* - پرووائیڈر نوڈز:
src/app/api/provider-nodes* - کسٹم ماڈلز:
src/app/api/provider-models(GET/POST/DELETE) - ماڈل کیٹلاگ:
src/app/api/models/route.ts(GET) - پراکسی کنفیگریشن:
src/app/api/settings/proxy(GET/PUT/DELETE) +src/app/api/settings/proxy/test(POST) - OAuth:
src/app/api/oauth/* - کیز/عرف/کومبوز/قیمت گذاری:
src/app/api/keys*،src/app/api/models/alias،src/app/api/combos*،src/app/api/pricing - استعمال:
src/app/api/usage/* - سنک/کلاؤڈ:
src/app/api/sync/*،src/app/api/cloud/* - CLI ٹولنگ معاونین:
src/app/api/cli-tools/* - IP فلٹر:
src/app/api/settings/ip-filter(GET/PUT) - تھنکنگ بجٹ:
src/app/api/settings/thinking-budget(GET/PUT) - سسٹم پرامپٹ:
src/app/api/settings/system-prompt(GET/PUT) - کمپریشن:
src/app/api/settings/compression،src/app/api/compression/*، اورsrc/app/api/context/* - سیشنز:
src/app/api/sessions(GET) - ریٹ لمٹس:
src/app/api/rate-limits(GET) - لچک پذیری:
src/app/api/resilience(GET/PATCH) — ریکوئسٹ قطار، کنکشن کول ڈاؤن، پرووائیڈر بریکر، ویٹ فار کول ڈاؤن کنفیگریشن - لچک پذیری ری سیٹ:
src/app/api/resilience/reset(POST) — پرووائیڈر بریکرز کو ری سیٹ کریں - کیش کے اعدادوشمار:
src/app/api/cache/stats(GET/DELETE) - ٹیلی میٹری:
src/app/api/telemetry/summary(GET) - بجٹ:
src/app/api/usage/budget(GET/POST) - فال بیک چینز:
src/app/api/fallback/chains(GET/POST/DELETE) - تعمیلی آڈٹ:
src/app/api/compliance/audit-log(GET، پیجینیشن + منظم میٹا ڈیٹا کے ساتھ) - ایویلز:
src/app/api/evals(GET/POST)،src/app/api/evals/[suiteId](GET) - پالیسیاں:
src/app/api/policies(GET/POST) - سنک ٹوکنز:
src/app/api/sync/tokens(GET/POST)،src/app/api/sync/tokens/[id](GET/DELETE) - کنفیگریشن بنڈل:
src/app/api/sync/bundle(GET، ترتیبات/پرووائیڈرز/کومبوز/کیز کا ETag-ورژن شدہ اسنیپ شاٹ) - WebSocket:
src/app/api/v1/ws/route.ts— OpenAI سے مطابقت رکھنے والے WS کلائنٹس کے لیے اپ گریڈ ہینڈلر
2) SSE + ترجمے کا بنیادی نظام
مرکزی فلو کے ماڈیولز:
- انٹری:
src/sse/handlers/chat.ts - بنیادی آرکیسٹریشن:
open-sse/handlers/chatCore.ts - پرووائیڈر ایگزیکیوشن اڈاپٹرز:
open-sse/executors/* - فارمیٹ کی شناخت/پرووائیڈر کنفیگریشن:
open-sse/services/provider.ts - ماڈل پارس/ریزولو:
src/sse/services/model.ts،open-sse/services/model.ts - اکاؤنٹ فال بیک لاجک:
open-sse/services/accountFallback.ts - ترجمہ رجسٹری:
open-sse/translator/index.ts - اسٹریم ٹرانسفارمیشنز:
open-sse/utils/stream.ts،open-sse/utils/streamHandler.ts - استعمال کا اخراج/نارملائزیشن:
open-sse/utils/usageTracking.ts - تھنک ٹیگ پارسر:
open-sse/utils/thinkTagParser.ts - ایمبیڈنگ ہینڈلر:
open-sse/handlers/embeddings.ts - ایمبیڈنگ پرووائیڈر رجسٹری:
open-sse/config/embeddingRegistry.ts - امیج جنریشن ہینڈلر:
open-sse/handlers/imageGeneration.ts - امیج پرووائیڈر رجسٹری:
open-sse/config/imageRegistry.ts - رسپانس سینیٹائزیشن:
open-sse/handlers/responseSanitizer.ts - رول نارملائزیشن:
open-sse/services/roleNormalizer.ts
سروسز (کاروباری منطق):
- اکاؤنٹ کا انتخاب/اسکورنگ:
open-sse/services/accountSelector.ts - کانٹیکسٹ لائف سائیکل مینجمنٹ:
open-sse/services/contextManager.ts - IP فلٹر کا نفاذ:
open-sse/services/ipFilter.ts - سیشن ٹریکنگ:
open-sse/services/sessionManager.ts - ریکویسٹ ڈی ڈپلیکیشن:
open-sse/services/signatureCache.ts - سسٹم پرامپٹ انجیکشن:
open-sse/services/systemPrompt.ts - تھنکنگ بجٹ مینجمنٹ:
open-sse/services/thinkingBudget.ts - وائلڈ کارڈ ماڈل روٹنگ:
open-sse/services/wildcardRouter.ts - ریٹ لمٹ مینجمنٹ:
open-sse/services/rateLimitManager.ts - سرکٹ بریکر:
src/shared/utils/circuitBreaker.ts - کانٹیکسٹ ہینڈ آف:
open-sse/services/contextHandoff.ts— کانٹیکسٹ ریلے حکمتِ عملی کے لیے ہینڈ آف خلاصے کی تیاری اور انجیکشن - کمپریشن:
open-sse/services/compression/*— پرووائیڈر ترجمے سے پہلے فعال کمپریشن؛ اس میں Caveman قواعد، RTK فلٹرز، اسٹیک شدہ پائپ لائنز، کمپریشن امتزاج، اعدادوشمار اور توثیق شامل ہیں - Codex کوٹا فیچر:
open-sse/services/codexQuotaFetcher.ts— کانٹیکسٹ ریلے ہینڈ آف کے فیصلوں کے لیے Codex کوٹا حاصل کرتا ہے - کول ڈاؤن سے آگاہ ری ٹرائی:
src/sse/services/cooldownAwareRetry.ts— قابلِ ترتیبrequestRetry/maxRetryIntervalSecکے ساتھ فی ماڈل کول ڈاؤن ری ٹرائیز - محفوظ آؤٹ باؤنڈ فیچ:
src/shared/network/safeOutboundFetch.ts— SSRF تحفظ، نجی URL بلاکنگ، ری ٹرائی اور ٹائم آؤٹ کے ساتھ محفوظ پرووائیڈر/ماڈل فیچ - آؤٹ باؤنڈ URL گارڈ:
src/shared/network/outboundUrlGuard.ts— نجی/localhost CIDR رینجز کے مقابل پرووائیڈر URLs کی توثیق کرتا ہے - پرووائیڈر ریکویسٹ ڈیفالٹس:
open-sse/services/providerRequestDefaults.ts— پرووائیڈر سطح کیmaxTokens،temperature،thinkingBudgetTokensڈیفالٹ اقدار - GLM پرووائیڈر کانسٹنٹس:
open-sse/config/glmProvider.ts— مشترکہ GLM ماڈلز، کوٹا URLs، GLMT ٹائم آؤٹ/ڈیفالٹس - Antigravity اپ اسٹریم:
open-sse/config/antigravityUpstream.ts— بنیادی URL اور ڈسکوری پاتھ کانسٹنٹس - Codex کلائنٹ کانسٹنٹس:
open-sse/config/codexClient.ts— ورژن شدہ یوزر ایجنٹ اور کلائنٹ ورژن اقدار - ماڈل عرف سیڈ:
src/lib/modelAliasSeed.ts— آغاز پر 30+ کراس پراکسی ڈائلیکٹ عرف سیڈ کرتا ہے
ڈومین لیئر ماڈیولز:
- لاگت کے قواعد/بجٹس:
src/domain/costRules.ts - فال بیک پالیسی:
src/domain/fallbackPolicy.ts - کومبو ریزولور:
src/domain/comboResolver.ts - لاک آؤٹ پالیسی:
src/domain/lockoutPolicy.ts - پالیسی انجن:
src/domain/policyEngine.ts— مرکزی لاک آؤٹ → بجٹ → فال بیک جائزہ - ایرر کوڈز کیٹلاگ:
src/shared/constants/errorCodes.ts - ریکویسٹ ID:
src/shared/utils/requestId.ts - فیچ ٹائم آؤٹ:
src/shared/utils/fetchTimeout.ts - ریکویسٹ ٹیلی میٹری:
src/shared/utils/requestTelemetry.ts - کمپلائنس/آڈٹ:
src/lib/compliance/index.ts - ایویل رنر:
src/lib/evals/evalRunner.ts - ڈومین اسٹیٹ پرسسٹنس:
src/lib/db/domainState.ts— فال بیک چینز، بجٹس، لاگت کی ہسٹری، لاک آؤٹ اسٹیٹ اور سرکٹ بریکرز کے لیے SQLite CRUD
OAuth پرووائیڈر ماڈیولز (src/lib/oauth/providers/ کے تحت 22 انفرادی فائلیں):
- رجسٹری انڈیکس:
src/lib/oauth/providers/index.ts - انفرادی پرووائیڈرز:
agy.ts،antigravity.ts،claude.ts،cline.ts،codebuddy-cn.ts،codex.ts،cursor.ts،devin-desktop.ts،ghe-copilot.ts،github.ts،gitlab-duo.ts،grok-cli-oauth.ts،grok-cli.ts،kilocode.ts،kimi-coding.ts،kiro.ts،openference.ts،qoder.ts،trae.ts،xai-oauth.ts،zed-hosted.ts،zed.ts - ہلکا ریپر:
src/lib/oauth/providers.ts— انفرادی ماڈیولز سے دوبارہ ایکسپورٹ کرتا ہے
5) ایمبیڈڈ سروسز (v3.8.4)
OmniRoute مقامی طور پر چلنے والے AI ٹول پراسیسز کو انسٹال، زیرِ نگرانی، اور ان کی جانب روٹ کر سکتا ہے، جنہیں ایمبیڈڈ سروسز کہا جاتا ہے۔ پانچ سروسز فراہم کی جاتی ہیں: 9Router، CLIProxyAPI، Bifrost، Mux اور Dario۔
آرکیٹیکچر کی تہیں:
- UI (
/dashboard/providers/services) — دو ٹیبز پر مشتمل صفحہ، جس میں لائف سائیکل کنٹرولز، لائیو لاگ اسٹریمنگ، API کلید کا انتظام، اور (9Router کے لیے) ایک اندرونی ریورس پراکسی کے ذریعے ایمبیڈڈ نیٹو UI شامل ہیں۔ - API (
/api/services/{name}/*) — 9Router کے لیے 11 اینڈ پوائنٹس، CLIProxyAPI کے لیے 10، اور Bifrost / Mux / Dario میں سے ہر ایک کے لیے 8، جن سب کی درجہ بندی LOCAL_ONLY (سخت اصول #17) کے طور پر کی گئی ہے۔ ایک مشترکہGET /api/services/[name]/logsSSE اینڈ پوائنٹ دونوں سروسز کو فراہم کیا جاتا ہے۔ - سپروائزر (
src/lib/services/) — عمومیServiceSupervisorکلاسchild_process.spawnکو ریپ کرتی ہے، SSE لاگ اسٹریمنگ کے لیے 5 MB کا رِنگ بفر، ایک ہیلتھ پروب لوپ، ایک ایٹامک آپریشن لاک، اور SIGTERM→SIGKILL کے ذریعے تدریجی شٹ ڈاؤن برقرار رکھتی ہے۔bootstrap.tsپراسیس شروع ہوتے وقت تمام کنفیگر کردہ سروسز کو مربوط کرتی ہے۔ - پرووائیڈر/ایگزیکیوٹر (
open-sse/executors/ninerouter.ts) — 9Router کو ایک حقیقی پرووائیڈر کے طور پر پیش کیا جاتا ہے۔ ماڈلز کے ساتھ9router/{sub}/{model}سابقہ لگایا جاتا ہے اور انہیں ہر 5 منٹ بعد 9Router کے/v1/modelsاینڈ پوائنٹ سے ہم وقت کیا جاتا ہے۔
تفصیلی جائزہ: docs/frameworks/EMBEDDED-SERVICES.md
بڑے ذیلی نظام (v3.8.0)
A. آٹو کومبو انجن
آٹو کومبو کسی جامد کومبو تعریف پر انحصار کرنے کے بجائے،
درخواست کے وقت روٹنگ اہداف کو متحرک طور پر اسکور کرتا اور منتخب کرتا ہے۔ یہ auto/* ماڈل سابقہ فیملی کو تقویت دیتا ہے۔
- انجن کا نقطۂ آغاز:
open-sse/services/autoCombo/(autoComboEngine.ts,scoringEngine.ts,virtualFactory.ts,modePacks.ts) - ریزالور:
src/domain/comboResolver.ts(auto/سابقے کی خودکار شناخت) - ڈیش بورڈ:
/dashboard/auto-combo - ٹیلی میٹری:
auto_combo_decisionsSQLite ٹیبل
اہم صلاحیتیں:
- 19 روٹنگ حکمتِ عملیاں (ترجیح، وزنی، پہلے پُر کرنا، راؤنڈ رابن، P2C، بے ترتیب،
کم ترین استعمال، لاگت کے لحاظ سے بہتر، ری سیٹ سے باخبر، ری سیٹ ونڈو، اضافی گنجائش، سخت بے ترتیب،
auto، lkgp، سیاق کے لحاظ سے بہتر، سیاق ریلے، fusion، نیز ایک فال بیک راستہ) —
auto، v3.8.0 میں نمایاں اضافہ ہے؛
fusion(پینل فین آؤٹ + جج ترکیب،open-sse/services/fusion.ts) v3.8.36 میں نیا ہے۔ - 16 عوامل پر مبنی اسکورنگ: کوٹا، صحت، معکوس لاگت، معکوس تاخیر، کام سے مطابقت اور
مزید دس عوامل۔ عوامل اور ان کے ڈیفالٹ اوزان کی مستند جدول
docs/routing/AUTO-COMBO.mdمیں موجود ہے — اسے یہاں دوبارہ بیان کرنے سے اس کے متروک ہونے کا ایک دوسرا مقام بن جائے گا۔ - ورچوئل فیکٹری اس وقت عارضی کومبوز تشکیل دیتی ہے جب کوئی مماثل نام زد کومبو موجود نہ ہو، اور امیدواروں کو صحت مند فعال پرووائیڈر کنکشنز سے حاصل کرتی ہے۔
- آٹو سابقے:
auto/coding،auto/cheap،auto/fast،auto/offline،auto/smart،auto/lkgp— ہر ایک کو مخصوص طور پر ٹیون کردہ وزن پروفائل کی معاونت حاصل ہے۔ - 6 موڈ پیکس:
ship-fast،cost-saver،quality-first،offline-friendly،reliability-firstاورchaos-mode— پہلے سے طے شدہ وزن کنفیگریشنز جنہیں ڈیش بورڈ سے استعمال کیا جا سکتا ہے۔ (انہیں اوپر موجودauto/*سابقوں کے ساتھ خلط ملط نہ کریں، جو درخواست کے وقت استعمال ہونے والی مختلف حالتیں ہیں۔)
الگورتھم کی مکمل تفصیلات (عوامل کے فارمولے، وزن کی ٹیوننگ) کے لیے،
docs/routing/AUTO-COMBO.md دیکھیں۔
B. کلاؤڈ ایجنٹس
کلاؤڈ ایجنٹس فریقِ ثالث کے ہوسٹ کردہ کوڈ ایجنٹ پلیٹ فارمز (Codex Cloud، Devin، Jules) کو یکساں، DB کی پشت پناہی والے ٹاسک لائف سائیکل میں ریپ کرتا ہے۔ ٹاسک بنانے/معائنہ کرنے والے تمام اینڈ پوائنٹس کے لیے انتظامی توثیق درکار ہے۔
- ماڈیول روٹ:
src/lib/cloudAgent/(baseAgent.ts،registry.ts،api.ts،types.ts،db.ts، نیزagents/کے تحت ہر ایجنٹ کی ذیلی ڈائریکٹریاں) - ہر ایجنٹ کے نفاذ:
agents/codex/،agents/devin/،agents/jules/ - عوامی اینڈ پوائنٹس:
/api/v1/agents/tasks/*(فہرست/تخلیق/حصول/منسوخی) - انتظامی اینڈ پوائنٹس:
/api/cloud/*(فراہمی، حیثیت، بیچ) - ڈیش بورڈ:
/dashboard/cloud-agents - اسٹوریج:
cloud_agent_tasksٹیبل
ہر ایجنٹ کی فراہمی اور OAuth کی تفصیلات کے لیے،
docs/frameworks/CLOUD_AGENT.md دیکھیں۔
C. حفاظتی پابندیاں
حفاظتی پابندیوں کا ماڈیول ایک ہاٹ ری لوڈ ہونے والی مڈل ویئر تہہ ہے جو PII، پرامپٹ انجیکشن، اور غیر محفوظ بصری مواد کے لیے درخواستوں اور جوابات کا معائنہ کرتی ہے۔ خلاف ورزیاں ایک منظم ایرر کوڈ کے ساتھ HTTP 503 واپس کر کے درخواست کو فوری طور پر روک دیتی ہیں، جس سے بعد کے کالرز دوبارہ کوشش یا متبادل شاخ اختیار کر سکتے ہیں۔
- ماڈیول روٹ:
src/lib/guardrails/(base.ts،registry.ts،piiMasker.ts،promptInjection.ts،visionBridge.ts،visionBridgeHelpers.ts) - ہاٹ ری لوڈ: رجسٹری کنفیگریشن کی تبدیلیوں کی نگرانی کرتی اور چین کو وہیں دوبارہ تشکیل دیتی ہے
- انضمام کے مقامات: چیٹ ہینڈلر کا نقطۂ آغاز، تصویر بنانے والا ہینڈلر، رسپانس سینیٹائزر
- HTTP معاہدہ: خلاف ورزیاں
503کے طور پر ظاہر ہوتی ہیں، جس میںerror.code = "GUARDRAIL_VIOLATION"ہوتا ہے
رول سیٹ لکھنے اور حد کی ٹیوننگ کے لیے،
docs/security/GUARDRAILS.md دیکھیں۔
D. ڈومین تہہ
src/domain/ نیم اسپیس پالیسی کے فیصلوں کو مرکزی بناتی ہے تاکہ روٹ ہینڈلرز کو
لاک آؤٹ/بجٹ/فال بیک منطق خود ترتیب نہ دینی پڑے۔
- پالیسی انجن:
src/domain/policyEngine.ts— نفاذ سے پہلے کی جانچ کے لیے واحد نقطۂ آغاز (لاک آؤٹ → بجٹ → فال بیک ترتیب) - لاگت کے اصول:
src/domain/costRules.ts - فال بیک پالیسی:
src/domain/fallbackPolicy.ts - لاک آؤٹ پالیسی:
src/domain/lockoutPolicy.ts - ٹیگ پر مبنی روٹنگ:
src/domain/tagRouter.ts - کومبو ریزالور:
src/domain/comboResolver.ts— کومبو ناموں، auto/* سابقوں، اور وائلڈ کارڈ ماڈل اہداف کو ٹھوس نفاذی منصوبوں میں ریزالو کرتا ہے - کنکشن/ماڈل رول جوائنر:
src/domain/connectionModelRules.ts - ماڈل دستیابی کے اسنیپ شاٹس:
src/domain/modelAvailability.ts - پرووائیڈر کی میعاد ختم ہونے کی ٹریکنگ:
src/domain/providerExpiration.ts - کوٹا کیش:
src/domain/quotaCache.ts - تنزلی کی حالت:
src/domain/degradation.ts - کنفیگریشن آڈٹ:
src/domain/configAudit.ts - OmniRoute رسپانس میٹا ڈیٹا بلڈر:
src/domain/omnirouteResponseMeta.ts - تشخیصی ذیلی نظام:
src/domain/assessment/— وقتاً فوقتاً چلنے والے تشخیصی جابز
E. اجازت دہی پائپ لائن
اجازت دہی کی پائپ لائن ہر آنے والی درخواست کی درجہ بندی کرتی ہے اور اسے آگے بھیجنے سے پہلے مناسب پالیسی چین لاگو کرتی ہے۔
- پائپ لائن کا نقطۂ آغاز:
src/server/authz/pipeline.ts - درخواست کی درجہ بندی کرنے والا:
src/server/authz/classify.ts— عوامی مطابقتی روٹس کو انتظامی روٹس سے ممتاز کرتا ہے - عوامی روٹس کی فہرست:
src/shared/constants/publicApiRoutes.ts - پالیسیاں:
src/server/authz/policies/— قابلِ ترکیب شرائط (requireApiKey,requireManagement,requireFreshAuth، وغیرہ) - ہیڈر کی سہولیات:
src/server/authz/headers.ts - تصدیقی معاون:
src/server/authz/assertAuth.ts - درخواست کا سیاق:
src/server/authz/context.ts
عوامی اور انتظامی روٹس کے درمیان سخت حد بندی ہے: ایجنٹ/کول ڈاؤن APIs اور فراہم کنندہ کی تبدیلیوں کے لیے انتظامی توثیق درکار ہے (موجود نہ ہو تو HTTP 401)۔
روٹس کی درجہ بندی کے مکمل قواعد کے لیے،
docs/architecture/AUTHZ_GUIDE.md دیکھیں۔
F. ورک فلو FSM اور ٹاسک سے آگاہ راؤٹر
کومبو کے انتخاب کے اوپر موجود ایک finite-state-machine سے چلنے والا راؤٹر، جو شناخت شدہ ورک فلو مرحلے (منصوبہ بندی، عمل درآمد، جائزہ) اور پس منظر کے ٹاسک سے وابستگی کی بنیاد پر ٹریفک کو ہدایت دیتا ہے۔
- ورک فلو FSM:
open-sse/services/workflowFSM.ts - ٹاسک سے آگاہ راؤٹر:
open-sse/services/taskAwareRouter.ts - پس منظر کے ٹاسک کا شناخت کنندہ:
open-sse/services/backgroundTaskDetector.ts - ارادے کی درجہ بندی کرنے والا:
open-sse/services/intentClassifier.ts
FSM کی حالتوں میں تبدیلیاں Auto Combo کی اسکورنگ میں شامل ہوتی ہیں، جس سے پس منظر/خودکاری کے ٹاسکس کے لیے کم لاگت والے ماڈلز اور تعاملی منصوبہ بندی/جائزے کے مراحل کے لیے زیادہ طاقتور ماڈلز کی جانب ترجیح بڑھتی ہے۔
G. فراہم کنندہ کے لیے مخصوص لچک پذیری
متعدد فراہم کنندگان خصوصی لچک پذیری اور مخفی طرزِ عمل کے ماڈیولز فراہم کرتے ہیں، جو عالمی سرکٹ بریکر / کنکشن کول ڈاؤن / ماڈل لاک آؤٹ تہوں سے منسلک ہوتے ہیں:
- Antigravity 429 انجن:
open-sse/services/antigravity429Engine.ts(شناخت تبدیل کرتا ہے، جوابی ہیڈرز صاف کرتا ہے، اور کریڈٹس/ورژن کی نگرانیantigravityCredits.ts,antigravityHeaderScrub.ts,antigravityHeaders.ts,antigravityIdentity.ts,antigravityVersion.tsکے ذریعے چلاتا ہے) - ModelScope کوٹا پالیسی:
open-sse/services/modelscopePolicy.ts - Claude Code CCH (مطابقتی چینل ہینڈ شیک):
open-sse/services/claudeCodeCCH.ts, نیزclaudeCodeCompatible.ts,claudeCodeConstraints.ts,claudeCodeExtraRemap.ts,claudeCodeToolRemapper.ts - Claude Code فنگر پرنٹ کی تشکیل:
open-sse/services/claudeCodeFingerprint.ts - Claude Code کی مبہم کاری:
open-sse/services/claudeCodeObfuscation.ts
مخفی طرزِ عمل کی مکمل عملی کتاب اور آپریشنل رہنمائی کے لیے،
docs/security/STEALTH_GUIDE.md دیکھیں (git؛ /docs میں کمپائل نہیں کی گئی)۔
H. ویب ہکس، استدلالی کیش، مطالعاتی کیش
- ویب ہکس — فراہم کنندہ/اکاؤنٹ/ٹاسک ایونٹس کی بیرونی ترسیل۔
- ڈسپیچر:
src/lib/webhookDispatcher.ts - ذخیرہ:
webhooksSQLite ٹیبل (src/lib/db/webhooks.tsکے ذریعے) - ڈیش بورڈ:
/dashboard/webhooks(سبسکرپشنز، راز، دوبارہ کوشش کی تاریخ) - ایونٹس کی درجہ بندی اور دوبارہ کوشش کے قواعد کے لیے،
docs/frameworks/WEBHOOKS.mdدیکھیں۔
- ڈسپیچر:
- استدلالی کیش — ایسے فراہم کنندگان کے لیے دوبارہ چلائے جا سکنے والے استدلالی بلاکس جو
سوچ کے ٹوکنز (Claude، GLMT، وغیرہ) خارج کرتے ہیں، تاکہ مسلسل مراحل میں دوبارہ سوچنے سے بچا جا سکے۔
- DB تہہ:
src/lib/db/reasoningCache.ts - سروس تہہ:
open-sse/services/reasoningCache.ts - دوبارہ چلانے کے قواعد کے لیے،
docs/routing/REASONING_REPLAY.mdدیکھیں۔
- DB تہہ:
- مطالعاتی کیش — دستخط کے لحاظ سے کلید بند مختصر مدتی جوابی کیش، جو
خراب اپ اسٹریم SDKs کی یکساں دوبارہ کوششوں کو یکجا کرنے کے لیے استعمال ہوتی ہے۔
- DB تہہ:
src/lib/db/readCache.ts - شماریات کا اینڈ پوائنٹ:
GET /api/cache/stats، ڈیش بورڈ/dashboard/cacheپر ہے
- DB تہہ:
3) مستقل ذخیرہ کاری کی تہہ
بنیادی اسٹیٹ DB (SQLite):
- بنیادی انفراسٹرکچر:
src/lib/db/core.ts(better-sqlite3، migrations، WAL) - DB تک رسائی: مخصوص
src/lib/db/*ماڈیولز کو براہِ راست import کریں (پراناlocalDb.tsbarrel ہٹا دیا گیا تھا) - فائل:
${DATA_DIR}/storage.sqlite(یا$XDG_CONFIG_HOME/omniroute/storage.sqliteجب یہ سیٹ ہو، بصورتِ دیگر~/.omniroute/storage.sqlite) - اکائیاں (ٹیبلز + KV namespaces): providerConnections، providerNodes، modelAliases، combos، apiKeys، settings، pricing، customModels، proxyConfig، ipFilter، thinkingBudget، systemPrompt
استعمال کی مستقل ذخیرہ کاری:
- facade:
src/lib/usageDb.ts(src/lib/usage/*میں منقسم ماڈیولز) storage.sqliteمیں SQLite ٹیبلز:usage_history،call_logs،proxy_logs- مطابقت/ڈیبگنگ کے لیے اختیاری فائل artifacts برقرار رہتے ہیں (
${DATA_DIR}/log.txt،${DATA_DIR}/call_logs/،<repo>/logs/...) - موجود ہونے کی صورت میں پرانی JSON فائلیں startup migrations کے ذریعے SQLite میں منتقل کی جاتی ہیں
ڈومین اسٹیٹ DB (SQLite):
src/lib/db/domainState.ts— ڈومین اسٹیٹ کے لیے CRUD کارروائیاں- ٹیبلز (
src/lib/db/core.tsمیں تخلیق کردہ):domain_fallback_chains،domain_budgets،domain_cost_history،domain_lockout_state،domain_circuit_breakers - Write-through cache پیٹرن: runtime کے دوران in-memory Maps مستند ماخذ ہوتے ہیں؛ تبدیلیاں ہم وقت طور پر SQLite میں لکھی جاتی ہیں؛ cold start پر اسٹیٹ DB سے بحال کی جاتی ہے
4) تصدیق + سیکیورٹی کی سطحیں
- ڈیش بورڈ cookie کی تصدیق:
src/proxy.ts،src/app/api/auth/login/route.ts - API key بنانا/تصدیق کرنا:
src/shared/utils/apiKey.ts - Provider secrets کو
providerConnectionsاندراجات میں محفوظ کیا جاتا ہے open-sse/utils/proxyFetch.ts(env vars) اورopen-sse/utils/networkProxy.ts(ہر provider کے لیے یا عالمی سطح پر قابلِ ترتیب) کے ذریعے outbound proxy کی معاونت- SSRF / outbound URL حفاظتی رکاوٹ:
src/shared/network/outboundUrlGuard.ts— تمام provider calls کے لیے private/loopback/link-local ranges کو مسدود کرتی ہے - Runtime env کی توثیق:
src/lib/env/runtimeEnv.ts— تمام environment variables کے لیے Zod schema، جس کی خرابیاں/انتباہات startup پر ظاہر کیے جاتے ہیں - Sync tokens:
src/lib/db/syncTokens.ts— config bundle download endpoints کے لیے محدود دائرۂ کار والے tokens؛sync_tokensSQLite ٹیبل سے تقویت یافتہ (migration024_create_sync_tokens.sql) - WebSocket handshake کی تصدیق:
src/lib/ws/handshake.ts— API key یا session cookie کے ذریعے WS upgrade requests کی توثیق کرتی ہے
5) کلاؤڈ سنک
- Scheduler کی ابتدا:
src/lib/initCloudSync.ts،src/shared/services/initializeCloudSync.ts،src/shared/services/modelSyncScheduler.ts - دورانیہ وار کام:
src/shared/services/cloudSyncScheduler.ts - دورانیہ وار کام:
src/shared/services/modelSyncScheduler.ts - کنٹرول route:
src/app/api/sync/cloud/route.ts
درخواست کا دورِ حیات (/v1/chat/completions)
sequenceDiagram
autonumber
participant Client as CLI/SDK کلائنٹ
participant Route as /api/v1/chat/completions
participant Chat as src/sse/handlers/chat
participant Core as open-sse/handlers/chatCore
participant Model as ماڈل ریزالور
participant Auth as اسناد کا انتخاب کنندہ
participant Exec as پرووائیڈر ایگزیکیوٹر
participant Prov as اپ اسٹریم پرووائیڈر
participant Stream as اسٹریم مترجم
participant Usage as usageDb
Client->>Route: POST /v1/chat/completions
Route->>Chat: handleChat(request)
Chat->>Model: ماڈل یا combo کو پارس/resolve کریں
alt Combo ماڈل
Chat->>Chat: combo ماڈلز پر iterate کریں (handleComboChat)
end
Chat->>Auth: getProviderCredentials(provider)
Auth-->>Chat: فعال اکاؤنٹ + tokens/api key
Chat->>Core: handleChatCore(body, modelInfo, credentials)
Core->>Core: ماخذ format کا پتہ لگائیں
Core->>Core: درخواست کو ہدف format میں ترجمہ کریں
Core->>Exec: execute(provider, transformedBody)
Exec->>Prov: اپ اسٹریم API call
Prov-->>Exec: SSE/JSON جواب
Exec-->>Core: جواب + metadata
alt 401/403
Core->>Exec: refreshCredentials()
Exec-->>Core: اپ ڈیٹ کردہ tokens
Core->>Exec: درخواست دوبارہ آزمائیں
end
Core->>Stream: اسٹریم کو کلائنٹ format میں ترجمہ/normalize کریں
Stream-->>Client: SSE chunks / JSON جواب
Stream->>Usage: استعمال نکالیں + history/log محفوظ کریں
کومبو + اکاؤنٹ فال بیک فلو
flowchart TD
A[آنے والی ماڈل اسٹرنگ] --> B{کیا یہ کومبو کا نام ہے؟}
B -- ہاں --> C[کومبو ماڈلز کی ترتیب لوڈ کریں]
B -- نہیں --> D[واحد ماڈل کا راستہ]
C --> E[ماڈل N آزمائیں]
E --> F[پرووائیڈر/ماڈل متعین کریں]
D --> F
F --> G[اکاؤنٹ کی اسناد منتخب کریں]
G --> H{کیا اسناد دستیاب ہیں؟}
H -- نہیں --> I[پرووائیڈر کی عدم دستیابی لوٹائیں]
H -- ہاں --> J[درخواست چلائیں]
J --> K{کامیاب؟}
K -- ہاں --> L[جواب لوٹائیں]
K -- نہیں --> M{کیا خرابی فال بیک کے لیے اہل ہے؟}
M -- نہیں --> N[خرابی لوٹائیں]
M -- ہاں --> O[اکاؤنٹ کو کول ڈاؤن کے لیے غیر دستیاب نشان زد کریں]
O --> P{کیا پرووائیڈر کے لیے کوئی اور اکاؤنٹ ہے؟}
P -- ہاں --> G
P -- نہیں --> Q{کیا کومبو میں اگلا ماڈل موجود ہے؟}
Q -- ہاں --> E
Q -- نہیں --> R[سب کے غیر دستیاب ہونے کی اطلاع لوٹائیں]
فال بیک کے فیصلے open-sse/services/accountFallback.ts میں اسٹیٹس کوڈز اور خرابی کے پیغام سے متعلق ہیورسٹکس کی بنیاد پر کیے جاتے ہیں۔ کومبو روٹنگ ایک اضافی حفاظتی شرط شامل کرتی ہے: پرووائیڈر کے دائرۂ کار والے 400s، مثلاً اپ اسٹریم مواد بلاک ہونے اور رول کی توثیق ناکام ہونے کی خرابیاں، ماڈل تک محدود ناکامیاں سمجھی جاتی ہیں تاکہ بعد کے کومبو اہداف پھر بھی چل سکیں۔
OAuth آن بورڈنگ اور ٹوکن ریفریش لائف سائیکل
sequenceDiagram
autonumber
participant UI as ڈیش بورڈ UI
participant OAuth as /api/oauth/[provider]/[action]
participant ProvAuth as پرووائیڈر تصدیقی سرور
participant DB as localDb
participant Test as /api/providers/[id]/test
participant Exec as پرووائیڈر ایگزیکیوٹر
UI->>OAuth: GET کے ذریعے اجازت یا ڈیوائس کوڈ
OAuth->>ProvAuth: تصدیق/ڈیوائس فلو بنائیں
ProvAuth-->>OAuth: تصدیقی URL یا ڈیوائس کوڈ پے لوڈ
OAuth-->>UI: فلو ڈیٹا
UI->>OAuth: POST کے ذریعے تبادلہ یا پول
OAuth->>ProvAuth: ٹوکن کا تبادلہ/پول
ProvAuth-->>OAuth: رسائی/ریفریش ٹوکنز
OAuth->>DB: createProviderConnection(oauth data)
OAuth-->>UI: کامیابی + کنکشن id
UI->>Test: POST /api/providers/[id]/test
Test->>Exec: اسناد کی توثیق / اختیاری ریفریش
Exec-->>Test: درست یا ریفریش شدہ ٹوکن کی معلومات
Test->>DB: اسٹیٹس/ٹوکنز/خرابیاں اپ ڈیٹ کریں
Test-->>UI: توثیق کا نتیجہ
لائیو ٹریفک کے دوران ریفریش open-sse/handlers/chatCore.ts کے اندر ایگزیکیوٹر refreshCredentials() کے ذریعے انجام دیا جاتا ہے۔
کلاؤڈ سنک لائف سائیکل (فعال کرنا / سنک کرنا / غیر فعال کرنا)
sequenceDiagram
autonumber
participant UI as اینڈ پوائنٹ صفحہ UI
participant Sync as /api/sync/cloud
participant DB as localDb
participant Cloud as بیرونی کلاؤڈ سنک
participant Claude as ~/.claude/settings.json
UI->>Sync: POST action=enable
Sync->>DB: cloudEnabled=true سیٹ کریں
Sync->>DB: یقینی بنائیں کہ API کلید موجود ہے
Sync->>Cloud: POST /sync/{machineId} (providers/aliases/combos/keys)
Cloud-->>Sync: سنک کا نتیجہ
Sync->>Cloud: GET /{machineId}/v1/verify
Sync-->>UI: فعال + توثیقی اسٹیٹس
UI->>Sync: POST action=sync
Sync->>Cloud: POST /sync/{machineId}
Cloud-->>Sync: ریموٹ ڈیٹا
Sync->>DB: زیادہ نئے مقامی ٹوکنز/اسٹیٹس اپ ڈیٹ کریں
Sync-->>UI: سنک مکمل
UI->>Sync: POST action=disable
Sync->>DB: cloudEnabled=false سیٹ کریں
Sync->>Cloud: DELETE /sync/{machineId}
Sync->>Claude: ANTHROPIC_BASE_URL کو دوبارہ مقامی پر منتقل کریں (اگر ضروری ہو)
Sync-->>UI: غیر فعال
کلاؤڈ فعال ہونے پر وقفے وقفے سے سنک CloudSyncScheduler کے ذریعے شروع کیا جاتا ہے۔
ڈیٹا ماڈل اور اسٹوریج میپ
erDiagram
SETTINGS ||--o{ PROVIDER_CONNECTION : کنٹرول_کرتا_ہے
PROVIDER_NODE ||--o{ PROVIDER_CONNECTION : ہم_آہنگ_فراہم_کنندہ_کو_سہارا_دیتا_ہے
PROVIDER_CONNECTION ||--o{ USAGE_ENTRY : استعمال_جاری_کرتا_ہے
SETTINGS {
boolean cloudEnabled
number stickyRoundRobinLimit
boolean requireLogin
string password_hash
string fallbackStrategy
json rateLimitDefaults
json providerProfiles
}
PROVIDER_CONNECTION {
string id
string provider
string authType
string name
number priority
boolean isActive
string apiKey
string accessToken
string refreshToken
string expiresAt
string testStatus
string lastError
string rateLimitedUntil
json providerSpecificData
}
PROVIDER_NODE {
string id
string type
string name
string prefix
string apiType
string baseUrl
}
MODEL_ALIAS {
string alias
string targetModel
}
COMBO {
string id
string name
string[] models
}
API_KEY {
string id
string name
string key
string machineId
}
USAGE_ENTRY {
string provider
string model
number prompt_tokens
number completion_tokens
string connectionId
string timestamp
}
CUSTOM_MODEL {
string id
string name
string providerId
}
PROXY_CONFIG {
string global
json providers
}
IP_FILTER {
string mode
string[] allowlist
string[] blocklist
}
THINKING_BUDGET {
string mode
number customBudget
string effortLevel
}
SYSTEM_PROMPT {
boolean enabled
string prompt
string position
}
فزیکل اسٹوریج فائلیں:
- بنیادی رن ٹائم DB:
${DATA_DIR}/storage.sqlite - درخواست کی لاگ لائنیں:
${DATA_DIR}/log.txt(مطابقت/ڈیبگ آرٹیفیکٹ) - منظم کال پے لوڈ آرکائیوز:
${DATA_DIR}/call_logs/ - اختیاری مترجم/درخواست ڈیبگ سیشنز:
<repo>/logs/...
تعیناتی کی ٹوپولوجی
flowchart LR
subgraph LocalHost[ڈیولپر ہوسٹ]
CLI[CLI ٹولز]
Browser[ڈیش بورڈ براؤزر]
end
subgraph ContainerOrProcess[OmniRoute رن ٹائم]
Next[Next.js سرور\nPORT=20128]
Core[SSE کور + ایگزیکیوٹرز]
MainDB[(storage.sqlite)]
UsageDB[(استعمال کی ٹیبلز + لاگ آرٹیفیکٹس)]
end
subgraph External[بیرونی سروسز]
Providers[AI فراہم کنندگان]
SyncCloud[کلاؤڈ سنک سروس]
end
CLI --> Next
Browser --> Next
Next --> Core
Next --> MainDB
Core --> MainDB
Core --> UsageDB
Core --> Providers
Next --> SyncCloud
ماڈیول میپنگ (فیصلے کے لیے نہایت اہم)
روٹ اور API ماڈیولز
src/app/api/v1/*,src/app/api/v1beta/*: مطابقتی APIssrc/app/api/v1/providers/[provider]/*: ہر فراہم کنندہ کے لیے مخصوص روٹس (چیٹ، ایمبیڈنگز، تصاویر)src/app/api/providers*: فراہم کنندہ CRUD، توثیق، جانچsrc/app/api/provider-nodes*: حسبِ ضرورت ہم آہنگ نوڈ کا انتظامsrc/app/api/provider-models: حسبِ ضرورت ماڈل کا انتظام (CRUD)src/app/api/models/route.ts: ماڈل کیٹلاگ API (عرفی نام + حسبِ ضرورت ماڈلز)src/app/api/oauth/*: OAuth/ڈیوائس کوڈ فلوزsrc/app/api/keys*: مقامی API کلید کا لائف سائیکلsrc/app/api/models/alias: عرفی نام کا انتظامsrc/app/api/combos*: فال بیک کومبو کا انتظامsrc/app/api/pricing: لاگت کے حساب کے لیے قیمتوں کی اوور رائیڈزsrc/app/api/settings/proxy: پراکسی کنفیگریشن (GET/PUT/DELETE)src/app/api/settings/proxy/test: آؤٹ باؤنڈ پراکسی کنیکٹیویٹی ٹیسٹ (POST)src/app/api/usage/*: استعمال اور لاگز APIssrc/app/api/sync/*+src/app/api/cloud/*: کلاؤڈ سنک اور کلاؤڈ سے متعلق معاون ماڈیولزsrc/app/api/cli-tools/*: مقامی CLI کنفیگ رائٹرز/چیکرزsrc/app/api/settings/ip-filter: IP اجازت فہرست/بلاک فہرست (GET/PUT)src/app/api/settings/thinking-budget: تھنکنگ ٹوکن بجٹ کنفیگ (GET/PUT)src/app/api/settings/system-prompt: عالمی سسٹم پرامپٹ (GET/PUT)src/app/api/settings/compression: عالمی کمپریشن ترتیبات (GET/PUT)src/app/api/compression/*: کمپریشن پیش منظر، اصول کا میٹا ڈیٹا، اور لینگویج پیکسsrc/app/api/context/caveman/config: Caveman ترتیبات کا عرفی نام (GET/PUT)src/app/api/context/rtk/*: RTK کنفیگ، فلٹر کیٹلاگ، ٹیسٹ اینڈ پوائنٹ، اور خام آؤٹ پٹ کی بازیابیsrc/app/api/context/combos*: کمپریشن کومبو CRUD اور روٹنگ کومبو اسائنمنٹسsrc/app/api/context/analytics: کمپریشن اینالیٹکس کا عرفی نامsrc/app/api/sessions: فعال سیشنز کی فہرست (GET)src/app/api/rate-limits: فی اکاؤنٹ ریٹ لمٹ کی حالت (GET)src/app/api/sync/tokens: سنک ٹوکن CRUD (GET/POST)src/app/api/sync/tokens/[id]: سنک ٹوکن حاصل کرنا/حذف کرنا (GET/DELETE)src/app/api/sync/bundle: کنفیگ بنڈل ڈاؤن لوڈ (GET، ETag ورژننگ)src/app/api/v1/ws: OpenAI سے ہم آہنگ WS کلائنٹس کے لیے WebSocket اپ گریڈ ہینڈلر
روٹنگ اور ایگزیکیوشن کور
src/sse/handlers/chat.ts: درخواست کی پارسنگ، کومبو ہینڈلنگ، اکاؤنٹ انتخاب کا لوپopen-sse/handlers/chatCore.ts: ترجمہ، ایگزیکیوٹر ڈسپیچ، دوبارہ کوشش/ریفریش ہینڈلنگ، اسٹریم سیٹ اپopen-sse/executors/*: فراہم کنندہ سے مخصوص نیٹ ورک اور فارمیٹ کا طرزِ عمل
ترجمہ رجسٹری اور فارمیٹ کنورٹرز
open-sse/translator/index.ts: مترجم رجسٹری اور آرکیسٹریشن- درخواست کے مترجم:
open-sse/translator/request/*(9 ماڈیولز —antigravity-to-openai,claude-to-gemini,claude-to-openai,gemini-to-openai,openai-responses,openai-to-claude,openai-to-cursor,openai-to-gemini,openai-to-kiro) - جواب کے مترجم:
open-sse/translator/response/*(11 ماڈیولز —claude-to-openai,cursor-to-openai,gemini-to-claude,gemini-to-openai,kiro-to-openai,openai-responses,openai-to-antigravity,openai-to-claude,openai-to-gemini,openai-to-gemini-sse,responsesToolItem) - معاون اجزا:
open-sse/translator/helpers/*(12 ماڈیولز —claudeHelper,geminiHelper,geminiToolsSanitizer,jsonUtil,markdownBoundary,maxTokensHelper,openaiHelper,responsesApiHelper,schemaCoercion,strictSystemHoist,toolCallHelper,toolCallShim) - فارمیٹ کانسٹنٹس:
open-sse/translator/formats.ts - بوٹ اسٹریپ اور رجسٹری:
open-sse/translator/bootstrap.ts,open-sse/translator/registry.ts - تصویری فارمیٹ کے معاون اجزا:
open-sse/translator/image/
مستقل ذخیرہ
src/lib/db/*: SQLite پر مستقل کنفیگریشن/اسٹیٹ اور ڈومین ڈیٹا کا ذخیرہsrc/lib/db/*: مخصوص ماڈیولز براہِ راست درآمد کریں — کوئی بیرل نہیں (پرانیlocalDb.tsری ایکسپورٹ تہہ ہٹا دی گئی تھی)src/lib/usageDb.ts: SQLite ٹیبلز کے اوپر استعمال کی ہسٹری/کال لاگز کا فساڈ
پرووائیڈر ایگزیکیوٹر کوریج (اسٹریٹیجی پیٹرن)
ہر پرووائیڈر کے پاس ایک مخصوص ایگزیکیوٹر ہوتا ہے جو BaseExecutor (درج open-sse/executors/base.ts) کو توسیع دیتا ہے، جو URL بنانا، ہیڈر تشکیل دینا، ایکسپونینشل بیک آف کے ساتھ دوبارہ کوشش کرنا، کریڈینشل ریفریش ہُکس، اور execute() آرکیسٹریشن میتھڈ فراہم کرتا ہے۔
| ایگزیکیوٹر | فراہم کنندہ (فراہم کنندگان) | خصوصی ہینڈلنگ |
|---|---|---|
DefaultExecutor |
OpenAI، Claude، Gemini، Qwen، OpenRouter، GLM، Kimi، MiniMax، DeepSeek، Groq، xAI، Mistral، Perplexity، Together، Fireworks، Cerebras، Cohere، NVIDIA، وغیرہ | ہر فراہم کنندہ کے لیے متحرک URL/ہیڈر کنفیگریشن |
AntigravityExecutor |
Google Antigravity | حسبِ ضرورت پروجیکٹ/سیشن IDs، Retry-After کی پارسنگ، 429 کی مبہم سازی |
AzureOpenAIExecutor |
Azure OpenAI | ڈیپلائمنٹ پر مبنی روٹنگ، api-version کوئری کا نفاذ |
BlackboxWebExecutor |
Blackbox AI (ویب موڈ) | TLS فنگرپرنٹ ایمولیشن کے ساتھ ویب سیشن ریورس |
ClaudeIdentityExecutor |
Claude.ai (CCH پاتھ) | پابندی + ٹول ری میپ پائپ لائنز، فنگرپرنٹ کی تشکیل |
CliProxyApiExecutor |
CLIProxyAPI سے مطابقت رکھنے والے فراہم کنندگان | حسبِ ضرورت توثیق اور پروٹوکول ہینڈلنگ |
CloudflareAiExecutor |
Cloudflare Workers AI | اکاؤنٹ ID کا اندراج، Neurons پر مبنی استعمال کی ٹریکنگ |
CodexExecutor |
OpenAI Codex | سسٹم ہدایات شامل کرتا ہے، استدلالی کاوش کو لازمی بناتا ہے |
ChatGptWebCodexExecutor |
ChatGPT Web (Codex) | تھریڈ/ٹرن پننگ کے ساتھ براؤزر سیشن Responses API برج |
CommandCodeExecutor |
Command Code | OAuth + ہر سیشن کے لیے ہیڈر روٹیشن |
CursorExecutor |
Cursor IDE | ConnectRPC پروٹوکول، Protobuf انکوڈنگ، چیک سم کے ذریعے درخواست پر دستخط |
DevinCliExecutor |
Devin CLI | کلاؤڈ ایجنٹ ماڈیول کے ذریعے Devin ٹاسک لائف سائیکل برجنگ |
GithubExecutor |
GitHub Copilot | Copilot ٹوکن ریفریش، VSCode کی نقل کرنے والے ہیڈرز |
GitlabExecutor |
GitLab Duo | GitLab OAuth + پروجیکٹ کے دائرۂ کار والی روٹنگ |
GlmExecutor |
Z.AI GLM (بشمول glmt پری سیٹ) |
تھنکنگ بجٹ سے آگاہ، GLMT پری سیٹ مستقلات |
GrokWebExecutor |
xAI Grok ویب | ویب سیشن ریورس، موڈ کا انتخاب (سوچ/معیاری) |
KieExecutor |
KIE | گھومتے ہوئے سیشن اینکرز کے ساتھ حسبِ ضرورت ٹوکن کا اجرا |
KiroExecutor |
AWS CodeWhisperer/Kiro | AWS EventStream بائنری فارمیٹ → SSE تبدیلی |
MuseSparkWebExecutor |
Muse Spark (ویب) | امیج میسج برجنگ کے ساتھ ویب سیشن ریورس |
NlpCloudExecutor |
NLP Cloud | فراہم کنندہ کے لیے مخصوص ریکویسٹ باڈی کی ساخت |
OpenCodeExecutor |
OpenCode | AI SDK سے مطابقت رکھنے والا فراہم کنندہ سیٹ اپ |
PerplexityWebExecutor |
Perplexity ویب | چیٹ جاری رکھنے کے لیے ویب سیشن ریورس |
PetalsExecutor |
Petals تقسیم شدہ انفرنس | غیر مرکزی سوارم روٹنگ |
PollinationsExecutor |
Pollinations AI | API کلید درکار نہیں، شرح محدود درخواستیں |
QoderExecutor |
Qoder AI | PAT اور OAuth سپورٹ، متعدد ماڈلز والا مفت درجہ |
VertexExecutor |
Google Vertex AI | سروس اکاؤنٹ کی توثیق، خطے پر مبنی اینڈ پوائنٹس |
DevinDesktopExecutor |
Devin Desktop | درآمد شدہ API کلید + Connect-protobuf چیٹ اسٹریمنگ |
دیگر تمام فراہم کنندگان (بشمول حسبِ ضرورت ہم آہنگ نوڈز) DefaultExecutor استعمال کرتے ہیں۔
پرووائیڈر مطابقت میٹرکس
نوٹ: ذیل کا میٹرکس OmniRoute v3.8.0 میں رجسٹرڈ 351 پرووائیڈرز کا نمائندہ نمونہ ہے۔ مستند اور مسلسل اپ ڈیٹ ہونے والی فہرست کے لیے،
docs/reference/PROVIDER_REFERENCE.md(خودکار طور پر تیار کردہ) یا اصل ماخذsrc/shared/constants/providers.ts(لوڈ کے وقت Zod سے توثیق شدہ) سے رجوع کریں۔
| فراہم کنندہ | فارمیٹ | تصدیق | اسٹریمنگ | غیر اسٹریمنگ | ٹوکن ریفریش | استعمال کا API |
|---|---|---|---|---|---|---|
| Claude | claude | API کلید / OAuth | ✅ | ✅ | ✅ | ⚠️ صرف منتظم |
| Gemini | gemini | API کلید / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console |
| Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ مکمل کوٹا API |
| OpenAI | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Codex | openai-responses | OAuth | ✅ لازمی | ❌ | ✅ | ✅ شرح کی حدود |
| ChatGPT Web (Codex) | openai-responses | براؤزر سیشن | ✅ لازمی | ❌ | ❌ | ❌ |
| GitHub Copilot | openai | OAuth + Copilot ٹوکن | ✅ | ✅ | ✅ | ✅ کوٹا اسنیپ شاٹس |
| Cursor | cursor | حسبِ ضرورت چیک سم | ✅ | ✅ | ❌ | ❌ |
| Kiro | kiro | AWS SSO OIDC | ✅ (EventStream) | ❌ | ✅ | ✅ استعمال کی حدود |
| Qoder | openai | OAuth / PAT | ✅ | ✅ | ✅ | ⚠️ فی درخواست |
| Kilo Code | openai | OAuth | ✅ | ✅ | ✅ | ❌ |
| Cline | openai | OAuth | ✅ | ✅ | ✅ | ❌ |
| Kimi Coding | openai | OAuth | ✅ | ✅ | ✅ | ❌ |
| OpenRouter | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| GLM/Kimi/MiniMax | claude | API کلید | ✅ | ✅ | ❌ | ❌ |
| DeepSeek | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Groq | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| xAI (Grok) | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Mistral | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Perplexity | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Together AI | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Fireworks AI | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Cerebras | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Cohere | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| NVIDIA NIM | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Cloudflare AI | openai | API ٹوکن + اکاؤنٹ ID | ✅ | ✅ | ❌ | ❌ |
| Pollinations | openai | کوئی نہیں (کلید درکار نہیں) | ✅ | ✅ | ❌ | ❌ |
| Scaleway AI | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| LongCat | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Ollama Cloud | openai | API کلید (اختیاری) | ✅ | ✅ | ❌ | ❌ |
| HuggingFace | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Nebius | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| SiliconFlow | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Hyperbolic | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Vertex AI | gemini | سروس اکاؤنٹ | ✅ | ✅ | ✅ | ⚠️ Cloud Console |
| Command Code | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ فی درخواست |
| Z.AI / GLM | openai | API کلید / OAuth | ✅ | ✅ | ❌ | ❌ |
| GLMT (پیش سیٹ) | claude | API کلید | ✅ | ✅ | ❌ | ⚠️ فی درخواست |
| Kimi Coding | openai | OAuth / API کلید | ✅ | ✅ | ✅ | ❌ |
| KIE | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Devin Desktop | openai | درآمد کردہ API کلید | ✅ (Connect→SSE) | ✅ | ❌ | ⚠️ فی درخواست |
| GitLab Duo | openai | OAuth (GitLab) | ✅ | ✅ | ✅ | ❌ |
| Devin CLI | openai | مقامی CLI لاگ اِن | ✅ | ✅ | ❌ | ✅ ٹاسک API |
| Codex Cloud | openai-responses | OAuth | ✅ | ❌ | ✅ | ✅ شرح کی حدود |
| Jules | openai | OAuth | ✅ | ✅ | ✅ | ✅ ٹاسک API |
| AgentRouter | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Grok-Web | openai | سیشن کوکی | ✅ | ✅ | ❌ | ❌ |
| Perplexity-Web | openai | سیشن کوکی | ✅ | ✅ | ❌ | ❌ |
| BlackBox-Web | openai | سیشن کوکی + TLS | ✅ | ✅ | ❌ | ❌ |
| Muse-Spark-Web | openai | سیشن کوکی | ✅ | ✅ | ❌ | ❌ |
| ModelScope | openai | API کلید | ✅ | ✅ | ❌ | ⚠️ کوٹا پالیسی |
| BazaarLink | openai | API کلید | ✅ | ✅ | ❌ | ❌ |
| Petals | openai | کوئی نہیں | ✅ | ✅ | ❌ | ❌ |
| Qoder | openai | OAuth / PAT | ✅ | ✅ | ✅ | ⚠️ فی درخواست |
| OpenCode (Go/Zen) | openai | OAuth | ✅ | ✅ | ✅ | ❌ |
| CLIProxyAPI | openai | حسبِ ضرورت | ✅ | ✅ | ❌ | ❌ |
فارمیٹ ترجمے کی کوریج
شناخت شدہ ماخذ فارمیٹس میں شامل ہیں:
openaiopenai-responsesclaudegemini
ہدف فارمیٹس میں شامل ہیں:
- OpenAI chat/Responses
- Claude
- Gemini/Antigravity envelope
- Kiro
- Cursor
تراجم میں OpenAI کو مرکزی فارمیٹ کے طور پر استعمال کیا جاتا ہے — تمام تبدیلیاں درمیانی مرحلے کے طور پر OpenAI سے گزرتی ہیں:
ماخذ فارمیٹ → OpenAI (مرکزی) → ہدف فارمیٹ
ماخذ پے لوڈ کی ساخت اور فراہم کنندہ کے ہدف فارمیٹ کی بنیاد پر تراجم متحرک طور پر منتخب کیے جاتے ہیں۔
ترجمے کی پائپ لائن میں اضافی پروسیسنگ پرتیں:
- رسپانس کی صفائی — OpenAI فارمیٹ والے رسپانسز (اسٹریمنگ اور نان اسٹریمنگ دونوں) سے غیر معیاری فیلڈز ہٹاتی ہے تاکہ SDK کی سخت مطابقت یقینی بنائی جا سکے
- کرداروں کی معیار بندی — غیر OpenAI اہداف کے لیے
developer→systemمیں تبدیل کرتی ہے؛ اور ان ماڈلز کے لیے جو سسٹم کردار مسترد کرتے ہیں (GLM، ERNIE)،system→userمیں ضم کرتی ہے - Think ٹیگ کا اخراج — مواد میں موجود
<think>...</think>بلاکس کو پارس کر کےreasoning_contentفیلڈ میں منتقل کرتی ہے - ساختی آؤٹ پٹ — OpenAI کے
response_format.json_schemaکو Gemini کےresponseMimeType+responseSchemaمیں تبدیل کرتی ہے
معاونت یافتہ API اینڈ پوائنٹس
| اینڈ پوائنٹ | فارمیٹ | ہینڈلر |
|---|---|---|
POST /v1/chat/completions |
OpenAI Chat | src/sse/handlers/chat.ts |
POST /v1/messages |
Claude Messages | وہی ہینڈلر (خودکار طور پر شناخت شدہ) |
POST /v1/responses |
OpenAI Responses | open-sse/handlers/responsesHandler.ts |
POST /v1/embeddings |
OpenAI Embeddings | open-sse/handlers/embeddings.ts |
GET /v1/embeddings |
ماڈلز کی فہرست | API روٹ |
POST /v1/images/generations |
OpenAI Images | open-sse/handlers/imageGeneration.ts |
GET /v1/images/generations |
ماڈلز کی فہرست | API روٹ |
POST /v1/providers/{provider}/chat/completions |
OpenAI Chat | ماڈل کی توثیق کے ساتھ ہر فراہم کنندہ کے لیے مخصوص |
POST /v1/providers/{provider}/embeddings |
OpenAI Embeddings | ماڈل کی توثیق کے ساتھ ہر فراہم کنندہ کے لیے مخصوص |
POST /v1/providers/{provider}/images/generations |
OpenAI Images | ماڈل کی توثیق کے ساتھ ہر فراہم کنندہ کے لیے مخصوص |
POST /v1/messages/count_tokens |
Claude Token Count | API روٹ |
GET /v1/models |
OpenAI Models list | API روٹ (chat + embedding + image + custom ماڈلز) |
GET /api/models/catalog |
کیٹلاگ | فراہم کنندہ + قسم کے لحاظ سے گروپ کیے گئے تمام ماڈلز |
POST /v1beta/models/*:streamGenerateContent |
Gemini native | API روٹ |
GET/PUT/DELETE /api/settings/proxy |
پراکسی کنفیگریشن | نیٹ ورک پراکسی کی کنفیگریشن |
POST /api/settings/proxy/test |
پراکسی کنیکٹیویٹی | پراکسی کی صحت/کنیکٹیویٹی جانچنے کا اینڈ پوائنٹ |
GET/POST/DELETE /api/provider-models |
فراہم کنندہ کے ماڈلز | کسٹم اور منظم دستیاب ماڈلز کی بنیاد بننے والا فراہم کنندہ ماڈل میٹا ڈیٹا |
بائی پاس ہینڈلر
بائی پاس ہینڈلر (open-sse/utils/bypassHandler.ts) Claude CLI کی معلوم "عارضی" درخواستوں — وارم اپ پنگز، عنوان اخذ کرنے، اور ٹوکن کی گنتی — کو روک کر upstream فراہم کنندہ کے ٹوکن استعمال کیے بغیر ایک جعلی جواب واپس کرتا ہے۔ یہ صرف اس وقت متحرک ہوتا ہے جب User-Agent میں claude-cli شامل ہو۔
درخواست کی لاگنگ اور آرٹیفیکٹس
پرانا فائل پر مبنی درخواست لاگر (open-sse/utils/requestLogger.ts) صرف سابقہ مطابقت کے لیے برقرار رکھا گیا ہے۔ موجودہ رن ٹائم معاہدہ درج ذیل استعمال کرتا ہے:
<repo>/logs/کے تحت لکھی جانے والی ایپلیکیشن اور آڈٹ لاگز کے لیےAPP_LOG_TO_FILE=truecall_logsمیں SQLite پر مبنی کال لاگ ریکارڈز- کال لاگ پائپ لائن فعال ہونے پر
${DATA_DIR}/call_logs/YYYY-MM-DD/...آرٹیفیکٹس
ناکامی کی صورتیں اور لچک
1) اکاؤنٹ/فراہم کنندہ کی دستیابی
- دوبارہ کوشش کے قابل upstream ناکامیوں پر کنکشن کول ڈاؤن
- درخواست کو ناکام قرار دینے سے پہلے متبادل اکاؤنٹ کا استعمال
- موجودہ ماڈل/فراہم کنندہ کا راستہ ختم ہونے پر کومبو ماڈل کا متبادل استعمال
2) ٹوکن کی میعاد ختم ہونا
- ریفریش کیے جا سکنے والے فراہم کنندگان کے لیے پیشگی جانچ اور دوبارہ کوشش کے ساتھ ریفریش
- بنیادی راستے میں ریفریش کی کوشش کے بعد 401/403 پر دوبارہ کوشش
3) اسٹریم کی حفاظت
- منقطع ہونے سے آگاہ اسٹریم کنٹرولر
- اسٹریم کے اختتام پر فلش اور
[DONE]ہینڈلنگ کے ساتھ ترجمہ اسٹریم - فراہم کنندہ کے استعمال کا میٹا ڈیٹا موجود نہ ہونے پر استعمال کے تخمینے کا متبادل طریقہ
4) کلاؤڈ سنک کی تنزلی
- سنک کی خرابیاں ظاہر کی جاتی ہیں، لیکن مقامی رن ٹائم جاری رہتا ہے
- شیڈیولر میں دوبارہ کوشش کی صلاحیت رکھنے والی منطق موجود ہے، لیکن دورانیہ وار عمل درآمد فی الحال بطور ڈیفالٹ صرف ایک کوشش والی سنک کو کال کرتا ہے
5) ڈیٹا کی سالمیت
- آغاز کے وقت SQLite اسکیما مائیگریشنز اور خودکار اپ گریڈ ہکس
- سابقہ JSON → SQLite مائیگریشن کے لیے مطابقتی راستہ
6) SSRF / آؤٹ باؤنڈ URL گارڈ
src/shared/network/outboundUrlGuard.tsتمام نجی/لوپ بیک/لنک-لوکل ہدف URLs کو فراہم کنندہ کے ایگزیکیوٹرز تک پہنچنے سے پہلے بلاک کرتا ہے- فراہم کنندہ کے ماڈل کی دریافت اور توثیقی روٹس
src/shared/network/safeOutboundFetch.tsاستعمال کرتے ہیں، جو ہر آؤٹ باؤنڈ درخواست سے پہلے گارڈ لاگو کرتا ہے - گارڈ کی خرابیاں HTTP 422 کے ساتھ
URL_GUARD_BLOCKEDکے طور پر ظاہر ہوتی ہیں اورproviderAudit.tsکے ذریعے تعمیلی آڈٹ ٹریل میں لاگ کی جاتی ہیں
مشاہدہ پذیری اور آپریشنل اشارے
رن ٹائم کی مرئیت کے ذرائع:
src/sse/utils/logger.tsسے کنسول لاگز- SQLite میں فی درخواست استعمال کے مجموعے (
usage_history،call_logs،proxy_logs) settings.detailed_logs_enabled=trueہونے پر SQLite (request_detail_logs) میں چار مراحل پر مشتمل تفصیلی پے لوڈ کیپچرزlog.txtمیں متنی درخواست اسٹیٹس لاگ (اختیاری/مطابقت کے لیے)APP_LOG_TO_FILE=trueہونے پرlogs/کے تحت اختیاری ایپلیکیشن لاگ فائلیں- کال لاگ پائپ لائن فعال ہونے پر
${DATA_DIR}/call_logs/کے تحت اختیاری درخواست آرٹیفیکٹس - UI کے استعمال کے لیے ڈیش بورڈ استعمال کے اینڈ پوائنٹس (
/api/usage/*)
تفصیلی درخواست پے لوڈ کیپچر ہر روٹ شدہ کال کے لیے زیادہ سے زیادہ چار JSON پے لوڈ مراحل محفوظ کرتا ہے:
- کلائنٹ سے موصول ہونے والی خام درخواست
- ترجمہ شدہ درخواست جو حقیقتاً upstream کو بھیجی گئی
- فراہم کنندہ کا جواب جو JSON کے طور پر دوبارہ تشکیل دیا گیا؛ اسٹریم شدہ جوابات کو حتمی خلاصے اور اسٹریم میٹا ڈیٹا تک مختصر کیا جاتا ہے
- OmniRoute کی جانب سے واپس کیا گیا حتمی کلائنٹ جواب؛ اسٹریم شدہ جوابات اسی مختصر خلاصے کی شکل میں محفوظ کیے جاتے ہیں
سیکیورٹی سے حساس حدود
- JWT سیکرٹ (
JWT_SECRET) ڈیش بورڈ سیشن کوکی کی تصدیق/دستخط کو محفوظ بناتا ہے - ابتدائی پاس ورڈ بوٹسٹریپ (
INITIAL_PASSWORD) کو پہلی بار کی پروویژننگ کے لیے واضح طور پر کنفیگر کیا جانا چاہیے - API کلید HMAC سیکرٹ (
API_KEY_SECRET) مقامی طور پر تیار کردہ API کلید کے فارمیٹ کو محفوظ بناتا ہے - پرووائیڈر سیکرٹس (API کلیدیں/ٹوکنز) مقامی DB میں محفوظ کیے جاتے ہیں اور انہیں فائل سسٹم کی سطح پر تحفظ دیا جانا چاہیے
- کلاؤڈ سنک اینڈ پوائنٹس API کلید کی توثیق + مشین id کے مفہوم پر انحصار کرتے ہیں
ماحول اور رن ٹائم میٹرکس
کوڈ کے ذریعے فعال طور پر استعمال ہونے والے ماحول کے متغیرات:
- ایپ/توثیق:
JWT_SECRET،INITIAL_PASSWORD - اسٹوریج:
DATA_DIR - اختیاری اسٹوریج بیس اوور رائیڈ (Linux/macOS پر جب
DATA_DIRسیٹ نہ ہو):XDG_CONFIG_HOME - سیکیورٹی ہیشنگ:
API_KEY_SECRET،MACHINE_ID_SALT - لاگنگ:
APP_LOG_TO_FILE،APP_LOG_RETENTION_DAYS،CALL_LOG_RETENTION_DAYS - سنک/کلاؤڈ URL سازی:
NEXT_PUBLIC_BASE_URL،NEXT_PUBLIC_CLOUD_URL - آؤٹ باؤنڈ پراکسی:
HTTP_PROXY،HTTPS_PROXY،ALL_PROXY،NO_PROXYاور چھوٹے حروف والی اقسام - SOCKS5 فیچر فلیگز:
ENABLE_SOCKS5_PROXY،NEXT_PUBLIC_ENABLE_SOCKS5_PROXY - پلیٹ فارم/رن ٹائم معاونین (ایپ کے لیے مخصوص کنفیگریشن نہیں):
APPDATA،NODE_ENV،PORT،HOSTNAME
معلوم آرکیٹیکچرل نکات
usageDbاورlocalDbلیگیسی فائل مائیگریشن کے ساتھ ایک ہی بیس ڈائریکٹری پالیسی (DATA_DIR->XDG_CONFIG_HOME/omniroute->~/.omniroute) استعمال کرتے ہیں۔- معنوی انحراف سے بچنے کے لیے
/api/v1/route.tsاسی متحد کیٹلاگ بلڈر کو ذمہ داری سونپتا ہے جو/api/v1/models(src/app/api/v1/models/catalog.ts) استعمال کرتا ہے۔ - فعال ہونے پر ریکوئسٹ لاگر مکمل ہیڈرز/باڈی لکھتا ہے؛ لاگ ڈائریکٹری کو حساس تصور کریں۔
- کلاؤڈ کا طرزِ عمل درست
NEXT_PUBLIC_BASE_URLاور کلاؤڈ اینڈ پوائنٹ کی قابلِ رسائی ہونے پر منحصر ہے۔ open-sse/ڈائریکٹری کو@omniroute/open-ssenpm ورک اسپیس پیکیج کے طور پر شائع کیا جاتا ہے۔ سورس کوڈ اسے@omniroute/open-sse/...کے ذریعے امپورٹ کرتا ہے (جسے Next.jstranspilePackagesکے ذریعے حل کرتا ہے)۔ مطابقت برقرار رکھنے کے لیے اس دستاویز میں فائل پاتھ اب بھی ڈائریکٹری کا نامopen-sse/استعمال کرتے ہیں۔- ڈیش بورڈ میں چارٹس قابلِ رسائی، انٹرایکٹو اینالیٹکس ویژولائزیشنز (ماڈل استعمال کے بار چارٹس، کامیابی کی شرحوں کے ساتھ پرووائیڈر بریک ڈاؤن ٹیبلز) کے لیے Recharts (SVG پر مبنی) استعمال کرتے ہیں۔
- E2E ٹیسٹس Playwright (
tests/e2e/) استعمال کرتے ہیں، جنہیںnpm run test:e2eکے ذریعے چلایا جاتا ہے۔ یونٹ ٹیسٹس Node.js test runner (tests/unit/) استعمال کرتے ہیں، جنہیںnpm run test:unitکے ذریعے چلایا جاتا ہے۔src/کے تحت سورس کوڈ TypeScript (.ts/.tsx) ہے؛open-sse/ورک اسپیس JavaScript (.js) ہی رہتا ہے۔ - سیٹنگز صفحہ 7 ٹیبز میں منظم ہے: عمومی، ظاہری شکل، AI، سیکیورٹی، راؤٹنگ، لچک پذیری، ایڈوانسڈ۔ لچک پذیری کا صفحہ صرف ریکوئسٹ کیو، کنکشن کول ڈاؤن، پرووائیڈر بریکر، اور کول ڈاؤن کے انتظار کے طرزِ عمل کو کنفیگر کرتا ہے؛ بریکر کی لائیو رن ٹائم حالت ہیلتھ صفحے پر دکھائی جاتی ہے۔
- Context Relay حکمتِ عملی (
context-relay) دو تہوں میں تقسیم ہے:combo.tsفیصلہ کرتا ہے کہ آیا ہینڈ آف تیار کیا جانا چاہیے، جبکہchat.tsاکاؤنٹ ریزولیوشن کے بعد ہینڈ آف داخل کرتا ہے۔ ہینڈ آف ڈیٹاcontext_handoffsSQLite ٹیبل میں موجود ہوتا ہے۔ یہ تقسیم دانستہ ہے کیونکہ صرفchat.tsجانتا ہے کہ آیا اصل اکاؤنٹ تبدیل ہوا تھا۔ - پراکسی کا نفاذ اب جامع ہے:
tokenHealthCheck.tsفی کنکشن پراکسی ریزولو کرتا ہے،/api/providers/validate،runWithProxyContextاستعمال کرتا ہے، اورproxyFetch.ts، Node 22 پر ڈسپیچر مطابقت برقرار رکھنے کے لیےundici.fetch()استعمال کرتا ہے۔ - Node.js رن ٹائم پالیسی کی شناخت:
/api/settings/require-login،nodeVersionاورnodeCompatibleفیلڈز واپس کرتا ہے۔ جب رن ٹائم معاونت یافتہ محفوظ Node.js لائنز سے باہر ہو تو لاگ اِن صفحہ انتباہی بینر دکھاتا ہے۔
آپریشنل تصدیقی چیک لسٹ
- سورس سے بلڈ کریں:
npm run build - Docker امیج بلڈ کریں:
docker build -t omniroute . - سروس شروع کریں اور تصدیق کریں:
GET /api/settingsGET /api/v1/models- جب
PORT=20128ہو تو CLI کا ہدفی بنیادی URL،http://<host>:20128/v1ہونا چاہیے