Files
OmniRoute/docs/i18n/tr/docs/architecture/CODEBASE_DOCUMENTATION.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors.

⚠️ base-red inherited: #12732
2026-09-17 02:55:31 -03:00

84 KiB
Raw Blame History

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ıı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-sseopen-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.ts barrel dosyası kaldırıldı — tüketiciler belirli src/lib/db/* modüllerini doğrudan içe aktarır.
  • proxyHealth.ts, proxyLogger.ts, tokenHealthCheck.ts, localHealthCheck.ts
  • apiBridgeServer.ts, cacheLayer.ts, semanticCache.ts, settingsCache.ts
  • cloudSync.ts, initCloudSync.ts
  • cloudflaredTunnel.ts, ngrokTunnel.ts, tailscaleTunnel.ts
  • consoleInterceptor.ts, container.ts, gracefulShutdown.ts, idempotencyLayer.ts
  • ipUtils.ts, logEnv.ts, logPayloads.ts, logRotation.ts
  • modelAliasSeed.ts, modelCapabilities.ts, modelMetadataRegistry.ts, modelsDevSync.ts
  • piiSanitizer.ts, pricingSync.ts
  • apiKeyExposure.ts, cacheControlSettings.ts, dataPaths.ts, toolPolicy.ts
  • translatorEvents.ts, usageDb.ts, usageAnalytics.ts, webhookDispatcher.ts

3.2.1 src/lib/db/

Singleton SQLite 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.

Veritabanı şemasına genel bakış (seçili temel tablolar)

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ıca services/, 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.ts tarafından hizmet verilir. Tam sağlayıcı kataloğu (355 sağlayıcı) src/shared/constants/providers.ts iç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, toolCallHelper ve 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.tsTransformStream tabanlı 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.ts içinde bağlanmış 110 benzersiz araç (schemas/tools.ts iç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şim countUniqueMcpTools tarafı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.ts içindedir; tam küme, her araç modülünün bildirdiği kapsamların birleşimidir.
  • Denetim tablosu: mcp_tool_audit (audit.ts tarafı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.jsonbin içinde iki çalıştırılabilir dosya sunulur:

  • omniroutebin/omniroute.mjs
  • omniroute-reset-passwordbin/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)

İstek işlem hattı (/v1/chat/completions)

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

  1. src/shared/constants/providers.ts içinde kaydedin (yükleme sırasında Zod ile doğrulanır).
  2. Özel mantık gerekiyorsa open-sse/executors/ içine bir yürütücü ekleyin (BaseExecutor sınıfını genişletin).
  3. OpenAI biçimini kullanmıyorsa open-sse/translator/ içine bir çevirici ekleyin.
  4. OAuth tabanlıysa src/lib/oauth/providers/ ve src/lib/oauth/services/ altına yapılandırma ekleyin.
  5. Modelleri open-sse/config/providerRegistry.ts içinde (veya open-sse/config/ altındaki biçime özgü kayıt defterinde) kaydedin.
  6. Testleri tests/unit/ altında yazın.

Yeni bir API rotası ekleme

  1. src/app/api/your-route/route.ts dosyasını oluşturun.
  2. Şu düzeni izleyin: CORS → Zod gövde doğrulaması → kimlik doğrulama → işleyiciye devretme.
  3. Yeni bir istek yapısı varsa Zod şemasını src/shared/validation/schemas.ts içine ekleyin.
  4. Yalnızca yönetim amaçlıysa yolu src/shared/constants/publicApiRoutes.ts içine ekleyin (genel API yüzeyi için engelleme listesi).
  5. Testleri tests/unit/ altına ekleyin.
  6. docs/reference/API_REFERENCE.md ve docs/openapi.yaml dosyalarını güncelleyin.

Yeni bir DB modülü ekleme

  1. src/lib/db/yourModule.ts dosyasını oluşturun ve ./core.ts içinden getDbInstance() işlevini içe aktarın.
  2. Alanınız için CRUD işlevlerini dışa aktarın.
  3. Yeni tablolar varsa src/lib/db/migrations/ altına sıralı olarak numaralandırılmış, idempotent ve işlemsel bir migrasyon ekleyin.
  4. İçe aktaranlar @/lib/db/yourModule üzerinden doğrudan içe aktarma kullanır (barrel yoktur — eski localDb.ts yeniden dışa aktarma katmanı kaldırılmıştır).
  5. Testleri tests/unit/ altına ekleyin.

Yeni bir MCP aracı ekleme

  1. Araç tanımını open-sse/mcp-server/tools/ altına ekleyin (veya open-sse/mcp-server/schemas/tools.ts dosyasını genişletin).
  2. src/shared/constants/mcpScopes.ts içinde uygun kapsamları atayın.
  3. Aracı open-sse/mcp-server/server.ts içinde kaydedin.
  4. Testleri open-sse/mcp-server/__tests__/ altına ekleyin.
  5. 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, es5 son virgülleri — Prettier tarafından lint-staged aracılığıyla uygulanır.
  • İçe aktarmalar: harici → dahili (@/, @omniroute/open-sse) → göreli.
  • Adlandırma: dosyalar camelCase veya kebab-case, bileşenler PascalCase, sabitler UPPER_SNAKE.
  • ESLint: no-eval, no-implied-eval, no-new-func = her yerde error; no-explicit-any = open-sse/ ve tests/ içinde warn, diğer yerlerde error.
  • 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 — belirli src/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 any ya 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.ts içinde export 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çin any yerine unknown tercih edin (alan üzerinde belgelendiği şekilde; ör. UsageEntry.tokens hem sağlayıcı biçimindeki ham kullanımı hem de normalleştirilmiş biçimi kabul eder). Bir dosyanın any sayısı bu yöntemle sıfıra ulaştığında, gerilememesi için dosyayı check:any-budget:t11 izin listesine (scripts/check/check-t11-any-budget.mjs, maxAny: 0) ekleyin. Bu, ilk dilime yönelik bir kuraldır — daha geniş kapsamlı "anonim any yok" 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.ts engelleme 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ğrudan main dalı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:unit hariç).

12. Kesin Kurallar (CLAUDE.md'den)

  1. Gizli bilgileri veya kimlik bilgilerini asla commit etmeyin.
  2. Asla barrel import kullanmayın — doğrudan belirli src/lib/db/* modüllerini kullanın.
  3. eval() / new Function() / örtük eval kullanımından kaçının.
  4. Asla doğrudan main dalına commit etmeyin.
  5. Route'larda asla ham SQL yazmayın — her zaman src/lib/db/ modüllerini kullanın.
  6. SSE akışlarındaki hataları asla sessizce yutmayın.
  7. Girdileri her zaman Zod şemalarıyla doğrulayın.
  8. Üretim kodunu değiştirirken her zaman testleri de ekleyin.
  9. Kapsama oranı ≥ %60 (ifadeler, satırlar, fonksiyonlar, dallar) olarak kalmalıdır.

13. Ayrıca Bakınız