Files
OmniRoute/docs/i18n/ta/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

113 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 · 🇮🇳 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 · 🇮🇳 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 பதிவேடு)
கணினிப் பயன்பாடு Electron 41 + electron-builder 26.10 (electron/-இல் தனி workspace)
சோதனைகள் Node native test runner (unit/integration), Vitest (MCP, autoCombo, cache), Playwright (e2e + protocols-e2e)
கட்டமைப்பு scripts/build/build-next-isolated.mjs வழியான Next.js standalone
Lint/வடிவமைப்பு ESLint flat config + Prettier (Husky pre-commit வழியாக lint-staged)
தொகுதி அமைப்பு எல்லா இடங்களிலும் ESM ("type": "module")
Workspaces npm workspace — open-sse மட்டுமே துணை-workspace

பாதை மாற்றுப்பெயர்கள் (tsconfig.json):

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

இயல்புநிலை HTTP port: 20128 (API மற்றும் dashboard ஆகியவை ஒரே process-ஐப் பகிர்கின்றன). தரவுக் கோப்பகம் DATA_DIR சூழல் மாறியால் குறிப்பிடப்படுகிறது; அதன் இயல்புநிலை ~/.omniroute/.


2. களஞ்சிய அமைப்பு

OmniRoute/
├── src/                  Next.js பயன்பாடு (App Router, நூலகங்கள், domain, server, பகிரப்பட்டவை)
├── open-sse/             Streaming engine workspace (@omniroute/open-sse)
├── electron/             கணினிப் பயன்பாட்டு wrapper (Electron 41 main + preload)
├── bin/                  CLI நுழைவுப் புள்ளிகள் (omniroute, reset-password)
├── tests/                Unit, integration, e2e, protocols-e2e, translator, security, fixtures
├── scripts/              Build, sync, check, migration மற்றும் runtime உதவி scripts
├── docs/                 பொது ஆவணங்கள் (இந்தக் கோப்பகம்)
├── public/               நிலையான assets, PWA manifest, service worker
├── config/               Runtime config மாதிரிகள்
├── images/               சந்தைப்படுத்தல்/திரைப்பிடிப்பு assets
├── _ideia/, _references/, _mono_repo/, _tasks/   உள்புறத் தற்காலிகப் பணிகள் / திட்டமிடல் (வெளியீட்டில் சேர்க்கப்படாது)
├── CLAUDE.md             Claude Code-க்கான repo விதிகள்
├── AGENTS.md             Agents-க்கான விரிவான கட்டமைப்புக் குறிப்பு
├── package.json          v3.8.51, workspace root
└── tsconfig.json         பாதை மாற்றுப்பெயர்கள் + முதன்மை compiler விருப்பங்கள்

3. src/ — Next.js பயன்பாடு

