Batch 2 of the locale expansion across the dashboard catalog, docs mirrors, CLI catalog, README, locale index and the site. 51 → 59 locales. Also: the translator restores the ICU literal escape around angle placeholders, and the docs chunker splits oversized sections before translating. ⚠️ base-red inherited: #12732 — the eight red checks fail identically on unrelated PRs cut from the same base (e.g. #13197); every gate is green locally after merging the base.
84 KiB
CODEBASE_DOCUMENTATION (Lietuvių)
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇮🇩 id · 🇮🇹 it · 🇯🇵 ja · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇻 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 · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
title: "OmniRoute programinio kodo bazės dokumentacija" version: 3.8.40 lastUpdated: 2026-06-28
OmniRoute programinio kodo bazės dokumentacija
Versija: v3.8.51 Paskutinį kartą atnaujinta: 2026-06-28 Auditorija: inžinieriai, prisidedantys prie OmniRoute arba kuriantys juo pagrįstas integracijas.
Aukšto lygio architektūros diagramas ir kiekvieno posistemio pagrindimą rasite ARCHITECTURE.md. Išsamią informaciją apie atskirus posistemius (Auto Combo, MCP serverį, A2A serverį, Skills, Memory, Cloud Agents, Resilience, Compression ir kt.) rasite jiems skirtuose šio
docs/katalogo failuose.
Šiame faile aprašoma, kas šiuo metu yra saugykloje, kad naujas inžinierius galėtų orientuotis jos medyje, suprasti vykdymo aplinkos sluoksnius ir žinoti, kur pridėti kodą nekuriant naujų modulių.
1. Technologijų rinkinys
| Sritis | Pasirinkimas |
|---|---|
| Žiniatinklio sistema | Next.js 16 (App Router, autonominė išvestis, nėra visuotinės tarpinės programinės įrangos) |
| Kalba | TypeScript 6.0+ — tikslas ES2022, module: esnext, moduleResolution: bundler, strict: false |
| Vykdymo aplinka | Node.js >=22.22.2 <23 arba >=24.0.0 <27 (užtikrinama naudojant engines + SUPPORTED_NODE_RANGE) |
| Duomenų bazė | SQLite per better-sqlite3 (vienintelis egzempliorius, WAL žurnalizavimas) |
| Darbalaukis | Electron 41 + electron-builder 26.10 (atskira darbo sritis kataloge electron/) |
| Testai | Node integruota testų vykdymo priemonė (vienetų / integraciniai), Vitest (MCP, autoCombo, podėlis), Playwright (e2e + protocols-e2e) |
| Kūrimas | Autonominis Next.js kūrimas per scripts/build/build-next-isolated.mjs |
| Kodo tikrinimas / formatavimas | ESLint plokščioji konfigūracija + Prettier (lint-staged per Husky prieš įrašant pakeitimą) |
| Modulių sistema | Visur naudojama ESM ("type": "module") |
| Darbo sritys | npm darbo sritis — open-sse yra vienintelė papildoma darbo sritis |
Kelių alternatyvieji vardai (tsconfig.json):
@/*→src/*@omniroute/open-sse→open-sse/index.ts@omniroute/open-sse/*→open-sse/*
Numatytasis HTTP prievadas: 20128 (API ir valdymo skydelis naudoja tą patį procesą). Duomenų
katalogas nurodomas aplinkos kintamuoju DATA_DIR; numatytoji reikšmė yra ~/.omniroute/.
2. Saugyklos struktūra
OmniRoute/
├── src/ Next.js programa (App Router, bibliotekos, domenas, serveris, bendrasis kodas)
├── open-sse/ Srautinio perdavimo variklio darbo sritis (@omniroute/open-sse)
├── electron/ Darbalaukio apvalkalas (Electron 41 pagrindinis procesas + išankstinis įkėlimas)
├── bin/ CLI įvesties taškai (omniroute, reset-password)
├── tests/ Vienetų, integraciniai, e2e, protocols-e2e, vertimo, saugumo testai ir fikstūros
├── scripts/ Kūrimo, sinchronizavimo, tikrinimo, migravimo ir vykdymo aplinkos pagalbiniai scenarijai
├── docs/ Vieša dokumentacija (šis katalogas)
├── public/ Statiniai ištekliai, PWA manifestas, tarnybinė programa
├── config/ Vykdymo aplinkos konfigūracijos pavyzdžiai
├── images/ Rinkodaros / ekrano kopijų ištekliai
├── _ideia/, _references/, _mono_repo/, _tasks/ Vidiniai juodraščiai / planavimas (neplatinama)
├── CLAUDE.md Saugyklos taisyklės, skirtos Claude Code
├── AGENTS.md Išsamesnis architektūros žinynas agentams
├── package.json v3.8.51, darbo srities šaknis
└── tsconfig.json Kelių alternatyvieji vardai + pagrindinės kompiliatoriaus parinktys
3. src/ — Next.js programa
src/
├── app/ App Router puslapiai + API maršrutai
├── lib/ Pagrindinės bibliotekos (DB, autentifikavimas, OAuth, įgūdžiai, atmintis, …)
├── domain/ Grynas domeno sluoksnis (politika, atsarginiai variantai, sąnaudos, blokavimas, …)
├── server/ Tik serveriui skirti moduliai (authz, cors, autentifikavimas)
├── shared/ Tipai, konstantos, tikrinimas, sutartys, pagalbinės priemonės (saugios naudoti tarp ribų)
├── mitm/ Tarpinio tarpinio serverio pagalbinės priemonės CLI integracijai
├── models/ Vietinių modelių metaduomenys / alternatyvūs pavadinimai
├── sse/ Senesnės SSE doroklės, vis dar esančios po src/ (ne open-sse/)
├── store/ Kliento būsenos saugyklos
├── middleware/ Maršruto lygmens tarpinės programinės įrangos priemonės (ne visuotinė Next.js tarpinė programinė įranga)
├── scripts/ Medyje esantys scenarijai, kuriuos gali importuoti programos kodas
├── types/ Aplinkos ir bendrinami TS tipai
├── i18n/ Lokalės paketai
├── instrumentation.ts Next.js instrumentavimo kablis
├── instrumentation-node.ts
└── proxy.ts Aukščiausio lygmens tarpinio serverio paleidimo pagalbinė priemonė
3.1 src/app/ — App Router
App Router pateikia ir valdymo skydelio UI, ir viešąją / valdymo HTTP API. Visuotinės tarpinės programinės įrangos nėra — perėmimas atliekamas kiekvienam maršrutui atskirai.
Aukščiausio lygmens segmentai po src/app/:
| Kelias | Paskirtis |
|---|---|
api/ |
Visi HTTP API maršrutai (žr. skaidymą toliau) |
a2a/ |
A2A JSON-RPC 2.0 galinis taškas (POST /a2a) |
.well-known/agent.json/ |
A2A agento kortelės aptikimo dokumentas |
(dashboard)/ |
Valdymo skydelio UI (maršrutų grupė, be URL prefikso) |
auth/, login/, forgot-password/, callback/ |
Autentifikavimo srautai |
landing/ |
Rinkodaros / pradžios puslapis |
docs/ |
Įterptoji API dokumentacijos peržiūros priemonė |
status/, maintenance/, offline/ |
Eksploataciniai puslapiai |
privacy/, terms/ |
Teisinės informacijos puslapiai |
400/, 401/, 403/, 408/, 429/, 500/, 502/, 503/ |
Statiniai klaidų puslapiai |
error.tsx, global-error.tsx, not-found.tsx, forbidden/, loading.tsx |
Sistemos klaidų / įkėlimo ribos |
layout.tsx, page.tsx, globals.css, manifest.ts |
Šakninė struktūra |
3.1.1 src/app/(dashboard)/dashboard/ — UI puslapiai
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, taip pat šakniniai page.tsx, HomePageClient.tsx,
BootstrapBanner.tsx.
3.1.2 src/app/api/ — Aukščiausio lygmens API grupės
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/ Įterptųjų paslaugų valdymas (9router, cliproxy) — LOCAL_ONLY
├── upstream-proxy/
├── usage/
├── v1/ Su OpenAI suderinama viešoji API
├── v1beta/ Gemini stiliaus suderinamumas
├── version-manager/
└── webhooks/
3.1.2a src/app/api/services/ — Įterptųjų paslaugų valdymas
Maršrutai, skirti 9Router ir CLIProxyAPI įdiegti, paleisti, sustabdyti ir stebėti.
Visi keliai klasifikuojami kaip LOCAL_ONLY (tik grįžtamojo ryšio sąsaja, griežta taisyklė Nr. 17), nes jie
gali iškviesti npm install ir paleisti antrinius procesus.
src/app/api/services/
├── 9router/
│ ├── _lib.ts getOrInitSupervisor() pagalbinė priemonė
│ ├── install/route.ts POST — npm install per execFile
│ ├── start/route.ts POST — supervisor.start()
│ ├── stop/route.ts POST — supervisor.stop()
│ ├── restart/route.ts POST — supervisor.restart()
│ ├── update/route.ts POST — npm install naujesnė versija
│ ├── rotate-key/route.ts POST — generuoti naują API raktą + paleisti iš naujo
│ ├── status/route.ts GET — tiesioginė + DB būsena + versijos metaduomenys
│ └── auto-start/route.ts POST — perjungti auto_start vėliavėlę
├── cliproxy/
│ ├── _lib.ts getOrInitSupervisor() pagalbinė priemonė
│ ├── 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 naujesnė versija
│ ├── status/route.ts GET — tiesioginė + DB būsena + versijos metaduomenys
│ └── auto-start/route.ts POST — perjungti auto_start vėliavėlę
└── [name]/
└── logs/route.ts GET — SSE žurnalo pabaiga (bendrinama visų paslaugų)
Atitinkamas valdymo skydelio UI:
src/app/(dashboard)/dashboard/providers/services/ — dviejų skirtukų puslapis (CLIProxyAPI + 9Router).
Atvirkštinis tarpinis serveris, skirtas 9Router įterptajam UI:
src/app/(dashboard)/dashboard/providers/services/[name]/embed/[[...path]]/route.ts
Išsamiau: docs/frameworks/EMBEDDED-SERVICES.md
3.1.3 src/app/api/v1/ — Su OpenAI suderinama viešoji API
v1/
├── accounts/[id]/ paskyros paieška
├── agents/tasks/[id]/, agents/tasks/ A2A stiliaus užduočių galiniai taškai
├── api/ vidinės API pagalbinės priemonės, pateikiamos po v1/api
├── audio/{speech, transcriptions}/ TTS + STT
├── batches/[id]/{cancel}, batches/ OpenAI Batches API
├── chat/completions/ Chat Completions (pagrindinis galinis taškas)
├── completions/ Senesnis teksto užbaigimas
├── embeddings/ Vektoriniai įterpiniai
├── files/[id]/, files/ Files API
├── _helpers/ Bendrinamos maršrutų pagalbinės priemonės (be viešojo URL)
├── images/{edits, generations}/ Vaizdų generavimas + redagavimas
├── issues/ Pirminio įvertinimo pagalbiniai galiniai taškai
├── management/{proxies}/ Valdymo apimties maršrutai v1 viduje
├── messages/{count_tokens}/ Anthropic stiliaus pranešimų suderinamumas
├── models/ Modelių sąrašas (`route.ts`, `catalog.ts`)
├── moderations/ Moderavimas
├── music/ Muzikos generavimas
├── providers/[provider]/ Kiekvieno teikėjo operacijos
├── quotas/{check} Kvotų patikros
├── registered-keys/ Registruotų raktų administravimas
├── rerank/ Pakartotinis reitingavimas
├── responses/[...path]/ OpenAI Responses API (viską apimantis maršrutas)
├── search/ Žiniatinklio paieška
├── videos/ Vaizdo įrašų generavimas
├── ws/ WebSocket tiltas
└── route.ts Indekso doroklė
Kiekvienas maršruto failas laikosi to paties šablono:
Maršrutas → CORS išankstinė užklausa → Zod turinio tikrinimas → pasirinktinis autentifikavimas
→ API rakto politikos taikymas → perdavimas doroklei (open-sse)
v1beta/ yra Gemini stiliaus suderinamumo paviršius (plonas apvalkalas, kuris transformuoja į
tą patį open-sse/handlers/ konvejerį).
3.2 src/lib/ — Pagrindinės bibliotekos
Duomenis, sinchronizavimą, OAuth, įgūdžius, atmintį ir kt. visada importuokite per šiuos modulius. Lentelėje sugrupuoti tikrieji katalogai ir svarbūs aukščiausio lygmens failai.
| Modulis | Paskirtis |
|---|---|
a2a/ |
A2A protokolo serveris: taskManager.ts, streaming.ts, taskExecution.ts, routingLogger.ts, skills/ (6 įgūdžiai: sąnaudų analizė, būklės ataskaita, teikėjų aptikimas, kvotų valdymas, išmanusis maršruto parinkimas, galimybių sąrašo pateikimas) |
acp/ |
Agento valdymo protokolas: index.ts, manager.ts, registry.ts |
api/ |
Vidinės API pagalbinės priemonės: requireManagementAuth.ts, requireCliToolsAuth.ts, errorResponse.ts |
auth/ |
managementPassword.ts (slaptažodžio nustatymas iš naujo / maišos skaičiavimas) |
batches/ |
OpenAI Batches API paslauga (service.ts) |
catalog/ |
OpenRouter katalogo sinchronizavimas (openrouterCatalog.ts) |
cloudAgent/ |
Debesijos agentų registras: api.ts, baseAgent.ts, db.ts, index.ts, registry.ts, types.ts, agents/{codex, devin, jules}.ts |
combos/ |
Derinių nustatymo pagalbinės priemonės |
compliance/ |
Auditas + teikėjų auditas: index.ts, providerAudit.ts |
config/ |
Vykdymo aplinkos konfigūracijos susiejimas |
db/ |
SQLite domeno moduliai (žr. §3.2.1) |
display/ |
API atsakymuose naudojamos UI / rodymo pagalbinės priemonės |
embeddings/ |
Vektorinių įterpinių paslaugų registras |
env/ |
Aplinkos įkėlimas + analizė |
evals/ |
Vertinimų vykdymo aplinka |
guardrails/ |
piiMasker.ts, promptInjection.ts, visionBridge.ts, visionBridgeHelpers.ts, registry.ts, base.ts |
jobs/ |
Foninės užduotys (autoUpdate.ts, …) |
memory/ |
Nuolatinė atmintis: 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 / importavimo teikėjų moduliai (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, taip pat services/, utils/ ir constants/oauth.ts |
plugins/ |
Papildinių įkėlimo priemonė (index.ts) |
promptCache/ |
prefixAnalyzer.ts, index.ts |
providerModels/ |
Valdomas modelių gyvavimo ciklas: modelDiscovery.ts, managedModelImport.ts, managedAvailableModels.ts, cursorAgent.ts |
providers/ |
Teikėjų pagalbinės priemonės: catalog.ts, validation.ts, imageValidation.ts, claudeExtraUsage.ts, codexConnectionDefaults.ts, codexFastTier.ts, webCookieAuth.ts, managedAvailableModels.ts, requestDefaults.ts |
resilience/ |
settings.ts — grandinės pertraukiklio, atvėsimo ir blokavimo nuostatos |
runtime/ |
Vykdymo aplinkos funkcijų aptikimas |
search/ |
executeWebSearch.ts |
services/ |
Įterptųjų paslaugų sistema: ServiceSupervisor.ts (bendroji antrinių procesų priežiūros priemonė su operacijų užraktu, žiediniu buferiu ir būklės tikrintuvu), bootstrap.ts (proceso lygmens registravimas ir automatinis paleidimas), registry.ts (įrankio → priežiūros priemonės žemėlapis), apiKey.ts (AES-256-GCM raktų saugykla), modelSync.ts (periodinis modelių sinchronizavimas), ringBuffer.ts (5 MB žiedinis žurnalo buferis), healthCheck.ts (HTTP būklės patikra), types.ts, embedWsProxy.ts (WebSocket tarpinis serveris), installers/{ninerouter,cliproxy}.ts. Žr. docs/frameworks/EMBEDDED-SERVICES.md |
agentSkills/ |
Agentų įgūdžių katalogas + generatorius: catalog.ts (getCatalog/getSkillById/filterCatalog/computeCoverage), generator.ts (generateAgentSkills → įrašo skills/{id}/SKILL.md), openapiParser.ts (ištraukia REST galinius taškus iš OpenAPI specifikacijos), cliRegistryParser.ts (ištraukia CLI antrines komandas iš bin/cli-registry), schemas.ts (Zod: AgentSkillSchema, SkillCoverageSchema, ListQuerySchema, GenerateBodySchema), types.ts (AgentSkill, SkillCoverage, SkillMarkdown, GeneratorReport). Naudojamas REST maršrutų (/api/agent-skills/*), MCP įrankių (omniroute_agent_skills_*) ir A2A įgūdžio list-capabilities. Žr. AGENT-SKILLS.md. |
skills/ |
Įgūdžių sistema: 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, taip pat builtin/browser.ts |
spend/ |
batchWriter.ts (atidėto įrašymo buferis) |
sync/ |
bundle.ts, tokens.ts (debesijos sinchronizavimas) |
system/ |
Sistemos lygmens pagalbinės priemonės |
translator/ |
Aukščiausio lygmens vertimo susiejimas (perduoda į open-sse/translator/) |
usage/ |
Naudojimo apskaita: costCalculator.ts, tokenAccounting.ts, usageHistory.ts, aggregateHistory.ts, usageStats.ts, callLogs.ts, callLogArtifacts.ts, fetcher.ts, providerLimits.ts, migrations.ts |
versionManager/ |
Automatinis naujinimas + versijų manifestas |
ws/ |
WebSocket tiltas |
zed-oauth/ |
Zed redaktoriaus OAuth srautas |
Aukščiausio lygmens failai src/lib/:
- Senasis
localDb.tssuvestinis modulis pašalintas — naudotojai konkrečiussrc/lib/db/*modulius importuoja tiesiogiai. proxyHealth.ts,proxyLogger.ts,tokenHealthCheck.ts,localHealthCheck.tsapiBridgeServer.ts,cacheLayer.ts,semanticCache.ts,settingsCache.tscloudSync.ts,initCloudSync.tscloudflaredTunnel.ts,ngrokTunnel.ts,tailscaleTunnel.tsconsoleInterceptor.ts,container.ts,gracefulShutdown.ts,idempotencyLayer.tsipUtils.ts,logEnv.ts,logPayloads.ts,logRotation.tsmodelAliasSeed.ts,modelCapabilities.ts,modelMetadataRegistry.ts,modelsDevSync.tspiiSanitizer.ts,pricingSync.tsapiKeyExposure.ts,cacheControlSettings.ts,dataPaths.ts,toolPolicy.tstranslatorEvents.ts,usageDb.ts,usageAnalytics.ts,webhookDispatcher.ts
3.2.1 src/lib/db/
Vienetinis SQLite duomenų bazės egzempliorius (getDbInstance() faile core.ts, WAL žurnalų vedimas).
Niekada nerašykite neapdoroto SQL maršrutuose ar doroklėse — naudokite šiuos modulius.
Šaltinis: diagrams/db-schema-overview.mmd
Domeno moduliai (kiekvienam priklauso viena ar daugiau lentelių): 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/ kataloge yra 168 versijuoti .sql failai (idempotentiški, transakciniai), kuriuos
paleidimo metu vykdo migrationRunner.ts.
Visose migracijose sukurtos lentelės (iš viso 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 (taip pat FTS5 virtualiosios lentelės atminties paieškai).
3.3 src/domain/ — Domeno sluoksnis
Gryna verslo logika, be įvesties / išvesties. Importuojama maršrutų ir doroklių.
| Failas | Paskirtis |
|---|---|
policyEngine.ts |
Aukščiausio lygmens politikos sprendiklis |
fallbackPolicy.ts |
Atsarginio varianto sprendimų medis |
costRules.ts |
Sąnaudų skaičiavimo taisyklės |
lockoutPolicy.ts |
Modelio blokavimo sprendimai |
tagRouter.ts |
Žymomis pagrįstas maršruto parinkimas |
comboResolver.ts |
Derinio nustatymas iš užklausos → paskirties sąrašas |
connectionModelRules.ts |
Kiekvieno ryšio modelių filtrai |
modelAvailability.ts |
Modelio prieinamumo patikra |
degradation.ts |
Perėjimai į riboto veikimo režimą |
providerExpiration.ts |
Nebegaliojančios paskyros / rakto aptikimas |
quotaCache.ts |
Podėliuoti kvotų sprendimai |
responses.ts, omnirouteResponseMeta.ts |
Atsakymo formos pagalbinės priemonės |
configAudit.ts |
Konfigūracijos pakeitimų auditas |
assessment/ |
Modelio vertinimas (pagal RFC, įgyvendintas iš dalies) |
types.ts |
Bendrinami domeno tipai |
3.4 src/server/ — Tik serveriui
Negali būti importuojama iš kliento komponentų.
server/
├── auth/loginGuard.ts
├── authz/
│ ├── classify.ts Klasifikuoja maršrutus kaip viešuosius arba valdymo
│ ├── assertAuth.ts Teiginio pagalbinė priemonė
│ ├── context.ts Kiekvienos užklausos authz kontekstas
│ ├── headers.ts
│ ├── pipeline.ts Authz konvejeris
│ ├── policies/ Konkrečios politikos
│ └── types.ts
└── cors/origins.ts Leidžiamų CORS šaltinių sąrašas
3.5 src/shared/ — Saugu bendrinti
Padalyta į konkrečios paskirties pakatalogius:
constants/—providers.ts(Zod patikrintas teikėjų katalogas),models.ts,modelSpecs.ts,modelCompat.ts,pricing.ts,cliTools.ts,cliCompatProviders.ts,routingStrategies.ts,comboConfigMode.ts,headers.ts,upstreamHeaders.ts(draudžiamų elementų sąrašas),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 schemų),compressionConfigSchemas.ts,providerSchema.ts,settingsSchemas.ts,helpers.ts.contracts/— viešosios API sutartys, platinamos per npm.types/— bendrinami TS tipai.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, taip pat valdymo skydelio kabliai / komponentai poservices/,network/,middleware/,schemas/,hooks/,components/.
4. open-sse/ — Srautinio perdavimo variklio darbo sritis
Atskira npm darbo sritis, publikuojama kaip @omniroute/open-sse. Ji apima užklausų
apdorojimą, vykdykles, vertimo komponentus, paslaugas, transformavimo komponentą ir MCP serverį.
open-sse/
├── index.ts Viešai eksportuojami elementai
├── package.json Darbo srities manifestas
├── tsconfig.json
├── types.d.ts
├── config/ Teikėjų registrai, antraščių profiliai, tapatybė, …
├── handlers/ Užklausų apdorojimo komponentai (pokalbiai, įterpiniai, garsas, vaizdai, …)
├── executors/ 108 konkretiems teikėjams skirtos HTTP vykdyklės
├── translator/ Formatų konvertavimas (OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro)
├── transformer/ Responses API ↔ Chat Completions srauto transformavimo komponentas
├── services/ Daugiau nei 80 paslaugų modulių (deriniai, atsarginiai variantai, kvotos, tapatybė, …)
├── utils/ Srautinio perdavimo pagalbinės priemonės, TLS klientas, AWS SigV4, tarpinio serverio užklausos, …
└── mcp-server/ MCP serveris (3 transportai, 33 aprėptys, 110 įrankių)
4.1 open-sse/handlers/
| Apdorojimo komponentas | Paskirtis |
|---|---|
chatCore.ts |
Pagrindinis pokalbių konvejeris (podėlis, spartos ribojimas, derinių maršruto parinkimas, vykdyklių iškvietimas) |
responsesHandler.ts |
OpenAI Responses API įvesties taškas |
embeddings.ts |
Įterpiniai |
imageGeneration.ts |
Vaizdų generavimas |
audioSpeech.ts |
Teksto vertimas į kalbą |
audioTranscription.ts |
Kalbos vertimas į tekstą |
videoGeneration.ts |
Vaizdo įrašų generavimas |
musicGeneration.ts |
Muzikos generavimas |
rerank.ts |
Pakartotinis reitingavimas |
moderations.ts |
Moderavimas |
search.ts |
Paieška žiniatinklyje |
sseParser.ts |
SSE įvykių analizatorius |
usageExtractor.ts |
Žetonų kiekių išgavimas iš aukštesniojo lygio srautų |
responseSanitizer.ts |
Teikėjui būdingo triukšmo pašalinimas |
responseTranslator.ts |
Jungiamasis sluoksnis tarp teikėjo atsako ir vertimo sluoksnio |
4.2 open-sse/executors/
108 teikėjų vykdyklės, kurių kiekviena išplečia 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, taip pat claudeIdentity.ts
(bendrinamas tapatybės pagalbinis komponentas) ir index.ts (registras).
Pastaba: čia nenurodytus teikėjus aptarnauja
default.ts, naudodamas bendrąją su OpenAI suderinamą vykdyklę. Visas teikėjų katalogas (355 teikėjai) yrasrc/shared/constants/providers.ts.
4.3 open-sse/translator/
Centrinio mazgo ir stipinų principu veikiantis vertimas (OpenAI yra centrinis mazgas).
- 9 užklausų vertimo komponentai (
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 atsakymų vertimo komponentai (
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 pagalbiniai komponentai (
translator/helpers/):claudeHelper,geminiHelper,geminiToolsSanitizer,maxTokensHelper,openaiHelper,responsesApiHelper,schemaCoercion,toolCallHelper, taip pat pagalbinių komponentų testai. - Vaizdų pagalbiniai komponentai (
translator/image/sizeMapper.ts). - Aukščiausiasis lygis:
bootstrap.ts,formats.ts,registry.ts,index.ts.
4.4 open-sse/transformer/
responsesTransformer.ts—TransformStreampagrįstas Responses API ↔ Chat Completions konverteris (naudojamas kaip universalusisresponses/maršruto apdorojimo komponentas).
4.5 open-sse/services/
Svarbiausi komponentai (visas sąrašas pateiktas open-sse/services/):
| Sritis | Failai |
|---|---|
| Derinių maršruto parinkimas | combo.ts (19 strategijų), comboConfig.ts, comboMetrics.ts, comboManifestMetrics.ts, comboAgentMiddleware.ts |
| Auto Combo variklis | 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 |
| Atsparumas | accountFallback.ts (atvėsimo laikotarpis ir blokavimas), errorClassifier.ts, emergencyFallback.ts, rateLimitManager.ts, rateLimitSemaphore.ts, accountSemaphore.ts, accountSelector.ts |
| Kvotos | quotaMonitor.ts, quotaPreflight.ts, bailianQuotaFetcher.ts, codexQuotaFetcher.ts, deepseekQuotaFetcher.ts, openrouterQuotaFetcher.ts, openrouterFreeWindow.ts, crofUsageFetcher.ts, antigravityCredits.ts |
| Kaupimas podėlyje | reasoningCache.ts, searchCache.ts, signatureCache.ts, requestDedup.ts |
| Išmanusis maršruto parinkimas | intentClassifier.ts, taskAwareRouter.ts, backgroundTaskDetector.ts, volumeDetector.ts, wildcardRouter.ts, workflowFSM.ts, specificityDetector.ts, specificityRules.ts, specificityTypes.ts |
| Modelių apdorojimas | modelCapabilities.ts, modelDeprecation.ts, modelFamilyFallback.ts, modelStrip.ts, model.ts, provider.ts, providerRequestDefaults.ts, providerCostData.ts, payloadRules.ts |
| Glaudinimas | compression/ — visa glaudinimo variklio integracija |
| Žetonai ir seansai | tokenRefresh.ts, sessionManager.ts, apiKeyRotator.ts, contextManager.ts, contextHandoff.ts, systemPrompt.ts, roleNormalizer.ts, responsesInputSanitizer.ts, toolSchemaSanitizer.ts, toolLimitDetector.ts, thinkingBudget.ts |
| Lygis / manifestas | tierResolver.ts, tierConfig.ts, tierDefaults.json, tierTypes.ts, manifestAdapter.ts |
| IP / tinklas | ipFilter.ts, webSearchFallback.ts |
| Paketai | batchProcessor.ts |
| Naudojimas | usage.ts |
4.6 open-sse/mcp-server/
- 110 unikalių įrankių, susietų faile
server.ts(45 kanoniniai įrankiai faileschemas/tools.ts+ atminties, įgūdžių, GitHub-skills, telkinio, žaidybinimo, papildinių, Notion, Obsidian, vietinio tekstyno ir glaudinimo moduliai — sąjunga apskaičiuojama naudojantcountUniqueMcpTools). - 3 transportai: stdio, srautinis HTTP, SSE.
- 33 aprėptys, užtikrinamos vykdymo metu — bazinis sąrašas yra faile
src/shared/constants/mcpScopes.ts, o visas rinkinys yra kiekvieno įrankių modulio deklaruotų aprėpčių sąjunga. - Audito lentelė:
mcp_tool_audit(užpildoma naudojantaudit.ts). - Failai:
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, taip pat testai kataloge__tests__/. - Visą įrankių katalogą žr. MCP-SERVER.md.
4.7 open-sse/config/
Teikėjų registrai (providerRegistry.ts, providerModels.ts,
providerHeaderProfiles.ts), kiekvienam formatui skirti modelių registrai (audioRegistry.ts,
embeddingRegistry.ts, imageRegistry.ts, moderationRegistry.ts,
musicRegistry.ts, rerankRegistry.ts, searchRegistry.ts, videoRegistry.ts),
tapatybės pagalbiniai komponentai (codexIdentity.ts, codexInstructions.ts,
anthropicHeaders.ts, antigravityUpstream.ts, antigravityModelAliases.ts,
cliFingerprints.ts, toolCloaking.ts, defaultThinkingSignature.ts),
prisijungimo duomenų pagalbiniai komponentai (credentialLoader.ts, codexClient.ts) ir debesijos
adapteriai (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/
Srautinio perdavimo primityvai ir teikėjų pagalbiniai komponentai: 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/ — Darbalaukio programos apvalkalas
electron/
├── main.js Pagrindinis Electron procesas
├── preload.js Išankstinio įkėlimo sąsaja (contextIsolation įjungta)
├── types.d.ts
├── package.json electron-builder konfigūracija, versija 3.8.51
├── README.md
├── assets/ Komponavimo ištekliai (piktogramos, teisės, …)
├── node_modules/ Atskiras node_modules (better-sqlite3, electron-updater)
└── dist-electron/ Komponavimo išvestis (neįtraukiama į repozitoriją)
Darbo srities šaknyje yra penki npm scenarijai: electron:dev, electron:build,
electron:build:{win,mac,linux}, electron:smoke:packaged. Automatinis naujinimas vykdomas per
electron-updater, nukreiptą į GitHub leidimų kanalą.
6. bin/ — CLI
bin/
├── omniroute.mjs Pagrindinis CLI įvesties taškas (Node ESM)
├── reset-password.mjs Valdymo slaptažodžio nustatymas iš naujo per CLI
├── mcp-server.mjs MCP serverio paleidiklis (stdio)
├── nodeRuntimeSupport.mjs Node versijos patikra
└── cli/
├── program.mjs Commander programos kūrimo priemonė
├── runtime.mjs withRuntime pagalbinė priemonė (pirmiausia serveris / atsarginis DB variantas)
├── output.mjs Išvesties formatuokliai (json/jsonl/table/csv)
├── i18n.mjs t() pagalbinė priemonė su lokalėmis
├── api.mjs API užklausų pagalbinė priemonė
├── data-dir.mjs
├── encryption.mjs
├── sqlite.mjs
└── commands/
├── registry.mjs Komandų registravimas
├── setup.mjs
├── doctor.mjs
├── providers.mjs
└── ... (po vieną failą kiekvienai komandai / grupei)
package.json → bin pateikiami du vykdomieji failai:
omniroute→bin/omniroute.mjsomniroute-reset-password→bin/reset-password.mjs
7. tests/
| Katalogas | Tipas |
|---|---|
tests/unit/ |
Vienetų testai, vykdomi naudojant integruotą Node testų vykdyklę (1821 failas ir api/, auth/, authz/ pakatalogiai) |
tests/integration/ |
Kelių modulių ir DB būsenos testai |
tests/e2e/ |
Playwright naudotojo sąsajos testai |
tests/e2e/protocol-clients.test.ts |
MCP/A2A protokolų e2e testai |
tests/translator/ |
Vertėjui skirti testai |
tests/security/ |
Saugumo regresijos |
tests/load/ |
Apkrovos / streso testai |
tests/golden-set/ |
Etaloninės vertėjo regresijų išvestys |
tests/helpers/, tests/fixtures/, tests/manual/ |
Pagalbiniai failai |
Dažniausiai naudojamos komandos:
| Komanda | Ką ji paleidžia |
|---|---|
npm run test:unit |
Visus tests/unit/*.test.ts per Node testų vykdyklę (lygiagretumas 10) |
npm run test:vitest |
Vitest testų rinkinį (MCP, autoCombo, podėlis) |
npm run test:e2e |
Playwright naudotojo sąsajos testų rinkinį |
npm run test:protocols:e2e |
MCP ir A2A protokolų e2e testus |
npm run test:coverage |
Aprėpties slenkstį (≥60 % eilučių / sakinių / funkcijų / šakų) |
node --import tsx/esm --test tests/unit/<file>.test.ts |
Vieno failo paleidimą |
8. scripts/
Pagal paskirtį suskirstyta į 6 poaplankius.
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. Užklausų apdorojimo seka (santrauka)
Šaltinis: diagrams/request-pipeline.mmd
Kliento užklausa
→ /v1/chat/completions (route.ts)
CORS išankstinės užklausos patikra
Zod validavimas (chatCompletionsSchema faile shared/validation/schemas.ts)
Autentifikavimas (extractApiKey + isValidApiKey ARBA requireManagementAuth)
Politikos modulis (src/server/authz/pipeline.ts)
Apsaugos priemonės (PII maskavimas, komandų įterpimo aptikimas, vaizdų tiltas)
→ handleChatCore() (open-sse/handlers/chatCore.ts)
Podėlio patikra (semantinis + skaitymo podėlis)
Užklausų dažnio ribojimas (rateLimitManager, accountSemaphore)
Kombinuotas nukreipimas (jei modelis susiejamas su deriniu)
comboResolver → ciklas kiekvienam tikslui → handleSingleModel()
translateRequest() (open-sse/translator/request/*)
getExecutor(providerId).execute() (open-sse/executors/*)
užklausa aukštesnio lygio paslaugai → pakartotiniai bandymai / delsos didinimas per accountFallback
translateResponse() (open-sse/translator/response/*)
SSE srautas ARBA JSON atsakas
Jei naudojama Responses API: TransformStream per open-sse/transformer/responsesTransformer.ts
→ Atitikties auditas (src/lib/compliance/)
→ Atsakas klientui
Atsparumo vykdymo būsena (trys mechanizmai)
| Mechanizmas | Aprėptis | Kur |
|---|---|---|
| Teikėjo grandinės išjungiklis | Visas teikėjas | src/shared/utils/circuitBreaker.ts, išsaugoma domain_circuit_breakers |
| Ryšio atvėsimo laikotarpis | Viena paskyra / raktas | markAccountUnavailable() faile src/sse/services/auth.ts; naudoja accountFallback.checkFallbackError() |
| Modelio blokavimas | Teikėjas + ryšys + modelis | open-sse/services/accountFallback.ts, išsaugoma domain_lockout_state |
Žr. RESILIENCE_GUIDE.md ir tam skirtą skyrių faile CLAUDE.md.
10. Kaip prisidėti
Pridėti naują tiekėją
- Užregistruokite
src/shared/constants/providers.ts(įkeliant tikrinama naudojant „Zod“). - Jei reikalinga pasirinktinė logika, pridėkite vykdytoją kataloge
open-sse/executors/(išplėskiteBaseExecutor). - Jei tiekėjas nenaudoja „OpenAI“ formato, pridėkite vertiklį kataloge
open-sse/translator/. - Jei naudojamas „OAuth“, pridėkite konfigūraciją kataloguose
src/lib/oauth/providers/irsrc/lib/oauth/services/. - Užregistruokite modelius faile
open-sse/config/providerRegistry.ts(arba konkrečiam formatui skirtame registre katalogeopen-sse/config/). - Parašykite testus kataloge
tests/unit/.
Pridėti naują API maršrutą
- Sukurkite
src/app/api/your-route/route.ts. - Laikykitės šablono: CORS → užklausos turinio tikrinimas naudojant „Zod“ → autentifikavimas → perdavimas apdorojimo funkcijai.
- Jei naudojama nauja užklausos struktūra, pridėkite „Zod“ schemą faile
src/shared/validation/schemas.ts. - Jei maršrutas skirtas tik valdymui, pridėkite kelią prie
src/shared/constants/publicApiRoutes.ts(viešosios API sąsajos blokavimo sąrašas). - Pridėkite testus kataloge
tests/unit/. - Atnaujinkite
docs/reference/API_REFERENCE.mdirdocs/openapi.yaml.
Pridėti naują DB modulį
- Sukurkite
src/lib/db/yourModule.tsir importuokitegetDbInstance()iš./core.ts. - Eksportuokite savo sričiai skirtas CRUD funkcijas.
- Jei pridedamos naujos lentelės, pridėkite migraciją kataloge
src/lib/db/migrations/, sunumeruotą nuosekliai, idempotentišką ir transakcinę. - Importuojantieji naudoja tiesioginius importus iš
@/lib/db/yourModule(be agreguojančio modulio — senasislocalDb.tspakartotinio eksportavimo sluoksnis pašalintas). - Pridėkite testus kataloge
tests/unit/.
Pridėti naują MCP įrankį
- Pridėkite įrankio apibrėžimą kataloge
open-sse/mcp-server/tools/(arba išplėskiteopen-sse/mcp-server/schemas/tools.ts). - Priskirkite tinkamą (-as) aprėptį (-is) faile
src/shared/constants/mcpScopes.ts. - Užregistruokite įrankį faile
open-sse/mcp-server/server.ts. - Pridėkite testus kataloge
open-sse/mcp-server/__tests__/. - Atnaujinkite MCP-SERVER.md.
Pridėti naują A2A įgūdį
Žr. A2A-SERVER.md § Naujo įgūdžio pridėjimas. Įgūdžiai laikomi
src/lib/a2a/skills/ ir registruojami per A2A užduočių tvarkytuvę.
11. Susitarimai
- Kodo stilius: 2 tarpų įtrauka, dvigubos kabutės, 100 simbolių eilutės plotis, kabliataškiai,
es5baigiamieji kableliai — tai užtikrina „Prettier“ perlint-staged. - Importai: išoriniai → vidiniai (
@/,@omniroute/open-sse) → santykiniai. - Pavadinimai: failams naudojamas
camelCasearbakebab-case, komponentamsPascalCase, konstantomsUPPER_SNAKE. - ESLint:
no-eval,no-implied-eval,no-new-func=errorvisur;no-explicit-any=warnkataloguoseopen-sse/irtests/, kitur — klaida. - TypeScript:
strict: false(paveldėta nuostata). Tarpmodulinėse ribose pirmenybę teikite aiškiai nurodytiems tipams, o ne jų išvedimui. - Duomenų bazė: niekada nerašykite neapdoroto SQL maršrutuose ar apdorojimo funkcijose — visada naudokite
src/lib/db/modulius. Niekada nenaudokite agreguotų importų — konkrečiussrc/lib/db/*modulius importuokite tiesiogiai. - DB objektų tipizavimas (#3512): funkcija, kuri įrašo arba skaito DB lentelės
eilutės struktūrą, turi priimti / grąžinti vardinę TS sąsają, 1:1 atitinkančią tos lentelės
stulpelius, o ne
anyar kvietimo vietoje apibrėžtą anoniminį tipą. Sąsają pateikite šalia funkcijos (pvz.,export interface UsageEntryfailesrc/lib/usage/usageHistory.tsviršsaveRequestUsage), palikite atskirus laukus pasirinktinius / galinčius būtinull, kai skirtingos įrašymo funkcijos eilutę pildo palaipsniui, ir laukui, kurio struktūra skiriasi priklausomai nuo kvietėjo, teikite pirmenybęunknown, o neany(tai dokumentuokite prie lauko, pvz.,UsageEntry.tokenspriima tiek neapdorotus tiekėjo formato naudojimo duomenis, tiek normalizuotą struktūrą). Kai tokiu būduanyskaičius faile pasiekia nulį, pridėkite jį priecheck:any-budget:t11leidžiamųjų sąrašo (scripts/check/check-t11-any-budget.mjs,maxAny: 0), kad neatsirastų regresija. Tai yra pirmojo etapo susitarimas — platesnis anoniminiųanyšalinimas likusioje kodo bazėje vykdomas iteratyviai. - Klaidos: naudokite try/catch su konkrečiais klaidų tipais, registruokite žurnale su „pino“ kontekstu. Niekada tyliai nenutylėkite klaidų SSE srautuose; išvalymui naudokite nutraukimo signalus.
- Saugumas: niekada nenaudokite
eval()/new Function()/ numanomo „eval“. Visus įvesties duomenis tikrinkite naudodami „Zod“. Neaktyvius prisijungimo duomenis šifruokite (AES-256-GCM). Užtikrinkite, kadsrc/shared/constants/upstreamHeaders.tsblokavimo sąrašas būtų suderintas su valymo / tikrinimo sluoksniu. - Įsipareigojimai: „Conventional Commits“ —
feat(scope): subject. Leidžiamos aprėptys:db,sse,oauth,dashboard,api,cli,docker,ci,mcp,a2a,memory,skills. - Šakos: priešdėliai
feat/,fix/,refactor/,docs/,test/,chore/. Niekada neįsipareigokite tiesiogiai įmain. - Husky: prieš įsipareigojimą vykdomi
lint-staged+check:docs-sync+check:any-budget:t11; prieš išsiuntimą vykdomicheck:any-budget:t11+check:tracked-artifacts(greitosios patikros; neįtraukiamastest:unit).
12. Griežtos taisyklės (iš CLAUDE.md)
- Niekada neįtraukite paslapčių ar prisijungimo duomenų į įrašą.
- Niekada nenaudokite bendrųjų importų — tiesiogiai naudokite konkrečius
src/lib/db/*modulius. - Niekada nenaudokite
eval()/new Function()/ numanomojoeval. - Niekada neįrašykite pakeitimų tiesiogiai į
main. - Niekada nerašykite neapdoroto SQL maršrutuose — visada naudokite
src/lib/db/modulius. - Niekada tyliai nenuslopinkite klaidų SSE srautuose.
- Visada tikrinkite įvestis naudodami Zod schemas.
- Keisdami produkcinį kodą visada įtraukite testus.
- Testų aprėptis turi išlikti ≥ 60 % (sakiniai, eilutės, funkcijos, šakos).
13. Taip pat žr.
- ARCHITECTURE.md — aukšto lygio architektūra ir modulių atsakomybės.
- API_REFERENCE.md — viešosios ir valdymo API žinynas.
- FEATURES.md — funkcijų matrica ir svarbiausi versijų pakeitimai.
- RESILIENCE_GUIDE.md — išsami grandinės pertraukiklio, atvėsimo laikotarpio ir blokavimo analizė.
- AUTO-COMBO.md — Auto Combo vertinimas ir strategijos.
- MCP-SERVER.md — visas MCP įrankių katalogas ir perdavimo būdai.
- A2A-SERVER.md — A2A protokolo gebėjimai ir aptikimas.
- COMPRESSION_GUIDE.md — RTK ir Caveman glaudinimas.
- CLI-TOOLS.md — CLI integracijos.
- ELECTRON_GUIDE.md (jei yra), DOCKER_GUIDE.md, FLY_IO_DEPLOYMENT_GUIDE.md, VM_DEPLOYMENT_GUIDE.md, TERMUX_GUIDE.md, PWA_GUIDE.md — diegimo tikslinės aplinkos.
- TROUBLESHOOTING.md — dažnos eksploatavimo problemos.
- CONTRIBUTING.md — bendradarbių darbo eiga.
- CLAUDE.md — Claude Code saugyklos taisyklės (pagrindinis daugelio pirmiau pateiktų susitarimų šaltinis).
- AGENTS.md — išsamesnis agentų naudojamas architektūros žinynas.