Files
OmniRoute/docs/i18n/kn/docs/architecture/CODEBASE_DOCUMENTATION.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
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
2026-09-17 02:55:31 -03:00

105 KiB

OmniRoute Codebase Documentation (ಕನ್ನಡ)

🌐 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 · 🇰🇷 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 server, A2A server, Skills, Memory, Cloud Agents, Resilience, Compression, ಇತ್ಯಾದಿ) ಆಳವಾದ ವಿವರಗಳಿಗಾಗಿ, ಈ docs/ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿರುವ ಅವುಗಳಿಗೆ ಮೀಸಲಾದ ಫೈಲ್ಗಳನ್ನು ನೋಡಿ.

ಈ ಫೈಲ್ ಇಂದು ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಏನಿದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ; ಇದರಿಂದ ಹೊಸ ಎಂಜಿನಿಯರ್ ಟ್ರೀನಲ್ಲಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಬಹುದು, ರನ್ಟೈಮ್ ಲೇಯರಿಂಗ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ಹೊಸ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ರಚಿಸದೆಯೇ ಕೋಡ್ ಅನ್ನು ಎಲ್ಲಿ ಸೇರಿಸಬೇಕು ಎಂಬುದನ್ನು ತಿಳಿದುಕೊಳ್ಳಬಹುದು.


1. ತಂತ್ರಜ್ಞಾನ ಸ್ಟ್ಯಾಕ್

ಪರಿಗಣನೆ ಆಯ್ಕೆ
ವೆಬ್ ಫ್ರೇಮ್ವರ್ಕ್ Next.js 16 (App Router, ಸ್ವತಂತ್ರ ಔಟ್ಪುಟ್, ಜಾಗತಿಕ middleware ಇಲ್ಲ)
ಭಾಷೆ 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 (singleton, WAL journaling)
ಡೆಸ್ಕ್ಟಾಪ್ Electron 41 + electron-builder 26.10 (electron/ನಲ್ಲಿ ಪ್ರತ್ಯೇಕ workspace)
ಪರೀಕ್ಷೆಗಳು Node native test runner (ಘಟಕ/ಏಕೀಕರಣ), Vitest (MCP, autoCombo, cache), Playwright (e2e + protocols-e2e)
ಬಿಲ್ಡ್ scripts/build/build-next-isolated.mjs ಮೂಲಕ Next.js standalone
ಲಿಂಟ್/ಫಾರ್ಮ್ಯಾಟ್ ESLint flat config + Prettier (Husky pre-commit ಮೂಲಕ lint-staged)
ಮಾಡ್ಯೂಲ್ ವ್ಯವಸ್ಥೆ ಎಲ್ಲೆಡೆ ESM ("type": "module")
ವರ್ಕ್ಸ್ಪೇಸ್ಗಳು npm workspace — open-sse ಮಾತ್ರ ಏಕೈಕ ಉಪ-ವರ್ಕ್ಸ್ಪೇಸ್

