# OmniRoute — Dashboard Features Gallery (Polski) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇸 [es](../../../es/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇰🇭 [km](../../../km/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇸🇪 [sv](../../../sv/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) --- 🌐 **Języki:** 🇺🇸 [English](./FEATURES.md) | 🇪🇹 [አማርኛ](../i18n/am/docs/guides/FEATURES.md) | 🇸🇦 [العربية](../i18n/ar/docs/guides/FEATURES.md) | 🇦🇿 [Azərbaycan dili](../i18n/az/docs/guides/FEATURES.md) | 🇧🇬 [Български](../i18n/bg/docs/guides/FEATURES.md) | 🇧🇩 [বাংলা](../i18n/bn/docs/guides/FEATURES.md) | 🇧🇦 [Bosanski](../i18n/bs/docs/guides/FEATURES.md) | 🇨🇿 [Čeština](../i18n/cs/docs/guides/FEATURES.md) | 🇩🇰 [Dansk](../i18n/da/docs/guides/FEATURES.md) | 🇩🇪 [Deutsch](../i18n/de/docs/guides/FEATURES.md) | 🇬🇷 [Ελληνικά](../i18n/el/docs/guides/FEATURES.md) | 🇪🇸 [Español](../i18n/es/docs/guides/FEATURES.md) | 🇪🇪 [Eesti](../i18n/et/docs/guides/FEATURES.md) | 🇮🇷 [فارسی](../i18n/fa/docs/guides/FEATURES.md) | 🇫🇮 [Suomi](../i18n/fi/docs/guides/FEATURES.md) | 🇫🇷 [Français](../i18n/fr/docs/guides/FEATURES.md) | 🇮🇪 [Gaeilge](../i18n/ga/docs/guides/FEATURES.md) | 🇮🇳 [ગુજરાતી](../i18n/gu/docs/guides/FEATURES.md) | 🇳🇬 [Hausa](../i18n/ha/docs/guides/FEATURES.md) | 🇮🇱 [עברית](../i18n/he/docs/guides/FEATURES.md) | 🇮🇳 [हिन्दी](../i18n/hi/docs/guides/FEATURES.md) | 🇭🇷 [Hrvatski](../i18n/hr/docs/guides/FEATURES.md) | 🇭🇺 [Magyar](../i18n/hu/docs/guides/FEATURES.md) | 🇦🇲 [Հայերեն](../i18n/hy/docs/guides/FEATURES.md) | 🇮🇩 [Bahasa Indonesia](../i18n/id/docs/guides/FEATURES.md) | 🇳🇬 [Igbo](../i18n/ig/docs/guides/FEATURES.md) | 🇮🇹 [Italiano](../i18n/it/docs/guides/FEATURES.md) | 🇯🇵 [日本語](../i18n/ja/docs/guides/FEATURES.md) | 🇬🇪 [ქართული](../i18n/ka/docs/guides/FEATURES.md) | 🇰🇭 [ខ្មែរ](../i18n/km/docs/guides/FEATURES.md) | 🇮🇳 [ಕನ್ನಡ](../i18n/kn/docs/guides/FEATURES.md) | 🇰🇷 [한국어](../i18n/ko/docs/guides/FEATURES.md) | 🇱🇹 [Lietuvių](../i18n/lt/docs/guides/FEATURES.md) | 🇱🇻 [Latviešu](../i18n/lv/docs/guides/FEATURES.md) | 🇮🇳 [മലയാളം](../i18n/ml/docs/guides/FEATURES.md) | 🇮🇳 [मराठी](../i18n/mr/docs/guides/FEATURES.md) | 🇲🇾 [Bahasa Melayu](../i18n/ms/docs/guides/FEATURES.md) | 🇲🇹 [Malti](../i18n/mt/docs/guides/FEATURES.md) | 🇲🇲 [မြန်မာ](../i18n/my/docs/guides/FEATURES.md) | 🇳🇵 [नेपाली](../i18n/ne/docs/guides/FEATURES.md) | 🇳🇱 [Nederlands](../i18n/nl/docs/guides/FEATURES.md) | 🇳🇴 [Norsk](../i18n/no/docs/guides/FEATURES.md) | 🇮🇳 [ଓଡ଼ିଆ](../i18n/or/docs/guides/FEATURES.md) | 🇮🇳 [ਪੰਜਾਬੀ](../i18n/pa/docs/guides/FEATURES.md) | 🇵🇭 [Filipino](../i18n/phi/docs/guides/FEATURES.md) | 🇵🇱 [Polski](../i18n/pl/docs/guides/FEATURES.md) | 🇵🇹 [Português (Portugal)](../i18n/pt/docs/guides/FEATURES.md) | 🇧🇷 [Português (Brasil)](../i18n/pt-BR/docs/guides/FEATURES.md) | 🇷🇴 [Română](../i18n/ro/docs/guides/FEATURES.md) | 🇷🇺 [Русский](../i18n/ru/docs/guides/FEATURES.md) | 🇱🇰 [සිංහල](../i18n/si/docs/guides/FEATURES.md) | 🇸🇰 [Slovenčina](../i18n/sk/docs/guides/FEATURES.md) | 🇸🇮 [Slovenščina](../i18n/sl/docs/guides/FEATURES.md) | 🇷🇸 [Српски](../i18n/sr/docs/guides/FEATURES.md) | 🇸🇪 [Svenska](../i18n/sv/docs/guides/FEATURES.md) | 🇰🇪 [Kiswahili](../i18n/sw/docs/guides/FEATURES.md) | 🇮🇳 [தமிழ்](../i18n/ta/docs/guides/FEATURES.md) | 🇮🇳 [తెలుగు](../i18n/te/docs/guides/FEATURES.md) | 🇹🇭 [ไทย](../i18n/th/docs/guides/FEATURES.md) | 🇹🇷 [Türkçe](../i18n/tr/docs/guides/FEATURES.md) | 🇺🇦 [Українська](../i18n/uk-UA/docs/guides/FEATURES.md) | 🇵🇰 [اردو](../i18n/ur/docs/guides/FEATURES.md) | 🇺🇿 [Oʻzbekcha](../i18n/uz/docs/guides/FEATURES.md) | 🇻🇳 [Tiếng Việt](../i18n/vi/docs/guides/FEATURES.md) | 🇳🇬 [Yorùbá](../i18n/yo/docs/guides/FEATURES.md) | 🇨🇳 [中文 (简体)](../i18n/zh-CN/docs/guides/FEATURES.md) | 🇹🇼 [中文 (繁體)](../i18n/zh-TW/docs/guides/FEATURES.md) Wizualny przewodnik po każdej sekcji panelu OmniRoute. > 📅 **Ostatnia aktualizacja:** 2026-06-28 — **v3.8.40** --- ## ✨ Najważniejsze zmiany w v3.8.0 Cykl v3.7.x → v3.8.0 wprowadził automatyczny routing bez konfiguracji, nowych dostawców, przepływy OAuth, większą odporność oraz znacznie bogatsze możliwości CLI. Najważniejsze funkcje przedstawiono poniżej — pełne informacje znajdują się w dalszej części dokumentu oraz w podlinkowanych specyfikacjach. - 🤖 **Auto Combo / automatyczny routing bez konfiguracji** — używaj prefiksów `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Mechanizm opiera się na 16-czynnikowym systemie oceny i 6 starannie dobranych **pakietach trybów** (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Dostawca Command Code** (#2199) — pełnoprawna rejestracja z katalogiem modeli i śledzeniem limitów - 🆕 **Dostawca Z.AI** — nowy dostawca z bezpłatnym planem i etykietami limitów - 🎬 **Rozszerzenie multimedialne KIE** — rozbudowany katalog obejmujący modele generowania wideo - 🔐 **Uwierzytelnianie Devin** — aplikacja Desktop importuje istniejący klucz API Devin; CLI korzysta z lokalnych danych logowania `devin auth login` - 🆓 **8 nowych bezpłatnych dostawców** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Routing warstw W1–W4 uwzględniający manifesty** — manifesty dostawców sterują ważonym wyborem warstwy - 🎨 **Pełna zgodność Cursor z OpenAI** — kompleksowa obsługa wywołań narzędzi, strumieniowania i zarządzania sesjami - 📊 **Wykorzystanie planu Cursor Pro** — dane o limitach i cyklach są dostępne w panelu limitów dostawców - ⚡ **Podział według warstw usług / analityka szybkiej warstwy Codex** — widoczność zużycia dla poszczególnych warstw - 📌 **Trwały routing dla sesji** — sesje Codex pozostają przypisane do tego samego konta między kolejnymi interakcjami - 🔊 **Ulepszenia Inworld TTS** — katalogi głosów oraz usprawnienia strumieniowania i opóźnień - 🔑 **Bezinterfejsowe uwierzytelnianie Kiro** — logowanie za pośrednictwem lokalnego magazynu SQLite `kiro-cli`, bez konieczności używania przeglądarki - 📉 **Monitorowanie limitów i ograniczeń DeepSeek** — dzienne i miesięczne wykorzystanie jest dostępne w panelu - 🔄 **Strategia routingu uwzględniająca resetowanie limitów** — kombinacje preferują teraz konta, których okno limitu zostanie zresetowane najwcześniej - ⏱️ **`fallbackDelayMs`** i **dynamiczne wykrywanie limitu narzędzi** — dokładniejsze sterowanie czasem przełączania awaryjnego oraz limity liczby narzędzi dla poszczególnych dostawców - 🔧 **Degradacja trybu działania w tle (Responses API)** — przełącza się na tryb synchroniczny i wyświetla ustrukturyzowane ostrzeżenie, gdy usługa nadrzędna nie obsługuje odpytywania w tle - 🚦 **Klasyfikacja błędów 429 dla poszczególnych dostawców** + przełącznik `useUpstream429BreakerHints` — precyzyjniejsze działanie mechanizmu odcinającego z wykorzystaniem informacji o ograniczeniach częstotliwości z usługi nadrzędnej - 🩺 **Panel okresów karencji modeli** — umożliwia obserwowanie blokad poszczególnych modeli i ich ręczne ponowne włączanie z poziomu interfejsu - 🔒 **Dynamiczne wykrywanie certyfikatów MITM w systemie Linux** — działa w Debian/Ubuntu, Fedora/RHEL, Arch i innych dystrybucjach - 💻 **Pakiet ulepszeń CLI** — ponad 20 poleceń, w tym `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Wykrywanie modeli osadzania Qdrant** — automatyczne sondowanie modelu magazynu wektorowego - 🔑 **Klucze API / klucze Bearer z zakresem `manage`** — programowe wykonywanie operacji administracyjnych za pośrednictwem API - 🏥 **Analityka kondycji celów kombinacji** + **ustrukturyzowany kreator kombinacji** — kondycja poszczególnych celów oraz kreator interfejsu do tworzenia kroków `(provider, model, connection)` - 🤝 **Dostawca GitLab Duo OAuth** — logowanie przy użyciu danych uwierzytelniających GitLab - 🧠 **Pamięć podręczna Reasoning Replay Cache** — hybrydowe przechowywanie śladów rozumowania w pamięci i SQLite 📚 **Powiązana dokumentacja:** [Framework umiejętności](../frameworks/SKILLS.md) · [System pamięci](../frameworks/MEMORY.md) · [Agenci chmurowi](../frameworks/CLOUD_AGENT.md) · [Webhooki](../frameworks/WEBHOOKS.md) · [Pamięć podręczna Reasoning Replay Cache](../routing/REASONING_REPLAY.md) --- ## 🔌 Dostawcy Zarządzaj połączeniami z dostawcami AI: dostawcami OAuth (Claude Code, Codex), dostawcami korzystającymi z kluczy API (Groq, DeepSeek, OpenRouter) oraz bezpłatnymi dostawcami (Qoder, Kiro). Konta Kiro obejmują śledzenie salda kredytów — pozostałe kredyty, łączny limit oraz data odnowienia są widoczne w Panelu → Użycie. Połączenia OpenRouter mogą przechowywać ustawienie `preset` dla każdego połączenia w Ustawieniach zaawansowanych. Gdy jest ono ustawione, OmniRoute wysyła je jako pole najwyższego poziomu żądania OpenRouter, na przykład `"preset": "email-copywriter"`, chyba że żądanie klienta zawiera już własne ustawienie `preset`. ![Panel dostawców](../screenshots/01-providers.png) --- ## 🎨 Kombinacje Twórz kombinacje routingu modeli za pomocą 19 publicznych strategii: priorytetowej, ważonej, round-robin, przekazywania kontekstu, wypełniania od pierwszego, p2c (wybór spośród dwóch możliwości), losowej, najrzadziej używanej, zoptymalizowanej pod kątem kosztów, uwzględniającej reset, okna resetowania, zapasu, ściśle losowej, automatycznej, lkgp (ostatni znany działający dostawca), zoptymalizowanej pod kątem kontekstu, zoptymalizowanej pod kątem pamięci podręcznej, **fusion** (równoległe wysyłanie zapytań do panelu modeli, a następnie synteza jednej odpowiedzi przez model oceniający) oraz **pipeline**. Każda kombinacja łączy wiele modeli z automatycznym mechanizmem awaryjnym oraz zawiera szybkie szablony i kontrole gotowości. Najnowsze ulepszenia kombinacji: - **Ustrukturyzowany kreator kombinacji** — twórz każdy krok, wybierając dostawcę, model oraz konkretne konto/połączenie - **Obsługa powtarzających się dostawców** — używaj tego samego dostawcy wielokrotnie w jednej kombinacji, o ile krotka `(provider, model, connection)` jest unikatowa - **Kondycja celów kombinacji** — analityka i widoki kondycji rozróżniają teraz poszczególne cele/kroki kombinacji, zamiast sprowadzać wszystko do ciągów znaków modeli - **Kolejność poziomów złożonych** — `defaultTier -> fallbackTier` wpływa teraz na kolejność wykonywania i przełączania awaryjnego w czasie działania dla kroków kombinacji najwyższego poziomu - **Szablony komunikatów systemowych** — parametr `system_message` kombinacji obsługuje po stronie serwera symbole zastępcze `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` i `{{FINGERPRINT}}`, rozwijane na podstawie faktycznie wybranego celu tuż przed wysłaniem. Dozwolone są wyłącznie symbole z listy dopuszczonych, bez rekursji; nieznane symbole zastępcze pozostają bez zmian; puste wartości są rozwijane do pustych ciągów; komunikaty systemowe klienta nigdy nie są modyfikowane. `{{FINGERPRINT}}` jest rozwiązywany wyłącznie dla bezpłatnych dostawców opartych na odciskach palca, z przypiętym lub automatycznie rotowanym odciskiem palca — w pozostałych przypadkach jest rozwijany do pustego ciągu (np. dla połączeń z jednym odciskiem palca lub dostawców niekorzystających z odcisków palca). Rozwijanie obejmuje standardową pętlę wysyłania, round-robin oraz przypięte sesje pamięci podręcznej kontekstu; strategie fusion, chaos, pipeline i nested-execute nie rozwijają jeszcze symboli zastępczych. ![Panel kombinacji](../screenshots/02-combos.png) --- ## 📊 Analityka Kompleksowa analityka użycia obejmująca zużycie tokenów, szacunkowe koszty, mapy cieplne aktywności, wykresy rozkładu tygodniowego oraz zestawienia według dostawców. ![Panel analityki](../screenshots/03-analytics.png) --- ## 🏥 Kondycja systemu Monitorowanie w czasie rzeczywistym: czas działania, pamięć, wersja, percentyle opóźnień (p50/p95/p99), statystyki pamięci podręcznej, stany wyłączników automatycznych dostawców, aktywne sesje z monitorowaniem limitów oraz kondycja celów kombinacji. ![Panel kondycji](../screenshots/04-health.png) --- ## 🔧 Translator Playground Cztery tryby debugowania tłumaczeń API: **Playground** (konwerter formatów), **Chat Tester** (żądania na żywo), **Test Bench** (testy wsadowe) oraz **Live Monitor** (strumień w czasie rzeczywistym). ![Translator Playground](../screenshots/05-translator.png) --- ## 🎮 Model Playground _(v2.0.9+)_ Testuj dowolny model bezpośrednio z poziomu panelu. Wybierz dostawcę, model i punkt końcowy, twórz prompty w edytorze Monaco Editor, odbieraj strumieniowo odpowiedzi w czasie rzeczywistym, przerywaj je w trakcie przesyłania i przeglądaj metryki czasowe. --- ## 🎨 Motywy _(v2.0.5+)_ Konfigurowalne motywy kolorystyczne dla całego panelu. Wybierz jeden z 7 gotowych kolorów (koralowy, niebieski, czerwony, zielony, fioletowy, pomarańczowy, cyjan) lub utwórz własny motyw, wybierając dowolny kolor w formacie szesnastkowym. Obsługuje tryb jasny, ciemny i systemowy. --- ## ⚙️ Ustawienia Rozbudowany panel ustawień z **7 kartami**: - **Ogólne** — Pamięć systemowa, zarządzanie kopiami zapasowymi (eksport/import bazy danych) - **Wygląd** — Wybór motywu (ciemny/jasny/systemowy), gotowe motywy kolorystyczne i kolory niestandardowe, widoczność dziennika stanu, elementów paska bocznego i separatorów grup oraz tuneli punktów końcowych - **AI** — Funkcje asystenta AI, domyślne ustawienia routingu (Auto Combo `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), pamięć podręczna odtwarzania rozumowania oraz przełączniki umiejętności/pamięci - **Bezpieczeństwo** — Ochrona punktów końcowych API, blokowanie niestandardowych dostawców, filtrowanie adresów IP, informacje o sesji - **Routing** — Aliasy modeli, degradacja zadań w tle, routing warstw uwzględniający manifest (W1–W4), `fallbackDelayMs`, routing przypisany do sesji - **Odporność** — Trwałe przechowywanie limitów żądań, dostrajanie mechanizmu circuit breaker, automatyczne wyłączanie zablokowanych kont, monitorowanie wygaśnięcia dostawców, próg przekazania **Context Relay** i konfiguracja modelu podsumowującego, klasyfikacja błędów 429 dla poszczególnych dostawców oraz przełącznik `useUpstream429BreakerHints`, okresy wyciszenia modeli - **Zaawansowane** — Nadpisywanie konfiguracji, dziennik audytu konfiguracji, tryb degradacji mechanizmu rezerwowego, degradacja trybu działania w tle dla Responses API ![Panel ustawień](../screenshots/06-settings.png) --- ## 🔧 Narzędzia CLI Konfiguracja narzędzi AI do programowania jednym kliknięciem: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor i Factory Droid. Obejmuje automatyczne stosowanie/resetowanie konfiguracji, profile połączeń i mapowanie modeli. ![Panel narzędzi CLI](../screenshots/07-cli-tools.png) --- ## 🤖 Agenci CLI _(v2.0.11+)_ Panel do wykrywania agentów CLI i zarządzania nimi. Wyświetla siatkę 16 wbudowanych agentów (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) wraz z następującymi informacjami i funkcjami: - **Stan instalacji** — Zainstalowano / Nie znaleziono, z wykrywaniem wersji - **Odznaki protokołów** — stdio, HTTP itp. - **Agenci niestandardowi** — Rejestrowanie dowolnego narzędzia CLI za pomocą formularza (nazwa, plik binarny, polecenie wersji, argumenty uruchomieniowe) - **Dopasowywanie odcisku klienta CLI** — Przełącznik dla każdego dostawcy umożliwiający dopasowanie natywnych sygnatur żądań CLI, co zmniejsza ryzyko blokady przy zachowaniu adresu IP serwera proxy - **Lokalne uwierzytelnianie Devin** — Devin CLI używa `devin auth login`; przepływ OAuth w przeglądarce nie jest wymagany --- ## 🔗 Przekazywanie kontekstu _(v3.5.5+)_ Strategia combo, która zachowuje ciągłość sesji, gdy w trakcie konwersacji następuje rotacja kont. Zanim aktywne konto wyczerpie swój limit, OmniRoute generuje w tle ustrukturyzowane podsumowanie przekazania. Gdy kolejne żądanie zostanie przypisane do innego konta, podsumowanie jest wstawiane jako komunikat systemowy, dzięki czemu nowe konto kontynuuje pracę z pełnym kontekstem. Funkcję można skonfigurować na poziomie combo lub w ustawieniach globalnych: - **Próg przekazania** — Procent wykorzystania limitu, który uruchamia generowanie podsumowania (domyślnie 85%) - **Maksymalna liczba wiadomości w podsumowaniu** — Zakres ostatniej historii do skondensowania - **Model podsumowania** — Opcjonalny model zastępczy do generowania podsumowania przekazania Obecnie obsługiwana jest rotacja kont Codex. Zobacz [dokumentację przekazywania kontekstu](../architecture/ARCHITECTURE.md). --- ## 🗜️ Kompresja promptów _(v3.7.9+)_ Sekcja Context & Cache udostępnia teraz dedykowane strony dla Caveman, RTK oraz Compression Combos: - **Caveman** — pakiety reguł uwzględniające język, podgląd, ustawienia trybu wyjściowego i analityka - **RTK** — kompresja uwzględniająca polecenia dla powłoki, git, testów, kompilacji, pakietów, Docker, infrastruktury, JSON oraz danych wyjściowych śladów stosu - **Compression Combos** — nazwane potoki, takie jak `rtk -> caveman`, przypisywane do combo routingu; domyślne łączne obliczenia zapewniają średnio `~89%` oraz `78-95%` oszczędności kwalifikującego się kontekstu, gdy stosowane są oba mechanizmy - **Odzyskiwanie surowych danych wyjściowych** — opcjonalne, zanonimizowane odnośniki RTK do surowych danych wyjściowych, przeznaczone do debugowania błędów kompresji Zobacz [przewodnik po kompresji](../compression/COMPRESSION_GUIDE.md), [kompresję RTK](../compression/RTK_COMPRESSION.md) oraz [mechanizmy kompresji](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Wzmocnienie zabezpieczeń proxy _(v3.5.5+)_ Kompleksowe egzekwowanie konfiguracji proxy w całym potoku obsługi żądań: - **Kontrola stanu tokenu** — Odświeżanie OAuth w tle rozpoznaje teraz konfigurację proxy dla każdego połączenia, zapobiegając błędom w środowiskach wymagających proxy - **Weryfikacja klucza API** — Weryfikacja klucza dostawcy (`POST /api/providers/validate`) jest kierowana przez `runWithProxyContext` z uwzględnieniem ustawień proxy na poziomie dostawcy i ustawień globalnych - **Poprawka modułu rozsyłającego undici** — Moduły rozsyłające proxy używają implementacji fetch należącej do undici zamiast wbudowanej implementacji Node, co eliminuje błędy `invalid onRequestStart method` w Node.js 22 - **Wykrywanie wersji Node.js** — Strona logowania aktywnie wykrywa niezgodne wersje Node.js (24+) i wyświetla baner ostrzegawczy z instrukcjami dotyczącymi użycia Node 22 LTS --- ## 📧 Maskowanie adresów e-mail dla ochrony prywatności _(v3.5.6+)_ Adresy e-mail kont OAuth są domyślnie maskowane (np. `di*****@g****.com`), aby zapobiec ich przypadkowemu ujawnieniu podczas udostępniania zrzutów ekranu lub nagrywania prezentacji. Użyj opcji Ustawienia → Wygląd → Widoczność adresu e-mail konta, aby globalnie wyświetlać lub maskować pełne adresy e-mail kont na ekranach dostawców, combo, dzienników, limitów i placu zabaw. --- ## 👁️ Przełącznik widoczności modeli _(v3.5.6+)_ Lista modeli na stronie dostawcy zawiera teraz: - **Pasek wyszukiwania/filtrowania w czasie rzeczywistym** — Umożliwia szybkie znajdowanie konkretnych modeli - **Przełącznik widoczności dla każdego modelu** (ikona 👁) — Ukryte modele są wyszarzone i wykluczone z katalogu `/v1/models` - **Znacznik liczby aktywnych modeli** (`N/M aktywnych`) — Pozwala szybko sprawdzić, ile modeli jest włączonych w porównaniu z ich łączną liczbą --- ## 🔧 Naprawa zmiennych środowiskowych OAuth _(v3.6.1+)_ Dostępna jednym kliknięciem akcja „Napraw zmienne środowiskowe” dla dostawców OAuth, która przywraca brakujące zmienne środowiskowe i naprawia uszkodzony stan uwierzytelniania. Dostępna w `Panel → Dostawcy → [Dostawca OAuth] → Napraw zmienne środowiskowe`. Automatycznie wykrywa i naprawia: - Brakujące dane uwierzytelniające klienta OAuth - Uszkodzone wpisy w pliku zmiennych środowiskowych - Oczyszczanie ścieżki kopii zapasowej --- ## 🗑️ Odinstalowanie / Pełne odinstalowanie _(v3.6.2+)_ Skrypty umożliwiające czyste usunięcie aplikacji dla wszystkich metod instalacji: | Polecenie | Działanie | | ------------------------ | ----------------------------------------------------------------------------------------- | | `npm run uninstall` | Usuwa aplikację systemową, ale **zachowuje bazę danych i konfiguracje** w `~/.omniroute`. | | `npm run uninstall:full` | Usuwa aplikację ORAZ trwale **kasuje wszystkie konfiguracje, klucze i bazy danych**. | --- ## 🖼️ Multimedia _(v2.0.3+)_ Generuj obrazy, filmy i muzykę z poziomu panelu. Obsługuje OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open oraz MusicGen. --- ## 📝 Dzienniki żądań Rejestrowanie żądań w czasie rzeczywistym z filtrowaniem według dostawcy, modelu, konta i klucza API. Wyświetla kody stanu, użycie tokenów, opóźnienia i szczegóły odpowiedzi. ![Dzienniki użycia](../screenshots/08-usage.png) --- ## 🌐 Punkt końcowy API Ujednolicony punkt końcowy API z podziałem na obsługiwane funkcje: uzupełnianie czatu, Responses API, osadzanie, generowanie obrazów, ponowne ustalanie rankingu, transkrypcja dźwięku, zamiana tekstu na mowę, moderowanie oraz zarejestrowane klucze API. Do zdalnego dostępu dostępna jest obsługa Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel i serwera proxy w chmurze. ![Panel punktu końcowego](../screenshots/09-endpoint.png) --- ## 🔑 Zarządzanie kluczami API Twórz, ograniczaj zakres i unieważniaj klucze API. Każdy klucz można ograniczyć do określonych modeli lub dostawców, nadając mu pełny dostęp albo uprawnienia tylko do odczytu. Wizualne zarządzanie kluczami ze śledzeniem użycia. --- ## 📋 Dziennik audytu Śledzenie działań administracyjnych z filtrowaniem według typu działania, wykonawcy, celu, adresu IP i znacznika czasu. Pełna historia zdarzeń związanych z bezpieczeństwem. --- ## 🖥️ Aplikacja komputerowa Natywna aplikacja komputerowa Electron dla systemów Windows, macOS i Linux. Uruchamiaj OmniRoute jako samodzielną aplikację z integracją z zasobnikiem systemowym, obsługą trybu offline, automatycznymi aktualizacjami i instalacją jednym kliknięciem. Najważniejsze funkcje: - Sprawdzanie gotowości serwera (brak pustego ekranu podczas uruchamiania od zera) - Zasobnik systemowy z zarządzaniem portami - Polityka bezpieczeństwa treści - Blokada pojedynczej instancji - Automatyczna aktualizacja po ponownym uruchomieniu - Interfejs zależny od platformy (przyciski sterowania oknem w systemie macOS, domyślny pasek tytułu w systemach Windows/Linux) - Wzmocnione zabezpieczenia podczas pakowania kompilacji Electron — dowiązany symbolicznie katalog `node_modules` w samodzielnym pakiecie jest wykrywany i odrzucany przed pakowaniem, co zapobiega zależności środowiska uruchomieniowego od maszyny kompilującej (v2.5.5+) - **Łagodne zamykanie** — zdarzenie Electron `before-quit` poprawnie zamyka Next.js, zapobiegając blokadom bazy danych SQLite WAL (v3.6.2+) 📖 Pełna dokumentacja znajduje się w pliku [`electron/README.md`](../../electron/README.md). --- ## 🌐 Most WebSocket V1 _(v3.6.6+)_ OmniRoute obsługuje teraz **klientów WebSocket zgodnych z OpenAI** za pośrednictwem punktu końcowego aktualizacji `/v1/ws`. Niestandardowy serwer `scripts/dev/v1-ws-bridge.mjs` opakowuje Next.js i aktualizuje połączenia WS do pełnych, dwukierunkowych sesji strumieniowych. Uwierzytelnianie korzysta z tego samego klucza API lub pliku cookie sesji co żądania HTTP. Najważniejsze zachowania: - Aktualizacja WS jest weryfikowana przez `src/lib/ws/handshake.ts` przed ustanowieniem połączenia - Strumienie są prawidłowo kończone po zamknięciu sesji lub wystąpieniu błędu po stronie usługi nadrzędnej - Działa jednocześnie z istniejącą ścieżką strumieniową HTTP+SSE --- ## 🔑 Tokeny synchronizacji i pakiet konfiguracji _(v3.6.6+)_ Dostęp z wielu urządzeń oraz dostęp dla operatorów zewnętrznych jest teraz możliwy za pomocą **tokenów synchronizacji o określonym zakresie**: - **`POST /api/sync/tokens`** — Wydaje nowy token synchronizacji (o określonym zakresie, z opcjonalnym terminem wygaśnięcia) - **`DELETE /api/sync/tokens/:id`** — Unieważnia token - **`GET /api/sync/bundle`** — Pobiera wersjonowany zrzut konfiguracji w formacie JSON, identyfikowany za pomocą ETag (uwierzytelnianie wyłącznie tokenem synchronizacji). Ustawienia uwierzytelniania, takie jak hasło panelu, są usuwane, ale dane uwierzytelniające dostawców i klucze API są uwzględniane, dlatego plik należy traktować jako poufny Pakiet konfiguracji jest tworzony przez `src/lib/sync/bundle.ts`. Klienci porównują nagłówek odpowiedzi `ETag`, aby wykrywać zmiany bez ponownego pobierania całego ładunku. W interfejsie CLI polecenie `omniroute sync bundle --token ` (lub `OMNIROUTE_SYNC_TOKEN`) zapisuje go w pliku dostępnym wyłącznie dla właściciela. --- ## 🧠 Ustawienie wstępne GLM Thinking _(v3.6.6+)_ **GLM Thinking (`glmt`)** jest teraz zarejestrowanym, pełnoprawnym dostawcą: maksymalnie 65 536 tokenów wyjściowych, budżet rozumowania wynoszący 24 576 tokenów, domyślny limit czasu 900 s, format API zgodny z Claude oraz współdzielona synchronizacja użycia z rodziną GLM. W wersji v3.6.6 wprowadzono również **hybrydowe zliczanie tokenów**: gdy dostawca zgodny z Claude udostępnia `/messages/count_tokens`, OmniRoute wywołuje ten punkt końcowy przed dużymi żądaniami, a w razie niepowodzenia płynnie przechodzi na szacowanie. --- ## 🛡️ Bezpieczne żądania wychodzące i ochrona przed SSRF _(v3.6.6+)_ Wszystkie wywołania służące do walidacji dostawców i wykrywania modeli przechodzą teraz przez dwuwarstwową ochronę ruchu wychodzącego: 1. **Ochrona adresów URL** (`src/shared/network/outboundUrlGuard.ts`) — Najpierw sprawdza nazwę hosta lub literał adresu IP celu w zapisanej postaci; w trybie wyłącznie publicznym opakowanie bezpiecznego pobierania rozwiązuje również nazwę i odrzuca prywatne adresy wynikowe. Domyślnie blokuje punkty końcowe metadanych chmurowych — cały zakres 169.254.0.0/16 oraz znane nazwy hostów metadanych; `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` blokuje także hosty prywatne i lokalne, natomiast `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` (lub starsza zmienna `OUTBOUND_SSRF_GUARD_ENABLED=false`) wyłącza te kontrole. Wartość zapisana za pomocą przełącznika flagi w panelu ma pierwszeństwo przed odpowiadającą jej zmienną, a wbudowani lokalni dostawcy pomijają ochronę podczas walidacji klucza. Zobacz `docs/reference/ENVIRONMENT.md`. 2. **Opakowanie bezpiecznego pobierania** (`src/shared/network/safeOutboundFetch.ts`) — Stosuje ochronę adresów URL, normalizuje limity czasu i ponawia żądania po błędach przejściowych, używając wykładniczego opóźnienia. Naruszenia reguł ochrony są zgłaszane jako `URL_GUARD_BLOCKED` — HTTP 503 za pośrednictwem `getSafeOutboundFetchErrorStatus` (400 w trasie wykrywania modeli) — a rzeczywiste blokady SSRF podczas walidacji są zapisywane w dzienniku audytu jako zdarzenia `provider.validation.ssrf_blocked`. --- ## 🔄 Ponawianie żądań z uwzględnieniem okresu oczekiwania _(v3.6.6+)_ Żądania czatu są teraz **automatycznie ponawiane**, gdy dostawca nadrzędny zwróci okres oczekiwania dotyczący danego modelu. Funkcję można skonfigurować za pomocą `REQUEST_RETRY` (domyślnie: 2) i `MAX_RETRY_INTERVAL_SEC` (domyślnie: 30 s). Ulepszono interpretowanie nagłówków limitów częstotliwości dla `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` i `Retry-After` — stan okresu oczekiwania dla poszczególnych modeli jest widoczny w panelu Odporność. --- ## 📋 Audyt zgodności v2 _(v3.6.6+)_ Dziennik audytu rozszerzono o stronicowanie oparte na kursorze, wzbogacanie kontekstu żądania (identyfikator żądania, agent użytkownika, adres IP), ustrukturyzowane zdarzenia uwierzytelniania, zdarzenia CRUD dostawców z kontekstem różnic oraz rejestrowanie walidacji zablokowanych z powodu SSRF. Nowe zdarzenia są emitowane przez `src/lib/compliance/providerAudit.ts`.