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

82 KiB
Raw Blame History

CODEBASE_DOCUMENTATION (Hausa)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇮🇱 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 · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW



title: "Takardun Tushen Lambar OmniRoute" version: 3.8.40 lastUpdated: 2026-06-28

Takardun Tushen Lambar OmniRoute

Siga: v3.8.51 An sabunta na ƙarshe: 2026-06-28 Masu karatu: Injiniyoyin da ke ba da gudummawa ga OmniRoute ko gina haɗe-haɗe a samansa.

Don zane-zanen tsarin gine-gine na gaba ɗaya da dalilan da ke bayan kowane ƙaramin tsari, karanta ARCHITECTURE.md. Don cikakken bayani kan kowane ƙaramin tsari (Auto Combo, MCP server, A2A server, Skills, Memory, Cloud Agents, Resilience, Compression, da sauransu) duba fayilolinsu na musamman a cikin wannan kundin docs/.

Wannan fayil yana bayyana abin da ke cikin ma'ajiyar a yau domin sabon injiniya ya iya bincika tsarin kundin, fahimtar yadda matakan runtime suke, kuma ya san inda zai ƙara lamba ba tare da ƙirƙirar sababbin modules ba.


1. Tarin Fasahohi

Abin la'akari Zaɓi
Tsarin yanar gizo Next.js 16 (App Router, standalone output, babu global middleware)
Harshe TypeScript 6.0+ — target ES2022, module: esnext, moduleResolution: bundler, strict: false
Runtime Node.js >=22.22.2 <23 ko >=24.0.0 <27 (ana tilasta shi ta hanyar engines + SUPPORTED_NODE_RANGE)
Ma'ajiyar bayanai SQLite ta hanyar better-sqlite3 (singleton, WAL journaling)
Desktop Electron 41 + electron-builder 26.10 (workspace na daban a electron/)
Gwaje-gwaje Node native test runner (unit/integration), Vitest (MCP, autoCombo, cache), Playwright (e2e + protocols-e2e)
Gina Next.js standalone ta hanyar scripts/build/build-next-isolated.mjs
Lint/tsarawa ESLint flat config + Prettier (lint-staged ta hanyar Husky pre-commit)
Tsarin module ESM a ko'ina ("type": "module")
Workspaces npm workspace — open-sse ne kawai ƙaramin workspace

Laƙabin hanyoyi (tsconfig.json):

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

Tsohuwar tashar HTTP: 20128 (API da dashboard suna amfani da process ɗaya). Kundin bayanai shi ne env var DATA_DIR, wanda tsohuwar ƙimarsa ita ce ~/.omniroute/.


2. Tsarin Ma'ajiya

OmniRoute/
├── src/                  Manhajar Next.js (App Router, libs, domain, server, shared)
├── open-sse/             Workspace na injin streaming (@omniroute/open-sse)
├── electron/             Kundin desktop (Electron 41 main + preload)
├── bin/                  Wuraren shigar CLI (omniroute, reset-password)
├── tests/                Unit, integration, e2e, protocols-e2e, translator, security, fixtures
├── scripts/              Scripts na gini, daidaitawa, dubawa, migration, da taimakon runtime
├── docs/                 Takardun jama'a (wannan kundin)
├── public/               Static assets, PWA manifest, service worker
├── config/               Misalan config na runtime
├── images/               Kadarorin talla/hotunan allo
├── _ideia/, _references/, _mono_repo/, _tasks/   Wurin rubuce-rubucen ciki / tsarawa (ba a haɗa su a fitarwa)
├── CLAUDE.md             Dokokin ma'ajiya don Claude Code
├── AGENTS.md             Cikakken bayanin tsarin gine-gine ga agents
├── package.json          v3.8.51, tushen workspace
└── tsconfig.json         Laƙabin hanyoyi + manyan zaɓuɓɓukan compiler

3. src/ — Manhajar Next.js

src/
├── app/                  Shafukan App Router + hanyoyin API
├── lib/                  Muhimman laburare (DB, auth, OAuth, skills, memory, …)
├── domain/               Tsantsar matakin domain (policy, fallback, cost, lockout, …)
├── server/               Modulolin uwar garke kaɗai (authz, cors, auth)
├── shared/               Nau'uka, ƙayyadaddun ƙimomi, tabbatarwa, yarjejeniyoyi, kayan aiki (amintattu a ketare iyakoki)
├── mitm/                 Mataimakan proxy na man-in-the-middle don haɗin CLI
├── models/               Metadata / aliasing na samfurin gida
├── sse/                  Tsofaffin masu sarrafa SSE waɗanda har yanzu suke ƙarƙashin src/ (ba open-sse/ ba)
├── store/                Ma'ajiyoyin yanayin ɓangaren abokin hulɗa
├── middleware/           Kayan aikin middleware na matakin hanya (ba middleware na duniya na Next.js ba)
├── scripts/              Skrif ɗin cikin bishiya waɗanda lambar manhaja za ta iya shigo da su
├── types/                Nau'ukan TS na ambient da na gama-gari
├── i18n/                 Kundin harsunan yanki
├── instrumentation.ts    Mahadar instrumentation ta Next.js
├── instrumentation-node.ts
└── proxy.ts              Mataimakin fara proxy na babban mataki

