1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
122 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 · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
🌐 භාෂා: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)
අවසන් වරට යාවත්කාලීන කළේ: 2026-06-28
විධායක සාරාංශය
OmniRoute යනු Next.js මත ගොඩනගා ඇති දේශීය AI මාර්ගගත කිරීමේ ද්වාරයක් සහ උපකරණ පුවරුවකි.
එය තනි OpenAI-අනුකූල අන්ත ලක්ෂ්යයක් (/v1/*) සපයන අතර, පරිවර්තනය, විකල්ප මාර්ගගත කිරීම, ටෝකන නැවුම් කිරීම සහ භාවිතය ලුහුබැඳීම සමඟ බහු upstream සපයන්නන් හරහා ගමනාගමනය මාර්ගගත කරයි.
ප්රධාන හැකියාවන්:
- CLI/මෙවලම් සඳහා OpenAI-අනුකූල API අතුරුමුහුණත (සපයන්නන් 355ක්, ක්රියාත්මක කරන්නන් 108ක්)
- සපයන්නන්ගේ ආකෘති අතර ඉල්ලීම්/ප්රතිචාර පරිවර්තනය
- ආකෘති සංයෝජන විකල්ප මාර්ගගත කිරීම (බහු-ආකෘති අනුපිළිවෙළ)
compositeTiersඅනුව ධාවන කාලයේදී අනුපිළිවෙළ සකසන ව්යුහගත සංයෝජන පියවර (provider + model + connection)- ගිණුම්-මට්ටමේ විකල්ප මාර්ගගත කිරීම (එක් සපයන්නෙකුට බහු ගිණුම්)
- ප්රධාන කතාබස් මාර්ගයේ කෝටා පූර්ව පරීක්ෂාව සහ කෝටාව සැලකිල්ලට ගන්නා P2C ගිණුම් තේරීම
- OAuth + API-key සපයන්නන්ගේ සම්බන්ධතා කළමනාකරණය (OAuth සපයන්නා මොඩියුල 22ක්)
/v1/embeddingsහරහා embedding ජනනය (සපයන්නන් 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>...</think>) - දැඩි OpenAI SDK අනුකූලතාව සඳහා ප්රතිචාර පිරිසිදු කිරීම
- සපයන්නන් අතර අනුකූලතාව සඳහා භූමිකා සාමාන්යකරණය (developer→system, system→user)
- ව්යුහගත ප්රතිදාන පරිවර්තනය (json_schema → Gemini responseSchema)
- සපයන්නන්, යතුරු, අන්වර්ථ, සංයෝජන, සැකසුම් සහ මිලකරණය සඳහා දේශීය ස්ථායී ගබඩාකරණය (DB මොඩියුල 122ක්)
- භාවිතය/පිරිවැය ලුහුබැඳීම සහ ඉල්ලීම් ලොග් කිරීම
- බහු-උපාංග/තත්ත්ව සමමුහුර්තකරණය සඳහා විකල්ප වලාකුළු සමමුහුර්තකරණය
- API ප්රවේශ පාලනය සඳහා IP අවසර ලැයිස්තුව/අවහිර ලැයිස්තුව
- චින්තන අයවැය කළමනාකරණය (passthrough/auto/custom/adaptive)
- ගෝලීය පද්ධති prompt ඇතුළත් කිරීම
- සැසි ලුහුබැඳීම සහ ඇඟිලි සලකුණුකරණය
- සපයන්නා-විශේෂිත පැතිකඩ සහිත ගිණුමකට අදාළ වැඩිදියුණු කළ අනුපාත සීමාකරණය
- සපයන්නන්ගේ ප්රත්යාස්ථතාව සඳහා circuit breaker රටාව
- mutex අගුලු දැමීම සමඟ anti-thundering herd ආරක්ෂාව
- අත්සන-පදනම් වූ ඉල්ලීම් අනුපිටපත් ඉවත් කිරීමේ හැඹිලිය
- වසම් ස්තරය: පිරිවැය නීති, විකල්ප මාර්ගගත කිරීමේ ප්රතිපත්තිය, අගුලු දැමීමේ ප්රතිපත්තිය
- Context Relay: ගිණුම් මාරු කිරීමේ අඛණ්ඩතාව සඳහා සැසි භාරදීමේ සාරාංශ
- වසම් තත්ත්ව ස්ථායීකරණය (විකල්ප මාර්ගගත කිරීම්, අයවැය, අගුලු දැමීම් සහ circuit breakers සඳහා SQLite write-through හැඹිලිය)
- මධ්යගත ඉල්ලීම් ඇගයීම සඳහා ප්රතිපත්ති එන්ජිම (lockout → budget → fallback)
- p50/p95/p99 ප්රමාද සමූහනය සහිත ඉල්ලීම් ටෙලිමෙට්රිය
combo_execution_key/combo_step_idහරහා සංයෝජන ඉලක්ක ටෙලිමෙට්රිය සහ ඓතිහාසික සංයෝජන ඉලක්ක සෞඛ්ය තත්ත්වය- අන්තයේ සිට අන්තය දක්වා ලුහුබැඳීම සඳහා සහසම්බන්ධතා ID (X-Request-Id)
- එක් එක් API යතුර අනුව ඉවත් වීමේ විකල්පය සහිත අනුකූලතා විගණන ලොග් කිරීම
- LLM තත්ත්ව සහතිකය සඳහා Eval රාමුව
- තත්ය කාලීන සපයන්නන්ගේ circuit breaker තත්ත්වය සහිත සෞඛ්ය උපකරණ පුවරුව
- ප්රවාහන 3ක් (stdio/SSE/Streamable HTTP) සහිත MCP Server (මෙවලම් 110ක්)
- කුසලතා සහ කාර්ය ජීවන චක්රය සහිත A2A Server (JSON-RPC 2.0 + SSE)
- මතක පද්ධතිය (උකහා ගැනීම, ඇතුළත් කිරීම, නැවත ලබාගැනීම, සාරාංශකරණය)
- කුසලතා පද්ධතිය (ලේඛනය, ක්රියාත්මක කරන්නා, sandbox, අන්තර්ගත කුසලතා)
- සහතික කළමනාකරණය සහ DNS හැසිරවීම සහිත MITM proxy
- Prompt injection guard middleware
- Caveman, RTK, stacked pipelines, compression combos, භාෂා ඇසුරුම් සහ විශ්ලේෂණ සහිත prompt සම්පීඩන pipeline එක
- ACP (Agent Communication Protocol) ලේඛනය
- මොඩියුලර් OAuth සපයන්නන් (
src/lib/oauth/providers/යටතේ තනි මොඩියුල 22ක්) - අස්ථාපනය කිරීමේ/සම්පූර්ණයෙන් අස්ථාපනය කිරීමේ scripts
- OAuth පරිසර අලුත්වැඩියා ක්රියාව
- OpenAI-අනුකූල WS සේවාලාභීන් සඳහා WebSocket bridge (
/v1/ws) - සමමුහුර්තකරණ ටෝකන කළමනාකරණය (නිකුත් කිරීම/අවලංගු කිරීම, ETag-අනුවාදිත වින්යාස bundle බාගැනීම)
- GLM Thinking (
glmt) පළමු පන්තියේ සපයන්නා preset එක - දෙමුහුන් ටෝකන ගණනය කිරීම (ඇස්තමේන්තු විකල්පයක් සහිත සපයන්නා-පාර්ශ්වීය
/messages/count_tokens) - ආකෘති අන්වර්ථ ස්වයංක්රීයව මූලාරම්භ කිරීම (ආරම්භයේදී cross-proxy උපභාෂා සාමාන්යකරණ 30කට වැඩි)
- SSRF guard, පුද්ගලික URL අවහිර කිරීම සහ වින්යාස කළ හැකි නැවත උත්සාහ කිරීම සහිත ආරක්ෂිත outbound fetch
- වින්යාස කළ හැකි
requestRetryසහmaxRetryIntervalSecසහිත cooldown-සැලකිල්ලට ගන්නා කතාබස් නැවත උත්සාහ - ආරම්භයේදී Zod භාවිත කරන ධාවන කාල පරිසර වලංගුකරණය
- පිටුකරණය, සපයන්නන්ගේ CRUD සිදුවීම් සහ SSRF-අවහිර කළ වලංගුකරණ ලොග් කිරීම සහිත අනුකූලතා විගණන v2
ප්රාථමික ධාවන කාල ආකෘතිය:
src/app/api/*යටතේ ඇති Next.js යෙදුම් මාර්ග උපකරණ පුවරු API සහ අනුකූලතා API යන දෙකම ක්රියාත්මක කරයිsrc/sse/*+open-sse/*තුළ ඇති හවුල් SSE/මාර්ගගත කිරීමේ හරය සපයන්නන් ක්රියාත්මක කිරීම, පරිවර්තනය, streaming, විකල්ප මාර්ගගත කිරීම සහ භාවිතය හසුරුවයි
යොමු රූප සටහන්
v3.8.0 වේදිකාව සඳහා සම්මත, අනුවාද පාලිත Mermaid මූලාශ්ර
docs/diagrams/ තුළ ඇත. දිශානතිය සඳහා ඒවායින් දෙකක් පහතින් නැවත දක්වා ඇත;
අනෙක් ඒවා ඒවාට අදාළ වසම්-විශේෂිත මාර්ගෝපදේශවලින් සබැඳි කර ඇත.
මූලාශ්රය: diagrams/request-pipeline.mmd
මූලාශ්රය: diagrams/resilience-3layers.mmd — මෙය RESILIENCE_GUIDE.md සහ
CLAUDE.mdප්රත්යස්ථතා යොමුවෙන්ද සබැඳි කර ඇත.
විෂය පථය සහ සීමා
විෂය පථයට ඇතුළත්
- දේශීය ද්වාර ධාවන පරිසරය
- උපකරණ පුවරු කළමනාකරණ API
- සැපයුම්කරු සත්යාපනය සහ ටෝකන නැවුම් කිරීම
- ඉල්ලීම් පරිවර්තනය සහ 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— පිටතට යන webhook දායකත්ව, රහස් භ්රමණය, නැවත උත්සාහ කිරීමේ සංඛ්යාලේඛන/dashboard/batch— කාණ්ඩ කාර්ය ඉදිරිපත් කිරීම සහ ප්රගතිය/dashboard/cache— read-through සහ තර්කන හැඹිලි සංඛ්යාලේඛන, ඉවත් කිරීමේ පාලන/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 යෙදුම් මාර්ග)
ප්රධාන නාමාවලි:
- අනුකූලතා API සඳහා
src/app/api/v1/*සහsrc/app/api/v1beta/* - කළමනාකරණ/වින්යාස API සඳහා
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— embedding ජනනය (සපයන්නන් 6ක්)src/app/api/v1/images/generations/route.ts— රූප ජනනය (Antigravity/Nebius ඇතුළුව සපයන්නන් 4කට වැඩි ගණනක්)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— එක් එක් සපයන්නා සඳහා වෙන්වූ embeddingssrc/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* - සපයන්නාගේ nodes:
src/app/api/provider-nodes* - අභිරුචි ආකෘති:
src/app/api/provider-models(GET/POST/DELETE) - ආකෘති නාමාවලිය:
src/app/api/models/route.ts(GET) - Proxy වින්යාසය:
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/* - සමමුහුර්තකරණය/cloud:
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) - පද්ධති prompt:
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) — ඉල්ලීම් පෝලිම, සම්බන්ධතා cooldown, සපයන්නාගේ breaker, cooldown සඳහා රැඳී සිටීමේ වින්යාසය - ප්රත්යස්ථතාව යළි සැකසීම:
src/app/api/resilience/reset(POST) — සපයන්නාගේ breakers යළි සකසයි - Cache සංඛ්යාලේඛන:
src/app/api/cache/stats(GET/DELETE) - Telemetry:
src/app/api/telemetry/summary(GET) - අයවැය:
src/app/api/usage/budget(GET/POST) - Fallback දාම:
src/app/api/fallback/chains(GET/POST/DELETE) - අනුකූලතා විගණනය:
src/app/api/compliance/audit-log(GET, පිටුකරණය + ව්යුහගත metadata සමඟ) - ඇගයීම්:
src/app/api/evals(GET/POST),src/app/api/evals/[suiteId](GET) - ප්රතිපත්ති:
src/app/api/policies(GET/POST) - සමමුහුර්තකරණ tokens:
src/app/api/sync/tokens(GET/POST),src/app/api/sync/tokens/[id](GET/DELETE) - වින්යාස bundle:
src/app/api/sync/bundle(GET, සැකසුම්/සපයන්නන්/සංයෝජන/යතුරු පිළිබඳ ETag අනුවාදගත snapshot එකක්) - WebSocket:
src/app/api/v1/ws/route.ts— OpenAI-අනුකූල WS clients සඳහා Upgrade handler එකක්
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 - Think ටැග් විග්රාහකය:
open-sse/utils/thinkTagParser.ts - Embedding හසුරුවනය:
open-sse/handlers/embeddings.ts - Embedding සපයන්නන්ගේ රෙජිස්ට්රිය:
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 - Wildcard මොඩල මාර්ගගත කිරීම:
open-sse/services/wildcardRouter.ts - ඉල්ලීම් අනුපාත සීමා කළමනාකරණය:
open-sse/services/rateLimitManager.ts - පරිපථ බිඳිනය:
src/shared/utils/circuitBreaker.ts - සන්දර්භ භාරදීම:
open-sse/services/contextHandoff.ts— context-relay උපායමාර්ගය සඳහා භාරදීමේ සාරාංශ උත්පාදනය සහ ඇතුළු කිරීම - සම්පීඩනය:
open-sse/services/compression/*— සපයන්නාගේ පරිවර්තනයට පෙර සක්රිය සම්පීඩනය; Caveman රීති, RTK පෙරහන්, ස්තරගත නළමාර්ග, සම්පීඩන සංයෝජන, සංඛ්යාලේඛන සහ වලංගුකරණය ඇතුළත් වේ - Codex කෝටා ලබාගැනීම:
open-sse/services/codexQuotaFetcher.ts— context-relay භාරදීමේ තීරණ සඳහා Codex කෝටාව ලබාගනී - Cooldown පිළිබඳ දැනුවත් නැවත උත්සාහ කිරීම:
src/sse/services/cooldownAwareRetry.ts— වින්යාස කළ හැකිrequestRetry/maxRetryIntervalSecසමඟ එක් එක් මොඩලයට අදාළ cooldown නැවත උත්සාහ කිරීම් - ආරක්ෂිත පිටතට යන fetch:
src/shared/network/safeOutboundFetch.ts— SSRF ආරක්ෂාව, පෞද්ගලික-URL අවහිර කිරීම, නැවත උත්සාහ කිරීම සහ කාලසීමාව සමඟ ආරක්ෂිත සපයන්නා/මොඩල fetch කිරීම - පිටතට යන URL ආරක්ෂකය:
src/shared/network/outboundUrlGuard.ts— පෞද්ගලික/localhost CIDR පරාසවලට එරෙහිව සපයන්නාගේ URL වලංගු කරයි - සපයන්නාගේ ඉල්ලීම් පෙරනිමි:
open-sse/services/providerRequestDefaults.ts— සපයන්නා මට්ටමේmaxTokens,temperature,thinkingBudgetTokensපෙරනිමි - GLM සපයන්නාගේ නියතයන්:
open-sse/config/glmProvider.ts— හවුල් GLM මොඩල, කෝටා URL, GLMT කාලසීමා/පෙරනිමි - Antigravity upstream:
open-sse/config/antigravityUpstream.ts— මූලික URL සහ සොයාගැනීමේ මාර්ග නියතයන් - Codex සේවාලාභී නියතයන්:
open-sse/config/codexClient.ts— අනුවාදගත user-agent සහ client-version අගයන් - මොඩල අන්වර්ථ නාම මූලික දත්ත:
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 - ඉල්ලීම් හැඳුනුම්කාරකය:
src/shared/utils/requestId.ts - Fetch කාලසීමාව:
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 - සැහැල්ලු wrapper එක:
src/lib/oauth/providers.ts— තනි මොඩියුලවලින් නැවත export කරයි
5) කාවැද්දූ සේවා (v3.8.4)
OmniRoute හට දේශීයව ක්රියාත්මක වන, කාවැද්දූ සේවා ලෙස හැඳින්වෙන AI මෙවලම් ක්රියාවලි ස්ථාපනය කිරීමට, අධීක්ෂණය කිරීමට සහ ඒවා වෙත මාර්ගගත කිරීමට හැකිය. 9Router, CLIProxyAPI, Bifrost, Mux සහ Dario යන සේවා පහ සපයනු ලැබේ.
ගෘහනිර්මාණ ස්තර:
- UI (
/dashboard/providers/services) — ජීවන චක්ර පාලක, සජීවී ලොග් ප්රවාහය, API යතුරු කළමනාකරණය සහ (9Router සඳහා) අභ්යන්තර reverse proxy එකක් හරහා කාවැද්දූ ස්වදේශීය UI එකක් සහිත ටැබ් දෙකක පිටුවකි. - API (
/api/services/{name}/*) — 9Router සඳහා endpoints 11ක්, CLIProxyAPI සඳහා 10ක්, Bifrost / Mux / Dario සඳහා 8 බැගින් ඇති අතර, සියල්ල LOCAL_ONLY ලෙස වර්ගීකරණය කර ඇත (දෘඪ රීතිය #17). හවුල්GET /api/services/[name]/logsSSE endpoint එක සේවා දෙකටම සේවය සපයයි. - අධීක්ෂකය (
src/lib/services/) — සාමාන්යServiceSupervisorclass එකchild_process.spawnවටා ආවරණයක් සපයන අතර, SSE ලොග් ප්රවාහය සඳහා 5 MB ring buffer එකක්, සෞඛ්ය පරීක්ෂණ ලූපයක්, atomic මෙහෙයුම් අගුලක් සහ SIGTERM→SIGKILL ක්රමවත් වසා දැමීමක් පවත්වාගෙන යයි.bootstrap.tsක්රියාවලිය ආරම්භයේදී වින්යාස කර ඇති සියලු සේවා සම්බන්ධ කරයි. - සැපයුම්කරු/ක්රියාත්මකකාරකය (
open-sse/executors/ninerouter.ts) — 9Router සැබෑ සැපයුම්කරුවෙකු ලෙස නිරාවරණය කර ඇත. ආකෘතිවලට9router/{sub}/{model}උපසර්ගය යොදන අතර 9Router හි/v1/modelsendpoint එකෙන් සෑම මිනිත්තු 5කට වරක් ඒවා සමමුහුර්ත කෙරේ.
ගැඹුරු විස්තරය: docs/frameworks/EMBEDDED-SERVICES.md
ප්රධාන උපපද්ධති (v3.8.0)
A. ස්වයංක්රීය Combo එන්ජිම
ස්ථිතික combo අර්ථදැක්වීමක් මත රඳා සිටීම වෙනුවට, Auto Combo ඉල්ලීම සිදු වන අවස්ථාවේදී
මාර්ගගත කිරීමේ ඉලක්ක ගතිකව ලකුණු කර තෝරා ගනී. එය auto/* ආකෘති උපසර්ග පවුල බලගන්වයි.
- එන්ජින් ප්රවේශය:
open-sse/services/autoCombo/(autoComboEngine.ts,scoringEngine.ts,virtualFactory.ts,modePacks.ts) - Resolver:
src/domain/comboResolver.ts(auto/උපසර්ගය ස්වයංක්රීයව හඳුනා ගැනීම) - උපකරණ පුවරුව:
/dashboard/auto-combo - දුරමිතිය:
auto_combo_decisionsSQLite වගුව
ප්රධාන හැකියාවන්:
- මාර්ගගත කිරීමේ උපායමාර්ග 19ක් (ප්රමුඛතාව, බරිත, පළමුව-පිරවීම, round-robin, P2C, අහඹු,
අවම-භාවිත, පිරිවැය-ප්රශස්තකරණය කළ, යළි පිහිටුවීම-සැලකිල්ලට ගන්නා, යළි පිහිටුවීමේ-කවුළුව, headroom, දැඩි-අහඹු,
auto, lkgp, සන්දර්භ-ප්රශස්තකරණය කළ, සන්දර්භ-relay, fusion, සහ අතිරේක fallback මාර්ගයක්) —
auto යනු v3.8.0 හි ප්රධානතම එක් කිරීමයි;
fusion(panel fan-out + judge synthesis,open-sse/services/fusion.ts) v3.8.36 හි අලුත්ය. - සාධක 16ක ලකුණුකරණය: කෝටාව, සෞඛ්යය, ප්රතිලෝම පිරිවැය, ප්රතිලෝම ප්රමාදය, කාර්ය ගැළපීම සහ
තවත් දහයක්. සාධක සහ ඒවායේ පෙරනිමි බර පිළිබඳ ප්රමිත වගුව
docs/routing/AUTO-COMBO.mdතුළ ඇත — එය මෙහි යළි සඳහන් කිරීමෙන් යල්පැනීමට ඉඩ ඇති දෙවන ස්ථානයක් නිර්මාණය වනු ඇත. - ගැළපෙන නම් කළ combo එකක් නොමැති විට අතථ්ය factory එක තාවකාලික combos නිර්මාණය කරයි, සෞඛ්ය සම්පන්න සක්රිය සැපයුම්කරු සම්බන්ධතාවලින් අපේක්ෂකයන් ලබා ගනී.
- ස්වයංක්රීය උපසර්ග:
auto/coding,auto/cheap,auto/fast,auto/offline,auto/smart,auto/lkgp— සෑම එකක්ම සුසර කළ බර පැතිකඩකින් සහාය ලබයි. - mode packs 6ක්:
ship-fast,cost-saver,quality-first,offline-friendly,reliability-firstසහchaos-mode— උපකරණ පුවරුවෙන් කැඳවිය හැකි පෙරසැකසූ බර වින්යාසයන්ය. (ඉහතauto/*උපසර්ග සමඟ මෙය පටලවා නොගන්න; ඒවා ඉල්ලීම්-වේලා ප්රභේද වේ.)
සම්පූර්ණ ඇල්ගොරිතමික විස්තර සඳහා (සාධක සූත්ර, බර සුසර කිරීම),
docs/routing/AUTO-COMBO.md බලන්න.
B. Cloud Agents
Cloud Agents මඟින් තෙවන පාර්ශ්ව විසින් සත්කාරකත්වය සපයන code-agent වේදිකා (Codex Cloud, Devin, Jules), ඒකාකාර DB-backed කාර්ය ජීවන චක්රයක් පිටුපස ආවරණය කරයි. සියලු කාර්ය නිර්මාණය/පරීක්ෂා කිරීමේ endpoints සඳහා කළමනාකරණ සත්යාපනය අවශ්ය වේ.
- මොඩියුල මූලය:
src/lib/cloudAgent/(baseAgent.ts,registry.ts,api.ts,types.ts,db.ts, සහagents/යටතේ එක් එක් agent සඳහා වන උපනාමාවලි) - එක් එක් agent සඳහා වන ක්රියාත්මක කිරීම්:
agents/codex/,agents/devin/,agents/jules/ - පොදු endpoints:
/api/v1/agents/tasks/*(ලැයිස්තුගත කිරීම/නිර්මාණය කිරීම/ලබා ගැනීම/අවලංගු කිරීම) - කළමනාකරණ endpoints:
/api/cloud/*(ප්රතිපාදනය, තත්ත්වය, කාණ්ඩ සැකසීම) - උපකරණ පුවරුව:
/dashboard/cloud-agents - ගබඩාව:
cloud_agent_tasksවගුව
එක් එක් agent සඳහා වන ප්රතිපාදන සහ OAuth විශේෂතා සඳහා,
docs/frameworks/CLOUD_AGENT.md බලන්න.
C. ආරක්ෂක සීමා
ආරක්ෂක සීමා මොඩියුලය යනු PII, prompt injection සහ අනාරක්ෂිත දෘශ්ය අන්තර්ගතය සඳහා ඉල්ලීම් සහ ප්රතිචාර පරීක්ෂා කරන, ක්රියාත්මකව තිබියදීම යළි පූරණය කළ හැකි middleware ස්තරයකි. උල්ලංඝන සිදු වූ විට, පහළ ප්රවාහයේ කැඳවුම්කරුවන්ට යළි උත්සාහ කිරීමට හෝ ශාඛාගත වීමට ඉඩ සලසමින්, ව්යුහගත දෝෂ කේතයක් සමඟ HTTP 503 මඟින් ඉල්ලීම කෙටි කර අවසන් කරයි.
- මොඩියුල මූලය:
src/lib/guardrails/(base.ts,registry.ts,piiMasker.ts,promptInjection.ts,visionBridge.ts,visionBridgeHelpers.ts) - ක්රියාත්මකව තිබියදී යළි පූරණය: registry එක වින්යාස වෙනස්කම් නිරීක්ෂණය කර දාමය එම ස්ථානයේම යළි ගොඩනඟයි
- සම්බන්ධ කිරීමේ ස්ථාන: chat handler ප්රවේශය, රූප ජනන handler එක, ප්රතිචාර sanitizer එක
- HTTP ගිවිසුම: උල්ලංඝන
error.code = "GUARDRAIL_VIOLATION"සමඟ503ලෙස නිරාවරණය වේ
නීති කට්ටල සැකසීම සහ සීමා අගයන් සුසර කිරීම සඳහා,
docs/security/GUARDRAILS.md බලන්න.
D. වසම් ස්තරය
src/domain/ namespace එක ප්රතිපත්ති තීරණ මධ්යගත කරයි; එබැවින් route handlers හට
lockout/අයවැය/fallback තර්ක තමන් විසින් එක්රැස් කිරීමට අවශ්ය නොවේ.
- ප්රතිපත්ති එන්ජිම:
src/domain/policyEngine.ts— ක්රියාත්මක කිරීමට පෙර ඇගයීම සඳහා තනි ප්රවේශ ලක්ෂ්යය (lockout → අයවැය → fallback අනුපිළිවෙළ) - පිරිවැය නීති:
src/domain/costRules.ts - Fallback ප්රතිපත්තිය:
src/domain/fallbackPolicy.ts - Lockout ප්රතිපත්තිය:
src/domain/lockoutPolicy.ts - ටැග්-පාදක මාර්ගගත කිරීම:
src/domain/tagRouter.ts - Combo resolver:
src/domain/comboResolver.ts— combo නම්, auto/* උපසර්ග සහ wildcard ආකෘති ඉලක්ක සංයුක්ත ක්රියාත්මක කිරීමේ සැලසුම් බවට විසඳයි - සම්බන්ධතා/ආකෘති නීති joiner:
src/domain/connectionModelRules.ts - ආකෘති ලබාගත හැකි බවේ snapshots:
src/domain/modelAvailability.ts - සැපයුම්කරු කල් ඉකුත්වීම නිරීක්ෂණය:
src/domain/providerExpiration.ts - කෝටා cache එක:
src/domain/quotaCache.ts - පරිහානි තත්ත්වය:
src/domain/degradation.ts - වින්යාස විගණනය:
src/domain/configAudit.ts - OmniRoute ප්රතිචාර metadata builder:
src/domain/omnirouteResponseMeta.ts - ඇගයීම් උපපද්ධතිය:
src/domain/assessment/— කාලානුරූප ඇගයීම් jobs
E. අවසර දීමේ Pipeline එක
අවසර දීමේ නළ මාර්ගය පැමිණෙන සෑම ඉල්ලීමක්ම වර්ගීකරණය කර, යොමු කිරීමට පෙර සුදුසු ප්රතිපත්ති දාමය යොදයි.
- නළ මාර්ග ප්රවේශය:
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
පොදු සහ කළමනාකරණ මාර්ග අතර දැඩි සීමාවක් පවතී: agent/cooldown APIs සහ සපයන්නාගේ වෙනස් කිරීම් සඳහා කළමනාකරණ සත්යාපනය අවශ්ය වේ (නොමැති නම් HTTP 401).
සම්පූර්ණ මාර්ග වර්ගීකරණ නීති සඳහා,
docs/architecture/AUTHZ_GUIDE.md බලන්න.
F. කාර්ය ප්රවාහ FSM සහ කාර්ය-සංවේදී රවුටරය
හඳුනාගත් කාර්ය ප්රවාහ අදියර (සැලසුම්කරණය, ක්රියාත්මක කිරීම, සමාලෝචනය) සහ පසුබිම් කාර්ය අනුබද්ධතාව මත පදනම්ව ගමනාගමනය යොමු කිරීමට, combo තේරීමට ඉහළින් ස්ථරගත කළ සීමිත-තත්ත්ව-යන්ත්රයකින් මෙහෙයවෙන රවුටරයකි.
- කාර්ය ප්රවාහ 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. සපයන්නාට-විශේෂිත ප්රත්යස්ථතාව
සපයන්නන් කිහිපදෙනෙකු සමස්ත circuit breaker / සම්බන්ධතා cooldown / ආකෘති lockout ස්ථර මත අමතරව ක්රියා කරන කැපවූ ප්රත්යස්ථතා සහ රහස්යතා මොඩියුල සපයයි:
- Antigravity 429 එන්ජිම:
open-sse/services/antigravity429Engine.ts(අනන්යතාව මාරු කරයි, ප්රතිචාර ශීර්ෂක පිරිසිදු කරයි, credits/version නිරීක්ෂණයantigravityCredits.ts,antigravityHeaderScrub.ts,antigravityHeaders.ts,antigravityIdentity.ts,antigravityVersion.tsහරහා මෙහෙයවයි) - ModelScope කෝටා ප්රතිපත්තිය:
open-sse/services/modelscopePolicy.ts - Claude Code CCH (Compatibility Channel Handshake):
open-sse/services/claudeCodeCCH.ts, සහclaudeCodeCompatible.ts,claudeCodeConstraints.ts,claudeCodeExtraRemap.ts,claudeCodeToolRemapper.ts - Claude Code fingerprint හැඩගැස්වීම:
open-sse/services/claudeCodeFingerprint.ts - Claude Code අපැහැදිලි කිරීම:
open-sse/services/claudeCodeObfuscation.ts
සම්පූර්ණ රහස්යතා ක්රියාමාර්ග සංග්රහය සහ මෙහෙයුම් මාර්ගෝපදේශ සඳහා,
docs/security/STEALTH_GUIDE.md බලන්න.
H. Webhooks, තර්කන හැඹිලිය, කියවීම් හැඹිලිය
- Webhooks — සපයන්නා/ගිණුම/කාර්ය සිදුවීම් සඳහා පිටතට යැවීම.
- යවනය:
src/lib/webhookDispatcher.ts - ගබඩාව:
webhooksSQLite වගුව (src/lib/db/webhooks.tsහරහා) - උපකරණ පුවරුව:
/dashboard/webhooks(දායකත්ව, රහස්, නැවත උත්සාහ ඉතිහාසය) - සිදුවීම් වර්ගීකරණය සහ නැවත උත්සාහ කිරීමේ අර්ථකථන සඳහා,
docs/frameworks/WEBHOOKS.mdබලන්න.
- යවනය:
- තර්කන හැඹිලිය — සිතීමේ tokens නිකුත් කරන සපයන්නන් සඳහා
(Claude, GLMT, ආදිය) නැවත ධාවනය කළ හැකි තර්කන කොටස් වන අතර, එමඟින් අඛණ්ඩ වාරවලදී නැවත සිතීම මඟහැරිය හැක.
- DB ස්තරය:
src/lib/db/reasoningCache.ts - සේවා ස්තරය:
open-sse/services/reasoningCache.ts - නැවත ධාවනය කිරීමේ අර්ථකථන සඳහා,
docs/routing/REASONING_REPLAY.mdබලන්න.
- DB ස්තරය:
- කියවීම් හැඹිලිය — අත්සන අනුව යතුරුගත කර ඇති සහ දෝෂ සහිත upstream 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 නාම අවකාශ): 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- ගැළපුම/දෝෂ නිරාකරණය සඳහා විකල්ප ගොනු අංග තවමත් පවතී (
${DATA_DIR}/log.txt,${DATA_DIR}/call_logs/,<repo>/logs/...) - පැරණි JSON ගොනු පවතී නම්, ආරම්භක 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 රටාව: ධාවන වේලාවේදී මතකයේ ඇති Maps ප්රාමාණික වේ; වෙනස්කම් SQLite වෙත සමකාලීනව ලියනු ලැබේ; cold start අවස්ථාවේදී තත්ත්වය DB වෙතින් ප්රතිසාධනය කෙරේ
4) සත්යාපනය + ආරක්ෂක මතුපිට
- උපකරණ පුවරුවේ cookie සත්යාපනය:
src/proxy.ts,src/app/api/auth/login/route.ts - API key ජනනය/සත්යාපනය:
src/shared/utils/apiKey.ts - සැපයුම්කරුගේ රහස්
providerConnectionsඇතුළත් කිරීම් තුළ ස්ථායීව ගබඩා කෙරේ open-sse/utils/proxyFetch.ts(env vars) හරහා සහopen-sse/utils/networkProxy.ts(එක් එක් සැපයුම්කරු සඳහා හෝ ගෝලීයව වින්යාස කළ හැකි) හරහා පිටතට යන proxy සහාය- SSRF / පිටතට යන URL ආරක්ෂකය:
src/shared/network/outboundUrlGuard.ts— සියලු සැපයුම්කරු ඇමතුම් සඳහා private/loopback/link-local පරාස අවහිර කරයි - ධාවනකාල env වලංගුකරණය:
src/lib/env/runtimeEnv.ts— සියලු environment variables සඳහා Zod schema එකක් වන අතර, ආරම්භක දෝෂ/අනතුරු ඇඟවීම් ලෙස පෙන්වයි - සමමුහුර්ත කිරීමේ ටෝකන:
src/lib/db/syncTokens.ts— config bundle බාගැනීමේ endpoints සඳහා විෂයපථයට සීමා කළ ටෝකන;sync_tokensSQLite වගුව මඟින් අනුබල සපයයි (migration024_create_sync_tokens.sql) - WebSocket handshake සත්යාපනය:
src/lib/ws/handshake.ts— API key එකක් හෝ session cookie එකක් හරහා WS upgrade ඉල්ලීම් වලංගු කරයි
5) Cloud සමමුහුර්තකරණය
- 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 Client
participant Route as /api/v1/chat/completions
participant Chat as src/sse/handlers/chat
participant Core as open-sse/handlers/chatCore
participant Model as Model Resolver
participant Auth as Credential Selector
participant Exec as Provider Executor
participant Prov as Upstream Provider
participant Stream as Stream Translator
participant Usage as usageDb
Client->>Route: POST /v1/chat/completions
Route->>Chat: handleChat(request)
Chat->>Model: parse/resolve model or combo
alt Combo model
Chat->>Chat: iterate combo models (handleComboChat)
end
Chat->>Auth: getProviderCredentials(provider)
Auth-->>Chat: active account + tokens/api key
Chat->>Core: handleChatCore(body, modelInfo, credentials)
Core->>Core: detect source format
Core->>Core: translate request to target format
Core->>Exec: execute(provider, transformedBody)
Exec->>Prov: upstream API call
Prov-->>Exec: SSE/JSON response
Exec-->>Core: response + metadata
alt 401/403
Core->>Exec: refreshCredentials()
Exec-->>Core: updated tokens
Core->>Exec: retry request
end
Core->>Stream: translate/normalize stream to client format
Stream-->>Client: SSE chunks / JSON response
Stream->>Usage: extract usage + persist 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 මඟින් මෙහෙයවනු ලැබේ. කොම්බෝ මාර්ගගත කිරීම එක් අමතර ආරක්ෂණයක් එක් කරයි: ඉහළ මට්ටමේ අන්තර්ගත අවහිර කිරීම් සහ භූමිකා වලංගුකරණ අසාර්ථකතා වැනි සැපයුම්කරුට සීමා වූ 400 දෝෂ, මාදිලියට පමණක් අදාළ අසාර්ථකතා ලෙස සලකනු ලබන බැවින් පසුකාලීන කොම්බෝ ඉලක්කවලට තවදුරටත් ක්රියාත්මක විය හැක.
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 දත්ත)
OAuth-->>UI: සාර්ථකයි + සම්බන්ධතා id
UI->>Test: POST /api/providers/[id]/test
Test->>Exec: අක්තපත්ර වලංගු කරන්න / අවශ්ය නම් නැවුම් කරන්න
Exec-->>Test: වලංගු හෝ නැවුම් කළ ටෝකන තොරතුරු
Test->>DB: තත්ත්වය/ටෝකන/දෝෂ යාවත්කාලීන කරන්න
Test-->>UI: වලංගුකරණ ප්රතිඵලය
සජීවී ගමනාගමනය අතරතුර නැවුම් කිරීම, ක්රියාත්මකකාරකයේ refreshCredentials() හරහා open-sse/handlers/chatCore.ts තුළ ක්රියාත්මක කෙරේ.
ක්ලවුඩ් සමමුහුර්තකරණ ජීවන චක්රය (සක්රිය කිරීම / සමමුහුර්ත කිරීම / අක්රිය කිරීම)
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} (සැපයුම්කරුවන්/අන්වර්ථ නාම/කොම්බෝ/යතුරු)
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 : controls
PROVIDER_NODE ||--o{ PROVIDER_CONNECTION : backs_compatible_provider
PROVIDER_CONNECTION ||--o{ USAGE_ENTRY : emits_usage
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[Developer Host]
CLI[CLI Tools]
Browser[Dashboard Browser]
end
subgraph ContainerOrProcess[OmniRoute Runtime]
Next[Next.js Server\nPORT=20128]
Core[SSE Core + Executors]
MainDB[(storage.sqlite)]
UsageDB[(usage tables + log artifacts)]
end
subgraph External[External Services]
Providers[AI Providers]
SyncCloud[Cloud Sync Service]
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/*: ගැළපුම් APIsrc/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/*: භාවිත සහ ලොග් APIsrc/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/*: නිශ්චිත මොඩියුල සෘජුවම ආයාත කරන්න — barrel එකක් නොමැත (පැරණිlocalDb.tsනැවත-අපනයන ස්තරය ඉවත් කර ඇත)src/lib/usageDb.ts: SQLite වගු මත ඇති භාවිත ඉතිහාසය/ඇමතුම් ලොග් සඳහා facade එකක්
සැපයුම්කරු ක්රියාත්මකකාරක ආවරණය (උපාය රටාව)
සෑම සැපයුම්කරුවෙකුටම 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 | අභිරුචි ව්යාපෘති/සැසි ID, 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 කේතනය, checksum හරහා ඉල්ලීම් අත්සන් කිරීම |
DevinCliExecutor |
Devin CLI | cloud agent මොඩියුලය හරහා 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(ස්වයංක්රීයව ජනනය කරන ලද) හෝ පූරණය කිරීමේදී Zod මඟින් වලංගු කරන ලද සත්ය මූලාශ්රය වනsrc/shared/constants/providers.tsබලන්න.
| සැපයුම්කරු | ආකෘතිය | සත්යාපනය | ප්රවාහය | ප්රවාහ නොවන | ටෝකන නැවුම් කිරීම | භාවිත 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 | අභිරුචි checksum | ✅ | ✅ | ❌ | ❌ |
| 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 | සැසි cookie | ✅ | ✅ | ❌ | ❌ |
| Perplexity-Web | openai | සැසි cookie | ✅ | ✅ | ❌ | ❌ |
| BlackBox-Web | openai | සැසි cookie + TLS | ✅ | ✅ | ❌ | ❌ |
| Muse-Spark-Web | openai | සැසි cookie | ✅ | ✅ | ❌ | ❌ |
| 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 ආවරණය
- Kiro
- Cursor
පරිවර්තන සඳහා OpenAI මධ්යස්ථ ආකෘතිය ලෙස භාවිත කෙරේ — සියලු පරිවර්තන අතරමැදි පියවරක් ලෙස OpenAI හරහා සිදු වේ:
මූලාශ්ර ආකෘතිය → OpenAI (මධ්යස්ථ ආකෘතිය) → ඉලක්ක ආකෘතිය
මූලාශ්ර payload එකේ ව්යුහය සහ සැපයුම්කරුගේ ඉලක්ක ආකෘතිය මත පදනම්ව පරිවර්තන ගතිකව තෝරාගනු ලැබේ.
පරිවර්තන නළමාර්ගයේ අතිරේක සැකසුම් ස්තර:
- ප්රතිචාර පිරිසිදු කිරීම — දැඩි SDK අනුකූලතාව තහවුරු කිරීම සඳහා OpenAI-ආකෘතිගත ප්රතිචාරවලින් (streaming සහ non-streaming යන දෙකෙන්ම) සම්මත නොවන ක්ෂේත්ර ඉවත් කරයි
- භූමිකා සාමාන්යකරණය — OpenAI නොවන ඉලක්ක සඳහා
developer→systemලෙස පරිවර්තනය කරයි; system භූමිකාව ප්රතික්ෂේප කරන ආකෘති (GLM, ERNIE) සඳහාsystem→userලෙස ඒකාබද්ධ කරයි - Think tag නිස්සාරණය — අන්තර්ගතයේ ඇති
<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 route |
POST /v1/images/generations |
OpenAI Images | open-sse/handlers/imageGeneration.ts |
GET /v1/images/generations |
ආකෘති ලැයිස්තුගත කිරීම | API route |
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 ටෝකන ගණන | API route |
GET /v1/models |
OpenAI ආකෘති ලැයිස්තුව | API route (chat + embedding + image + අභිරුචි ආකෘති) |
GET /api/models/catalog |
නාමාවලිය | සැපයුම්කරු + වර්ගය අනුව සමූහගත කළ සියලුම ආකෘති |
POST /v1beta/models/*:streamGenerateContent |
Gemini ස්වදේශීය | API route |
GET/PUT/DELETE /api/settings/proxy |
Proxy වින්යාසය | ජාල proxy වින්යාසය |
POST /api/settings/proxy/test |
Proxy සම්බන්ධතාව | Proxy සෞඛ්ය/සම්බන්ධතා පරීක්ෂණ අන්ත ලක්ෂ්යය |
GET/POST/DELETE /api/provider-models |
සැපයුම්කරු ආකෘති | අභිරුචි සහ කළමනාකරණය කළ ලබාගත හැකි ආකෘති සඳහා පදනම් වන සැපයුම්කරු ආකෘති පාරදත්ත |
මඟහැරීම් හසුරුවනය
මඟහැරීම් හසුරුවනය (open-sse/utils/bypassHandler.ts) Claude CLI වෙතින් ලැබෙන දන්නා "ඉවත දැමිය හැකි" ඉල්ලීම් — warmup pings, මාතෘකා උකහාගැනීම් සහ token ගණන් කිරීම් — අතරමඟ අල්ලා, upstream provider tokens වැය නොකර ව්යාජ ප්රතිචාරයක් ලබා දෙයි. මෙය ක්රියාත්මක වන්නේ 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 අසාර්ථකත්ව සඳහා සම්බන්ධතා cooldown
- ඉල්ලීම අසාර්ථක කිරීමට පෙර විකල්ප ගිණුමකට මාරුවීම
- වත්මන් model/provider මාර්ගය අවසන් වූ විට combo model එකකට මාරුවීම
2) Token කල් ඉකුත්වීම
- refresh කළ හැකි providers සඳහා පෙර පරීක්ෂාව සහ නැවත උත්සාහයක් සමඟ refresh කිරීම
- මූලික මාර්ගය තුළ refresh උත්සාහයකින් පසු 401/403 සඳහා නැවත උත්සාහ කිරීම
3) Stream ආරක්ෂාව
- විසන්ධි වීම පිළිබඳ දැනුවත් stream controller
- stream අවසානයේ flush කිරීම සහ
[DONE]හැසිරවීම සහිත පරිවර්තන stream එක - provider usage metadata නොමැති විට usage ඇස්තමේන්තු fallback එක
4) Cloud Sync පිරිහීම
- sync දෝෂ පෙන්වනු ලබන නමුත් දේශීය ධාවනකාලය දිගටම ක්රියාත්මක වේ
- scheduler සතුව නැවත උත්සාහ කළ හැකි තර්කනයක් ඇත, නමුත් ආවර්තිත ක්රියාත්මක කිරීම දැනට පෙරනිමියෙන් එක්-උත්සාහ sync එකක් අමතයි
5) දත්ත අඛණ්ඩතාව
- ආරම්භයේදී SQLite schema migrations සහ ස්වයංක්රීය උත්ශ්රේණි hooks
- පැරණි JSON → SQLite migration ගැළපුම් මාර්ගය
6) SSRF / පිටතට යන URL ආරක්ෂකය
src/shared/network/outboundUrlGuard.tsමඟින් සියලු private/loopback/link-local ඉලක්ක URL, provider executors වෙත ළඟා වීමට පෙර අවහිර කරයි- Provider model සොයාගැනීමේ සහ තහවුරු කිරීමේ routes සෑම පිටතට යන ඉල්ලීමකටම පෙර ආරක්ෂකය යොදන
src/shared/network/safeOutboundFetch.tsභාවිත කරයි - ආරක්ෂක දෝෂ HTTP 422 සමඟ
URL_GUARD_BLOCKEDලෙස පෙන්වන අතරproviderAudit.tsහරහා අනුකූලතා විගණන සටහනට ලොග් කරනු ලැබේ
නිරීක්ෂණ හැකියාව සහ මෙහෙයුම් සංඥා
ධාවනකාල දෘශ්යතා මූලාශ්ර:
src/sse/utils/logger.tsවෙතින් console logs- SQLite තුළ එක් එක් ඉල්ලීම සඳහා භාවිත සමස්තයන් (
usage_history,call_logs,proxy_logs) settings.detailed_logs_enabled=trueවූ විට SQLite තුළ අදියර හතරක සවිස්තර payload ග්රහණයන් (request_detail_logs)log.txtතුළ පෙළමය ඉල්ලීම් තත්ත්ව ලොගය (විකල්ප/ගැළපුම)APP_LOG_TO_FILE=trueවූ විටlogs/යටතේ විකල්ප යෙදුම් ලොග් ගොනු- ඇමතුම් ලොග් නළ මාර්ගය සක්රීය කර ඇති විට
${DATA_DIR}/call_logs/යටතේ විකල්ප ඉල්ලීම් කෘතික - UI පරිභෝජනය සඳහා dashboard usage endpoints (
/api/usage/*)
සවිස්තර ඉල්ලීම් payload ග්රහණය එක් එක් යොමු කළ ඇමතුමකට JSON payload අදියර හතරක් දක්වා ගබඩා කරයි:
- client වෙතින් ලැබුණු අමු ඉල්ලීම
- සැබවින්ම upstream වෙත යැවූ පරිවර්තිත ඉල්ලීම
- JSON ලෙස නැවත ගොඩනැඟූ provider ප්රතිචාරය; streamed ප්රතිචාර අවසාන සාරාංශය සහ stream metadata වෙත සංක්ෂිප්ත කරනු ලැබේ
- OmniRoute මඟින් ආපසු ලබා දුන් අවසාන client ප්රතිචාරය; streamed ප්රතිචාර එම සංක්ෂිප්ත සාරාංශ ආකෘතියෙන්ම ගබඩා කරනු ලැබේ
ආරක්ෂාවට සංවේදී සීමා
- JWT රහස (
JWT_SECRET) උපකරණ පුවරු සැසි cookie සත්යාපනය/අත්සන් කිරීම ආරක්ෂා කරයි - ආරම්භක මුරපද bootstrap කිරීම (
INITIAL_PASSWORD) පළමු ධාවනයේ ප්රතිපාදනය සඳහා පැහැදිලිව වින්යාස කළ යුතුය - API යතුරු HMAC රහස (
API_KEY_SECRET) ජනනය කරන ලද දේශීය API යතුරු ආකෘතිය ආරක්ෂා කරයි - සැපයුම්කරු රහස් (API යතුරු/token) දේශීය DB තුළ සුරකින අතර ගොනු පද්ධති මට්ටමින් ආරක්ෂා කළ යුතුය
- Cloud sync අන්ත ලක්ෂ්ය API යතුරු සත්යාපනය + යන්ත්ර ID අර්ථකථනය මත රඳා පවතී
පරිසර සහ ධාවනකාල අනුකූලතා වගුව
කේතය විසින් සක්රියව භාවිත කරන පරිසර විචල්ය:
- යෙදුම/සත්යාපනය:
JWT_SECRET,INITIAL_PASSWORD - ගබඩාව:
DATA_DIR - විකල්ප ගබඩා මූලික ස්ථාන අභිබවා යාම (
DATA_DIRසකසා නොමැති විට Linux/macOS සඳහා):XDG_CONFIG_HOME - ආරක්ෂක hashing:
API_KEY_SECRET,MACHINE_ID_SALT - ලොග් කිරීම:
APP_LOG_TO_FILE,APP_LOG_RETENTION_DAYS,CALL_LOG_RETENTION_DAYS - Sync/cloud URL සැකසීම:
NEXT_PUBLIC_BASE_URL,NEXT_PUBLIC_CLOUD_URL - පිටතට යන proxy:
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) කාර්යය පවරයි. - සබල කර ඇති විට ඉල්ලීම් logger මඟින් සම්පූර්ණ headers/body ලියයි; ලොග් නාමාවලිය සංවේදී ලෙස සලකන්න.
- Cloud හැසිරීම නිවැරදි
NEXT_PUBLIC_BASE_URLසහ cloud අන්ත ලක්ෂ්ය වෙත ළඟා වීමේ හැකියාව මත රඳා පවතී. open-sse/නාමාවලිය@omniroute/open-ssenpm workspace පැකේජය ලෙස ප්රකාශයට පත් කෙරේ. මූලාශ්ර කේතය එය@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/workspace එක JavaScript (.js) ලෙසම පවතී. - සැකසුම් පිටුව පටිති 7කට සංවිධානය කර ඇත: සාමාන්ය, පෙනුම, AI, ආරක්ෂාව, මාර්ගගත කිරීම, ප්රතිරෝධීතාව සහ උසස්. ප්රතිරෝධීතා පිටුව ඉල්ලීම් පෝලිම, සම්බන්ධතා cooldown, සැපයුම්කරු breaker සහ cooldown අවසන් වන තෙක් රැඳී සිටීමේ හැසිරීම පමණක් වින්යාස කරයි; සජීවී breaker ධාවනකාල තත්ත්වය සෞඛ්ය පිටුවෙහි පෙන්වයි.
- Context Relay උපායමාර්ගය (
context-relay) ස්තර දෙකකට බෙදා ඇත: handoff එකක් ජනනය කළ යුතුද යන්නcombo.tsතීරණය කරන අතර, ගිණුම විසඳීමෙන් පසුchat.tsවිසින් handoff එක ඇතුළත් කරයි. Handoff දත්තcontext_handoffsSQLite වගුවෙහි පවතී. මෙම බෙදීම චේතාන්විතය, මන්ද සැබෑ ගිණුම වෙනස් වූයේදැයි දන්නේchat.tsපමණක් බැවිනි. - Proxy බලාත්මක කිරීම දැන් පරිපූර්ණය:
tokenHealthCheck.tsසෑම සම්බන්ධතාවක් සඳහාම proxy විසඳයි,/api/providers/validateවිසින්runWithProxyContextභාවිත කරයි, සහ Node 22 මත dispatcher අනුකූලතාව පවත්වා ගැනීමටproxyFetch.tsවිසින්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/modelsPORT=20128වන විට CLI ඉලක්ක මූලික URL එකhttp://<host>:20128/v1විය යුතුය