Files
OmniRoute/docs/i18n/ml/docs/architecture/CODEBASE_DOCUMENTATION.md
Diego Rodrigues de Sa e Souza 58f88a83e4 feat(i18n): 7 new locales — Hausa, Yoruba, Igbo, Amharic, Uzbek, Georgian, Armenian (66 locales) (#13727)
Batch 3 (last) of the locale-expansion plan: ha, yo, ig, am, uz, ka, hy on every surface — dashboard catalog, docs mirror (22-file core + llm.txt + CHANGELOG), CLI catalog, README flag block, locale tables and 🌐 language bars. Also closes the key gap the batch-1 (43 keys) and batch-2 (10 keys) catalogs carried since their base merges, fixes the Igbo "Model" copy and allowlists the Uzbek cognate. Translation-ratio baseline covers 65 locales.

⚠️ base-red inherited: #12732
2026-09-15 09:50:01 -03:00

110 KiB

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 · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 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



title: "OmniRoute കോഡ്ബേസ് ഡോക്യുമെന്റേഷൻ" version: 3.8.40 lastUpdated: 2026-06-28

OmniRoute കോഡ്ബേസ് ഡോക്യുമെന്റേഷൻ

പതിപ്പ്: 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, സ്റ്റാൻഡ്എലോൺ ഔട്ട്പുട്ട്, ഗ്ലോബൽ മിഡിൽവെയർ ഇല്ല)
ഭാഷ 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 pre-commit വഴി lint-staged)
മൊഡ്യൂൾ സിസ്റ്റം എല്ലായിടത്തും ESM ("type": "module")
വർക്ക്സ്പേസുകൾ npm വർക്ക്സ്പേസ് — open-sse മാത്രമാണ് സബ്-വർക്ക്സ്പേസ്

