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
82 KiB
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-sse→open-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 nasrc/lib/db/*kai tsaye. 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/
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.
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ƙashinservices/,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.tsta amfani da mai aiwatarwa na bai-ɗaya wanda ya dace da OpenAI. Cikakken kundin masu samarwa (masu samarwa 355) yana cikinsrc/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 daTransformStream(hanyarresponses/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 cikinschemas/tools.ts+ manhajojin ƙwaƙwalwa, ƙwarewa, GitHub-skills, pool, gamification, plugin, Notion, Obsidian, local-corpus da compression — an ƙidaya haɗakarsu ta hanyarcountUniqueMcpTools). - 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.tsne 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 ma’ajiyar 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.json → bin:
omniroute→bin/omniroute.mjsomniroute-reset-password→bin/reset-password.mjs
7. tests/
| Kundin adireshi | Nau’i |
|---|---|
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 ƙa’idojin 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 ƙa’idojin 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)
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
- Yi rajista a
src/shared/constants/providers.ts(ana tantance shi da Zod lokacin lodawa). - Ƙara mai aiwatarwa a
open-sse/executors/idan ana buƙatar dabaru na musamman (faɗaɗaBaseExecutor). - Ƙara mai fassara a
open-sse/translator/idan ba ya amfani da tsarin OpenAI. - Idan yana amfani da OAuth, ƙara saituna a ƙarƙashin
src/lib/oauth/providers/dasrc/lib/oauth/services/. - Yi rajistar samfura a
open-sse/config/providerRegistry.ts(ko ma'ajiyar rajista ta takamaiman tsari a ƙarƙashinopen-sse/config/). - Rubuta gwaje-gwaje a ƙarƙashin
tests/unit/.
Ƙara sabuwar hanyar API
- Ƙirƙiri
src/app/api/your-route/route.ts. - Bi tsarin: CORS → tantance jikin buƙata da Zod → tabbatar da izini → miƙa aikin ga mai sarrafawa.
- Idan tsarin buƙatar sabo ne: ƙara tsarin Zod a
src/shared/validation/schemas.ts. - Idan na gudanarwa kawai ne: ƙara hanyar zuwa
src/shared/constants/publicApiRoutes.ts(jerin hanawa na ɓangaren API na jama'a). - Ƙara gwaje-gwaje a ƙarƙashin
tests/unit/. - Sabunta
docs/reference/API_REFERENCE.mddadocs/openapi.yaml.
Ƙara sabon tsarin DB
- Ƙirƙiri
src/lib/db/yourModule.tssannan ka shigo dagetDbInstance()daga./core.ts. - Fitar da ayyukan CRUD na fannin naka.
- 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. - 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 nalocalDb.ts). - Ƙara gwaje-gwaje a ƙarƙashin
tests/unit/.
Ƙara sabon kayan aikin MCP
- Ƙara ma'anar kayan aikin a ƙarƙashin
open-sse/mcp-server/tools/(ko faɗaɗaopen-sse/mcp-server/schemas/tools.ts). - Sanya iyakar izini da ta dace a
src/shared/constants/mcpScopes.ts. - Yi rajistar kayan aikin a
open-sse/mcp-server/server.ts. - Ƙara gwaje-gwaje a ƙarƙashin
open-sse/mcp-server/__tests__/. - 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 hanyarlint-staged. - Shigo da abubuwa: na waje → na ciki (
@/,@omniroute/open-sse) → na dangi. - Sanya suna: fayiloli
camelCasekokebab-case, abubuwan haɗawaPascalCase, tsayayyun ƙimomiUPPER_SNAKE. - ESLint:
no-eval,no-implied-eval,no-new-func=errora ko'ina;no-explicit-any=warnaopen-sse/datests/, 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 nasrc/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
anyko nau'i marar suna da aka rubuta kai tsaye a wurin kiran ba. Sanya interface ɗin kusa da aikin (misaliexport interface UsageEntryasrc/lib/usage/usageHistory.tssama dasaveRequestUsage), 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 sonunknownmaimakonanyga field wanda tsarinsa ya bambanta tsakanin masu kira (a rubuta bayaninsa a kan field ɗin, misaliUsageEntry.tokensyana karɓar duka ɗanyen usage mai tsarin mai samarwa da kuma tsarin da aka daidaita). Da zarar adadinanyna fayil ya kai sifili ta wannan hanya, ƙara shi zuwa jerin izinincheck: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 "babuanymarar 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 nasrc/shared/constants/upstreamHeaders.tsya 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 zuwamain. - Husky: pre-commit yana gudanar da
lint-staged+check:docs-sync+check:any-budget:t11; pre-push yana gudanar dacheck:any-budget:t11+check:tracked-artifacts(matakan tantancewa masu sauri; ba ya haɗa datest:unit).
12. Tsauraran Dokoki (daga CLAUDE.md)
- Kada a taɓa commit na sirrika ko bayanan shaidar shiga.
- Kada a taɓa yin barrel-import — yi amfani da takamaiman modules na
src/lib/db/*kai tsaye. - Kada a taɓa amfani da
eval()/new Function()/ eval na ɓoye. - Kada a taɓa yin commit kai tsaye zuwa
main. - Kada a taɓa rubuta ɗanyen SQL a cikin routes — koyaushe a bi ta modules na
src/lib/db/. - Kada a taɓa haɗiye kurakurai ba tare da sanarwa ba a cikin rafukan SSE.
- Koyaushe a tabbatar da ingancin inputs ta amfani da schemas na Zod.
- Koyaushe a haɗa tests yayin sauya production code.
- Dole coverage ya ci gaba da kasancewa ≥ 60% (statements, lines, functions, branches).
13. Duba Kuma
- ARCHITECTURE.md — tsarin gine-gine na matakin sama da nauyin da ke kan modules.
- API_REFERENCE.md — jagorar API na jama'a da na gudanarwa.
- FEATURES.md — jadawalin features da muhimman abubuwan versions.
- RESILIENCE_GUIDE.md — cikakken bayani kan circuit breaker, cooldown, da lockout.
- AUTO-COMBO.md — tsarin bayar da maki da dabarun Auto Combo.
- MCP-SERVER.md — cikakken kundin tools na MCP da transports.
- A2A-SERVER.md — ƙwarewar protocol na A2A da discovery.
- COMPRESSION_GUIDE.md — compression na RTK + Caveman.
- CLI-TOOLS.md — haɗe-haɗen CLI.
- ELECTRON_GUIDE.md (idan yana nan), DOCKER_GUIDE.md, FLY_IO_DEPLOYMENT_GUIDE.md, VM_DEPLOYMENT_GUIDE.md, TERMUX_GUIDE.md, PWA_GUIDE.md — wuraren deployment.
- TROUBLESHOOTING.md — matsalolin aiki da aka saba fuskanta.
- CONTRIBUTING.md — tsarin aikin masu ba da gudummawa.
- CLAUDE.md — dokokin repo na Claude Code (ainihin tushen yawancin ƙa'idodin da ke sama).
- AGENTS.md — cikakken jagorar tsarin gine-gine da agents ke amfani da shi.