* 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.
101 KiB
OmniRoute Codebase Documentation (हिन्दी)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
संस्करण: v3.8.51 अंतिम अपडेट: 2026-06-28 लक्षित पाठक: OmniRoute में योगदान करने वाले या इसके ऊपर इंटीग्रेशन बनाने वाले इंजीनियर।
उच्च-स्तरीय आर्किटेक्चर आरेखों और प्रत्येक सबसिस्टम के पीछे के तर्क के लिए, ARCHITECTURE.md पढ़ें। अलग-अलग सबसिस्टम पर गहन जानकारी के लिए (Auto Combo, MCP सर्वर, A2A सर्वर, Skills, Memory, Cloud Agents, Resilience, Compression आदि), इस
docs/डायरेक्टरी में उनकी समर्पित फ़ाइलें देखें।
यह फ़ाइल बताती है कि आज रिपॉज़िटरी में क्या मौजूद है, ताकि कोई नया इंजीनियर ट्री में नेविगेट कर सके, रनटाइम लेयरिंग को समझ सके, और नए मॉड्यूल बनाए बिना यह जान सके कि कोड कहाँ जोड़ना है।
1. तकनीकी स्टैक
| पहलू | चयन |
|---|---|
| वेब फ़्रेमवर्क | Next.js 16 (App Router, स्टैंडअलोन आउटपुट, कोई ग्लोबल मिडलवेयर नहीं) |
| भाषा | TypeScript 6.0+ — लक्ष्य ES2022, module: esnext, moduleResolution: bundler, strict: false |
| रनटाइम | Node.js >=22.22.2 <23 या >=24.0.0 <27 (engines + SUPPORTED_NODE_RANGE के माध्यम से लागू) |
| डेटाबेस | better-sqlite3 के माध्यम से SQLite (सिंगलटन, WAL जर्नलिंग) |
| डेस्कटॉप | Electron 41 + electron-builder 26.10 (electron/ में अलग वर्कस्पेस) |
| परीक्षण | Node नेटिव टेस्ट रनर (यूनिट/इंटीग्रेशन), Vitest (MCP, autoCombo, cache), Playwright (e2e + protocols-e2e) |
| बिल्ड | scripts/build/build-next-isolated.mjs के माध्यम से Next.js स्टैंडअलोन |
| लिंट/फ़ॉर्मैट | ESLint फ़्लैट कॉन्फ़िग + Prettier (Husky प्री-कमिट के माध्यम से lint-staged) |
| मॉड्यूल सिस्टम | हर जगह ESM ("type": "module") |
| वर्कस्पेस | npm वर्कस्पेस — open-sse एकमात्र सब-वर्कस्पेस है |
पाथ एलियास (tsconfig.json):
@/*→src/*@omniroute/open-sse→open-sse/index.ts@omniroute/open-sse/*→open-sse/*
डिफ़ॉल्ट HTTP पोर्ट: 20128 (API और डैशबोर्ड समान प्रोसेस साझा करते हैं)। डेटा
डायरेक्टरी DATA_DIR एनवायरनमेंट वेरिएबल है, जिसका डिफ़ॉल्ट मान ~/.omniroute/ है।
2. रिपॉज़िटरी संरचना
OmniRoute/
├── src/ Next.js एप्लिकेशन (App Router, लाइब्रेरी, डोमेन, सर्वर, साझा कोड)
├── open-sse/ स्ट्रीमिंग इंजन वर्कस्पेस (@omniroute/open-sse)
├── electron/ डेस्कटॉप रैपर (Electron 41 मेन + प्रीलोड)
├── bin/ CLI एंट्री पॉइंट (omniroute, reset-password)
├── tests/ यूनिट, इंटीग्रेशन, e2e, protocols-e2e, ट्रांसलेटर, सुरक्षा, फ़िक्स्चर
├── scripts/ बिल्ड, सिंक, जाँच, माइग्रेशन और रनटाइम सहायक स्क्रिप्ट
├── docs/ सार्वजनिक दस्तावेज़ीकरण (यह डायरेक्टरी)
├── public/ स्टैटिक एसेट, PWA मैनिफ़ेस्ट, सर्विस वर्कर
├── config/ रनटाइम कॉन्फ़िग के नमूने
├── images/ मार्केटिंग/स्क्रीनशॉट एसेट
├── _ideia/, _references/, _mono_repo/, _tasks/ आंतरिक अस्थायी / योजना सामग्री (वितरित नहीं)
├── CLAUDE.md Claude Code के लिए रिपॉज़िटरी नियम
├── AGENTS.md एजेंटों के लिए विस्तृत आर्किटेक्चर संदर्भ
├── package.json v3.8.51, वर्कस्पेस रूट
└── tsconfig.json पाथ एलियास + मुख्य कंपाइलर विकल्प
3. src/ — Next.js एप्लिकेशन
src/
├── app/ App Router पेज + API रूट
├── lib/ मुख्य लाइब्रेरी (DB, प्रमाणीकरण, OAuth, कौशल, मेमोरी, …)
├── domain/ शुद्ध डोमेन परत (नीति, फ़ॉलबैक, लागत, लॉकआउट, …)
├── server/ केवल-सर्वर मॉड्यूल (प्राधिकरण, cors, प्रमाणीकरण)
├── shared/ प्रकार, स्थिरांक, सत्यापन, अनुबंध, उपयोगिताएँ (क्रॉस-बाउंड्री सुरक्षित)
├── mitm/ CLI एकीकरण के लिए मैन-इन-द-मिडल प्रॉक्सी सहायक
├── models/ स्थानीय मॉडल मेटाडेटा / एलियासिंग
├── sse/ पुराने SSE हैंडलर जो अभी भी src/ के अंतर्गत हैं (open-sse/ में नहीं)
├── store/ क्लाइंट-साइड स्थिति स्टोर
├── middleware/ रूट-स्तरीय मिडलवेयर उपयोगिताएँ (Next.js ग्लोबल मिडलवेयर नहीं)
├── scripts/ इन-ट्री स्क्रिप्ट जिन्हें ऐप कोड द्वारा इंपोर्ट किया जा सकता है
├── types/ एंबिएंट और साझा TS प्रकार
├── i18n/ लोकेल बंडल
├── instrumentation.ts Next.js इंस्ट्रूमेंटेशन हुक
├── instrumentation-node.ts
└── proxy.ts शीर्ष-स्तरीय प्रॉक्सी बूटस्ट्रैप सहायक
3.1 src/app/ — App Router
App Router डैशबोर्ड UI और सार्वजनिक/प्रबंधन HTTP API, दोनों उपलब्ध कराता है। यहाँ कोई ग्लोबल मिडलवेयर नहीं है — इंटरसेप्शन प्रत्येक रूट पर अलग से किया जाता है।
src/app/ के अंतर्गत शीर्ष-स्तरीय सेगमेंट:
| पथ | उद्देश्य |
|---|---|
api/ |
सभी HTTP API रूट (नीचे विवरण देखें) |
a2a/ |
A2A JSON-RPC 2.0 एंडपॉइंट (POST /a2a) |
.well-known/agent.json/ |
A2A Agent Card डिस्कवरी दस्तावेज़ |
(dashboard)/ |
डैशबोर्ड UI (रूट समूह, कोई URL प्रीफ़िक्स नहीं) |
auth/, login/, forgot-password/, callback/ |
प्रमाणीकरण फ़्लो |
landing/ |
मार्केटिंग/लैंडिंग पेज |
docs/ |
एम्बेडेड API दस्तावेज़ व्यूअर |
status/, maintenance/, offline/ |
परिचालन पेज |
privacy/, terms/ |
कानूनी पेज |
400/, 401/, 403/, 408/, 429/, 500/, 502/, 503/ |
स्थिर त्रुटि पेज |
error.tsx, global-error.tsx, not-found.tsx, forbidden/, loading.tsx |
फ़्रेमवर्क त्रुटि/लोडिंग सीमाएँ |
layout.tsx, page.tsx, globals.css, manifest.ts |
रूट शेल |
3.1.1 src/app/(dashboard)/dashboard/ — UI पेज
agents, analytics, api-manager, audit, auto-combo, batch, cache,
changelog, cli-tools, cloud-agents, combos, compression, context,
costs, endpoint, health, limits, logs, memory, onboarding,
playground, providers, search-tools, settings, skills, system,
translator, usage, webhooks, साथ ही रूट page.tsx, HomePageClient.tsx,
BootstrapBanner.tsx।
3.1.2 src/app/api/ — शीर्ष-स्तरीय API समूह
src/app/api/
├── a2a/{status, tasks}
├── acp/
├── admin/
├── analytics/
├── assess/
├── auth/
├── batches/
├── cache/
├── cli-tools/
├── cloud/{codex-responses-ws}
├── combos/
├── compliance/
├── compression/
├── context/
├── db/, db-backups/
├── evals/
├── fallback/
├── files/
├── health/
├── init/
├── internal/{concurrency}
├── keys/
├── logs/
├── mcp/{audit, sse, status, stream, tools}
├── memory/{health, [id]/, route.ts}
├── model-combo-mappings/
├── models/
├── monitoring/
├── oauth/
├── openapi/
├── policies/
├── pricing/
├── provider-metrics/, provider-models/, provider-nodes/
├── providers/
├── rate-limit/, rate-limits/
├── resilience/
├── restart/, shutdown/
├── search/
├── sessions/
├── settings/
├── skills/{executions, [id], install, marketplace, route.ts, skillssh}
├── storage/
├── sync/, synced-available-models/
├── system/
├── tags/
├── telemetry/
├── token-health/
├── translator/
├── tunnels/
├── services/ एम्बेडेड सेवा प्रबंधन (9router, cliproxy) — LOCAL_ONLY
├── upstream-proxy/
├── usage/
├── v1/ OpenAI-संगत सार्वजनिक API
├── v1beta/ Gemini-शैली संगतता
├── version-manager/
└── webhooks/
3.1.2a src/app/api/services/ — एम्बेडेड सेवाओं का प्रबंधन
9Router और CLIProxyAPI को इंस्टॉल करने, शुरू करने, रोकने और मॉनिटर करने के लिए रूट।
सभी पथ LOCAL_ONLY (केवल लूपबैक, कठोर नियम #17) के रूप में वर्गीकृत हैं, क्योंकि वे
npm install चला सकते हैं और चाइल्ड प्रोसेस शुरू कर सकते हैं।
src/app/api/services/
├── 9router/
│ ├── _lib.ts getOrInitSupervisor() सहायक
│ ├── install/route.ts POST — execFile के माध्यम से npm install
│ ├── start/route.ts POST — supervisor.start()
│ ├── stop/route.ts POST — supervisor.stop()
│ ├── restart/route.ts POST — supervisor.restart()
│ ├── update/route.ts POST — नया संस्करण npm install करें
│ ├── rotate-key/route.ts POST — नई API कुंजी जनरेट करें + पुनः शुरू करें
│ ├── status/route.ts GET — लाइव + DB स्थिति + संस्करण मेटाडेटा
│ └── auto-start/route.ts POST — auto_start फ़्लैग को टॉगल करें
├── cliproxy/
│ ├── _lib.ts getOrInitSupervisor() सहायक
│ ├── install/route.ts POST — npm install
│ ├── start/route.ts POST — supervisor.start()
│ ├── stop/route.ts POST — supervisor.stop()
│ ├── restart/route.ts POST — supervisor.restart()
│ ├── update/route.ts POST — नया संस्करण npm install करें
│ ├── status/route.ts GET — लाइव + DB स्थिति + संस्करण मेटाडेटा
│ └── auto-start/route.ts POST — auto_start फ़्लैग को टॉगल करें
└── [name]/
└── logs/route.ts GET — SSE लॉग टेल (सभी सेवाओं द्वारा साझा)
संबंधित डैशबोर्ड UI:
src/app/(dashboard)/dashboard/providers/services/ — दो-टैब वाला पृष्ठ (CLIProxyAPI + 9Router)।
9Router एम्बेडेड UI के लिए रिवर्स प्रॉक्सी:
src/app/(dashboard)/dashboard/providers/services/[name]/embed/[[...path]]/route.ts
गहन विवरण: docs/frameworks/EMBEDDED-SERVICES.md
3.1.3 src/app/api/v1/ — OpenAI-संगत सार्वजनिक API
v1/
├── accounts/[id]/ खाता लुकअप
├── agents/tasks/[id]/, agents/tasks/ A2A-शैली वाले कार्य एंडपॉइंट
├── api/ v1/api के अंतर्गत उपलब्ध आंतरिक API सहायक
├── audio/{speech, transcriptions}/ TTS + STT
├── batches/[id]/{cancel}, batches/ OpenAI Batches API
├── chat/completions/ Chat Completions (मुख्य एंडपॉइंट)
├── completions/ लीगेसी टेक्स्ट कम्प्लीशन
├── embeddings/ एम्बेडिंग
├── files/[id]/, files/ Files API
├── _helpers/ साझा रूट सहायक (कोई सार्वजनिक URL नहीं)
├── images/{edits, generations}/ इमेज जनरेशन + संपादन
├── issues/ ट्रायेज सहायक एंडपॉइंट
├── management/{proxies}/ v1 के भीतर प्रबंधन-स्कोप वाले रूट
├── messages/{count_tokens}/ Anthropic-शैली की संदेश संगतता
├── models/ मॉडल सूची (`route.ts`, `catalog.ts`)
├── moderations/ मॉडरेशन
├── music/ संगीत जनरेशन
├── providers/[provider]/ प्रति-प्रदाता संचालन
├── quotas/{check} कोटा जाँच
├── registered-keys/ पंजीकृत कुंजी प्रशासन
├── rerank/ पुनः रैंकिंग
├── responses/[...path]/ OpenAI Responses API (कैच-ऑल)
├── search/ वेब खोज
├── videos/ वीडियो जनरेशन
├── ws/ WebSocket ब्रिज
└── route.ts इंडेक्स हैंडलर
प्रत्येक रूट फ़ाइल समान पैटर्न का पालन करती है:
रूट → CORS प्रीफ़्लाइट → Zod बॉडी सत्यापन → वैकल्पिक प्रमाणीकरण
→ API कुंजी नीति प्रवर्तन → हैंडलर प्रत्यायोजन (open-sse)
v1beta/ Gemini-शैली की संगतता सतह है (एक हल्का रैपर, जो अनुरोधों को
उसी open-sse/handlers/ पाइपलाइन में रूपांतरित करता है)।
3.2 src/lib/ — मुख्य लाइब्रेरी
डेटा, सिंक, OAuth, कौशल, मेमोरी आदि को हमेशा इन्हीं मॉड्यूल के माध्यम से इम्पोर्ट करें। तालिका वास्तविक डायरेक्टरियों और उल्लेखनीय शीर्ष-स्तरीय फ़ाइलों को समूहित करती है।
| मॉड्यूल | उद्देश्य |
|---|---|
a2a/ |
A2A प्रोटोकॉल सर्वर: taskManager.ts, streaming.ts, taskExecution.ts, routingLogger.ts, skills/ (6 कौशल: लागत विश्लेषण, स्वास्थ्य रिपोर्ट, प्रदाता खोज, कोटा प्रबंधन, स्मार्ट रूटिंग, क्षमताओं की सूची) |
acp/ |
Agent-Control-Protocol: index.ts, manager.ts, registry.ts |
api/ |
आंतरिक API सहायक: requireManagementAuth.ts, requireCliToolsAuth.ts, errorResponse.ts |
auth/ |
managementPassword.ts (पासवर्ड रीसेट / हैशिंग) |
batches/ |
OpenAI Batches API सेवा (service.ts) |
catalog/ |
OpenRouter कैटलॉग सिंक (openrouterCatalog.ts) |
cloudAgent/ |
क्लाउड एजेंट रजिस्ट्री: api.ts, baseAgent.ts, db.ts, index.ts, registry.ts, types.ts, agents/{codex, devin, jules}.ts |
combos/ |
कॉम्बो समाधान सहायक |
compliance/ |
ऑडिट + प्रदाता ऑडिट: index.ts, providerAudit.ts |
config/ |
रनटाइम कॉन्फ़िगरेशन संयोजन |
db/ |
SQLite डोमेन मॉड्यूल (§3.2.1 देखें) |
display/ |
API प्रतिक्रियाओं द्वारा उपयोग किए जाने वाले UI/डिस्प्ले सहायक |
embeddings/ |
एम्बेडिंग सेवा रजिस्ट्री |
env/ |
एनवायरनमेंट लोडिंग + आत्मनिरीक्षण |
evals/ |
मूल्यांकन रनटाइम |
guardrails/ |
piiMasker.ts, promptInjection.ts, visionBridge.ts, visionBridgeHelpers.ts, registry.ts, base.ts |
jobs/ |
बैकग्राउंड जॉब्स (autoUpdate.ts, …) |
memory/ |
स्थायी मेमोरी: store.ts, cache.ts, retrieval.ts, summarization.ts, extraction.ts, injection.ts, qdrant.ts, settings.ts, verify.ts, schemas.ts, types.ts |
monitoring/ |
observability.ts |
oauth/ |
OAuth/आयात प्रदाता मॉड्यूल (22): agy, antigravity, claude, cline, codebuddy-cn, codex, cursor, devin-desktop, ghe-copilot, github, gitlab-duo, grok-cli-oauth, grok-cli, kilocode, kimi-coding, kiro, openference, qoder, trae, xai-oauth, zed-hosted, zed, साथ ही services/, utils/, और constants/oauth.ts |
plugins/ |
प्लगइन लोडर (index.ts) |
promptCache/ |
prefixAnalyzer.ts, index.ts |
providerModels/ |
प्रबंधित मॉडल जीवनचक्र: modelDiscovery.ts, managedModelImport.ts, managedAvailableModels.ts, cursorAgent.ts |
providers/ |
प्रदाता सहायक: catalog.ts, validation.ts, imageValidation.ts, claudeExtraUsage.ts, codexConnectionDefaults.ts, codexFastTier.ts, webCookieAuth.ts, managedAvailableModels.ts, requestDefaults.ts |
resilience/ |
settings.ts — सर्किट ब्रेकर, कूलडाउन और लॉकआउट की सेटिंग्स |
runtime/ |
रनटाइम फ़ीचर पहचान |
search/ |
executeWebSearch.ts |
services/ |
एम्बेडेड सेवा फ़्रेमवर्क: ServiceSupervisor.ts (ऑपरेशन लॉक, रिंग बफ़र और स्वास्थ्य जाँचकर्ता वाला सामान्य चाइल्ड-प्रोसेस पर्यवेक्षक), bootstrap.ts (प्रोसेस-स्तरीय पंजीकरण और स्वतः-प्रारंभ), registry.ts (टूल → पर्यवेक्षक मैप), apiKey.ts (AES-256-GCM कुंजी संग्रह), modelSync.ts (आवधिक मॉडल सिंक), ringBuffer.ts (5 MB सर्कुलर लॉग बफ़र), healthCheck.ts (HTTP स्वास्थ्य जाँच), types.ts, embedWsProxy.ts (WebSocket प्रॉक्सी), installers/{ninerouter,cliproxy}.ts। docs/frameworks/EMBEDDED-SERVICES.md देखें |
agentSkills/ |
एजेंट कौशल कैटलॉग + जनरेटर: catalog.ts (getCatalog/getSkillById/filterCatalog/computeCoverage), generator.ts (generateAgentSkills → skills/{id}/SKILL.md लिखता है), openapiParser.ts (OpenAPI विनिर्देश से REST एंडपॉइंट निकालता है), cliRegistryParser.ts (bin/cli-registry से CLI उपकमांड निकालता है), schemas.ts (Zod: AgentSkillSchema, SkillCoverageSchema, ListQuerySchema, GenerateBodySchema), types.ts (AgentSkill, SkillCoverage, SkillMarkdown, GeneratorReport)। REST रूट्स (/api/agent-skills/*), MCP टूल्स (omniroute_agent_skills_*) और A2A कौशल list-capabilities द्वारा उपयोग किया जाता है। AGENT-SKILLS.md देखें। |
skills/ |
कौशल फ़्रेमवर्क: registry.ts, executor.ts, interception.ts, injection.ts, sandbox.ts, custom.ts, hybrid.ts, builtins.ts, a2a.ts, providerSettings.ts, schemas.ts, skillssh.ts, types.ts, साथ ही builtin/browser.ts |
spend/ |
batchWriter.ts (राइट-बिहाइंड बफ़र) |
sync/ |
bundle.ts, tokens.ts (क्लाउड सिंक) |
system/ |
सिस्टम-स्तरीय सहायक |
translator/ |
शीर्ष-स्तरीय अनुवादक संयोजन (open-sse/translator/ को प्रत्यायोजित करता है) |
usage/ |
उपयोग लेखांकन: costCalculator.ts, tokenAccounting.ts, usageHistory.ts, aggregateHistory.ts, usageStats.ts, callLogs.ts, callLogArtifacts.ts, fetcher.ts, providerLimits.ts, migrations.ts |
versionManager/ |
स्वतः-अपडेट + संस्करण मैनिफ़ेस्ट |
ws/ |
WebSocket ब्रिज |
zed-oauth/ |
Zed एडिटर OAuth प्रवाह |
src/lib/ में शीर्ष-स्तरीय फ़ाइलें:
- पुराना
localDb.tsबैरल हटा दिया गया था — उपभोक्ता विशिष्टsrc/lib/db/*मॉड्यूल को सीधे इम्पोर्ट करते हैं। proxyHealth.ts,proxyLogger.ts,tokenHealthCheck.ts,localHealthCheck.tsapiBridgeServer.ts,cacheLayer.ts,semanticCache.ts,settingsCache.tscloudSync.ts,initCloudSync.tscloudflaredTunnel.ts,ngrokTunnel.ts,tailscaleTunnel.tsconsoleInterceptor.ts,container.ts,gracefulShutdown.ts,idempotencyLayer.tsipUtils.ts,logEnv.ts,logPayloads.ts,logRotation.tsmodelAliasSeed.ts,modelCapabilities.ts,modelMetadataRegistry.ts,modelsDevSync.tspiiSanitizer.ts,pricingSync.tsapiKeyExposure.ts,cacheControlSettings.ts,dataPaths.ts,toolPolicy.tstranslatorEvents.ts,usageDb.ts,usageAnalytics.ts,webhookDispatcher.ts
3.2.1 src/lib/db/
सिंगलटन SQLite डेटाबेस (core.ts में getDbInstance(), WAL जर्नलिंग)।
रूट या हैंडलर में कभी भी रॉ SQL न लिखें — इन मॉड्यूल के माध्यम से कार्य करें।
डोमेन मॉड्यूल (प्रत्येक के पास एक या अधिक टेबल का स्वामित्व है): apiKeys.ts, backup.ts,
batches.ts, cleanup.ts, cliToolState.ts, combos.ts,
commandCodeAuth.ts, compression.ts, compressionAnalytics.ts,
compressionCacheStats.ts, compressionCombos.ts, compressionScheduler.ts,
contextHandoffs.ts, core.ts, creditBalance.ts, databaseSettings.ts,
detailedLogs.ts, domainState.ts, encryption.ts, evals.ts, files.ts,
healthCheck.ts, jsonMigration.ts, migrationRunner.ts,
modelComboMappings.ts, models.ts, oneproxy.ts, prompts.ts,
providers.ts, providerLimits.ts, proxies.ts, quotaSnapshots.ts,
readCache.ts, reasoningCache.ts, registeredKeys.ts, secrets.ts,
sessionAccountAffinity.ts, settings.ts, stateReset.ts, stats.ts,
syncTokens.ts, tierConfig.ts, upstreamProxy.ts, versionManager.ts,
webhooks.ts।
migrations/ में 168 संस्करणबद्ध .sql फ़ाइलें (आइडेम्पोटेंट, ट्रांज़ैक्शनल) हैं और इन्हें
बूट के समय migrationRunner.ts द्वारा निष्पादित किया जाता है।
माइग्रेशन के माध्यम से बनाई गई टेबल (कुल 123):
a, account_key_limits, api_keys, batches, call_logs,
combo_adaptation_state, combos, command_code_auth_sessions,
compression_analytics, compression_cache_stats,
compression_combo_assignments, compression_combos, context_handoffs,
daily_usage_summary, db_meta, domain_budgets, domain_circuit_breakers,
domain_cost_history, domain_fallback_chains, domain_lockout_state,
eval_cases, eval_runs, eval_suites, files, hourly_usage_summary,
key_value, mcp_tool_audit, memories, model_combo_mappings,
provider_connections, provider_key_limits, provider_nodes,
proxy_assignments, proxy_logs, proxy_registry, quota_snapshots,
reasoning_cache, registered_keys, request_detail_logs,
routing_decisions, semantic_cache, session_account_affinity,
skill_executions, skills, sync_tokens, tier_assignments,
tier_config, upstream_proxy_config, usage_history, version_manager,
webhooks (साथ ही मेमोरी खोज के लिए FTS5 वर्चुअल टेबल)।
3.3 src/domain/ — डोमेन लेयर
शुद्ध बिज़नेस लॉजिक, कोई I/O नहीं। रूट और हैंडलर द्वारा इम्पोर्ट किया जाता है।
| फ़ाइल | उद्देश्य |
|---|---|
policyEngine.ts |
शीर्ष-स्तरीय पॉलिसी रिज़ॉल्वर |
fallbackPolicy.ts |
फ़ॉलबैक निर्णय ट्री |
costRules.ts |
लागत गणना के नियम |
lockoutPolicy.ts |
मॉडल लॉकआउट संबंधी निर्णय |
tagRouter.ts |
टैग-आधारित रूटिंग |
comboResolver.ts |
अनुरोध → लक्ष्य सूची से कॉम्बो रिज़ॉल्यूशन |
connectionModelRules.ts |
प्रति-कनेक्शन मॉडल फ़िल्टर |
modelAvailability.ts |
मॉडल उपलब्धता की जाँच |
degradation.ts |
डिग्रेडेड-मोड ट्रांज़िशन |
providerExpiration.ts |
समाप्त हो चुके अकाउंट/कुंजी की पहचान |
quotaCache.ts |
कैश किए गए कोटा संबंधी निर्णय |
responses.ts, omnirouteResponseMeta.ts |
रिस्पॉन्स संरचना के सहायक |
configAudit.ts |
कॉन्फ़िगरेशन परिवर्तन का ऑडिट |
assessment/ |
मॉडल आकलन (RFC के अनुसार, आंशिक रूप से कार्यान्वित) |
types.ts |
साझा डोमेन प्रकार |
3.4 src/server/ — केवल सर्वर के लिए
इसे क्लाइंट कंपोनेंट से इम्पोर्ट नहीं किया जा सकता।
server/
├── auth/loginGuard.ts
├── authz/
│ ├── classify.ts रूट को सार्वजनिक या प्रबंधन के रूप में वर्गीकृत करता है
│ ├── assertAuth.ts असर्शन सहायक
│ ├── context.ts प्रति-अनुरोध authz कॉन्टेक्स्ट
│ ├── headers.ts
│ ├── pipeline.ts Authz पाइपलाइन
│ ├── policies/ ठोस पॉलिसियाँ
│ └── types.ts
└── cors/origins.ts CORS ओरिजिन अनुमति-सूची
3.5 src/shared/ — साझा करने के लिए सुरक्षित
केंद्रित उप-डायरेक्टरियों में विभाजित:
constants/—providers.ts(Zod द्वारा सत्यापित प्रदाता कैटलॉग),models.ts,modelSpecs.ts,modelCompat.ts,pricing.ts,cliTools.ts,cliCompatProviders.ts,routingStrategies.ts,comboConfigMode.ts,headers.ts,upstreamHeaders.ts(अस्वीकृति सूची),mcpScopes.ts,errorCodes.ts,publicApiRoutes.ts,batch.ts,batchEndpoints.ts,bodySize.ts,colors.ts,appConfig.ts,config.ts,sidebarVisibility.ts,visionBridgeDefaults.ts.validation/—schemas.ts(~80 Zod स्कीमा),compressionConfigSchemas.ts,providerSchema.ts,settingsSchemas.ts,helpers.ts.contracts/— npm पर उपलब्ध कराए गए सार्वजनिक API अनुबंध।types/— साझा TS प्रकार।utils/—circuitBreaker.ts,apiAuth.ts,apiKey.ts,apiKeyPolicy.ts,api.ts,classify429.ts,cliCompat.ts,clipboard.ts,cloud.ts,cn.ts,cors.ts,featureFlags.ts,fetchTimeout.ts,formatting.ts,inputSanitizer.ts,logger.ts,machine.ts,machineId.ts,maskEmail.ts,modelCatalogSearch.ts,nodeRuntimeSupport.ts,parseApiKeys.ts,providerHints.ts,providerModelAliases.ts,rateLimiter.ts,releaseNotes.ts,a11yAudit.ts, साथ हीservices/,network/,middleware/,schemas/,hooks/,components/के अंतर्गत डैशबोर्ड हुक/कंपोनेंट।
4. open-sse/ — स्ट्रीमिंग इंजन वर्कस्पेस
@omniroute/open-sse के रूप में प्रकाशित अलग npm वर्कस्पेस। यह अनुरोध
प्रोसेसिंग, एक्ज़ीक्यूटर, ट्रांसलेटर, सेवाएँ, ट्रांसफ़ॉर्मर और MCP सर्वर का प्रबंधन करता है।
open-sse/
├── index.ts सार्वजनिक एक्सपोर्ट
├── package.json वर्कस्पेस मैनिफ़ेस्ट
├── tsconfig.json
├── types.d.ts
├── config/ प्रोवाइडर रजिस्ट्रियाँ, हेडर प्रोफ़ाइल, पहचान, …
├── handlers/ अनुरोध हैंडलर (चैट, एम्बेडिंग, ऑडियो, इमेज, …)
├── executors/ 108 प्रोवाइडर-विशिष्ट HTTP एक्ज़ीक्यूटर
├── translator/ फ़ॉर्मैट रूपांतरण (OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro)
├── transformer/ Responses API ↔ Chat Completions स्ट्रीम ट्रांसफ़ॉर्मर
├── services/ 80+ सेवा मॉड्यूल (कॉम्बो, फ़ॉलबैक, कोटा, पहचान, …)
├── utils/ स्ट्रीमिंग हेल्पर, TLS क्लाइंट, AWS SigV4, प्रॉक्सी फ़ेच, …
└── mcp-server/ MCP सर्वर (3 ट्रांसपोर्ट, 33 स्कोप, 110 टूल)
4.1 open-sse/handlers/
| हैंडलर | उद्देश्य |
|---|---|
chatCore.ts |
मुख्य चैट पाइपलाइन (कैश, दर सीमा, कॉम्बो रूटिंग, एक्ज़ीक्यूटर डिस्पैच) |
responsesHandler.ts |
OpenAI Responses API प्रवेश बिंदु |
embeddings.ts |
एम्बेडिंग |
imageGeneration.ts |
इमेज जनरेशन |
audioSpeech.ts |
टेक्स्ट-टू-स्पीच |
audioTranscription.ts |
स्पीच-टू-टेक्स्ट |
videoGeneration.ts |
वीडियो जनरेशन |
musicGeneration.ts |
संगीत जनरेशन |
rerank.ts |
पुनः रैंकिंग |
moderations.ts |
मॉडरेशन |
search.ts |
वेब खोज |
sseParser.ts |
SSE इवेंट पार्सर |
usageExtractor.ts |
अपस्ट्रीम स्ट्रीम से टोकन की संख्याएँ निकालना |
responseSanitizer.ts |
प्रोवाइडर-विशिष्ट अवांछित सामग्री हटाना |
responseTranslator.ts |
प्रोवाइडर प्रतिक्रिया और ट्रांसलेटर लेयर के बीच संयोजक |
4.2 open-sse/executors/
108 प्रोवाइडर एक्ज़ीक्यूटर, जिनमें से प्रत्येक BaseExecutor (base.ts) को एक्सटेंड करता है:
antigravity, azure-openai, blackbox-web, cliproxyapi,
chatgpt-web-codex, cloudflare-ai, codex, commandCode, cursor, default, devin-cli,
muse-spark-web, nlpcloud, opencode, perplexity-web, petals,
pollinations, qoder, vertex, devin-desktop, साथ ही claudeIdentity.ts
(साझा पहचान हेल्पर) और index.ts (रजिस्ट्री)।
टिप्पणी: यहाँ सूचीबद्ध नहीं किए गए प्रोवाइडर, जेनेरिक OpenAI-संगत एक्ज़ीक्यूटर का उपयोग करके
default.tsद्वारा संचालित किए जाते हैं। पूरा प्रोवाइडर कैटलॉग (355 प्रोवाइडर)src/shared/constants/providers.tsमें स्थित है।
4.3 open-sse/translator/
हब-एंड-स्पोक अनुवाद (OpenAI हब है)।
- 9 अनुरोध ट्रांसलेटर (
translator/request/):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। - 9 प्रतिक्रिया ट्रांसलेटर (
translator/response/):claude-to-openai,cursor-to-openai,gemini-to-claude,gemini-to-openai,kiro-to-openai,openai-responses,openai-to-antigravity,openai-to-claude। - 9 हेल्पर (
translator/helpers/):claudeHelper,geminiHelper,geminiToolsSanitizer,maxTokensHelper,openaiHelper,responsesApiHelper,schemaCoercion,toolCallHelper, साथ ही हेल्पर टेस्ट। - इमेज हेल्पर (
translator/image/sizeMapper.ts)। - शीर्ष-स्तर:
bootstrap.ts,formats.ts,registry.ts,index.ts।
4.4 open-sse/transformer/
responsesTransformer.ts—TransformStream-आधारित Responses API ↔ Chat Completions कनवर्टर (responses/रूट कैच-ऑल द्वारा उपयोग किया जाता है)।
4.5 open-sse/services/
मुख्य अंश (पूरी सूची open-sse/services/ के अंतर्गत है):
| विषय | फ़ाइलें |
|---|---|
| कॉम्बो रूटिंग | combo.ts (19 रणनीतियाँ), comboConfig.ts, comboMetrics.ts, comboManifestMetrics.ts, comboAgentMiddleware.ts |
| ऑटो कॉम्बो इंजन | autoCombo/ — engine.ts, scoring.ts, taskFitness.ts, virtualFactory.ts, modePacks.ts, autoPrefix.ts, persistence.ts, providerDiversity.ts, providerRegistryAccessor.ts, routerStrategy.ts, selfHealing.ts, index.ts |
| लचीलापन | accountFallback.ts (कूलडाउन + लॉकआउट), errorClassifier.ts, requestRejectedStreak.ts, emergencyFallback.ts, rateLimitManager.ts, rateLimitSemaphore.ts, accountSemaphore.ts, accountSelector.ts |
| कोटा | quotaMonitor.ts, quotaPreflight.ts, bailianQuotaFetcher.ts, codexQuotaFetcher.ts, deepseekQuotaFetcher.ts, openrouterQuotaFetcher.ts, openrouterFreeWindow.ts, crofUsageFetcher.ts, antigravityCredits.ts |
| कैशिंग | reasoningCache.ts, searchCache.ts, signatureCache.ts, requestDedup.ts |
| रूटिंग इंटेलिजेंस | intentClassifier.ts, taskAwareRouter.ts, backgroundTaskDetector.ts, volumeDetector.ts, wildcardRouter.ts, workflowFSM.ts, specificityDetector.ts, specificityRules.ts, specificityTypes.ts |
| मॉडल प्रबंधन | modelCapabilities.ts, modelDeprecation.ts, modelFamilyFallback.ts, modelStrip.ts, model.ts, provider.ts, providerRequestDefaults.ts, providerCostData.ts, payloadRules.ts |
| संपीड़न | compression/ — संपूर्ण संपीड़न इंजन वायरिंग |
| टोकन + सत्र | tokenRefresh.ts, sessionManager.ts, apiKeyRotator.ts, contextManager.ts, contextHandoff.ts, systemPrompt.ts, roleNormalizer.ts, responsesInputSanitizer.ts, toolSchemaSanitizer.ts, toolLimitDetector.ts, thinkingBudget.ts |
| टियर / मैनिफ़ेस्ट | tierResolver.ts, tierConfig.ts, tierDefaults.json, tierTypes.ts, manifestAdapter.ts |
| IP / नेटवर्क | ipFilter.ts, webSearchFallback.ts |
| बैच | batchProcessor.ts |
| उपयोग | usage.ts |
4.6 open-sse/mcp-server/
server.tsमें 110 अद्वितीय टूल वायर किए गए हैं (schemas/tools.tsमें 45 कैनोनिकल + मेमोरी, स्किल्स, GitHub-स्किल्स, पूल, गेमिफ़िकेशन, प्लगइन, Notion, Obsidian, लोकल-कॉर्पस और संपीड़न मॉड्यूल — यूनियन की गणनाcountUniqueMcpToolsद्वारा की गई है)।- 3 ट्रांसपोर्ट: stdio, HTTP Streamable, SSE।
- रनटाइम पर 33 स्कोप लागू किए गए हैं — आधार सूची
src/shared/constants/mcpScopes.tsमें है, पूरा सेट प्रत्येक टूल मॉड्यूल द्वारा घोषित स्कोप का यूनियन है। - ऑडिट तालिका:
mcp_tool_audit(audit.tsद्वारा भरी जाती है)। - फ़ाइलें:
server.ts,index.ts,httpTransport.ts,audit.ts,scopeEnforcement.ts,runtimeHeartbeat.ts,descriptionCompressor.ts,schemas/{tools, a2a, audit, index}.ts,tools/{advancedTools, compressionTools, memoryTools, skillTools}.ts, और__tests__/के अंतर्गत परीक्षण। - संपूर्ण टूल कैटलॉग के लिए MCP-SERVER.md देखें।
4.7 open-sse/config/
प्रोवाइडर रजिस्ट्रियाँ (providerRegistry.ts, providerModels.ts,
providerHeaderProfiles.ts), प्रत्येक फ़ॉर्मैट के लिए मॉडल रजिस्ट्रियाँ (audioRegistry.ts,
embeddingRegistry.ts, imageRegistry.ts, moderationRegistry.ts,
musicRegistry.ts, rerankRegistry.ts, searchRegistry.ts, videoRegistry.ts),
पहचान सहायक (codexIdentity.ts, codexInstructions.ts,
anthropicHeaders.ts, antigravityUpstream.ts, antigravityModelAliases.ts,
cliFingerprints.ts, toolCloaking.ts, defaultThinkingSignature.ts),
क्रेडेंशियल सहायक (credentialLoader.ts, codexClient.ts), और क्लाउड
अडैप्टर (azureAi.ts, bedrock.ts, datarobot.ts, glmProvider.ts,
maritalk.ts, oci.ts, petals.ts, runway.ts, sap.ts, watsonx.ts,
ollamaModels.ts, errorConfig.ts, constants.ts, registryUtils.ts)।
4.8 open-sse/utils/
स्ट्रीमिंग प्रिमिटिव और प्रोवाइडर हेल्पर: stream.ts, streamHandler.ts,
streamHelpers.ts, streamPayloadCollector.ts, streamReadiness.ts,
sseHeartbeat.ts, proxyFetch.ts, proxyDispatcher.ts, tlsClient.ts,
networkProxy.ts, awsSigV4.ts, cacheControlPolicy.ts,
cursorChecksum.ts, cursorAgentProtobuf.ts, cursorVersionDetector.ts,
comfyuiClient.ts, kieTask.ts, bypassHandler.ts, aiSdkCompat.ts,
thinkTagParser.ts, urlSanitize.ts, usageTracking.ts, requestLogger.ts,
progressTracker.ts, cors.ts, error.ts, logger.ts, sleep.ts,
ollamaTransform.ts.
5. electron/ — डेस्कटॉप रैपर
electron/
├── main.js Electron मुख्य प्रोसेस
├── preload.js प्रीलोड ब्रिज (contextIsolation सक्षम)
├── types.d.ts
├── package.json electron-builder कॉन्फ़िगरेशन, संस्करण 3.8.51
├── README.md
├── assets/ बिल्ड संसाधन (आइकन, एंटाइटलमेंट, …)
├── node_modules/ समर्पित node_modules (better-sqlite3, electron-updater)
└── dist-electron/ बिल्ड आउटपुट (कमिट नहीं किया गया)
वर्कस्पेस रूट पर पाँच npm स्क्रिप्ट हैं: electron:dev, electron:build,
electron:build:{win,mac,linux}, electron:smoke:packaged। स्वचालित अपडेट
GitHub रिलीज़ फ़ीड की ओर इंगित करने वाले electron-updater के माध्यम से होता है।
6. bin/ — CLI
bin/
├── omniroute.mjs मुख्य CLI एंट्री (Node ESM)
├── reset-password.mjs CLI से प्रबंधन पासवर्ड रीसेट करें
├── mcp-server.mjs MCP सर्वर लॉन्चर (stdio)
├── nodeRuntimeSupport.mjs Node संस्करण गार्ड
└── cli/
├── program.mjs Commander प्रोग्राम बिल्डर
├── runtime.mjs withRuntime सहायक (सर्वर-प्रथम/db-फ़ॉलबैक)
├── output.mjs आउटपुट फ़ॉर्मैटर (json/jsonl/table/csv)
├── i18n.mjs लोकेल सहित t() सहायक
├── api.mjs API फ़ेच सहायक
├── data-dir.mjs
├── encryption.mjs
├── sqlite.mjs
└── commands/
├── registry.mjs कमांड पंजीकरण
├── setup.mjs
├── doctor.mjs
├── providers.mjs
└── ... (प्रति कमांड/समूह एक फ़ाइल)
package.json → bin में दो बाइनरी उपलब्ध कराई गई हैं:
omniroute→bin/omniroute.mjsomniroute-reset-password→bin/reset-password.mjs
7. tests/
| डायरेक्टरी | प्रकार |
|---|---|
tests/unit/ |
Node नेटिव टेस्ट रनर के माध्यम से यूनिट टेस्ट (1821 फ़ाइलें, साथ ही api/, auth/, authz/ सबडायरेक्टरी) |
tests/integration/ |
क्रॉस-मॉड्यूल + DB-स्थिति टेस्ट |
tests/e2e/ |
Playwright UI टेस्ट |
tests/e2e/protocol-clients.test.ts |
MCP/A2A प्रोटोकॉल e2e |
tests/translator/ |
अनुवादक-विशिष्ट टेस्ट |
tests/security/ |
सुरक्षा रिग्रेशन |
tests/load/ |
लोड / स्ट्रेस टेस्ट |
tests/golden-set/ |
अनुवादक रिग्रेशन के लिए संदर्भ आउटपुट |
tests/helpers/, tests/fixtures/, tests/manual/ |
सहायक सामग्री |
सामान्य कमांड:
| कमांड | यह क्या चलाता है |
|---|---|
npm run test:unit |
Node टेस्ट रनर के माध्यम से सभी tests/unit/*.test.ts (समवर्तीता 10) |
npm run test:vitest |
Vitest सुइट (MCP, autoCombo, cache) |
npm run test:e2e |
Playwright UI सुइट |
npm run test:protocols:e2e |
MCP + A2A प्रोटोकॉल e2e |
npm run test:coverage |
कवरेज गेट (पंक्तियाँ/स्टेटमेंट/फ़ंक्शन/ब्रांच ≥60%) |
node --import tsx/esm --test tests/unit/<file>.test.ts |
एकल फ़ाइल निष्पादन |
8. scripts/
उद्देश्य के आधार पर 6 सबफ़ोल्डर में व्यवस्थित।
scripts/build/—build-next-isolated.mjs,prepublish.ts,prepare-electron-standalone.mjs,pack-artifact-policy.ts,validate-pack-artifact.ts,postinstall.mjs,postinstallSupport.mjs,uninstall.mjs,bootstrap-env.mjs,runtime-env.mjs,native-binary-compat.mjs।scripts/dev/—run-next.mjs,run-next-playwright.mjs,run-standalone.mjs,standalone-server-ws.mjs,responses-ws-proxy.mjs,v1-ws-bridge.mjs,smoke-electron-packaged.mjs,run-playwright-tests.mjs,run-ecosystem-tests.mjs,run-protocol-clients-tests.mjs,sync-env.mjs,healthcheck.mjs,system-info.mjs।scripts/check/—check-cycles.mjs,check-docs-sync.mjs,check-docs-counts-sync.mjs,check-env-doc-sync.mjs,check-deprecated-versions.mjs,check-route-validation.mjs,check-t11-any-budget.mjs,check-pr-test-policy.mjs,check-supported-node-runtime.ts,test-report-summary.mjs।scripts/docs/—generate-docs-index.mjs,gen-provider-reference.ts।scripts/i18n/—generate-multilang.mjs,run-visual-qa.mjs,generate-qa-checklist.mjs,apply-priority-overrides.mjs,validate_translation.py,check_translations.py,i18n_autotranslate.py,untranslatable-keys.json।scripts/ad-hoc/—cursor-tap.cjs,sync-cursor-models.mjs,migrate-env.mjs,dbsetup.js।
9. अनुरोध पाइपलाइन (सारांश)
क्लाइंट अनुरोध
→ /v1/chat/completions (route.ts)
CORS प्रीफ़्लाइट जाँच
Zod सत्यापन (shared/validation/schemas.ts में chatCompletionsSchema)
प्रमाणीकरण (extractApiKey + isValidApiKey अथवा requireManagementAuth)
नीति इंजन (src/server/authz/pipeline.ts)
सुरक्षा उपाय (PII मास्कर, प्रॉम्प्ट इंजेक्शन, विज़न ब्रिज)
→ handleChatCore() (open-sse/handlers/chatCore.ts)
कैश जाँच (सिमेंटिक + रीड कैश)
दर सीमा (rateLimitManager, accountSemaphore)
कॉम्बो रूटिंग (यदि मॉडल किसी कॉम्बो में रिज़ॉल्व होता है)
comboResolver → प्रत्येक लक्ष्य के लिए लूप → handleSingleModel()
translateRequest() (open-sse/translator/request/*)
getExecutor(providerId).execute() (open-sse/executors/*)
अपस्ट्रीम फ़ेच → accountFallback के माध्यम से पुनः प्रयास/बैकऑफ़
translateResponse() (open-sse/translator/response/*)
SSE स्ट्रीम अथवा JSON प्रतिक्रिया
यदि Responses API है: open-sse/transformer/responsesTransformer.ts के माध्यम से TransformStream
→ अनुपालन ऑडिट (src/lib/compliance/)
→ क्लाइंट को प्रतिक्रिया
रेज़िलिएंस रनटाइम स्थिति (तीन तंत्र)
| तंत्र | दायरा | स्थान |
|---|---|---|
| प्रदाता सर्किट ब्रेकर | संपूर्ण प्रदाता | src/shared/utils/circuitBreaker.ts, domain_circuit_breakers में स्थायी रूप से संग्रहीत |
| कनेक्शन कूलडाउन | एक खाता/कुंजी | src/sse/services/auth.ts में markAccountUnavailable(); accountFallback.checkFallbackError() द्वारा उपयोग |
| मॉडल लॉकआउट | प्रदाता + कनेक्शन + मॉडल | open-sse/services/accountFallback.ts, domain_lockout_state में स्थायी रूप से संग्रहीत |
RESILIENCE_GUIDE.md और CLAUDE.md में समर्पित अनुभाग देखें।
10. योगदान कैसे करें
नया प्रदाता जोड़ें
src/shared/constants/providers.tsमें पंजीकृत करें (लोड होते समय Zod द्वारा सत्यापित)।- यदि कस्टम लॉजिक आवश्यक हो, तो
open-sse/executors/में एक एक्ज़ीक्यूटर जोड़ें (BaseExecutorको विस्तारित करें)। - यदि वह OpenAI प्रारूप का उपयोग नहीं करता है, तो
open-sse/translator/में एक ट्रांसलेटर जोड़ें। - यदि वह OAuth-आधारित है, तो
src/lib/oauth/providers/औरsrc/lib/oauth/services/के अंतर्गत कॉन्फ़िगरेशन जोड़ें। - मॉडलों को
open-sse/config/providerRegistry.tsमें पंजीकृत करें (याopen-sse/config/के अंतर्गत प्रारूप-विशिष्ट रजिस्ट्री में)। tests/unit/के अंतर्गत परीक्षण लिखें।
नया API रूट जोड़ें
src/app/api/your-route/route.tsबनाएँ।- इस पैटर्न का पालन करें: CORS → Zod बॉडी सत्यापन → प्रमाणीकरण → हैंडलर को प्रत्यायोजन।
- यदि अनुरोध की संरचना नई है: Zod स्कीमा को
src/shared/validation/schemas.tsमें जोड़ें। - यदि यह केवल प्रबंधन के लिए है: पथ को
src/shared/constants/publicApiRoutes.tsमें जोड़ें (सार्वजनिक API सतह के लिए निषेध-सूची)। tests/unit/के अंतर्गत परीक्षण जोड़ें।docs/reference/API_REFERENCE.mdऔरdocs/openapi.yamlको अपडेट करें।
नया DB मॉड्यूल जोड़ें
src/lib/db/yourModule.tsबनाएँ और./core.tsसेgetDbInstance()आयात करें।- अपने डोमेन के लिए CRUD फ़ंक्शन निर्यात करें।
- यदि नई तालिकाएँ हैं:
src/lib/db/migrations/के अंतर्गत क्रमिक संख्या वाली, पुनरावृत्ति-सुरक्षित और ट्रांज़ैक्शनल माइग्रेशन जोड़ें। - आयातकर्ता
@/lib/db/yourModuleसे सीधे आयात का उपयोग करते हैं (कोई बैरल नहीं — पुरानीlocalDb.tsपुनः-निर्यात परत हटा दी गई थी)। tests/unit/के अंतर्गत परीक्षण जोड़ें।
नया MCP टूल जोड़ें
open-sse/mcp-server/tools/के अंतर्गत टूल की परिभाषा जोड़ें (याopen-sse/mcp-server/schemas/tools.tsको विस्तारित करें)।src/shared/constants/mcpScopes.tsमें उपयुक्त स्कोप निर्दिष्ट करें।- टूल को
open-sse/mcp-server/server.tsमें पंजीकृत करें। open-sse/mcp-server/__tests__/के अंतर्गत परीक्षण जोड़ें।- MCP-SERVER.md को अपडेट करें।
नया A2A कौशल जोड़ें
A2A-SERVER.md § नया कौशल जोड़ना देखें। कौशल
src/lib/a2a/skills/ में स्थित होते हैं और A2A कार्य प्रबंधक के माध्यम से पंजीकृत किए जाते हैं।
11. परिपाटियाँ
- कोड शैली: 2-स्पेस इंडेंट, दोहरे उद्धरण-चिह्न, 100 वर्ण चौड़ाई, सेमीकोलन,
es5ट्रेलिंग कॉमा —lint-stagedके माध्यम से Prettier द्वारा लागू। - आयात: बाहरी → आंतरिक (
@/,@omniroute/open-sse) → सापेक्ष। - नामकरण: फ़ाइलें
camelCaseयाkebab-case, कॉम्पोनेंटPascalCase, कॉन्स्टेंटUPPER_SNAKE। - ESLint:
no-eval,no-implied-eval,no-new-func= हर जगहerror;no-explicit-any=open-sse/औरtests/मेंwarn, अन्यत्रerror। - TypeScript:
strict: false(विरासती स्थिति)। क्रॉस-मॉड्यूल सीमाओं के लिए अनुमानित प्रकारों की तुलना में स्पष्ट प्रकारों को प्राथमिकता दें। - डेटाबेस: रूट या हैंडलर में कभी भी रॉ SQL न लिखें — हमेशा
src/lib/db/मॉड्यूल के माध्यम से जाएँ। कभी बैरल-आयात न करें — विशिष्टsrc/lib/db/*मॉड्यूल का सीधे उपयोग करें। - DB-एंटिटी टाइपिंग (#3512): DB तालिका के रो आकार को लिखने या पढ़ने वाले फ़ंक्शन को
उस तालिका के कॉलम को 1:1 प्रतिबिंबित करने वाला नामित TS इंटरफ़ेस लेना/लौटाना चाहिए,
न कि कॉल साइट पर
anyया कोई इनलाइन अनाम प्रकार। इंटरफ़ेस को फ़ंक्शन के पास रखें (उदाहरण के लिए,saveRequestUsageके ऊपरsrc/lib/usage/usageHistory.tsमेंexport interface UsageEntry), जब अलग-अलग राइटर रो को क्रमिक रूप से भरते हों, तो अलग-अलग फ़ील्ड को वैकल्पिक/नल-योग्य रखें, और ऐसे फ़ील्ड के लिएanyके बजायunknownको प्राथमिकता दें जिसका आकार कॉलर के अनुसार बदलता है (फ़ील्ड पर इसे प्रलेखित करें, उदाहरण के लिएUsageEntry.tokensरॉ प्रदाता-आकार वाले उपयोग और सामान्यीकृत आकार, दोनों को स्वीकार करता है)। जब इस तरह किसी फ़ाइल कीanyसंख्या शून्य हो जाए, तो उसेcheck:any-budget:t11अनुमति-सूची (scripts/check/check-t11-any-budget.mjs,maxAny: 0) में जोड़ें, ताकि वह वापस न बढ़ सके। यह प्रथम-खंड परिपाटी है — व्यापक "कोई अनामanyनहीं" सफ़ाई शेष कोडबेस में पुनरावृत्तीय रूप से की जाती है। - त्रुटियाँ: विशिष्ट त्रुटि प्रकारों के साथ try/catch का उपयोग करें, pino संदर्भ के साथ लॉग करें। SSE स्ट्रीम में त्रुटियों को कभी भी चुपचाप न दबाएँ; क्लीनअप के लिए अबॉर्ट सिग्नल का उपयोग करें।
- सुरक्षा: कभी भी
eval()/new Function()/ अप्रत्यक्ष eval का उपयोग न करें। सभी इनपुट को Zod से सत्यापित करें। संग्रहीत क्रेडेंशियल एन्क्रिप्ट रखें (AES-256-GCM)।src/shared/constants/upstreamHeaders.tsकी निषेध-सूची को सैनिटाइज़ेशन/सत्यापन परत के अनुरूप रखें। - कमिट: Conventional Commits —
feat(scope): subject। अनुमत स्कोप:db,sse,oauth,dashboard,api,cli,docker,ci,mcp,a2a,memory,skills। - ब्रांच: प्रीफ़िक्स
feat/,fix/,refactor/,docs/,test/,chore/। कभी भी सीधेmainमें कमिट न करें। - Husky: प्री-कमिट में
lint-staged+check:docs-sync+check:any-budget:t11चलते हैं; प्री-पुश मेंcheck:any-budget:t11+check:tracked-artifactsचलते हैं (त्वरित गेट;test:unitको शामिल नहीं करते)।
12. कठोर नियम (CLAUDE.md से)
- सीक्रेट्स या क्रेडेंशियल्स कभी कमिट न करें।
- कभी भी बैरल-इंपोर्ट न करें — सीधे विशिष्ट
src/lib/db/*मॉड्यूल का उपयोग करें। - कभी भी
eval()/new Function()/ अप्रत्यक्ष eval का उपयोग न करें। - कभी भी सीधे
mainमें कमिट न करें। - रूट्स में कभी भी रॉ SQL न लिखें — हमेशा
src/lib/db/मॉड्यूल के माध्यम से जाएँ। - SSE स्ट्रीम्स में त्रुटियों को कभी भी चुपचाप अनदेखा न करें।
- इनपुट्स को हमेशा Zod स्कीमा के साथ वैलिडेट करें।
- प्रोडक्शन कोड बदलते समय हमेशा टेस्ट शामिल करें।
- कवरेज ≥ 60% (स्टेटमेंट्स, लाइन्स, फ़ंक्शंस, ब्रांचेज़) रहना चाहिए।
13. यह भी देखें
- ARCHITECTURE.md — उच्च-स्तरीय आर्किटेक्चर और मॉड्यूल की ज़िम्मेदारियाँ।
- API_REFERENCE.md — सार्वजनिक + प्रबंधन API संदर्भ।
- FEATURES.md — फ़ीचर मैट्रिक्स और वर्ज़न की प्रमुख विशेषताएँ।
- RESILIENCE_GUIDE.md — सर्किट ब्रेकर, कूलडाउन और लॉकआउट का गहन विवरण।
- AUTO-COMBO.md — Auto Combo स्कोरिंग और रणनीतियाँ।
- MCP-SERVER.md — संपूर्ण MCP टूल कैटलॉग + ट्रांसपोर्ट्स।
- A2A-SERVER.md — A2A प्रोटोकॉल स्किल्स और डिस्कवरी।
- COMPRESSION_GUIDE.md — RTK + Caveman कम्प्रेशन।
- CLI-TOOLS.md — CLI इंटीग्रेशंस।
- ELECTRON_GUIDE.md (यदि उपलब्ध हो), DOCKER_GUIDE.md, FLY_IO_DEPLOYMENT_GUIDE.md, VM_DEPLOYMENT_GUIDE.md, TERMUX_GUIDE.md, PWA_GUIDE.md — डिप्लॉयमेंट लक्ष्य।
- TROUBLESHOOTING.md — सामान्य संचालन संबंधी समस्याएँ।
- CONTRIBUTING.md — योगदानकर्ता वर्कफ़्लो।
- CLAUDE.md — Claude Code के लिए रेपो नियम (ऊपर दिए गए कई कन्वेंशंस का प्रामाणिक स्रोत)।
- AGENTS.md — एजेंट्स द्वारा उपयोग किया जाने वाला अधिक विस्तृत आर्किटेक्चर संदर्भ।