1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
84 KiB
OmniRoute Codebase Documentation (Türkçe)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Sürüm: v3.8.51 Son güncelleme: 2026-06-28 Hedef kitle: OmniRoute'a katkıda bulunan veya onun üzerinde entegrasyonlar geliştiren mühendisler.
Üst düzey mimari diyagramlar ve her alt sistemin arkasındaki gerekçeler için ARCHITECTURE.md dosyasını okuyun. Belirli alt sistemler (Auto Combo, MCP sunucusu, A2A sunucusu, Skills, Memory, Cloud Agents, Resilience, Compression vb.) hakkında ayrıntılı bilgi için bu
docs/dizinindeki ilgili dosyalara bakın.
Bu dosya, yeni bir mühendisin dizin ağacında gezinebilmesi, çalışma zamanı katmanlarını anlayabilmesi ve yeni modüller oluşturmadan kodu nereye ekleyeceğini bilmesi için depoda bugün mevcut olanları açıklar.
1. Teknoloji Yığını
| Konu | Tercih |
|---|---|
| Web çatısı | Next.js 16 (App Router, bağımsız çıktı, global ara katman yok) |
| Dil | TypeScript 6.0+ — hedef ES2022, module: esnext, moduleResolution: bundler, strict: false |
| Çalışma ortamı | Node.js >=22.22.2 <23 veya >=24.0.0 <27 (engines + SUPPORTED_NODE_RANGE aracılığıyla zorunlu tutulur) |
| Veritabanı | better-sqlite3 aracılığıyla SQLite (tekil örnek, WAL günlükleme) |
| Masaüstü | Electron 41 + electron-builder 26.10 (electron/ altında ayrı çalışma alanı) |
| Testler | Node yerel test çalıştırıcısı (birim/entegrasyon), Vitest (MCP, autoCombo, önbellek), Playwright (e2e + protocols-e2e) |
| Derleme | scripts/build/build-next-isolated.mjs aracılığıyla bağımsız Next.js |
| Lint/biçim | ESLint düz yapılandırması + Prettier (Husky ön işleme kancası aracılığıyla lint-staged) |
| Modül sistemi | Her yerde ESM ("type": "module") |
| Çalışma alanları | npm çalışma alanı — open-sse tek alt çalışma alanıdır |
Yol takma adları (tsconfig.json):
@/*→src/*@omniroute/open-sse→open-sse/index.ts@omniroute/open-sse/*→open-sse/*
Varsayılan HTTP portu: 20128 (API ve pano aynı süreci paylaşır). Veri
dizini, varsayılan değeri ~/.omniroute/ olan DATA_DIR ortam değişkenidir.
2. Depo Düzeni
OmniRoute/
├── src/ Next.js uygulaması (App Router, kütüphaneler, alan, sunucu, paylaşılanlar)
├── open-sse/ Akış motoru çalışma alanı (@omniroute/open-sse)
├── electron/ Masaüstü sarmalayıcısı (Electron 41 ana süreç + preload)
├── bin/ CLI giriş noktaları (omniroute, reset-password)
├── tests/ Birim, entegrasyon, e2e, protocols-e2e, çevirici, güvenlik, fikstürler
├── scripts/ Derleme, eşitleme, denetim, geçiş ve çalışma zamanı yardımcı betikleri
├── docs/ Herkese açık belgeler (bu dizin)
├── public/ Statik varlıklar, PWA manifestosu, service worker
├── config/ Çalışma zamanı yapılandırma örnekleri
├── images/ Pazarlama/ekran görüntüsü varlıkları
├── _ideia/, _references/, _mono_repo/, _tasks/ Dahili taslak / planlama (dağıtıma dahil edilmez)
├── CLAUDE.md Claude Code için depo kuralları
├── AGENTS.md Ajanlar için daha ayrıntılı mimari referans
├── package.json v3.8.51, çalışma alanı kökü
└── tsconfig.json Yol takma adları + temel derleyici seçenekleri
3. src/ — Next.js Uygulaması
src/
├── app/ App Router sayfaları + API rotaları
├── lib/ Temel kütüphaneler (DB, kimlik doğrulama, OAuth, beceriler, bellek, …)
├── domain/ Saf alan katmanı (politika, geri dönüş, maliyet, kilitleme, …)
├── server/ Yalnızca sunucuya yönelik modüller (yetkilendirme, cors, kimlik doğrulama)
├── shared/ Türler, sabitler, doğrulama, sözleşmeler, yardımcılar (sınırlar arası güvenli)
├── mitm/ CLI entegrasyonu için ortadaki adam proxy yardımcıları
├── models/ Yerel model meta verileri / takma adlandırma
├── sse/ Hâlâ src/ altında bulunan eski SSE işleyicileri (open-sse/ altında değil)
├── store/ İstemci tarafı durum depoları
├── middleware/ Rota düzeyinde ara yazılım yardımcıları (Next.js global ara yazılımı değil)
├── scripts/ Uygulama kodu tarafından içe aktarılabilen depo içi betikler
├── types/ Ortam ve paylaşılan TS türleri
├── i18n/ Yerel ayar paketleri
├── instrumentation.ts Next.js enstrümantasyon kancası
├── instrumentation-node.ts
└── proxy.ts Üst düzey proxy önyükleme yardımcısı
3.1 src/app/ — App Router
App Router, hem kontrol paneli kullanıcı arayüzünü hem de genel/yönetim HTTP API'sini sunar. Global ara yazılım yoktur — müdahale rota bazında gerçekleştirilir.
src/app/ altındaki üst düzey segmentler:
| Yol | Amaç |
|---|---|
api/ |
Tüm HTTP API rotaları (aşağıdaki döküme bakın) |
a2a/ |
A2A JSON-RPC 2.0 uç noktası (POST /a2a) |
.well-known/agent.json/ |
A2A Agent Card keşif belgesi |
(dashboard)/ |
Kontrol paneli kullanıcı arayüzü (rota grubu, URL ön eki yok) |
auth/, login/, forgot-password/, callback/ |
Kimlik doğrulama akışları |
landing/ |
Pazarlama/açılış sayfası |
docs/ |
Gömülü API belgeleri görüntüleyicisi |
status/, maintenance/, offline/ |
Operasyonel sayfalar |
privacy/, terms/ |
Yasal sayfalar |
400/, 401/, 403/, 408/, 429/, 500/, 502/, 503/ |
Statik hata sayfaları |
error.tsx, global-error.tsx, not-found.tsx, forbidden/, loading.tsx |
Framework hata/yükleme sınırları |
layout.tsx, page.tsx, globals.css, manifest.ts |
Kök kabuk |
3.1.1 src/app/(dashboard)/dashboard/ — Kullanıcı arayüzü sayfaları
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; ayrıca kök page.tsx, HomePageClient.tsx,
BootstrapBanner.tsx.
3.1.2 src/app/api/ — Üst düzey API grupları
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/ Gömülü hizmet yönetimi (9router, cliproxy) — LOCAL_ONLY
├── upstream-proxy/
├── usage/
├── v1/ OpenAI uyumlu genel API
├── v1beta/ Gemini tarzı uyumluluk
├── version-manager/
└── webhooks/
3.1.2a src/app/api/services/ — Gömülü Hizmetlerin yönetimi
9Router ve CLIProxyAPI'yi yükleme, başlatma, durdurma ve izleme rotaları.
npm install komutunu çalıştırabildikleri ve alt süreçler oluşturabildikleri için tüm yollar
LOCAL_ONLY (yalnızca geri döngü, kesin kural #17) olarak sınıflandırılır.
src/app/api/services/
├── 9router/
│ ├── _lib.ts getOrInitSupervisor() yardımcısı
│ ├── install/route.ts POST — execFile aracılığıyla npm install
│ ├── start/route.ts POST — supervisor.start()
│ ├── stop/route.ts POST — supervisor.stop()
│ ├── restart/route.ts POST — supervisor.restart()
│ ├── update/route.ts POST — daha yeni sürüm için npm install
│ ├── rotate-key/route.ts POST — yeni API anahtarı oluştur + yeniden başlat
│ ├── status/route.ts GET — canlı durum + DB durumu + sürüm meta verileri
│ └── auto-start/route.ts POST — auto_start bayrağını aç/kapat
├── cliproxy/
│ ├── _lib.ts getOrInitSupervisor() yardımcısı
│ ├── 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 — daha yeni sürüm için npm install
│ ├── status/route.ts GET — canlı durum + DB durumu + sürüm meta verileri
│ └── auto-start/route.ts POST — auto_start bayrağını aç/kapat
└── [name]/
└── logs/route.ts GET — SSE günlük akışı (tüm servisler tarafından paylaşılır)
İlgili pano kullanıcı arayüzü:
src/app/(dashboard)/dashboard/providers/services/ — iki sekmeli sayfa (CLIProxyAPI + 9Router).
9Router gömülü kullanıcı arayüzü için ters proxy:
src/app/(dashboard)/dashboard/providers/services/[name]/embed/[[...path]]/route.ts
Ayrıntılı inceleme: docs/frameworks/EMBEDDED-SERVICES.md
3.1.3 src/app/api/v1/ — OpenAI uyumlu genel API
v1/
├── accounts/[id]/ hesap arama
├── agents/tasks/[id]/, agents/tasks/ A2A tarzı görev uç noktaları
├── api/ v1/api altında sunulan dahili API yardımcıları
├── audio/{speech, transcriptions}/ TTS + STT
├── batches/[id]/{cancel}, batches/ OpenAI Batches API
├── chat/completions/ Sohbet Tamamlamaları (ana uç nokta)
├── completions/ Eski metin tamamlamaları
├── embeddings/ Gömme vektörleri
├── files/[id]/, files/ Dosyalar API'si
├── _helpers/ Paylaşılan rota yardımcıları (genel URL yok)
├── images/{edits, generations}/ Görsel oluşturma + düzenleme
├── issues/ Sınıflandırma yardımcı uç noktaları
├── management/{proxies}/ v1 içindeki yönetim kapsamlı rotalar
├── messages/{count_tokens}/ Anthropic tarzı mesaj uyumluluğu
├── models/ Model listeleme (`route.ts`, `catalog.ts`)
├── moderations/ Moderasyon
├── music/ Müzik oluşturma
├── providers/[provider]/ Sağlayıcı başına işlemler
├── quotas/{check} Kota yoklamaları
├── registered-keys/ Kayıtlı anahtar yönetimi
├── rerank/ Yeniden sıralama
├── responses/[...path]/ OpenAI Responses API (tümünü yakalayan)
├── search/ Web araması
├── videos/ Video oluşturma
├── ws/ WebSocket köprüsü
└── route.ts Dizin işleyicisi
Her rota dosyası aynı kalıbı izler:
Rota → CORS ön kontrolü → Zod gövde doğrulaması → isteğe bağlı kimlik doğrulama
→ API anahtarı politikası uygulaması → işleyiciye devretme (open-sse)
v1beta/, Gemini tarzı uyumluluk yüzeyidir (aynı open-sse/handlers/
işlem hattına dönüştüren ince bir sarmalayıcı).
3.2 src/lib/ — Çekirdek kütüphaneler
Verileri, eşitlemeyi, OAuth'u, becerileri, belleği vb. her zaman bu modüller aracılığıyla içe aktarın. Tablo, gerçek dizinleri ve dikkat çeken üst düzey dosyaları gruplandırır.
| Modül | Amaç |
|---|---|
a2a/ |
A2A protokol sunucusu: taskManager.ts, streaming.ts, taskExecution.ts, routingLogger.ts, skills/ (6 beceri: maliyet analizi, sistem durumu raporu, sağlayıcı keşfi, kota yönetimi, akıllı yönlendirme, yetenekleri listeleme) |
acp/ |
Agent-Control-Protocol: index.ts, manager.ts, registry.ts |
api/ |
Dahili API yardımcıları: requireManagementAuth.ts, requireCliToolsAuth.ts, errorResponse.ts |
auth/ |
managementPassword.ts (parola sıfırlama / karma oluşturma) |
batches/ |
OpenAI Batches API hizmeti (service.ts) |
catalog/ |
OpenRouter katalog senkronizasyonu (openrouterCatalog.ts) |
cloudAgent/ |
Bulut ajanı kayıt sistemi: api.ts, baseAgent.ts, db.ts, index.ts, registry.ts, types.ts, agents/{codex, devin, jules}.ts |
combos/ |
Kombinasyon çözümleme yardımcıları |
compliance/ |
Denetim + sağlayıcı denetimi: index.ts, providerAudit.ts |
config/ |
Çalışma zamanı yapılandırma bağlantıları |
db/ |
SQLite etki alanı modülleri (bkz. §3.2.1) |
display/ |
API yanıtlarında kullanılan kullanıcı arayüzü/görüntüleme yardımcıları |
embeddings/ |
Gömme hizmeti kayıt sistemi |
env/ |
Ortam yükleme + inceleme |
evals/ |
Değerlendirme çalışma zamanı |
guardrails/ |
piiMasker.ts, promptInjection.ts, visionBridge.ts, visionBridgeHelpers.ts, registry.ts, base.ts |
jobs/ |
Arka plan işleri (autoUpdate.ts, …) |
memory/ |
Kalıcı bellek: 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/içe aktarma sağlayıcı modülleri (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; ayrıca services/, utils/ ve constants/oauth.ts |
plugins/ |
Eklenti yükleyici (index.ts) |
promptCache/ |
prefixAnalyzer.ts, index.ts |
providerModels/ |
Yönetilen model yaşam döngüsü: modelDiscovery.ts, managedModelImport.ts, managedAvailableModels.ts, cursorAgent.ts |
providers/ |
Sağlayıcı yardımcıları: catalog.ts, validation.ts, imageValidation.ts, claudeExtraUsage.ts, codexConnectionDefaults.ts, codexFastTier.ts, webCookieAuth.ts, managedAvailableModels.ts, requestDefaults.ts |
resilience/ |
settings.ts — devre kesici, bekleme süresi ve kilitleme ayarları |
runtime/ |
Çalışma zamanı özellik algılama |
search/ |
executeWebSearch.ts |
services/ |
Gömülü hizmetler çerçevesi: ServiceSupervisor.ts (işlem kilidi, halka arabellek ve sistem durumu denetleyicisi içeren genel alt süreç denetleyicisi), bootstrap.ts (süreç düzeyinde kayıt ve otomatik başlatma), registry.ts (araç → denetleyici eşlemesi), apiKey.ts (AES-256-GCM anahtar deposu), modelSync.ts (düzenli model senkronizasyonu), ringBuffer.ts (5 MB dairesel günlük arabelleği), healthCheck.ts (HTTP sistem durumu yoklaması), types.ts, embedWsProxy.ts (WebSocket proxy'si), installers/{ninerouter,cliproxy}.ts. Bkz. docs/frameworks/EMBEDDED-SERVICES.md |
agentSkills/ |
Ajan Becerileri kataloğu + oluşturucu: catalog.ts (getCatalog/getSkillById/filterCatalog/computeCoverage), generator.ts (generateAgentSkills → skills/{id}/SKILL.md dosyasına yazar), openapiParser.ts (OpenAPI belirtiminden REST uç noktalarını çıkarır), cliRegistryParser.ts (bin/cli-registry'den CLI alt komutlarını çıkarır), schemas.ts (Zod: AgentSkillSchema, SkillCoverageSchema, ListQuerySchema, GenerateBodySchema), types.ts (AgentSkill, SkillCoverage, SkillMarkdown, GeneratorReport). REST rotaları (/api/agent-skills/*), MCP araçları (omniroute_agent_skills_*) ve A2A becerisi list-capabilities tarafından kullanılır. Bkz. AGENT-SKILLS.md. |
skills/ |
Beceri çerçevesi: 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; ayrıca builtin/browser.ts |
spend/ |
batchWriter.ts (arkadan yazma arabelleği) |
sync/ |
bundle.ts, tokens.ts (Bulut Senkronizasyonu) |
system/ |
Sistem düzeyinde yardımcılar |
translator/ |
Üst düzey çevirmen bağlantıları (open-sse/translator/ bileşenine devreder) |
usage/ |
Kullanım muhasebesi: costCalculator.ts, tokenAccounting.ts, usageHistory.ts, aggregateHistory.ts, usageStats.ts, callLogs.ts, callLogArtifacts.ts, fetcher.ts, providerLimits.ts, migrations.ts |
versionManager/ |
Otomatik güncelleme + sürüm bildirimi |
ws/ |
WebSocket köprüsü |
zed-oauth/ |
Zed düzenleyicisi OAuth akışı |
src/lib/ içindeki üst düzey dosyalar:
- Eski
localDb.tsbarrel dosyası kaldırıldı — tüketiciler belirlisrc/lib/db/*modüllerini doğrudan içe aktarır. 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/
Singleton SQLite veritabanı (core.ts içindeki getDbInstance(), WAL günlükleme).
Rotalarda veya işleyicilerde asla ham SQL yazmayın — bu modüller üzerinden işlem yapın.
Kaynak: diagrams/db-schema-overview.mmd
Etki alanı modülleri (her biri bir veya daha fazla tablonun sahibidir): 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/, sürümlendirilmiş 168 .sql dosyası (idempotent ve işlemsel) barındırır ve
başlatma sırasında migrationRunner.ts tarafından çalıştırılır.
Geçişler genelinde oluşturulan tablolar (toplam 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 (ayrıca bellek araması için FTS5 sanal tabloları).
3.3 src/domain/ — Etki alanı katmanı
Saf iş mantığı; G/Ç içermez. Rotalar ve işleyiciler tarafından içe aktarılır.
| Dosya | Amaç |
|---|---|
policyEngine.ts |
Üst düzey politika çözümleyici |
fallbackPolicy.ts |
Geri dönüş karar ağacı |
costRules.ts |
Maliyet hesaplama kuralları |
lockoutPolicy.ts |
Model kilitleme kararları |
tagRouter.ts |
Etiket tabanlı yönlendirme |
comboResolver.ts |
İstekten → hedef listesine kombinasyon çözümleme |
connectionModelRules.ts |
Bağlantı başına model filtreleri |
modelAvailability.ts |
Model kullanılabilirlik denetimi |
degradation.ts |
Düşürülmüş mod geçişleri |
providerExpiration.ts |
Süresi dolmuş hesap/anahtar algılama |
quotaCache.ts |
Önbelleğe alınmış kota kararları |
responses.ts, omnirouteResponseMeta.ts |
Yanıt biçimi yardımcıları |
configAudit.ts |
Yapılandırma değişikliği denetimi |
assessment/ |
Model değerlendirmesi (RFC'ye göre, kısmen uygulandı) |
types.ts |
Paylaşılan etki alanı türleri |
3.4 src/server/ — Yalnızca sunucu
İstemci bileşenlerinden içe aktarılamaz.
server/
├── auth/loginGuard.ts
├── authz/
│ ├── classify.ts Rotaları herkese açık ve yönetim olarak sınıflandırır
│ ├── assertAuth.ts Doğrulama yardımcısı
│ ├── context.ts İstek başına yetkilendirme bağlamı
│ ├── headers.ts
│ ├── pipeline.ts Yetkilendirme işlem hattı
│ ├── policies/ Somut politikalar
│ └── types.ts
└── cors/origins.ts CORS kaynak izin listesi
3.5 src/shared/ — Paylaşılması güvenli
Odaklanmış alt dizinlere ayrılmıştır:
constants/—providers.ts(Zod ile doğrulanan sağlayıcı kataloğu),models.ts,modelSpecs.ts,modelCompat.ts,pricing.ts,cliTools.ts,cliCompatProviders.ts,routingStrategies.ts,comboConfigMode.ts,headers.ts,upstreamHeaders.ts(engelleme listesi),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 şeması),compressionConfigSchemas.ts,providerSchema.ts,settingsSchemas.ts,helpers.ts.contracts/— npm'de yayımlanan genel API sözleşmeleri.types/— paylaşılan TS türleri.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; ayrıcaservices/,network/,middleware/,schemas/,hooks/,components/altında pano hook'ları/bileşenleri.
4. open-sse/ — Akış motoru çalışma alanı
@omniroute/open-sse olarak yayımlanan ayrı bir npm çalışma alanı. İstek
işleme, yürütücüler, çeviriciler, servisler, dönüştürücü ve MCP sunucusundan sorumludur.
open-sse/
├── index.ts Genel dışa aktarımlar
├── package.json Çalışma alanı manifesti
├── tsconfig.json
├── types.d.ts
├── config/ Sağlayıcı kayıtları, üstbilgi profilleri, kimlik, …
├── handlers/ İstek işleyicileri (sohbet, gömmeler, ses, görüntü, …)
├── executors/ Sağlayıcıya özgü 108 HTTP yürütücüsü
├── translator/ Biçim dönüştürme (OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro)
├── transformer/ Responses API ↔ Chat Completions akış dönüştürücüsü
├── services/ 80'den fazla servis modülü (kombinasyonlar, geri dönüş, kotalar, kimlik, …)
├── utils/ Akış yardımcıları, TLS istemcisi, AWS SigV4, proxy fetch, …
└── mcp-server/ MCP sunucusu (3 taşıma yöntemi, 33 kapsam, 110 araç)
4.1 open-sse/handlers/
| İşleyici | Amaç |
|---|---|
chatCore.ts |
Ana sohbet işlem hattı (önbellek, hız sınırı, kombinasyon yönlendirme, yürütücü sevki) |
responsesHandler.ts |
OpenAI Responses API giriş noktası |
embeddings.ts |
Gömmeler |
imageGeneration.ts |
Görüntü oluşturma |
audioSpeech.ts |
Metinden konuşmaya |
audioTranscription.ts |
Konuşmadan metne |
videoGeneration.ts |
Video oluşturma |
musicGeneration.ts |
Müzik oluşturma |
rerank.ts |
Yeniden sıralama |
moderations.ts |
Moderasyon |
search.ts |
Web araması |
sseParser.ts |
SSE olay ayrıştırıcısı |
usageExtractor.ts |
Üst akışlardan token sayılarını çıkarır |
responseSanitizer.ts |
Sağlayıcıya özgü paraziti kaldırır |
responseTranslator.ts |
Sağlayıcı yanıtı ile çevirici katmanı arasındaki bağlantı |
4.2 open-sse/executors/
Her biri BaseExecutor (base.ts) sınıfını genişleten 108 sağlayıcı yürütücüsü:
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; ayrıca claudeIdentity.ts
(paylaşılan kimlik yardımcısı) ve index.ts (kayıt).
Not: burada listelenmeyen sağlayıcılara, genel OpenAI uyumlu yürütücü kullanılarak
default.tstarafından hizmet verilir. Tam sağlayıcı kataloğu (355 sağlayıcı)src/shared/constants/providers.tsiçinde yer alır.
4.3 open-sse/translator/
Merkez-uç çevirisi (merkez OpenAI'dır).
- 9 istek çeviricisi (
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 yanıt çeviricisi (
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 yardımcı (
translator/helpers/):claudeHelper,geminiHelper,geminiToolsSanitizer,maxTokensHelper,openaiHelper,responsesApiHelper,schemaCoercion,toolCallHelperve yardımcı testleri. - Görüntü yardımcıları (
translator/image/sizeMapper.ts). - Üst düzey:
bootstrap.ts,formats.ts,registry.ts,index.ts.
4.4 open-sse/transformer/
responsesTransformer.ts—TransformStreamtabanlı Responses API ↔ Chat Completions dönüştürücüsü (responses/rotasının tümünü yakalayan işleyicisi tarafından kullanılır).
4.5 open-sse/services/
Öne çıkanlar (tam liste open-sse/services/ altında):
| Konu | Dosyalar |
|---|---|
| Combo yönlendirme | combo.ts (19 strateji), comboConfig.ts, comboMetrics.ts, comboManifestMetrics.ts, comboAgentMiddleware.ts |
| Auto Combo motoru | 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 |
| Dayanıklılık | accountFallback.ts (bekleme süresi + kilitleme), errorClassifier.ts, emergencyFallback.ts, rateLimitManager.ts, rateLimitSemaphore.ts, accountSemaphore.ts, accountSelector.ts |
| Kotalar | quotaMonitor.ts, quotaPreflight.ts, bailianQuotaFetcher.ts, codexQuotaFetcher.ts, deepseekQuotaFetcher.ts, openrouterQuotaFetcher.ts, openrouterFreeWindow.ts, crofUsageFetcher.ts, antigravityCredits.ts |
| Önbelleğe alma | reasoningCache.ts, searchCache.ts, signatureCache.ts, requestDedup.ts |
| Yönlendirme zekâsı | intentClassifier.ts, taskAwareRouter.ts, backgroundTaskDetector.ts, volumeDetector.ts, wildcardRouter.ts, workflowFSM.ts, specificityDetector.ts, specificityRules.ts, specificityTypes.ts |
| Model işleme | modelCapabilities.ts, modelDeprecation.ts, modelFamilyFallback.ts, modelStrip.ts, model.ts, provider.ts, providerRequestDefaults.ts, providerCostData.ts, payloadRules.ts |
| Sıkıştırma | compression/ — eksiksiz sıkıştırma motoru bağlantıları |
| Token + oturum | tokenRefresh.ts, sessionManager.ts, apiKeyRotator.ts, contextManager.ts, contextHandoff.ts, systemPrompt.ts, roleNormalizer.ts, responsesInputSanitizer.ts, toolSchemaSanitizer.ts, toolLimitDetector.ts, thinkingBudget.ts |
| Katman / manifest | tierResolver.ts, tierConfig.ts, tierDefaults.json, tierTypes.ts, manifestAdapter.ts |
| IP / ağ | ipFilter.ts, webSearchFallback.ts |
| Toplu işlemler | batchProcessor.ts |
| Kullanım | usage.ts |
4.6 open-sse/mcp-server/
server.tsiçinde bağlanmış 110 benzersiz araç (schemas/tools.tsiçinde 45 kanonik araç + bellek, beceriler, GitHub becerileri, havuz, oyunlaştırma, eklenti, Notion, Obsidian, yerel derlem ve sıkıştırma modülleri — birleşimcountUniqueMcpToolstarafından sayılır).- 3 aktarım yöntemi: stdio, HTTP Streamable, SSE.
- Çalışma zamanında zorunlu kılınan 33 kapsam — temel liste
src/shared/constants/mcpScopes.tsiçindedir; tam küme, her araç modülünün bildirdiği kapsamların birleşimidir. - Denetim tablosu:
mcp_tool_audit(audit.tstarafından doldurulur). - Dosyalar:
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, ayrıca__tests__/altındaki testler. - Tam araç kataloğu için MCP-SERVER.md belgesine bakın.
4.7 open-sse/config/
Sağlayıcı kayıtları (providerRegistry.ts, providerModels.ts,
providerHeaderProfiles.ts), biçim başına model kayıtları (audioRegistry.ts,
embeddingRegistry.ts, imageRegistry.ts, moderationRegistry.ts,
musicRegistry.ts, rerankRegistry.ts, searchRegistry.ts, videoRegistry.ts),
kimlik yardımcıları (codexIdentity.ts, codexInstructions.ts,
anthropicHeaders.ts, antigravityUpstream.ts, antigravityModelAliases.ts,
cliFingerprints.ts, toolCloaking.ts, defaultThinkingSignature.ts),
kimlik bilgisi yardımcıları (credentialLoader.ts, codexClient.ts) ve bulut
bağdaştırıcıları (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/
Akış temelleri ve sağlayıcı yardımcıları: 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/ — Masaüstü sarmalayıcısı
electron/
├── main.js Electron ana süreci
├── preload.js Önyükleme köprüsü (contextIsolation etkin)
├── types.d.ts
├── package.json electron-builder yapılandırması, sürüm 3.8.51
├── README.md
├── assets/ Derleme kaynakları (simgeler, yetkilendirmeler, …)
├── node_modules/ Ayrılmış node_modules (better-sqlite3, electron-updater)
└── dist-electron/ Derleme çıktısı (depoya işlenmez)
Çalışma alanı kökünde beş npm betiği bulunur: electron:dev, electron:build,
electron:build:{win,mac,linux}, electron:smoke:packaged. Otomatik güncelleme,
GitHub sürüm akışına yönlendirilen electron-updater aracılığıyla gerçekleştirilir.
6. bin/ — CLI
bin/
├── omniroute.mjs Ana CLI giriş noktası (Node ESM)
├── reset-password.mjs Yönetim parolasını CLI üzerinden sıfırlar
├── mcp-server.mjs MCP sunucusu başlatıcısı (stdio)
├── nodeRuntimeSupport.mjs Node sürümü koruması
└── cli/
├── program.mjs Commander program oluşturucusu
├── runtime.mjs withRuntime yardımcısı (önce sunucu/veritabanı geri dönüşü)
├── output.mjs Çıktı biçimlendiricileri (json/jsonl/table/csv)
├── i18n.mjs Yerel ayar destekli t() yardımcısı
├── api.mjs API fetch yardımcısı
├── data-dir.mjs
├── encryption.mjs
├── sqlite.mjs
└── commands/
├── registry.mjs Komut kaydı
├── setup.mjs
├── doctor.mjs
├── providers.mjs
└── ... (komut/grup başına bir dosya)
package.json → bin içinde iki çalıştırılabilir dosya sunulur:
omniroute→bin/omniroute.mjsomniroute-reset-password→bin/reset-password.mjs
7. tests/
| Dizin | Tür |
|---|---|
tests/unit/ |
Node yerel test çalıştırıcısı aracılığıyla birim testleri (1821 dosya ve api/, auth/, authz/ alt dizinleri) |
tests/integration/ |
Modüller arası + veritabanı durumu testleri |
tests/e2e/ |
Playwright kullanıcı arayüzü testleri |
tests/e2e/protocol-clients.test.ts |
MCP/A2A protokolü uçtan uca testleri |
tests/translator/ |
Çeviriciye özgü testler |
tests/security/ |
Güvenlik regresyonları |
tests/load/ |
Yük / stres testleri |
tests/golden-set/ |
Çevirici regresyonları için referans çıktılar |
tests/helpers/, tests/fixtures/, tests/manual/ |
Destek |
Yaygın komutlar:
| Komut | Çalıştırdığı işlem |
|---|---|
npm run test:unit |
Node test çalıştırıcısı aracılığıyla tüm tests/unit/*.test.ts dosyaları (eşzamanlılık 10) |
npm run test:vitest |
Vitest test paketi (MCP, autoCombo, önbellek) |
npm run test:e2e |
Playwright kullanıcı arayüzü test paketi |
npm run test:protocols:e2e |
MCP + A2A protokolü uçtan uca testleri |
npm run test:coverage |
Kapsama eşiği (satırlar/deyimler/fonksiyonlar/dallar ≥%60) |
node --import tsx/esm --test tests/unit/<file>.test.ts |
Tek dosya çalıştırması |
8. scripts/
Amaca göre 6 alt klasör halinde düzenlenmiştir.
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. İstek İşlem Hattı (Özet)
Kaynak: diagrams/request-pipeline.mmd
İstemci isteği
→ /v1/chat/completions (route.ts)
CORS ön kontrolü
Zod doğrulaması (shared/validation/schemas.ts içindeki chatCompletionsSchema)
Kimlik doğrulama (extractApiKey + isValidApiKey VEYA requireManagementAuth)
İlke motoru (src/server/authz/pipeline.ts)
Koruyucu önlemler (PII maskeleyici, istem enjeksiyonu, görüntü köprüsü)
→ handleChatCore() (open-sse/handlers/chatCore.ts)
Önbellek kontrolü (anlamsal + okuma önbelleği)
Hız sınırı (rateLimitManager, accountSemaphore)
Birleşik yönlendirme (model bir kombinasyona çözümlenirse)
comboResolver → hedef başına döngü → handleSingleModel()
translateRequest() (open-sse/translator/request/*)
getExecutor(providerId).execute() (open-sse/executors/*)
üst kaynağı getir → accountFallback aracılığıyla yeniden deneme/üstel bekleme
translateResponse() (open-sse/translator/response/*)
SSE akışı VEYA JSON yanıtı
Responses API ise: open-sse/transformer/responsesTransformer.ts aracılığıyla TransformStream
→ Uyumluluk denetimi (src/lib/compliance/)
→ İstemciye yanıt
Dayanıklılık çalışma zamanı durumu (üç mekanizma)
| Mekanizma | Kapsam | Konum |
|---|---|---|
| Sağlayıcı devre kesicisi | Sağlayıcının tamamı | src/shared/utils/circuitBreaker.ts, domain_circuit_breakers içinde kalıcı olarak saklanır |
| Bağlantı bekleme süresi | Bir hesap/anahtar | src/sse/services/auth.ts içindeki markAccountUnavailable(); accountFallback.checkFallbackError() tarafından kullanılır |
| Model kilitleme | Sağlayıcı + bağlantı + model | open-sse/services/accountFallback.ts, domain_lockout_state içinde kalıcı olarak saklanır |
Bkz. RESILIENCE_GUIDE.md ve CLAUDE.md içindeki özel bölüm.
10. Nasıl Katkıda Bulunulur
Yeni bir sağlayıcı ekleme
src/shared/constants/providers.tsiçinde kaydedin (yükleme sırasında Zod ile doğrulanır).- Özel mantık gerekiyorsa
open-sse/executors/içine bir yürütücü ekleyin (BaseExecutorsınıfını genişletin). - OpenAI biçimini kullanmıyorsa
open-sse/translator/içine bir çevirici ekleyin. - OAuth tabanlıysa
src/lib/oauth/providers/vesrc/lib/oauth/services/altına yapılandırma ekleyin. - Modelleri
open-sse/config/providerRegistry.tsiçinde (veyaopen-sse/config/altındaki biçime özgü kayıt defterinde) kaydedin. - Testleri
tests/unit/altında yazın.
Yeni bir API rotası ekleme
src/app/api/your-route/route.tsdosyasını oluşturun.- Şu düzeni izleyin: CORS → Zod gövde doğrulaması → kimlik doğrulama → işleyiciye devretme.
- Yeni bir istek yapısı varsa Zod şemasını
src/shared/validation/schemas.tsiçine ekleyin. - Yalnızca yönetim amaçlıysa yolu
src/shared/constants/publicApiRoutes.tsiçine ekleyin (genel API yüzeyi için engelleme listesi). - Testleri
tests/unit/altına ekleyin. docs/reference/API_REFERENCE.mdvedocs/openapi.yamldosyalarını güncelleyin.
Yeni bir DB modülü ekleme
src/lib/db/yourModule.tsdosyasını oluşturun ve./core.tsiçindengetDbInstance()işlevini içe aktarın.- Alanınız için CRUD işlevlerini dışa aktarın.
- Yeni tablolar varsa
src/lib/db/migrations/altına sıralı olarak numaralandırılmış, idempotent ve işlemsel bir migrasyon ekleyin. - İçe aktaranlar
@/lib/db/yourModuleüzerinden doğrudan içe aktarma kullanır (barrel yoktur — eskilocalDb.tsyeniden dışa aktarma katmanı kaldırılmıştır). - Testleri
tests/unit/altına ekleyin.
Yeni bir MCP aracı ekleme
- Araç tanımını
open-sse/mcp-server/tools/altına ekleyin (veyaopen-sse/mcp-server/schemas/tools.tsdosyasını genişletin). src/shared/constants/mcpScopes.tsiçinde uygun kapsamları atayın.- Aracı
open-sse/mcp-server/server.tsiçinde kaydedin. - Testleri
open-sse/mcp-server/__tests__/altına ekleyin. - MCP-SERVER.md dosyasını güncelleyin.
Yeni bir A2A becerisi ekleme
Bkz. A2A-SERVER.md § Yeni Bir Beceri Ekleme. Beceriler
src/lib/a2a/skills/ altında bulunur ve A2A görev yöneticisi aracılığıyla kaydedilir.
11. Kurallar
- Kod stili: 2 boşluklu girinti, çift tırnak, 100 karakter genişliği, noktalı virgüller,
es5son virgülleri — Prettier tarafındanlint-stagedaracılığıyla uygulanır. - İçe aktarmalar: harici → dahili (
@/,@omniroute/open-sse) → göreli. - Adlandırma: dosyalar
camelCaseveyakebab-case, bileşenlerPascalCase, sabitlerUPPER_SNAKE. - ESLint:
no-eval,no-implied-eval,no-new-func= her yerdeerror;no-explicit-any=open-sse/vetests/içindewarn, diğer yerlerdeerror. - TypeScript:
strict: false(eski yaklaşım). Modüller arası sınırlarda çıkarım yerine açık türleri tercih edin. - Veritabanı: rotalarda veya işleyicilerde asla ham SQL yazmayın — her zaman
src/lib/db/modüllerini kullanın. Asla barrel içe aktarması kullanmayın — belirlisrc/lib/db/*modüllerini doğrudan kullanın. - DB varlık türleri (#3512): Bir DB tablosunun satır yapısını yazan veya
okuyan bir işlev, çağrı noktasında
anyya da satır içi anonim bir tür yerine, o tablonun sütunlarını bire bir yansıtan adlandırılmış bir TS arayüzünü parametre olarak almalı veya döndürmelidir. Arayüzü işlevin yanına yerleştirin (ör.saveRequestUsageüzerinde,src/lib/usage/usageHistory.tsiçindeexport interface UsageEntry); farklı yazıcılar satırı kademeli olarak dolduruyorsa tek tek alanları isteğe bağlı/nullable tutun ve yapısı çağıranlara göre değişen bir alan içinanyyerineunknowntercih edin (alan üzerinde belgelendiği şekilde; ör.UsageEntry.tokenshem sağlayıcı biçimindeki ham kullanımı hem de normalleştirilmiş biçimi kabul eder). Bir dosyanınanysayısı bu yöntemle sıfıra ulaştığında, gerilememesi için dosyayıcheck:any-budget:t11izin listesine (scripts/check/check-t11-any-budget.mjs,maxAny: 0) ekleyin. Bu, ilk dilime yönelik bir kuraldır — daha geniş kapsamlı "anonimanyyok" temizliği kod tabanının geri kalanında yinelemeli olarak yürütülür. - Hatalar: Belirli hata türleriyle try/catch kullanın, pino bağlamıyla günlükleyin. SSE akışlarında hataları asla sessizce yutmayın; temizlik için iptal sinyallerini kullanın.
- Güvenlik: Asla
eval()/new Function()/ örtük eval kullanmayın. Tüm girdileri Zod ile doğrulayın. Kimlik bilgilerini bekleme hâlindeyken şifreleyin (AES-256-GCM).src/shared/constants/upstreamHeaders.tsengelleme listesini temizleme/doğrulama katmanıyla uyumlu tutun. - Commit'ler: Conventional Commits —
feat(scope): subject. İzin verilen kapsamlar:db,sse,oauth,dashboard,api,cli,docker,ci,mcp,a2a,memory,skills. - Dallar:
feat/,fix/,refactor/,docs/,test/,chore/önekleri. Asla doğrudanmaindalına commit göndermeyin. - Husky: pre-commit,
lint-staged+check:docs-sync+check:any-budget:t11çalıştırır; pre-push,check:any-budget:t11+check:tracked-artifactsçalıştırır (hızlı denetimler;test:unithariç).
12. Kesin Kurallar (CLAUDE.md'den)
- Gizli bilgileri veya kimlik bilgilerini asla commit etmeyin.
- Asla barrel import kullanmayın — doğrudan belirli
src/lib/db/*modüllerini kullanın. eval()/new Function()/ örtük eval kullanımından kaçının.- Asla doğrudan
maindalına commit etmeyin. - Route'larda asla ham SQL yazmayın — her zaman
src/lib/db/modüllerini kullanın. - SSE akışlarındaki hataları asla sessizce yutmayın.
- Girdileri her zaman Zod şemalarıyla doğrulayın.
- Üretim kodunu değiştirirken her zaman testleri de ekleyin.
- Kapsama oranı ≥ %60 (ifadeler, satırlar, fonksiyonlar, dallar) olarak kalmalıdır.
13. Ayrıca Bakınız
- ARCHITECTURE.md — üst düzey mimari ve modül sorumlulukları.
- API_REFERENCE.md — genel + yönetim API'si referansı.
- FEATURES.md — özellik matrisi ve sürümde öne çıkanlar.
- RESILIENCE_GUIDE.md — devre kesici, bekleme süresi ve kilitleme hakkında ayrıntılı inceleme.
- AUTO-COMBO.md — Auto Combo puanlaması ve stratejileri.
- MCP-SERVER.md — eksiksiz MCP araç kataloğu + aktarımlar.
- A2A-SERVER.md — A2A protokolü becerileri ve keşfi.
- COMPRESSION_GUIDE.md — RTK + Caveman sıkıştırması.
- CLI-TOOLS.md — CLI entegrasyonları.
- ELECTRON_GUIDE.md (varsa), DOCKER_GUIDE.md, FLY_IO_DEPLOYMENT_GUIDE.md, VM_DEPLOYMENT_GUIDE.md, TERMUX_GUIDE.md, PWA_GUIDE.md — dağıtım hedefleri.
- TROUBLESHOOTING.md — yaygın operasyonel sorunlar.
- CONTRIBUTING.md — katkıda bulunanların iş akışı.
- CLAUDE.md — Claude Code için depo kuralları (yukarıdaki kuralların çoğunun doğruluk kaynağı).
- AGENTS.md — aracılar tarafından kullanılan daha ayrıntılı mimari referansı.