ಪಥ ಅಲಿಯಾಸ್ಗಳು (tsconfig.json):

  • @/*src/*
  • @omniroute/open-sseopen-sse/index.ts
  • @omniroute/open-sse/*open-sse/*

ಡೀಫಾಲ್ಟ್ HTTP ಪೋರ್ಟ್: 20128 (API ಮತ್ತು ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಒಂದೇ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ). ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯು DATA_DIR env var ಆಗಿದ್ದು, ಅದರ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ ~/.omniroute/ ಆಗಿದೆ.


2. ರೆಪೊಸಿಟರಿ ವಿನ್ಯಾಸ

OmniRoute/
├── src/                  Next.js ಅಪ್ಲಿಕೇಶನ್ (App Router, ಲೈಬ್ರರಿಗಳು, ಡೊಮೇನ್, ಸರ್ವರ್, ಹಂಚಿದ ಸಂಪನ್ಮೂಲಗಳು)
├── open-sse/             ಸ್ಟ್ರೀಮಿಂಗ್ ಎಂಜಿನ್ ವರ್ಕ್ಸ್ಪೇಸ್ (@omniroute/open-sse)
├── electron/             ಡೆಸ್ಕ್ಟಾಪ್ ರ್ಯಾಪರ್ (Electron 41 main + preload)
├── bin/                  CLI ಪ್ರವೇಶ ಬಿಂದುಗಳು (omniroute, reset-password)
├── tests/                ಘಟಕ, ಏಕೀಕರಣ, e2e, protocols-e2e, ಅನುವಾದಕ, ಭದ್ರತೆ, fixtures
├── scripts/              ಬಿಲ್ಡ್, ಸಿಂಕ್, ಪರಿಶೀಲನೆ, migration ಮತ್ತು ರನ್ಟೈಮ್ ಸಹಾಯಕ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು
├── docs/                 ಸಾರ್ವಜನಿಕ ದಸ್ತಾವೇಜೀಕರಣ (ಈ ಡೈರೆಕ್ಟರಿ)
├── public/               ಸ್ಥಿರ assets, PWA manifest, service worker
├── config/               ರನ್ಟೈಮ್ config ಮಾದರಿಗಳು
├── images/               ಮಾರ್ಕೆಟಿಂಗ್/ಸ್ಕ್ರೀನ್ಶಾಟ್ assets
├── _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, auth, OAuth, skills, memory, …)
├── domain/               ಶುದ್ಧ ಡೊಮೇನ್ ಲೇಯರ್ (policy, fallback, cost, lockout, …)
├── server/               ಸರ್ವರ್ಗೆ ಮಾತ್ರ ಸೀಮಿತವಾದ ಮಾಡ್ಯೂಲ್ಗಳು (authz, cors, auth)
├── shared/               ಪ್ರಕಾರಗಳು, ಸ್ಥಿರಾಂಕಗಳು, ಮೌಲ್ಯೀಕರಣ, ಒಪ್ಪಂದಗಳು, ಉಪಯುಕ್ತತೆಗಳು (ಗಡಿಗಳಾದ್ಯಂತ ಸುರಕ್ಷಿತ)
├── mitm/                 CLI ಏಕೀಕರಣಕ್ಕಾಗಿ ಮ್ಯಾನ್-ಇನ್-ದಿ-ಮಿಡಲ್ ಪ್ರಾಕ್ಸಿ ಸಹಾಯಕಗಳು
├── models/               ಸ್ಥಳೀಯ ಮಾಡೆಲ್ ಮೆಟಾಡೇಟಾ / ಅಲಿಯಾಸಿಂಗ್
├── sse/                  ಇನ್ನೂ src/ ಅಡಿಯಲ್ಲಿ ಇರುವ ಹಳೆಯ SSE ಹ್ಯಾಂಡ್ಲರ್ಗಳು (open-sse/ ಅಲ್ಲ)
├── store/                ಕ್ಲೈಂಟ್-ಸೈಡ್ ಸ್ಥಿತಿ ಸ್ಟೋರ್ಗಳು
├── middleware/           ರೂಟ್-ಮಟ್ಟದ middleware ಉಪಯುಕ್ತತೆಗಳು (Next.js ಜಾಗತಿಕ middleware ಅಲ್ಲ)
├── scripts/              ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಿಂದ ಆಮದು ಮಾಡಬಹುದಾದ ಇನ್-ಟ್ರೀ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು
├── types/                ಆಂಬಿಯೆಂಟ್ ಮತ್ತು ಹಂಚಿಕೆಯ TS ಪ್ರಕಾರಗಳು
├── i18n/                 ಲೋಕೇಲ್ ಬಂಡಲ್ಗಳು
├── instrumentation.ts    Next.js ಇನ್ಸ್ಟ್ರುಮೆಂಟೇಶನ್ ಹುಕ್
├── instrumentation-node.ts
└── proxy.ts              ಉನ್ನತ-ಮಟ್ಟದ ಪ್ರಾಕ್ಸಿ ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಸಹಾಯಕ

3.1 src/app/ — App Router

App Router ಡ್ಯಾಶ್ಬೋರ್ಡ್ UI ಮತ್ತು ಸಾರ್ವಜನಿಕ/ನಿರ್ವಹಣಾ HTTP API ಎರಡನ್ನೂ ಒದಗಿಸುತ್ತದೆ. ಇಲ್ಲಿ ಜಾಗತಿಕ middleware ಇಲ್ಲ — ಇಂಟರ್ಸೆಪ್ಶನ್ ಅನ್ನು ಪ್ರತಿ ರೂಟ್ಗೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಮಾಡಲಾಗುತ್ತದೆ.

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/ Env ಲೋಡಿಂಗ್ + ಪರಿಶೀಲನೆ
evals/ Eval ರನ್ಟೈಮ್
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/ Agent Skills ಕ್ಯಾಟಲಾಗ್ + ಜನರೇಟರ್: 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 (Cloud Sync)
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.ts
  • apiBridgeServer.ts, cacheLayer.ts, semanticCache.ts, settingsCache.ts
  • cloudSync.ts, initCloudSync.ts
  • cloudflaredTunnel.ts, ngrokTunnel.ts, tailscaleTunnel.ts
  • consoleInterceptor.ts, container.ts, gracefulShutdown.ts, idempotencyLayer.ts
  • ipUtils.ts, logEnv.ts, logPayloads.ts, logRotation.ts
  • modelAliasSeed.ts, modelCapabilities.ts, modelMetadataRegistry.ts, modelsDevSync.ts
  • piiSanitizer.ts, pricingSync.ts
  • apiKeyExposure.ts, cacheControlSettings.ts, dataPaths.ts, toolPolicy.ts
  • translatorEvents.ts, usageDb.ts, usageAnalytics.ts, webhookDispatcher.ts

3.2.1 src/lib/db/

ಸಿಂಗಲ್ಟನ್ SQLite ಡೇಟಾಬೇಸ್ (core.ts ನಲ್ಲಿ getDbInstance(), WAL ಜರ್ನಲಿಂಗ್). ರೂಟ್ಗಳು ಅಥವಾ ಹ್ಯಾಂಡ್ಲರ್ಗಳಲ್ಲಿ ಎಂದಿಗೂ ಕಚ್ಚಾ SQL ಬರೆಯಬೇಡಿ — ಈ ಮಾಡ್ಯೂಲ್ಗಳ ಮೂಲಕವೇ ಕಾರ್ಯನಿರ್ವಹಿಸಿ.

ಡೇಟಾಬೇಸ್ ಸ್ಕೀಮಾ ಅವಲೋಕನ (ಆಯ್ದ ಮೂಲ ಕೋಷ್ಟಕಗಳು)

ಮೂಲ: diagrams/db-schema-overview.mmd

ಡೊಮೇನ್ ಮಾಡ್ಯೂಲ್ಗಳು (ಪ್ರತಿಯೊಂದೂ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಕೋಷ್ಟಕಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ): 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.tsTransformStream-ಆಧಾರಿತ 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, 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 fetch ಸಹಾಯಕ
    ├── data-dir.mjs
    ├── encryption.mjs
    ├── sqlite.mjs
    └── commands/
        ├── registry.mjs    ಕಮಾಂಡ್ ನೋಂದಣಿ
        ├── setup.mjs
        ├── doctor.mjs
        ├── providers.mjs
        └── ...             (ಪ್ರತಿ ಕಮಾಂಡ್/ಗುಂಪಿಗೆ ಒಂದು ಫೈಲ್)

package.jsonbin ನಲ್ಲಿ ಎರಡು ಬೈನರಿಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸಲಾಗಿದೆ:

  • omniroutebin/omniroute.mjs
  • omniroute-reset-passwordbin/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)

ಮೂಲ: diagrams/request-pipeline.mmd

ಕ್ಲೈಂಟ್ ವಿನಂತಿ
  → /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. ಕೊಡುಗೆ ನೀಡುವುದು ಹೇಗೆ

ಹೊಸ provider ಅನ್ನು ಸೇರಿಸಿ

  1. src/shared/constants/providers.ts ನಲ್ಲಿ ನೋಂದಾಯಿಸಿ (ಲೋಡ್ ಆಗುವಾಗ Zod ಮೂಲಕ ಮೌಲ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ).
  2. ಕಸ್ಟಮ್ ತರ್ಕ ಅಗತ್ಯವಿದ್ದರೆ open-sse/executors/ ನಲ್ಲಿ executor ಅನ್ನು ಸೇರಿಸಿ (BaseExecutor ಅನ್ನು ವಿಸ್ತರಿಸಿ).
  3. ಅದು OpenAI ಸ್ವರೂಪವನ್ನು ಬಳಸದೇ ಇದ್ದರೆ open-sse/translator/ ನಲ್ಲಿ translator ಅನ್ನು ಸೇರಿಸಿ.
  4. OAuth-ಆಧಾರಿತವಾಗಿದ್ದರೆ, src/lib/oauth/providers/ ಮತ್ತು src/lib/oauth/services/ ಅಡಿಯಲ್ಲಿ config ಸೇರಿಸಿ.
  5. open-sse/config/providerRegistry.ts ನಲ್ಲಿ (ಅಥವಾ open-sse/config/ ಅಡಿಯಲ್ಲಿರುವ ಸ್ವರೂಪ-ನಿರ್ದಿಷ್ಟ registry ಯಲ್ಲಿ) models ಅನ್ನು ನೋಂದಾಯಿಸಿ.
  6. tests/unit/ ಅಡಿಯಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಿರಿ.

ಹೊಸ API route ಅನ್ನು ಸೇರಿಸಿ

  1. src/app/api/your-route/route.ts ರಚಿಸಿ.
  2. ಈ ಮಾದರಿಯನ್ನು ಅನುಸರಿಸಿ: CORS → Zod body ಮೌಲ್ಯೀಕರಣ → auth → handler ನಿಯೋಜನೆ.
  3. ಹೊಸ request shape ಇದ್ದರೆ: src/shared/validation/schemas.ts ನಲ್ಲಿ Zod schema ಅನ್ನು ಸೇರಿಸಿ.
  4. ನಿರ್ವಹಣೆಗೆ ಮಾತ್ರ ಸಂಬಂಧಿಸಿದ್ದರೆ: src/shared/constants/publicApiRoutes.ts ಗೆ path ಅನ್ನು ಸೇರಿಸಿ (ಸಾರ್ವಜನಿಕ API ಮೇಲ್ಮೈಗಾಗಿ denylist).
  5. tests/unit/ ಅಡಿಯಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಸೇರಿಸಿ.
  6. docs/reference/API_REFERENCE.md ಮತ್ತು docs/openapi.yaml ಅನ್ನು ನವೀಕರಿಸಿ.

ಹೊಸ DB module ಅನ್ನು ಸೇರಿಸಿ

  1. src/lib/db/yourModule.ts ರಚಿಸಿ ಮತ್ತು ./core.ts ನಿಂದ getDbInstance() ಅನ್ನು import ಮಾಡಿ.
  2. ನಿಮ್ಮ domain ಗಾಗಿ CRUD functions ಅನ್ನು export ಮಾಡಿ.
  3. ಹೊಸ tables ಇದ್ದರೆ: src/lib/db/migrations/ ಅಡಿಯಲ್ಲಿ migration ಅನ್ನು ಸೇರಿಸಿ; ಅದು ಅನುಕ್ರಮವಾಗಿ ಸಂಖ್ಯೆ ಹೊಂದಿರಬೇಕು, idempotent ಆಗಿರಬೇಕು ಮತ್ತು transactional ಆಗಿರಬೇಕು.
  4. Importers ಗಳು @/lib/db/yourModule ನಿಂದ ನೇರ imports ಅನ್ನು ಬಳಸಬೇಕು (barrel ಬೇಡ — ಹಳೆಯ localDb.ts re-export layer ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ).
  5. tests/unit/ ಅಡಿಯಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಸೇರಿಸಿ.

ಹೊಸ MCP tool ಅನ್ನು ಸೇರಿಸಿ

  1. open-sse/mcp-server/tools/ ಅಡಿಯಲ್ಲಿ tool definition ಅನ್ನು ಸೇರಿಸಿ (ಅಥವಾ open-sse/mcp-server/schemas/tools.ts ಅನ್ನು ವಿಸ್ತರಿಸಿ).
  2. src/shared/constants/mcpScopes.ts ನಲ್ಲಿ ಸೂಕ್ತ scope(ಗಳನ್ನು) ನಿಯೋಜಿಸಿ.
  3. open-sse/mcp-server/server.ts ನಲ್ಲಿ tool ಅನ್ನು ನೋಂದಾಯಿಸಿ.
  4. open-sse/mcp-server/__tests__/ ಅಡಿಯಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಸೇರಿಸಿ.
  5. MCP-SERVER.md ಅನ್ನು ನವೀಕರಿಸಿ.

ಹೊಸ A2A skill ಅನ್ನು ಸೇರಿಸಿ

A2A-SERVER.md § ಹೊಸ Skill ಸೇರಿಸುವುದು ನೋಡಿ. Skills ಗಳು src/lib/a2a/skills/ ನಲ್ಲಿ ಇರುತ್ತವೆ ಮತ್ತು A2A task manager ಮೂಲಕ ನೋಂದಾಯಿಸಲ್ಪಡುತ್ತವೆ.


11. ಸಂಪ್ರದಾಯಗಳು

  • Code style: 2-space indent, double quotes, 100 char width, semicolons, es5 trailing commas — lint-staged ಮೂಲಕ Prettier ಇದನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ.
  • Imports: external → internal (@/, @omniroute/open-sse) → relative.
  • Naming: files camelCase ಅಥವಾ kebab-case, components PascalCase, constants UPPER_SNAKE.
  • ESLint: ಎಲ್ಲೆಡೆ no-eval, no-implied-eval, no-new-func = error; open-sse/ ಮತ್ತು tests/ ನಲ್ಲಿ no-explicit-any = warn, ಇತರೆಡೆ error.
  • TypeScript: strict: false (legacy ನಿಲುವು). Cross-module boundaries ಗಾಗಿ inference ಗಿಂತ explicit types ಗೆ ಆದ್ಯತೆ ನೀಡಿ.
  • Database: routes ಅಥವಾ handlers ನಲ್ಲಿ raw SQL ಅನ್ನು ಎಂದಿಗೂ ಬರೆಯಬೇಡಿ — ಯಾವಾಗಲೂ src/lib/db/ modules ಮೂಲಕವೇ ಕಾರ್ಯನಿರ್ವಹಿಸಿ. Barrel-import ಅನ್ನು ಎಂದಿಗೂ ಮಾಡಬೇಡಿ — ನಿರ್ದಿಷ್ಟ src/lib/db/* modules ಅನ್ನು ನೇರವಾಗಿ ಬಳಸಿ.
  • DB-entity typing (#3512): DB table ನ row shape ಅನ್ನು ಬರೆಯುವ ಅಥವಾ ಓದುವ function, ಆ table ನ columns ಅನ್ನು 1:1 ಪ್ರತಿಬಿಂಬಿಸುವ ಹೆಸರಿಸಲಾದ TS interface ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು/ಹಿಂತಿರುಗಿಸಬೇಕು; call site ನಲ್ಲಿ any ಅಥವಾ inline anonymous type ಅನ್ನು ಬಳಸಬಾರದು. Interface ಅನ್ನು function ನ ಪಕ್ಕದಲ್ಲೇ ಇರಿಸಿ (ಉದಾ. saveRequestUsage ಮೇಲಿನ src/lib/usage/usageHistory.ts ನಲ್ಲಿ export interface UsageEntry), ವಿಭಿನ್ನ writers ಗಳು row ಅನ್ನು ಹಂತ ಹಂತವಾಗಿ ತುಂಬುವಾಗ ಪ್ರತ್ಯೇಕ fields ಅನ್ನು optional/nullable ಆಗಿರಿಸಿ, ಮತ್ತು callers ಗಳಾದ್ಯಂತ shape ಬದಲಾಗುವ field ಗೆ any ಬದಲು unknown ಗೆ ಆದ್ಯತೆ ನೀಡಿ (field ಮೇಲೆ ಇದನ್ನು ದಾಖಲಿಸಿ, ಉದಾ. UsageEntry.tokens raw provider-shaped usage ಮತ್ತು normalized shape ಎರಡನ್ನೂ ಸ್ವೀಕರಿಸುತ್ತದೆ). ಈ ರೀತಿಯಲ್ಲಿ file ನ any count ಶೂನ್ಯಕ್ಕೆ ತಲುಪಿದ ನಂತರ, regression ಆಗದಂತೆ ಅದನ್ನು check:any-budget:t11 allowlist ಗೆ (scripts/check/check-t11-any-budget.mjs, maxAny: 0) ಸೇರಿಸಿ. ಇದು first-slice ಸಂಪ್ರದಾಯವಾಗಿದೆ — ವಿಶಾಲವಾದ "anonymous any ಬೇಡ" cleanup ಅನ್ನು ಉಳಿದ codebase ನಾದ್ಯಂತ ಪುನರಾವರ್ತಿತವಾಗಿ ನಡೆಸಲಾಗುತ್ತದೆ.
  • Errors: ನಿರ್ದಿಷ್ಟ error types ಜೊತೆ try/catch ಬಳಸಿ, pino context ಜೊತೆ log ಮಾಡಿ. SSE streams ನಲ್ಲಿ errors ಅನ್ನು ಎಂದಿಗೂ ಮೌನವಾಗಿ ನಿರ್ಲಕ್ಷಿಸಬೇಡಿ; cleanup ಗಾಗಿ abort signals ಬಳಸಿ.
  • Security: eval() / new Function() / implied eval ಅನ್ನು ಎಂದಿಗೂ ಬಳಸಬೇಡಿ. ಎಲ್ಲಾ inputs ಅನ್ನು Zod ಮೂಲಕ ಮೌಲ್ಯೀಕರಿಸಿ. ಸಂಗ್ರಹಿತ credentials ಅನ್ನು encrypt ಮಾಡಿ (AES-256-GCM). src/shared/constants/upstreamHeaders.ts denylist ಅನ್ನು sanitize/validation layer ಜೊತೆ ಹೊಂದಾಣಿಕೆಯಲ್ಲಿ ಇರಿಸಿ.
  • Commits: Conventional Commits — feat(scope): subject. ಅನುಮತಿಸಲಾದ scopes: db, sse, oauth, dashboard, api, cli, docker, ci, mcp, a2a, memory, skills.
  • Branches: prefixes feat/, fix/, refactor/, docs/, test/, chore/. main ಗೆ ಎಂದಿಗೂ ನೇರವಾಗಿ commit ಮಾಡಬೇಡಿ.
  • Husky: pre-commit ವೇಳೆ lint-staged + check:docs-sync + check:any-budget:t11 ರನ್ ಆಗುತ್ತವೆ; pre-push ವೇಳೆ check:any-budget:t11 + check:tracked-artifacts ರನ್ ಆಗುತ್ತವೆ (ವೇಗದ gates; test:unit ಅನ್ನು ಹೊರತುಪಡಿಸುತ್ತದೆ).

12. ಕಠಿಣ ನಿಯಮಗಳು (CLAUDE.md ನಿಂದ)

  1. ರಹಸ್ಯಗಳು ಅಥವಾ ರುಜುವಾತುಗಳನ್ನು ಎಂದಿಗೂ ಕಮಿಟ್ ಮಾಡಬೇಡಿ.
  2. ಬ್ಯಾರೆಲ್-ಇಂಪೋರ್ಟ್ ಅನ್ನು ಎಂದಿಗೂ ಬಳಸಬೇಡಿ — ನಿರ್ದಿಷ್ಟ src/lib/db/* ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ನೇರವಾಗಿ ಬಳಸಿ.
  3. eval() / new Function() / ಪರೋಕ್ಷ eval ಅನ್ನು ಎಂದಿಗೂ ಬಳಸಬೇಡಿ.
  4. main ಗೆ ಎಂದಿಗೂ ನೇರವಾಗಿ ಕಮಿಟ್ ಮಾಡಬೇಡಿ.
  5. ರೂಟ್ಗಳಲ್ಲಿ ಕಚ್ಚಾ SQL ಅನ್ನು ಎಂದಿಗೂ ಬರೆಯಬೇಡಿ — ಯಾವಾಗಲೂ src/lib/db/ ಮಾಡ್ಯೂಲ್ಗಳ ಮೂಲಕವೇ ಬಳಸಿ.
  6. SSE ಸ್ಟ್ರೀಮ್ಗಳಲ್ಲಿನ ದೋಷಗಳನ್ನು ಎಂದಿಗೂ ಮೌನವಾಗಿ ನಿರ್ಲಕ್ಷಿಸಬೇಡಿ.
  7. ಇನ್ಪುಟ್ಗಳನ್ನು ಯಾವಾಗಲೂ Zod ಸ್ಕೀಮಾಗಳೊಂದಿಗೆ ಮೌಲ್ಯೀಕರಿಸಿ.
  8. ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸುವಾಗ ಯಾವಾಗಲೂ ಪರೀಕ್ಷೆಗಳನ್ನು ಸೇರಿಸಿ.
  9. ವ್ಯಾಪ್ತಿಯು (ಸ್ಟೇಟ್ಮೆಂಟ್ಗಳು, ಸಾಲುಗಳು, ಫಂಕ್ಷನ್ಗಳು, ಬ್ರಾಂಚ್ಗಳು) ≥ 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 — ಏಜೆಂಟ್ಗಳು ಬಳಸುವ ಹೆಚ್ಚು ಆಳವಾದ ಆರ್ಕಿಟೆಕ್ಚರ್ ಉಲ್ಲೇಖ.