-Kattintson ide a technológiai verem részleteinek kibontásához
+
+Click to expand tech stack details
--**Futtatási idejű**: Node.js 18–22 LTS (⚠️ A Node.js 24+**nem támogatott**– a `better-sqlite3` natív binárisok nem kompatibilisek)
--**Nyelv**: TypeScript 5.9 –**100% TypeScript**az „src/” és az „open-sse/” protokollokon keresztül (nulla „bármilyen” az alapmodulokban a v2.0 óta)
--**Keretrendszer**: Next.js 16 + React 19 + Tailwind CSS 4
--**Adatbázis**: LowDB (JSON) + SQLite (tartomány állapota + proxynaplók + MCP-audit + útválasztási döntések)
--**Sémák**: Zod (MCP-eszköz I/O-ellenőrzése, API-szerződések)
--**Protokollok**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
--**Streaming**: Szerver által küldött események (SSE)
--**Auth**: OAuth 2.0 (PKCE) + JWT + API-kulcsok + MCP-hatókörű engedélyezés
--**Tesztelés**: Node.js tesztfutó + Vitest (900+ teszt, beleértve az egységet, az integrációt, az E2E-t)
--**CI/CD**: GitHub Actions (automatikus npm közzététel + Docker Hub kiadáskor)
--**Webhely**: [omniroute.online](https://omniroute.online)
--**Csomag**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
--**Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
--**Rugalmasság**: megszakító, exponenciális visszakapcsolás, mennydörgés elleni csorda, TLS-hamisítás, automatikus kombinált öngyógyítás
+- **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ is **not supported** — `better-sqlite3` native binaries are incompatible)
+- **Language**: TypeScript 5.9 — **100% TypeScript** across `src/` and `open-sse/` (zero `any` in core modules since v2.0)
+- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
+- **Database**: LowDB (JSON) + SQLite (domain state + proxy logs + MCP audit + routing decisions)
+- **Schemas**: Zod (MCP tool I/O validation, API contracts)
+- **Protocols**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
+- **Streaming**: Server-Sent Events (SSE)
+- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization
+- **Testing**: Node.js test runner + Vitest (900+ tests including unit, integration, E2E)
+- **CI/CD**: GitHub Actions (auto npm publish + Docker Hub on release)
+- **Website**: [omniroute.online](https://omniroute.online)
+- **Package**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
+- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
+- **Resilience**: Circuit breaker, exponential backoff, anti-thundering herd, TLS spoofing, auto-combo self-healing
+
+
---
## Dokumentáció
-| dokumentum | Leírás |
-| ----------------------------------------------- | ---------------------------------------------------- |
-| [Felhasználói útmutató](docs/USER_GUIDE.md) | Szolgáltatók, kombók, CLI-integráció, telepítés |
-| [API-referencia](docs/API_REFERENCE.md) | Minden végpont példákkal |
-| [MCP-kiszolgáló](open-sse/mcp-server/README.md) | 16 MCP-eszköz, IDE konfigurációk, Python/TS/Go kliensek |
-| [A2A szerver](src/lib/a2a/README.md) | JSON-RPC 2.0 protokoll, készségek, adatfolyam, feladat mgmt |
-| [Auto-Combo Engine](docs/auto-combo.md) | 6 faktoros pontozás, módcsomagok, öngyógyító |
-| [Hibaelhárítás](docs/TROUBLESHOOTING.md) | Gyakori problémák és megoldások |
-| [Architektúra](docs/ARCHITECTURE.md) | Rendszerarchitektúra és belső elemek |
-| [Hozzájárulás](CONTRIBUTING.md) | Fejlesztési beállítások és irányelvek |
-| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 specifikáció |
-| [Biztonsági politika](SECURITY.md) | Sebezhetőségi jelentések és biztonsági gyakorlatok |
-| [VM-telepítés](docs/VM_DEPLOYMENT_GUIDE.md) | Teljes útmutató: VM + nginx + Cloudflare beállítás |
-| [Features Gallery](docs/FEATURES.md) | Vizuális irányítópult bemutató képernyőképekkel |
-| [Kiadási ellenőrzőlista](docs/RELEASE_CHECKLIST.md) | Kiadás előtti érvényesítési lépések |---
+| Document | Description |
+| ---------------------------------------------- | --------------------------------------------------- |
+| [User Guide](docs/USER_GUIDE.md) | Providers, combos, CLI integration, deployment |
+| [API Reference](docs/API_REFERENCE.md) | All endpoints with examples |
+| [MCP Server](open-sse/mcp-server/README.md) | 25 MCP tools, IDE configs, Python/TS/Go clients |
+| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protocol, skills, streaming, task mgmt |
+| [Auto-Combo Engine](docs/auto-combo.md) | 6-factor scoring, mode packs, self-healing |
+| [Context Relay](docs/features/context-relay.md)| Session handoff strategy for account rotation |
+| [Troubleshooting](docs/TROUBLESHOOTING.md) | Common problems and solutions |
+| [Architecture](docs/ARCHITECTURE.md) | System architecture and internals |
+| [Contributing](CONTRIBUTING.md) | Development setup and guidelines |
+| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 specification |
+| [Security Policy](SECURITY.md) | Vulnerability reporting and security practices |
+| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Complete guide: VM + nginx + Cloudflare setup |
+| [Features Gallery](docs/FEATURES.md) | Visual dashboard tour with screenshots |
+| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Pre-release validation steps |
+
+---
## 🗺️ Roadmap
-Az OmniRoute**210+ funkciót tervez**több fejlesztési fázisban. Íme a legfontosabb területek:
+OmniRoute has **210+ features planned** across multiple development phases. Here are the key areas:
-| Kategória | Tervezett funkciók | Kiemelések |
-| ------------------------------ | ----------------- | -------------------------------------------------------------------------------------- |
-| 🧠**Útválasztás és intelligencia**| 25+ | Legkisebb késleltetésű útválasztás, címke alapú útválasztás, kvóta elővizsgálat, P2C-fiók kiválasztása |
-| 🔒**Biztonság és megfelelőség**| 20+ | SSRF keményítés, hitelesítő adatok álcázása, végpontonkénti sebességkorlát, felügyeleti kulcs hatóköre |
-| 📊**Megfigyelhetőség**| 15+ | OpenTelemetry integráció, valós idejű kvótafigyelés, modellenkénti költségkövetés |
-| 🔄**Szolgáltatói integrációk**| 20+ | Dinamikus modellnyilvántartás, szolgáltatói leállások, többfiókos Codex, másodpilóta kvótaelemzés |
-| ⚡**Teljesítmény**| 15+ | Kettős gyorsítótárréteg, gyorsítótár, válaszgyorsítótár, folyamatos adatfolyam, kötegelt API |
-| 🌐**Ökoszisztéma**| 10+ | WebSocket API, config hot-reload, elosztott konfigurációs tároló, kereskedelmi mód |### 🔜 Coming Soon
+| Category | Planned Features | Highlights |
+| ----------------------------- | ---------------- | -------------------------------------------------------------------------------------- |
+| 🧠 **Routing & Intelligence** | 25+ | Lowest-latency routing, tag-based routing, quota preflight, P2C account selection |
+| 🔒 **Security & Compliance** | 20+ | SSRF hardening, credential cloaking, rate-limit per endpoint, management key scoping |
+| 📊 **Observability** | 15+ | OpenTelemetry integration, real-time quota monitoring, cost tracking per model |
+| 🔄 **Provider Integrations** | 20+ | Dynamic model registry, provider cooldowns, multi-account Codex, Copilot quota parsing |
+| ⚡ **Performance** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API |
+| 🌐 **Ecosystem** | 10+ | WebSocket API, config hot-reload, distributed config store, commercial mode |
-- 🔗**OpenCode integráció**- Natív szolgáltatói támogatás az OpenCode AI kódoló IDE-hez
-- 🔗**TRAE integráció**— A TRAE AI fejlesztési keret teljes támogatása
-- 📦**Batch API**- Aszinkron kötegelt feldolgozás tömeges kérésekhez
-- 🎯**Címke alapú útválasztás**- Egyéni címkéken és metaadatokon alapuló útvonalkérések
-- 💰**Legalacsonyabb költségű stratégia**- Automatikusan válassza ki a legolcsóbb elérhető szolgáltatót
+### 🔜 Coming Soon
-> 📝 A teljes funkcióspecifikáció elérhető a [`docs/new-features/`](docs/new-features/) oldalon (217 részletes specifikáció)---
+- 🔗 **OpenCode Integration** — Native provider support for the OpenCode AI coding IDE
+- 🔗 **TRAE Integration** — Full support for the TRAE AI development framework
+- 📦 **Batch API** — Asynchronous batch processing for bulk requests
+- 🎯 **Tag-Based Routing** — Route requests based on custom tags and metadata
+- 💰 **Lowest-Cost Strategy** — Automatically select the cheapest available provider
+
+> 📝 Full feature specifications available in [`docs/new-features/`](docs/new-features/) (217 detailed specs)
+
+---
## 👥 Contributors
@@ -1980,18 +2245,20 @@ Az OmniRoute**210+ funkciót tervez**több fejlesztési fázisban. Íme a legfon
### How to Contribute
-1. Fork a tároló
-2. Hozza létre a szolgáltatási ágat (`git checkout -b feature/amazing-feature`)
-3. Végezze el a változtatásokat (`git commit -m 'Elképesztő funkció hozzáadása'`)
-4. Nyomja le az ágra (`git push origin funkció/csodálatos szolgáltatás`)
-5. Nyisson meg egy lehívási kérelmet
+1. Fork the repository
+2. Create your feature branch (`git checkout -b feature/amazing-feature`)
+3. Commit your changes (`git commit -m 'Add amazing feature'`)
+4. Push to the branch (`git push origin feature/amazing-feature`)
+5. Open a Pull Request
-A részletes útmutatásért lásd: [CONTRIBUTING.md](CONTRIBUTING.md).### Releasing a New Version
+See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
+
+### Releasing a New Version
```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
-````
+```
---
@@ -2003,13 +2270,17 @@ gh release create v2.0.0 --title "v2.0.0" --generate-notes
## 🙏 Acknowledgments
-Külön köszönet a**[decolua](https://github.com/decolua)\*\***[9router](https://github.com/decolua/9router)\*\*-nak – az eredeti projektnek, amely ezt a villát inspirálta. Az OmniRoute erre a hihetetlen alapra épít további funkciókkal, multimodális API-kkal és teljes TypeScript-újraírással.
+Special thanks to **[9router](https://github.com/decolua/9router)** by **[decolua](https://github.com/decolua)** — the original project that inspired this fork. OmniRoute builds upon that incredible foundation with additional features, multi-modal APIs, and a full TypeScript rewrite.
-Külön köszönet a**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)**-nak – az eredeti Go implementációnak, amely ihlette ezt a JavaScript-portot.---
+Special thanks to **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — the original Go implementation that inspired this JavaScript port.
+
+---
## Licenc
-MIT-licenc – részletekért lásd: [LICENSE](LICENSE).---
+MIT License - see [LICENSE](LICENSE) for details.
+
+---
Built with ❤️ for developers who code 24/7
diff --git a/docs/i18n/hu/docs/ARCHITECTURE.md b/docs/i18n/hu/docs/ARCHITECTURE.md
index f659c6ecb4..aab37b02ed 100644
--- a/docs/i18n/hu/docs/ARCHITECTURE.md
+++ b/docs/i18n/hu/docs/ARCHITECTURE.md
@@ -4,80 +4,93 @@
---
-_Utolsó frissítés: 2026-03-28_## Executive Summary
-Az OmniRoute egy helyi mesterséges intelligencia-útválasztó átjáró és irányítópult, amely a Next.js-re épül.
-Egyetlen OpenAI-kompatibilis végpontot (`/v1/*`) biztosít, és a forgalmat több upstream szolgáltató között irányítja át fordítással, tartalékkal, tokenfrissítéssel és használati követéssel.
-Alapvető képességek:
+_Last updated: 2026-03-28_
-- OpenAI-kompatibilis API felület a CLI-hez/eszközökhöz (28 szolgáltató)
-- Fordítás kérése/válaszolása a szolgáltatói formátumok között
-- Model kombinált tartalék (több modell sorozat)
-- Fiókszintű tartalék (szolgáltatónként több fiók)
-- OAuth + API-kulcs szolgáltatói kapcsolatkezelés
-- Beágyazás generálása a „/v1/embeddings” fájlon keresztül (6 szolgáltató, 9 modell)
-- Képgenerálás a `/v1/images/generations' fájlon keresztül (4 szolgáltató, 9 modell)
-- Gondoljon a címkeelemzésre (`...`) az érvelési modellekhez
-- Válasz fertőtlenítés a szigorú OpenAI SDK-kompatibilitás érdekében
-- Szerepnormalizálás (fejlesztő→rendszer, rendszer→felhasználó) a szolgáltatók közötti kompatibilitás érdekében
-- Strukturált kimenet átalakítás (json_schema → Gemini responseSchema)
-- Helyi kitartás a szolgáltatók, kulcsok, álnevek, kombinációk, beállítások, árképzés számára
-- Használat/költségkövetés és kérések naplózása
-- Opcionális felhőszinkronizálás több eszköz/állapot szinkronizáláshoz
-- IP engedélyezési/blokkolási lista API hozzáférés-vezérléshez
-- Átgondolt költségvetés-kezelés (áthaladó/automatikus/egyéni/adaptív)
-- Globális rendszer azonnali befecskendezése
-- Munkamenet követés és ujjlenyomat
-- Fiókonként továbbfejlesztett díjkorlátozás szolgáltató-specifikus profilokkal
-- Megszakító minta a szolgáltatói rugalmasság érdekében
-- Mennydörgés elleni állományvédelem mutex zárral
-- Aláírás alapú kérés deduplikációs gyorsítótár
-- Domain réteg: modell elérhetősége, költségszabályok, tartalék házirend, kizárási szabályzat
-- Tartomány állapotának fennmaradása (SQLite átírási gyorsítótár tartalékok, költségvetések, zárolások, megszakítók számára)
-- Házirend motor a kérelmek központosított értékeléséhez (zárás → költségvetés → tartalék)
-- Telemetria kérése p50/p95/p99 késleltetési összesítéssel
-- Korrelációs azonosító (X-Request-Id) a végpontok közötti nyomkövetéshez
-- Megfelelőségi naplózás API-kulcsonkénti leiratkozással
-- Eval keretrendszer az LLM minőségbiztosításhoz
-- Rugalmas UI műszerfal valós idejű megszakító állapottal
-- Moduláris OAuth-szolgáltatók (12 különálló modul az `src/lib/oauth/providers/` alatt)
+## Executive Summary
-Elsődleges futásidejű modell:
+OmniRoute is a local AI routing gateway and dashboard built on Next.js.
+It provides a single OpenAI-compatible endpoint (`/v1/*`) and routes traffic across multiple upstream providers with translation, fallback, token refresh, and usage tracking.
-- A Next.js alkalmazásútvonalai az `src/app/api/*` alatt mind az irányítópult API-kat, mind a kompatibilitási API-kat megvalósítják
-- Egy megosztott SSE/routing mag az `src/sse/*` + `open-sse/*` állományban kezeli a szolgáltató végrehajtását, fordítását, adatfolyamát, tartalékát és használatát## Scope and Boundaries
+Core capabilities:
+
+- OpenAI-compatible API surface for CLI/tools (28 providers)
+- Request/response translation across provider formats
+- Model combo fallback (multi-model sequence)
+- Account-level fallback (multi-account per provider)
+- OAuth + API-key provider connection management
+- Embedding generation via `/v1/embeddings` (6 providers, 9 models)
+- Image generation via `/v1/images/generations` (4 providers, 9 models)
+- Think tag parsing (`...`) for reasoning models
+- Response sanitization for strict OpenAI SDK compatibility
+- Role normalization (developer→system, system→user) for cross-provider compatibility
+- Structured output conversion (json_schema → Gemini responseSchema)
+- Local persistence for providers, keys, aliases, combos, settings, pricing
+- Usage/cost tracking and request logging
+- Optional cloud sync for multi-device/state sync
+- IP allowlist/blocklist for API access control
+- Thinking budget management (passthrough/auto/custom/adaptive)
+- Global system prompt injection
+- Session tracking and fingerprinting
+- Per-account enhanced rate limiting with provider-specific profiles
+- Circuit breaker pattern for provider resilience
+- Anti-thundering herd protection with mutex locking
+- Signature-based request deduplication cache
+- Domain layer: model availability, cost rules, fallback policy, lockout policy
+- Context Relay: session handoff summaries for account rotation continuity
+- Domain state persistence (SQLite write-through cache for fallbacks, budgets, lockouts, circuit breakers)
+- Policy engine for centralized request evaluation (lockout → budget → fallback)
+- Request telemetry with p50/p95/p99 latency aggregation
+- Correlation ID (X-Request-Id) for end-to-end tracing
+- Compliance audit logging with opt-out per API key
+- Eval framework for LLM quality assurance
+- Resilience UI dashboard with real-time circuit breaker status
+- Modular OAuth providers (12 individual modules under `src/lib/oauth/providers/`)
+
+Primary runtime model:
+
+- Next.js app routes under `src/app/api/*` implement both dashboard APIs and compatibility APIs
+- A shared SSE/routing core in `src/sse/*` + `open-sse/*` handles provider execution, translation, streaming, fallback, and usage
+
+## Scope and Boundaries
### In Scope
-- Helyi átjáró futásidejű
-- Irányítópult-kezelő API-k
-- Szolgáltató hitelesítése és token frissítése
-- Fordítás és SSE streaming kérése
-- Helyi állapot + használat tartóssága
-- Opcionális felhőszinkronizálás### Out of Scope
+- Local gateway runtime
+- Dashboard management APIs
+- Provider authentication and token refresh
+- Request translation and SSE streaming
+- Local state + usage persistence
+- Optional cloud sync orchestration
-- Felhőszolgáltatás megvalósítása a `NEXT_PUBLIC_CLOUD_URL' mögött
-- Szolgáltató SLA/vezérlő síkja a helyi folyamaton kívül
-- Maguk a külső CLI binárisok (Claude CLI, Codex CLI stb.)## Dashboard Surface (Current)
+### Out of Scope
-Főoldalak az `src/app/(dashboard)/dashboard/` alatt:
+- Cloud service implementation behind `NEXT_PUBLIC_CLOUD_URL`
+- Provider SLA/control plane outside local process
+- External CLI binaries themselves (Claude CLI, Codex CLI, etc.)
-- `/dashboard` — gyorsindítás + szolgáltató áttekintése
-- "/dashboard/endpoint" - végpont proxy + MCP + A2A + API végpont lapjai
-- "/dashboard/providers" – szolgáltatói kapcsolatok és hitelesítő adatok
-- "/dashboard/combos" - kombinált stratégiák, sablonok, modell-útválasztási szabályok
-- "/dashboard/costs" – a költségek összesítése és az árképzés láthatósága
-- "/dashboard/analytics" — használati elemzések és kiértékelések
-- "/dashboard/limits" – kvóta/kamat szabályozás
-- "/dashboard/cli-tools" - CLI-beépítés, futásidejű észlelés, konfiguráció generálása
-- "/dashboard/agents" — észlelt ACP ügynökök + egyéni ügynök regisztráció
-- `/dashboard/media` — kép/videó/zene játszótér
-- "/dashboard/search-tools" – a keresőszolgáltató tesztelése és előzményei
-- "/dashboard/health" – üzemidő, megszakítók, sebességkorlátok
-- "/dashboard/logs" — kérés/proxy/audit/konzolnaplók
-- "/dashboard/settings" – rendszerbeállítások lapjai (általános, útválasztás, kombinált alapértelmezések stb.)
-- `/dashboard/api-manager` – API kulcs életciklusa és modellengedélyei## High-Level System Context
+## Dashboard Surface (Current)
+
+Main pages under `src/app/(dashboard)/dashboard/`:
+
+- `/dashboard` — quick start + provider overview
+- `/dashboard/endpoint` — endpoint proxy + MCP + A2A + API endpoint tabs
+- `/dashboard/providers` — provider connections and credentials
+- `/dashboard/combos` — combo strategies, templates, model routing rules
+- `/dashboard/costs` — cost aggregation and pricing visibility
+- `/dashboard/analytics` — usage analytics and evaluations
+- `/dashboard/limits` — quota/rate controls
+- `/dashboard/cli-tools` — CLI onboarding, runtime detection, config generation
+- `/dashboard/agents` — detected ACP agents + custom agent registration
+- `/dashboard/media` — image/video/music playground
+- `/dashboard/search-tools` — search provider testing and history
+- `/dashboard/health` — uptime, circuit breakers, rate limits
+- `/dashboard/logs` — request/proxy/audit/console logs
+- `/dashboard/settings` — system settings tabs (general, routing, combo defaults, etc.)
+- `/dashboard/api-manager` — API key lifecycle and model permissions
+
+## High-Level System Context
```mermaid
flowchart LR
@@ -129,139 +142,151 @@ flowchart LR
## 1) API and Routing Layer (Next.js App Routes)
-Fő könyvtárak:
+Main directories:
-- `src/app/api/v1/*` és `src/app/api/v1beta/*` a kompatibilitási API-khoz
-- `src/app/api/*` a felügyeleti/konfigurációs API-khoz
-- Következő átírja a `next.config.mjs` `/v1/*` leképezését `/api/v1/*`-re
+- `src/app/api/v1/*` and `src/app/api/v1beta/*` for compatibility APIs
+- `src/app/api/*` for management/configuration APIs
+- Next rewrites in `next.config.mjs` map `/v1/*` to `/api/v1/*`
-Fontos kompatibilitási útvonalak:
+Important compatibility routes:
-- "src/app/api/v1/chat/completions/route.ts".
+- `src/app/api/v1/chat/completions/route.ts`
- `src/app/api/v1/messages/route.ts`
- `src/app/api/v1/responses/route.ts`
-- "src/app/api/v1/models/route.ts" - egyéni modelleket tartalmaz "custom: true"
-- "src/app/api/v1/embeddings/route.ts" - beágyazás generálása (6 szolgáltató)
-- "src/app/api/v1/images/generations/route.ts" - képgenerálás (4+ szolgáltató, beleértve az Antigravitációt/Nebiust)
+- `src/app/api/v1/models/route.ts` — includes custom models with `custom: true`
+- `src/app/api/v1/embeddings/route.ts` — embedding generation (6 providers)
+- `src/app/api/v1/images/generations/route.ts` — image generation (4+ providers incl. Antigravity/Nebius)
- `src/app/api/v1/messages/count_tokens/route.ts`
-- "src/app/api/v1/providers/[provider]/chat/completions/route.ts" – dedikált szolgáltatónkénti csevegés
-- "src/app/api/v1/providers/[szolgáltató]/embeddings/route.ts" – dedikált szolgáltatónkénti beágyazások
-- "src/app/api/v1/providers/[szolgáltató]/images/generations/route.ts" – szolgáltatónként dedikált képek
+- `src/app/api/v1/providers/[provider]/chat/completions/route.ts` — dedicated per-provider chat
+- `src/app/api/v1/providers/[provider]/embeddings/route.ts` — dedicated per-provider embeddings
+- `src/app/api/v1/providers/[provider]/images/generations/route.ts` — dedicated per-provider images
- `src/app/api/v1beta/models/route.ts`
-- `src/app/api/v1beta/models/[...útvonal]/route.ts`
+- `src/app/api/v1beta/models/[...path]/route.ts`
-Kezelési tartományok:
+Management domains:
-- Hitelesítés/beállítások: `src/app/api/auth/*`, `src/app/api/settings/*`
-- Szolgáltatók/kapcsolatok: `src/app/api/providers*`
-- Szolgáltatói csomópontok: `src/app/api/provider-nodes*`
-- Egyéni modellek: "src/app/api/provider-models" (GET/POST/DELETE)
-- Modellkatalógus: `src/app/api/models/route.ts` (GET)
-- Proxy konfigurációja: "src/app/api/settings/proxy" (GET/PUT/DELETE) + "src/app/api/settings/proxy/test" (POST)
+- Auth/settings: `src/app/api/auth/*`, `src/app/api/settings/*`
+- Providers/connections: `src/app/api/providers*`
+- Provider nodes: `src/app/api/provider-nodes*`
+- Custom models: `src/app/api/provider-models` (GET/POST/DELETE)
+- Model catalog: `src/app/api/models/route.ts` (GET)
+- Proxy config: `src/app/api/settings/proxy` (GET/PUT/DELETE) + `src/app/api/settings/proxy/test` (POST)
- OAuth: `src/app/api/oauth/*`
-- Keys/aliases/combos/pricing: "src/app/api/keys*", "src/app/api/models/alias", "src/app/api/combos*", "src/app/api/pricing"
-- Használat: `src/app/api/usage/*`
-- Szinkronizálás/felhő: `src/app/api/sync/*`, `src/app/api/cloud/*`
-- CLI-eszközök segédei: `src/app/api/cli-tools/*`
-- IP-szűrő: "src/app/api/settings/ip-filter" (GET/PUT)
-- Gondolkodási költségkeret: `src/app/api/settings/thinking-budget' (GET/PUT)
-- Rendszerprompt: "src/app/api/settings/system-prompt" (GET/PUT)
-- Munkamenetek: `src/app/api/sessions' (GET)
-- Díjkorlátok: "src/app/api/rate-limits" (GET)
-- Rugalmasság: "src/app/api/resilience" (GET/PATCH) – szolgáltatói profilok, megszakító, sebességkorlát állapot
-- Rugalmasság visszaállítása: `src/app/api/resilience/reset' (POST) – megszakítók visszaállítása + lehűlés
-- Gyorsítótár statisztikái: "src/app/api/cache/stats" (GET/DELETE)
-- A modell elérhetősége: "src/app/api/models/availability" (GET/POST)
-- Telemetria: "src/app/api/telemetry/summary" (GET)
-- Költségkeret: `src/app/api/usage/budget' (GET/POST)
-- Tartalék láncok: `src/app/api/fallback/chains' (GET/POST/DELETE)
-- Megfelelőségi ellenőrzés: `src/app/api/compliance/audit-log' (GET)
-- Evals: "src/app/api/evals" (GET/POST), "src/app/api/evals/[suiteId]" (GET)
-- Irányelvek: `src/app/api/policies' (GET/POST)## 2) SSE + Translation Core
+- Keys/aliases/combos/pricing: `src/app/api/keys*`, `src/app/api/models/alias`, `src/app/api/combos*`, `src/app/api/pricing`
+- Usage: `src/app/api/usage/*`
+- Sync/cloud: `src/app/api/sync/*`, `src/app/api/cloud/*`
+- CLI tooling helpers: `src/app/api/cli-tools/*`
+- IP filter: `src/app/api/settings/ip-filter` (GET/PUT)
+- Thinking budget: `src/app/api/settings/thinking-budget` (GET/PUT)
+- System prompt: `src/app/api/settings/system-prompt` (GET/PUT)
+- Sessions: `src/app/api/sessions` (GET)
+- Rate limits: `src/app/api/rate-limits` (GET)
+- Resilience: `src/app/api/resilience` (GET/PATCH) — provider profiles, circuit breaker, rate limit state
+- Resilience reset: `src/app/api/resilience/reset` (POST) — reset breakers + cooldowns
+- Cache stats: `src/app/api/cache/stats` (GET/DELETE)
+- Model availability: `src/app/api/models/availability` (GET/POST)
+- Telemetry: `src/app/api/telemetry/summary` (GET)
+- Budget: `src/app/api/usage/budget` (GET/POST)
+- Fallback chains: `src/app/api/fallback/chains` (GET/POST/DELETE)
+- Compliance audit: `src/app/api/compliance/audit-log` (GET)
+- Evals: `src/app/api/evals` (GET/POST), `src/app/api/evals/[suiteId]` (GET)
+- Policies: `src/app/api/policies` (GET/POST)
-Fő áramlási modulok:
+## 2) SSE + Translation Core
-- Bejegyzés: `src/sse/handlers/chat.ts`
-- Alapvető hangszerelés: "open-sse/handlers/chatCore.ts"
-- Szolgáltató végrehajtási adapterei: `open-sse/executors/*`
-- Formátumészlelés/szolgáltató konfigurációja: "open-sse/services/provider.ts"
-- Modell parse/resolve: `src/sse/services/model.ts`, `open-sse/services/model.ts`
-- A fiók tartalék logikája: `open-sse/services/accountFallback.ts`
-- Fordítási nyilvántartás: "open-sse/translator/index.ts".
-- Adatfolyam-átalakítások: "open-sse/utils/stream.ts", "open-sse/utils/streamHandler.ts"
-- Használat kibontása/normalizálása: "open-sse/utils/usageTracking.ts"
+Main flow modules:
+
+- Entry: `src/sse/handlers/chat.ts`
+- Core orchestration: `open-sse/handlers/chatCore.ts`
+- Provider execution adapters: `open-sse/executors/*`
+- Format detection/provider config: `open-sse/services/provider.ts`
+- Model parse/resolve: `src/sse/services/model.ts`, `open-sse/services/model.ts`
+- Account fallback logic: `open-sse/services/accountFallback.ts`
+- Translation registry: `open-sse/translator/index.ts`
+- Stream transformations: `open-sse/utils/stream.ts`, `open-sse/utils/streamHandler.ts`
+- Usage extraction/normalization: `open-sse/utils/usageTracking.ts`
- Think tag parser: `open-sse/utils/thinkTagParser.ts`
-- Beágyazáskezelő: `open-sse/handlers/embeddings.ts`
-- Beágyazási szolgáltató nyilvántartása: "open-sse/config/embeddingRegistry.ts"
-- Képgeneráló kezelő: `open-sse/handlers/imageGeneration.ts`
-- Képszolgáltató regisztrációs adatbázisa: `open-sse/config/imageRegistry.ts`
-- A válaszok fertőtlenítése: "open-sse/handlers/responseSanitizer.ts"
-- Szerepkör normalizálása: `open-sse/services/roleNormalizer.ts`
+- Embedding handler: `open-sse/handlers/embeddings.ts`
+- Embedding provider registry: `open-sse/config/embeddingRegistry.ts`
+- Image generation handler: `open-sse/handlers/imageGeneration.ts`
+- Image provider registry: `open-sse/config/imageRegistry.ts`
+- Response sanitization: `open-sse/handlers/responseSanitizer.ts`
+- Role normalization: `open-sse/services/roleNormalizer.ts`
-Szolgáltatások (üzleti logika):
+Services (business logic):
-- Fiókválasztás/pontozás: "open-sse/services/accountSelector.ts"
-- Kontextus-életciklus-kezelés: `open-sse/services/contextManager.ts`
-- IP-szűrő végrehajtása: `open-sse/services/ipFilter.ts`
-- Munkamenetkövetés: `open-sse/services/sessionManager.ts`
-- Deduplikáció kérése: "open-sse/services/signatureCache.ts"
-- Rendszerprompt injekció: `open-sse/services/systemPrompt.ts`
-- Gondolkodó költségvetés-kezelés: `open-sse/services/thinkingBudget.ts`
-- Helyettesítő karakteres modell-útválasztás: "open-sse/services/wildcardRouter.ts"
-- Díjkorlát kezelése: `open-sse/services/rateLimitManager.ts`
-- Megszakító: "open-sse/services/circuitBreaker.ts"
+- Account selection/scoring: `open-sse/services/accountSelector.ts`
+- Context lifecycle management: `open-sse/services/contextManager.ts`
+- IP filter enforcement: `open-sse/services/ipFilter.ts`
+- Session tracking: `open-sse/services/sessionManager.ts`
+- Request deduplication: `open-sse/services/signatureCache.ts`
+- System prompt injection: `open-sse/services/systemPrompt.ts`
+- Thinking budget management: `open-sse/services/thinkingBudget.ts`
+- Wildcard model routing: `open-sse/services/wildcardRouter.ts`
+- Rate limit management: `open-sse/services/rateLimitManager.ts`
+- Circuit breaker: `open-sse/services/circuitBreaker.ts`
+- Context handoff: `open-sse/services/contextHandoff.ts` — handoff summary generation and injection for context-relay strategy
+- Codex quota fetcher: `open-sse/services/codexQuotaFetcher.ts` — fetches Codex quota for context-relay handoff decisions
-Domain réteg modulok:
+Domain layer modules:
-- A modell elérhetősége: `src/lib/domain/modelAvailability.ts`
-- Költségszabályok/költségkeretek: `src/lib/domain/costRules.ts`
-- Tartalék házirend: `src/lib/domain/fallbackPolicy.ts`
-- Kombinált feloldó: `src/lib/domain/comboResolver.ts`
-- Kizárási szabályzat: `src/lib/domain/lockoutPolicy.ts`
-- Házirend motor: `src/domain/policyEngine.ts` — központosított zárolás → költségvetés → tartalék kiértékelés
-- Hibakód-katalógus: "src/lib/domain/errorCodes.ts".
-- Kérelemazonosító: `src/lib/domain/requestId.ts`
-- Lekérési időtúllépés: `src/lib/domain/fetchTimeout.ts`
-- Telemetria kérése: `src/lib/domain/requestTelemetry.ts`
-- Megfelelőség/ellenőrzés: `src/lib/domain/compliance/index.ts`
+- Model availability: `src/lib/domain/modelAvailability.ts`
+- Cost rules/budgets: `src/lib/domain/costRules.ts`
+- Fallback policy: `src/lib/domain/fallbackPolicy.ts`
+- Combo resolver: `src/lib/domain/comboResolver.ts`
+- Lockout policy: `src/lib/domain/lockoutPolicy.ts`
+- Policy engine: `src/domain/policyEngine.ts` — centralized lockout → budget → fallback evaluation
+- Error codes catalog: `src/lib/domain/errorCodes.ts`
+- Request ID: `src/lib/domain/requestId.ts`
+- Fetch timeout: `src/lib/domain/fetchTimeout.ts`
+- Request telemetry: `src/lib/domain/requestTelemetry.ts`
+- Compliance/audit: `src/lib/domain/compliance/index.ts`
- Eval runner: `src/lib/domain/evalRunner.ts`
-- Tartomány állapotának fennmaradása: `src/lib/db/domainState.ts' — SQLite CRUD tartalék láncokhoz, költségvetésekhez, költségelőzményekhez, zárolási állapothoz, megszakítókhoz
+- Domain state persistence: `src/lib/db/domainState.ts` — SQLite CRUD for fallback chains, budgets, cost history, lockout state, circuit breakers
-OAuth-szolgáltató modulok (12 külön fájl az `src/lib/oauth/providers/` alatt):
+OAuth provider modules (12 individual files under `src/lib/oauth/providers/`):
- Registry index: `src/lib/oauth/providers/index.ts`
-- Egyéni szolgáltatók: "claude.ts", "codex.ts", "gemini.ts", "antigravity.ts", "qoder.ts", "qwen.ts", "kimi-coding.ts", "github.ts", "kiro.ts", "codex". `cline.ts`
-- Vékony burkolóanyag: `src/lib/oauth/providers.ts' – újraexportálás az egyes modulokból## 3) Persistence Layer
+- Individual providers: `claude.ts`, `codex.ts`, `gemini.ts`, `antigravity.ts`, `qoder.ts`, `qwen.ts`, `kimi-coding.ts`, `github.ts`, `kiro.ts`, `cursor.ts`, `kilocode.ts`, `cline.ts`
+- Thin wrapper: `src/lib/oauth/providers.ts` — re-exports from individual modules
-Elsődleges állapotú DB (SQLite):
+## 3) Persistence Layer
-- Alapvető infrastruktúra: `src/lib/db/core.ts` (better-sqlite3, migrációk, WAL)
-- Homlokzat újraexportálása: "src/lib/localDb.ts" (vékony kompatibilitási réteg a hívók számára)
-- fájl: `${DATA_DIR}/storage.sqlite` (vagy `$XDG_CONFIG_HOME/omniroute/storage.sqlite`, ha be van állítva, különben `~/.omniroute/storage.sqlite`)
-- entitások (táblák + KV névterek): szolgáltatói kapcsolatok, szolgáltató csomópontok, modellálnevek, kombók, apiKeys, beállítások, árképzés,**customModels**,**proxyConfig**,**ipFilter**,**thhinkingBudget**,**systemPrompt**
+Primary state DB (SQLite):
-Használat tartóssága:
+- Core infra: `src/lib/db/core.ts` (better-sqlite3, migrations, WAL)
+- Re-export facade: `src/lib/localDb.ts` (thin compatibility layer for callers)
+- file: `${DATA_DIR}/storage.sqlite` (or `$XDG_CONFIG_HOME/omniroute/storage.sqlite` when set, else `~/.omniroute/storage.sqlite`)
+- entities (tables + KV namespaces): providerConnections, providerNodes, modelAliases, combos, apiKeys, settings, pricing, **customModels**, **proxyConfig**, **ipFilter**, **thinkingBudget**, **systemPrompt**
-- homlokzat: `src/lib/usageDb.ts` (bontott modulok az `src/lib/usage/*` fájlban)
-- SQLite táblák a "storage.sqlite" fájlban: "használati_előzmények", "hívásnaplók", "proxy_naplók"
-- az opcionális melléktermékek a kompatibilitáshoz/hibakereséshez maradnak (`${DATA_DIR}/log.txt`, `${DATA_DIR}/call_logs/`, `/logs/...`)
-- A régebbi JSON-fájlokat a rendszer indítási migrációval költözteti az SQLite-ba, ha vannak
+Usage persistence:
+
+- facade: `src/lib/usageDb.ts` (decomposed modules in `src/lib/usage/*`)
+- SQLite tables in `storage.sqlite`: `usage_history`, `call_logs`, `proxy_logs`
+- optional file artifacts remain for compatibility/debug (`${DATA_DIR}/log.txt`, `${DATA_DIR}/call_logs/`, `/logs/...`)
+- legacy JSON files are migrated to SQLite by startup migrations when present
Domain State DB (SQLite):
-- "src/lib/db/domainState.ts" - CRUD műveletek a tartomány állapotához
-- Táblázatok (az "src/lib/db/core.ts" fájlban létrehozva): "domain_fallback_chains", "domain_budgets", "domain_cost_history", "domain_lockout_state", "domain_circuit_breakers"
-- Átírási gyorsítótár minta: a memórián belüli térképek mérvadóak futás közben; a mutációk szinkronban íródnak az SQLite-ba; állapot visszaáll a DB-ből hidegindításkor## 4) Auth + Security Surfaces
+- `src/lib/db/domainState.ts` — CRUD operations for domain state
+- Tables (created in `src/lib/db/core.ts`): `domain_fallback_chains`, `domain_budgets`, `domain_cost_history`, `domain_lockout_state`, `domain_circuit_breakers`
+- Write-through cache pattern: in-memory Maps are authoritative at runtime; mutations are written synchronously to SQLite; state is restored from DB on cold start
-- Az irányítópult cookie hitelesítése: "src/proxy.ts", "src/app/api/auth/login/route.ts"
-- API-kulcs létrehozása/ellenőrzése: `src/shared/utils/apiKey.ts`
-- A szolgáltatói titkok megmaradtak a "providerConnections" bejegyzésekben
-- Kimenő proxy támogatása az "open-sse/utils/proxyFetch.ts" (env vars) és az "open-sse/utils/networkProxy.ts" segítségével (szolgáltatónként vagy globálisan konfigurálható)## 5) Cloud Sync
+## 4) Auth + Security Surfaces
-- Ütemező init: "src/lib/initCloudSync.ts", "src/shared/services/initializeCloudSync.ts", "src/shared/services/modelSyncScheduler.ts"
-- Időszakos feladat: `src/shared/services/cloudSyncScheduler.ts`
-- Időszakos feladat: `src/shared/services/modelSyncScheduler.ts`
-- Útvonal vezérlése: "src/app/api/sync/cloud/route.ts"## Request Lifecycle (`/v1/chat/completions`)
+- Dashboard cookie auth: `src/proxy.ts`, `src/app/api/auth/login/route.ts`
+- API key generation/verification: `src/shared/utils/apiKey.ts`
+- Provider secrets persisted in `providerConnections` entries
+- Outbound proxy support via `open-sse/utils/proxyFetch.ts` (env vars) and `open-sse/utils/networkProxy.ts` (configurable per-provider or global)
+
+## 5) Cloud Sync
+
+- Scheduler init: `src/lib/initCloudSync.ts`, `src/shared/services/initializeCloudSync.ts`, `src/shared/services/modelSyncScheduler.ts`
+- Periodic task: `src/shared/services/cloudSyncScheduler.ts`
+- Periodic task: `src/shared/services/modelSyncScheduler.ts`
+- Control route: `src/app/api/sync/cloud/route.ts`
+
+## Request Lifecycle (`/v1/chat/completions`)
```mermaid
sequenceDiagram
@@ -338,7 +363,9 @@ flowchart TD
Q -- No --> R[Return all unavailable]
```
-A tartalék döntéseket az `open-sse/services/accountFallback.ts` vezérli állapotkódok és hibaüzenet-heurisztika használatával. A kombinált útválasztás egy plusz védelmet ad: a szolgáltatói hatókörű 400-asokat, mint például az upstream tartalomblokkolás és a szerepérvényesítési hibák, modellhelyi hibákként kezelik, így a későbbi kombinált célok továbbra is futhatnak.## OAuth Onboarding and Token Refresh Lifecycle
+Fallback decisions are driven by `open-sse/services/accountFallback.ts` using status codes and error-message heuristics. Combo routing adds one extra guard: provider-scoped 400s such as upstream content-block and role-validation failures are treated as model-local failures so later combo targets can still run.
+
+## OAuth Onboarding and Token Refresh Lifecycle
```mermaid
sequenceDiagram
@@ -368,7 +395,9 @@ sequenceDiagram
Test-->>UI: validation result
```
-Az élő forgalom alatti frissítés az `open-sse/handlers/chatCore.ts` fájlban, a `refreshCredentials()` végrehajtón keresztül történik.## Cloud Sync Lifecycle (Enable / Sync / Disable)
+Refresh during live traffic is executed inside `open-sse/handlers/chatCore.ts` via executor `refreshCredentials()`.
+
+## Cloud Sync Lifecycle (Enable / Sync / Disable)
```mermaid
sequenceDiagram
@@ -400,7 +429,9 @@ sequenceDiagram
Sync-->>UI: disabled
```
-Az időszakos szinkronizálást a „CloudSyncScheduler” indítja el, ha a felhő engedélyezve van.## Data Model and Storage Map
+Periodic sync is triggered by `CloudSyncScheduler` when cloud is enabled.
+
+## Data Model and Storage Map
```mermaid
erDiagram
@@ -501,12 +532,14 @@ erDiagram
}
```
-Fizikai tároló fájlok:
+Physical storage files:
-- elsődleges futásidejű DB: `${DATA_DIR}/storage.sqlite`
-- kérésnapló sorai: `${DATA_DIR}/log.txt` (kompat/debug melléktermék)
-- Strukturált hívások hasznosadat-archívuma: `${DATA_DIR}/call_logs/`
-- opcionális fordítói/hibakereső munkamenetek kérése: `/logs/...`## Deployment Topology
+- primary runtime DB: `${DATA_DIR}/storage.sqlite`
+- request log lines: `${DATA_DIR}/log.txt` (compat/debug artifact)
+- structured call payload archives: `${DATA_DIR}/call_logs/`
+- optional translator/request debug sessions: `/logs/...`
+
+## Deployment Topology
```mermaid
flowchart LR
@@ -541,205 +574,249 @@ flowchart LR
### Route and API Modules
-- `src/app/api/v1/*`, `src/app/api/v1beta/*`: kompatibilitási API-k
-- `src/app/api/v1/providers/[szolgáltató]/\*: szolgáltatónként dedikált útvonalak (csevegés, beágyazások, képek)
-- `src/app/api/providers*`: szolgáltató CRUD, érvényesítés, tesztelés
-- `src/app/api/provider-nodes*`: egyéni kompatibilis csomópontkezelés
-- "src/app/api/provider-models": egyéni modellkezelés (CRUD)
-- "src/app/api/models/route.ts": modellkatalógus API (álnevek + egyéni modellek)
-- `src/app/api/oauth/*`: OAuth/eszközkód folyamatok
-- `src/app/api/keys*`: helyi API kulcs életciklusa
-- `src/app/api/models/alias`: alias kezelése
-- `src/app/api/combos*`: tartalék kombinált kezelés
-- "src/app/api/pricing": az árképzés felülbírálása a költségszámításhoz
-- "src/app/api/settings/proxy": proxykonfiguráció (GET/PUT/DELETE)
-- "src/app/api/settings/proxy/test": kimenő proxykapcsolati teszt (POST)
-- `src/app/api/usage/*`: használati és naplózási API-k
-- `src/app/api/sync/*` + `src/app/api/cloud/*`: felhőszinkronizálás és felhő felé néző segítők
-- `src/app/api/cli-tools/*`: helyi CLI konfigurációs írók/ellenőrzők
-- "src/app/api/settings/ip-filter": IP engedélyezési lista/blokkolista (GET/PUT)
-- "src/app/api/settings/thhinking-budget": gondolkodási jogkivonat költségvetési konfigurációja (GET/PUT)
-- "src/app/api/settings/system-prompt": globális rendszerprompt (GET/PUT)
-- "src/app/api/sessions": aktív munkamenet-lista (GET)
-- "src/app/api/rate-limits": fiókonkénti kamatkorlát állapota (GET)### Routing and Execution Core
+- `src/app/api/v1/*`, `src/app/api/v1beta/*`: compatibility APIs
+- `src/app/api/v1/providers/[provider]/*`: dedicated per-provider routes (chat, embeddings, images)
+- `src/app/api/providers*`: provider CRUD, validation, testing
+- `src/app/api/provider-nodes*`: custom compatible node management
+- `src/app/api/provider-models`: custom model management (CRUD)
+- `src/app/api/models/route.ts`: model catalog API (aliases + custom models)
+- `src/app/api/oauth/*`: OAuth/device-code flows
+- `src/app/api/keys*`: local API key lifecycle
+- `src/app/api/models/alias`: alias management
+- `src/app/api/combos*`: fallback combo management
+- `src/app/api/pricing`: pricing overrides for cost calculation
+- `src/app/api/settings/proxy`: proxy configuration (GET/PUT/DELETE)
+- `src/app/api/settings/proxy/test`: outbound proxy connectivity test (POST)
+- `src/app/api/usage/*`: usage and logs APIs
+- `src/app/api/sync/*` + `src/app/api/cloud/*`: cloud sync and cloud-facing helpers
+- `src/app/api/cli-tools/*`: local CLI config writers/checkers
+- `src/app/api/settings/ip-filter`: IP allowlist/blocklist (GET/PUT)
+- `src/app/api/settings/thinking-budget`: thinking token budget config (GET/PUT)
+- `src/app/api/settings/system-prompt`: global system prompt (GET/PUT)
+- `src/app/api/sessions`: active session listing (GET)
+- `src/app/api/rate-limits`: per-account rate limit status (GET)
-- `src/sse/handlers/chat.ts`: kéréselemzés, kombinált kezelés, fiókválasztó hurok
-- "open-sse/handlers/chatCore.ts": fordítás, végrehajtó feladás, újrapróbálkozás/frissítés kezelése, adatfolyam beállítása
-- `open-sse/executors/*`: szolgáltató-specifikus hálózat- és formátumviselkedés### Translation Registry and Format Converters
+### Routing and Execution Core
-- "open-sse/translator/index.ts": fordítói nyilvántartás és hangszerelés
-- Fordítók kérése: `open-sse/translator/request/*`
-- Válasz fordítók: `open-sse/translator/response/*`
-- Formátumkonstansok: `open-sse/translator/formats.ts`### Persistence
+- `src/sse/handlers/chat.ts`: request parse, combo handling, account selection loop
+- `open-sse/handlers/chatCore.ts`: translation, executor dispatch, retry/refresh handling, stream setup
+- `open-sse/executors/*`: provider-specific network and format behavior
-- `src/lib/db/*`: állandó konfiguráció/állapot és tartomány fennmaradása az SQLite-on
-- `src/lib/localDb.ts`: DB modulok kompatibilitási újraexportálása
-- `src/lib/usageDb.ts`: a használati előzmények/hívásnaplók homlokzata az SQLite táblák tetején## Provider Executor Coverage (Strategy Pattern)
+### Translation Registry and Format Converters
-Minden szolgáltató rendelkezik egy speciális végrehajtóval, amely kiterjeszti a „BaseExecutort” (az „open-sse/executors/base.ts” fájlban), amely URL-építést, fejléc-építést, újrapróbálkozást exponenciális visszalépéssel, hitelesítő adatok frissítését és az „execute()” hangszerelési metódust biztosítja.
+- `open-sse/translator/index.ts`: translator registry and orchestration
+- Request translators: `open-sse/translator/request/*`
+- Response translators: `open-sse/translator/response/*`
+- Format constants: `open-sse/translator/formats.ts`
-| Végrehajtó | Szolgáltató(k) | Különleges kezelés |
-| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
-| `DefaultExecutor` | OpenAI, Claude, Gemini, Qwen, Qoder, OpenRouter, GLM, Kimi, MiniMax, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA | Dinamikus URL/fejléc konfiguráció szolgáltatónként |
-| "AntigravityExecutor" | Google Antigravitáció | Egyéni projekt/munkamenet azonosítók, Újrapróbálkozás-elemzés után |
-| "CodexExecutor" | OpenAI Codex | Rendszerutasításokat szúr be, érvelési erőfeszítést kényszerít |
-| "CursorExecutor" | Kurzor IDE | ConnectRPC protokoll, Protobuf kódolás, kérés aláírása ellenőrző összeggel |
-| "GithubExecutor" | GitHub másodpilóta | Másodpilóta token frissítése, VSCode-utánzó fejlécek |
-| "KiroExecutor" | AWS CodeWhisperer/Kiro | AWS EventStream bináris formátum → SSE konverzió |
-| "GeminiCLIExecutor" | Gemini CLI | Google OAuth-token frissítési ciklus |
+### Persistence
-Minden más szolgáltató (beleértve az egyéni kompatibilis csomópontokat is) a "DefaultExecutor"-t használja.## Provider Compatibility Matrix
+- `src/lib/db/*`: persistent config/state and domain persistence on SQLite
+- `src/lib/localDb.ts`: compatibility re-export for DB modules
+- `src/lib/usageDb.ts`: usage history/call logs facade on top of SQLite tables
-| Szolgáltató | Formátum | Auth | Stream | Nem adatfolyam | Token Refresh | Használati API |
-| ------------------ | ---------------- | ------------------------- | ------------------ | -------------- | ------------- | ------------------------- | ------------------------------ |
-| Claude | claude | API kulcs / OAuth | ✅ | ✅ | ✅ | ⚠️ Csak adminisztrátor |
-| Ikrek | ikrek | API kulcs / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console |
-| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console |
-| Antigravitáció | antigravitáció | OAuth | ✅ | ✅ | ✅ | ✅ Teljes kvóta API |
-| OpenAI | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Codex | openai-responses | OAuth | ✅ kényszer | ❌ | ✅ | ✅ Díjkorlátok |
-| GitHub másodpilóta | openai | OAuth + másodpilóta token | ✅ | ✅ | ✅ | ✅ Kvóta pillanatképek |
-| Kurzor | kurzor | Egyéni ellenőrző összeg | ✅ | ✅ | ❌ | ❌ |
-| Kiro | kiro | AWS SSO OIDC | ✅ (Eseményfolyam) | ❌ | ✅ | ✅ Felhasználási korlátok |
-| Qwen | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ Kérésre |
-| Qoder | openai | OAuth (alap) | ✅ | ✅ | ✅ | ⚠️ Kérésre |
-| OpenRouter | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| GLM/Kimi/MiniMax | claude | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| DeepSeek | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Groq | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| xAI (Grok) | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Mistral | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Zavartság | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Együtt AI | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Tűzijáték AI | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Cerebrák | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| Cohere | openai | API kulcs | ✅ | ✅ | ❌ | ❌ |
-| NVIDIA NIM | openai | API kulcs | ✅ | ✅ | ❌ | ❌ | ## Format Translation Coverage |
+## Provider Executor Coverage (Strategy Pattern)
-Az észlelt forrásformátumok a következők:
+Each provider has a specialized executor extending `BaseExecutor` (in `open-sse/executors/base.ts`), which provides URL building, header construction, retry with exponential backoff, credential refresh hooks, and the `execute()` orchestration method.
-- "openai".
-- "Openai-responses".
+| Executor | Provider(s) | Special Handling |
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |
+| `DefaultExecutor` | OpenAI, Claude, Gemini, Qwen, Qoder, OpenRouter, GLM, Kimi, MiniMax, DeepSeek, Groq, xAI, Mistral, Perplexity, Together, Fireworks, Cerebras, Cohere, NVIDIA | Dynamic URL/header config per provider |
+| `AntigravityExecutor` | Google Antigravity | Custom project/session IDs, Retry-After parsing |
+| `CodexExecutor` | OpenAI Codex | Injects system instructions, forces reasoning effort |
+| `CursorExecutor` | Cursor IDE | ConnectRPC protocol, Protobuf encoding, request signing via checksum |
+| `GithubExecutor` | GitHub Copilot | Copilot token refresh, VSCode-mimicking headers |
+| `KiroExecutor` | AWS CodeWhisperer/Kiro | AWS EventStream binary format → SSE conversion |
+| `GeminiCLIExecutor` | Gemini CLI | Google OAuth token refresh cycle |
+
+All other providers (including custom compatible nodes) use the `DefaultExecutor`.
+
+## Provider Compatibility Matrix
+
+| Provider | Format | Auth | Stream | Non-Stream | Token Refresh | Usage API |
+| ---------------- | ---------------- | --------------------- | ---------------- | ---------- | ------------- | ------------------ |
+| Claude | claude | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Admin only |
+| Gemini | gemini | API Key / OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console |
+| Gemini CLI | gemini-cli | OAuth | ✅ | ✅ | ✅ | ⚠️ Cloud Console |
+| Antigravity | antigravity | OAuth | ✅ | ✅ | ✅ | ✅ Full quota API |
+| OpenAI | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Codex | openai-responses | OAuth | ✅ forced | ❌ | ✅ | ✅ Rate limits |
+| GitHub Copilot | openai | OAuth + Copilot Token | ✅ | ✅ | ✅ | ✅ Quota snapshots |
+| Cursor | cursor | Custom checksum | ✅ | ✅ | ❌ | ❌ |
+| Kiro | kiro | AWS SSO OIDC | ✅ (EventStream) | ❌ | ✅ | ✅ Usage limits |
+| Qwen | openai | OAuth | ✅ | ✅ | ✅ | ⚠️ Per request |
+| Qoder | openai | OAuth (Basic) | ✅ | ✅ | ✅ | ⚠️ Per request |
+| OpenRouter | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| GLM/Kimi/MiniMax | claude | API Key | ✅ | ✅ | ❌ | ❌ |
+| DeepSeek | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Groq | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| xAI (Grok) | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Mistral | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Perplexity | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Together AI | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Fireworks AI | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Cerebras | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| Cohere | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+| NVIDIA NIM | openai | API Key | ✅ | ✅ | ❌ | ❌ |
+
+## Format Translation Coverage
+
+Detected source formats include:
+
+- `openai`
+- `openai-responses`
- `claude`
-- "ikrek".
+- `gemini`
-A célformátumok a következők:
+Target formats include:
-- OpenAI chat/válaszok
+- OpenAI chat/Responses
- Claude
-- Gemini/Gemini-CLI/Antigravitációs boríték
+- Gemini/Gemini-CLI/Antigravity envelope
- Kiro
-- Kurzor
+- Cursor
-A fordítások az**OpenAI-t használják hub-formátumként**– minden konverzió köztesként az OpenAI-n megy keresztül:```
+Translations use **OpenAI as the hub format** — all conversions go through OpenAI as intermediate:
+
+```
Source Format → OpenAI (hub) → Target Format
+```
-````
+Translations are selected dynamically based on source payload shape and provider target format.
-A fordítások kiválasztása dinamikusan történik a forrás hasznos adat alakja és a szolgáltató célformátuma alapján.
+Additional processing layers in the translation pipeline:
-További feldolgozási rétegek a fordítási folyamatban:
+- **Response sanitization** — Strips non-standard fields from OpenAI-format responses (both streaming and non-streaming) to ensure strict SDK compliance
+- **Role normalization** — Converts `developer` → `system` for non-OpenAI targets; merges `system` → `user` for models that reject the system role (GLM, ERNIE)
+- **Think tag extraction** — Parses `...` blocks from content into `reasoning_content` field
+- **Structured output** — Converts OpenAI `response_format.json_schema` to Gemini's `responseMimeType` + `responseSchema`
--**Választisztítás**– Megszünteti a nem szabványos mezőket az OpenAI-formátumú válaszoktól (mind az adatfolyam-, mind a nem adatfolyam-küldéstől) a szigorú SDK-megfelelőség biztosítása érdekében
--**Szerepkör normalizálása**— Átalakítja a "fejlesztő" → "rendszert" nem OpenAI-célokhoz; egyesíti a "rendszer" → "felhasználó" paramétert a rendszerszerepkört elutasító modellekhez (GLM, ERNIE)
--**Think címke kivonatolás**– A tartalomból a `...` blokkokat elemzi a `reasoning_content` mezőbe
--**Strukturált kimenet**- Az OpenAI `response_format.json_schema`-t a Gemini `responseMimeType` + `responseSchema`-jává alakítja## Supported API Endpoints
+## Supported API Endpoints
-| Végpont | Formátum | Kezelő |
-| --------------------------------------------------- | ------------------- | -------------------------------------------------------------------- |
-| `POST /v1/chat/completions` | OpenAI Chat | `src/sse/handlers/chat.ts` |
-| `POST /v1/messages` | Claude Üzenetek | Ugyanaz a kezelő (automatikusan észlelve) |
-| `POST /v1/responses` | OpenAI válaszok | `open-sse/handlers/responsesHandler.ts` |
-| `POST /v1/embeddings` | OpenAI beágyazások | `open-sse/handlers/embeddings.ts` |
-| `GET /v1/embeddings` | Modell lista | API útvonal |
-| `POST /v1/images/generations` | OpenAI Images | `open-sse/handlers/imageGeneration.ts` |
-| `GET /v1/images/generations` | Modell lista | API útvonal |
-| `POST /v1/providers/{provider}/chat/completions` | OpenAI Chat | Dedikált szolgáltatónként modellellenőrzéssel |
-| `POST /v1/providers/{provider}/embeddings` | OpenAI beágyazások | Dedikált szolgáltatónként modellellenőrzéssel |
-| `POST /v1/providers/{provider}/images/generations` | OpenAI Images | Dedikált szolgáltatónként modellellenőrzéssel |
-| `POST /v1/messages/count_tokens` | Claude Token Count | API útvonal |
-| `GET /v1/models` | OpenAI modellek listája | API útvonal (csevegés + beágyazás + kép + egyéni modellek) |
-| `GET /api/models/catalog` | Katalógus | Minden modell szolgáltató + típus szerint csoportosítva |
-| `POST /v1beta/models/*:streamGenerateContent` | Ikrek bennszülött | API route |
-| `GET/PUT/DELETE /api/settings/proxy` | Proxy konfiguráció | Hálózati proxy konfiguráció |
-| `POST /api/settings/proxy/test` | Proxy kapcsolat | Proxy állapot/kapcsolati teszt végpontja |
-| `GET/POST/DELETE /api/provider-models` | Szolgáltatói modellek | A szolgáltatói modell metaadatainak háttere egyéni és felügyelt elérhető modellek |## Bypass Handler
+| Endpoint | Format | Handler |
+| -------------------------------------------------- | ------------------ | ------------------------------------------------------------------- |
+| `POST /v1/chat/completions` | OpenAI Chat | `src/sse/handlers/chat.ts` |
+| `POST /v1/messages` | Claude Messages | Same handler (auto-detected) |
+| `POST /v1/responses` | OpenAI Responses | `open-sse/handlers/responsesHandler.ts` |
+| `POST /v1/embeddings` | OpenAI Embeddings | `open-sse/handlers/embeddings.ts` |
+| `GET /v1/embeddings` | Model listing | API route |
+| `POST /v1/images/generations` | OpenAI Images | `open-sse/handlers/imageGeneration.ts` |
+| `GET /v1/images/generations` | Model listing | API route |
+| `POST /v1/providers/{provider}/chat/completions` | OpenAI Chat | Dedicated per-provider with model validation |
+| `POST /v1/providers/{provider}/embeddings` | OpenAI Embeddings | Dedicated per-provider with model validation |
+| `POST /v1/providers/{provider}/images/generations` | OpenAI Images | Dedicated per-provider with model validation |
+| `POST /v1/messages/count_tokens` | Claude Token Count | API route |
+| `GET /v1/models` | OpenAI Models list | API route (chat + embedding + image + custom models) |
+| `GET /api/models/catalog` | Catalog | All models grouped by provider + type |
+| `POST /v1beta/models/*:streamGenerateContent` | Gemini native | API route |
+| `GET/PUT/DELETE /api/settings/proxy` | Proxy Config | Network proxy configuration |
+| `POST /api/settings/proxy/test` | Proxy Connectivity | Proxy health/connectivity test endpoint |
+| `GET/POST/DELETE /api/provider-models` | Provider Models | Provider model metadata backing custom and managed available models |
-A bypass kezelő (`open-sse/utils/bypassHandler.ts`) elfogja a Claude CLI ismert "kidobási" kéréseit – bemelegítő pingeket, címkivonatokat és tokenszámlálásokat –, és**hamis választ**ad vissza anélkül, hogy felemészti a szolgáltatói tokeneket. Ez csak akkor aktiválódik, ha a „User-Agent” tartalmazza a „claude-cli”-t.## Request Logger Pipeline
+## Bypass Handler
-A kérésnaplózó (`open-sse/utils/requestLogger.ts`) egy 7 szakaszból álló hibakeresési naplózási folyamatot biztosít, amely alapértelmezés szerint le van tiltva, és az `ENABLE_REQUEST_LOGS=true` paraméterrel engedélyezve van:```
+The bypass handler (`open-sse/utils/bypassHandler.ts`) intercepts known "throwaway" requests from Claude CLI — warmup pings, title extractions, and token counts — and returns a **fake response** without consuming upstream provider tokens. This is triggered only when `User-Agent` contains `claude-cli`.
+
+## Request Logger Pipeline
+
+The request logger (`open-sse/utils/requestLogger.ts`) provides a 7-stage debug logging pipeline, disabled by default, enabled via `ENABLE_REQUEST_LOGS=true`:
+
+```
1_req_client.json → 2_req_source.json → 3_req_openai.json → 4_req_target.json
→ 5_res_provider.txt → 6_res_openai.txt → 7_res_client.txt
-````
+```
-A fájlok a `/logs//` mappába íródnak minden egyes kérési munkamenethez.## Failure Modes and Resilience
+Files are written to `/logs/