3.1 src/app/ — App Router

App Router yana samar da duka UI na dashboard da API na HTTP na jama'a/gudanarwa. Babu middleware na duniya — ana yin katsalandan ne a kowace hanya.

Manyan sassa ƙarƙashin src/app/:

Hanya Manufa
api/ Duk hanyoyin API na HTTP (duba rarrabuwar ƙasa)
a2a/ Endpoint na A2A JSON-RPC 2.0 (POST /a2a)
.well-known/agent.json/ Takardar gano A2A Agent Card
(dashboard)/ UI na dashboard (rukunin hanya, babu prefix na URL)
auth/, login/, forgot-password/, callback/ Gudanawar tantancewa
landing/ Shafin talla/zuwa
docs/ Mai duba takardun API da aka saka ciki
status/, maintenance/, offline/ Shafukan aiki
privacy/, terms/ Shafukan doka
400/, 401/, 403/, 408/, 429/, 500/, 502/, 503/ Tsayayyun shafukan kuskure
error.tsx, global-error.tsx, not-found.tsx, forbidden/, loading.tsx Iyakokin kuskure/lodawa na framework
layout.tsx, page.tsx, globals.css, manifest.ts Babban harsashi

3.1.1 src/app/(dashboard)/dashboard/ — Shafukan 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, tare da tushen page.tsx, HomePageClient.tsx, BootstrapBanner.tsx.

3.1.2 src/app/api/ — Manyan rukunin 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/   Gudanar da ayyukan da aka saka ciki (9router, cliproxy) — LOCAL_ONLY
├── upstream-proxy/
├── usage/
├── v1/         API na jama'a mai dacewa da OpenAI
├── v1beta/     Daidaituwa irin ta Gemini
├── version-manager/
└── webhooks/

3.1.2a src/app/api/services/ — Gudanar da Ayyukan da Aka Saka Ciki