പാത്ത് അപരനാമങ്ങൾ (tsconfig.json):

  • @/*src/*
  • @omniroute/open-sseopen-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, auth, OAuth, skills, memory, …)
├── domain/               ശുദ്ധമായ ഡൊമെയ്ൻ ലെയർ (policy, fallback, cost, lockout, …)
├── server/               സെർവറിൽ മാത്രം ഉപയോഗിക്കാവുന്ന മൊഡ്യൂളുകൾ (authz, cors, auth)
├── shared/               തരങ്ങൾ, സ്ഥിരാങ്കങ്ങൾ, സാധൂകരണം, കരാറുകൾ, യൂട്ടിലിറ്റികൾ (അതിരുകൾക്കപ്പുറം സുരക്ഷിതം)
├── mitm/                 CLI സംയോജനത്തിനുള്ള മാൻ-ഇൻ-ദി-മിഡിൽ പ്രോക്സി സഹായികൾ
├── models/               ലോക്കൽ മോഡൽ മെറ്റാഡാറ്റ / അപരനാമ നിർണ്ണയം
├── sse/                  ഇപ്പോഴും src/ എന്നതിന് കീഴിലുള്ള പഴയ SSE ഹാൻഡ്ലറുകൾ (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 എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും ആരംഭിക്കുന്നതിനും നിർത്തുന്നതിനും നിരീക്ഷിക്കുന്നതിനുമുള്ള റൂട്ടുകൾ. npm install പ്രവർത്തിപ്പിക്കാനും ചൈൽഡ് പ്രോസസുകൾ സ്പോൺ ചെയ്യാനും കഴിയുന്നതിനാൽ എല്ലാ പാതകളും LOCAL_ONLY (ലൂപ്പ്ബാക്കിൽ മാത്രം, കർശന നിയമം #17) ആയി വർഗ്ഗീകരിച്ചിരിക്കുന്നു.

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/

  • 110 തനത് ടൂളുകൾ server.ts-ൽ വയർ ചെയ്തിരിക്കുന്നു (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. എങ്ങനെ സംഭാവന ചെയ്യാം

ഒരു പുതിയ പ്രൊവൈഡർ ചേർക്കുക

  1. src/shared/constants/providers.ts-ൽ രജിസ്റ്റർ ചെയ്യുക (ലോഡ് ചെയ്യുമ്പോൾ Zod ഉപയോഗിച്ച് സാധൂകരിക്കുന്നു).
  2. ഇഷ്ടാനുസൃത ലോജിക് ആവശ്യമാണെങ്കിൽ open-sse/executors/-ൽ ഒരു എക്സിക്യൂട്ടർ ചേർക്കുക (BaseExecutor വിപുലീകരിക്കുക).
  3. അത് OpenAI ഫോർമാറ്റ് ഉപയോഗിക്കുന്നില്ലെങ്കിൽ open-sse/translator/-ൽ ഒരു ട്രാൻസ്ലേറ്റർ ചേർക്കുക.
  4. OAuth അടിസ്ഥാനമാക്കിയുള്ളതാണെങ്കിൽ, src/lib/oauth/providers/-നും src/lib/oauth/services/-നും കീഴിൽ കോൺഫിഗറേഷൻ ചേർക്കുക.
  5. open-sse/config/providerRegistry.ts-ൽ (അല്ലെങ്കിൽ open-sse/config/-ന് കീഴിലുള്ള ഫോർമാറ്റ്-നിർദ്ദിഷ്ട രജിസ്ട്രിയിൽ) മോഡലുകൾ രജിസ്റ്റർ ചെയ്യുക.
  6. tests/unit/-ന് കീഴിൽ ടെസ്റ്റുകൾ എഴുതുക.

ഒരു പുതിയ API റൂട്ട് ചേർക്കുക

  1. src/app/api/your-route/route.ts സൃഷ്ടിക്കുക.
  2. ഈ മാതൃക പിന്തുടരുക: CORS → Zod ബോഡി സാധൂകരണം → ഓതന്റിക്കേഷൻ → ഹാൻഡ്ലറിലേക്കുള്ള ഡെലിഗേഷൻ.
  3. പുതിയ അഭ്യർത്ഥനാ ഘടനയാണെങ്കിൽ: src/shared/validation/schemas.ts-ൽ Zod സ്കീമ ചേർക്കുക.
  4. മാനേജ്മെന്റിനായി മാത്രമുള്ളതാണെങ്കിൽ: src/shared/constants/publicApiRoutes.ts-ലേക്ക് പാത ചേർക്കുക (പൊതു API പ്രതലത്തിനുള്ള ഡിനൈലിസ്റ്റ്).
  5. tests/unit/-ന് കീഴിൽ ടെസ്റ്റുകൾ ചേർക്കുക.
  6. docs/reference/API_REFERENCE.md-ഉം docs/openapi.yaml-ഉം പുതുക്കുക.

ഒരു പുതിയ DB മൊഡ്യൂൾ ചേർക്കുക

  1. src/lib/db/yourModule.ts സൃഷ്ടിച്ച് ./core.ts-ൽ നിന്ന് getDbInstance() ഇംപോർട്ട് ചെയ്യുക.
  2. നിങ്ങളുടെ ഡൊമെയ്നിനായുള്ള CRUD ഫംഗ്ഷനുകൾ എക്സ്പോർട്ട് ചെയ്യുക.
  3. പുതിയ പട്ടികകളുണ്ടെങ്കിൽ: src/lib/db/migrations/-ന് കീഴിൽ ക്രമാനുസൃതമായി നമ്പർ നൽകിയ, ഐഡംപൊട്ടന്റും ട്രാൻസാക്ഷണലുമായ ഒരു മൈഗ്രേഷൻ ചേർക്കുക.
  4. ഇംപോർട്ടറുകൾ @/lib/db/yourModule-ൽ നിന്ന് നേരിട്ട് ഇംപോർട്ടുകൾ ഉപയോഗിക്കണം (ബാരൽ പാടില്ല — പഴയ localDb.ts റീ-എക്സ്പോർട്ട് പാളി നീക്കം ചെയ്തിട്ടുണ്ട്).
  5. tests/unit/-ന് കീഴിൽ ടെസ്റ്റുകൾ ചേർക്കുക.

ഒരു പുതിയ MCP ടൂൾ ചേർക്കുക

  1. open-sse/mcp-server/tools/-ന് കീഴിൽ ടൂൾ നിർവചനം ചേർക്കുക (അല്ലെങ്കിൽ open-sse/mcp-server/schemas/tools.ts വിപുലീകരിക്കുക).
  2. src/shared/constants/mcpScopes.ts-ൽ അനുയോജ്യമായ സ്കോപ്പ്(കൾ) നൽകുക.
  3. open-sse/mcp-server/server.ts-ൽ ടൂൾ രജിസ്റ്റർ ചെയ്യുക.
  4. open-sse/mcp-server/__tests__/-ന് കീഴിൽ ടെസ്റ്റുകൾ ചേർക്കുക.
  5. 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; open-sse/-ലും tests/-ലും no-explicit-any = warn, മറ്റിടങ്ങളിൽ error.
  • TypeScript: strict: false (ലെഗസി നിലപാട്). മൊഡ്യൂളുകൾക്കിടയിലെ അതിരുകളിൽ ഇൻഫറൻസിനേക്കാൾ വ്യക്തമായ ടൈപ്പുകൾക്ക് മുൻഗണന നൽകുക.
  • ഡാറ്റാബേസ്: റൂട്ടുകളിലോ ഹാൻഡ്ലറുകളിലോ ഒരിക്കലും റോ SQL എഴുതരുത് — എല്ലായ്പ്പോഴും src/lib/db/ മൊഡ്യൂളുകളിലൂടെ പ്രവർത്തിക്കുക. ഒരിക്കലും ബാരൽ-ഇംപോർട്ട് ചെയ്യരുത് — നിർദ്ദിഷ്ട src/lib/db/* മൊഡ്യൂളുകൾ നേരിട്ട് ഉപയോഗിക്കുക.
  • DB-എന്റിറ്റി ടൈപ്പിംഗ് (#3512): ഒരു DB പട്ടികയുടെ റോ ഘടന എഴുതുകയോ വായിക്കുകയോ ചെയ്യുന്ന ഫംഗ്ഷൻ, കോൾ സൈറ്റിൽ any അല്ലെങ്കിൽ ഇൻലൈൻ അനോനിമസ് ടൈപ്പ് ഉപയോഗിക്കുന്നതിന് പകരം, ആ പട്ടികയുടെ കോളങ്ങളെ 1:1 ആയി പ്രതിഫലിപ്പിക്കുന്ന പേരുള്ള TS ഇന്റർഫേസ് സ്വീകരിക്കുകയോ മടക്കിനൽകുകയോ വേണം. ഇന്റർഫേസ് ഫംഗ്ഷനോടടുത്ത് സ്ഥാപിക്കുക (ഉദാ. 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: pre-commit lint-staged + check:docs-sync + check:any-budget:t11 പ്രവർത്തിപ്പിക്കുന്നു; pre-push check:any-budget:t11 + check:tracked-artifacts പ്രവർത്തിപ്പിക്കുന്നു (വേഗത്തിലുള്ള ഗേറ്റുകൾ; test:unit ഒഴിവാക്കുന്നു).

12. കർശന നിയമങ്ങൾ (CLAUDE.md-ൽ നിന്ന്)

  1. രഹസ്യങ്ങളോ ക്രെഡൻഷ്യലുകളോ ഒരിക്കലും commit ചെയ്യരുത്.
  2. ഒരിക്കലും barrel-import ചെയ്യരുത് — നിർദ്ദിഷ്ട src/lib/db/* മൊഡ്യൂളുകൾ നേരിട്ട് ഉപയോഗിക്കുക.
  3. eval() / new Function() / പരോക്ഷ eval എന്നിവ ഒരിക്കലും ഉപയോഗിക്കരുത്.
  4. main-ലേക്ക് ഒരിക്കലും നേരിട്ട് commit ചെയ്യരുത്.
  5. routes-ൽ ഒരിക്കലും raw SQL എഴുതരുത് — എല്ലായ്പ്പോഴും src/lib/db/ മൊഡ്യൂളുകളിലൂടെ മാത്രം ഉപയോഗിക്കുക.
  6. SSE streams-ൽ പിശകുകൾ ഒരിക്കലും നിശ്ശബ്ദമായി അവഗണിക്കരുത്.
  7. ഇൻപുട്ടുകൾ എല്ലായ്പ്പോഴും Zod schemas ഉപയോഗിച്ച് സാധൂകരിക്കുക.
  8. production code മാറ്റുമ്പോൾ എല്ലായ്പ്പോഴും tests ഉൾപ്പെടുത്തുക.
  9. Coverage ≥ 60% ആയി നിലനിർത്തണം (statements, lines, functions, branches).

13. ഇതും കാണുക