src/
├── app/                  App Router பக்கங்கள் + API வழித்தடங்கள்
├── lib/                  மைய நூலகங்கள் (DB, அங்கீகாரம், OAuth, திறன்கள், நினைவகம், …)
├── domain/               தூய டொமைன் அடுக்கு (கொள்கை, மாற்றுவழி, செலவு, பூட்டுதல், …)
├── server/               சேவையகத்திற்கு மட்டும் உரிய தொகுதிகள் (அங்கீகார அனுமதி, cors, அங்கீகாரம்)
├── shared/               வகைகள், மாறிலிகள், சரிபார்ப்பு, ஒப்பந்தங்கள், பயன்பாட்டுக் கருவிகள் (எல்லைகளைக் கடந்து பயன்படுத்தப் பாதுகாப்பானவை)
├── mitm/                 CLI ஒருங்கிணைப்பிற்கான இடைநிலைப் ப்ராக்ஸி உதவியாளர்கள்
├── models/               உள்ளக மாதிரி மெட்டாடேட்டா / மாற்றுப்பெயரிடல்
├── sse/                  இன்னும் src/ கீழ் உள்ள மரபுவழி SSE கையாளிகள் (open-sse/ அல்ல)
├── store/                கிளையன்ட்-பக்க நிலைச் சேமிப்பகங்கள்
├── middleware/           வழித்தட-நிலை middleware பயன்பாட்டுக் கருவிகள் (Next.js உலகளாவிய middleware அல்ல)
├── scripts/              பயன்பாட்டுக் குறியீட்டால் இறக்குமதி செய்யக்கூடிய உட்பொதிந்த ஸ்கிரிப்ட்கள்
├── types/                சூழமைவு மற்றும் பகிரப்பட்ட TS வகைகள்
├── i18n/                 மொழி-வட்டாரத் தொகுப்புகள்
├── instrumentation.ts    Next.js கருவியாக்க hook
├── 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-ஐ நிறுவுதல், தொடங்குதல், நிறுத்துதல் மற்றும் கண்காணித்தலுக்கான வழித்தடங்கள். npm install-ஐ இயக்கவும் துணைச் செயல்முறைகளை உருவாக்கவும் அவற்றால் முடியும் என்பதால், எல்லாப் பாதைகளும் LOCAL_ONLY (loopback மட்டும், கட்டாய விதி #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/ முகவர்-கட்டுப்பாட்டு-நெறிமுறை: 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 barrel அகற்றப்பட்டது — பயன்படுத்துபவர்கள் குறிப்பிட்ட src/lib/db/* தொகுதிகளை நேரடியாக import செய்கிறார்கள்.
  • 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/

Singleton SQLite தரவுத்தளம் (core.ts-இல் getDbInstance(), WAL journaling). Routes அல்லது handlers-இல் ஒருபோதும் raw SQL எழுத வேண்டாம் — இந்தத் தொகுதிகள் வழியாகச் செல்லவும்.

தரவுத்தள schema மேலோட்டம் (தேர்ந்தெடுக்கப்பட்ட முக்கிய அட்டவணைகள்)

மூலம்: diagrams/db-schema-overview.mmd

Domain தொகுதிகள் (ஒவ்வொன்றும் ஒன்று அல்லது அதற்கு மேற்பட்ட அட்டவணைகளைக் கொண்டிருக்கும்): 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 கோப்புகளைக் (idempotent, transactional) கொண்டுள்ளது; அவை துவக்கத்தின்போது migrationRunner.ts மூலம் இயக்கப்படுகின்றன.

Migrations முழுவதிலும் உருவாக்கப்பட்ட அட்டவணைகள் (மொத்தம் 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 (மேலும் memory தேடலுக்கான FTS5 virtual அட்டவணைகள்).

3.3 src/domain/ — Domain அடுக்கு

I/O இல்லாத தூய business logic. Routes மற்றும் handlers மூலம் import செய்யப்படுகிறது.

கோப்பு நோக்கம்
policyEngine.ts மேல்நிலை policy resolver
fallbackPolicy.ts Fallback முடிவு மரம்
costRules.ts செலவுக் கணக்கீட்டு விதிகள்
lockoutPolicy.ts Model lockout முடிவுகள்
tagRouter.ts Tag அடிப்படையிலான routing
comboResolver.ts Request → target பட்டியலிலிருந்து combo resolution
connectionModelRules.ts ஒவ்வொரு connection-க்குமான model filters
modelAvailability.ts Model கிடைக்கும் நிலைச் சரிபார்ப்பு
degradation.ts Degraded-mode நிலைமாற்றங்கள்
providerExpiration.ts காலாவதியான account/key கண்டறிதல்
quotaCache.ts Cache செய்யப்பட்ட quota முடிவுகள்
responses.ts, omnirouteResponseMeta.ts Response வடிவமைப்பு helpers
configAudit.ts Config மாற்ற audit
assessment/ Model மதிப்பீடு (RFC-இன் படி, பகுதியளவு செயல்படுத்தப்பட்டது)
types.ts பகிரப்பட்ட domain types

3.4 src/server/ — Server-க்கு மட்டும்

Client components-இலிருந்து import செய்ய முடியாது.

server/
├── auth/loginGuard.ts
├── authz/
│   ├── classify.ts        Routes-ஐ public அல்லது management என வகைப்படுத்துகிறது
│   ├── assertAuth.ts      Assertion helper
│   ├── context.ts         ஒவ்வொரு request-க்குமான authz context
│   ├── headers.ts
│   ├── pipeline.ts        Authz pipeline
│   ├── policies/          உறுதியான policies
│   └── types.ts
└── cors/origins.ts        CORS origin allowlist

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/           உருவாக்க வெளியீடு (commit செய்யப்படவில்லை)

பணியிட மூலத்தில் ஐந்து 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 சரிபார்ப்பு → அங்கீகாரம் → handler-க்கு ஒப்படைத்தல்.
  3. புதிய request வடிவம் என்றால்: 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 செயல்பாடுகளை export செய்யவும்.
  3. புதிய tables இருந்தால்: src/lib/db/migrations/-இன் கீழ், வரிசையாக எண்ணிடப்பட்ட, idempotent மற்றும் transactional migration ஒன்றைச் சேர்க்கவும்.
  4. Import செய்பவர்கள் @/lib/db/yourModule-இலிருந்து நேரடி imports-ஐப் பயன்படுத்த வேண்டும் (barrel வேண்டாம் — பழைய localDb.ts re-export அடுக்கு அகற்றப்பட்டது).
  5. tests/unit/-இன் கீழ் சோதனைகளைச் சேர்க்கவும்.

புதிய MCP tool-ஐச் சேர்த்தல்

  1. open-sse/mcp-server/tools/-இன் கீழ் tool வரையறையைச் சேர்க்கவும் (அல்லது 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 பாணி: 2-space indent, double quotes, 100 எழுத்து அகலம், semicolons, es5 trailing commas — lint-staged வழியாக Prettier இதைச் செயல்படுத்துகிறது.
  • Imports: வெளிப்புறம் → உட்புறம் (@/, @omniroute/open-sse) → தொடர்புடையது.
  • பெயரிடல்: கோப்புகள் camelCase அல்லது kebab-case, components PascalCase, constants UPPER_SNAKE.
  • ESLint: no-eval, no-implied-eval, no-new-func = எல்லா இடங்களிலும் error; no-explicit-any = open-sse/ மற்றும் tests/-இல் warn, மற்ற இடங்களில் error.
  • TypeScript: strict: false (மரபுவழி நிலைப்பாடு). Modules இடையிலான எல்லைகளில் inference-ஐவிட வெளிப்படையான types-ஐ முன்னுரிமைப்படுத்தவும்.
  • Database: routes அல்லது handlers-இல் ஒருபோதும் raw SQL எழுத வேண்டாம் — எப்போதும் src/lib/db/ modules வழியாகச் செல்லவும். Barrel-import செய்ய வேண்டாம் — குறிப்பிட்ட src/lib/db/* modules-ஐ நேரடியாகப் பயன்படுத்தவும்.
  • DB-entity typing (#3512): DB table-இன் row வடிவத்தை எழுதும் அல்லது படிக்கும் function, அந்த table-இன் columns-ஐ 1:1 முறையில் பிரதிபலிக்கும் பெயரிடப்பட்ட TS interface-ஐ ஏற்க/திருப்பியளிக்க வேண்டும்; call site-இல் any அல்லது inline anonymous type-ஐப் பயன்படுத்தக் கூடாது. அந்த interface-ஐ function-க்கு அருகில் அமைக்கவும் (எ.கா. src/lib/usage/usageHistory.ts-இல் saveRequestUsage-க்கு மேலே export interface UsageEntry); வெவ்வேறு writers row-ஐ படிப்படியாக நிரப்பும்போது தனிப்பட்ட fields-ஐ optional/nullable ஆக வைத்திருக்கவும்; callers-க்கு இடையே வடிவம் மாறுபடும் field-க்கு any-ஐவிட unknown-ஐ முன்னுரிமைப்படுத்தவும் (field-இல் இதை ஆவணப்படுத்தவும்; எ.கா. UsageEntry.tokens, raw provider வடிவிலான usage மற்றும் normalized வடிவம் இரண்டையும் ஏற்கிறது). இவ்வாறு ஒரு கோப்பின் any எண்ணிக்கை பூஜ்ஜியத்தை அடைந்ததும், பின்னடைவு ஏற்படாதபடி அதை check:any-budget:t11 allowlist-இல் (scripts/check/check-t11-any-budget.mjs, maxAny: 0) சேர்க்கவும். இது first-slice மரபாகும் — பரந்த "anonymous any வேண்டாம்" தூய்மைப்படுத்தல், மீதமுள்ள codebase முழுவதும் படிப்படியாக மேற்கொள்ளப்படுகிறது.
  • பிழைகள்: குறிப்பிட்ட error types உடன் try/catch-ஐப் பயன்படுத்தி, pino context உடன் பதிவு செய்யவும். SSE streams-இல் பிழைகளை ஒருபோதும் அமைதியாகப் புறக்கணிக்க வேண்டாம்; cleanup-க்கு abort signals-ஐப் பயன்படுத்தவும்.
  • பாதுகாப்பு: eval() / new Function() / implied eval-ஐ ஒருபோதும் பயன்படுத்த வேண்டாம். அனைத்து inputs-ஐயும் Zod மூலம் சரிபார்க்கவும். சேமிக்கப்பட்ட credentials-ஐ encrypt செய்யவும் (AES-256-GCM). src/shared/constants/upstreamHeaders.ts denylist-ஐ sanitize/validation அடுக்குடன் ஒத்திசைவாக வைத்திருக்கவும்.
  • 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. ரகசியங்கள் அல்லது நற்சான்றுகளை ஒருபோதும் commit செய்ய வேண்டாம்.
  2. barrel-import-ஐ ஒருபோதும் பயன்படுத்த வேண்டாம் — குறிப்பிட்ட src/lib/db/* தொகுதிகளை நேரடியாகப் பயன்படுத்தவும்.
  3. eval() / new Function() / மறைமுக eval-ஐ ஒருபோதும் பயன்படுத்த வேண்டாம்.
  4. main-க்கு ஒருபோதும் நேரடியாக commit செய்ய வேண்டாம்.
  5. routes-இல் நேரடி SQL-ஐ ஒருபோதும் எழுத வேண்டாம் — எப்போதும் src/lib/db/ தொகுதிகள் வழியாகச் செல்லவும்.
  6. SSE streams-இல் பிழைகளை எந்த அறிவிப்புமின்றி ஒருபோதும் புறக்கணிக்க வேண்டாம்.
  7. உள்ளீடுகளை எப்போதும் Zod schemas மூலம் சரிபார்க்கவும்.
  8. production code-ஐ மாற்றும்போது எப்போதும் சோதனைகளைச் சேர்க்கவும்.
  9. coverage ≥ 60% ஆகத் தொடர்ந்து இருக்க வேண்டும் (statements, lines, functions, branches).

13. மேலும் காண்க

  • ARCHITECTURE.md — உயர்நிலை கட்டமைப்பு மற்றும் தொகுதிகளின் பொறுப்புகள்.
  • API_REFERENCE.md — பொது + நிர்வாக API குறிப்பு.
  • FEATURES.md — அம்சங்களின் அணி மற்றும் பதிப்பு சிறப்பம்சங்கள்.
  • RESILIENCE_GUIDE.md — circuit breaker, cooldown, lockout பற்றிய ஆழமான விளக்கம்.
  • 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 — முகவர்கள் பயன்படுத்தும் ஆழமான கட்டமைப்புக் குறிப்பு.