Hanyoyi don girkawa, farawa, dakatarwa, da sa ido kan 9Router da CLIProxyAPI. Dukkan hanyoyi an rarraba su a matsayin LOCAL_ONLY (loopback kaɗai, ƙa'ida mai tsauri #17) saboda suna iya kiran npm install da ƙaddamar da child processes.

src/app/api/services/
├── 9router/
│   ├── _lib.ts             mataimakin getOrInitSupervisor()
│   ├── install/route.ts    POST — npm install ta hanyar 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 na sabon sigar
│   ├── rotate-key/route.ts POST — samar da sabon maɓallin API + sake farawa
│   ├── status/route.ts     GET  — halin kai-tsaye + DB + metadata na siga
│   └── auto-start/route.ts POST — kunna/kashe tutar auto_start
├── cliproxy/
│   ├── _lib.ts             mataimakin 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 na sabon siga
│   ├── status/route.ts     GET  — halin kai-tsaye + DB + metadata na siga
│   └── auto-start/route.ts POST — kunna/kashe tutar auto_start
└── [name]/
    └── logs/route.ts       GET  — ƙarshen rajistar SSE (duk sabis suna amfani da shi)

UI na dashboard da ya dace: src/app/(dashboard)/dashboard/providers/services/ — shafi mai shafuka biyu (CLIProxyAPI + 9Router). Reverse proxy don UI ɗin 9Router da aka saka: src/app/(dashboard)/dashboard/providers/services/[name]/embed/[[...path]]/route.ts

Cikakken bayani: docs/frameworks/EMBEDDED-SERVICES.md

3.1.3 src/app/api/v1/ — API na jama'a mai dacewa da OpenAI

v1/
├── accounts/[id]/                       nemo asusu
├── agents/tasks/[id]/, agents/tasks/    wuraren ƙarshen ayyuka masu salon A2A
├── api/                                 mataimakan API na ciki da aka fallasa a ƙarƙashin v1/api
├── audio/{speech, transcriptions}/      TTS + STT
├── batches/[id]/{cancel}, batches/      OpenAI Batches API
├── chat/completions/                    Chat Completions (babban wurin ƙarshe)
├── completions/                         tsofaffin kammalawar rubutu
├── embeddings/                          Embeddings
├── files/[id]/, files/                  Files API
├── _helpers/                            mataimakan route da ake rabawa (babu URL na jama'a)
├── images/{edits, generations}/         samarwa + gyaran hoto
├── issues/                              wuraren ƙarshen mataimakin tantance matsaloli
├── management/{proxies}/                routes masu iyakar gudanarwa a cikin v1
├── messages/{count_tokens}/             dacewa da saƙonni masu salon Anthropic
├── models/                              jera samfura (`route.ts`, `catalog.ts`)
├── moderations/                         tantance abun ciki
├── music/                               samar da kiɗa
├── providers/[provider]/                ayyuka na kowane mai bayarwa
├── quotas/{check}                       binciken iyaka
├── registered-keys/                     gudanar da maɓallan da aka yi wa rajista
├── rerank/                              sake tsara matsayi
├── responses/[...path]/                 OpenAI Responses API (mai kama duk routes)
├── search/                              binciken yanar gizo
├── videos/                              samar da bidiyo
├── ws/                                  gadar WebSocket
└── route.ts                             mai sarrafa fihirisa

Kowane fayil na route yana bin tsari iri ɗaya:

Route → CORS preflight → tabbatar da body ta Zod → auth na zaɓi
      → tilasta manufofin maɓallin API → miƙa wa handler (open-sse)

v1beta/ shi ne fuskar dacewa mai salon Gemini (siririn wrapper da ke fassara zuwa bututun open-sse/handlers/ iri ɗaya).

3.2 src/lib/ — Muhimman laburare

Koyaushe a shigo da data, sync, OAuth, skill, memory, da sauransu ta waɗannan modules. Wannan teburin yana haɗa ainihin directories da fitattun fayilolin matakin-sama.

Module Manufa
a2a/ Sabar yarjejeniyar A2A: taskManager.ts, streaming.ts, taskExecution.ts, routingLogger.ts, skills/ (ƙwarewa 6: nazarin kuɗi, rahoton lafiya, gano mai samarwa, sarrafa ƙa'ida, turawa mai wayo, jera iyawa)
acp/ Agent-Control-Protocol: index.ts, manager.ts, registry.ts
api/ Mataimakan API na ciki: requireManagementAuth.ts, requireCliToolsAuth.ts, errorResponse.ts
auth/ managementPassword.ts (sake saita kalmar sirri / hashing)
batches/ Sabis na OpenAI Batches API (service.ts)
catalog/ Aiki tare na katalog ɗin OpenRouter (openrouterCatalog.ts)
cloudAgent/ Rijistar wakilan cloud: api.ts, baseAgent.ts, db.ts, index.ts, registry.ts, types.ts, agents/{codex, devin, jules}.ts
combos/ Mataimakan warware haɗe-haɗe
compliance/ Binciken bin ƙa'ida + binciken mai samarwa: index.ts, providerAudit.ts
config/ Mannewar saitunan lokacin gudanarwa
db/ Module ɗin yankin SQLite (duba §3.2.1)
display/ Mataimakan UI/nunawa da amsoshin API ke amfani da su
embeddings/ Rijistar sabis na embedding
env/ Loda env + binciken ciki
evals/ Lokacin gudanar da eval
guardrails/ piiMasker.ts, promptInjection.ts, visionBridge.ts, visionBridgeHelpers.ts, registry.ts, base.ts
jobs/ Ayyukan bango (autoUpdate.ts, …)
memory/ Ƙwaƙwalwa mai ɗorewa: 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/ Module ɗin OAuth/shigo da mai samarwa (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, tare da services/, utils/, da constants/oauth.ts
plugins/ Mai loda plugin (index.ts)
promptCache/ prefixAnalyzer.ts, index.ts
providerModels/ Tsarin rayuwar model da ake sarrafawa: modelDiscovery.ts, managedModelImport.ts, managedAvailableModels.ts, cursorAgent.ts
providers/ Mataimakan mai samarwa: catalog.ts, validation.ts, imageValidation.ts, claudeExtraUsage.ts, codexConnectionDefaults.ts, codexFastTier.ts, webCookieAuth.ts, managedAvailableModels.ts, requestDefaults.ts
resilience/ settings.ts — saituna don circuit breaker, cooldown, lockout
runtime/ Gano fasalolin lokacin gudanarwa
search/ executeWebSearch.ts
services/ Tsarin ayyukan da aka saka ciki: ServiceSupervisor.ts (mai kula da child-process na gama-gari tare da makullin aiki, ring buffer, da mai duba lafiya), bootstrap.ts (rijista da farawa ta atomatik a matakin process), registry.ts (taswirar tool → supervisor), apiKey.ts (ma'ajiyar maɓalli ta AES-256-GCM), modelSync.ts (aiki tare da model lokaci-lokaci), ringBuffer.ts (madauwariyar ma'ajiyar log mai 5 MB), healthCheck.ts (binciken lafiyar HTTP), types.ts, embedWsProxy.ts (wakilin WebSocket), installers/{ninerouter,cliproxy}.ts. Duba docs/frameworks/EMBEDDED-SERVICES.md
agentSkills/ Katalog da janareton ƙwarewar wakili: catalog.ts (getCatalog/getSkillById/filterCatalog/computeCoverage), generator.ts (generateAgentSkills → yana rubuta skills/{id}/SKILL.md), openapiParser.ts (yana ciro REST endpoints daga ƙayyadaddun OpenAPI), cliRegistryParser.ts (yana ciro ƙananan umarnin CLI daga bin/cli-registry), schemas.ts (Zod: AgentSkillSchema, SkillCoverageSchema, ListQuerySchema, GenerateBodySchema), types.ts (AgentSkill, SkillCoverage, SkillMarkdown, GeneratorReport). Hanyoyin REST (/api/agent-skills/*), kayan aikin MCP (omniroute_agent_skills_*), da ƙwarewar A2A list-capabilities suna amfani da shi. Duba AGENT-SKILLS.md.
skills/ Tsarin ƙwarewa: 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, tare da builtin/browser.ts
spend/ batchWriter.ts (ma'ajiyar write-behind)
sync/ bundle.ts, tokens.ts (Cloud Sync)
system/ Mataimaka na matakin tsarin
translator/ Mannewar fassara ta matakin sama (tana miƙa aikin zuwa open-sse/translator/)
usage/ Lissafin amfani: costCalculator.ts, tokenAccounting.ts, usageHistory.ts, aggregateHistory.ts, usageStats.ts, callLogs.ts, callLogArtifacts.ts, fetcher.ts, providerLimits.ts, migrations.ts
versionManager/ Sabuntawa ta atomatik + bayanin sigar
ws/ Gadar WebSocket
zed-oauth/ Gudanarwar OAuth na editan Zed

Fayiloli na matakin-sama a cikin src/lib/:

  • An cire tsohon barrel na localDb.ts — masu amfani suna shigo da takamaiman modules na src/lib/db/* kai tsaye.
  • 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/

Ma'ajiyar bayanai ta SQLite mai singleton (getDbInstance() a cikin core.ts, rubutun mujallar WAL). Kada a taɓa rubuta ɗanyen SQL a cikin routes ko handlers — a bi ta waɗannan modules.

Taƙaitaccen tsarin ma'ajiyar bayanai (zaɓaɓɓun muhimman tables)

Tushe: diagrams/db-schema-overview.mmd

Modules na domain (kowanne yana kula da table ɗaya ko fiye): 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/ yana ɗauke da fayilolin .sql masu sigar lamba guda 168 (masu idempotent, na ma'amala) kuma migrationRunner.ts ne ke gudanar da su yayin farawa.

Tables da aka ƙirƙira a duk migrations (jimilla 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 (tare da virtual tables na FTS5 don binciken memory).

3.3 src/domain/ — Matakin domain

Tsantsar dabarun kasuwanci, babu I/O. Routes da handlers ne ke shigo da su.

Fayil Manufa
policyEngine.ts Mai warware policy na matakin-sama
fallbackPolicy.ts Bishiyar yanke shawarar fallback
costRules.ts Dokokin lissafin kuɗi
lockoutPolicy.ts Shawarwarin kulle model
tagRouter.ts Routing bisa tags
comboResolver.ts Warware combo daga request → jerin targets
connectionModelRules.ts Filters na model ga kowace connection
modelAvailability.ts Binciken kasancewar model
degradation.ts Sauye-sauyen degraded-mode
providerExpiration.ts Gano account/key da wa'adinsu ya ƙare
quotaCache.ts Shawarwarin quota da aka adana a cache
responses.ts, omnirouteResponseMeta.ts Masu taimakawa wajen tsarin response
configAudit.ts Audit na canje-canjen config
assessment/ Tantance model (bisa RFC, an aiwatar da wani ɓangare)
types.ts Types na domain da ake rabawa

3.4 src/server/ — Na server kaɗai

Ba za a iya shigo da shi daga client components ba.

server/
├── auth/loginGuard.ts
├── authz/
│   ├── classify.ts        Yana rarraba routes zuwa na jama'a ko na gudanarwa
│   ├── assertAuth.ts      Mai taimakawa wajen tabbatarwa
│   ├── context.ts         Context na authz ga kowane request
│   ├── headers.ts
│   ├── pipeline.ts        Pipeline na authz
│   ├── policies/          Policies na zahiri
│   └── types.ts
└── cors/origins.ts        Jerin origins na CORS da aka amince da su

3.5 src/shared/ — Amintacce don rabawa

An raba shi zuwa ƙananan directories masu takamaiman aiki:

  • constants/providers.ts (kundin masu samarwa da Zod ya tantance), models.ts, modelSpecs.ts, modelCompat.ts, pricing.ts, cliTools.ts, cliCompatProviders.ts, routingStrategies.ts, comboConfigMode.ts, headers.ts, upstreamHeaders.ts (jerin abubuwan da aka hana), 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 (kimanin tsarin Zod 80), compressionConfigSchemas.ts, providerSchema.ts, settingsSchemas.ts, helpers.ts.
  • contracts/ — kwangilolin API na jama'a da ake fitarwa zuwa npm.
  • types/ — nau'ikan TS da ake amfani da su tare.
  • 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, tare da hooks/abubuwan haɗin dashboard a ƙarƙashin services/, network/, middleware/, schemas/, hooks/, components/.

4. open-sse/ — Wurin aikin injin watsawa kai tsaye

Wurin aikin npm ne mai zaman kansa da aka wallafa a matsayin @omniroute/open-sse. Yana kula da sarrafa buƙatu, masu aiwatarwa, masu fassara, ayyuka, mai sauya tsari, da uwar garken MCP.

open-sse/
├── index.ts                Abubuwan da ake fitarwa ga jama'a
├── package.json            Bayanin wurin aiki
├── tsconfig.json
├── types.d.ts
├── config/                 Rijistocin masu samarwa, bayanan kai, shaida, …
├── handlers/               Masu sarrafa buƙatu (taɗi, embeddings, sauti, hoto, …)
├── executors/              Masu aiwatar da HTTP na musamman ga masu samarwa guda 108
├── translator/             Sauya tsari (OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro)
├── transformer/            Mai sauya watsawa na Responses API ↔ Chat Completions
├── services/               Manhajojin ayyuka 80+ (haɗuwa, koma-baya, ƙayyadaddun amfani, shaida, …)
├── utils/                  Mataimakan watsawa, abokin cinikin TLS, AWS SigV4, proxy fetch, …
└── mcp-server/             Uwar garken MCP (hanyoyin jigilar bayanai 3, iyakoki 33, kayan aiki 110)

4.1 open-sse/handlers/

Mai sarrafawa Manufa
chatCore.ts Babban tsarin sarrafa taɗi (cache, iyakar amfani, jagorantar haɗuwa, tura mai aiwatarwa)
responsesHandler.ts Mashigar OpenAI Responses API
embeddings.ts Embeddings
imageGeneration.ts Samar da hoto
audioSpeech.ts Rubutu zuwa magana
audioTranscription.ts Magana zuwa rubutu
videoGeneration.ts Samar da bidiyo
musicGeneration.ts Samar da kiɗa
rerank.ts Sake tsara matsayi
moderations.ts Tace abun ciki
search.ts Binciken yanar gizo
sseParser.ts Mai fassara abubuwan da suka faru na SSE
usageExtractor.ts Ciro ƙididdigar token daga watsawar da ke sama
responseSanitizer.ts Cire gurɓatattun bayanai na musamman ga mai samarwa
responseTranslator.ts Haɗin tsakanin martanin mai samarwa da matakin fassara

4.2 open-sse/executors/

Masu aiwatarwa na masu samarwa guda 108, kowannensu yana faɗaɗa 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, tare da claudeIdentity.ts (mataimakin shaida da ake rabawa) da index.ts (rijista).

Lura: masu samarwar da ba a jera su a nan ba ana yi musu hidima ta default.ts ta amfani da mai aiwatarwa na bai-ɗaya wanda ya dace da OpenAI. Cikakken kundin masu samarwa (masu samarwa 355) yana cikin src/shared/constants/providers.ts.

4.3 open-sse/translator/

Fassara ta tsarin cibiya-da-rassa (OpenAI ne cibiyar).

  • Masu fassara buƙatu 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.
  • Masu fassara martani 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.
  • Mataimaka 9 (translator/helpers/): claudeHelper, geminiHelper, geminiToolsSanitizer, maxTokensHelper, openaiHelper, responsesApiHelper, schemaCoercion, toolCallHelper, da kuma gwaje-gwajen mataimaka.
  • Mataimakan hoto (translator/image/sizeMapper.ts).
  • Matakin sama: bootstrap.ts, formats.ts, registry.ts, index.ts.

4.4 open-sse/transformer/

  • responsesTransformer.ts — Mai sauya Responses API ↔ Chat Completions wanda ya dogara da TransformStream (hanyar responses/ mai kama duk buƙatun da ba su dace da wata hanya ba tana amfani da shi).

4.5 open-sse/services/

Muhimman abubuwa (cikakken jerin yana ƙarƙashin open-sse/services/):

Abin dubawa Fayiloli
Tuƙa haɗaɗɗun hanyoyi combo.ts (dabaru 19), comboConfig.ts, comboMetrics.ts, comboManifestMetrics.ts, comboAgentMiddleware.ts
Injin Auto Combo 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
Juriya ga matsala accountFallback.ts (lokacin jira + kullewa), errorClassifier.ts, emergencyFallback.ts, rateLimitManager.ts, rateLimitSemaphore.ts, accountSemaphore.ts, accountSelector.ts
Ƙayyadaddun amfani quotaMonitor.ts, quotaPreflight.ts, bailianQuotaFetcher.ts, codexQuotaFetcher.ts, deepseekQuotaFetcher.ts, openrouterQuotaFetcher.ts, openrouterFreeWindow.ts, crofUsageFetcher.ts, antigravityCredits.ts
Ma'ajiyar wucin gadi reasoningCache.ts, searchCache.ts, signatureCache.ts, requestDedup.ts
Basirar tuƙa hanya intentClassifier.ts, taskAwareRouter.ts, backgroundTaskDetector.ts, volumeDetector.ts, wildcardRouter.ts, workflowFSM.ts, specificityDetector.ts, specificityRules.ts, specificityTypes.ts
Sarrafa samfuri modelCapabilities.ts, modelDeprecation.ts, modelFamilyFallback.ts, modelStrip.ts, model.ts, provider.ts, providerRequestDefaults.ts, providerCostData.ts, payloadRules.ts
Matse bayanai compression/ — cikakkiyar haɗa-hadar injin matse bayanai
Token + zaman aiki tokenRefresh.ts, sessionManager.ts, apiKeyRotator.ts, contextManager.ts, contextHandoff.ts, systemPrompt.ts, roleNormalizer.ts, responsesInputSanitizer.ts, toolSchemaSanitizer.ts, toolLimitDetector.ts, thinkingBudget.ts
Mataki / manifest tierResolver.ts, tierConfig.ts, tierDefaults.json, tierTypes.ts, manifestAdapter.ts
IP / hanyar sadarwa ipFilter.ts, webSearchFallback.ts
Rukunin sarrafawa batchProcessor.ts
Amfani usage.ts

4.6 open-sse/mcp-server/

  • Kayan aiki na musamman 110 da aka haɗa a cikin server.ts (na asali 45 a cikin schemas/tools.ts + manhajojin ƙwaƙwalwa, ƙwarewa, GitHub-skills, pool, gamification, plugin, Notion, Obsidian, local-corpus da compression — an ƙidaya haɗakarsu ta hanyar countUniqueMcpTools).
  • Hanyoyin sufuri 3: stdio, HTTP Streamable, SSE.
  • Iyakokin izini 33 da ake tilasta wa yayin aiki — jerin asali yana cikin src/shared/constants/mcpScopes.ts, cikakken saitin kuma shi ne haɗakar iyakokin izinin da kowace manhajar kayan aiki ta ayyana.
  • Teburin binciken ƙididdiga: mcp_tool_audit (audit.ts ne ke cika shi).
  • Fayiloli: 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, tare da gwaje-gwajen da ke ƙarƙashin __tests__/.
  • Duba MCP-SERVER.md domin cikakken kundin kayan aiki.

4.7 open-sse/config/

Rijistocin masu samarwa (providerRegistry.ts, providerModels.ts, providerHeaderProfiles.ts), rijistocin samfuri na kowane tsari (audioRegistry.ts, embeddingRegistry.ts, imageRegistry.ts, moderationRegistry.ts, musicRegistry.ts, rerankRegistry.ts, searchRegistry.ts, videoRegistry.ts), mataimakan shaida (codexIdentity.ts, codexInstructions.ts, anthropicHeaders.ts, antigravityUpstream.ts, antigravityModelAliases.ts, cliFingerprints.ts, toolCloaking.ts, defaultThinkingSignature.ts), mataimakan bayanan shiga (credentialLoader.ts, codexClient.ts), da adaftocin girgije (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/

Muhimman abubuwan streaming da mataimakan masu samarwa: 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/ — Kundin na tebur

electron/
├── main.js                  Babban tsarin aikin Electron
├── preload.js               Gadar preload (an kunna contextIsolation)
├── types.d.ts
├── package.json             Saitunan electron-builder, sigar 3.8.51
├── README.md
├── assets/                  Albarkatun ginawa (gumaka, haƙƙoƙi, …)
├── node_modules/            Keɓaɓɓen node_modules (better-sqlite3, electron-updater)
└── dist-electron/           Sakamakon ginawa (ba a commit ɗinsa)

Akwai scripts na npm guda biyar a tushen workspace: electron:dev, electron:build, electron:build:{win,mac,linux}, electron:smoke:packaged. Sabuntawa ta atomatik yana gudana ne ta electron-updater wanda ke nuna maajiyar fitarwa ta GitHub.


6. bin/ — CLI

bin/
├── omniroute.mjs           Babban wurin shigar CLI (Node ESM)
├── reset-password.mjs      Sake saita kalmar sirrin gudanarwa daga CLI
├── mcp-server.mjs          Mai ƙaddamar da sabar MCP (stdio)
├── nodeRuntimeSupport.mjs  Mai duba sigar Node
└── cli/
    ├── program.mjs         Mai gina shirin Commander
    ├── runtime.mjs         Mataimakin withRuntime (sabar-farko/madadin-DB)
    ├── output.mjs          Masu tsara fitarwa (json/jsonl/table/csv)
    ├── i18n.mjs            Mataimakin t() mai locales
    ├── api.mjs             Mataimakin fetch na API
    ├── data-dir.mjs
    ├── encryption.mjs
    ├── sqlite.mjs
    └── commands/
        ├── registry.mjs    Rijistar umarni
        ├── setup.mjs
        ├── doctor.mjs
        ├── providers.mjs
        └── ...             (fayil ɗaya ga kowane umarni/rukuni)

Ana samar da binaries guda biyu a package.jsonbin:

  • omniroutebin/omniroute.mjs
  • omniroute-reset-passwordbin/reset-password.mjs

7. tests/

Kundin adireshi Naui
tests/unit/ Gwaje-gwajen unit ta amfani da mai gudanar da gwaji na asali na Node (fayiloli 1821, tare da ƙananan kundunan api/, auth/, authz/)
tests/integration/ Gwaje-gwajen tsakanin modules + yanayin DB
tests/e2e/ Gwaje-gwajen UI na Playwright
tests/e2e/protocol-clients.test.ts Gwajin e2e na ƙaidojin MCP/A2A
tests/translator/ Gwaje-gwaje na musamman ga mai fassara
tests/security/ Komawar kurakuran tsaro
tests/load/ Gwaje-gwajen lodi / matsin lamba
tests/golden-set/ Sakamakon tunani don komawar kurakuran mai fassara
tests/helpers/, tests/fixtures/, tests/manual/ Tallafi

Umarni da aka saba amfani da su:

Umarni Abin da yake gudanarwa
npm run test:unit Duk tests/unit/*.test.ts ta mai gudanar da gwaji na Node (concurrency 10)
npm run test:vitest Rukunin gwaje-gwajen Vitest (MCP, autoCombo, cache)
npm run test:e2e Rukunin gwaje-gwajen UI na Playwright
npm run test:protocols:e2e Gwajin e2e na ƙaidojin MCP + A2A
npm run test:coverage Ƙofar coverage (≥60% na layuka/statements/functions/branches)
node --import tsx/esm --test tests/unit/<file>.test.ts Gudanar da fayil guda ɗaya

8. scripts/

An tsara su cikin manyan fayiloli 6 bisa ga manufarsu.

  • 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. Bututun Gudanar da Buƙata (Taƙaitawa)

Bututun gudanar da buƙata (/v1/chat/completions)

Tushe: diagrams/request-pipeline.mmd

Buƙatar abokin ciniki
  → /v1/chat/completions (route.ts)
     Binciken share-fage na CORS
     Tabbatarwar Zod (chatCompletionsSchema a cikin shared/validation/schemas.ts)
     Tantancewa (extractApiKey + isValidApiKey KO requireManagementAuth)
     Injin manufofi (src/server/authz/pipeline.ts)
     Matakan kariya (mai ɓoye PII, hana kutsen prompt, gadar vision)
  → handleChatCore() (open-sse/handlers/chatCore.ts)
     Binciken cache (semantic + cache na karantawa)
     Iyakance ƙimar buƙatu (rateLimitManager, accountSemaphore)
     Zaɓin hanya ta combo (idan an warware model zuwa combo)
       comboResolver → maimaitawa ga kowace manufa → handleSingleModel()
     translateRequest()  (open-sse/translator/request/*)
     getExecutor(providerId).execute()  (open-sse/executors/*)
       fetch daga upstream → sake gwadawa/jinkiri ta hanyar accountFallback
     translateResponse() (open-sse/translator/response/*)
     Kwararar SSE KO amsar JSON
     Idan Responses API ne: TransformStream ta hanyar open-sse/transformer/responsesTransformer.ts
  → Binciken bin ƙa'ida (src/lib/compliance/)
  → Amsa ga abokin ciniki

Yanayin runtime na juriya (hanyoyi uku)

Hanya Iyaka Inda
Mai katse da'irar mai samarwa Gabaɗayan mai samarwa src/shared/utils/circuitBreaker.ts, an adana a cikin domain_circuit_breakers
Lokacin dakatar da haɗi Asusu/maɓalli ɗaya markAccountUnavailable() a cikin src/sse/services/auth.ts; accountFallback.checkFallbackError() ke amfani da shi
Hana amfani da model Mai samarwa + haɗi + model open-sse/services/accountFallback.ts, an adana a cikin domain_lockout_state

Duba RESILIENCE_GUIDE.md da kuma sashen da aka keɓe a cikin CLAUDE.md.


10. Yadda Ake Ba da Gudummawa

Ƙara sabon mai samarwa

  1. Yi rajista a src/shared/constants/providers.ts (ana tantance shi da Zod lokacin lodawa).
  2. Ƙara mai aiwatarwa a open-sse/executors/ idan ana buƙatar dabaru na musamman (faɗaɗa BaseExecutor).
  3. Ƙara mai fassara a open-sse/translator/ idan ba ya amfani da tsarin OpenAI.
  4. Idan yana amfani da OAuth, ƙara saituna a ƙarƙashin src/lib/oauth/providers/ da src/lib/oauth/services/.
  5. Yi rajistar samfura a open-sse/config/providerRegistry.ts (ko ma'ajiyar rajista ta takamaiman tsari a ƙarƙashin open-sse/config/).
  6. Rubuta gwaje-gwaje a ƙarƙashin tests/unit/.

Ƙara sabuwar hanyar API

  1. Ƙirƙiri src/app/api/your-route/route.ts.
  2. Bi tsarin: CORS → tantance jikin buƙata da Zod → tabbatar da izini → miƙa aikin ga mai sarrafawa.
  3. Idan tsarin buƙatar sabo ne: ƙara tsarin Zod a src/shared/validation/schemas.ts.
  4. Idan na gudanarwa kawai ne: ƙara hanyar zuwa src/shared/constants/publicApiRoutes.ts (jerin hanawa na ɓangaren API na jama'a).
  5. Ƙara gwaje-gwaje a ƙarƙashin tests/unit/.
  6. Sabunta docs/reference/API_REFERENCE.md da docs/openapi.yaml.

Ƙara sabon tsarin DB

  1. Ƙirƙiri src/lib/db/yourModule.ts sannan ka shigo da getDbInstance() daga ./core.ts.
  2. Fitar da ayyukan CRUD na fannin naka.
  3. Idan akwai sabbin tebura: ƙara ƙaura a ƙarƙashin src/lib/db/migrations/, mai lamba bi-da-bi, wanda za a iya maimaitawa ba tare da illa ba, kuma mai amfani da transaction.
  4. Masu shigo da abubuwa su yi amfani da shigo da kai tsaye daga @/lib/db/yourModule (ba barrel ba — an cire tsohon matakin sake fitarwa na localDb.ts).
  5. Ƙara gwaje-gwaje a ƙarƙashin tests/unit/.

Ƙara sabon kayan aikin MCP

  1. Ƙara ma'anar kayan aikin a ƙarƙashin open-sse/mcp-server/tools/ (ko faɗaɗa open-sse/mcp-server/schemas/tools.ts).
  2. Sanya iyakar izini da ta dace a src/shared/constants/mcpScopes.ts.
  3. Yi rajistar kayan aikin a open-sse/mcp-server/server.ts.
  4. Ƙara gwaje-gwaje a ƙarƙashin open-sse/mcp-server/__tests__/.
  5. Sabunta MCP-SERVER.md.

Ƙara sabuwar ƙwarewar A2A

Duba A2A-SERVER.md § Ƙara Sabuwar Ƙwarewa. Ƙwarewa suna cikin src/lib/a2a/skills/ kuma ana yi musu rajista ta hanyar manajan ayyukan A2A.


11. Ka'idoji

  • Salon lamba: tazarar sarari 2, alamomin zance biyu, faɗin haruffa 100, semicolons, waƙafi na ƙarshe na es5 — Prettier ne ke tilasta su ta hanyar lint-staged.
  • Shigo da abubuwa: na waje → na ciki (@/, @omniroute/open-sse) → na dangi.
  • Sanya suna: fayiloli camelCase ko kebab-case, abubuwan haɗawa PascalCase, tsayayyun ƙimomi UPPER_SNAKE.
  • ESLint: no-eval, no-implied-eval, no-new-func = error a ko'ina; no-explicit-any = warn a open-sse/ da tests/, kuskure a sauran wurare.
  • TypeScript: strict: false (tsarin gado). Fi son bayyana nau'uka kai tsaye maimakon dogaro da hasashe a iyakokin da ke tsakanin modules.
  • Rumbun bayanai: kada a taɓa rubuta ɗanyen SQL a hanyoyi ko masu sarrafawa — a koyaushe a bi ta modules na src/lib/db/. Kada a taɓa yin shigo da barrel — yi amfani da takamaiman modules na src/lib/db/* kai tsaye.
  • Nau'in DB-entity (#3512): aikin da ke rubutawa ko karanta tsarin layin teburin DB ya kamata ya karɓa/mayar da interface na TS mai suna wanda ya yi daidai da ginshiƙan teburin 1:1, ba any ko nau'i marar suna da aka rubuta kai tsaye a wurin kiran ba. Sanya interface ɗin kusa da aikin (misali export interface UsageEntry a src/lib/usage/usageHistory.ts sama da saveRequestUsage), ka bar kowane field a matsayin na zaɓi/mai karɓar null idan marubuta daban-daban suna cika layin a hankali, kuma ka fi son unknown maimakon any ga field wanda tsarinsa ya bambanta tsakanin masu kira (a rubuta bayaninsa a kan field ɗin, misali UsageEntry.tokens yana karɓar duka ɗanyen usage mai tsarin mai samarwa da kuma tsarin da aka daidaita). Da zarar adadin any na fayil ya kai sifili ta wannan hanya, ƙara shi zuwa jerin izinin check:any-budget:t11 (scripts/check/check-t11-any-budget.mjs, maxAny: 0) don kada ya koma baya. Wannan ka'ida ce ta matakin farko — aikin tsaftace "babu any marar suna" mafi faɗi yana gudana a hankali a sauran codebase ɗin.
  • Kurakurai: yi amfani da try/catch tare da takamaiman nau'ukan kuskure, kuma yi log da mahallin pino. Kada a taɓa haɗiye kurakurai shiru a rafukan SSE; yi amfani da siginonin abort don tsaftacewa.
  • Tsaro: kada a taɓa amfani da eval() / new Function() / implied eval. Tantance dukkan bayanan shigarwa da Zod. Ɓoye bayanan shaidar shiga yayin ajiya (AES-256-GCM). Tabbatar jerin hanawa na src/shared/constants/upstreamHeaders.ts ya yi daidai da matakin sanitize/tantancewa.
  • Commits: Conventional Commits — feat(scope): subject. Scopes da aka yarda: db, sse, oauth, dashboard, api, cli, docker, ci, mcp, a2a, memory, skills.
  • Branches: prefixes feat/, fix/, refactor/, docs/, test/, chore/. Kada a taɓa yin commit kai tsaye zuwa main.
  • Husky: pre-commit yana gudanar da lint-staged + check:docs-sync + check:any-budget:t11; pre-push yana gudanar da check:any-budget:t11 + check:tracked-artifacts (matakan tantancewa masu sauri; ba ya haɗa da test:unit).

12. Tsauraran Dokoki (daga CLAUDE.md)

  1. Kada a taɓa commit na sirrika ko bayanan shaidar shiga.
  2. Kada a taɓa yin barrel-import — yi amfani da takamaiman modules na src/lib/db/* kai tsaye.
  3. Kada a taɓa amfani da eval() / new Function() / eval na ɓoye.
  4. Kada a taɓa yin commit kai tsaye zuwa main.
  5. Kada a taɓa rubuta ɗanyen SQL a cikin routes — koyaushe a bi ta modules na src/lib/db/.
  6. Kada a taɓa haɗiye kurakurai ba tare da sanarwa ba a cikin rafukan SSE.
  7. Koyaushe a tabbatar da ingancin inputs ta amfani da schemas na Zod.
  8. Koyaushe a haɗa tests yayin sauya production code.
  9. Dole coverage ya ci gaba da kasancewa ≥ 60% (statements, lines, functions, branches).

13. Duba Kuma