# Environment Variables Reference (Slovenčina) 🌐 **Languages:** 🇺🇸 [English](../../../../reference/ENVIRONMENT.md) · 🇪🇹 [am](../../../am/docs/reference/ENVIRONMENT.md) · 🇸🇦 [ar](../../../ar/docs/reference/ENVIRONMENT.md) · 🇦🇿 [az](../../../az/docs/reference/ENVIRONMENT.md) · 🇧🇬 [bg](../../../bg/docs/reference/ENVIRONMENT.md) · 🇧🇩 [bn](../../../bn/docs/reference/ENVIRONMENT.md) · 🇧🇦 [bs](../../../bs/docs/reference/ENVIRONMENT.md) · 🇨🇿 [cs](../../../cs/docs/reference/ENVIRONMENT.md) · 🇩🇰 [da](../../../da/docs/reference/ENVIRONMENT.md) · 🇩🇪 [de](../../../de/docs/reference/ENVIRONMENT.md) · 🇬🇷 [el](../../../el/docs/reference/ENVIRONMENT.md) · 🇪🇸 [es](../../../es/docs/reference/ENVIRONMENT.md) · 🇪🇪 [et](../../../et/docs/reference/ENVIRONMENT.md) · 🇮🇷 [fa](../../../fa/docs/reference/ENVIRONMENT.md) · 🇫🇮 [fi](../../../fi/docs/reference/ENVIRONMENT.md) · 🇫🇷 [fr](../../../fr/docs/reference/ENVIRONMENT.md) · 🇮🇪 [ga](../../../ga/docs/reference/ENVIRONMENT.md) · 🇮🇳 [gu](../../../gu/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ha](../../../ha/docs/reference/ENVIRONMENT.md) · 🇮🇱 [he](../../../he/docs/reference/ENVIRONMENT.md) · 🇮🇳 [hi](../../../hi/docs/reference/ENVIRONMENT.md) · 🇭🇷 [hr](../../../hr/docs/reference/ENVIRONMENT.md) · 🇭🇺 [hu](../../../hu/docs/reference/ENVIRONMENT.md) · 🇦🇲 [hy](../../../hy/docs/reference/ENVIRONMENT.md) · 🇮🇩 [id](../../../id/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ig](../../../ig/docs/reference/ENVIRONMENT.md) · 🇮🇹 [it](../../../it/docs/reference/ENVIRONMENT.md) · 🇯🇵 [ja](../../../ja/docs/reference/ENVIRONMENT.md) · 🇬🇪 [ka](../../../ka/docs/reference/ENVIRONMENT.md) · 🇰🇭 [km](../../../km/docs/reference/ENVIRONMENT.md) · 🇮🇳 [kn](../../../kn/docs/reference/ENVIRONMENT.md) · 🇰🇷 [ko](../../../ko/docs/reference/ENVIRONMENT.md) · 🇱🇹 [lt](../../../lt/docs/reference/ENVIRONMENT.md) · 🇱🇻 [lv](../../../lv/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ml](../../../ml/docs/reference/ENVIRONMENT.md) · 🇮🇳 [mr](../../../mr/docs/reference/ENVIRONMENT.md) · 🇲🇾 [ms](../../../ms/docs/reference/ENVIRONMENT.md) · 🇲🇹 [mt](../../../mt/docs/reference/ENVIRONMENT.md) · 🇲🇲 [my](../../../my/docs/reference/ENVIRONMENT.md) · 🇳🇵 [ne](../../../ne/docs/reference/ENVIRONMENT.md) · 🇳🇱 [nl](../../../nl/docs/reference/ENVIRONMENT.md) · 🇳🇴 [no](../../../no/docs/reference/ENVIRONMENT.md) · 🇮🇳 [or](../../../or/docs/reference/ENVIRONMENT.md) · 🇮🇳 [pa](../../../pa/docs/reference/ENVIRONMENT.md) · 🇵🇭 [phi](../../../phi/docs/reference/ENVIRONMENT.md) · 🇵🇱 [pl](../../../pl/docs/reference/ENVIRONMENT.md) · 🇵🇹 [pt](../../../pt/docs/reference/ENVIRONMENT.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/ENVIRONMENT.md) · 🇷🇴 [ro](../../../ro/docs/reference/ENVIRONMENT.md) · 🇷🇺 [ru](../../../ru/docs/reference/ENVIRONMENT.md) · 🇱🇰 [si](../../../si/docs/reference/ENVIRONMENT.md) · 🇸🇮 [sl](../../../sl/docs/reference/ENVIRONMENT.md) · 🇷🇸 [sr](../../../sr/docs/reference/ENVIRONMENT.md) · 🇸🇪 [sv](../../../sv/docs/reference/ENVIRONMENT.md) · 🇰🇪 [sw](../../../sw/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ta](../../../ta/docs/reference/ENVIRONMENT.md) · 🇮🇳 [te](../../../te/docs/reference/ENVIRONMENT.md) · 🇹🇭 [th](../../../th/docs/reference/ENVIRONMENT.md) · 🇹🇷 [tr](../../../tr/docs/reference/ENVIRONMENT.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/ENVIRONMENT.md) · 🇵🇰 [ur](../../../ur/docs/reference/ENVIRONMENT.md) · 🇺🇿 [uz](../../../uz/docs/reference/ENVIRONMENT.md) · 🇻🇳 [vi](../../../vi/docs/reference/ENVIRONMENT.md) · 🇳🇬 [yo](../../../yo/docs/reference/ENVIRONMENT.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/ENVIRONMENT.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/ENVIRONMENT.md) --- > Kompletný prehľad všetkých premenných prostredia, ktoré OmniRoute rozpoznáva. > Šablónu na rýchly začiatok nájdete v súbore [`.env.example`](../../.env.example). > [!IMPORTANT] > Každá premenná zdokumentovaná na tomto mieste sa musí nachádzať aj v súbore `.env.example` a > každá premenná v súbore `.env.example` musí byť uvedená aj tu. Príkaz `npm run check:env-doc-sync` > kontroluje túto zhodu pri commite aj v CI. Ak chcete premennú zámerne vynechať, pridajte ju do > zoznamu povolených výnimiek v súbore `scripts/check/check-env-doc-sync.mjs`. --- ## Obsah - [1. Povinné tajné údaje](#1-povinné-tajné-údaje) - [2. Úložisko a databáza](#2-úložisko-a-databáza) - [3. Sieť a porty](#3-sieť-a-porty) - [4. Zabezpečenie a overovanie](#4-zabezpečenie-a-overovanie) - [5. Sanitizácia vstupov a ochrana osobných údajov](#5-sanitizácia-vstupov-a-ochrana-osobných-údajov) - [6. Zásady používania nástrojov a smerovania](#6-zásady-používania-nástrojov-a-smerovania) - [7. Adresy URL a cloudová synchronizácia](#7-adresy-url-a-cloudová-synchronizácia) - [8. Odchádzajúci proxy server](#8-odchádzajúci-proxy-server) - [9. Integrácia nástrojov CLI](#9-integrácia-nástrojov-cli) - [10. Integrácie interných agentov a MCP](#10-integrácie-interných-agentov-a-mcp) - [11. Prihlasovacie údaje poskytovateľov OAuth](#11-prihlasovacie-údaje-poskytovateľov-oauth) - [12. Prepísanie hlavičky User-Agent poskytovateľov](#12-prepísanie-hlavičky-user-agent-poskytovateľov) - [13. Kompatibilita odtlačkov CLI](#13-kompatibilita-odtlačkov-cli) - [14. Poskytovatelia kľúčov API](#14-poskytovatelia-kľúčov-api) - [15. Nastavenia časových limitov](#15-nastavenia-časových-limitov) - [16. Zaznamenávanie udalostí](#16-zaznamenávanie-udalostí) - [17. Optimalizácia pamäte](#17-optimalizácia-pamäte) - [18. Synchronizácia cien](#18-synchronizácia-cien) - [19. Synchronizácia modelov (vývoj)](#19-synchronizácia-modelov-vývoj) - [20. Nastavenia špecifické pre poskytovateľov](#20-nastavenia-špecifické-pre-poskytovateľov) - [21. Stav proxy servera](#21-stav-proxy-servera) - [22. Ladenie](#22-ladenie) - [23. Integrácia so službou GitHub](#23-integrácia-so-službou-github) - [24. Sandbox pre zručnosti (v3.8.0+)](#24-sandbox-pre-zručnosti-v380) - [27. Kanál Radar (vlastný hosting)](#27-kanál-radar-vlastný-hosting) - [Scenáre nasadenia](#scenáre-nasadenia) - [Audit: odstránené/nepoužívané premenné](#audit-odstránené--nepoužívané-premenné) --- ## 1. Povinné tajné údaje Tieto údaje **musia** byť nastavené pred prvým spustením. Bez nich sa aplikácia buď odmietne spustiť, alebo bude fungovať s nezabezpečenými predvolenými nastaveniami. | Premenná | Povinná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------- | ------------------- | ----------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `JWT_SECRET` | **Áno** | _(žiadna)_ | `src/lib/auth` | Podpisuje/overuje všetky súbory cookie relácie ovládacieho panela (JWT). Vygenerujte pomocou `openssl rand -base64 48`. | | `API_KEY_SECRET` | **Áno** | _(žiadna)_ | `src/lib/db/apiKeys.ts` | Šifrovací kľúč AES pre hodnoty kľúčov API uložené v SQLite. Vygenerujte pomocou `openssl rand -hex 32`. | | `INITIAL_PASSWORD` | **Áno** | `CHANGEME` | Zavádzací skript | Nastavuje počiatočné heslo správcu ovládacieho panela (zodpovedá predvolenej hodnote v `.env.example` — zámerne zostáva očividne nezabezpečené, aby si vynútilo zmenu). **Zmeňte ho pred prvým použitím.** Po prihlásení ho zmeňte cez Ovládací panel → Nastavenia → Zabezpečenie. | | `OMNIROUTE_WS_BRIDGE_SECRET` | **Áno** (produkcia) | _(nenastavené)_ | `src/app/api/internal/codex-responses-ws/route.ts` | Zdieľané tajomstvo pre interný most WebSocket protokolu Codex Responses. Overuje požiadavky mosta medzi prenosovým mechanizmom WS v aplikácii Electron/prehliadači a OmniRoute. ⚠️ **V produkcii je POVINNÉ — ak nie je nastavené, všetky požiadavky mosta WS budú odmietnuté.** Vygenerujte pomocou `openssl rand -base64 32`. | | `OMNIROUTE_SW_BUILD_ID` | Nie | _(git SHA)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Explicitný identifikátor na zneplatnenie vyrovnávacej pamäte service workera pre shell PWA (#11779); prvý v reťazci určovania hodnoty. | | `SOURCE_VERSION` | Nie | _(nenastavené)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Druhý v reťazci — nastavujú ho zostavovacie systémy PaaS (napr. typu Heroku) na nasadený commit. | | `NEXT_PUBLIC_SW_BUILD_ID` | Nie | _(odvodené)_ | `src/shared/components/PwaRegister.tsx` | Verejná hodnota z času zostavenia, ktorú klient používa na registráciu `/sw.js?v=…`; odvodzuje sa z dvoch vyššie uvedených hodnôt a následne z git SHA. | | `OMNIROUTE_PEER_STAMP_TOKEN` | Nie (automaticky) | _(automaticky pri každom spustení)_ | `src/server/authz/policies/management.ts` | Tajomstvo špecifické pre proces, ktoré dokazuje, že dôveryhodná značka IP adresy rovnocenného uzla pochádza z vlastného HTTP servera OmniRoute (`scripts/dev/peer-stamp.mjs`). Middleware autorizácie dôveruje lokálnosti požiadavky (obmedzenie trás `LOCAL_ONLY` na loopback/LAN) iba vtedy, keď značka obsahuje tento token. Generuje sa automaticky pri každom spustení — ponechajte ho nenastavený; napevno ho nastavte iba pri viacprocesových konfiguráciách, ktoré musia značku zdieľať. | ### Príkazy na generovanie ```bash # Vygenerovanie všetkých štyroch tajomstiev naraz: echo "JWT_SECRET=$(openssl rand -base64 48)" echo "API_KEY_SECRET=$(openssl rand -hex 32)" echo "INITIAL_PASSWORD=$(openssl rand -base64 16)" echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)" ``` > [!CAUTION] > Súbory `.env` so skutočnými tajomstvami nikdy neodosielajte do systému na správu verzií. Súbor `.gitignore` už vylučuje `.env`, pred odoslaním to však overte. --- ## 2. Úložisko a databáza OmniRoute používa na všetky trvalé dáta **SQLite** (prostredníctvom `better-sqlite3`). Tieto premenné riadia umiestnenie dát, šifrovanie a životný cyklus. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------------ | ----------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `DATA_DIR` | `~/.omniroute/` | `src/lib/db/core.ts` | Koreňový adresár pre databázu SQLite, zálohy a dátové súbory. Prepíšte ho pre zväzky Docker alebo vlastné cesty. | | `OMNIROUTE_ALLOW_DEFAULT_DATA_DIR` | _(nenastavené)_ | `src/lib/dataPaths.ts` | Úniková možnosť pre ochranu DATA_DIR pri testoch/vyhodnocovaní (#10428). Testy a sondy Node na vyhodnotenie/výpis (`-e`/`--eval`/`-p`/`--print` vrátane foriem `--eval=`/`--print=`) bez `DATA_DIR` sú presmerované do dočasného adresára na jedno použitie, aby nemohli otvoriť skutočnú databázu prevádzkovateľa; nastavením na `1` znova povolíte používanie skutočného adresára. | | `OMNIROUTE_BUILD_SHA` | _(nenastavené)_ | `src/lib/monitoring/buildSha.ts` | Git SHA spusteného artefaktu. Vkladá sa pomocou `npm run build:release`; možno ho vložiť do kontajnerov distribuovaných bez kontrolného súboru `dist/BUILD_SHA`. Sprístupňuje sa ako `system.buildSha` na `/api/monitoring/health`. | | `OMNIROUTE_RELEASE_REF` | `origin/main` | `scripts/build/buildProvenance.ts` | Referencia, voči ktorej kontrola pôvodu baleného artefaktu overuje SHA zostavy (#10427). | | `OMNIROUTE_ALLOW_CANARY_BUILD` | _(nenastavené)_ | `scripts/build/buildProvenance.ts` | Nastavením na `1` povolíte zabalenie zostavy, ktorej SHA sa nenachádza vo vydávacej vetve, pričom sa zaznamená ako zámerná kanáriková zostava namiesto zlyhania kontroly (#10427). | | `OMNIROUTE_SMOKE_API_KEY` | _(nenastavené)_ | `scripts/ops/deploy-canary.mjs` | Kľúč API pre smoke sondu kanárikového nasadenia, odosielaný ako `Authorization: Bearer` na `/v1/chat/completions`. Používa ho iba nasadzovací skript (#10429), server nikdy. Nesúvisí s premennými `OMNIROUTE_SMOKE_*` voliteľného CLI smoke mechanizmu (`RUN_CLI_SMOKE=1`, `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS` v `tests/integration/upstream-cli-smoke.int.test.ts`) — pozrite si [Integrácie CLI → Skutočný smoke prechod](../guides/CLI-INTEGRATIONS.md). | | `OMNIROUTE_BUILDING` | _(nenastavené)_ | `src/lib/buildPhase.ts` | Signál fázy zostavovania (#10060): skript `scripts/build/build-next-isolated.mjs` ho nastaví na `1` a zdedí ho každý spustený pracovník zostavovania, takže databázová vrstva namiesto načítania natívneho doplnku better-sqlite3 (ktorý pri ukončení preruší pracovníka) vráti nefunkčný zástupný objekt. Nikdy sa nenastavuje pre spustený server. | | `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | Nastavením na `1` preskočíte voliteľnú kontrolu natívnych závislostí pred zostavením pre neobvyklé dodané stromy. Chýbajúcu závislosť tým nebude možné zostaviť; používajte iba vtedy, keď sú natívne závislosti dodané mimo štandardného procesu. | | `OMNIROUTE_DATA_DIR` | _(nenastavené)_ | `open-sse/executors/promptql/threadSticky.ts` | **Záložný alias** pre `DATA_DIR`, ktorý sa kontroluje iba vtedy, keď `DATA_DIR` nie je nastavená. Používa sa na vyhľadanie diskovej vyrovnávacej pamäte relácií s pripnutím vlákien vykonávacieho modulu PromptQL (`/promptql-thread-sessions.json`); ak nie je nastavená ani jedna premenná, vyrovnávacia pamäť zostáva iba v pamäti (medzi reštartmi sa nezachováva). | | `OMNIROUTE_PLUGINS_DIR` | _(nenastavené)_ | `src/lib/plugins/scanner.ts` | Adresár, ktorý číta **runtime skener pluginov** a do ktorého inštaluje správca pluginov, čím prepíše predvolené umiestnenie odvodené od domovského adresára (#11827). V prostredí Docker/K8s ho nasmerujte na pripojený strom pluginov namiesto zmeny HOME iba kvôli premiestneniu cesty skenovania (HOME riadi aj všetky ostatné správania závislé od domovského adresára). Nenastavené = `~/.omniroute/plugins` alebo `/tmp/.omniroute/plugins`, keď proces vôbec neexportuje domovský adresár — táto premenná odstraňuje tiché nenájdenie pluginov. Vyriešený adresár sa pri spustení raz zaznamená ako `scanner.dir_resolved` spolu so vstupom, ktorý bol použitý. Iba na strane servera: pluginy príkazov CLI si zachovávajú vlastnú premennú `OMNIROUTE_PLUGIN_PATH` (časť 9). | | `STORAGE_ENCRYPTION_KEY` | _(prázdne = vypnuté)_ | `src/lib/db/encryption.ts` | Kľúč AES na úplné šifrovanie databázy SQLite v pokoji. Vygenerujte ho pomocou `openssl rand -hex 32`. | | `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | Označenie verzie šifrovacieho kľúča. Pri rotácii kľúčov ho zvýšte, aby sa podporovalo dešifrovanie starých záloh. | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | Keď je nastavené na `true`, preskočia sa rutinné zálohy súboru SQLite a zálohy pred zápisom (uloženie/vymazanie cien models.dev, zápisy nastavení). Manuálne zálohy a zálohy pred obnovením sa naďalej vykonávajú. Táto možnosť **nevypína** povinnú trvalú bezpečnostnú snímku vykonávateľa migrácií ani ochranu pred hromadnou migráciou existujúcej trvalej databázy. Nemanuálne zálohy sú obmedzené na najviac jednu za 60 minút. Rutinné automatické zálohovanie možno nezávisle vypnúť na ovládacom paneli v časti **Nastavenia → Úložisko**. | | `OMNIROUTE_CRYPT_KEY` | _(nenastavené)_ | `src/lib/db/encryption.ts` | **Starší alias** pre `STORAGE_ENCRYPTION_KEY`. Ak primárna premenná chýba, použije sa ako náhradná možnosť. | | `OMNIROUTE_API_KEY_BASE64` | _(nenastavené)_ | `src/lib/db/encryption.ts` | **Starší alias** (vo forme zakódovanej v Base64), ktorý sa používa ako náhradná možnosť. Pred použitím sa automaticky dekóduje. | | `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(nenastavené)_ | `src/lib/db/core.ts` | Prepíše interval pravidelnej kontroly stavu SQLite (ms). Ak nie je nastavený, predvolené hodnoty sa odvodia od `NODE_ENV`. | | `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(odstránené)_ | `src/lib/db/walMaintenance.ts` | **Odstránené.** Pravidelné živé spúšťanie `wal_checkpoint(TRUNCATE)` môže zneplatniť zdieľané mapovanie indexu WAL a spôsobiť pád procesu so signálom SIGBUS (#13973), preto už plánovač neexistuje. Premenná je neaktívna: kladná hodnota zaznamená jednorazové upozornenie na zastaranie, zatiaľ čo hodnota `0` alebo nenastavená premenná zostane bez odozvy. WAL sa udržiava pomocou kontrolných bodov PASSIVE (nižšie) a skracuje sa kontrolným bodom pri vypnutí. | | `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5 min.) | `src/lib/db/walMaintenance.ts` | Prepíše interval častého spúšťania `wal_checkpoint(PASSIVE)` (ms). Udržiava malý počet čakajúcich rámcov WAL, aby kontrolné body zostali rýchle a veľkosť súboru WAL bola medzi skráteniami pri vypnutí obmedzená. Hodnota `0` túto funkciu vypne. | | `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | Keď pravidelná kontrola PASSIVE zistí, že súbor WAL prekročil túto veľkosť, spustí `wal_checkpoint(RESTART)`, aby sa WAL začal odznova bez prepísania mapovaného indexu WAL. Kontrolné body v režime skrátenia za behu boli odstránené (pozrite si riadok `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS`). | | `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | Nastavte na `1`/`true`/`yes`/`on`, aby sa proces ukončil po pretrvávaní kritického tlaku na prostriedky počas intervalu `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS`. Správca procesov (systemd `Restart=always`, pravidlá reštartovania Dockeru) tak môže spustiť čistý proces namiesto neobmedzeného poskytovania odpovedí 503. | | `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` | `120000` (2 min.) | `open-sse/utils/resourcePressure.ts` | Čas, počas ktorého musí pretrvávať kritický tlak, kým sa spustí ukončenie procesu s následným automatickým reštartom. | | `OMNIROUTE_SQLJS_WASM_PATH` | _(automatická detekcia)_ | `src/lib/db/adapters/sqljsAdapter.ts` | Explicitná cesta (absolútna alebo relatívna voči cwd) k súboru `sql-wasm.wasm` pri použití záložného adaptéra WASM `sql.js`. Ak nie je nastavená, automaticky sa zistí podľa závislostí balíka a kandidátskych rozložení. | | `OMNIROUTE_BATCH_RETENTION_DAYS` | `30` | `src/lib/db/cleanup.ts` | Počet dní, počas ktorých automatické čistenie pred odstránením uchováva kontrolné body úlohy rozhrania Batch API v konečnom stave (dokončená/neúspešná/zrušená/expirovaná), odkazované vstupné/výstupné/chybové súbory a príslušný riadok. Prejaví sa až po zapnutí `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` a zodpovedá vlastnému obdobiu uchovávania výstupov rozhrania Batch API od OpenAI. Nemá vplyv na operátorom spúšťanú trasu `DELETE /api/v1/batches/delete-completed`, ktorá podľa návrhu zostáva bezpodmienečná (bez filtra veku). | | `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | Keď je nastavené na `true`, automatické čistenie môže odstrániť úlohy rozhrania Batch API v konečnom stave (a ich kontrolné body) staršie než `OMNIROUTE_BATCH_RETENTION_DAYS` a vymazať obsah BLOB nahraných súborov po uplynutí ich vlastného `expires_at`. Predvolene je vypnuté: každá existujúca inštalácia uchováva tieto údaje presne ako predtým, kým sa operátor nerozhodne túto funkciu zapnúť. Ide tiež o príznak funkcie upraviteľný na ovládacom paneli — pozrite si `docs/reference/FEATURE_FLAGS.md` → Runtime. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts`, `src/lib/db/healthCheck.ts` | Nastavte na `1`, ak chcete pri spustení úplne preskočiť kontrolu stavu DB. Užitočné pre krátkodobé úlohy a integračné testy. | | `OMNIROUTE_FORCE_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts` | Nastavte na `1`, ak chcete vynútiť cyklus kontroly stavu DB, aj keď by sa za normálnych okolností preskočil (napr. pri krátkodobých úlohách). | | `OMNIROUTE_SKIP_POSTINSTALL` | `0` | `scripts/postinstall.mjs` | Nastavte na `1`, ak chcete počas `npm install` preskočiť úvodné spustenie natívneho runtime. Užitočné pri inštaláciách v CI alebo bez grafického rozhrania, kde je sqlite už zostavený. | | `OMNIROUTE_MIGRATIONS_DIR` | _(automatické zistenie)_ | `src/lib/db/migrationRunner.ts` | Prepíše adresár, ktorý prehľadáva spúšťač migrácií. Užitočné pri distribúcii pribalených migrácií vo vlastných zostaveniach. | | `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(nenastavené)_ | `src/lib/db/migrationRunner/extraDirs.ts` | Ďalšie adresáre migrácií vo forme položiek `namespace=dir` oddelených oddeľovačom ciest danej platformy (napr. `ee=/opt/app/enterprise/db/migrations`). Súbory, ktoré sa v nich nájdu, sa zaznamenajú ako `-`, takže distribúcia s vlastnými migráciami nikdy nebude kolidovať s číselnými pozíciami upstreamu. Chybne vytvorená položka, neplatný priestor názvov alebo chýbajúci adresár spôsobí pri spustení chybu namiesto tichého preskočenia schémy. | | `OMNIROUTE_MAX_PENDING_MIGRATIONS` | `50` | `src/lib/db/migrationRunner.ts` | Bezpečnostný prah pre veľký počet čakajúcich migrácií (#3416). Spustenie sa preruší, ak v existujúcej DB čaká viac migrácií, než je táto hodnota (ochrana pred vymazanou sledovacou tabuľkou). Zvýšte ho pri obnove staršej zálohy; nastavením na `0` kontrolu zakážete. | | `OMNIROUTE_INSTALL_UPGRADE_WORKDIR` | _(`/.install-upgrade`)_ | `scripts/check/check-install-upgrade.mjs` | Pracovný adresár pre kontrolnú bránu vydania `check:install-upgrade`. Potrebuje približne 12 GB (dva inštalačné stromy s veľkosťou ~3 GB a archív tar), preto sa nesmie spúšťať na malom tmpfs — na self-hosted runneri je `/tmp` 12 GB tmpfs v pamäti RAM a brána ho vyčerpala, čím poškodila balík. | | `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(predvolené v kóde)_ | `src/lib/spend/batchWriter.ts` | Interval vyprázdňovania (ms) pre dávkový zapisovač výdavkov/nákladov. Nižšie hodnoty znižujú zlučovanie zápisov; vyššie hodnoty znižujú súperenie o DB. | | `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(predvolené v kóde)_ | `src/lib/spend/batchWriter.ts` | Maximálny počet položiek výdavkov vo vyrovnávacej pamäti pred vynúteným vyprázdnením. Zvýšte pri nasadeniach s vysokým počtom dotazov za sekundu; znížte, ak je dôležitejšia obmedzená spotreba pamäte. | | `OMNIROUTE_PROXY_FETCH_DEBUG` | _(nenastavené)_ | `open-sse/utils/proxyFetch.ts` | Nastavte na `"true"`, ak chcete na trase prenosu Vercel generovať ladiace protokoly `[ProxyFetch]`. Predvolene je vypnuté, aby sa predišlo úniku informácií o smerovaní. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `src/lib/proxyLogger.ts` | Nastavte na `"true"` alebo `"1"`, ak chcete do podrobného riadka procesného protokolu `[ProxyEgress]` zahrnúť adresy IP klienta/výstupu a predponu účtu. Predvolene zostáva VYPNUTÉ, aby procesný protokol nezverejňoval adresy IP ani predponu účtu. | | `OMNIROUTE_DEBUG` | _(nenastavené)_ | `bin/cli/commands/quota.mjs` | Nastavte na `1`, ak chcete z príkazov kvóty CLI vypisovať do stderr diagnostiku časovania jednotlivých požiadaviek (`[omniroute] GET dokončené za Nms`). | | `OMNIROUTE_HEALTHCHECK_PATH` | _(automaticky)_ | `scripts/dev/healthcheck.mjs` | Explicitná cesta testovaná kontrolou stavu kontajnera. Ak nie je nastavená, kontrola ju odvodí z `OMNIROUTE_BASE_PATH`; jej nastavením sa znova aktivuje hĺbkový monitorovací koncový bod. | | `OMNIROUTE_DEBUG_COMPLETION` | _(nenastavené)_ | `bin/cli/commands/completion.mjs` | Nastavte na ľubovoľnú neprázdnu hodnotu, ak chcete generovať diagnostiku `[omniroute completion]` z ciest vyrovnávacej pamäte automatického dopĺňania shellu CLI (čítanie/obnovenie/zápis). Predvolene je vypnuté — zlyhania týchto vyrovnávacích pamätí sú bez výstupu, takže chýbajúca alebo poškodená vyrovnávacia pamäť nikdy nenaruší dopĺňanie tabulátorom. | | `BATCH_RETRY_DURATION_MS` | `86400000` (24 h) | `open-sse/services/batchProcessor.ts` | Maximálne obdobie opakovaných pokusov pre jednotlivé položky dávky (ms). Položky, ktoré prekročia toto trvanie, sa označia ako neúspešné. | | `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | Základné oneskorenie (ms) pre exponenciálne predlžovanie intervalov pri opakovaných pokusoch o spracovanie položiek dávky. | | `BATCH_BACKOFF_MAX_MS` | `3600000` (1 h) | `open-sse/services/batchProcessor.ts` | Maximálne oneskorenie (ms) pre exponenciálne predlžovanie intervalov medzi opakovanými pokusmi o spracovanie položiek dávky. | | `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | Maximálny počet súbežne spracovávaných dávok. Zvýšením hodnoty zvýšite priepustnosť; ponechajte ju nízku, aby ste predišli náporu na limity frekvencie požiadaviek. | > [!IMPORTANT] > Pred zmenou existujúcej perzistentnej databázy nástroj na spúšťanie migrácií zverejní úplnú > snímku adresovanú podľa obsahu v priečinku `DATA_DIR/db_backups/`. Zverejnenie vyžaduje súborový systém, > ktorý podporuje pevné odkazy v rámci rovnakého súborového systému bez prepisovania a trvalú synchronizáciu súborov. Hostitelia POSIX tiež > vyžadujú synchronizáciu adresárov; v systéme Windows môže Node odmietnuť deskriptory adresárov, preto OmniRoute zapíše > zverejnený súbor na disk a synchronizáciu položky adresára vykoná podľa možností. > Ak pripojený adresár `DATA_DIR` nedokáže poskytnúť tieto záruky, spustenie sa bezpečne ukončí ešte pred použitím > migrácie. Presuňte `DATA_DIR` na zväzok, ktorý tieto primitíva podporuje; nepoužívajte > `DISABLE_SQLITE_AUTO_BACKUP` na obídenie zabezpečenia migrácie. ### Scenáre | Scenár | Konfigurácia | | ----------------------- | ------------------------------------------------------------------------------------------- | | **Lokálny vývoj** | Ponechajte všetky predvolené hodnoty. Databáza sa nachádza v `~/.omniroute/omniroute.db`. | | **Docker** | `DATA_DIR=/data` + pripojte zväzok do `/data`. | | **Šifrovanie úložiska** | Nastavte `STORAGE_ENCRYPTION_KEY` + uchovávajte zálohy kľúča! Strata kľúča = strata údajov. | | **CI/Testovanie** | `DATA_DIR=/tmp/omniroute-test` — dočasné úložisko, šifrovanie nie je potrebné. | --- ## 3. Sieť a porty | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PORT` | `20128` | `src/lib/runtime/ports.ts` | Primárny port pre používateľské rozhranie Dashboard aj koncové body API (režim jedného portu). | | `OMNIROUTE_BASE_PATH` | _(prázdne = koreň)_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | Podcesta URL na sprístupnenie OmniRoute za reverzným proxy serverom (nastavuje `basePath` frameworku Next.js; presmerovania autentifikácie zohľadňujú `basePath`). Napr. `/omniroute`. V Dockeri sa hodnota vloží počas `docker build` (`ARG OMNIROUTE_BASE_PATH`); vopred zostavené koreňové obrazy môžu použiť inú hodnotu za behu pri spustení kontajnera pred spustením Next.js. Nastavte `NEXT_PUBLIC_BASE_URL` na verejný pôvod vrátane rovnakej podcesty. | | `NEXT_PUBLIC_OMNIROUTE_BASE_PATH` | _(prázdne = koreň)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Pre prehliadač viditeľná kópia `OMNIROUTE_BASE_PATH`, vložená počas zostavenia, aby zobrazenie koncového bodu v ovládacom paneli uvádzalo `https://host/omniroute/v1` namiesto `https://host/v1`. Ak nie je nastavená, použije sa `OMNIROUTE_BASE_PATH`. Po zmene vykonajte nové zostavenie (`basePath` v Next sa nastavuje počas zostavenia). | | `DASHBOARD_ALLOW_EMBED` | _(nenastavené = nemožno vložiť do rámca)_ | `next.config.mjs`, `scripts/build/dashboardEmbed.mjs` | Voliteľné povolenie vkladania stránok HTML do prvku iframe. Ak nie je nastavené, každá trasa odosiela `frame-ancestors 'none'` + `X-Frame-Options: DENY`. Nastavením na `vscode` sa stránky (ovládací panel, prihlásenie, dokumentácia, vstupná stránka) sprístupnia s `frame-ancestors 'self' vscode-webview:` a bez `X-Frame-Options`, aby ich mohol vykresliť VS Code Simple Browser (režim `dashboardOpen: "editor"` nástroja OmniCopilot). Rozhranie API (`/api`, `/v1`, `/v1beta`, `/a2a`, `/healthz`, aliasy na koreňovej úrovni) si v oboch prípadoch zachová prísne hlavičky. Rozpoznáva sa iba `vscode` — hodnoty `1`/`true` túto funkciu nepovolia. Nastavenie počas zostavenia: po zmene vykonajte nové zostavenie (`docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode` pre obrazy; nastavenie vo vopred zostavenej inštalácii nemá žiadny účinok). | | `API_PORT` | _(nenastavené)_ | `src/lib/runtime/ports.ts` | Ak je nastavená, sprístupňuje proxy API `/v1/*` na tomto samostatnom porte. | | `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | Adresa väzby pre port API. | | `DASHBOARD_PORT` | _(nenastavené)_ | `src/lib/runtime/ports.ts` | Ak je nastavená, sprístupňuje používateľské rozhranie Dashboard na tomto samostatnom porte. | | `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(vypnuté)_ | `src/sse/utils/backpressure.ts` | Obmedzuje počet súbežných aktívnych chatových pripojení; požiadavky prekračujúce limit dostanú odpoveď `503` s hlavičkou `Retry-After`. Ochranu povolí kladné celé číslo; nenastavená hodnota alebo `0` ju vypne. | | `OMNIROUTE_INSTANCE_ID` | _(nenastavené)_ | `src/shared/resilience/peerRouting.ts` | Stabilné jedinečné ID tejto brány pri reťazení inštancií OmniRoute. Povoľuje vstupné kontroly slučiek medzi rovnocennými uzlami. Povolené znaky: písmená, číslice, `.`, `_`, `:` a `-`; maximálne 64 znakov. | | `OMNIROUTE_PEER_URLS` | _(nenastavené)_ | `src/shared/resilience/peerRouting.ts`, `open-sse/executors/base.ts` | Čiarkami oddelené základné URL adresy OmniRoute, ktoré môžu prijímať `X-OmniRoute-Peer-Trace`. Metadáta partnerských inštancií dostanú iba explicitne povolené upstream URL adresy; všetci ostatní poskytovatelia zostanú nedotknutí. | | `OMNIROUTE_PEER_MAX_HOPS` | `4` | `src/shared/resilience/peerRouting.ts` | Maximálny počet predtým navštívených inštancií OmniRoute akceptovaných v reťazenej požiadavke (`1`-`32`). Opakované inštancie alebo vyčerpaný limit vrátia HTTP `508 Loop Detected`. | | `PROD_DASHBOARD_PORT` | `20130` | `docker-compose.prod.yml` | Port publikovaný na strane hostiteľa pre riadiaci panel v produkčnom režime Docker. | | `PROD_API_PORT` | `20131` | `docker-compose.prod.yml` | Port publikovaný na strane hostiteľa pre API v produkčnom režime Docker. | | `OMNIROUTE_PORT` | _(nenastavené)_ | `src/lib/runtime/ports.ts` | Má prednosť pred `PORT` pri spustení v prostredí Electron alebo v iných obaloch. | | `LIVE_WS_PORT` | `20129` | `src/server/ws/liveServer.ts` | Port servera WebSocket na monitorovanie v reálnom čase. | | `LIVE_WS_HOST` | `127.0.0.1` | `src/server/ws/liveServer.ts` | Adresa na počúvanie pre živý server WebSocket. Nastavením na `0.0.0.0` ho sprístupníte v sieti LAN (nakonfigurujte aj `LIVE_WS_ALLOWED_ORIGINS`). | | `LIVE_WS_ALLOWED_ORIGINS` | _(nenastavené)_ | `src/server/ws/liveServer.ts` | Ďalšie zdroje oddelené čiarkami, ktoré môžu otvoriť živé pripojenie WebSocket. Zdroje riadiaceho panela na spätnej slučke sú predvolene povolené. | | `LIVE_WS_ALLOWED_HOSTS` | _(nenastavené)_ | `src/server/ws/liveServerAllowList.ts` | Ďalšie názvy hostiteľov oddelené čiarkami, ktoré sú povolené pre zdroje živého pripojenia WebSocket. Na rozdiel od `LIVE_WS_ALLOWED_ORIGINS` (úplné URL adresy zdrojov) sa porovnáva iba časť s hostiteľom — užitočné pre konfigurácie LAN/Tailscale. | | `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(nenastavené)_ | `src/hooks/useLiveDashboard.ts` | Verejná URL adresa pre WebSocket živého riadiaceho panela (na strane prehliadača). Nastavte ju, keď je server WS sprístupnený cez reverzný proxy server alebo Cloudflare Tunnel (napr. `wss://ws.my-ai.com/live-ws`); prehliadač sa pripojí tam namiesto `ws://hostname:20132`. Časť s cestou sa používa aj ako cesta aktualizácie WebSocket (predvolená: `/live-ws`). | | `OMNIROUTE_ENABLE_LIVE_WS` | `true` | `src/server/ws/liveServer.ts` a `scripts/start-ws-server.mjs` | Nastavením na `0` alebo `false` zakážete server WebSocket v reálnom čase (predvolene je povolený a viazaný na spätnú slučku). Prepínač CI/testovacieho prostredia, ktorý zakáže samostatný pomocný skript živého servera WebSocket. | | `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | Limit frekvencie prenosu pre každú dvojicu (token, IP), v požiadavkách za minútu. Uložený v pamäti, samostatne pre každú inštanciu. Hodnota `0` alebo záporná hodnota zakáže obmedzenie podľa IP (limit databázy pre jednotlivé tokeny zostáva aktívny). | | `NODE_ENV` | `production` | Jadro Next.js | Riadi podrobnosť protokolovania, ukladanie do vyrovnávacej pamäte, zobrazovanie podrobností o chybách a optimalizácie Next.js. | | `OMNIROUTE_USE_TURBOPACK` | `1` (Turbopack — predvolené v kóde) | `package.json` / Next.js 16 | Turbopack je predvolený nástroj na zostavovanie pre `npm run dev` a `npm run build` (podľa meraní 2–3× rýchlejšie zostavenia). Nastavením na `0` sa v systéme Windows použije webpack, ak sa vyskytnú nekompatibility natívnych väzieb alebo nástroja na zostavovanie, **alebo na počítačoch s obmedzenou pamäťou RAM** — je známe, že produkčné zostavenia Turbopacku v tomto rade verzií Next.js (16.2.x) dosahujú pri veľkých grafoch modulov výrazne vyššiu špičkovú spotrebu pamäte než webpack (oprava uvoľňovania pamäte Turbopacku z Next 16.3 ešte nie je stabilná); pri použití webpacku je špičková spotreba výrazne nižšia. Pozrite si #6409. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | _(nenastavené)_ | `src/lib/db/core.ts` / `src/lib/db/healthCheck.ts` | Nastavením na `1` preskočíte kontrolu integrity SQLite pri spustení. Užitočné na rýchlejšie spustenie pri veľkých databázach. | | `NOTIFY_SOCKET` | _(nenastavené)_ | systemd (protokol sd_notify) | Nastavuje ho systemd, keď proces beží v rámci jednotky služby s integráciou sd_notify; OmniRoute ho načíta (pozrite si `OMNIROUTE_DISABLE_SD_NOTIFY`) na odosielanie oznámení READY/WATCHDOG. Používateľ ho nikdy nenastavuje. | | `OMNIROUTE_DISABLE_SD_NOTIFY` | _(nenastavené)_ | `scripts/dev/systemd-notify.mjs` | Nastavením na `1` zakážete systemd sd_notify (Type=notify / WatchdogSec=), aj keď proces beží v rámci jednotky systemd. Mimo systemd oznamovač bez ohľadu na toto nastavenie nevykonáva žiadnu operáciu. | | `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | Interval (ms) pre plánovač kontroly stavu prihlasovacích údajov na pozadí. Minimum: 10000 (10 s). | | `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | TTL (ms) pre stav kontroly prihlasovacích údajov uložený vo vyrovnávacej pamäti. | | `OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK` | `false` | `src/lib/credentialHealth/scheduler.ts` | Nastavením na `1` alebo `true` zakážete pravidelné testovanie pripojení k poskytovateľom na pozadí. Poskytovatelia vyhľadávania (SEARCH_VALIDATOR_CONFIGS v `src/lib/providers/validation/searchProviders.ts`, napr. `tavily-search`) sú z kontroly vždy vylúčení — ich „overenie“ je skutočná spoplatnená požiadavka odoslaná nadradenej službe, preto sa ich stav nikdy nekontroluje podľa časovača (#9970). | | `HOST` | `0.0.0.0` | `scripts/dev/run-next.mjs` | Adresa rozhrania pre vývojový/spúšťací server Next.js. Ak je nastavená, prepíše predvolenú hodnotu `0.0.0.0`. | | `HOSTNAME` | `127.0.0.1` | `scripts/dev/run-next-playwright.mjs` | Adresa rozhrania, ktorú používa nástroj Playwright pri spúšťaní Next.js. Predvolená hodnota je `127.0.0.1`, aby boli testy hermetické. **Nepoužívajte ju pre `omniroute serve`** — namiesto nej použite `OMNIROUTE_SERVER_HOST` (shelly POSIX automaticky nastavia `HOSTNAME` na názov počítača; súbor `.env` ju nemôže prepísať). | | `OMNIROUTE_SERVER_HOST` | `0.0.0.0` | `bin/cli/commands/serve.mjs` | Adresa rozhrania pre `omniroute serve`. Zabraňuje konfliktu s premennou shellu POSIX `HOSTNAME` (bash/zsh ju vždy nastavia na názov počítača). Ak nie je nastavená, použije sa `0.0.0.0`. (#6194) | ### Režimy portov ``` ┌────────────────────────── Jeden port (predvolené) ─────────────────────────┐ │ PORT=20128 │ │ → Ovládací panel: http://localhost:20128 │ │ → API: http://localhost:20128/v1/chat/completions │ └─────────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────── Oddelené porty ─────────────────────────────────┐ │ DASHBOARD_PORT=20128 │ │ API_PORT=20129 │ │ API_HOST=0.0.0.0 │ │ → Ovládací panel: http://localhost:20128 │ │ → API: http://0.0.0.0:20129/v1/chat/completions │ │ Použitie: Sprístupnenie API v sieti LAN s obmedzením panela na localhost. │ └─────────────────────────────────────────────────────────────────────────────┘ ┌────────────────────── Produkčné nasadenie v Dockeri ────────────────────────┐ │ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │ │ → Mapuje porty kontajnera na porty hostiteľa v docker-compose.prod.yml. │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 4. Bezpečnosť a autentifikácia | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MACHINE_ID_SALT` | `endpoint-proxy-salt` | `src/lib/auth` | Soľ kombinovaná s hardvérovými identifikátormi na vytvorenie odtlačku zariadenia. Pre izoláciu ju zmeňte pre každé nasadenie. | | `OMNIROUTE_CLI_SALT` | _(nenastavené = náhodná soľ pre každú inštaláciu uložená v `/cli-token-salt.json`)_ | `src/lib/machineToken.ts` | Soľ HMAC na odvodenie lokálneho autentifikačného tokenu CLI. Nastavenie tejto hodnoty zmení všetky tokeny CLI v zariadení a má vždy prednosť pred uloženou soľou. Pozrite si `docs/security/CLI_TOKEN.md`. | | `AUTH_COOKIE_SECURE` | `false` | `src/lib/auth` | Nastavuje príznak `Secure` pre súbory cookie relácie. Pri prevádzke za HTTPS **musí byť nastavený na `true`**. | | `REQUIRE_API_KEY` | `false` | Middleware API | Keď je nastavené na `true`, všetky proxy požiadavky na `/v1/*` musia obsahovať platný kľúč API. **Tento príznak neobmedzuje `GET /v1/models`**, ktorý sa namiesto toho riadi nastavením prihlasovania riadiaceho panela (`requireAuthForModels`) — odpoveď `401` z `/v1/models` teda NEZNAMENÁ, že inferencia je chránená. Pozrite si `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695). | | `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Umožňuje zobraziť úplné hodnoty kľúčov API v používateľskom rozhraní riadiaceho panela. Dá sa konfigurovať prostredníctvom príznakov funkcií riadiaceho panela; na zdieľaných inštanciách predstavuje bezpečnostné riziko. | | `NO_LOG_API_KEY_IDS` | _(prázdne)_ | `src/lib/compliance/index.ts` | Čiarkami oddelené identifikátory kľúčov API, pre ktoré sa obchádza zaznamenávanie požiadaviek (súlad s GDPR). | | `DEFAULT_RATE_LIMIT_PER_DAY` | _(nenastavené = neobmedzené)_ | `src/shared/utils/apiKeyPolicy.ts` | Záložný denný rozpočet požiadaviek aplikovaný na kľúče API, ktorých stĺpec `rate_limits` má hodnotu null. Nenastavená alebo prázdna hodnota: žiadny implicitný limit (#2289, #11017). Hodnota `0` znamená to isté (bez obmedzenia). Kladné celé číslo N povoľuje N/deň, 5N/týždeň, 20N/mesiac. Neplatné neprázdne hodnoty použijú pôvodné limity 1000/deň, 5000/týždeň, 20000/mesiac. | | `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | Maximálna povolená veľkosť tela požiadavky. Užitočné zaťaženia prekračujúce tento limit budú odmietnuté. | | `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | Skutočné telá požiadaviek s veľkosťou rovnou alebo vyššou ako táto prahová hodnota získajú pred spracovaním JSON atomický lokálny prenájom vstupu pre náročné spracovanie v rámci procesu (cesta BYTE vrátane `POST /v1/responses`). Používa rovnaký únik pri dostatočnej rezerve ako štruktúrne náročné požiadavky z [#10437](https://github.com/diegosouzapw/OmniRoute/pull/10437); naďalej je však obmedzený hodnotou `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / [#10110](https://github.com/diegosouzapw/OmniRoute/issues/10110), aby sa problém [#7849](https://github.com/diegosouzapw/OmniRoute/issues/7849) nevrátil. | | `OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES` | `52428800` (50 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Pevný limit trasy chatu uplatňovaný voči bajtom načítaným počas obmedzeného príjmu vrátane požiadaviek s chýbajúcou, neplatnou alebo nepravdivou hlavičkou `Content-Length`; prekročenie limitu spôsobí odpoveď `413`. | | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(nenastavené — bez limitu počtu požiadaviek)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-fanout:** tento starší limit POČTU požiadaviek sa teraz uplatní iba vtedy, keď je explicitne nastavený. Ak zostane nenastavený (predvolené nastavenie), prijímanie náročných chatových požiadaviek sa namiesto toho riadi premennou `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` — automaticky odvodeným BAJTOVÝM rozpočtom dimenzovaným podľa skutočného pamäťového limitu procesu v **jednom procese** (jednej halde V8). Dve prekrývajúce sa požiadavky `/v1/responses` s približne 750-tisíc tokenmi spôsobia zlyhanie háld s veľkosťou ~12 GiB (#7849) — ide o varovanie týkajúce sa **pamäťového rozpočtu**, nie o pevné produktové maximum 2. Proces v dobrom stave (halda pod pomerom pre odľahčenie) MÔŽE prijať viac súbežných dlhých požiadaviek `/v1/responses` prostredníctvom `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM`. Desiatky dlhých klientov SSE (40–50) závisia od haldy + `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110, nie od „maxima 2“. Slepé zvýšenie tejto hodnoty s cieľom „využiť hostiteľa“ znova spôsobí #7849. **Haldy** násobte pomocou **N nezávislých `DATA_DIR`** (#11024); nikdy nepoužívajte `replicas>1` nad jedným súborom SQLite. | | `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(automaticky odvodené)_ | `src/shared/middleware/admissionBudget.ts` | **#503-fanout:** prepísanie automaticky odvodeného bajtového rozpočtu príjmu (25 % z prísnejšieho pamäťového limitu V8/cgroup vydelených 8-násobným prechodným zosilnením). Odvodené aj explicitné hodnoty sú obmedzené na rozsah 8 MiB – 2 GiB. Telo väčšie než efektívny rozpočet okamžite zlyhá s `413 body_exceeds_budget`; súperenie medzi telami, ktoré možno samostatne obslúžiť, naďalej vracia opakovateľnú chybu `503`. 40–50 súbežných dlhých klientov SSE závisí od tohto rozpočtu + haldy, nejde o pevné „maximum 2“. Pred ladením si na `/api/monitoring/health` prečítajte `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity`. | | `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | Pomer tlaku na haldu (`heapUsed / heap_size_limit`) na odľahčenie prijímania náročných požiadaviek typu BYTE a STRUCTURE (#10183, #10268, #10437). Súbežná náročná požiadavka nad limit `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` sa odmietne opakovateľnou chybou `503` iba vtedy, keď je halda ZÁROVEŇ na úrovni tohto pomeru alebo vyššie; pri halde v dobrom stave sa prijme prostredníctvom rezervy pre dobrý stav. | | `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` (predvolene `1`) | `src/shared/middleware/chatBodyAdmission.ts` | Obmedzená dodatočná kapacita pre rýchlu cestu pri halde v dobrom stave (#10437) pre typy STRUCTURE aj BYTE (`admitChatRequest` vrátane tiel ≥ `OMNIROUTE_CHAT_LARGE_BODY_BYTES`). Bez tohto obmedzenia každá požiadavka pri vyťaženom systéme, ale halde v dobrom stave, obchádzala riadenie prijímania bez akéhokoľvek stropu. Keď je prostredníctvom cesty pre haldu v dobrom stave aktívnych toľko súbežných prenájmov, ďalšie požiadavky pri vyťažení prejdú na ROVNAKÚ cestu obmedzeného čakania/odľahčenia, aká sa používa pri skutočnom tlaku na haldu. Hodnota `0` toto obídenie úplne zakáže. | | `OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT` | `200` | `src/shared/middleware/chatBodyAdmission.ts` | Počet správ, pri ktorom sa chatová požiadavka klasifikuje ako náročná, aj keď je jej telo pod bajtovou prahovou hodnotou. | | `OMNIROUTE_CHAT_HEAVY_TOOL_COUNT` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Počet nástrojov, pri ktorom sa chatová požiadavka klasifikuje ako náročná, aj keď je jej telo pod bajtovou prahovou hodnotou. | | `OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS` | `32000` | `src/shared/middleware/chatBodyAdmission.ts` | Konzervatívny odhad počtu tokenov podľa veľkosti reťazca, pri ktorom sa požiadavka klasifikuje ako náročná; ide o zástupnú hodnotu nákladov na prijatie, nie o tokenizáciu poskytovateľa na účely fakturácie. | | `OMNIROUTE_CHAT_HARD_MAX_MESSAGES` | `0` (vypnuté) | `src/shared/middleware/chatBodyAdmission.ts` | Voliteľný limit histórie chatu aktivovaný výslovným nastavením. Predvolene je vypnutý: počet správ je zásadou nasadenia, nie univerzálnou vlastnosťou požiadavky, a obmedzenie na tomto mieste odmietne konverzácie konečnou chybou `413` skôr, než ich kompresný kanál dokáže upraviť do obslúžiteľnej podoby. Rast haldy je obmedzený pomocou `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` a odľahčenia pri tlaku na haldu. V nasadeniach s obmedzenou pamäťou, ktoré potrebujú pevný strop, nastavte kladnú hodnotu; prekročenie potom spôsobí štruktúrovanú odpoveď `413` vyžadujúcu kompaktnú podobu. | | `OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES` | `67108864` (64 MB) | `open-sse/handlers/chatCore/nonStreamingResponseBody.ts` | Pevný limit pre neprúdovú odpoveď nadradeného servera, ktorá sa celá ukladá do vyrovnávacej pamäte. Po jeho prekročení sa čítačka nadradeného servera zruší a požiadavka rýchlo zlyhá namiesto toho, aby reťazec neobmedzene rástol až do vyčerpania haldy. | | `OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES` | `768` | `open-sse/handlers/chatCore/responseHeaders.ts` | Maximálny počet bajtov prenášaných z hlavičiek odpovede nadradeného servera. Po prekročení limitu sa hlavičky s nižšou prioritou (napr. vlastné `x-codex-*`, `x-oai-request-id`) vynechajú, aby sa dodržali bežné limity hlavičiek reverzných proxy serverov. Nastavením vyššej hodnoty sa prenesie viac metadát nadradeného servera za cenu väčšej veľkosti hlavičiek odpovede. | | `CORS_ORIGIN` | _(nenastavené)_ | `src/server/cors/origins.ts` | Starší zoznam povolených zdrojov CORS podporujúci jeden zdroj. Pri nových nasadeniach uprednostnite `CORS_ALLOWED_ORIGINS`. CORS je určený iba pre klientov API v prehliadači používajúcich požiadavky medzi zdrojmi; autentifikované zápisy ovládacieho panela namiesto toho používajú požiadavky z rovnakého zdroja spolu s ochranou CSRF viazanou na reláciu. | | `CORS_ALLOWED_ORIGINS` | _(nenastavené)_ | `src/server/cors/origins.ts` | Čiarkami oddelený zoznam povolených zdrojov CORS. Zástupný znak sa neodošle, pokiaľ nie je explicitne nakonfigurované `CORS_ALLOW_ALL=true`. | | `CORS_ALLOW_ALL` | `false` | `src/server/cors/origins.ts` | Núdzová možnosť určená iba na vývoj, ktorá odošle späť ľubovoľnú hodnotu `Origin` prehliadača. Nepovoľujte ju v zdieľaných ani produkčných nasadeniach. | | `OUTBOUND_SSRF_GUARD_ENABLED` | `true` | `src/shared/network/outboundUrlGuard.ts` | Blokuje volania poskytovateľov smerujúce na súkromné, loopback alebo link-local rozsahy IP adries. Vypínajte iba v izolovaných testovacích prostrediach. | | `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS` | `false` | `src/shared/network/outboundUrlGuard.ts` | Povoľuje adresy URL poskytovateľov smerujúce do súkromných/lokálnych sietí (localhost, 192.168.x.x, 10.x.x.x atď.). **VYŽADUJE SA pre poskytovateľov prevádzkovaných vo vlastnej réžii** (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Pri hodnote `false` ovládací panel odmietne overenie lokálnych adries URL. | | `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuard.ts` | Povoľuje pridávanie/overovanie poskytovateľov na lokálnych/súkromných adresách (127.0.0.1, localhost, LAN, súkromné rozsahy) — obmedzené na cestu overovania poskytovateľa. **Predvolená hodnota je `true`** (uprednostňuje lokálne adresy); nastavením na `false` vynútite striktné blokovanie všetkého okrem verejných adries. Koncové body cloudových metadát (169.254.169.254, metadata.google.internal) zostávajú zablokované bez ohľadu na toto nastavenie. (#5066) | | `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | Umožňuje trasám `/v1/audio/*` (prepisy, reč, preklady) používať uzol poskytovateľa kompatibilný s OpenAI a hostovaný mimo localhost. Predvolene je vypnuté — smerovanie zvuku na vzdialeného hostiteľa mení identitu odchádzajúcej komunikácie a musí byť explicitným rozhodnutím prevádzkovateľa. Loopback/súkromné uzly (localhost, 127.0.0.1, 172.16-31.x) sú vždy povolené a toto nastavenie ich neovplyvňuje. (#3963) | | `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | Umožňuje požiadavke `POST /v1/rerank` (a loopback kroku opätovného zoradenia pamäťového nástroja) používať uzol poskytovateľa kompatibilný s OpenAI a hostovaný mimo localhost — zariadenie v sieti LAN alebo rovnocenný uzol Tailscale, na ktorom beží TEI, Infinity, vLLM atď. Predvolene je vypnuté — smerovanie na vzdialeného hostiteľa mení identitu odchádzajúcej komunikácie a musí byť explicitným rozhodnutím prevádzkovateľa. Loopback uzly (localhost, 127.0.0.1, 172.16-31.x) sú vždy povolené a toto nastavenie ich neovplyvňuje. Vzdialené uzly musia tiež spĺňať zásady pre odchádzajúce adresy URL poskytovateľa (`OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` / `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS`); na hostiteľov cloudových metadát sa požiadavky nikdy nesmerujú. | | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Keď je povolené OIDC, zakáže prihlasovanie heslom, takže používatelia sa môžu autentifikovať iba prostredníctvom jednotného prihlásenia OIDC. Akceptuje sa aj jednoduchý alias `OIDC_DISABLE_PASSWORD_LOGIN`; prednosť má príznak funkcie ovládacieho panela s rovnakým kľúčom. (#10889) | | `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Jednoduchý alias pre `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` (#10889). | ### Kontrolný zoznam zabezpečenia ```bash # Minimálne zabezpečenie pre produkčné prostredie: AUTH_COOKIE_SECURE=true # Vyžaduje HTTPS REQUIRE_API_KEY=true # Autentifikovať všetky volania proxy ALLOW_API_KEY_REVEAL=false # Nikdy nezobrazovať kľúče v používateľskom rozhraní CORS_ALLOWED_ORIGINS=https://your.domain.com MAX_BODY_SIZE_BYTES=5242880 # Limit 5 MB ``` --- ## 5. Sanitizácia vstupov a ochrana osobných údajov OmniRoute poskytuje dvojvrstvovú ochranu: kontrolu injekcií na strane požiadaviek a odstraňovanie osobných údajov na strane odpovedí. > **⚠️ Obmedzenia:** Tieto ochranné mechanizmy predstavujú detekciu založenú na heuristike s vynaložením _primeraného úsilia_, nie úplný firewall proti prompt injection ani systém DLP pre osobné údaje. Môžu viesť k falošne pozitívnym výsledkom (označenie neškodných promptov s personami/RPG) aj falošne negatívnym výsledkom (leetspeak, medzery, vzory v iných jazykoch než angličtina). Samy osebe nepostačujú na zabezpečenie súladu s predpismi. Predtým, než sa na ne spoľahnete, nastavte režimy a otestujte ich na svojej prevádzke. ### Strana požiadaviek: ochrana proti prompt injection | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | --------------------------------- | ------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `INPUT_SANITIZER_ENABLED` | `true` | `src/middleware/promptInjectionGuard.ts` | Povolí kontrolu prichádzajúcich správ na prítomnosť vzorov prompt injection. | | `INPUT_SANITIZER_MODE` | `warn` | `src/middleware/promptInjectionGuard.ts` | Pravidlá pre injekcie: `warn` = iba zaznamenať, `block` = odmietnuť požiadavku so stavom 400. Starší režim `redact` text injekcie **neodstraňuje**; na prepísanie osobných údajov v požiadavke použite `PII_REDACTION_ENABLED`. | | `INJECTION_GUARD_MODE` | _(nenastavené)_ | `src/middleware/promptInjectionGuard.ts` | Starší alias pre `INPUT_SANITIZER_MODE` — rovnaké správanie. | | `INPUT_SANITIZER_BLOCK_THRESHOLD` | `high` | `src/shared/utils/injectionSeverity.ts` | Minimálna závažnosť, ktorú režim `MODE=block` odmietne: `high` (predvolené), `medium` alebo `low`. Vzory so strednou závažnosťou sa iba monitorujú, pokiaľ prah neznížite. | | `INJECTION_GUARD_BLOCK_THRESHOLD` | _(nenastavené)_ | `src/shared/utils/injectionSeverity.ts` | Starší alias pre `INPUT_SANITIZER_BLOCK_THRESHOLD` — rovnaké správanie. | | `PII_REDACTION_ENABLED` | `false` | `src/lib/guardrails/piiMasker.ts` | Ak je nastavené na `true`, odstráni osobné údaje z prichádzajúcich požiadaviek (nezávisle od režimu injekcií). | | `CREDENTIAL_REDACTION_ENABLED` | `false` | `src/lib/guardrails/credentialMasker.ts` | Odstráni známe vzory API kľúčov a tajných tokenov z dát požiadaviek/odpovedí. Voliteľné; funguje obdobne ako `PII_REDACTION_ENABLED`. | ### Strana odpovedí: sanitizátor osobných údajov | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | -------------------------------- | ------------------ | ------------------------- | ---------------------------------------------------------------------------------------------- | | `PII_RESPONSE_SANITIZATION` | `false` | `src/lib/piiSanitizer.ts` | Pred vrátením odpovedí LLM klientovi ich skontroluje na prítomnosť uniknutých osobných údajov. | | `PII_RESPONSE_SANITIZATION_MODE` | `redact` | `src/lib/piiSanitizer.ts` | `redact` = zamaskovať osobné údaje, `warn` = iba zaznamenať, `block` = zahodiť celú odpoveď. | ### Sanitizátor kontextu tokenizovanej trasy VS Code | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------------------- | ------------------ | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_VSCODE_SANITIZE_CONTEXT` | `1` | `src/app/api/v1/vscode/contextSanitizer.ts` | Odstráni implicitný kontext aktívneho editora (`editorContext`, `activeEditor`, `currentFile`, `selection`, `openTabs`…) z požiadaviek `/v1/vscode/[token]/*` a začierni obsah explicitne priložených citlivých súborov. Predvolene zabezpečené; nastavením na `0` túto funkciu zakážete. | ### Scenáre | Scenár | Konfigurácia | | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Podnikový súlad s predpismi** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=block`, `PII_REDACTION_ENABLED=true`, `PII_RESPONSE_SANITIZATION=true` (blokovanie injekcií + odstránenie osobných údajov z požiadaviek/odpovedí; režimy sú nezávislé) | | **Iba monitorovanie** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — zaznamenáva, ale nikdy neblokuje | | **Osobné použitie** | Ponechajte všetko zakázané — nulová réžia | --- ## 6. Zásady nástrojov a smerovania | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------------------------------------------- | -------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | Riadi prístup LLM k volaniu nástrojov/funkcií. `allowlist` = iba uvedené nástroje, `denylist` = všetky okrem uvedených, `disabled` = bez obmedzení. | | `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | Cesta k súboru JSON s pravidlami na manipuláciu s dátovým obsahom (úpravy upstreamu podľa modelu/protokolu). | | `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | Interval opätovného načítania (ms) súboru s pravidlami dátového obsahu za chodu. Minimum je `1000`. | | `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | Voliteľné nastavenie: smeruje ID modelov `claude-*` bez prefixu z klientov Claude Code cez účet OAuth služby Claude Code namiesto vyžadovania prefixu poskytovateľa. Explicitné prefixy poskytovateľov majú stále prednosť. Možno ho nakonfigurovať aj pomocou prepínača na ovládacom paneli na stránke poskytovateľa Claude. | | `COMBO_CONCURRENCY_PER_MODEL` | `3` | `open-sse/services/comboConfig.ts` | Limit súbežnosti pre jednotlivé modely pri kombináciách typu round-robin (#9100). Semafor kombinácie round-robin mal pevne nastavený limit 3 súbežných požiadaviek na model bez možnosti zmeny, čo spôsobovalo, že prevádzka s vyššou súbežnosťou sa za týmto limitom spracúvala sériovo. Overuje sa hodnota `>= 1` a obmedzuje sa na `<= 32`. | | `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | Nebezpečné voliteľné nastavenie, ktoré pri priamych požiadavkách na jeden model preskočí lokálnu kontrolu kontextového okna/maximálneho počtu vstupných tokenov v OmniRoute. Upstream poskytovatelia naďalej vynucujú svoje skutočné limity; kompresia výzvy a vlastný limit výstupných tokenov modelu zostávajú aktívne. Platné poradie priorít je: prepísanie v databáze príznakov funkcií > premenná prostredia > predvolená hodnota; reštart nie je potrebný. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS` | _(nenastavené)_ | `open-sse/services/selfHostedEntry.ts` | Vložený dokument YAML `providers:` (RIC-738, D4). Keď je nastavený (s blokom `strategy:` alebo bez neho), `/v1/chat/completions` sa presmeruje do jednotného, samostatne hosťovaného vstupného bodu kompatibilného s OpenAI namiesto cloudového kanála spracovania. Ak nie je nastavený (predvolené nastavenie), trasa pokračuje priamo do existujúceho cloudového kanála spracovania. Pozrite si `docs/routing/SELF_HOSTED_OPENAI_ENTRY.md`. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE` | _(nenastavené)_ | `open-sse/services/selfHostedEntry.ts` | Cesta k súboru YAML obsahujúcemu rovnaký dokument `providers:` ako `OMNIROUTE_SELF_HOSTED_PROVIDERS`, určená pre nasadenia, ktoré uprednostňujú súbor pred vloženou premennou prostredia. Ktorákoľvek z týchto možností aktivuje samostatne hosťovaný vstupný bod. | | `OMNIROUTE_SELF_HOSTED_API_KEY` | _(nenastavené — otvorená trasa)_ | `open-sse/services/selfHostedEntry.ts` | Voliteľný zdieľaný kľúč API pre jednotný, samostatne hosťovaný vstupný bod (základ D5, vyhradený pre systém kvót podľa jednotlivých kľúčov). Keď je nastavený, požiadavky musia obsahovať `Authorization: Bearer `. Ak nie je nastavený, trasa je otvorená, čo zodpovedá existujúcemu vzoru samostatne hosťovaného lokálneho poskytovateľa (nasadenie v loopback/dôveryhodnej sieti). | | `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(nenastavené)_ | `open-sse/services/routingStrategies.ts` | Vložený dokument YAML `strategy:` pre deterministický smerovací mechanizmus (M2/RIC-740, D3) — zoznam zakázaných/povolených položiek, prerušovač s dobou čakania, priorita podľa nákladov, zohľadnenie latencie a reťazec záložných možností. Prepisuje vložený blok `strategy:` vnorený v `OMNIROUTE_SELF_HOSTED_PROVIDERS` pre jednotlivé kľúče. Pozrite si `docs/routing/DETERMINISTIC_ROUTING.md`. | | `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(nenastavené)_ | `open-sse/services/routingStrategies.ts` | Cesta k súboru YAML obsahujúcemu rovnaký dokument `strategy:` ako `OMNIROUTE_SELF_HOSTED_STRATEGY`, určená pre nasadenia, ktoré uprednostňujú súbor pred vloženou premennou prostredia. | | `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(nenastavené)_ | `open-sse/services/conversationTracker.ts` | Nastavením na `1` zastavíte zhromažďovanie histórie konverzácií. Funkcia `resolveConversationId()` vráti nesledovaný výsledok ešte pred čítaním databázy SQLite alebo analýzou histórie správ, pričom sa to vzťahuje aj na identifikátory relácií poskytnuté klientom. Spracovanie smerovacích relácií zostáva nezmenené a existujúce záznamy sa neodstránia. Určené pre nasadenia, ktoré nepoužívajú zobrazenie konverzácií na ovládacom paneli a chcú zastaviť rast tabuľky interakcií. | --- ## 7. URL adresy a cloudová synchronizácia | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------------------- | ----------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `BASE_URL` | `http://localhost:20128` | `src/lib/cloudSync.ts` | URL adresa na strane servera, ktorú interné synchronizačné úlohy používajú na volanie `/api/sync/cloud`. Ponechajte ju ako URL adresu spätnej slučky/kontajnera, aj keď je aplikácia verejne sprístupnená prostredníctvom proxy servera. | | `CLOUD_URL` | _(prázdne)_ | `src/lib/cloudSync.ts` | URL adresa koncového bodu cloudového prenosu (prémiová funkcia). | | `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | Časový limit HTTP pre požiadavky cloudovej synchronizácie. | | `OMNIROUTE_BUILD_PROFILE` | `full` | Konfigurácia zostavenia Webpack | Profil pri zostavení (nastavením na `minimal` fyzicky vylúčite privilegované moduly z balíka). | | `OMNIROUTE_STANDALONE_DIR` | _.build/ samostatný výstup_ | `scripts/build/colocate-standalone.mjs` | Prepísanie adresára samostatného výstupu pri zostavení, ktorý používa krok spoločného umiestnenia po zostavení. Nejde o nastavenie počas behu. | | `OMNIROUTE_CLOUD_SYNC_SECRET` | _(prázdne)_ | `src/lib/cloudSync.ts` | Zdieľaný tajný kľúč používaný na overenie podpisu HMAC-SHA256 odpovedí cloudovej synchronizácie. | | `OMNIROUTE_CLOUD_SYNC_SECRETS` | `false` | `src/lib/cloudSync.ts` | Nastavením na `true` umožníte koncovému bodu cloudovej synchronizácie prepísať lokálne prihlasovacie údaje. Predvolená hodnota je `false`. | | `OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE` | `false` | `src/lib/cloudSync.ts` | Nastavením na `true` odmietnete nepodpísanú odpoveď cloudovej synchronizácie, keď nie je nakonfigurovaný žiadny lokálny tajný kľúč (#13679). Prítomný podpis sa vždy overí — a ak `OMNIROUTE_CLOUD_SYNC_SECRET` nie je nastavené, vždy sa odmietne — bez ohľadu na tento príznak. Vo v3.9 sa predvolene začne vyžadovať. | | `OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP` | `false` | `src/app/api/providers/zed/import/route.ts` | Nastavením na `true` sa bez potvrdenia používateľom obnoví jednokrokové správanie „importovať všetko“ z v3.8.5. | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | OAuth, Dashboard, synchronizácia | Verejne prístupná URL adresa pre OAuth redirect_uri, odkazy Dashboard a generované verejné URL adresy. Nastavte ju na stabilnú verejnú URL adresu, keď spätné volania OAuth alebo generované odkazy pre prehliadač musia používať kanonického hostiteľa reverzného proxy servera. | | `NEXT_PUBLIC_CLOUD_URL` | _(prázdne)_ | Na strane klienta | Zrkadlo premennej `CLOUD_URL` na strane klienta. | | `NEXT_PUBLIC_APP_URL` | _(nenastavené)_ | `src/shared/services/cloudSyncScheduler.ts` | Staršia záložná možnosť pre `NEXT_PUBLIC_BASE_URL`. | | `NEXT_PUBLIC_PORT` | _(nenastavené — použije sa `PORT`)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Záložný port na strane klienta pre zobrazované URL adresy, keď nie je známy pôvod (SSR/testy); načíta sa pred `PORT`. | | `OMNIROUTE_PUBLIC_BASE_URL` | _(nenastavené)_ | Resolver verejného pôvodu, URL adresy obrázkov | Pôvod OmniRoute určený pre prehliadač s najvyššou prioritou, ktorý sa používa na generovanie verejných URL adries a overovanie pôvodu prehliadača mimo ovládacieho panela. Nastavte ho, keď OpenWebUI alebo iné sprostredkovanie pristupuje k OmniRoute cez internú URL adresu, ale prehliadač používateľa musí načítavať vygenerované médiá z LAN, tunela alebo verejného pôvodu. **Nezahŕňajte** `/v1`. | | `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(nenastavené)_ | `open-sse/config/providerPluginManifestUrl.ts` | Absolútna URL adresa manifestu doplnku poskytovateľa oznamovaná klientom typu sidecar. Keď nie je nastavená, OmniRoute odvodí `/api/v1/provider-plugin-manifest` z pôvodu požiadavky alebo z HOST/PORT. | | `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | Protokol používaný pri odvodzovaní URL adresy manifestu doplnku poskytovateľa z HOST/PORT bez pôvodu požiadavky. Za verejným proxy serverom ukončujúcim TLS nastavte hodnotu `https`, ak nie je explicitne nastavená premenná `OMNIROUTE_PROVIDER_MANIFEST_URL`. | | `OMNIROUTE_TRUST_PROXY` | _(nenastavené)_ | `src/server/origin/publicOrigin.ts` | Voliteľný režim dôveryhodnosti pre preposlané hlavičky verejného pôvodu. Nenastavené = pri bezpečnostných rozhodnutiach nedôverovať hlavičkám `Forwarded` / `X-Forwarded-*`. Hodnota `true` / `loopback` dôveruje preposlanému hostiteľovi/protokolu iba z proxy servera spätnej slučky označeného tokenom. Hodnota `private` / `lan` dôveruje aj partnerským proxy serverom v súkromnej LAN. V produkcii uprednostnite explicitnú hodnotu `NEXT_PUBLIC_BASE_URL`. | | `KIE_CALLBACK_URL` | _(nenastavené)_ | `open-sse/utils/kieTask.ts` | Verejná URL adresa spätného volania pre asynchrónne úlohy kie.ai. Prepísanie s najvyššou prioritou pred `OMNIROUTE_KIE_CALLBACK_URL` a `OMNIROUTE_PUBLIC_URL`. | | `OMNIROUTE_KIE_CALLBACK_URL` | _(nenastavené)_ | `open-sse/utils/kieTask.ts` | Alternatívny názov pre `KIE_CALLBACK_URL`. Použije sa ako záložná možnosť, keď primárna premenná nie je nastavená. | | `OMNIROUTE_PUBLIC_URL` | _(nenastavené)_ | `open-sse/utils/kieTask.ts` | Verejný pôvod používaný na zostavenie URL adries asynchrónnych spätných volaní. Záložná možnosť s najnižšou prioritou pre spätné volania kie.ai; používa sa aj ako všeobecná verejná URL adresa pre iné sprostredkovania. | | `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | Koncový bod na zisťovanie kvóty CrofAI používaný stránkou Využitie. Prepíšte ho pre sprostredkovania/testovacie prípravky. | | `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | Oficiálny koncový bod využitia OpenCode Go overovaný kľúčom API, ktorý používa stránka Využitie. Prepíšte ho pre sprostredkovania/testovacie prípravky. | | `OPENCODE_SYNTHESIZE_CLI_HEADERS` | `true` | `open-sse/executors/opencode.ts` | Syntetizuje hlavičky identity OpenCode CLI (User-Agent, x-opencode-client/project, UUID požiadavky/relácie) v požiadavkách opencode-go/zen smerujúcich na nadradený server, ktoré klient neodoslal, aby ich Cloudflare pri odchádzajúcej komunikácii z VPS prijal (#6210/#5997). Predvolene zapnuté od #10571; vypnete hodnotou `false`/`0`/`no`/`off`. | | `OPENCODE_USER_AGENT` | `opencode/1.18.31` | `open-sse/utils/opencodeHeaders.ts` | Predvolený User-Agent používaný, keď je zapnuté `OPENCODE_SYNTHESIZE_CLI_HEADERS` a nie je nastavené prepísanie `_USER_AGENT` pre konkrétneho poskytovateľa. Používa sa iba pre vykonávacie moduly opencode. Pri požiadavke bez kľúča, ktorú nadradený server obmedzuje, sa nakonfigurovaná hodnota, ktorá neobsahuje `opencode/= 1.17>`, namiesto odmietnutia nahradí touto predvolenou hodnotou. | | `OPENCODE_CLIENT` | `desktop` | `open-sse/executors/opencode.ts` | Hodnota syntetizovanej hlavičky `x-opencode-client`, keď je zapnuté `OPENCODE_SYNTHESIZE_CLI_HEADERS`. | | `OPENCODE_PROJECT` | `global` | `open-sse/executors/opencode.ts` | Hodnota syntetizovanej hlavičky `x-opencode-project`, keď je zapnuté `OPENCODE_SYNTHESIZE_CLI_HEADERS`. | | `OPENCODE_FREE_TIER_REQUEST_CONTRACT` | _(nenastavené)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Nastavením na `off` sa prestane upravovať telo bezkľúčových požiadaviek OpenCode (príznak streamovania a zoznam nástrojov). Hlavičky sa naďalej používajú. Hodnota sa načítava pri každej požiadavke, takže zmena sa prejaví okamžite. | | `OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS` | _(nenastavené)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Názvy nástrojov oddelené čiarkami, ktoré sa deklarujú v bezkľúčovej požiadavke OpenCode neobsahujúcej žiadne nástroje, ak pre daný model ešte neboli žiadne zaznamenané. Pri prázdnej hodnote sa použije jeden zástupný nástroj, pričom model dostane pokyn, aby ho nevolal. Najviac 32 položiek vo formáte `[A-Za-z_][A-Za-z0-9_-]{0,63}`; neplatné položky sa ignorujú. | | `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | URL nastavení Ollama Cloud používaná na získavanie údajov o kvóte. Možno ju prepísať pre sprostredkovacie servery/testovacie dáta. | | `OLLAMA_USAGE_COOKIE` | _(nenastavené)_ | `open-sse/services/usage.ts` | Súbor cookie `__Secure-session` služby Ollama Cloud používaný na získavanie údajov o kvóte zo stránky nastavení. Citlivý údaj; ak je nakonfigurovaných viacero účtov, uprednostnite pole pre jednotlivé pripojenia na ovládacom paneli. | | `OLLAMA_CLOUD_USAGE_COOKIE` | _(nenastavené)_ | `open-sse/services/usage.ts` | Alternatívna premenná prostredia pre súbor cookie `__Secure-session` služby Ollama Cloud. Citlivý údaj; ak je nakonfigurovaných viacero účtov, uprednostnite pole pre jednotlivé pripojenia na ovládacom paneli. | | `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(nenastavené)_ | `open-sse/services/usage.ts` | Alternatívna premenná prostredia pre súbor cookie `__Secure-session` služby Ollama Cloud, ktorá sa použije pred kratšími aliasmi. Citlivý údaj; ak je nakonfigurovaných viacero účtov, uprednostnite pole pre jednotlivé pripojenia na ovládacom paneli. | | `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | Koncový bod limitov používania služby CodeWhisperer (AWS Kiro). Možno ho prepísať pre sprostredkovacie servery/testovacie dáta. | > [!IMPORTANT] > Pri nasadení za reverzným proxy serverom (nginx, Caddy) nastavte `NEXT_PUBLIC_BASE_URL` na svoju stabilnú verejnú URL (napr. `https://omniroute.example.com`), ak musia spätné volania OAuth alebo generované verejné odkazy používať tento názov hostiteľa. Bez toho môžu spätné volania OAuth zlyhať, pretože sa hodnota redirect_uri nebude zhodovať, a generované verejné odkazy môžu odkazovať na interný pôvod kontajnera. > > Ponechajte `BASE_URL` ako internú URL spätnej slučky/kontajnera pre úlohy medzi servermi. Pre interné samočinné načítania obsahujúce prihlasovacie údaje nepoužívajte hodnotu `Origin` z prehliadača ani verejný názov hostiteľa. > > Autentifikované zápisy z ovládacieho panela nevyžadujú statickú verejnú základnú URL: ovládací panel odosiela nebezpečné požiadavky rovnakého pôvodu s tokenom CSRF naviazaným na reláciu. OmniRoute naďalej centralizuje overovanie verejného pôvodu pre integrácie prehliadača mimo ovládacieho panela: najprv sa dôveruje explicitným premenným prostredia verejnej URL; nespracované hlavičky `Forwarded` / `X-Forwarded-*` sa ignorujú, pokiaľ nie je zapnuté `OMNIROUTE_TRUST_PROXY` a bezprostredný proxy server nie je označený tokenom ako dôveryhodný. Nepoužívajte nastavenia CORS na opravu požiadaviek ovládacieho panela rovnakého pôvodu; CORS je určený iba pre klientov prehliadača komunikujúcich medzi rôznymi pôvodmi. --- ## 8. Odchádzajúci proxy server Smerujte volania na nadradených poskytovateľov LLM cez proxy server HTTP alebo SOCKS5 na účely riadenia odchádzajúcej komunikácie, geografického smerovania alebo maskovania IP adresy. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------------------- | ------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | Povolí agenta proxy SOCKS5 pre volania na nadradené služby. Deaktivujete ho pomocou hodnoty `false`. | | `NEXT_PUBLIC_ENABLE_SOCKS5_PROXY` | `true` | Na strane klienta | Informácia na strane klienta o dostupnosti SOCKS5. | | `PROXY_SKIP_RECENTLY_FAILED` | `false` | `src/shared/utils/featureFlags.ts` | Voliteľný príznak funkcie (pozrite si [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); prepísanie v databáze ovládacieho panela má prednosť). Fondy proxy serverov a rotácia podľa účtu prestanú na určitý čas opätovne prideľovať člena, ktorý práve zlyhal (odmietnutá sonda TCP alebo odpoveď 429 pri použití proxy servera); toto obdobie sa pri každom opakovaní zdvojnásobí až po stanovený limit. Hodnota `true` (alebo `1`, `yes`) ho povolí. | | `HTTP_PROXY` | _(nenastavené)_ | Štandard Node.js | Proxy server HTTP pre volania na nadradené služby. | | `HTTPS_PROXY` | _(nenastavené)_ | Štandard Node.js | Proxy server HTTPS pre volania na nadradené služby. | | `ALL_PROXY` | _(nenastavené)_ | Štandard Node.js | Univerzálny proxy server (podporuje `socks5://`). | | `OMNIROUTE_PROXY_ECHO_URL` | _(nenastavené)_ | `src/lib/proxyEchoTarget.ts` | Nastaví cieľ na zistenie IP adresy používaný sondami odchádzajúcej komunikácie cez proxy server na jednu adresu URL. Ak nie je nastavená, sonda skúsi najprv `api64.ipify.org` a potom `api4.ipify.org`, aby tunely podporujúce iba IPv4 neboli hlásené ako nefunkčné (#9694). | | `NO_PROXY` | _(nenastavené)_ | Štandard Node.js | Názvy hostiteľov/IP adresy oddelené čiarkami, pre ktoré sa má proxy server obísť. | | `OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS` | `32` | `open-sse/utils/proxyDispatcher.ts` | Maximálny počet súbežných soketov pre každý dispečer proxy HTTP/SOCKS uložený vo vyrovnávacej pamäti. Dlhodobé streamy SSE, ako napríklad Codex `/v1/responses`, potrebujú viac než jedno pripojenie, keď viacero požiadaviek zdieľa rovnaký proxy server na úrovni účtu. Hodnoty vyššie než `256` sa obmedzia na túto hodnotu. | | `SOCKS_HANDSHAKE_TIMEOUT_MS` | `10000` | `open-sse/utils/socksConnectorWithFamily.ts` | Časový limit nadviazania spojenia (pripojenia) SOCKS5 v ms. Zvýšte ho, keď jeden hostiteľ rezidenčnej brány čelí vysokej súbežnosti (napr. 100 súbežných požiadaviek) — skutočné nadviazanie spojenia môže pri nasýtenom fonde trvať dlhšie než 10 s, aj keď je proxy server dostupný, čo by sa inak prejavilo falošným hlásením `[Proxy Fast-Fail] Proxy unreachable`. Maximálna hodnota je `120000`. | | `PROXY_FAIL_OPEN` | `false` | `src/sse/handlers/chatHelpers.ts` | Keď je nastavená hodnota `false` (predvolená), požiadavka, ktorej priradený proxy server sa nepodarí preložiť, bude **odmietnutá (fail-closed)** namiesto použitia priameho pripojenia — zabraňuje to úniku skutočnej IP adresy. Nastavením hodnoty `true` obnovíte pôvodný záložný režim DIRECT. | | `ENABLE_TLS_FINGERPRINT` | `false` | `open-sse/executors` | Falšuje odtlačok TLS pomocou wreq-js (napodobňuje Chrome 124). Obchádza blokovanie JA3/JA4. | | `TLS_FINGERPRINT_PROVIDERS` | _(nenastavené)_ | `open-sse/utils/proxyFetch.ts` | Zoznam povolených poskytovateľov oddelených čiarkami pre nové smerovanie TLS cez proxy (`open-sse/utils/proxyFetch.ts`). Pri nenastavenej hodnote si priame TLS zachováva pôvodné správanie; iba títo poskytovatelia sú smerovaní cez most odtlačkov Chrome 124. | | `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | Umožňuje kontextu prehliadača Playwright pre Claude Turnstile ignorovať chyby certifikátov HTTPS. | ### Scenáre | Scenár | Konfigurácia | | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | **SOCKS5 cez tunel SSH** | `ALL_PROXY=socks5://127.0.0.1:7890`, `ENABLE_SOCKS5_PROXY=true` | | **Podnikový HTTP proxy server** | `HTTP_PROXY=http://proxy.corp.com:3128`, `HTTPS_PROXY=http://proxy.corp.com:3128`, `NO_PROXY=localhost,internal.corp.com` | | **Ochrana proti snímaniu odtlačkov** | `ENABLE_TLS_FINGERPRINT=true` — vyžaduje `wreq-js` (je súčasťou balenia) | | **Riadený odchádzajúci prenos / bez priameho prístupu** | Ponechajte `PROXY_FAIL_OPEN=false` (predvolené). Keď proxy server nie je dostupný, požiadavky zlyhajú natvrdo namiesto úniku cez priame pripojenie. | | **Starší režim / vývoj — povolenie priameho náhradného pripojenia** | `PROXY_FAIL_OPEN=true`. Obnoví správanie pred spevnením zabezpečenia: pri zlyhaní rozpoznania proxy servera sa použije priame pripojenie. | > **Poznámka (obídenie overovania NVIDIA — #3226):** Koncový bod NVIDIA na overovanie kľúča API > prestane reagovať, keď je smerovaný cez globálny proxy server alebo fetch s úpravou TLS (dispečer undici → 504). > `src/lib/providers/validation.ts::directHttpsRequest()` zámerne obchádza > úpravu proxy servera pre toto jediné volanie overenia pomocou `safeOutboundFetch({ bypassProxyPatch: true })`. > Ide o zdokumentovanú výnimku s obmedzeným rozsahom — **neovplyvňuje** odchádzajúci prenos chatu ani používania. > Rozsah obídenia je pevne vymedzený testom `tests/unit/proxy-bypass-scope-guard-3226.test.ts`. --- ## 9. Integrácia nástrojov CLI Určuje, ako OmniRoute vyhľadáva a spúšťa sprievodné procesy CLI (Claude Code, Codex atď.). | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | --------------------------------- | -------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLI_MODE` | `auto` | `src/shared/services/cliRuntime.ts` | `auto` = hľadať v systémovej premennej PATH; `manual` = používať iba explicitné cesty. | | `CLI_EXTRA_PATHS` | _(nenastavené)_ | `src/shared/services/cliRuntime.ts` | Ďalšie položky premennej PATH na vyhľadávanie binárnych súborov CLI (oddelené dvojbodkami). | | `CLI_CONFIG_HOME` | _(nenastavené)_ | `src/shared/services/cliRuntime.ts` | Prepíše domovský adresár na čítanie konfigurácií CLI (`~/.claude`, `~/.codex`). Musí ísť o absolútnu cestu v domovskom adresári procesu — **alebo** v kontajneri o cestu pripojenú pomocou bind mount (takto funguje `/host-home`). Pri akejkoľvek inej hodnote sa použije domovský adresár. | | `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | Umožňuje OmniRoute zapisovať konfiguračné súbory CLI (obnovenie tokenu, údaje relácie). Nastavením na `false` každý zápis do konfigurácie CLI zlyhá s explicitnou chybou „zápisy sú zakázané“. | | `CLI_CLAUDE_BIN` | `claude` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Claude CLI. | | `CLI_CODEX_BIN` | `codex` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Codex CLI. | | `CLI_DROID_BIN` | `droid` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Droid CLI. | | `CLI_OPENCLAW_BIN` | `openclaw` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru OpenClaw CLI. | | `CLI_CURSOR_BIN` | `agent`, potom `cursor` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru agenta Cursor. Ak nie je zadaná, detekcia najprv vyskúša `agent` a potom použije `cursor`. | | `CLI_CLINE_BIN` | `cline` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Cline CLI. | | `CLI_5DIVE_BIN` | `5dive` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru 5dive CLI. | | `CLI_5DIVE_STATE_DIR` | `/var/lib/5dive` | `src/shared/services/cliRuntime.ts` | Systémový stavový adresár nástroja 5dive (profily overovania vlastnené používateľom root); zodpovedá predvolenej hodnote STATE_DIR samotného nástroja 5dive. | | `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Continue CLI. | | `CLI_QODER_BIN` | `qodercli` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Qoder CLI. | | `CLI_QWEN_BIN` | `qwen` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Qwen Code CLI. | | `CLI_AIDER_BIN` | `aider` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Aider CLI. | | `CLI_GOOSE_BIN` | `goose` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Goose CLI. | | `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Google Gemini CLI — iba na detekciu a kontroly stavu na strane servera; `omniroute run gemini` vyhľadá binárny súbor `gemini` v systémovej premennej PATH. | | `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Kilo Code CLI. | | `CLI_OPENCODE_BIN` | `opencode` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru OpenCode CLI. | | `CLI_HERMES_BIN` | `hermes` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Hermes. Zdieľajú ju obe položky katalógu (`hermes` a `hermes-agent`). | | `CLI_FORGE_BIN` | `forge` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru CLI ForgeCode. | | `CLI_JCODE_BIN` | `jcode` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru CLI jcode. | | `CLI_DEEPSEEK_TUI_BIN` | `deepseek-tui` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru DeepSeek TUI. | | `CLI_CODEWHALE_BIN` | `codewhale` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru CLI CodeWhale. | | `CLI_SMELT_BIN` | `smelt` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru CLI Smelt. | | `CLI_PI_BIN` | `pi` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Pi (pi-coding-agent). | | `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru CLI Crush. | | `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru agenta Oh My Pi (`omp`). | | `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru CLI Letta. | | `CLI_PRIME_AGENT_BIN` | `prime-agent` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Prime Agent (Prime Intellect). | | `CLI_WINDSURF_BIN` | _(žiadna)_ | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Windsurf. Windsurf sa dodáva **bez predvoleného príkazu** — detekcia binárneho súboru zostane vypnutá, kým sa táto premenná nenastaví. | | `CLI_DEVIN_BIN` | `devin` | `open-sse/executors/devin-cli.ts` | Vlastná cesta k binárnemu súboru CLI Devin (v3.8.0). Používa ju vykonávací modul Windsurf/Devin. | | `DEVIN_DESKTOP_VERSION` | `3.6.27` | `open-sse/executors/devin-desktop.ts` | Hodnota `ide_version` pre Devin Desktop. Prepísané hodnoty musia používať formát `x.y.z`; pri neplatných hodnotách sa použije overená predvolená hodnota. | | `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | Zabalená hodnota `extension_version` pre Codeium/language-server, odlišná od hodnoty `ide_version` aplikácie Desktop. Prepísané hodnoty musia používať formát `x.y.z`; pri neplatných hodnotách sa použije zabalená predvolená hodnota. | | `CLI_DEVIN_AGENTIC_BIN` | `devin` | `open-sse/executors/devin-cli-agentic.ts` | Prepísanie CLI Devin určené iba pre agentický most. Vykonávací modul prijíma iba lokálny upstream ACP stdio. | | `DEVIN_AGENTIC_HOME` | _(povinné)_ | `open-sse/executors/devin-cli-agentic.ts` | Absolútna cesta k izolovanému domovskému adresáru agentického podprocesu Devin; akceptované cesty mosta sú `/home/bridge` a cesty `.sandbox` lokálne pre úlohu (v systéme Windows `C:\...\.sandbox\...`). | | `DEVIN_AGENTIC_ACP_TIMEOUT_MS` | `120000` | `open-sse/executors/devin-cli-agentic.ts` | Maximálne trvanie jedného cyklu Devin ACP, po ktorom most ukončí dcérsky proces a vráti explicitnú informáciu o prekročení časového limitu. | | `DEVIN_BRIDGE_MODEL` | `devin-cli-agentic/swe-1-7` | `docker/devin-bridge/compose.yml` | Alias hlavného modelu Claude Code pre izolovaný most. Aktívny testovací systém nahradí príklad modelom vráteným aktuálnym účtom Devin. | | `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Alias izolovaného mosta použitý, keď Claude Code požaduje svoj predvolený model Sonnet. | | `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Alias izolovaného mosta použitý, keď Claude Code požaduje svoj predvolený model Opus. | | `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Alias izolovaného mosta použitý, keď Claude Code požaduje svoj predvolený model Haiku. | | `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Alias izolovaného mosta používaný pre podagentov Claude Code. | | `DEVIN_SEAT_API_URL` | `https://server.codeium.com` | `open-sse/services/usage/devinCli.ts` | Voliteľné prepísanie adresy API na správu licencií Codeium, ktoré používa kvóta Devin CLI (`GetUserStatus`). | | `AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Prepísanie absolútnej cesty k binárnemu súboru CLI Augment (Auggie), ktorý používa lokálny poskytovateľ `auggie`. Ak nie je nastavené, použije sa `CLI_AUGGIE_BIN` a následne vyhľadávanie v PATH. | | `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Alternatívne prepísanie cesty k binárnemu súboru CLI Augment (Auggie) (kontroluje sa po `AUGGIE_BIN`). | | `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | Binárny súbor používaný klientom stdio lokálneho poskytovateľa `zcode`. Ak nie je nastavený, použije sa `zcode` z PATH. | | `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | Pole JSON (≤16 reťazcov) dodatočných argumentov odovzdaných binárnemu súboru `zcode` pri spustení cez `cliTools`. | | `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | Pracovný adresár podprocesu aplikačného servera ZCode. | | `ZCODE_PROVIDER_ID` | `builtin:zai-coding-plan` | `open-sse/executors/zcode.ts` | Prepísanie ID poskytovateľa odosielaného aplikačnému serveru. | | `ZCODE_SERVER_RUNTIME_ROOT` | `~/.zcode/server` | `open-sse/executors/zcode.ts` | Koreňový adresár runtime prostredia aplikačného servera ZCode (kde sa nachádzajú pribalené súbory `node` a `zcode-server.cjs`). | | `ZCODE_SERVER_NODE` | `/node` | `open-sse/executors/zcode.ts` | Spustiteľný súbor Node používaný na prevádzku aplikačného servera ZCode. | | `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | Vstupný skript aplikačného servera používaný na prevádzku servera ZCode. | | `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | Časový limit spustenia (ms), po ktorého uplynutí sa spustenie aplikačného servera ZCode považuje za neúspešné. | | `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | Časový limit RPC pre jednotlivé požiadavky (ms) pri volaní aplikačného servera ZCode. | | `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | Maximálne trvanie jedného cyklu ZCode (ms), po ktorom ho supervízor ukončí z dôvodu prekročenia časového limitu. | | `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | Interval dopytovania (ms) na zistenie dokončenia cyklu ZCode. | | `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | Domovský adresár agenta Hermes, v ktorom OmniRoute číta/zapisuje konfiguráciu Hermes CLI. Zodpovedá premennej prostredia, ktorú inštalátor Hermes pre PowerShell nastavuje v systéme Windows (`%LOCALAPPDATA%\hermes`). | ### Automatická synchronizácia profilov CLI Tieto príznaky funkcií sú voliteľné a predvolene vypnuté. Možno ich tiež prepínať na ovládacom paneli CLI Code. | Premenná | Predvolené | Zdrojový súbor | Popis | | ------------------------------------- | ---------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Po synchronizácii modelov poskytovateľa automaticky prepíše súbory profilov `~/.codex/*.config.toml` podľa aktuálneho katalógu. Vyžaduje `CLI_ALLOW_CONFIG_WRITES`; nikdy nemení aktívnu/predvolenú konfiguráciu Codex, overovacie údaje, nastavenia Codex-lb ani výber poskytovateľa. | | `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Po synchronizácii modelov poskytovateľa automaticky prepíše súbory profilov Claude Code `~/.claude/profiles//settings.json` podľa aktuálneho katalógu. Vyžaduje `CLI_ALLOW_CONFIG_WRITES`; nikdy nemení aktívnu/predvolenú konfiguráciu Claude, overovacie údaje ani výber poskytovateľa. | ### Príklad pre Docker ```bash # Pripojte binárne súbory hostiteľa do kontajnera a oznámte OmniRoute, kde sa nachádzajú: CLI_EXTRA_PATHS=/host-cli/bin CLI_CONFIG_HOME=/host-home CLI_ALLOW_CONFIG_WRITES=true CLI_CLAUDE_BIN=/host-cli/bin/claude ``` `CLI_CONFIG_HOME` sa prejaví iba vtedy, keď je cesta skutočne pripojená z hostiteľa pomocou bind mountu — použite ju spolu s pripojeniami, ako je `~/.codex:/host-home/.codex:rw` (pozrite si profil `host` v súbore `docker-compose.yml`). Cesta, ktorá sa nenachádza ani v domovskom adresári používateľa kontajnera, ani nie je bind mountom, sa ignoruje, pretože zápis do nej by sa pri opätovnom vytvorení kontajnera zahodil. Obraz sa spúšťa ako `USER node`, takže nepripojený adresár `/root` **nie je** platným prepísaním. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------------------- | ------------------ | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CONTAINER` | _(automaticky)_ | `src/shared/utils/containerEnv.ts` | Vynúti zapnutie (`1`/`true`) alebo vypnutie (`0`/`false`) detekcie kontajnera. Potrebné iba v runtime prostrediach, ktoré automatická detekcia nerozpozná. | | `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | Povolí nástrojom CLI zapisovať konfiguráciu do nepripojenej cesty kontajnera. Ekvivalentom v CLI je `--allow-container-write`. | ### Pomocné premenné binárneho súboru CLI (`omniroute`) Tieto premenné upravujú správanie samotného binárneho súboru CLI `omniroute` (nie detekciu vedľajšieho kontajnera uvedenú vyššie). | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------- | ------------------ | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_LANG` | _(systémová)_ | `bin/cli/i18n.mjs` | Vynúti jazyk výstupu CLI. Lokalita BCP-47 (napr. `en`, `pt-BR`). Prepíše systémové premenné prostredia pre lokalitu (LC_ALL, LC_MESSAGES). | | `OMNIROUTE_SHOW_LOG` | _(nenastavená)_ | `bin/cli/runtime/processSupervisor.mjs` | Nastavením na `1` sa v režime s dohľadom presmerujú stdout/stderr servera do terminálu. Ekvivalent príznaku `--log` príkazu `omniroute serve`. | | `OMNIROUTE_CLI_TOKEN` | _(nenastavená)_ | `bin/cli/api.mjs` | Token na autentifikáciu stroja vložený ako hlavička `x-omniroute-cli-token`. Automaticky sa generuje v úlohe 8.12. | | `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Časový limit HTTP pre každý pokus (ms) pri požiadavkách z CLI na server. | | `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maximálny čas (ms), počas ktorého CLI čaká na koncový bod kontroly stavu servera pred zobrazením upozornenia na vypršanie časového limitu. Užitočné pri pomalom štarte za studena (napr. vo Windows). Možno nastaviť aj pomocou `--ready-timeout`. | | `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Nastavením na `1` sa počas vykonávania príkazov CLI vypíšu diagnostické informácie o opakovaných pokusoch a odstupňovanom čakaní na stderr. | | `OMNIROUTE_PLUGIN_PATH` | _(nenastavená)_ | `bin/cli/plugins.mjs` | Vlastný adresár na vyhľadávanie zásuvných modulov CLI (balíky `omniroute-cmd-*`). Ak nie je nastavený, predvolene sa použije `~/.omniroute/plugins/`. Platí iba pre CLI — nikdy sa neprenáša do serverového vyhľadávača zásuvných modulov, ktorého umiestnenie určuje `OMNIROUTE_PLUGINS_DIR` (časť 2). | --- ## 10. Integrácie interného agenta a MCP | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_BASE_URL` | automatická detekcia | `open-sse/mcp-server/server.ts` | Explicitná URL adresa, prostredníctvom ktorej nástroje MCP/A2A pristupujú k OmniRoute. Prepíše automatickú detekciu localhostu. | | `OMNIROUTE_API_KEY` | _(nenastavené)_ | Moduly MCP/A2A | Kľúč API pre interný nástroj MCP a volania zručností A2A. | | `OMNIROUTE_API_KEY_ID` | _(nenastavené)_ | `open-sse/mcp-server/audit.ts` | ID kľúča na priradenie záznamov auditu MCP. | | `ROUTER_API_KEY` | _(nenastavené)_ | Starší systém | Starší alias pre `OMNIROUTE_API_KEY`. | | `OMNIROUTE_A2A_HISTORY_RETENTION_DAYS` | `30` | `src/lib/a2a/taskManager.ts` | Počet dní, počas ktorých sa história úloh A2A uchováva v lokálnej databáze, kým riadok neodstráni každodenné čistenie. Nenastavená, nečíselná hodnota alebo hodnota `<= 0` použije ako náhradnú hodnotu `30`. | | `OMNIROUTE_A2A_MEMORY_HITS` | `1` | `src/lib/a2a/taskExecution.ts` | Vypínač funkcie pozorovateľnosti zásahov do pamäte A2A. Nastavením na `0` sa úplne preskočí vyhľadávanie spomienok v pamäti pre danú úlohu; akákoľvek iná hodnota (vrátane nenastavenej) ponechá funkciu zapnutú. | | `OMNIROUTE_ISSUE_AGENT_ENABLED` | `false` | `src/app/api/issue-agent/runs/route.ts` | Zapína offline/lokálny koncový bod agenta Issue Agent pre zaznamenané triedenie. Ponechajte ho vypnutý, pokiaľ explicitne nespúšťate lokálne pracovné postupy zaznamenaného triedenia. | | `OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS` | _(nenastavené)_ | `src/lib/issueAgent/execution.ts` | Časový limit (ms) jedného spustenia zaznamenaného triedenia agenta Issue Agent. Hodnota je obmedzená interným maximom; ak nie je nastavená alebo je neplatná, použije sa vstavaná predvolená hodnota. | | `OMNIROUTE_CONTEXT` | _(aktívny kontext)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | Kontext/profil vzdialeného režimu CLI pre príkazy `omniroute`; prepíše aktívny kontext v lokálnom úložisku kontextov. Ekvivalent parametra `--context `. | | `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | Vypne voliteľný backend systémovej kľúčenky `keytar` pre prihlasovacie údaje kontextu CLI. Keď je táto možnosť zapnutá, prihlasovacie údaje zostanú v súbore `config.json` s režimom `0600` a CLI zobrazí jednorazové upozornenie na použitie náhradného riešenia; je určená na zámernú prevádzku bez grafického rozhrania alebo v kontajneri. | | `OMNIROUTE_MCP_ENFORCE_SCOPES` | `false` | `open-sse/mcp-server/server.ts` | Vynucuje riadenie prístupu k volaniam nástrojov MCP na základe rozsahov. | | `OMNIROUTE_MCP_SCOPES` | _(všetky)_ | `open-sse/mcp-server/server.ts` | Rozsahy oddelené čiarkami: `admin`, `combos`, `health`, `models`, `routing`, `budget`, `metrics`, `pricing`, `memory`, `skills`. | | `OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS` | `false` | `open-sse/mcp-server/descriptionCompressor.ts` | Komprimuje popisy nástrojov MCP pred serializáciou manifestu. Hodnoty na zapnutie: `1`, `true`, `on`. | | `OMNIROUTE_MCP_DESCRIPTION_COMPRESSION` | `rtk` | `open-sse/mcp-server/descriptionCompressor.ts` | Kompresný algoritmus/profil. Hodnoty na vypnutie: `0`, `false`, `off`. | | `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | Časový limit (ms) na prerušenie interných čítaní správy servera MCP (stav, odolnosť, kombinácie, kvóta, využitie). | | `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | Časový limit prerušenia (ms) pre prechody MCP, ktoré čakajú na poskytovateľa (`route_request`, `web_search`, `web_fetch`). | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | `src/lib/localCorpus/configured.ts` | Maximálny počet inštancií indexu lokálneho korpusu uložených vo vyrovnávacej pamäti (LRU, jedna na každý indexovaný koreňový adresár). Ohraničené na minimálnu hodnotu `1`. | | `MODEL_SYNC_INTERVAL_HOURS` | `24` | `src/shared/services/modelSyncScheduler.ts` | Interval synchronizácie katalógu modelov v hodinách. | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | `src/lib/usage/providerLimits.ts` | Interval zisťovania limitov frekvencie a kvót poskytovateľa. | | `PROVIDER_LIMITS_SYNC_SPACING_MS` | `1500` | `src/lib/usage/providerLimits.ts` | Odstup (ms) medzi po sebe nasledujúcimi načítaniami kvót OAuth pri hromadnej synchronizácii; pripojenia OAuth sa načítavajú po jednom, aby sa predišlo nárazovému zaťaženiu nadradenej služby. Hodnota `0` túto funkciu vypne (súbežné načítanie). | | `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | Minimálny interval (ms) medzi po sebe nasledujúcimi načítaniami kvót z nadradenej služby v rámci predbežnej kontroly/monitorovania jednotlivých požiadaviek; rozkladá súbežné sieťové volania v čase, aby veľa účtov z jednej IP adresy nárazovo nezaťažilo nadradenú službu. Zapojené do mechanizmov načítania kvót Codex (`/wham/usage`), DeepSeek, Bailian (obe miesta načítania), OpenCode a Crof (#6009, #6911). Všeobecná cesta odosielania `usage.ts::getUsageForProvider` (github/glm/minimax/nanogpt/xai/atď.) zatiaľ nie je pokrytá — sleduje sa samostatne. Zásahy do vyrovnávacej pamäte nie sú ovplyvnené. Hodnota `0` túto funkciu vypne; rozsah je ohraničený na `0..5000`. | | `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | Oneskorenie (ms) pred obnovením limitov poskytovateľa po skutočnej udalosti použitia, ktoré poskytne API kvót nadradenej služby čas na zaznamenanie spotreby. | | `OMNIROUTE_LOGIN_BROWSER_PATH` | automatická detekcia | `open-sse/services/adobeFireflyBrowserLogin.ts` | Absolútna cesta k spustiteľnému súboru systémového prehliadača Chrome alebo Edge používanému na interaktívne prihlásenie do Adobe Firefly a obnovenie mimo obrazovky. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | povolené | `open-sse/services/adobeFireflySession.ts` | Udržiava stav IMS a stav rizika prehliadača aktuálny pomocou relácií Chrome CDP viazaných na účet. Nastavením na `0` sa obnovenie prehliadačom zakáže. | | `ADOBE_FIREFLY_SESSION_DISK` | povolené | `open-sse/services/adobeFireflySession.ts` | Uchováva opravené relácie Adobe v adresári `DATA_DIR` aj po reštartovaní procesu. Nastavením na `0` sa relácie zachovajú iba v pamäti. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Minimálny časový odstup v milisekundách medzi odoslaniami požiadaviek na generovanie v Adobe Firefly; hodnota `0` odstup vypne. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Dodatočné obdobie nečinnosti v milisekundách po každom treťom úspešnom odoslaní do Adobe. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyClient.ts` | Základné oneskorenie opakovaného pokusu v milisekundách po prechodných odpovediach Adobe 408; kombinuje sa s odstupmi medzi odoslaniami počas najviac piatich pokusov. | | `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | Zakáže všetky služby na pozadí (synchronizáciu, určovanie cien, obnovovanie modelov). Užitočné pre CI/testovanie. | | `OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS` | _(nenastavené)_ | `src/lib/config/runtimeSettings.ts` | Vynúti zapnutie úloh na pozadí pri detekcii automatizovaného testovania. Nastavením na `1` sa prepíše testovacia heuristika. | | `OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS` | `600000` | `src/lib/jobs/budgetResetJob.ts` | Frekvencia kontroly resetovania rozpočtu (ms). Minimálna hodnota je `10000`. | | `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | Interval proaktívneho obnovenia pripojení po uplynutí času na zotavenie (ms): opätovne overuje pripojenia, ktorých prechodná hodnota `rate_limited_until` už uplynula, mimo kritickej cesty spracovania požiadaviek. Minimum `5000`. | | `OMNIROUTE_DISABLE_CONNECTION_RECOVERY` | `false` | `src/lib/quota/connectionRecovery.ts` | Zakáže plánovač proaktívneho obnovenia pripojení po uplynutí času na zotavenie (lenivé obnovenie v `getProviderCredentials` sa naďalej uplatňuje). | | `OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS` | `1800000` | `src/lib/jobs/reasoningCacheCleanupJob.ts` | Interval čistenia vyrovnávacej pamäte uvažovania (ms). Minimum `60000`. | | `OMNIROUTE_REASONING_MIN_BUDGET` | _nenastavené_ (zakázané) | `open-sse/services/reasoningTokenBuffer.ts` | Voliteľná minimálna hranica rozpočtov výstupu modelov s uvažovaním: hodnota `max_tokens` volajúceho v rozsahu `[256, minimum)` sa zvýši na minimum (s obmedzením podľa maximálneho výstupu modelu). Nenastavené = rozpočty klienta sa nikdy nezväčšujú (#9507). | | `OMNIROUTE_LOG_EXPORT_CRON` | `0 * * * *` | `src/lib/jobs/logExportJob.ts` | Výraz cron (UTC) pre úlohu exportu protokolov volaní, ktorá spracúva každý povolený cieľ exportu protokolov. | | `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | Interval zisťovania zmien (ms) pre opätovné načítanie konfigurácie za chodu. Hodnota nižšia ako `1000` sa odmietne. | | `OMNIROUTE_DISABLE_REDIS_AUTH_CACHE` | _(povolené)_ | `src/lib/db/apiKeys.ts` | Nastavením na `1` sa obíde vyrovnávacia pamäť overovania kľúčov API založená na Redis (vynútia sa čítania z databázy). | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | `0` | `open-sse/services/compression/engines/rtk/filterLoader.ts` | Dôveruje pravidlám filtrov projektu RTK spravovaným používateľom bez prísnych kontrol podpisov. | | `OMNIROUTE_LITE_MAX_TOOL_LENGTH` | `2000` | `open-sse/services/compression/lite.ts` | Limit počtu znakov pre proaktívne skrátenie výsledkov nástrojov v režime Lite, keď `lite.maxToolLength` nie je nastavené. Rozsah 256–1000000. Nastavenie ovládacieho panela má prednosť pred touto premennou prostredia. | | `OMNI_COMPRESSION_WORKERS` | `2` | `open-sse/services/compression/compressionWorkerPool.ts` | Maximálny počet súbežných synchrónnych pracovných procesov RTK/Caveman; nadbytočné úlohy čakajú podľa FIFO. | | `OMNI_COMPRESSION_WORKER_TIMEOUT_MS` | `120000` | `open-sse/services/compression/compressionWorkerPool.ts` | Časový limit jednotlivých úloh v milisekundách. Pracovné procesy, ktorým uplynie časový limit, sa ukončia a požiadavka pokračuje bez zlyhania a bezo zmien. | | `OMNI_COMPRESSION_WORKER_IDLE_MS` | `60000` | `open-sse/services/compression/compressionWorkerPool.ts` | Čas nečinnosti v milisekundách, po ktorom sa nepoužívaný pracovný proces kompresie ukončí. | | `COMPRESSION_PIPELINE_BREAKER_ENABLED` | `false` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Hlavný prepínač ističa jednotlivých modulov vrstveného kompresného kanála T02. **Voliteľné (predvolene vypnuté)** — keď je zapnutý, modul, ktorý opakovane vyvoláva výnimky v rámci viacerých požiadaviek, sa počas času na zotavenie preskočí (pokračovanie bez zlyhania); vypnuté = staršie správanie identické na úrovni bajtov. | | `COMPRESSION_PIPELINE_BREAKER_THRESHOLD` | `3` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Počet po sebe idúcich zlyhaní naprieč požiadavkami, po ktorom sa istič modulu otvorí. | | `COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS` | `30000` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Počet milisekúnd, počas ktorých sa otvorený modul preskakuje pred skúšobným spustením v polootvorenom stave. | | `COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR` | `2` | `open-sse/services/compression/engines/ccr/index.ts` | Stupňovanie spätnej väzby načítavania CCR T08/H8: každé predchádzajúce načítanie uloženého bloku lineárne zvyšuje jeho efektívnu hodnotu `minChars` (často načítavaný obsah sa komprimuje menej; `>=3` načítania = nikdy sa nekomprimuje). Hodnota `1` vypne stupňovanie (iba binárne preskočenie pri dosiahnutí prahovej hodnoty). | | `COMPRESSION_CCR_DURABLE_STORE` | `true` | `open-sse/services/compression/engines/ccr/index.ts` | Trvalé úložisko blokov CCR (#9061). Zálohuje úložisko v pamäti pomocou SQLite, takže blok pretrvá vyradenie z LRU, uplynutie TTL, reštart alebo načítanie smerované na inú inštanciu. Nastavením na `false` ponecháte bloky iba v pamäti. Bloky väčšie ako 512 KB a cloudové runtime prostredia zostávajú bez ohľadu na toto nastavenie iba v pamäti. | | `COMPRESSION_PREFIX_FREEZE_ENABLED` | `false` | `open-sse/services/compression/prefixFreeze.ts` | Hlavný prepínač zmrazenia prefixu T08/H5 na základe pozorovaného používania. **Voliteľné (predvolene vypnuté)** — keď je zapnuté, systémová výzva pozorovaná `>=` prahovej hodnote sa považuje za stabilný prefix vhodný na ukladanie do vyrovnávacej pamäte a zachová sa pri kompresii aj pri poskytovateľoch, ktorých statická heuristika vyrovnávacej pamäte nezachytí (zmrazenie iba _zachováva_, nikdy nič nemení). | | `COMPRESSION_PREFIX_FREEZE_THRESHOLD` | `3` | `open-sse/services/compression/prefixFreeze.ts` | Počet pozorovaní systémovej výzvy predtým, ako sa začne považovať za zmrazený stabilný prefix. | | `OMNIROUTE_BOOTSTRAPPED` | `false` | `src/app/(dashboard)/dashboard/page.tsx` | Po úvodnom nastavení sa bootstrap skriptom nastaví na `true`. Ovláda viditeľnosť sprievodcu nastavením. | | `OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE` | `0` | `open-sse/executors/antigravity.ts` | Núdzová možnosť: umožní telu požiadavky prepísať pole projektu Antigravity. | | `ANTIGRAVITY_CREDITS` | `off` | `open-sse/services/antigravityCredits.ts` | Zásada pre kredity Google One AI: `off` nikdy nevloží kredity, `retry` ich vloží raz po oprávnenej chybe kvóty 429 a `always` ich vloží pri prvej požiadavke. | | `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | Umožní prekladaču požiadaviek Antigravity preskočiť prísne overovanie podpisu požiadavky CLI, keď upstream odmieta skutočné podpisy (režim ladenia/zastaraného CLI). Nenulová hodnota povolí obídenie. | | `AGY_TOKEN_FILE` | `~/.gemini/antigravity-cli/antigravity-oauth-token` | `src/app/api/providers/agy-auth/apply-local/route.ts` | Prepíše cestu k súboru tokenu CLI Antigravity (agy) pre automaticky zistený import lokálneho prihlásenia. | ### Most OAuth CLI (interný) | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------- | -------------------- | ------------------------------- | -------------------------------------------------- | | `OMNIROUTE_SERVER` | automatická detekcia | `src/lib/oauth/config/index.ts` | URL servera pre autentifikačný most CLI↔OmniRoute. | | `OMNIROUTE_TOKEN` | _(nenastavené)_ | `src/lib/oauth/config/index.ts` | Autentifikačný token pre most CLI. | | `OMNIROUTE_USER_ID` | `cli` | `src/lib/oauth/config/index.ts` | ID používateľa pre relácie mosta CLI. | | `SERVER_URL` | _(nenastavené)_ | `src/lib/oauth/config/index.ts` | Starší alias pre `OMNIROUTE_SERVER`. | | `CLI_TOKEN` | _(nenastavené)_ | `src/lib/oauth/config/index.ts` | Starší alias pre `OMNIROUTE_TOKEN`. | | `CLI_USER_ID` | _(nenastavené)_ | `src/lib/oauth/config/index.ts` | Starší alias pre `OMNIROUTE_USER_ID`. | --- ## 11. Prihlasovacie údaje poskytovateľa OAuth Vstavané prihlasovacie údaje pre **vývoj na lokálnom hostiteľovi**. Pre vzdialené nasadenia si zaregistrujte vlastné v konzole pre vývojárov každého poskytovateľa. | Premenná | Poskytovateľ | Poznámky | | :------------------------------------------ | :--------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLAUDE_OAUTH_CLIENT_ID` | Claude Code (Anthropic) | Verejný klient — nie je potrebný žiadny tajný kľúč. | | `CLAUDE_CODE_REDIRECT_URI` | Claude Code | Prepíše URI presmerovania. Predvolené: `https://platform.claude.com/oauth/code/callback` | | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Verejný klient. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Vyžaduje zodpovedajúci `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Verejný klient. | | `MUSE_CODE_OAUTH_CLIENT_ID` | Muse Code (Meta) | Voliteľné prepísanie pre verejné ID klienta Muse CLI device-flow. Ponechajte nenastavené, ak chcete použiť vstavaného verejného klienta. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Vyžaduje zodpovedajúci `_SECRET`. | | `ANTIGRAVITY_OAUTH_CLIENT_SECRET` | Antigravity (Google) | — | | `GITHUB_OAUTH_CLIENT_ID` | GitHub Copilot | Verejný klient. | | `GHE_COPILOT_OAUTH_CLIENT_ID` | GHE Copilot | Voliteľné prepísanie pre ID klienta OAuth GitHub Enterprise Copilot. Ak nie je nastavené, vráti sa k verejnému predvolenému nastaveniu `GITHUB_OAUTH_CLIENT_ID`. | | `COPILOT_INTEGRATION_ID` | GitHub Copilot | Voliteľné prepísanie pre ID integrácie klienta GitHub Copilot odoslané v hlavičkách `Copilot-Integration-Id` a `Editor-Plugin-Version`. Predvolene je `copilot-developer-cli`. | | `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | Záložný API kľúč používaný `open-sse/executors/devin-cli.ts`, keď nie sú k dispozícii žiadne prihlasovacie údaje pre jednotlivé pripojenia. Voliteľné. | | `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Vlastná cesta k binárnemu súboru Devin CLI (`devin`). Vyriešené pomocou `open-sse/executors/devin-cli.ts`. | | `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | ID klienta OAuth pre GitLab Duo. Zaregistrujte aplikáciu na `https://gitlab.com/-/profile/applications` s URI presmerovania `/callback` a rozsahmi `api, read_user, openid, profile, email`. Vráti sa k `GITLAB_OAUTH_CLIENT_ID`. | | `GITLAB_DUO_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | Tajný kľúč klienta OAuth pre GitLab Duo. Voliteľné — tok PKCE nevyžaduje tajný kľúč. Vráti sa k `GITLAB_OAUTH_CLIENT_SECRET`. | | `GITLAB_DUO_BASE_URL` | GitLab Duo (v3.8) | Prepíše základnú URL GitLabu (samostatne hostovaný GitLab). Predvolene je `https://gitlab.com`. Vráti sa k `GITLAB_BASE_URL`. | | `GITLAB_BASE_URL` | GitLab Duo (v3.8) | Starší záložný variant pre `GITLAB_DUO_BASE_URL`. Používa sa, keď variant `_DUO_` nie je nastavený. | | `GITLAB_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | Starší záložný variant pre `GITLAB_DUO_OAUTH_CLIENT_ID`, ktorý spotrebúva `src/lib/oauth/constants/oauth.ts`. | | `GITLAB_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | Starší záložný variant pre `GITLAB_DUO_OAUTH_CLIENT_SECRET`, ktorý spotrebúva `src/lib/oauth/constants/oauth.ts`. | | `QODER_OAUTH_CLIENT_SECRET` | Qoder | — | | `QODER_OAUTH_AUTHORIZE_URL` | Qoder | Nastavte pre povolenie Qoder OAuth. | | `QODER_OAUTH_TOKEN_URL` | Qoder | — | | `QODER_OAUTH_USERINFO_URL` | Qoder | — | | `QODER_OAUTH_CLIENT_ID` | Qoder | — | | `QODER_PERSONAL_ACCESS_TOKEN` | Qoder | Priamy záložný API kľúč (obchádza OAuth). | | `QODER_CLI_WORKSPACE` | Qoder | ID pracovného priestoru pre Qoder CLI. | | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias pre `QODER_CLI_WORKSPACE`. | | `QODER_CLI_CONFIG_DIR` | Qoder | Prepíše konfiguračný adresár Qoder CLI (izolovaná PAT relácia, zabraňuje prepísaniu prihlásenia prehliadača). | | `BLACKBOX_WEB_VALIDATED_TOKEN` | Blackbox Web | Frontend `tk` token na odoslanie ako `validated` na `/api/chat`. Vyžaduje sa, keď Blackbox vynucuje zhodu tokenov; inak OmniRoute použije náhodné UUID. Pozri problém #2252. | | `VISION_BRIDGE_BASE_URL` | Ochranný mechanizmus Vision Bridge | Základná URL kompatibilná s OpenAI pre volania vision-bridge, ktoré nie sú Anthropic. Predvolene sa používa stará premenná prostredia OpenAI URL alebo api.openai.com. Nasmerujte na vlastnú `/v1` slučku OmniRoute alebo akýkoľvek koncový bod kompatibilný s OpenAI (Gemini OpenAI-compat, OpenRouter). Problém #2232. Keď je URL vlastná `/v1` OmniRoute, podžiadosť na popis odošle `x-omniroute-admission-bypass: internal` a autentifikuje sa s vyriešeným poverením vlastnej slučky (`sk_omniroute` sentinel v lokálnom režime, alebo `OMNIROUTE_API_KEY` / `ROUTER_API_KEY` — #1350), aby fungovali nasadenia s `REQUIRE_API_KEY=true`. | | `VISION_BRIDGE_API_KEY` | Ochranný mechanizmus Vision Bridge | API kľúč pre vyššie uvedenú URL. Prepíše premenné prostredia OpenAI / Google pre jednotlivých poskytovateľov pre volania vision-bridge, ktoré nie sú Anthropic. Modely Anthropic si zachovávajú svoju vyhradenú cestu k Anthropic kľúču. Problém #2232. | | `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | Ochranný mechanizmus Vision Bridge | Ako dlho sa ukladá do vyrovnávacej pamäte výsledok smerovania "žiadny použiteľný kandidát", v ms (predvolené `30000`). Neplatné alebo záporné hodnoty sa vrátia na predvolenú hodnotu; `0` zakáže negatívnu vyrovnávaciu pamäť. Zdroj: `src/lib/guardrails/visionBridgeRouter.ts`. | > [!UPOZORNENIE] > > 1. Prejdite na [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Vytvorte ID klienta OAuth 2.0 (typ: "Webová aplikácia") > 3. Pridajte URL vášho servera ako autorizovanú URI presmerovania > 4. Nahraďte hodnoty poverení v `.env`. --- ## 12. Prepísanie User-Agentov poskytovateľov Prepíšte hlavičku `User-Agent` odosielanú každému nadradenému poskytovateľovi. Základná trieda exekútora ju dynamicky určuje počas behu: ``` process.env[`${PROVIDER_ID}_USER_AGENT`] ``` > **Zdroj:** `open-sse/executors/base.ts` → `buildHeaders()` | Premenná | Predvolená hodnota | Kedy aktualizovať | | -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `CLAUDE_USER_AGENT` | `claude-cli/2.1.258 (external, cli)` | Keď Anthropic vydá novú verziu CLI | | `CLAUDE_DISABLE_TOOL_NAME_CLOAK` | `false` | `executors/base.ts` + `executors/cliproxyapi.ts` | Nastavením na `1`/`true` sa názvy nástrojov nástroja tretej strany prepošlú bezo zmeny do Anthropic na oboch cestách smerujúcich do Anthropic (natívny OAuth a CLIProxyAPI). V predvolenom nastavení exekútor deterministicky vytvára aliasy názvov nástrojov, ktoré nepochádzajú z Claude Code (ak existuje kanonické mapovanie Claude Code, použije ho, inak použije PascalCase), a v odpovedi ich spätne obnovuje prostredníctvom `_toolNameMap`, takže nástroje používajúce názvy v snake_case nie sú odmietnuté ako klienti tretích strán identifikovaní podľa odtlačku. Len na ladenie. | | `CODEX_USER_AGENT` | `codex-cli/0.155.0 (Windows 10.0.26200; x64)` | Keď OpenAI aktualizuje Codex CLI | | `CODEX_CLIENT_VERSION` | `0.155.0` | Prepísanie verzie klienta Codex nezávisle od celého reťazca UA | | `CLAUDE_CODE_CLIENT_VERSION` | `2.1.258` | Prepísanie uvádzanej verzie Claude Code nezávisle od `CLAUDE_USER_AGENT`. Anthropic na základe tejto hodnoty obmedzuje niektoré modely (#12417). | | `GITHUB_COPILOT_CLI_VERSION` | `1.0.81-6` | Prepísanie uvádzanej verzie Copilot CLI nezávisle od `GITHUB_USER_AGENT` | | `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | Keď sa aktualizuje GitHub Copilot Chat | | `ANTIGRAVITY_USER_AGENT` | `antigravity/2.0.1 darwin/arm64` | Keď sa aktualizuje Antigravity IDE | | `KIRO_USER_AGENT` | `AWS-SDK-JS/3.0.0 kiro-ide/1.0.0` | Keď sa aktualizuje Kiro IDE | | `KIRO_OAUTH_CLIENT_ID` | `kiro-cli` | Prepísanie `clientId` (verejného ID) pre sociálny kód zariadenia Kiro | | `KIRO_VERIFY_FULL_CRC` | `false` | Voliteľné: úplné overenie CRC každej snímky v prúde udalostí Kiro (na ladenie poškodených prúdov) | | `QODER_USER_AGENT` | `Qoder-Cli` | Keď sa aktualizuje Qoder CLI | | `CURSOR_USER_AGENT` | `Cursor/3.3` | Keď sa aktualizuje Cursor | > [!TIP] > Prepísanie User-Agentu môžete pridať pre **ľubovoľného** poskytovateľa pomocou vzoru `{PROVIDER_ID}_USER_AGENT`. Exekútor dynamicky zostaví názov premennej prostredia. --- ## 13. Kompatibilita odtlačkov CLI Keď je táto funkcia povolená, OmniRoute zmení poradie HTTP hlavičiek a polí tela JSON tak, aby presne zodpovedali podpisu oficiálnych nástrojov CLI. Tým sa znižuje riziko označenia účtu a zároveň sa zachová vaša proxy IP. **Zdroj:** `open-sse/config/cliFingerprints.ts`, `open-sse/executors/base.ts` ### Podľa poskytovateľa | Premenná | Aktivácia | Účinok | | ------------------------ | --------- | --------------------------------------------- | | `CLI_COMPAT_CODEX` | `=1` | Napodobňuje podpis požiadaviek Codex CLI | | `CLI_COMPAT_CLAUDE` | `=1` | Napodobňuje podpis požiadaviek Claude Code | | `CLI_COMPAT_GITHUB` | `=1` | Napodobňuje podpis požiadaviek GitHub Copilot | | `CLI_COMPAT_ANTIGRAVITY` | `=1` | Napodobňuje podpis požiadaviek Antigravity | | `CLI_COMPAT_CURSOR` | `=1` | Napodobňuje podpis požiadaviek Cursor | | `CLI_COMPAT_KIMI_CODING` | `=1` | Napodobňuje podpis požiadaviek Kimi Coding | | `CLI_COMPAT_KILOCODE` | `=1` | Napodobňuje podpis požiadaviek Kilo Code | | `CLI_COMPAT_CLINE` | `=1` | Napodobňuje podpis požiadaviek Cline | ### Globálne | Premenná | Aktivácia | Účinok | | ---------------- | --------- | --------------------------------------------------------------------- | | `CLI_COMPAT_ALL` | `=1` | Naraz povolí kompatibilitu odtlačkov pre **všetkých** poskytovateľov. | ### Prepísanie identity Kimi Coding CLI | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------- | -------------------------------- | ---------------------------------------- | -------------------------------------------------------------------- | | `KIMI_CLI_VERSION` | `1.36.0` | `src/lib/oauth/providers/kimi-coding.ts` | Prepíše verziu Kimi CLI odosielanú počas volaní OAuth/API. | | `KIMI_CODING_DEVICE_ID` | _(zachytená predvolená hodnota)_ | `src/lib/oauth/providers/kimi-coding.ts` | Prepíše zachytené ID zariadenia Kimi používané v hlavičkách klienta. | > [!NOTE] > Táto funkcia funguje spolu s prepísaním User-Agent (§12). Systém odtlačkov zabezpečuje poradie hlavičiek a polí tela, zatiaľ čo prepísanie User-Agent zabezpečuje konkrétny reťazec UA. Obe funkcie možno povoliť nezávisle. --- ## 14. Poskytovatelia s kľúčmi API Kľúče API pre poskytovateľov, ktorí používajú priame overovanie. **Preferované nastavenie:** Ovládací panel → Poskytovatelia → Pridať kľúč API. Nastavenie prostredníctvom premenných prostredia je alternatívou pre nasadenia v Dockeri alebo bez grafického rozhrania. Rozpoznávaný vzor: `{PROVIDER_ID}_API_KEY` | Premenná | Poskytovateľ | | ------------------ | --------------------------------------------------- | | `DEEPSEEK_API_KEY` | DeepSeek | | `NVIDIA_API_KEY` | NVIDIA NIM | | `JINA_AI_API_KEY` | Jina AI (Foundation API + záložný Reader) | | `JINA_API_KEY` | Jina AI (alias pre `JINA_AI_API_KEY`) | | `GEMINI_API_KEY` | Gemini (Google AI Studio) embeddingy + záložný chat | | `GOOGLE_API_KEY` | Gemini (alias pre `GEMINI_API_KEY`) | > [!NOTE] > Statické položky `${PROVIDER}_API_KEY` pre Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius a Qianfan boli odstránené vo v3.8.0, pretože ich runtime už nečíta — títo poskytovatelia používajú výhradne ovládací panel / `data/provider-credentials.json` / šifrovanú databázu. Postup migrácie nájdete v časti _Audit: Odstránené / nepoužívané premenné_ na konci tohto dokumentu. > [!TIP] > Kľúče nastavené prostredníctvom ovládacieho panela sú uložené zašifrované v SQLite a majú prednosť pred premennými prostredia. > > **Jina:** Embeddingy `jina-ai/…`, zmena poradia, klasifikácia, segmentácia a `jina-search` **neúčtujú** kľúč prostredia klastra, ak existuje pripojenie `jina-ai` (alebo zdieľané pripojenie `jina-reader`) z ovládacieho panela — `getProviderCredentials` uprednostňuje prvú dostupnú hodnotu. `JINA_AI_API_KEY` / `JINA_API_KEY` sa používajú iba vtedy, keď neexistuje použiteľný kľúč z ovládacieho panela. Protokoly volaní pripisujú záložné použitie premennej prostredia ako `connection_id=env:JINA_AI_API_KEY`. Karta Reader (`jina-reader`, `r.jina.ai`) nikdy neobsluhuje `/v1/embeddings` ani `/v1/rerank`. > > **Gemini:** `gemini/gemini-embedding-2` (alias `google/gemini-embedding-2`) používa najprv pripojenie `gemini` z ovládacieho panela. `GEMINI_API_KEY` / `GOOGLE_API_KEY` sa používajú iba vtedy, keď neexistuje použiteľný kľúč z ovládacieho panela. Protokoly volaní pripisujú záložné použitie premennej prostredia ako `connection_id=env:GEMINI_API_KEY`. Natívna multimodálna komunikácia používa `x-goog-api-key` voči `:embedContent` / `:batchEmbedContents` — N položiek OpenAI `input` sa zmení na N vektorov. --- ## 15. Nastavenia časových limitov Všetky hodnoty sú uvedené v **milisekundách**. Centralizované vyhodnocovanie sa nachádza v `src/shared/utils/runtimeTimeouts.ts`. ### Hierarchia časových limitov ``` REQUEST_TIMEOUT_MS (globálne prepísanie) ├─→ FETCH_TIMEOUT_MS (volania poskytovateľov upstreamu, predvolená hodnota: 600000) │ ├─→ FETCH_HEADERS_TIMEOUT_MS (dedí z FETCH_TIMEOUT_MS) │ ├─→ FETCH_BODY_TIMEOUT_MS (dedí z FETCH_TIMEOUT_MS) │ ├─→ TLS_CLIENT_TIMEOUT_MS (dedí z FETCH_TIMEOUT_MS) │ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (nezávislé, predvolená hodnota: 10000) │ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (nezávislé, predvolená hodnota: 15000) │ ├── FETCH_CONNECT_TIMEOUT_MS (nezávislé, predvolená hodnota: 30000) │ └── FETCH_KEEPALIVE_TIMEOUT_MS (nezávislé, predvolená hodnota: 4000) ├─→ STREAM_IDLE_TIMEOUT_MS (dedí z REQUEST_TIMEOUT_MS, predvolená hodnota: 600000) ├─→ STREAM_ACTIVE_TIMEOUT_MS (nezávislé, predvolená hodnota: 1260000; hodnota 0 vypína) ├─→ STREAM_READINESS_TIMEOUT_MS (dedí z REQUEST_TIMEOUT_MS, predvolená hodnota: 80000) ├─→ STREAM_READINESS_MAX_TIMEOUT_MS (obmedzuje adaptívne predĺženia pripravenosti, predvolená hodnota: 180000) └─→ API_BRIDGE_PROXY_TIMEOUT_MS (dedí z REQUEST_TIMEOUT_MS, predvolená hodnota: 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (odvodené, predvolená hodnota: 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (predvolená hodnota: 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (predvolená hodnota: 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (predvolená hodnota: 0 = vypnuté) ``` | Premenná | Predvolená hodnota | Popis | | ----------------------------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REQUEST_TIMEOUT_MS` | _(nenastavené)_ | Globálna skratka — prepíše predvolené hodnoty `FETCH_TIMEOUT_MS` aj `STREAM_IDLE_TIMEOUT_MS`. | | `FETCH_TIMEOUT_MS` | `600000` | Celkový časový limit HTTP požiadaviek na volania upstream poskytovateľa. | | `STREAM_IDLE_TIMEOUT_MS` | `600000` | Maximálna odmlka medzi nespracovanými upstream bajtmi pred prerušením. Modely s rozšíreným uvažovaním sa zriedka odmlčia na viac ako 90 s. | | `STREAM_ACTIVE_TIMEOUT_MS` | `1260000` | Maximálna celková doba aktívneho SSE streamu; nikdy sa neobnovuje pri prijatí upstream bajtov a je nezávislá od `REQUEST_TIMEOUT_MS`. Je odvodená od najväčšej hodnoty `timeoutMs` pre jednotlivé modely v registri (1200000, Codex) s pridanou rezervou 60000, takže model, ktorý môže využiť celý svoj časový rozpočet, nebude nikdy ukončený uprostred odpovede. Nastavením na `0` sa deaktivuje. | | `OMNIROUTE_SSE_COMMENTS` | _(deaktivované)_ | Určuje, či môže OmniRoute vysielať riadky komentárov SSE `:` (napr. signál `: keepalive` a koncové metadáta `x-omniroute-*`). Predvolene je deaktivované (#10524), pretože prísne klienty kompatibilné s OpenAI volajú JSON.parse pre každý riadok SSE a pri komentároch `:` zlyhajú; signály aktivity `data:` zostávajú nedotknuté. Nastavením na `on`/`true`/`1`/`yes` ich znova povolíte. Používa sa v `open-sse/utils/sseHeartbeat.ts`. | | `STREAM_READINESS_TIMEOUT_MS` | `80000` | Čas na prijatie prvej SSE udalosti, ktorá nie je pingom. Ak je nastavená premenná `REQUEST_TIMEOUT_MS`, zdedí jej hodnotu. | | `STREAM_READINESS_MAX_TIMEOUT_MS` | `180000` | Maximálne adaptívne časové okno pripravenosti na prvú udalosť pre veľké streamované požiadavky, požiadavky s intenzívnym používaním nástrojov alebo s vysokou mierou uvažovania. | | `OMNIROUTE_AGENT_GOAL_POLICY_ENABLED` | `true` | Núdzový vypínač heuristiky `/goal`. Nastavením na `false`/`0`/`off` sa detekcia úplne deaktivuje — časové limity pripravenosti ani obnova streamu sa nikdy nezvýšia na základe tela alebo hlavičiek požiadavky, čím sa obmedzí klientom riadené predlžovanie časových limitov. | | `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | Maximálne časové okno pripravenosti na prvú udalosť pre detegované behy agenta `/goal` alebo požiadavky vynútené pomocou `x-omniroute-agent-goal`. | | `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | Automaticky povolí skorú obnovu streamu pre detegované behy agenta `/goal`. Nastavením na `false`/`0`/`off` sa deaktivuje aktivácia špecifická pre cieľ. Táto možnosť môže obnovu iba PRIDAŤ nad rámec predvoleného nastavenia operátora — nikdy neprepíše explicitnú deaktiváciu pomocou `STREAM_RECOVERY_ENABLED` alebo nastavení databázy. | | `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | Odstráni neštandardné SSE udalosti `codex.*` (napr. `codex.rate_limits`), ktoré spôsobujú zlyhanie `responses.stream()` v OpenAI SDK s chybou 502. Predvolene ZAPNUTÉ (#11014). Nastavením na `0`/`false`/`no`/`off` sa budú preposielať. | | `OMNIROUTE_CODEX_APPSERVER_WS` | _(nenastavené)_ | Voliteľný prenos prostredníctvom Codex app-servera. WebSocketový koncový bod (`ws://`/`wss://`) lokálneho postranného kontajnera `codex app-server`. Ak je nastavený spolu s tokenom, požiadavky Codex sa smerujú cez JSON-RPC do postranného kontajnera namiesto HTTP Responses API. Možno ho nastaviť aj pre jednotlivé pripojenia pomocou `providerSpecificData.codexAppServerUrl`. Používa sa v `open-sse/executors/codex/appServerConfig.ts`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(nenastavené)_ | Vložený token oprávnení/nositeľa odovzdaný app-serveru. Prepísanie pre jednotlivé pripojenia: `providerSpecificData.codexAppServerToken`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(nenastavené)_ | Cesta k súboru obsahujúcemu token oprávnení app-servera (z `codex app-server --ws-token-file`). Používa sa, keď `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` nie je nastavená. Prepísanie pre jednotlivé pripojenia: `providerSpecificData.codexAppServerTokenFile`. | | `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | Pracovný adresár, v ktorom sa vykonáva beh app-servera. Prepísanie pre jednotlivé pripojenia: `providerSpecificData.codexAppServerCwd`. | | `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(nenastavené)_ | Politika schvaľovania odovzdaná behu app-servera (napr. `never`, `on-request`). Prepísanie pre jednotlivé pripojenia: `providerSpecificData.codexAppServerApprovalPolicy`. | | `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(nenastavené)_ | Politika sandboxu odovzdaná behu app-servera (napr. `read-only`, `workspace-write`, `danger-full-access`). Ak nie je nastavená, executor použije predvolenú hodnotu `workspace-write` (zabezpečená; predtým `danger-full-access`). Prepísanie pre jednotlivé pripojenia: `providerSpecificData.codexAppServerSandbox`. | | `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | Automaticky schváli vlastné výzvy app-servera na schválenie (vykonanie príkazu/súboru/oprávnenia na hostiteľovi). Predvolene vypnuté — výzvy sa automaticky zamietnu; volania nástrojov testovacieho rámca nie sú ovplyvnené (prechádzajú samostatným kanálom `item/tool/call`). Prijíma hodnoty `true`/`1`/`yes`. Prepísanie pre jednotlivé pripojenia: `providerSpecificData.codexAppServerAutoApprove`. | | `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Čas na prijatie hlavičiek odpovede. | | `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30 s) | Maximálne čakanie na začiatok odpovede (ms) pri každom priamom pokuse bez proxy. Po uplynutí časového limitu sa požiadavka zopakuje raz cez nový soket; nastavením na `0` sa limit vypne a zachová sa predchádzajúce správanie. | | `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 min) | Horný limit (ms) pre pokus RETRY cez nový soket po uplynutí časového limitu na začiatok odpovede pri pokuse zo združenia uvedenom vyššie (#13703). Použije sa iba vtedy, keď volajúci už pripojil vlastný signál termínu (kaskáda vyriešeného pripojenia/modelu/poskytovateľa/`FETCH_TIMEOUT_MS`); tento signál predstavuje skutočný limit a v zamýšľanom priebehu sa aktivuje ako prvý, takže ide skôr o veľkorysú poistku než o pevný strop — bez nej opakovaný pokus používal rovnaké krátke okno `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` ako pokus zo združenia a pri zdravých modeloch s pomalým TTFB pre odôvodňovanie spôsoboval chybu 504. Nikdy nesmie byť nižší než pevné minimum uvedené vyššie; ak volajúci neposkytne žiadny signál termínu, pri opakovanom pokuse zostane pevné minimum nezmenené. | | `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Čas na prijatie celého tela odpovede. | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Časový limit na nadviazanie pripojenia TCP. | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Časový limit nečinnosti soketu keep-alive. | | `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Časový limit proxy odtlačku TLS (wreq-js). | | `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | Obmedzuje čas do prijatia prvého bajtu konkrétne pre telo prenosu s odtlačkom TLS cez wreq-js; samotný `TLS_CLIENT_TIMEOUT_MS` nedokáže zachytiť zaseknuté telo, pretože sa vyhodnotí ako dokončený hneď po prijatí hlavičiek (#12656). Uplynutie časového limitu zruší čítačku wreq a prepne na priamy/proxy dispečer; `0` vypne tento kontrolný mechanizmus. | | `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | Iba pre vykonávací modul OpenCode a iba vtedy, keď je zapnutý príznak funkcie `OPENCODE_RESPONSES_STALL_ROTATION` (predvolene vypnutý): obmedzuje čakanie na prvý bajt tela streamovanej odpovede Responses po prijatí jej hlavičiek (#13484). Stream Responses sa začína udalosťou `response.created`, takže nečinnosť presahujúca toto okno znamená zaseknutie: účet sa dočasne deaktivuje a požiadavka sa raz presmeruje na ďalší účet; pri druhom zaseknutí okamžite zlyhá. `0` vypne ochranu aj pri zapnutom príznaku. | | `OPENCODE_PARK_AND_RESUME` | `false` | Iba pre vykonávací modul OpenCode: po opakovaných prechodných chybách 429 (alebo pri čerstvom indikátore zaťaženia združenia) odloží požiadavku so signálom aktivity a následne namiesto paralelného rozoslania do celej skupiny zopakuje jednu obmedzenú etapu s najviac 3 účtami spracovanými postupne (#13924). Predvolene vypnuté: každá chyba 429 presmeruje požiadavku na ďalší účet presne ako predtým. | | `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(nenastavené)_ | Iba pre vykonávací modul OpenCode: prepíše cestu k indikátoru zaťaženia združenia, ktorý sa načíta pred odložením (`{since, reason, ttl_s}`, predvolene `/tmp/opencode-pool-strain.json`, #13924). Čerstvý indikátor spôsobí odloženie bez opätovného počítania; ak chýba alebo je zastaraný, použije sa počítadlo nárazov. | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | Časový limit kroku cez proxy pre požiadavky mosta `/v1`. | | `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Nasmeruje vykonávací modul Firecrawl na načítavanie webového obsahu na inštanciu hosťovanú vo vlastnej réžii (mimo cloudu je kľúč API voliteľný). | | `FIRECRAWL_TIMEOUT_MS` | `30000` | Časový limit jednotlivých požiadaviek pre vykonávací modul Firecrawl na načítavanie webového obsahu. | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `300000` | Celkový časový limit požiadavky servera pre most. | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Čas na odoslanie hlavičiek odpovede cez most. | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Časový limit nečinnosti keep-alive pre most. | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Časový limit nespracovaného soketu (0 = vypnuté). | | `SHUTDOWN_TIMEOUT_MS` | `30000` | Ochranná lehota po SIGTERM/SIGINT pred vynúteným ukončením. | | `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | Záložná hodnota používaná súborom `src/shared/utils/fetchTimeout.ts`, keď `FETCH_TIMEOUT_MS` nie je nastavené. | | `OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS` | `8000` | Časový limit (ms) pre predvoľby `validationRead` a `modelsProbe` v súbore `src/shared/network/safeOutboundFetch.ts`. Pri pomalých koncových bodoch (Cerebras, Cloudflare AI, Groq) ho zvýšte, aby ste zabránili kolísaniu medzi stavmi active/error na ovládacom paneli. Pri neplatných (<1000) alebo nečíselných hodnotách sa použije záložná hodnota 8000 ms. | | `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | Časový limit načítania špecifický pre relay v `open-sse/utils/proxyFetch.ts` (#9158). Zaseknutý relay musí zlyhať pred uplynutím časového limitu klienta/agenta (~30 s), aby volajúci videli zlyhanie špecifické pre relay namiesto všeobecného časového limitu upstreamu. Horný limit je `29000`, aby sa vždy aktivoval ako prvý. | | `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | Spoločné oneskorenie medzi opakovaniami pre cesty direct/relay/proxy s jedným opakovaním v `open-sse/utils/proxyFetch.ts` (#9158). `0` = opakovať okamžite. | | `OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS` | `60000` | Časový limit natívnej požiadavky wreq-js (`claudeTlsClient.ts`). | | `OMNIROUTE_CLAUDE_TLS_GRACE_MS` | `10000` | Rezerva absolútneho pevného termínu v JS pridaná k natívnemu časovému limitu. | | `OMNIROUTE_PPLX_TLS_TIMEOUT_MS` | `30000` | Časový limit natívnej požiadavky wreq-js (`perplexityTlsClient.ts`). | | `OMNIROUTE_PPLX_TLS_GRACE_MS` | `10000` | Rezerva absolútneho pevného termínu v JS pridaná k natívnemu časovému limitu. | | `OMNIROUTE_PPLX_SEARCH_HINT` | `0` (vypnuté) | Pripojí vetu „Máte vstavané vyhľadávanie na webe. Odpovedajte na otázky priamo pomocou výsledkov vyhľadávania.“ k systémovej správe volajúceho (`perplexity-web/protocol.ts`). Predvolene vypnuté — Perplexity vyhľadáva aj tak a táto veta preniká do odpovedí ako metakomentár pre klientov na programovanie. Nastavením na `1`/`true`/`yes`/`on` túto funkciu obnovíte. | | `OMNIROUTE_GROK_TLS_TIMEOUT_MS` | `60000` | Časový limit natívnej požiadavky wreq-js (`grokTlsClient.ts`). | | `OMNIROUTE_GROK_TLS_GRACE_MS` | `10000` | Rezerva absolútneho pevného termínu v JS pridaná k natívnemu časovému limitu. | | `OMNIROUTE_NOTION_TLS_TIMEOUT_MS` | `30000` | Časový limit natívnej požiadavky wreq-js (`notionTlsClient.ts`); `notion-web` ho pre každú požiadavku pri dlhých generovaniach zvyšuje na `180000`. | | `OMNIROUTE_NOTION_TLS_GRACE_MS` | `10000` | Rezerva absolútneho pevného termínu v JS pridaná k natívnemu časovému limitu. | | `OMNIROUTE_BROWSER_POOL` | `on` | Zdieľaný fond prehliadačov Playwright pre chat s webovými súbormi cookie podporovaný prehliadačom (`browserPool.ts`); nastavením na `off` ho zakážete. | | `OBSCURA_BIN` | `auto-detect` | Cesta k binárnemu súboru `obscura`, ktorý používa fond prehliadačov a vykonávateľ Cloudflare Playground ako primárny engine (`open-sse/services/obscura.ts`); ak nie je nastavená, automaticky sa zisťuje zo systémovej premennej PATH. | | `OBSCURA_CDP_ENDPOINT` | _(nenastavené)_ | Namiesto spustenia novej inštancie nasmeruje na už spustenú službu Obscura (`http://host:port`); modul tento proces nevlastní (`open-sse/services/obscura.ts`). | | `OBSCURA_PORT` | `náhodný voľný port` | Explicitný port pre spustený príkaz `obscura serve`; ak nie je nastavený, automaticky sa vyberie voľný port (`open-sse/services/obscura.ts`). | | `WEB_COOKIE_USE_BROWSER` | `0` | Prepne požiadavku chatu s webovými súbormi cookie na cestu podporovanú prehliadačom (`browserBackedChat.ts`); zapnete nastavením na `1`. | | `KIMI_WEB_BASE_URL` | `https://www.kimi.ai` | Základná URL adresa vykonávateľa Kimi Web (medzinárodné kimi.ai Connect-RPC) (`kimi-web.ts`); prepíšte ju iba pre zrkadlové/proxy koncové body. | | `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Úplný koncový bod chatu pre vykonávateľa Kimi Web (`kimi-web.ts`). | | `OMNIROUTE_LOGIN_BROWSER_PATH` | _(automaticky zistené)_ | Cesta k systémovému spustiteľnému súboru Chrome/Edge pre interaktívne prihlásenie cez prehliadač do Adobe Firefly (`adobeFireflyBrowserLogin.ts`); prepisuje automatické zisťovanie podľa operačného systému. | | `OMNIROUTE_STANDALONE_DIR` | _.build/ samostatný výstup_ | Prepísanie adresára samostatného výstupu počas zostavenia, ktorý používa krok kolokácie po zostavení (`scripts/build/colocate-standalone.mjs`); ide o nástroj na zostavenie, nie o nastavenie behu. | Pokusy o cieľ kombinácie dedia vyriešený časový limit požiadavky upstreamu (`FETCH_TIMEOUT_MS` alebo `REQUEST_TIMEOUT_MS`, keď poskytuje predvolenú hodnotu načítania). Nastavte `targetTimeoutMs` v kombinácii, predvolených hodnotách kombinácie alebo prepísaní poskytovateľa iba vtedy, ak chcete zrýchliť prechod kombinácie na záložný cieľ; hodnoty vyššie než aktuálny časový limit upstreamu sa obmedzia na časový limit upstreamu. `comboTimeoutMs` je samostatný celkový časový rozpočet kombinácie podľa nástenných hodín naprieč cieľmi prechodu na záložný cieľ. Ponechajte ho nenastavený alebo nastavte na `0`, ak chcete zachovať neobmedzené iterácie (naďalej platí pevne zakódované 10-minútové zastavenie pri zaseknutí v `comboPredicates.ts`). Kladná hodnota nahradí túto bezpečnostnú poistku pre kombináciu. Nastavte `comboTimeoutMs` na dlhší čas než `targetTimeoutMs`, aby po pomalom prvom cieli zostal čas na prechod na záložný cieľ. ### Prahové hodnoty ističa Ladenie ističa na úrovni poskytovateľa. Predvolené hodnoty zodpovedajú škálovaným hodnotám používaným od verzie v3.6 pre viac než 500 pripojení. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------------------------------- | ------------------ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD` | `8` | `open-sse/config/constants.ts` | Prahová hodnota po sebe nasledujúcich zlyhaní poskytovateľov OAuth, po ktorej sa istič aktivuje. | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS` | `60000` | `open-sse/config/constants.ts` | Interval obnovenia (ms) ističa poskytovateľa OAuth. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD` | `12` | `open-sse/config/constants.ts` | Prahová hodnota po sebe nasledujúcich zlyhaní poskytovateľov s kľúčom API. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | Interval obnovenia (ms) ističa poskytovateľa s kľúčom API. | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Prahová hodnota po sebe nasledujúcich zlyhaní lokálnych poskytovateľov (Ollama, LM Studio, ...). | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS` | `15000` | `open-sse/config/constants.ts` | Interval obnovenia (ms) ističa lokálneho poskytovateľa. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD` | `10` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: počet zlyhaní v rámci časového okna, po ktorom celý poskytovateľ OAuth prejde do obdobia chladenia. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS` | `900000` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: posuvné časové okno (ms) na počítanie zlyhaní poskytovateľov OAuth. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: obdobie chladenia (ms) po dosiahnutí prahovej hodnoty poskytovateľa OAuth. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD` | `5` | `open-sse/config/constants.ts` | Poskytovateľ OAuth prejde do stavu DEGRADED pri tomto počte zlyhaní. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER` | `8` | `open-sse/config/constants.ts` | Maximálny násobiteľ zvyšovania `resetTimeout` pre poskytovateľa OAuth. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT` | `2` | `open-sse/config/constants.ts` | Poskytovateľ OAuth zvýši úroveň oneskorenia po tomto počte otvorených cyklov. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD` | `15` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: počet zlyhaní v rámci časového okna, po ktorom celý poskytovateľ s kľúčom API prejde do obdobia chladenia. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: posuvné časové okno (ms) na počítanie zlyhaní poskytovateľov s kľúčom API. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: obdobie chladenia (ms) po dosiahnutí prahovej hodnoty poskytovateľa s kľúčom API. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | Poskytovateľ s kľúčom API prejde do stavu DEGRADED pri tomto počte zlyhaní. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | Maximálny násobiteľ zvyšovania `resetTimeout` pre poskytovateľa s kľúčom API. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | Poskytovateľ s kľúčom API zvýši úroveň oneskorenia po tomto počte otvorených cyklov. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: počet zlyhaní, po ktorom celý lokálny poskytovateľ prejde do obdobia chladenia. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS` | `300000` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: posuvné časové okno (ms) na počítanie zlyhaní lokálnych poskytovateľov. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: obdobie chladenia (ms) po dosiahnutí prahovej hodnoty lokálneho poskytovateľa. | | `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | Úroveň exponenciálneho oneskorenia, pri ktorej sa poskytovateľ pripnutia vyrovnávacej pamäte kontextu považuje za dlhodobo nedostupného a pripnutie sa zruší, aby bolo možné prepnúť na záložného poskytovateľa. | | `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | Ochranné okno proti oscilácii (ms), ktoré toleruje krátke prechodné obdobia chladenia pred zrušením pripnutia vyrovnávacej pamäte kontextu. | ### Scenáre | Scenár | Konfigurácia | | ---------------------------------------- | ----------------------------------------------------- | | **Dlhodobé generovanie kódu** | `REQUEST_TIMEOUT_MS=900000` (15 min) | | **Obmedzenie celkového trvania streamu** | `STREAM_ACTIVE_TIMEOUT_MS=1260000` (21 min) | | **Rýchle zlyhanie produkčného API** | `API_BRIDGE_PROXY_TIMEOUT_MS=10000` | | **Modely s rozšíreným uvažovaním** | `STREAM_IDLE_TIMEOUT_MS=300000` (5 min medzi časťami) | --- ## 16. Protokolovanie Systém protokolovania zapisuje na štandardný výstup aj do rotovaných protokolových súborov. Celá konfigurácia sa načítava zo súboru `src/lib/logEnv.ts`. | Premenná | Predvolená hodnota | Popis | | ----------------------------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `APP_LOG_LEVEL` | `info` | Minimálna úroveň protokolovania: `debug`, `info`, `warn`, `error`. | | `APP_LOG_FORMAT` | `text` | Formát výstupu: `text` (čitateľný pre človeka) alebo `json` (štruktúrovaný). | | `APP_LOG_TO_FILE` | `true` | Zapisovať protokoly do súboru popri štandardnom výstupe. | | `APP_LOG_FILE_PATH` | `logs/application/app.log` | Cesta k protokolovému súboru (relatívna ku koreňovému adresáru projektu alebo `DATA_DIR`). | | `APP_LOG_MAX_FILE_SIZE` | `50M` | Maximálna veľkosť súboru pred rotáciou. Akceptuje: `50M`, `1G`, `512K` alebo obyčajný počet bajtov. | | `APP_LOG_RETENTION_DAYS` | `7` | Počet dní uchovávania rotovaných protokolových súborov aplikácie. | | `APP_LOG_MAX_FILES` | `20` | Maximálny počet záloh rotovaných protokolových súborov. | | `CALL_LOG_RETENTION_DAYS` | `7` | Počet dní uchovávania záznamov protokolu požiadaviek/volaní v databáze. | | `CALL_LOG_MAX_ENTRIES` | `10000` | Maximálny počet záznamov protokolu volaní vo vyrovnávacej pamäti. | | `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | Maximálny počet riadkov v tabuľke SQLite `call_logs` pred prečistením. | | `ENABLE_REQUEST_LOGS` | _(nenastavené)_ | Vynútiť zapnutie alebo vypnutie podrobného protokolovania požiadaviek bez ohľadu na nastavenie ovládacieho panela. | | `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (1 hodina) | Maximálny vek osirelých aktívnych záznamov protokolu požiadaviek pred vyčistením z pamäte. | | `CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS` | `false` | Ukladať časti prúdu do artefaktov spracovateľského reťazca, keď `call_log_pipeline_enabled=true`. Vyžaduje výslovné zapnutie (`true`) — predvolene je vypnuté, aby sa šetrilo miesto na disku. | | `CALL_LOG_PIPELINE_MAX_SIZE_KB` | `512` | Maximálna veľkosť artefaktu protokolu volania spracovateľského reťazca v KB, keď `call_log_pipeline_enabled=true`. | | `PROXY_LOGS_TABLE_MAX_ROWS` | `100000` | Maximálny počet riadkov v tabuľke SQLite `proxy_logs` pred prečistením. | | `PROXY_LOG_INCLUDE_IPS` | `false` | Zahrnúť IP adresy klienta/výstupu a predpony účtov do konzolových protokolov `[ProxyEgress]`. Záznamy protokolu proxy servera v ovládacom paneli/databáze si zachovávajú úplné podrobnosti. | | `APP_LOG_ROTATION_CHECK_INTERVAL_MS` | `60000` (1 min) | Ako často `src/lib/logRotation.ts` opätovne kontroluje veľkosť aktívneho protokolového súboru. | | `CHAT_LOG_TEXT_LIMIT` | `65536` | Maximálna dĺžka reťazca zachovaná v artefaktoch protokolu chatu (predvolene 64 KB). | | `CHAT_LOG_ARRAY_TAIL_ITEMS` | `128` | Počet položiek poľa zachovaných od konca pri skracovaní dátových obsahov protokolu chatu. | | `CHAT_LOG_MAX_DEPTH` | `6` | Maximálna hĺbka vnorenia, po ktorej sa dátové obsahy protokolu chatu skrátia. | | `CHAT_LOG_MAX_OBJECT_KEYS` | `80` | Maximálny počet kľúčov objektu zachovaných v dátových obsahoch protokolu chatu (0 = bez obmedzenia). | | `CHAT_LOG_MAX_BODY_KB` | `1024` | Veľkosť celého tela požiadavky/odpovede (KB), po prekročení ktorej sa namiesto úplnej kópie nahradí iba stručným súhrnom. Zvýšte túto hodnotu, ak sa pri dlhých agentných konverzáciách na ovládacom paneli namiesto skutočných správ zobrazuje zástupný text. | | `CHAT_DEBUG_FILE` | `false` | Ak je nastavené na `true`, `serializeArtifactForStorage` preskočí skracovanie na základe veľkosti. Len na ladenie. | --- ## 17. Optimalizácia pamäte | Premenná | Predvolená hodnota | Popis | | ----------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_MEMORY_MB` | _automaticky_ (na fyzickom serveri); **`1024` v obraze Docker** | **Odporúčaný** limit haldy V8 (MB) pre Docker/samostatné spustenie. Ak nie je nastavený, kalibruje sa dynamicky (~35 % systémovej pamäte RAM, ohraničené na `[512, 4096]`); hodnota `512` predstavuje iba dolnú hranicu, keď nemožno zistiť celkovú pamäť. V `run-standalone.mjs` (Docker CMD) sa **explicitná** hodnota pridá ako `--max-old-space-size` a má **prednosť** pred konfliktným príznakom haldy v NODE_OPTIONS (posledný príznak V8). `omniroute serve` naďalej uprednostňuje existujúci príznak haldy v NODE_OPTIONS (#5238). Nenastavujte obe možnosti na rôzne hodnoty — proces zaznamená upozornenie s uvedením oboch hodnôt a víťaznej hodnoty. **Oficiálny obraz Docker vždy nastavuje hodnotu `1024`, takže sa v ňom kalibrácia nikdy nespustí.** `/v1/responses` agenta na programovanie vyžaduje `8192`–`12288` a rezervu pre cgroup — pozrite si [Sprievodcu Dockerom — pamäť RAM za behu](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). | | `PROMPT_CACHE_MAX_SIZE` | `50` | Maximálny počet položiek systémových promptov vo vyrovnávacej pamäti. | | `PROMPT_CACHE_MAX_BYTES` | `2097152` (2 MB) | Maximálna celková veľkosť vyrovnávacej pamäte promptov. | | `PROMPT_CACHE_TTL_MS` | `300000` (5 min) | TTL položky vo vyrovnávacej pamäti promptov. | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | Maximálny počet odpovedí s temperature=0 vo vyrovnávacej pamäti. | | `SEMANTIC_CACHE_MAX_BYTES` | `4194304` (4 MB) | Maximálna celková veľkosť sémantickej vyrovnávacej pamäte. | | `SEMANTIC_CACHE_TTL_MS` | `1800000` (30 min) | TTL položky v sémantickej vyrovnávacej pamäti. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | Korene lokálnych korpusov, ktoré súčasne uchovávajú aktívny index v pamäti (`src/lib/localCorpus/configured.ts`). LRU: po dosiahnutí limitu sa index najdlhšie nepoužitého koreňa odstráni a pri ďalšom dotaze sa znova zostaví. Hodnota je ohraničená minimom `1`; pri nečíselnej hodnote sa použije predvolená hodnota. | | `STREAM_HISTORY_MAX` | `50` | Maximálny počet nedávnych udalostí streamu vo vyrovnávacej pamäti živého zobrazenia ovládacieho panela. | | `CONTEXT_LENGTH_DEFAULT` | `128000` | Globálna záložná maximálna dĺžka kontextu pre modely bez explicitnej konfigurácie. | | `USAGE_TOKEN_BUFFER` | `100` | Dodatočná rezerva tokenov pri sledovaní kvót používania. | ### Kompresia | Premenná | Predvolená hodnota | Popis | | ------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | nenastavené | Dôverovať projektovému súboru `.rtk/filters.json` bez hašu `.rtk/trust.json`. Používajte iba v kontrolovanom lokálnom vývojovom prostredí. | ### Pamäťový mechanizmus (plán 21) ### Zaťaženie slučky udalostí pamäťou, zručnosťami a obnovovaním tokenov (#10349) OmniRoute je **jeden proces Node**. Extrakcia a načítavanie pamäte, vkladanie zručností a obnovovanie tokenov poskytovateľa bežia v **rovnakej slučke udalostí** ako `GET /healthz` a ovládací panel. Nejde o pracovné vlákno. | Úloha | Kód | Predvolené nastavenie | Ovládanie operátorom | | ----------------------------- | ---------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Extrakcia/vyhľadávanie pamäte | `src/lib/memory/` | **memoryEnabled** na ovládacom paneli (predvolene zapnuté) | Vypnite **Nastavenia → Pamäť**. Okrem vypnutia funkcie v nastaveniach neexistuje samostatný prepínač prostredia na jej úplné vypnutie. | | Vkladanie zručností | `src/lib/skills/injection.ts` | **skillsEnabled** na ovládacom paneli (predvolene zapnuté) | Vypnite **Nastavenia → Pamäť/Zručnosti** (`skillsEnabled`). Nižšie uvedené nastavenia sandboxu iba obmedzujú vykonávanie po tom, ako už bolo vkladanie zapnuté. | | Obnovovanie tokenov | `src/sse/services/tokenRefresh.ts` | Zapnuté pre pripojených poskytovateľov OAuth/webových služieb | Odpojte poskytovateľa alebo nechajte tokeny platné; premenná prostredia `TOKEN_REFRESH=0` momentálne neexistuje. | Ak je `/healthz` na nevyťaženom počítači pomalý, najskôr vypnite pamäť a zručnosti a potom skontrolujte zaťaženie katalógu/kompresie (#10303, #9685). Tieto funkcie uvoľňujú vykonávanie v bodoch `await`, no stále súperia o jediné vlákno. Nastavenia vrstvy vkladania, vektorového úložiska a preusporiadania výsledkov pre subsystém trvalej pamäte (`src/lib/memory/`). | Premenná | Predvolená hodnota | Popis | | ------------------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (5 min) | TTL vyrovnávacej pamäte vkladania v pamäti (pre každý podpis zdroja/modelu/rozmeru). | | `MEMORY_EMBEDDING_CACHE_MAX` | `1000` | Maximálny počet záznamov LRU uchovávaných vo vyrovnávacej pamäti vkladania. | | `MEMORY_TRANSFORMERS_MODEL` | `Xenova/all-MiniLM-L6-v2` | ID repozitára HF pre voliteľný lokálny kanál MiniLM `@huggingface/transformers` (~23 MB int8, ~400 MB RAM). | | `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | ID repozitára HF pre statický vkladač potion/Model2Vec založený na vyhľadávacej tabuľke. Sťahuje sa len v prípade potreby do adresára vyrovnávacej pamäte. | | `MEMORY_STATIC_CACHE_DIR` | `/embeddings` | Adresár používaný na ukladanie súborov statického modelu potion do vyrovnávacej pamäte. Ak nie je nastavený, predvolene sa nachádza pod `DATA_DIR`. | | `HF_HUB_ENDPOINT` | `https://huggingface.co` | Prepíše základnú URL služby Hugging Face Hub používanú súborom `staticPotion.ts` (napr. koncový bod zrkadla pre izolované prostredia). | | `MEMORY_VEC_TOP_K` | `20` | Predvolená hodnota top-K používaná vektorovým vyhľadávaním hrubou silou `sqlite-vec` v súbore `src/lib/memory/vectorStore.ts`. | | `MEMORY_RRF_K` | `60` | Konštanta `k` metódy Reciprocal Rank Fusion pre hybridné vyhľadávanie FTS5 + vektorové vyhľadávanie (recept sqlite-vec). | | `VECTOR_STORE_DISABLE_VEC` | `false` | Testovacie/diagnostické rozhranie v `getVectorStore()` (`src/lib/memory/vectorStore.ts`): pri hodnote `true` vynúti nastavenie vektorového úložiska na `null` (simuluje cloudové/WASM prostredie bez `sqlite-vec`), čím sa vyhľadávanie v pamäti obmedzí na vyhľadávanie kľúčových slov pomocou FTS5. V produkcii ponechajte nenastavené. | | `NOTION_API_KEY` | _(nenastavené)_ | Kľúč API pre backend Notion (používa ho prednastavenie známeho backendu `genericBackend.ts`). | | `NOTION_API_URL` | `https://api.notion.com/v1` | Základná URL rozhrania API služby Notion (možno ju prepísať pre alternatívy Notion hosťované vo vlastnej réžii). | | `OBSIDIAN_API_KEY` | _(nenastavené)_ | Kľúč API pre backend Obsidian Vault (používa ho prednastavenie známeho backendu `genericBackend.ts`). | | `OBSIDIAN_API_URL` | `http://localhost:27123` | Základná URL rozhrania API služby Obsidian Vault (možno ju prepísať pre vzdialený trezor). | | `MEMORY_TYPED_DECAY_ENABLED` | `false` | Hlavný prepínač typovaného úbytku pamäte TV6. **Voliteľné (predvolene vypnuté)** — čistenie **odstráni** uplynuté pamäte. Keď je vypnuté, `access_count`/`last_accessed_at` slúžia výhradne ako telemetria a nikdy sa nič neodstráni. | | `MEMORY_TYPED_DECAY_EPISODIC_DAYS` | `30` | TTL (v dňoch), po ktorého uplynutí nepoužitá pamäť typu `episodic` zanikne. Hodnota `0` zabezpečí imunitu aj epizodickej pamäte. Trvalé typy (`factual`/`procedural`/`semantic`) sú vždy imúnne. Čas úbytku sa nanovo odvíja od `last_accessed_at`. | | `MEMORY_TYPED_DECAY_ACCESS_IMMUNITY` | `3` | Pamäť vložená aspoň `>=` toľkokrát sa stane imúnnou voči úbytku bez ohľadu na typ. Hodnota `0` vypne imunitu založenú na prístupe. | | `MEMORY_TYPED_DECAY_SWEEP_INTERVAL` | `0` (vypnuté) | Interval (v sekundách) voliteľného pravidelného čistenia uplynutých pamätí v `src/lib/memory/typedDecay.ts`. `0`/nenastavené = bez pravidelného čistenia. Vyžaduje dvojité explicitné zapnutie: zároveň musí byť nastavené `MEMORY_TYPED_DECAY_ENABLED=true`. | | `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(nenastavené)_ | Čiarkami oddelené ID poskytovateľov (bez rozlišovania veľkosti písmen), ktorí akceptujú správu `system` **iba na indexe 0** (`src/lib/memory/injection.ts`). Pri nich nie je vloženie pamäte do stredu poľa, ktoré zachováva bezpečnosť vyrovnávacej pamäte, bezpečné vo viacťahových konverzáciách, preto sa pamäť zlúči alebo pridá na začiatok ako úvodná systémová správa. Predvolene zahŕňa iba `xiaomi-mimo`/`mimo`; rozšírte ho pre koncové body kompatibilné s OpenAI hosťované vo vlastnej réžii (napr. Qwen3.5+/3.6), ktorých šablóna chatu vynucuje rovnaké obmedzenie jedinej úvodnej systémovej správy. | ### Príklad Dockeru s malou pamäťou RAM Hodnota `128` je určená iba pre ovládací panel. Agenti na programovanie s touto veľkosťou haldy počas dlhých požiadaviek `/v1/responses` skončia chybou `FATAL ERROR`. Nepoužívajte tento príklad ako bránu Claude/Codex/Grok. ```bash OMNIROUTE_MEMORY_MB=128 PROMPT_CACHE_MAX_SIZE=20 PROMPT_CACHE_MAX_BYTES=524288 # 512 kB SEMANTIC_CACHE_MAX_SIZE=25 SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MB STREAM_HISTORY_MAX=10 ``` --- ## 18. Synchronizácia cien Automatická synchronizácia údajov o cenách modelov z externých zdrojov. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------- | ------------------ | ------------------------ | ----------------------------------------- | | `PRICING_SYNC_ENABLED` | `false` | `src/lib/pricingSync.ts` | Voliteľná pravidelná synchronizácia cien. | | `PRICING_SYNC_INTERVAL` | `86400` (24h) | `src/lib/pricingSync.ts` | Interval synchronizácie v sekundách. | | `PRICING_SYNC_SOURCES` | `litellm` | `src/lib/pricingSync.ts` | Zdroje údajov oddelené čiarkami. | --- ## Synchronizácia ELO rebríčka Arena | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------- | ------------------ | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Pravidelná synchronizácia ELO rebríčka Arena AI, konfigurovateľná pomocou príznakov funkcií na ovládacom paneli; nastavením na `false` ju možno vypnúť. | | `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | Forma prefixu používaná pre ID modelov v `GET /v1/models`. Hodnota `dual` uvádza pre každý model prefix krátkeho aliasu aj kanonický prefix poskytovateľa (spätná kompatibilita — približne zdvojnásobuje katalóg); `alias` poskytuje jedno ID pre každý model; `canonical` poskytuje iba úplný prefix ID poskytovateľa (poskytovatelia, ktorých alias už je kanonickým ID, si zachovajú jednu položku). Klienti môžu toto nastavenie pre konkrétnu požiadavku prepísať pomocou `?prefix=alias`. Pozrite si [API_REFERENCE](API_REFERENCE.md#model-id-prefixes-prefix). | | `ARENA_ELO_SYNC_INTERVAL` | `86400` (24h) | `src/lib/arenaEloSync.ts` | Interval synchronizácie v sekundách. | --- ## Poskytovateľ PromptQL Playground (neoficiálny/experimentálny) Reverzne analyzované premostenie relácií GraphQL pre prompt.ql.app (`src/shared/constants/providers/web-cookie.ts`). Všetky možnosti sú voliteľné — predvolené hodnoty smerujú na verejné koncové body prostredia Playground; prepíšte ich iba pri vlastnom hosťovaní alebo alternatívnom nasadení PromptQL. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | `PROMPTQL_GRAPHQL_ENDPOINT` | `https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql` | `open-sse/executors/promptql.ts` | Koncový bod GraphQL používaný na operácie s chatom a reláciami. | | `PROMPTQL_CREDITS_ENDPOINT` | `https://data.pro.ql.app/v1/graphql` | `open-sse/executors/promptql.ts`, `open-sse/services/usage/promptql.ts` | Koncový bod GraphQL používaný na zisťovanie zostatku a využitia kreditov. | | `PROMPTQL_TOKEN_REFRESH_URL` | `https://auth.pro.ql.app/ddn/project/token` | `open-sse/executors/promptql.ts` | Koncový bod používaný na obnovenie tokenu podľa možností. | | `PROMPTQL_POLL_TIMEOUT_MS` | `180000` | `open-sse/executors/promptql.ts` | Maximálny čas (ms) zisťovania `thread_events` pred vypršaním časového limitu. | --- ## Webový poskytovateľ HyperAgent (neoficiálny/experimentálny) Reverzne analyzovaný most relácie pre hyperagent.com (`src/shared/constants/providers/web-cookie.ts`). Voliteľné — predvolene odkazuje na verejný koncový bod fakturácie/využitia; prepíšte ho iba pri vlastnom hosťovaní alebo alternatívnom nasadení HyperAgent. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------- | --------------------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------- | | `HYPERAGENT_USAGE_URL` | `https://hyperagent.com/api/settings/billing/usage` | `open-sse/services/usage/hyperagent.ts` | Koncový bod používaný na načítanie blokov kreditov fakturácie/využitia. | --- ## Kvóty využitia Kilo Code Vyhľadávanie osobného zostatku v USD a využitia Kilo Pass pre poskytovateľa Kilo Code. Voliteľné — predvolene odkazuje na verejné rozhranie API služby Kilo; prepíšte ho iba pre relay alebo testovaciu fixtúru. Overenie používa existujúci prístupový token OAuth daného pripojenia. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | -------------- | --------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------- | | `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | Základná URL adresa používaná na načítanie osobného zostatku Kilo Code a využitia Kilo Pass. | --- ## Webový poskytovateľ Adobe Firefly (neoficiálny/experimentálny) Obnovenie relácie riadené prehliadačom pre webového poskytovateľa Adobe Firefly (`open-sse/services/adobeFireflyBrowserLogin.ts`, `open-sse/services/adobeFireflySession.ts`, `open-sse/services/adobeFireflyClient.ts`). Voliteľné — všetky predvolené hodnoty sú vyladené pre bežnú inštaláciu na stolnom počítači. > **Odstránené v #9255.** Staré runtime prostredie Chrome pripojené cez CDP (adobeFireflyChromeRuntime.ts) bolo > nahradené službou prihlasovania cez prehliadač Playwright a jeho nastavenia už neexistujú. Premenné > ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART spolu s > ADOBE_FIREFLY_LOGIN_WAIT_MS a ADOBE_FIREFLY_FORTER_WAIT_MS sa nikde v > kódovej základni nenačítavajú — ich nastavenie nemá žiadny účinok. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------ | ------------------ | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Nastavte na `1` pre skutočne bezhlavý režim Chrome (je známe, že generovanie nefunguje; iba na ladenie). | | `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | Zapnutie/vypnutie proaktívneho predhriatia prehliadača. Hodnota `0` zakáže proaktívne predhriatie (obnova po chybe 408 uprostred dávky sa naďalej uplatňuje). | | `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | Nastavením na `0` zakážete ukladanie relácie Adobe Firefly na disk. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(nenastavené)_ | `open-sse/services/adobeFireflySession.ts` | Minimálny interval (ms) vynútený medzi po sebe nasledujúcimi odoslaniami, ktorý prepíše vstavanú predvolenú hodnotu. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | _(nenastavené)_ | `open-sse/services/adobeFireflySession.ts` | Dodatočný interval (ms) pridaný po úspešnej dávke, ktorý prepíše vstavanú predvolenú hodnotu. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(nenastavené)_ | `open-sse/services/adobeFireflyClient.ts` | Základné oneskorenie (ms) pred odoslaním požiadavky na generovanie, ktoré prepíše vstavanú predvolenú hodnotu. | --- ## 19. Synchronizácia modelov (vývoj) | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------------------- | ------------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MODELS_DEV_SYNC_ENABLED` | _(nenastavené)_ | `src/lib/modelsDevSync.ts` | Pevné prepísanie nastavenia synchronizácie cien models.dev. Nenastavené = rešpektuje Nastavenia > AI (`modelsDevSyncEnabled`). `0`/`false`/`off`/`no` **má prednosť pred databázou** a preskočí pravidelnú synchronizáciu aj skenovanie SQL/JSON pomocou `getModelsDevPricing()` (obnovenie, keď je ovládací panel zablokovaný v rovnakej slučke udalostí). `1`/`true`/`on`/`yes` vynúti synchronizáciu. Uloženie/vymazanie cien naďalej volá `backupDbFile("pre-write")`, čo pri 60-minútovom obmedzení alebo `DISABLE_SQLITE_AUTO_BACKUP` nevykoná žiadnu operáciu. | | `MODELS_DEV_SYNC_INTERVAL` | `86400` (24 h) | `src/lib/modelsDevSync.ts` | Interval synchronizácie katalógu modelov počas vývoja v sekundách. | | `CONTEXT_WINDOW_RECONCILE_INTERVAL` | `86400` (24 h) | `src/lib/contextWindowResolver.ts` | Interval (v sekundách) pre samoopravný mechanizmus zosúladenia kontextového okna (5004): okná deklarované poskytovateľom a zistené prostredníctvom `/models` pripne ako prepísania `auto:discovery`, keď sa odlišujú od katalógu. Nastavením na `0` ho zakážete. Opätovne používa už synchronizované údaje (bez nového načítania); nikdy neprepíše `manual` prepísania. | --- ## 20. Nastavenia špecifické pre poskytovateľa | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | TTL vyrovnávacej pamäte katalógu modelov OpenRouter. | | `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Zahrnie používateľsky prívetivé polia `name` do odpovedí `/v1/models`. Vypnite pre klientov, ktorí očakávajú iba ID. | | `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Časový limit čakania pri nepripravenom stave na zlúčené opätovné zostavenie katalógu `GET /v1/models` (#12627). Po vypršaní časového limitu sa poskytne posledná platná odpoveď 200, ak existuje. | | `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dní) | `src/lib/db/models/activeSyncedCatalog.ts` | Vek, po ktorom synchronizovaný zoznam modelov pripojenia prestane byť smerodajný pre smerovanie a pri zlyhaní sa použije register (#12849). Riadky, ktoré nikdy nemali časovú pečiatku, sa považujú za zastarané. | | `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maximálny čas čakania na úlohy generovania obrázkov NanoBanana. | | `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Frekvencia zisťovania stavu úloh NanoBanana. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Základné oneskorenie exponenciálneho odstupu pri opakovanom pokuse o odoslanie požiadavky na zväčšenie obrázka v Adobe Firefly. | | `AWS_REGION` | _(nenastavené)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Región používaný na vytvorenie koncových bodov AWS Bedrock (Kiro, zvuk). | | `AWS_DEFAULT_REGION` | _(nenastavené)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Záložná hodnota, keď `AWS_REGION` nie je nastavená. | | `CLOUDFLARE_ACCOUNT_ID` | _(nenastavené)_ | `open-sse/executors/cloudflare-ai.ts` | ID účtu pre Cloudflare Workers AI. | | `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nenastavené)_ | `open-sse/executors/cloudflare-playground.ts` | Úplná cesta k binárnemu súboru desktopového prehliadača Chrome pre executor Cloudflare AI Playground, ktorá sa používa, keď kontrola odtlačku prehliadača v bezhlavom režime zablokuje Chromium dodávané s Playwrightom. | | `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Prepíše základnú adresu REST API služby Cloudflare používanú nástrojom na nasadenie prenosového uzla Workers pre fond proxy (#4640 / 9router#1360). | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Predvolený názov projektu workera navrhovaný v modálnom okne „Nasadiť prenosový uzol“ pre fond proxy. | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nastavte na `false`, ak chcete skryť možnosť prenosového uzla Cloudflare Workers na karte Fondu proxy. | | `CLOUDFLARED_BIN` | automatická detekcia | `src/lib/cloudflaredTunnel.ts` | Vlastná cesta k binárnemu súboru `cloudflared`. | | `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Prenosový protokol tunela: `http2` (predvolené), `quic` alebo `auto`. | | `CLOUDFLARED_CONFIG` | _(nenastavené)_ | `src/lib/cloudflaredTunnel.ts` | Cesta k lokálne spravovanému súboru `config.yml` nástroja cloudflared (s položkami `tunnel:`, `credentials-file:`, `ingress:`). Keď je nastavená, OmniRoute spustí `tunnel --config run` (pomenovaný tunel) namiesto dočasného rýchleho tunela. | | `CLOUDFLARED_HOSTNAME` | _(z konfigurácie ingress)_ | `src/lib/cloudflaredTunnel.ts` | Prepísanie verejného názvu hostiteľa pomenovaného tunela (napr. `ai.example.com`), ktorý sa uvádza ako `publicUrl`/`apiUrl`. Ak nie je nastavený, načíta sa z prvého názvu hostiteľa `ingress` v konfigurácii. | | `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Prepíše základnú adresu REST API služby Deno Deploy používanú nasadzovacím nástrojom prenosu proxy fondu (#4643 / 9router#1437). | | `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Predvolený názov aplikácie Deno Deploy navrhovaný v modálnom okne „Nasadiť prenos“ proxy fondu. | | `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nastavením na `false` skryjete možnosť prenosu Deno Deploy na karte Proxy fond. | | `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | TTL pre ukladanie odpovedí vyhľadávacieho API (Perplexity, Brave atď.) do vyrovnávacej pamäte. | | `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Zobrazí experimentálne používateľské rozhranie poskytovateľa kompatibilného s CC pre prenosy určené iba pre Claude Code. | | `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Prepíše hostiteľa, na ktorom počúva vstavaná inštancia 9router. | | `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Prepíše port, na ktorom počúva vstavaná inštancia 9router. | | `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Hostiteľ väzby pre WebSocket proxy vstavanej služby (predvolene iba rozhranie spätnej slučky). | | `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port servera WebSocket proxy vstavanej služby. | | `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Hostiteľ mosta CLIProxyAPI (staršia integrácia). | | `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port mosta CLIProxyAPI. | | `CLIPROXYAPI_API_KEY` | _(prázdne)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Záložný kľúč dátovej vrstvy, keď nastavenie `cliproxyapi_api_key` nie je k dispozícii. | | `CLIPROXYAPI_MANAGEMENT_KEY` | _(prázdne)_ | `src/lib/services/cliproxyAccountHealth.ts` | Kľúč na správu na načítanie stavu účtu z externe spravovanej inštancie CLIProxyAPI. | | `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Konfiguračný adresár CLIProxyAPI. | | `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Hostiteľské rozhranie, na ktorom docker-compose zverejňuje postranný kontajner `cliproxyapi` (#12578). Jeho dátový zväzok obsahuje prihlasovacie údaje OAuth/API poskytovateľa a pripnutý obraz nepodporuje prepísanie `api-keys` dátovej vrstvy prostredníctvom premenných prostredia (iba pripojený súbor `config.yaml`), takže `0.0.0.0` sprístupní službu obsahujúcu prihlasovacie údaje celej sieti LAN. | | `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Prepíše port, na ktorom počúva vstavaný démon Mux (coder/mux) na orchestráciu agentov (vždy 127.0.0.1). | | `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Prepíše port, na ktorom počúva vstavaný démon open-wa (automatizácia WhatsApp Web) (vždy 127.0.0.1). | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Hostiteľ väzby/pripojenia vstavanej služby Dario (predvolene iba rozhranie spätnej slučky). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port vstavanej služby Dario. | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Hostiteľ väzby/pripojenia vstavanej služby Dario (predvolene iba rozhranie spätnej slučky). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port vstavanej služby Dario. | | `LOCAL_HOSTNAMES` | _(prázdne)_ | `open-sse/config/providerRegistry.ts` | Ďalšie názvy hostiteľov oddelené čiarkami, ktoré sa považujú za „lokálne“ (názvy služieb Docker atď.). | `ENABLE_CC_COMPATIBLE_PROVIDER` je určené iba pre relé tretích strán, ktoré prijímajú výhradne klientov Claude Code. OmniRoute prepisuje požiadavky tak, aby ich tieto relé prijali. Ak chcete používať iba Claude Code CLI alebo neviete, čo sú tieto relé, ponechajte túto možnosť vypnutú a namiesto toho pridajte bežného poskytovateľa kompatibilného s Anthropic. --- ## 21. Stav proxy serverov | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | `src/lib/proxyHealth.ts` | Časový limit kontroly stavu s rýchlym zlyhaním. | | `PROXY_LATENCY_WINDOW_HOURS` | `3` | `src/lib/db/proxies.ts` | Časové okno (v hodinách) na výpočet priemernej latencie kandidátskych proxy serverov v stratégii fondu optimalizovanej na latenciu. | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | `src/lib/proxyHealth.ts` | TTL vyrovnávacej pamäte výsledkov kontroly stavu. | | `PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS` | `2000` | `src/lib/proxyHealth.ts` | TTL vyrovnávacej pamäte pre neúspešné sondy stavu proxy serverov. Táto hodnota musí byť kratšia než `PROXY_HEALTH_CACHE_TTL_MS`, aby sa pri prechodných vypršaniach časového limitu proxy serverov počas vysokej súbežnosti pokusy rýchlo zopakovali bez deaktivovania rýchleho zlyhania pre skutočne nefunkčné proxy servery. | | `PROXY_HEALTH_ENABLED` | `true` | `src/lib/proxyHealth/scheduler.ts` | Nastavením na `false` zakážete plánovač kontroly stavu proxy serverov na pozadí, ktorý pravidelne kontroluje registrované proxy servery. | | `PROXY_HEALTH_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Interval cyklu plánovača kontroly stavu na pozadí v ms (minimum `60000`). | | `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Interval obnovovacieho procesu na pozadí v ms: ako často sa opätovne testujú predtým nefunkčné proxy, aby sa obnovená proxy vrátila do rotácie bez reštartu. Pri hodnotách nižších ako `60000` sa použije predvolená hodnota. | | `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | Cieľ testu dostupnosti používaný plánovačom a koncovým bodom `/api/settings/proxies/auto-test`. Nastavte ho na internú URL alebo URL vo vlastnom hostingu, aby ste sa vyhli predvolenému verejnému cieľu. | | `PROXY_HEALTH_TEST_CONCURRENCY` | `10` | `src/lib/proxyHealth/probeTarget.ts` | Počet testov spustených naraz v jednej dávke, spoločný pre plánovač a koncový bod `/api/settings/proxies/auto-test`. Zaokrúhľuje sa nadol, pričom minimálna hodnota je 1 a maximálna 50. | | `PROXY_HEALTH_TEST_STAGGER_MS` | `100` | `src/lib/proxyHealth/probeTarget.ts` | Oneskorenie v ms medzi spustením dvoch testov v rámci dávky. Bez neho sa celá dávka odošle v rovnakom okamihu a zdieľaná výstupná IP adresa môže aktivovať obmedzenie počtu požiadaviek cieľa. Nastavením na `0` rozostupy vypnete; maximálna hodnota je 5000. | | `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | Nastavením na "false" zastavíte testovanie skutočného hostiteľa poskytovateľa priradeného proxy (`GET /models`, bez kľúča API) a namiesto toho sa bude vždy používať `PROXY_HEALTH_TEST_URL`. | | `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | Keď je hodnota `false` (predvolené nastavenie), automatizované testy dostupnosti (plánovač + tlačidlo „Testovať všetky“ pre `/api/settings/proxies/auto-test`) sú **iba na čítanie** a nikdy nezapisujú stav proxy — aktívny/neaktívny stav nastavuje iba operátor, takže nespoľahlivý test nemôže vyradiť priradenú proxy (#6246). Nastavením na `true` obnovíte pôvodné správanie, pri ktorom sa stav testuje a nastavuje. | | `FLUSH_EMPTY_RETRY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Voliteľný príznak funkcie (pozrite si [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); nastavenie v databáze ovládacieho panela má prednosť). Hodnota `true` (alebo `1`, `yes`) opakuje prázdne preložené streamované kolá prostredníctvom bežnej cesty prihlasovacích údajov (najviac `STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX` opakovaní) namiesto vrátenia prázdnej odpovede 200 alebo odpovede 502 s prázdnym obsahom. | | `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | Voliteľný príznak funkcie (pozrite si [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); nastavenie v databáze ovládacieho panela má prednosť). Hodnota `true` (alebo `1`, `yes`) zobrazuje na ovládacom paneli pod fondom proxy pozorovanie výstupnej prevádzky fondu iba na čítanie (odlišné výstupné IP adresy, pripojenia a najvyšší počet pripojení zaznamenaný za jednou IP adresou za posledných 24 h podľa denníka proxy). Nikdy sa nepoužíva na smerovanie. | | `PROXY_AUTO_REMOVE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Nastavte na `true`, aby plánovač po opakovaných po sebe nasledujúcich zlyhaniach automaticky odstránil proxy servery. | | `PROXY_AUTO_REMOVE_AFTER` | `3` | `src/lib/proxyHealth/scheduler.ts` | Počet po sebe nasledujúcich zlyhaní, po ktorých plánovač automaticky odstráni proxy server (keď `PROXY_AUTO_REMOVE=true`). | | `PROXY_AUTO_DISABLE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Nastavte na `true`, aby plánovač po opakovaných po sebe nasledujúcich zlyhaniach proxy server deaktivoval nedestruktívnym spôsobom (stav `dead`, bez odstránenia) namiesto jeho odstránenia. Ide o nedestruktívnu alternatívu k `PROXY_AUTO_REMOVE`: proxy server je okamžite vyradený z výberu fondu/rotácie (filter aktívneho stavu používaný pri vyhodnocovaní fondu rozsahu ho už vylučuje) a automaticky sa znova aktivuje, keď opäť začne úspešne prechádzať kontrolami. Používa rovnakú prahovú hodnotu `PROXY_AUTO_REMOVE_AFTER`. Ak sú oba príznaky nastavené na `true`, prednosť má `PROXY_AUTO_REMOVE`. | | `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Umožňuje tokom overovania OAuth a poskytovateľa obísť pripnutý proxy server a pripojiť sa priamo, keď zlyhajú predbežné kontroly dostupnosti proxy servera. Platné poradie priorít je: prepísanie z databázy príznakov funkcií > premenná prostredia > predvolená hodnota. | | `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30 s) | `src/lib/resilience/settings.ts` | Predvolený časový limit **čakania vo fronte**: ako dlho môže požiadavka čakať na slot poskytovateľa a zostať vo fronte, než bude odmietnutá bez toho, aby sa dostala k nadradenej službe. Časovač sa zruší, keď sa úloha začne vykonávať — vykonávanie je samostatne obmedzené hodnotou `RATE_LIMIT_EXECUTION_MAX_WAIT_MS`. Premenná prostredia nastavuje iba predvolenú hodnotu: uložené nastavenie `resilienceSettings.requestQueue.maxWaitMs` a následne hodnota `rateLimitOverrides.maxWaitMs` pre konkrétne pripojenie majú pred ňou vždy prednosť. | | `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (10 min) | `open-sse/services/rateLimitManager.ts` | Horný limit času, počas ktorého môže prijatá požiadavka zostať vo vykonávaní, kým nevyprší jej rezervácia kapacity obmedzenia rýchlosti — je oddelený od časového limitu čakania vo fronte, aby sa pri pomalom začatí načítavania na neinkrementálnych bránach neprekročil časový limit (#12027). | | `RATE_LIMIT_MAX_QUEUE_DEPTH` | `0` (vypnuté) | `open-sse/services/rateLimitManager.ts` | Limit prijímania do frontu: keď už vo fronte čaká tento počet požiadaviek, požiadavka sa odmietne s odpoveďou 429 `queue_full`. `0` = bez obmedzenia (predvolené). | | `RATE_LIMIT_AUTO_ENABLE` | _(nenastavené)_ | `open-sse/services/rateLimitManager.ts` | Vynúti zapnutie alebo vypnutie záchranného mechanizmu automatického povolenia obmedzenia rýchlosti bez ohľadu na uložené nastavenie ovládacieho panela. Hodnoty `true`/`1`/`on` vynútia zapnutie, hodnoty `false`/`0`/`off` vynútia vypnutie. | | `PROVIDER_COOLDOWN_ENABLED` | _(nenastavené → vypnuté)_ | `open-sse/services/providerCooldownTracker.ts` | Voliteľné globálne sledovanie doby čakania poskytovateľa/pripojenia naprieč požiadavkami. Predvolene VYPNUTÉ (prekrýva sa s funkciami Connection Cooldown / Provider Circuit Breaker). Aktivuje sa hodnotou `true`/`1`/`on`. | | `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | Minimálna doba čakania (ms), po ktorej sa zopakuje pokus o použitie poskytovateľa/pripojenia po zlyhaní. Pri po sebe nasledujúcich zlyhaniach sa exponenciálne predlžuje. Používa sa iba vtedy, keď je povolené `PROVIDER_COOLDOWN_ENABLED`. | | `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 min) | `open-sse/services/providerCooldownTracker.ts` | Maximálny limit doby čakania (ms), po ktorom sa bez ohľadu na okolnosti zopakuje pokus o použitie poskytovateľa/pripojenia po zlyhaní. Používa sa iba vtedy, keď je povolené `PROVIDER_COOLDOWN_ENABLED`. | | `STREAM_RECOVERY_ENABLED` | _(nenastavené → vypnuté)_ | `src/lib/resilience/settings.ts` (počiatočná hodnota) → `open-sse/services/streamRecovery.ts` (logika) | **Čo robí:** transparentne obnovuje predčasne ukončené nadradené streamy (port z free-claude-code). Pozdrží úvodné okno SSE až na `STREAM_RECOVERY.HOLDBACK_MS` (750 ms), aby bolo možné _pred potvrdením_ — teda skôr, než sa ku klientovi dostane akýkoľvek bajt — prerušený stream nepozorovane znova otvoriť a zopakovať požiadavku. **Kedy povoliť:** pri nestabilných nadradených službách, ktoré často ukončia stream s 0 bajtmi hneď na začiatku; ponechajte VYPNUTÉ, ak si nemôžete dovoliť až 750 ms dodatočného času do prvého tokenu pri každom streame. Aktivuje sa hodnotou `true`/`1`/`on`. Nastavuje počiatočnú hodnotu uloženého nastavenia odolnosti; po nastavení má prednosť nastavenie z ovládacieho panela. | | `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(nenastavené → vypnuté)_ | `src/lib/resilience/settings.ts` (počiatočná hodnota) → `open-sse/services/streamRecovery.ts` (logika) | **Čo robí:** pokračovanie uprostred streamu (fáza 4.4) — po prerušení _po potvrdení_ (bajty sa už dostali ku klientovi) odošle novú požiadavku s čiastočným textom ako predvyplnenou odpoveďou asistenta a pripojí chýbajúcu koncovú časť. Len pre streamy kompatibilné s OpenAI s obyčajným textom; nikdy sa nespustí počas prebiehajúceho volania nástroja. **Kedy povoliť:** pri dlhých generovaniach, ktoré sa prerušujú uprostred odpovede, ak akceptujete, že obnovená koncová časť príde naraz namiesto postupného príchodu po jednotlivých tokenoch. Nezávisí od `STREAM_RECOVERY_ENABLED` (odlišný rizikový profil). Aktivuje sa hodnotou `true`/`1`/`on`. | | `STREAM_THROUGHPUT_WATCHDOG_ENABLED` | _(nenastavené → vypnuté)_ | `src/lib/resilience/settings.ts` → `open-sse/services/throughputWatchdog.ts` | Voliteľný watchdog užitočného výstupu aktívneho streamu. Zisťuje streamy, ktoré naďalej odosielajú bloky údajov, no zostávajú pod nakonfigurovanou rýchlosťou výstupu asistenta; signály heartbeat, udalosti využitia, prázdne zmeny a fázy nástrojov či uvažovania sa nepovažujú za priebeh. Funguje oddelene od časových limitov nečinnosti a pevných konečných termínov. | | `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Tolerančná lehota pred vyhodnotením priepustnosti, obmedzená na 0–600000 ms. | | `STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Posuvné okno užitočného výstupu, obmedzené na 1000–600000 ms; pred prerušením musí uplynúť jedno celé okno. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND` | `4` | `src/lib/resilience/settings/normalize.ts` | Minimálna rýchlosť bajtov výstupu asistenta v UTF-8 (konzervatívna aproximácia tokenov), obmedzená na 1–1000000. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES` | `1` | `src/lib/resilience/settings/normalize.ts` | Minimálna nenulová vzorka užitočného výstupu považovaná za merateľnú, obmedzená na 1–1000000 bajtov. | | `HEALTHCHECK_STAGGER_MS` | `3000` | `src/lib/tokenHealthCheck.ts` | Interval rozloženia (ms) medzi kontrolami stavu tokenov poskytovateľov pri spustení. | | `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | Minimálny náhodný rozptyl (ms) pridaný k `HEALTHCHECK_STAGGER_MS` medzi kontrolami stavu tokenov poskytovateľa, aby sa zabránilo nárazovému zaťaženiu (problém č. 1220). | | `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | Maximálny náhodný rozptyl (ms) pridaný k `HEALTHCHECK_STAGGER_MS` medzi kontrolami stavu tokenov poskytovateľa, aby sa zabránilo nárazovému zaťaženiu (problém č. 1220). | | `HEALTHCHECK_BATCH_SIZE` | `20` | `src/lib/tokenHealthCheck.ts` | Veľkosť dávky súbežných kontrol pri úvodnom cykle kontroly stavu tokenov; väčšie hodnoty kontrolujú viac pripojení paralelne, menšie hodnoty znižujú nárazové zaťaženie (problém č. 7875, regresia problému č. 7719). | | `REQUEST_RETRY` | `2` | `src/sse/services/cooldownAwareRetry.ts` | Počet automatických opakovaní pri odpovediach o čakacej lehote viazaných na model pred vrátením chyby klientovi. | | `MAX_RETRY_INTERVAL_SEC` | `30` | `src/sse/services/cooldownAwareRetry.ts` | Maximálny interval exponenciálneho čakania (v sekundách) medzi opakovanými pokusmi počas čakacej lehoty. Bez ohľadu na nadradenú hodnotu `Retry-After` je obmedzený touto hodnotou. | | `HEADROOM_URL` | `http://localhost:8787` | `src/lib/headroom/detect.ts` | URL proxy servera Headroom na úsporu tokenov. Životný cyklus ovládacieho panela (`api/headroom/*`) predvolene spúšťa lokálne CLI `headroom-ai` na rozhraní loopback; túto hodnotu prepíšte iba vtedy, ak chcete smerovať na externý proxy server typu Docker sidecar. | ### Konštanty na ladenie obnovy streamu Správanie pozdržania pri obnove je nastavené pevne zakódovanými konštantami v `open-sse/config/constants.ts` (`STREAM_RECOVERY`), ktoré sú tu uvedené ako referencia — ich zmena vyžaduje úpravu kódu, nie premennej prostredia: - `STREAM_RECOVERY.HOLDBACK_MS = 750` — ako dlho sa počiatočné okno SSE zadržiava, aby bolo možné v prípade skorého prerušenia pokus zopakovať skôr, než sa klientovi odošle akýkoľvek bajt. - `STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536` — pevný limit zadržaného okna; odoslanie (vyprázdnenie + priamy prenos) sa vykoná hneď, ako sa nahromadí tento počet bajtov, bez ohľadu na časovač. - `STREAM_RECOVERY.EARLY_RETRY_MAX = 4` — maximálny počet transparentných opätovných otvorení nadradeného streamu, kým zadržané dáta ešte neboli odoslané. > **Limit frekvencie na poskytovateľa s posuvným oknom (bez premennej prostredia):** záložný > limit frekvencie na poskytovateľa prenesený z FCC existuje v kóde > (`open-sse/services/providerDefaultRateLimit.ts`, prepojený cez > `open-sse/services/rateLimitManager.ts`), ale dodáva sa s **prázdnou predvolenou mapou** > a momentálne **nemá žiadnu operátorskú premennú prostredia** — povoľuje sa iba prostredníctvom testovacieho hooku / > úpravy kódu. Zámerne nie je uvedený v tabuľke vyššie. Obmedzovač relay prenosov pre každý `(token, IP)`, > ktorý _má_ nastaviteľný parameter, je `RELAY_IP_PER_MINUTE` (§3 Sieť a porty). --- ## 22. Ladenie > [!CAUTION] > Tieto premenné vytvárajú **podrobný výstup** a môžu odhaliť citlivé údaje. **Nikdy ich nepovoľujte v produkčnom prostredí.** | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CURSOR_DEBUG` | _(nenastavené)_ | `open-sse/executors/cursor.ts` | Nastavením na `1` povolíte podrobné protokoly vykonávacieho modulu Cursor (dekódované bloky SSE atď.). | | `CURSOR_STREAM_DEBUG` | _(nenastavené)_ | `open-sse/executors/cursor.ts` | Spätne kompatibilný alias pre `CURSOR_DEBUG`. | | `CURSOR_DUMP_FILE` | _(nenastavené)_ | `open-sse/executors/cursor.ts` | Voliteľná cesta k súboru, do ktorého sa ukladajú nespracované dekódované bloky Cursor, keď je nastavené `CURSOR_DEBUG=1`. | | `CURSOR_STREAM_TIMEOUT_MS` | `300000` | `open-sse/executors/cursor.ts` | Časový limit nečinnosti prúdu (ms) pre vykonávací modul Cursor. | | `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | Dodatočné časové okno (ms) po mäkkom ukončovači composer kv_after_text, keď vo vyrovnávacej pamäti zostávajú bajty — poskytuje následnému volaniu nástroja exec_mcp čas na dokončenie rámca. | | `CURSOR_TOOL_DIRECTIVE` | povolené (`!== "0"`) | `open-sse/executors/cursor.ts` | Direktíva potvrdenia nástroja, ktorá zabezpečuje, že composer-2.5 spoľahlivo vykonáva volania nástrojov. Nastavením na `0` ju zakážete. | | `OMNIROUTE_SYSTEM_INSTRUCTION_APPEND` | _(nenastavené)_ | `open-sse/translator/request/claude-to-openai.ts`, `open-sse/translator/response/openai-to-claude.ts` | Operátorom definovaný text systémovej výzvy pripojený k systémovej správe PO preklade (vloženie po preklade), ktorý sa dostane do ciest codex/Responses a `/v1/messages`. Používa sa aj ako prefix direktívy odstraňovaný z opakovaných blokov systémovej preambuly. Ak ho chcete zakázať, ponechajte ho nenastavený. | | `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (vypnuté) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | Nastavením na `1` odstránite opakované bloky preambuly systémovej výzvy zo začiatku prúdu openai→claude. Predvolene je táto možnosť vypnutá — heuristiky sú prispôsobené anglickej próze a menia obsah odpovede, takže odpoveď, ktorá oprávnene začína takouto časťou, by o ňu prišla. | | `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | Časový limit načítania jedného obrázka (ms) pre vzdialený vizuálny vstup `image_url`. | | `CURSOR_STATE_DB_PATH` | _(zisťované)_ | `open-sse/utils/cursorVersionDetector.ts` | Prepíše vyhľadávanie databázy stavu IDE Cursor používanej na zisťovanie verzie IDE. | | `CURSOR_AGENT_CLI_VERSION` | _(zistiť / pripnúť)_ | `open-sse/utils/cursorAgentCliVersion.ts` | ID zostavy Agent CLI (`YYYY.MM.DD-`) pre `x-cursor-client-version: cli-…` pri spustení agenta. | | `CURSOR_AGENT_BIN` | _(nenastavené)_ | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Cesta k binárnemu súboru Cursor Agent používanému na generovanie obrázkov. Ak nie je nastavená, obslužný modul použije `providerSpecificData.agentBin` a potom PATH. | | `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Časový limit podľa reálneho času (ms) na jeden obrázok pre úlohy Cursor Agent. | | `CURSOR_IMG_MAX_CONCURRENT` | `2` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Limit súbežnosti zdieľanej relácie pre úlohy obrázkov Cursor. | | `CURSOR_IMG_MODEL` | požiadavka / `auto` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Prepíše parameter `--model` rozhrania Cursor CLI pre úlohy obrázkov. | | `UC_IMAGE_POLL_INTERVAL_MS` | `2000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | Interval zisťovania výsledku generovania obrázkov UC (uncensored.com) (ms). | | `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | Časový limit podľa reálneho času (ms) na zisťovanie výsledku generovania obrázkov UC. | | `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | Interval zisťovania výsledku generovania videí UC (uncensored.com) (ms). | | `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | Časový limit podľa reálneho času (ms) na zisťovanie výsledku generovania videí UC. | | `CURSOR_DATA_DIR` | _(zisťované)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Prepíše dátový adresár Cursor Agent CLI (`…/versions/`); ide o rovnakú premennú, akú používa oficiálny agent. | | `CURSOR_TOKEN` | _(nenastavené)_ | `scripts/ad-hoc/cursor-tap.cjs` | Priamy bearer token Cursor používaný vývojárskymi nástrojmi. | | `OMNIROUTE_LOG_REQUEST_SHAPE` | zakázané (voliteľne cez `"1"`) | `src/app/api/v1/chat/completions/route.ts` | Zaznamenáva indikátory typu a dĺžky obsahu pre veľké dátové časti chatu, keď je nastavené `"1"`. Predvolene je táto možnosť vypnutá, aby sa obmedzil šum v protokoloch. | | `DEBUG_RESPONSES_SSE_TO_JSON` | _(nenastavené)_ | `open-sse/handlers/responseTranslator.ts` | Nastavením na `true` zapnete zaznamenávanie podrobností prekladu Responses API SSE→JSON. | | `DEBUG_CLAUDE_NONSTREAM` | _(nenastavené)_ | `open-sse/handlers/responseTranslator.ts` | Nastavením na `true` zobrazíte prázdne bloky textContent v ceste prekladu odpovede Claude (iba na ladenie). | | `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(nenastavené)_ | Testovacie prostredie E2E | Nastavením na `true` povolíte testovací režim E2E (uvoľnené overovanie, testovacie háky). | --- ## 23. Integrácia s GitHubom Umožnite používateľom nahlasovať problémy priamo z ovládacieho panela. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | --------------------- | ------------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `GITHUB_ISSUES_REPO` | _(nenastavené)_ | `src/app/api/v1/issues/report/route.ts` | Repozitár vo formáte `owner/repo`. | | `GITHUB_ISSUES_TOKEN` | _(nenastavené)_ | `src/app/api/v1/issues/report/route.ts` | Osobný prístupový token GitHubu s rozsahom `issues:write`. | | `GITHUB_TOKEN` | _(nenastavené)_ | triedenie problémov / pomocné nástroje cloudového agenta | Všeobecný prístupový token GitHubu používaný ako záložná možnosť pre `GITHUB_ISSUES_TOKEN` a pomocnými nástrojmi cloudového agenta v `src/lib/cloudAgent/*`. | --- ## Scenáre nasadenia Usmernenia SRE pre backend relay (správanie ts/bifrost/auto, umiestnenie 9router oproti CLIProxyAPI a stratégia záložného riešenia pre vysokú priepustnosť) nájdete v dokumente [Stratégia backendu relay](/docs/reference/RELAY_BACKEND_STRATEGY.md). ### Minimálny lokálny vývoj ```bash JWT_SECRET=$(openssl rand -base64 48) API_KEY_SECRET=$(openssl rand -hex 32) INITIAL_PASSWORD=dev123 PORT=20128 NODE_ENV=development ``` ### Produkčné prostredie Docker ```bash JWT_SECRET= API_KEY_SECRET= INITIAL_PASSWORD= STORAGE_ENCRYPTION_KEY= DATA_DIR=/data PORT=20128 API_PORT=20129 NODE_ENV=production AUTH_COOKIE_SECURE=true REQUIRE_API_KEY=true NEXT_PUBLIC_BASE_URL=https://omniroute.example.com BASE_URL=http://localhost:20128 OMNIROUTE_MEMORY_MB=8192 CORS_ORIGIN=https://your-frontend.example.com ``` ### Izolované prostredie / CI ```bash JWT_SECRET=test-jwt-secret-for-ci API_KEY_SECRET=test-api-key-secret-for-ci INITIAL_PASSWORD=testpass NODE_ENV=production OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true APP_LOG_TO_FILE=false ``` ### VPS s reverzným proxy (nginx + Cloudflare) ```bash JWT_SECRET= API_KEY_SECRET= STORAGE_ENCRYPTION_KEY= PORT=20128 AUTH_COOKIE_SECURE=true REQUIRE_API_KEY=true NEXT_PUBLIC_BASE_URL=https://omniroute.example.com BASE_URL=http://127.0.0.1:20128 CORS_ORIGIN=https://omniroute.example.com ENABLE_TLS_FINGERPRINT=true CLI_COMPAT_ALL=1 ``` --- ## 24. Sandbox zručností (v3.8.0+) Limity a bezpečnostné nastavenia používané pri spúšťaní používateľom definovaných automatizácií prostredníctvom rámca Skills (`src/lib/skills/`) v izolovanom prostredí. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | --------------------------------- | ------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `SKILLS_SANDBOX_TIMEOUT_MS` | `10000` (10 s) | `src/lib/skills/builtins.ts` | Časový limit reálneho času pre každé spustenie kódu zručnosti v sandboxe. Pevný limit; všetko, čo trvá dlhšie, sa ukončí. | | `SKILLS_EXECUTION_TIMEOUT_MS` | _(použije sa `SKILLS_SANDBOX_TIMEOUT_MS`)_ | `src/lib/skills/` | Časový limit koordinácie zručnosti na vysokej úrovni. Nastavte ho vyššie než `SKILLS_SANDBOX_TIMEOUT_MS`, aby ste umožnili viackrokové pracovné postupy. | | `SKILLS_MAX_FILE_BYTES` | `1048576` (1 MB) | `src/lib/skills/builtins.ts` | Maximálny počet bajtov, ktoré môže zručnosť načítať z jedného súboru v sandboxe. | | `SKILLS_MAX_HTTP_RESPONSE_BYTES` | `256000` (250 KB) | `src/lib/skills/builtins.ts` | Maximálny počet bajtov zachytených z jednej odpovede HTTP v rámci zručnosti. | | `SKILLS_MAX_SANDBOX_OUTPUT_CHARS` | `100000` | `src/lib/skills/builtins.ts` | Pevný limit počtu znakov stdout/stderr vrátených zo spustenia sandboxu. | | `SKILLS_SANDBOX_NETWORK_ENABLED` | `false` | `src/lib/skills/builtins.ts` | Nastavením na `1`/`true` povolíte odchádzajúce sieťové pripojenia zo sandboxu. Z bezpečnostných dôvodov je predvolený stav **izolovaný**. | | `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(prázdne)_ | `src/lib/skills/builtins.ts` | Čiarkami oddelený zoznam povolených obrazov kontajnerov pre spúšťanie v sandboxe. Prázdna hodnota povoľuje iba vstavanú predvolenú možnosť. | | `SKILLS_SANDBOX_DOCKER_IMAGE` | _(vstavaná predvolená hodnota)_ | `src/lib/skills/` | Obraz kontajnera používaný pri vytváraní sandboxu založeného na Dockeri. Prepísaním tejto hodnoty môžete pripnúť vlastný zabezpečený základný obraz. | | `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | Runtime kontajnera pre sandbox zručností: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman`. Hodnota `auto` vyberie najvhodnejší nainštalovaný runtime podľa hostiteľského operačného systému (Apple Container/OrbStack v systéme macOS, WSL Container v systéme Windows, Podman v systéme Linux), pričom ako záložnú možnosť použije Docker. | > [!CAUTION] > Povolenie `SKILLS_SANDBOX_NETWORK_ENABLED=true` otvorí cestu pre odchádzajúcu komunikáciu z ľubovoľného kódu zručnosti. V zdieľaných nasadeniach ho kombinujte s `OUTBOUND_SSRF_GUARD_ENABLED=true` a prísnymi pravidlami `CORS_ORIGIN`/proxy. --- ## 25. Kvóty poskytovateľov, tunely, zálohy a rôzne nastavenia behu Koncové body kvót poskytovateľov, sieťové tunely (Tailscale, Ngrok, ladiaci proxy server MITM), fond odchádzajúcich proxy serverov 1Proxy, databázové zálohy a drobné prepisy pre jednotlivé funkcie, na ktoré odkazuje vrstva vykonávania alebo skripty. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | Reťazec pripojenia k službe Redis pre backend obmedzovača frekvencie požiadaviek. | | `ALIBABA_CODING_PLAN_HOST` | _(produkčný hostiteľ)_ | `open-sse/services/bailianQuotaFetcher.ts` | Prepíše hostiteľa používaného na načítanie kvót programovacieho plánu Alibaba Bailian. | | `ALIBABA_CODING_PLAN_QUOTA_URL` | odvodené od hostiteľa | `open-sse/services/bailianQuotaFetcher.ts` | Úplné prepísanie adresy URL kvóty služby Alibaba Bailian. | | `QWEN_CLOUD_COOKIE` | _(nenastavené)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Súbor cookie relácie konzoly pre bránu kvót osobného plánu Token Plan služby Qwen Cloud / Model Studio (kľúč API pre inferenciu ho nedokáže načítať). Skopírujte celú hlavičku požiadavky `Cookie` — obsahuje `login_qwencloud_ticket` — z ľubovoľného volania `api.json` na `cs-data.qwencloud.com` v home.qwencloud.com › Billing › Subscription (F12 › Network). Údaj je citlivý a viazaný na reláciu; uprednostnite pole `qwenCloudCookie` pre konkrétne pripojenie na ovládacom paneli. | | `QWEN_CLOUD_SEC_TOKEN` | _(nenastavené)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Manuálne prepísanie `sec_token` pre konzolovú bránu plánu Token Plan. Údaj je citlivý; ak nie je nastavený, načítavací modul ho pomocou súboru cookie získa z HTML ovládacieho panela. | | `QWEN_TOKEN_PLAN_HOST` | `https://cs-data.qwencloud.com` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Prepísanie hostiteľa brány pre načítavací modul kvót osobného plánu Token Plan (napr. `bailian-singapore-cs.alibabacloud.com` pre konzolu Model Studio). | | `QWEN_TOKEN_PLAN_DASHBOARD_URL` | `https://home.qwencloud.com/` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Adresa URL ovládacieho panela používaná na získanie `sec_token` z HTML prihláseného používateľa. | | `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Prepísanie cesty frontendu konzoly na načítanie kvóty bezplatnej úrovne Alibaba Model Studio pre obrazové a mediálne služby. | | `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Prepísanie cesty front-endu konzoly na načítanie bezplatnej multimodálnej kvóty služby Alibaba Model Studio. | | `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Prepísanie cesty front-endu konzoly na načítanie bezplatnej zvukovej kvóty služby Alibaba Model Studio. | | `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(nenastavené)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | Voliteľná cesta k lokálnemu súboru JSON, ktorý prepíše vstavaný zoznam povolených textových modelov bezplatnej úrovne Alibaba. Ak nie je k dispozícii, použije sa `$DATA_DIR/alibaba-free-tier-allowlist.json` a následne `config/alibaba-free-tier-allowlist.json`. | | `CONTEXT_RESERVE_TOKENS` | `1024` | `open-sse/services/contextManager.ts` | Tokeny rezervované pre výstup dokončenia pri výpočte limitov promptu. | | `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | Počet najnovších vložených obrázkov, ktoré sa majú zachovať pri odstraňovaní starších obrázkov, aby sa obsah zmestil do kontextového okna (#8560). | | `MODEL_ALIAS_COMPAT_ENABLED` | povolené | `open-sse/services/model.ts` | Zapína alebo vypína staršiu vrstvu kompatibility aliasov modelov používanú staršími klientmi. | | `OMNIROUTE_EMERGENCY_FALLBACK` | povolené | `open-sse/services/emergencyFallback.ts` | Nastavením na `false` (alebo `0`) sa zakáže núdzový záložný mechanizmus pri vyčerpaní rozpočtu, ktorý presmeruje neúspešné požiadavky na bezplatný model `nvidia`/`openai/gpt-oss-120b`. Efektívne poradie priorít je: prepísanie v databáze príznakov funkcií > premenná prostredia > predvolená hodnota; ak nie je k dispozícii, služba použije nespracovanú hodnotu premennej prostredia. | | `COMMAND_CODE_CALLBACK_PORT` | _(nenastavené)_ | `src/app/api/providers/command-code/auth/shared.ts` | Lokálny port používaný na spätné volania v štýle OAuth z pomocného nástroja CLI Command Code. | | `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Hodnota odosielaná nadradenej službe Command Code v hlavičke `x-command-code-version`. Prepísaním zvýšite verziu CLI. | | `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | Základná adresa URL nadradenej služby Command Code pre využitie/kvóty, ktorú používa telemetria načítavača kvót smartfónu. Prepísaním možno použiť vlastné hostované alebo alternatívne API Command Code. | | `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | Lokálny port väzby pre ladiaci proxy server MITM. | | `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | Nastavením na `1` zakážete overovanie TLS voči upstream serveru (iba na účely vývoja). | | `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | Časový limit nečinnosti soketu (ms) pre proxované pripojenia; nečinné sokety, ktoré tento limit prekročia, sa ukončia, aby sa zabránilo úniku polootvorených tunelov. | | `BRIDGE_PORT` | `20129` | `bin/antigravity-bridge.mjs` | Port, na ktorom počúva most MITM Antigravity. | | `ROUTER_URL` | `http://127.0.0.1:20128/v1/antigravity` | `bin/antigravity-bridge.mjs` | Koncový bod smerovača, na ktorý most preposiela prevádzku Antigravity. | | `CERT_DIR` | `~/.omniroute/mitm` | `bin/antigravity-bridge.mjs` | Adresár obsahujúci `server.key`/`server.crt` pre TLS listener mosta; ak niektorý z nich chýba, most sa ukončí. | | `MITM_VERBOSE` | `1` | `src/mitm/server.cjs`, `src/mitm/_internal/bypass.cjs` | Úroveň podrobnosti protokolovania rozhodnutí o smerovaní: `0` protokolovanie vypne, vyššie hodnoty zaznamenávajú viac rozhodnutí o obídení/smerovaní. | | `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | Nastavením na `true` sa prihlásite k používaniu modelu koreňovej CA a certifikátov jednotlivých hostiteľov (#6684). Nové inštalácie ho získajú automaticky; inštalácie s už existujúcim dôveryhodným starším koncovým certifikátom si zachovajú starší certifikát s pevnými SAN, pokiaľ sa k používaniu nového modelu neprihlásia. | | `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | Nastavuje správca MITM PRE spustený proces proxy servera (`root-ca` \| `legacy`) — odráža rozhodnutie o migrácii certifikátov; nie je určené na manuálne nastavenie. | | `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | Nastavením na `1` (pravdivá hodnota) odstránite úvodné `sudo` z príkazov MITM na označenie certifikátov za dôveryhodné — pre nasadenia bez oprávnení root alebo s mennými priestormi používateľov, kde prevádzkovateľ označí CA za dôveryhodnú manuálne (napr. prostredníctvom mechanizmu dodatočných certifikátov CA v Node). | | `SKIP_ANTIGRAVITY_DNS` | _(nenastavené)_ | `src/mitm/dns/provision.ts` | Nastavením na `true` úplne preskočíte vytváranie DNS záznamov v `/etc/hosts` pre názvy hostiteľov proxy servera Antigravity — pre kontajnery bez dostupného príkazu sudo alebo oprávnení root. | | `OMNIROUTE_SKIP_DNS_WRITE` | _(nenastavené)_ | `src/mitm/dns/dnsConfig.ts` | Nastavením na `1` preskočíte zápis do súboru hosts pri pridávaní alebo odstraňovaní DNS záznamov — pre izolované testovacie prostredia alebo testovacie prostredia iba na čítanie. | | `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | Ochrana určená iba pre testy/CI: nastavením na `1` sa inštalácia/odinštalovanie dôveryhodnosti certifikátu nevykoná, takže testovací balík nikdy nezmení úložisko dôveryhodných certifikátov operačného systému. Nastavuje sa automaticky pri príprave testov a v pracovných postupoch CI. | | `CHANGELOG_BASE_REF` | _(automaticky)_ | `scripts/check/check-changelog-integrity.mjs` | Explicitná základná referencia pre kontrolu proti odstráneniu obsahu súboru CHANGELOG (predvolene základná vetva PR v CI alebo najvyššia `release/v*`). | | `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | Nastavením na `true` povolíte plánovač automatickej synchronizácie fondu bezplatných proxy serverov na pozadí. Vyžaduje explicitné povolenie, predvolene je vypnutý. | | `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | Interval automatickej synchronizácie v milisekundách (predvolene 30 min). | | `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | Povolí zdroj bezplatných proxy serverov 1proxy. Nastavením na `false` ho zakážete. | | `FREE_PROXY_1PROXY_API_URL` | _(pozrite si oneproxy.ts)_ | `src/lib/freeProxyProviders/oneproxy.ts` | Prepísanie adresy URL rozhrania API služby 1proxy. | | `FREE_PROXY_1PROXY_MAX` | `500` | `src/lib/freeProxyProviders/oneproxy.ts` | Maximálny počet proxy serverov načítaných pri každej synchronizácii zo služby 1proxy. | | `FREE_PROXY_1PROXY_MIN_QUALITY` | `50` | `src/lib/freeProxyProviders/oneproxy.ts` | Minimálna prahová hodnota skóre kvality pre importy zo služby 1proxy. | | `FREE_PROXY_PROXIFLY_ENABLED` | `true` | `src/lib/freeProxyProviders/proxifly.ts` | Povolí zdroj bezplatných proxy serverov Proxifly. Nastavením na `false` ho zakážete. | | `FREE_PROXY_PROXIFLY_QUANTITY` | `100` | `src/lib/freeProxyProviders/proxifly.ts` | Počet proxy serverov, ktoré sa majú načítať pri každej synchronizácii so službou Proxifly. | | `FREE_PROXY_PROXIFLY_ANONYMITY` | `elite` | `src/lib/freeProxyProviders/proxifly.ts` | Filter úrovne anonymity pre Proxifly (`elite`, `anonymous`, `transparent`). | | `FREE_PROXY_IPLOCATE_ENABLED` | `false` | `src/lib/freeProxyProviders/iplocate.ts` | Povolenie bezplatného zdroja proxy serverov IPLocate. Aktivuje sa iba explicitne. | | `FREE_PROXY_IPLOCATE_BASE_URL` | `https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols` | `src/lib/freeProxyProviders/iplocate.ts` | Prepísanie základnej adresy URL zoznamu proxy serverov IPLocate. | | `FREE_PROXY_WEBSHARE_ENABLED` | `true` | `src/lib/freeProxyProviders/webshare.ts` | Povolenie zdroja fondu proxy serverov Webshare. Nastavením na `false` ho zakážete; zároveň musí byť nastavená premenná `FREE_PROXY_WEBSHARE_API_KEY`. | | `FREE_PROXY_WEBSHARE_API_KEY` | _(žiadna)_ | `src/lib/freeProxyProviders/webshare.ts` | Token API účtu Webshare (`Authorization: Token `). Povinné — bez neho zostane poskytovateľ zakázaný. | | `FREE_PROXY_WEBSHARE_API_URL` | `https://proxy.webshare.io/api/v2/proxy/list/` | `src/lib/freeProxyProviders/webshare.ts` | Prepísanie adresy URL rozhrania API zoznamu proxy serverov Webshare. | | `FREE_PROXY_WEBSHARE_MAX` | `500` | `src/lib/freeProxyProviders/webshare.ts` | Maximálny počet proxy serverov importovaných pri jednej synchronizácii so službou Webshare. | | `NEXT_PUBLIC_VERCEL_RELAY_ENABLED` | `true` | `src/app/(dashboard)/…/ProxyPoolTab.tsx` | Zobrazenie/skrytie tlačidla nasadenia Vercel Relay na karte fondu proxy serverov. | | `VERCEL_API_BASE` | `https://api.vercel.com` | `src/app/api/settings/proxy/vercel-deploy/route.ts` | Prepísanie základnej adresy URL rozhrania Vercel API (na testovanie). | | `NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/…/VercelRelayModal.tsx` | Predvolený názov projektu vopred vyplnený v modálnom okne nasadenia Vercel Relay. | | `TAILSCALE_BIN` | _(automatická detekcia)_ | `src/lib/tailscaleTunnel.ts` | Explicitná cesta k binárnemu súboru `tailscale`. | | `TAILSCALED_BIN` | _(automatická detekcia)_ | `src/lib/tailscaleTunnel.ts` | Explicitná cesta k binárnemu súboru démona `tailscaled`. | | `TAILSCALE_AUTHKEY` | _(nenastavené)_ | `src/lib/tailscaleTunnel.ts` | Vopred zdieľaný autentifikačný kľúč Tailscale pre neinteraktívny režim alebo režim bez grafického rozhrania príkazu `tailscale up` (odovzdaný prostredníctvom `--auth-key=`). Ak nie je nastavený, prihlásenie použije interaktívnu autentifikačnú URL adresu v prehliadači. | | `NGROK_AUTHTOKEN` | _(nenastavené)_ | `src/lib/ngrokTunnel.ts` | Overuje odchádzajúce tunely ngrok. | | `DB_BACKUP_MAX_FILES` | `20` | `src/lib/db/backup.ts` | Maximálny počet záložných súborov SQLite uchovávaných pri manuálnom alebo plánovanom čistení záloh. Snímky migrácií sú adresované podľa obsahu a pri identickom stave databázy sa opätovne používajú; počas súbežného okna migrácie sa neodstraňujú. Prepíše hodnotu uloženú v časti Nastavenia → Uchovávanie záloh databázy. | | `DB_BACKUP_RETENTION_DAYS` | `0` | `src/lib/db/backup.ts` | Maximálny vek (v dňoch) záloh uchovávaných pri manuálnom alebo plánovanom čistení. Hodnota `0` deaktivuje odstraňovanie podľa veku. Snímky migrácií sa počas súbežného okna migrácie neodstraňujú. Prepíše hodnotu uloženú v časti Nastavenia → Uchovávanie záloh databázy. | | `OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS` | `30000` | `src/lib/jobs/backupScheduleJob.ts` | Interval aktivácie (v ms) úlohy na strane servera, ktorá vykonáva `backup-schedule.json`. Musí zostať výrazne pod 1-minútovou granularitou cronu; hodnoty menšie ako `5000` alebo hodnoty, ktoré nemožno analyzovať, sa nahradia predvolenou hodnotou `30000`. | | `CONTAINER_HOST` | `docker` | `scripts/check-permissions.sh` | Pomocný údaj o prostredí kontajnerov pre kontrolu oprávnení vstupného bodu. Pre ľubovoľnú topológiu Podman nastavte hodnotu `podman`. Keďže kontajner nedokáže určiť, či je engine lokálny alebo dostupný prostredníctvom Podman Machine, upozornenie zostáva neutrálne voči topológii a odkazuje na `contrib/podman/README.md`. | | `QUOTA_STORE_DRIVER` | `sqlite` | `src/lib/quota/storeFactory.ts` | Backend úložiska spotreby zdieľaných kvót: `sqlite` (predvolené) alebo `redis`. | | `QUOTA_STORE_REDIS_URL` | _(nenastavené)_ | `src/lib/quota/storeFactory.ts` | Reťazec pripojenia k Redis používaný pri nastavení `QUOTA_STORE_DRIVER=redis` (napr. `redis://localhost:6379`). | | `QUOTA_SATURATION_THRESHOLD` | `0.5` | `src/lib/quota/enforce.ts` | Pomer saturácie fondu (0..1); pri dosiahnutí alebo prekročení tejto hodnoty fond prejde do prísneho režimu (bez vypožičiavania). | | `QUOTA_SOFT_DEPRIORITIZE_FACTOR` | `0.7` | `open-sse/services/combo.ts` | Násobiteľ skóre (0..1), ktorý sa použije na cieľ, keď ho politika mäkkej kvóty odsunie na nižšiu prioritu. | | `STATUS_SOFT_DEPRIORITIZE_FACTOR` | `0.5` | `open-sse/services/combo/autoStrategy.ts` | Násobiteľ skóre (0..1), ktorý sa použije na vyčerpaného poskytovateľa (`credits_exhausted`/`rate_limited`) pri vyhodnocovaní automatickej kombinácie, keď je predbežné pevné obmedzenie kvóty VYPNUTÉ (#4540). | | `QUOTA_CONSUMPTION_RETENTION_DAYS` | `14` | `src/lib/db/quotaConsumption.ts` | Doba uchovávania (v dňoch) intervalov `quota_consumption` pred ich vyčistením prostredníctvom GC (`gcQuotaConsumption`). | | `QUOTA_PREFLIGHT_CUTOFF_ENABLED` | `false` | `src/lib/resilience/settings.ts` | Voliteľná funkcia (predvolene VYPNUTÁ): povoľuje pevné obmedzenie kvóty automatického smerovania, ktoré pred vyhodnotením vyradí kandidátov s nízkou kvótou. | | `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | Voliteľná funkcia (predvolene VYPNUTÁ): keď filter `auto/:` nenájde žiadnych pripojených kandidátov, obnoví staršie správanie, pri ktorom sa namiesto vrátenia prázdneho fondu použije úplný (nefiltrovaný) fond. Predvolené nastavenie VYPNUTÉ znamená, že `:free` označuje „iba bezplatnú úroveň“. | | `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | Horný limit veľkosti panela (obmedzený na 1–10) pre variant vysielania `auto/*:chaos` — jedna požiadavka sa rozvetví najviac na tento počet modelov od rôznych poskytovateľov. | | `OMNIROUTE_CHAOS_MIN_PANEL` | _(predvolené nastavenie jadra)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Nastavenie minimálnej veľkosti panela odovzdané obslužnému programu vysielania chaos; ak nie je nastavené, zachová sa predvolené nastavenie jadra. | | `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(predvolené nastavenie jadra)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Pevný časový limit (ms) pre celé rozvetvenie panela chaos; ak nie je nastavený, zachová sa predvolené nastavenie jadra. | | `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | Cesta k súboru `auth.json` nástroja Grok CLI, ktorý sa používa na načítanie týždennej kvóty grok-web; možno ju prepísať na účely testovania alebo pri neštandardnej inštalácii CLI. | | `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(nenastavené)_ | `src/mitm/manager.ts` | Dodatočný certifikát CA (PEM), ktorému sa dôveruje pri upstreamových pripojeniach TLS služby AgentBridge. | | `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Maximálny počet zachytených požiadaviek uchovávaných v kruhovej vyrovnávacej pamäti nástroja Traffic Inspector. | | `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | Maximálna veľkosť tela zachytenej požiadavky/odpovede (KB) pred skrátením. | | `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Lokálny port pre HTTP proxy nástroja Traffic Inspector. | | `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | Automaticky spustiť HTTP proxy inšpektora pri štarte. | | `INSPECTOR_TLS_INTERCEPT` | `false` | `src/lib/inspector/captureState.ts` | Povoliť zachytávanie TLS (MITM) pre zachytenú komunikáciu HTTPS. | | `INSPECTOR_LLM_HOSTS_EXTRA` | _(nenastavené)_ | `src/lib/inspector/captureState.ts` | Dodatočné názvy hostiteľov (oddelené čiarkami), ktoré sa pri zachytávaní považujú za koncové body LLM. | | `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | Maskovať citlivé údaje (autorizačné hlavičky/kľúče API) v zachytenej komunikácii. | | `INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES` | `30` | `src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts` | Počet minút, po ktorých ochrana systémového proxy automaticky vráti nastavenia proxy operačného systému do pôvodného stavu. | | `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(automaticky)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | Token na overenie interného príjmu zachytených údajov do inšpektora. | | `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Maximálny počet stĺpcov vedľa seba v režime porovnávania Playground. | | `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(nenastavené)_ | `src/app/(dashboard)/dashboard/playground/` | Predvolený model pre akciu „vylepšiť prompt“ v Playground (ak nie je nastavený, použije sa aktívny model). | | `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Hlavný núdzový vypínač pre proxy sidecar Bifrost. Pri nastavení na `0` trasa vráti stav 503 s hlavičkou `X-Bifrost-Killswitch` a operátor je presmerovaný na cestu TS. Používa sa na deaktiváciu sidecaru bez opätovného nasadenia (incident smerovača úrovne 1, rotácia kľúčov). | | `BIFROST_BASE_URL` | _(nenastavené)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Keď je nastavená, trasa proxy sidecaru Bifrost preposiela prevádzku `/v1/chat/completions` do tejto brány Go namiesto obslužného programu relay TS. Nenastavené → 503 s náhradnou cestou. Koncová lomka sa odstráni. | | `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | Port, na ktorý sa viaže spravovaná vstavaná služba Bifrost (`127.0.0.1:`), keď OmniRoute riadi životný cyklus sidecaru Bifrost. Predvolená hodnota je `8080`. | | `BIFROST_API_KEY` | _(nenastavené)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Kľúč API pre bránu Bifrost (odosiela sa ako `Authorization: Bearer ...`). Ak nie je nastavený, trasa očakáva, že požiadavka bude obsahovať platný kľúč API OmniRoute; tento kľúč slúži iba na autentifikáciu na strane brány. | | `BIFROST_STREAMING_ENABLED` | `true` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Ak je nastavená hodnota true, trasa sidecaru Bifrost streamuje odpovede späť cez SSE prostredníctvom brány namiesto streamovacieho vykonávacieho modulu TS. Nastavením na `0` sa vynútia nestreamované odpovede JSON prostredníctvom brány. | | `BIFROST_TIMEOUT_MS` | `30000` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Časový limit jednotlivých požiadaviek pri proxyovaní do brány Bifrost (ms). Po uplynutí časového limitu trasa vráti cestu relay TS prostredníctvom hlavičky `X-Bifrost-Fallback`. | | `OMNIROUTE_BIFROST_KEY` | _(nenastavené)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Alias pre `BIFROST_API_KEY` (používaný skriptmi, ktoré čítajú prostredie cez `OMNIROUTE_*`). Ak sú nastavené obe hodnoty, `BIFROST_API_KEY` má prednosť. | | `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Backend relay pre `/api/v1/relay/chat/completions`: `ts \| bifrost \| auto`. `ts` = relay TypeScript (predvolené, keď Bifrost nie je nakonfigurovaný); `auto` vyberie Bifrost, keď je nastavená premenná `BIFROST_BASE_URL` a `BIFROST_ENABLED` ≠ `0`, s automatickým návratom na TS, ak je sidecar nedostupný; `bifrost` vynúti Bifrost (striktný režim bez náhradnej cesty). Autentifikácia, obmedzenie frekvencie, ochrana pred vložením a zoznam povolených položiek sa vždy najskôr vykonajú v trase Next. Odpovede obsahujú `X-Routing-Backend` / `X-Routing-Fallback` / `X-Routing-Fallback-Reason`. | | `RELAY_ROUTING_BACKEND` | _(nenastavené)_ | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Akceptovaný alias pre `OMNIROUTE_RELAY_BACKEND` (rovnaké hodnoty `ts \| bifrost \| auto`). Ak sú nastavené obe premenné, `OMNIROUTE_RELAY_BACKEND` má prednosť. | | `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | Doba čakania (ms) po zlyhaní prechodu cez postranný proces Bifrost v režime `auto`, kým sa relay znova pokúsi použiť postranný proces; počas tejto doby smeruje priamo na cestu TS a potom vykoná ďalší test. Hodnota `0` túto funkciu vypne. Platí iba vtedy, keď je nastavené `OMNIROUTE_RELAY_BACKEND=auto`. | | `OMNIROUTE_TLS_CERT` | _(nenastavené)_ | `bin/cli/commands/serve.mjs` | Cesta k certifikátu TLS vo formáte PEM na poskytovanie `omniroute serve` cez HTTPS (ekvivalent možnosti `--tls-cert`). Musí sa použiť spolu s `OMNIROUTE_TLS_KEY`; samostatný server potom ukončuje TLS na rovnakom posluchovom porte (`wss://` funguje bez zmeny). Nenastavené → obyčajné HTTP. Ak zadáte iba certifikát alebo kľúč, prípadne nečitateľnú cestu, zaznamená sa upozornenie a zostane sa pri HTTP. | | `OMNIROUTE_TLS_KEY` | _(nenastavené)_ | `bin/cli/commands/serve.mjs` | Cesta k súkromnému kľúču TLS vo formáte PEM pre HTTPS v `omniroute serve` (ekvivalent možnosti `--tls-key`). Musí sa použiť spolu s `OMNIROUTE_TLS_CERT`. Pozrite si `OMNIROUTE_TLS_CERT`. | | `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | Hlavný prepínač pre trasy `/api/local/*`. Keď nie je nastavený alebo má hodnotu `0`, všetky trasy `/api/local/*` vracajú v produkčnom prostredí stav 503. V nasadeniach mimo rozhrania loopback musí mať hodnotu `1`, aby sa povolil spúšťač Redis a podobné nástroje na spustenie lokálnych služieb jedným kliknutím. Slúži ako dodatočná ochrana spolu s klasifikáciou strážcu trás `isLocalOnlyPath()` (`LOCAL_ONLY_API_PREFIXES` v `src/server/authz/routeGuard.ts`). | | `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(nenastavené)_ | `src/lib/security/localEndpoints.ts` | Bearer token pre volajúcich `/api/local/*`, ktorí nepoužívajú rozhranie loopback (napr. desktopová aplikácia). Ak je nastavený, požiadavky z IP adries mimo rozhrania loopback musia obsahovať `Authorization: Bearer `. Vyžaduje sa, keď je v nasadeniach mimo rozhrania loopback nastavené `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1`. | | `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | Názov kontajnera pre spúšťač Redis jedným kliknutím (`omniroute redis up`). Používa ho rozhranie CLI aj grafické rozhranie `RedisLauncherPanel`. | | `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | Port hostiteľa pre spúšťač Redis jedným kliknutím. Ak hostiteľ už používa port 6379, nastavte inú hodnotu. Interný port kontajnera zostáva 6379. | | `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | Rozhranie hostiteľa, na ktorom spúšťač Redis jedným kliknutím zverejňuje službu. Spúšťač spúšťa Redis BEZ hesla, takže väzba na `0.0.0.0` poskytne každému hostiteľovi vo vašej sieti LAN neoverený prístup k Redis — túto väzbu rozšírte iba vtedy, ak pre danú inštanciu sami nastavíte aj heslo. | | `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Rozhranie hostiteľa, na ktorom docker-compose zverejňuje postranný proces Redis (#9286). Redis v compose funguje bez `requirepass`; kontajnery aplikácie k nemu pristupujú cez sieť compose (`redis:6379`) — zverejnený port existuje iba pre nástroje na strane hostiteľa. Hodnota `0.0.0.0` sprístupní neoverený Redis celej sieti LAN. | | `REDIS_PORT` | `6379` | `docker-compose.yml` | Port hostiteľa pre sprievodný kontajner Redis v compose. | | `APP_BIND_HOST` | `127.0.0.1` | `docker-compose.yml`, `docker-compose.prod.yml` | Rozhranie hostiteľa, na ktorom docker-compose zverejňuje vlastné porty aplikácie pre ovládací panel/API/live-WS (#12568). Keďže sa `REQUIRE_API_KEY=false` dodáva ako predvolená hodnota v `.env.example`, `0.0.0.0` sprístupní anonymný LLM proxy `/v1` celej sieti LAN/WAN — rozsah rozšírte až po nastavení `REQUIRE_API_KEY=true` alebo ak reverzný proxy pred ním vynucuje vlastné overovanie. | | `QDRANT_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Rozhranie hostiteľa, na ktorom docker-compose zverejňuje sprievodný kontajner pamäte Qdrant (#12578). Platí rovnaké odôvodnenie sprístupnenia v sieti LAN ako pri `REDIS_BIND_HOST`. | | `BIFROST_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Rozhranie hostiteľa, na ktorom docker-compose zverejňuje sprievodný kontajner smerovača Bifrost (#12578). Platí rovnaké odôvodnenie sprístupnenia v sieti LAN ako pri `REDIS_BIND_HOST`. | | `REDIS_KEY_PREFIX` | `omniroute:` | `src/shared/utils/rateLimiter.ts` | Prefix menného priestoru aplikovaný na každý kľúč OmniRoute v Redis (obmedzovač frekvencie, vyrovnávacia pamäť overovania, úložisko kvót, istič zahrievania). Zabraňuje kolíziám kľúčov, keď je inštancia Redis zdieľaná s inými aplikáciami (#11042). | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | _(nenastavené — mechanizmus je vypnutý)_ | `src/lib/api/internalServiceAuth.ts` | Zdieľaný tajný údaj na interné volania REST so zachovaním identity (#9260): komponenty OmniRoute volajúce iné lokálne trasy OmniRoute ho odosielajú ako `x-omniroute-internal-service-token`, aby sa zachovala identita pôvodného volajúceho. Porovnáva sa pomocou `timingSafeEqual`. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | _(nenastavené)_ | `src/lib/api/internalServiceAuth.ts` | Variant interného servisného tokenu zo súboru s tajným údajom: cesta k súboru, ktorého obsah po odstránení okolitých medzier predstavuje token. Použije sa iba vtedy, keď premenná s vloženou hodnotou nie je nastavená. | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | `src/lib/catalog/openrouterProviderStats.ts` | Obohatí zoznam poskytovateľov na ovládacom paneli o štatistiky týždenného poradia OpenRouter (#9324). Predvolene je zapnuté; nastavením na `false` sa načítanie na pozadí úplne preskočí (neblokujúce, nikdy nie kritické). | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterProviderStats.ts` | TTL vyrovnávacej pamäte snímky štatistík poskytovateľov OpenRouter v milisekundách. | | `OMNIROUTE_REDIS_IMAGE` | `redis:7-alpine` | `bin/cli/commands/redis.mjs` | Obraz Redis používaný spúšťačom Redis na jedno kliknutie. Podľa potreby ho prepíšte na `redis:8-alpine` alebo zrkadlo súkromného registra. | | `QDRANT_HOST` | `qdrant` | _(voliteľný profil klastra)_ | Názov hostiteľa sidecar kontajnera Qdrant, keď je aktívny profil `--profile memory`. Predvolená hodnota odkazuje na názov služby qdrant v internej sieti; pri externom nasadení ju prepíšte. Používa sa iba vtedy, keď je `qdrantEnabled` v kóde nastavené na `true` (`src/lib/memory/vectorStore.ts:108`). | | `QDRANT_PORT` | `6333` | _(voliteľný profil klastra)_ | Port REST sidecar kontajnera Qdrant. | | `QDRANT_GRPC_PORT` | `6334` | _(voliteľný profil klastra)_ | Port gRPC sidecar kontajnera Qdrant. Používajú ho klientske knižnice, ktoré pri streamovacích operáciách uprednostňujú gRPC pred REST. | | `QDRANT_API_KEY` | _(nenastavené)_ | _(voliteľný profil klastra)_ | Voliteľný kľúč API pre Qdrant Cloud alebo autentifikovanú lokálnu inštanciu. Prázdna hodnota → hlavička `api-key` sa neodošle. | | `QDRANT_COLLECTION` | `omniroute-memory` | _(voliteľný profil klastra)_ | Názov kolekcie pre vektorové reprezentácie pamäte konverzácií OmniRoute. Vytvorí sa pri prvom spustení s počtom rozmerov určeným hodnotou `QDRANT_VECTOR_SIZE`. | | `QDRANT_EMBEDDING_MODEL` | `text-embedding-3-small` | _(voliteľný profil klastra)_ | Názov predvoleného modelu vektorových reprezentácií zaznamenaný v metadátach kolekcie Qdrant. Samotné vektorové reprezentácie generuje poskytovateľ, na ktorého odkazuje pole `embeddingModel` v nastaveniach OmniRoute. | | `QDRANT_VECTOR_SIZE` | `1536` | _(voliteľný profil klastra)_ | Rozmer vektora vektorových reprezentácií. Musí zodpovedať modelu, pomocou ktorého vytvárate vektorové reprezentácie (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768). | | `QDRANT_HNSW_EF_CONSTRUCT` | `128` | _(voliteľný profil klastra)_ | Presnosť pri vytváraní indexu HNSW. Vyššia hodnota = pomalšie zostavenie, rýchlejšie vyhľadávanie. | | `OMNIROUTE_ROTATION_ENABLED` | `true` | `open-sse/services/rotationConfig.ts` | Hlavný prepínač rotácie účtov konfigurovateľnej operátorom. Keď je nastavený na `false`, žiadna z nižšie uvedených tried `OMNIROUTE_ROTATE_*` nespustí prechod na záložný účet (vypnutý hlavný prepínač blokuje aj predvolene povolené triedy 429/500/502). Umožňuje nadradenému front-endu (napr. desktopovej aplikácii VibeProxy) premietnuť vlastné pravidlá rotácie do mechanizmu backendu na prechod medzi účtami. | | `OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS` | `0` | `open-sse/services/rotationConfig.ts` | Čas čakania (v sekundách) uplatnený na účet s obmedzenou frekvenciou požiadaviek, keď nadradená služba neposkytne žiadny explicitný údaj o čase obnovenia. `0` = namiesto pevne nastavenej hodnoty použiť predvolený čas čakania mechanizmu. | | `OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET` | `true` | `open-sse/services/rotationConfig.ts` | Kópia nastavenia front-endu „neoznačovať ako obmedzené rýchlostným limitom bez času obnovenia“. | | `OMNIROUTE_ROTATE_ON_429` | `true` | `open-sse/services/rotationConfig.ts` | Povolenie záložného mechanizmu pre chyby `429` podľa stavového kódu. Keď je nastavené na `false` (a `OMNIROUTE_ROTATION_ENABLED=true`), chyba `429` už nespustí rotáciu účtu a namiesto toho sa vráti klientovi. | | `OMNIROUTE_ROTATE_429_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Počet chýb `429` v rámci intervalu `OMNIROUTE_ROTATE_429_WINDOW_SECONDS`, ktorý je potrebný na spustenie rotácie účtu. Hodnota `1` (predvolená) spustí rotáciu okamžite, čím zachová pôvodné správanie. | | `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné časové okno (v sekundách), počas ktorého sa chyby `429` započítavajú do prahovej hodnoty `OMNIROUTE_ROTATE_429_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_500` | `true` | `open-sse/services/rotationConfig.ts` | Povolenie záložného mechanizmu pre serverové chyby `5xx` podľa stavového kódu (okrem `502`, ktorá má vlastnú triedu). Keď je nastavené na `false`, tieto chyby už nespustia rotáciu účtu. | | `OMNIROUTE_ROTATE_500_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Počet chýb `5xx` v rámci intervalu `OMNIROUTE_ROTATE_500_WINDOW_SECONDS`, ktorý je potrebný na spustenie rotácie účtu. Hodnota `1` (predvolená) spustí rotáciu okamžite. | | `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné časové okno (v sekundách), počas ktorého sa chyby `5xx` započítavajú do prahovej hodnoty `OMNIROUTE_ROTATE_500_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_502` | `true` | `open-sse/services/rotationConfig.ts` | Povolenie záložného mechanizmu pre chyby `502` (chybná brána) podľa stavového kódu. Keď je nastavené na `false`, chyby `502` už nespustia rotáciu účtu. | | `OMNIROUTE_ROTATE_502_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Počet chýb `502` v rámci intervalu `OMNIROUTE_ROTATE_502_WINDOW_SECONDS`, ktorý je potrebný na spustenie rotácie účtu. Hodnota `1` (predvolená) spustí rotáciu okamžite. | | `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné časové okno (v sekundách), počas ktorého sa chyby `502` započítavajú do prahovej hodnoty `OMNIROUTE_ROTATE_502_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | Voliteľné (predvolene VYPNUTÉ): ak je nastavené na `true`, aj obyčajná chyba `400` (neplatná požiadavka) spustí rotáciu účtu. Ide iba o rozšírenie — nikdy neblokuje existujúce správanie enginu, pri ktorom dôjde k prepnutiu po chybe `400` obsahujúcej text o obmedzení frekvencie alebo kvóte bez ohľadu na tento príznak. | | `OMNIROUTE_ROTATE_400_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Počet chýb `400` v rámci intervalu `OMNIROUTE_ROTATE_400_WINDOW_SECONDS`, ktorý je potrebný na spustenie rotácie účtu (zohľadňuje sa iba vtedy, keď je nastavené `OMNIROUTE_ROTATE_ON_400=true`). | | `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné časové okno (v sekundách), počas ktorého sa chyby `400` započítavajú do limitu `OMNIROUTE_ROTATE_400_THRESHOLD`. | ### Plánovač zahrievacích požiadaviek Claude Zahrievacie požiadavky riadené systémom cron pre pripojenia Anthropic OAuth, ktoré sa na ne prihlásili, aby sa 5-hodinové okno obmedzenia frekvencie otvorilo jednoduchou naplánovanou požiadavkou namiesto prvej skutočnej požiadavky (#8848). Plánovač je vypnutý, pokiaľ `OMNIROUTE_WARMUP_ENABLED` nemá pravdivú hodnotu **a zároveň** pripojenie nie je označené v `settings.claudeWarmup.connections`; prázdny zoznam pripojení znamená, že sa nezahrieva nič, ani keď je premenná prostredia zapnutá. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------ | --------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_WARMUP_ENABLED` | _(nenastavené → vypnuté)_ | `src/lib/warmupScheduler.ts` | Hlavný prepínač plánovača zahrievacích požiadaviek. Akceptuje `1`/`true`/`yes`/`on` (bez ohľadu na veľkosť písmen a po odstránení okolitých medzier). Akákoľvek iná hodnota alebo nenastavená premenná ponechá plánovač vypnutý. | | `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | Päťpolový výraz cron pre spustenie zahrievacej požiadavky, vyhodnocovaný v časovom pásme `America/Los_Angeles` (časové pásmo resetovania spoločnosti Anthropic) bez ohľadu na systémový čas hostiteľa. | | `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | Počet pripojení zahrievaných paralelne pri každom spustení. Hodnota je obmedzená na rozsah `1`-`10`; pri nečíselnej hodnote sa použije záložná hodnota `3`. | | `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | Model používaný na zahrievaciu požiadavku. Túto hodnotu prepíšte iba vtedy, ak predvolený model nie je vo vašom pláne dostupný; vyberte najlacnejší model, ktorý stále otvorí príslušné okno. | ### Relácie VNC na prihlásenie cez prehliadač a alias dátového adresára Kontajnerizované Chromium+VNC používané na interaktívne získavanie prihlasovacích údajov cez prehliadač (`/api/vnc-session`) spolu so starším aliasom `DATA_DIR`. Všetky nastavenia sú voliteľné — predvolené hodnoty VNC používajú pribalený obraz `omniroute-vnc-chromium:local` a prepisujú sa iba pri použití vlastného obrazu kontajnera, portov alebo pri ladení životného cyklu. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Značka Docker obrazu pre prihlasovací kontajner Chromium+VNC. Zostavte `docker/vnc-browser/chromium` alebo tu nastavte vlastný obraz. | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Binárny súbor kontajnerového runtime používaný na spustenie VNC kontajnera (napr. nastavte na `podman`). | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Port VNC/noVNC sprístupnený vnútri kontajnera. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Port protokolu Chrome DevTools Protocol vnútri kontajnera. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Cesta k adresáru profilu Chromium vnútri kontajnera. | | `OMNIROUTE_VNC_PROFILE_DIR` | `$HOME/.omniroute/browser-login-profiles` | `src/lib/vncSession/manifest.ts` | Adresár hostiteľa obsahujúci trvalo uložené profily prihlasovania cez prehliadač. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` (10 min) | `src/lib/vncSession/manifest.ts` | Časový limit nečinnosti (ms), po ktorom sa neaktívna relácia VNC ukončí. | | `OMNIROUTE_VNC_MAX_MS` | `1800000` (30 min) | `src/lib/vncSession/manifest.ts` | Pevný limit (ms) životnosti jednej relácie VNC. | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Maximálny počet súbežných relácií VNC. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Časový limit (ms) čakania, kým bude prehliadač v kontajneri pripravený na pripojenie cez CDP. | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Časový limit (ms) na získanie zachytenej relácie/súborov cookie po dokončení prihlásenia. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | `--remote-debugging-port=9222 --no-first-run --no-default-browser-check` | `src/lib/vncSession/manifest.ts` | Dodatočné príznaky príkazového riadka odovzdané prehliadaču Chromium v kontajneri. | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Vyhradená sieť Docker, ku ktorej sa pripája prihlasovací VNC kontajner (#12571) namiesto predvoleného sieťového mosta, aby susedné kontajnery nemohli pristupovať k jeho portu mosta CDP. | | `VIBEPROXY_DATA_DIR` | _(nenastavené)_ | `open-sse/services/notionThreadSessions.ts` | **Starší alias** pre `DATA_DIR`, ktorý sa kontroluje až vtedy, keď nie sú nastavené ani `DATA_DIR`, ani `OMNIROUTE_DATA_DIR`. Určuje umiestnenie vyrovnávacej pamäte relácií webových vlákien služby Notion (`/notion-web-thread-sessions.json`). | --- ## 26. Testovací a E2E mechanizmus Používa sa v súboroch `scripts/dev/run-next-playwright.mjs`, `scripts/dev/smoke-electron-packaged.mjs`, `scripts/dev/run-ecosystem-tests.mjs` a `scripts/build/uninstall.mjs`. V produkčných nasadeniach ponechajte všetky nižšie uvedené hodnoty nenastavené. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | -------------------------------------- | ------------------------------ | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_E2E_BOOTSTRAP_MODE` | `auth` | `scripts/dev/run-next-playwright.mjs` | Režim inicializácie E2E (`auth`, `fresh`, `reuse`) pre spúšťač Playwright. | | `OMNIROUTE_E2E_PASSWORD` | použije sa `INITIAL_PASSWORD` | `scripts/dev/run-next-playwright.mjs` | Heslo správcu vložené do prostredia Playwright. | | `OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Zakáže lokálne cyklické overovanie stavu počas behov Playwright. | | `OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Zakáže slučku overovania stavu tokenov OAuth počas testov. | | `OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS` | _(nenastavené)_ | `src/lib/tokenHealthCheck.ts` | Poskytovatelia oddelení čiarkami, ktorí sú vylúčení z proaktívneho obnovovania tokenov (napr. `codex,openai`). Cielená alternatíva k úplnému zakázaniu overovania stavu — poskytovatelia s krátkou dobou platnosti sa naďalej obnovujú, zatiaľ čo kaskádoví poskytovatelia zostávajú iba reaktívni. | | `OMNIROUTE_HIDE_HEALTHCHECK_LOGS` | `true` | `scripts/dev/run-next-playwright.mjs` | Potlačí nadbytočné záznamy overovania stavu v štandardnom výstupe Playwright. | | `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Preskočí produkčné zostavenie Next.js pred spustením Playwright (optimalizácia CI). | | `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | Preskočí odinštalačný hook OmniRoute (používa sa v CI na zachovanie adresára `node_modules` bez zmien). | | `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | Čas čakania (ms), kým server dosiahne funkčný stav pred spustením ekosystémových/protokolových testov. | | `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | URL, na ktorej mechanizmus smoke testov Electron očakáva sprístupnenie zabalenej aplikácie. | | `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | Celkový časový limit (ms), po ktorom mechanizmus smoke testov prestane čakať. | | `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | Čas na ustálenie (ms) po načítaní stránky. | | `ELECTRON_SMOKE_APP_EXECUTABLE` | _(automaticky)_ | `scripts/dev/smoke-electron-packaged.mjs` | Explicitná cesta k spustiteľnému súboru zabalenej aplikácie Electron. | | `ELECTRON_SMOKE_DATA_DIR` | _(tmpdir)_ | `scripts/dev/smoke-electron-packaged.mjs` | Dátový adresár pre smoke test Electron. | | `ELECTRON_SMOKE_KEEP_DATA` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Nastavte na `1`, ak chcete po spustení zachovať dátový adresár smoke testu. | | `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Nastavte na `1`, ak chcete počas behu streamovať protokoly Electronu na štandardný výstup. | | `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: znova spustí aplikáciu s rovnakým dátovým adresárom a overí, že druhé spustenie vyberie natívny ovládač SQLite. | | `CLI_DEVIN_BIN` | _(vyhľadanie v PATH)_ | `open-sse/executors/devin-cli.ts` | Prepíše cestu k binárnemu súboru Devin CLI. | ### Proces prekladu dokumentácie Používa ho `scripts/i18n/run-translation.mjs` (príkaz `npm run i18n:run`). Všetkých päť premenných je predvolene nenastavených — nastavte ich v `.env` iba na počítačoch, na ktorých má byť možné spustiť prekladač dokumentácie. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------------------- | ------------------ | ---------------------------------- | ------------------------------------------------------------------------- | | `OMNIROUTE_TRANSLATION_API_URL` | _(nenastavené)_ | `scripts/i18n/run-translation.mjs` | Základná adresa URL kompatibilná s OpenAI pre backend prekladu. | | `OMNIROUTE_TRANSLATION_API_KEY` | _(nenastavené)_ | `scripts/i18n/run-translation.mjs` | Bearer token pre backend prekladu (nikdy sa nezaznamenáva do protokolu). | | `OMNIROUTE_TRANSLATION_MODEL` | _(nenastavené)_ | `scripts/i18n/run-translation.mjs` | ID modelu, napr. `gpt-4o-mini` alebo `cx/gpt-5.4-mini`. | | `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | Časový limit jednej požiadavky v milisekundách. | | `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | Paralelné požiadavky na preklad pri spracovaní viacerých súborov/lokalít. | --- ## 27. Radar Feed (Vlastný hosting) Voliteľný doplnok riadený príznakom funkcie RADAR_ENABLED (predvolene vypnutý — príznak funkcie prepínaný cez Nastavenia/DB, nie premenná prostredia; pozrite si [docs/frameworks/RADAR.md](../frameworks/RADAR.md#flag-radar_enabled-default-off)). Prvé štyri premenné uvedené nižšie predstavujú voliteľné prepísania pre vlastný hosting alebo fork zdroja a postupy získania kľúča podporovateľa. Piata premenná, `RADAR_ADMIN_URL`, je samostatný odkaz bez predvolenej hodnoty na súkromný prevádzkový panel vlastníka. Úplnú dokumentáciu modulu a jeho [kompletnú sekvenciu aktivácie a sprievodného nastavenia](../frameworks/RADAR.md#end-to-end-activation-and-guided-setup) nájdete v súbore [docs/frameworks/RADAR.md](../frameworks/RADAR.md). Všeobecná čítačka oznámení na domovskej stránke a v zozname zmien sa nekonfiguruje pomocou premennej prostredia a nezávisí od príznaku funkcie RADAR_ENABLED. Verejnú URL súboru `news.json` deklarovanú v `src/shared/utils/releaseNotes.ts` načítava iba prostredníctvom GET; identifikátory odmietnutých oznámení zostávajú v lokálnom úložisku prehliadača. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ----------------------------- | -------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `RADAR_FEED_URL` | `https://radar.omniroute.online` | `src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts` | Základná URL zdieľaná samostatne podpísanými zdrojmi katalógu, odporúčaní, ponúk pre podporovateľov a Intel. Prepísaním ju nasmerujete na službu prevádzkovanú na vlastnom hostingu alebo na jej fork. | | `RADAR_FEED_PUBKEY` | _(pripnutý predvolený kľúč)_ | `src/lib/radar/pinnedKeys.ts` | Verejný kľúč Ed25519 (SPKI vo formáte base64-DER alebo PEM) používaný na overenie podpisov z vlastného zdroja. | | `RADAR_CONTRIBUTOR_CLAIM_URL` | `https://radar.omniroute.online/auth/github` | `src/lib/radar/links.ts` | URL, ktorú otvorí tlačidlo „Som prispievateľ“ na ovládacom paneli (postup získania kľúča podporovateľa cez GitHub OAuth). | | `RADAR_SUPPORTER_PLANS_URL` | `https://radar.omniroute.online/planos` | `src/lib/radar/links.ts` | URL, ktorú otvorí tlačidlo „Podporiť projekt“ na ovládacom paneli (stránka platieb/plánov). | | `RADAR_ADMIN_URL` | _(nenastavené)_ | `src/lib/radar/links.ts` | Súkromný odkaz na prevádzkový panel určený iba vlastníkovi. Vyžaduje sa HTTPS s výnimkou HTTP slučky preposielanej cez SSH; pri nenastavenej alebo neplatnej hodnote sa nevytvorí žiadna navigačná položka. | --- ## Audit: Odstránené / nepoužívané premenné Nasledujúce premenné sa nachádzali v predchádzajúcich verziách súboru `.env.example`, ale v aktuálnom zdrojovom kóde na ne **neexistujú žiadne odkazy za behu programu**. Boli odstránené: | Premenná | Dôvod | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `STORAGE_DRIVER=sqlite` | Nikdy ju nečíta žiadny zdrojový súbor. SQLite je jediný podporovaný ovládač — výber nie je potrebný. | | `INSTANCE_NAME=omniroute` | Nachádza sa v starej dokumentácii/šablónach prostredia, ale počas behu sa nepoužíva. Môže sa vrátiť v budúcej funkcii podpory viacerých inštancií. | | `SQLITE_MAX_SIZE_MB=2048` | V zdrojovom kóde sa na ňu neodkazuje. Veľkosť databázy nie je umelo obmedzená. | | `SQLITE_CLEAN_LEGACY_FILES=true` | V zdrojovom kóde sa na ňu neodkazuje. Čistenie starších súborov bolo pravdepodobne odstránené. | | `CLI_ROO_BIN` | Nie je zaregistrovaná v `src/shared/services/cliRuntime.ts`. | | `CLI_KIMI_CODING_BIN` | Nie je zaregistrovaná v `src/shared/services/cliRuntime.ts` (Kimi Coding používa OAuth, nie binárny súbor CLI). | | `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | Nikde v zdrojovom kóde sa na ne neodkazuje. | | `CEREBRAS_API_KEY` / `COHERE_API_KEY` / `FIREWORKS_API_KEY` / `GROQ_API_KEY` / `MISTRAL_API_KEY` / `NEBIUS_API_KEY` / `PERPLEXITY_API_KEY` / `TOGETHER_API_KEY` / `XAI_API_KEY` | Odstránené vo verzii v3.8.0. Aplikácia už tieto premenné prostredia nečíta — prihlasovacie údaje pochádzajú z Dashboard / `data/provider-credentials.json` / šifrovanej databázy. | | `CURSOR_PROTOBUF_DEBUG` | Odstránená vo verzii v3.8.0. Vykonávací modul Cursor používa `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` (pozrite si §22). | | `CLI_COMPAT_KIRO` | Odstránená vo verzii v3.8.0. Kiro sa nachádza v `CLI_COMPAT_OMITTED_PROVIDER_IDS` — jej prepínač nemá žiadny účinok. | | `QIANFAN_API_KEY` | Odstránená spolu s ostatnými nepoužívanými zástupnými premennými pre kľúče API poskytovateľov vo verzii v3.8.0. | ### Opravy predvolených hodnôt | Premenná | Stará hodnota v `.env.example` | Skutočná predvolená hodnota v kóde | Oprava | | ------------------------- | ------------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------ | | `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Zavádzajúca hodnota bola odstránená; `7` je zdokumentovaná ako predvolená hodnota | | `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Zavádzajúca hodnota bola odstránená; `7` je zdokumentovaná ako predvolená hodnota | ### Opätovné generovanie konfigurácie OpenCode (ad hoc nástroje) Používa ho skript `scripts/ad-hoc/regen-opencode-config.ts` na opätovné vygenerovanie súboru `opencode.json` s presnými hodnotami `limit.context` a `limit.output` získanými zo spustenej inštancie OmniRoute. Žiadna z nich nie je potrebná na bežnú prevádzku — skript slúži iba ako vývojársky nástroj. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------ | ------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_URL` | `http://localhost:20128` | `scripts/ad-hoc/regen-opencode-config.ts` | Základná URL adresa inštancie OmniRoute, ktorá sa má dotazovať na `/v1/models`. | | `OMNIROUTE_KEY` | _(nenastavené)_ | `scripts/ad-hoc/regen-opencode-config.ts` | Kľúč API na autentifikáciu voči koncovému bodu OmniRoute `/v1/models`. Ak nie je nastavený, použije sa `OPENCODE_API_KEY`. | | `OPENCODE_API_KEY` | _(nenastavené)_ | `scripts/ad-hoc/regen-opencode-config.ts` | Kľúč API v štýle OpenCode (`sk-...`), ktorý sa zapíše do znovu vygenerovaného súboru `opencode.json`. Ak nie je nastavený, použije sa `OMNIROUTE_KEY`. | ### Nástroj na offline vyhodnocovanie kompresie (ad hoc nástroje) Používa ho `scripts/compression-eval/index.ts`, CLI na offline vyhodnocovanie kompresie. Nie je potrebný na bežnú prevádzku — slúži iba ako vývojársky nástroj. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ---------------------------- | ------------------ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (prázdne) | `scripts/compression-eval/index.ts` | Operátorom poskytnuté prihlasovacie údaje JSON pre poskytovateľa používaného CLI na offline vyhodnocovanie kompresie (spracované pomocou `JSON.parse`). Pre skúšobné spustenie ponechajte nenastavené. | ### Relácie prehliadača VNC Používa ich `src/lib/vncSession/manifest.ts` na konfiguráciu bezobslužných relácií Chromium založených na Dockeri pre poskytovateľov automatizácie prehliadača. Všetky sú voliteľné — predvolené hodnoty sú uvedené nižšie. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------- | ------------------------------ | ------------------------------------------- | ---------------------------------------------------------------------------------------- | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Cesta k binárnemu súboru Docker používanému na spúšťanie kontajnerov VNC. | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Obraz Docker pre kontajner VNC Chromium. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | _(vstavané príznaky)_ | `src/lib/vncSession/manifest.ts` | Dodatočné argumenty CLI pre Chromium odovzdané prehliadaču v kontajneri. | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Port VNC vnútri kontajnera. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Port protokolu Chrome DevTools vnútri kontajnera. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Adresár profilu vnútri kontajnera. | | `OMNIROUTE_VNC_PROFILE_DIR` | _(nenastavené)_ | `src/lib/vncSession/manifest.ts` | Adresár na strane hostiteľa pre trvalé profily prehliadača. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` | `src/lib/vncSession/manifest.ts` | Časový limit nečinnosti (ms), po ktorom sa relácia VNC ukončí a zozbierajú sa jej údaje. | | `OMNIROUTE_VNC_MAX_MS` | `1800000` | `src/lib/vncSession/manifest.ts` | Maximálne trvanie relácie (ms). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Maximálny počet súbežných relácií VNC. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Časový limit pripravenosti prehliadača (ms). | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Časový limit zberu údajov/vyčistenia (ms). | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Vyhradená sieť Docker, ku ktorej sa kontajner pripája (#12571), mimo predvoleného mosta. | | `VIBEPROXY_DATA_DIR` | _(nenastavené)_ | `open-sse/services/notionThreadSessions.ts` | Adresár na uchovávanie relácií vlákien Notion. | ### Autentifikácia interných služieb | Premenná | Predvolená hodnota | Popis | | --------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | – | Token zadaný priamo v premennej na autentifikáciu medzi službami riadiacej vrstvy. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | – | Cesta k súboru obsahujúcemu token internej služby (preferované v kontajneroch; prepíše priamo zadanú premennú). | ### Štatistiky poskytovateľov OpenRouter | Premenná | Predvolená hodnota | Popis | | ----------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | Nastavte na `false`, ak sa má preskočiť načítanie štatistík jednotlivých poskytovateľov OpenRouter na obohatenie katalógu. | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `3600000` | TTL vyrovnávacej pamäte (ms) pre načítané štatistiky poskytovateľov OpenRouter. | ### Väzba vstavaného Redis | Premenná | Predvolená hodnota | Popis | | --------------------------- | ------------------ | ------------------------------------------------------------------- | | `REDIS_BIND_HOST` | `127.0.0.1` | Adresa väzby pre vstavanú službu Redis. | | `REDIS_PORT` | `6379` | Port pre vstavanú službu Redis. | | `OMNIROUTE_REDIS_BIND_HOST` | – | Prepísanie adresy väzby vstavaného systému Redis v rámci OmniRoute. | --- ## 24. Prírastky vo vydaní v3.8.50 Tieto nastavenia boli zavedené po predchádzajúcej snímke kontraktu prostredia. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | Maximálna doba čakania na slot prijatia výpočtovo náročného chatu pred opakovateľnou chybou `503`; krátke ohraničené čakanie spracuje nárazové požiadavky agentov sekvenčne namiesto okamžitej chyby `503`. Hodnota `0` obnoví okamžité odmietnutie. | | `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Limit bajtov vo fronte pre čakanie na prijatie: obmedzuje celkový počet bajtov tiel uložených vo vyrovnávacej pamäti v rámci celého procesu, aby čakanie nemohlo zvýšiť využitie haldy (#4380). Čakania prekračujúce limit okamžite dostanú opakovateľnú chybu `503`. | | `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 s) | `src/shared/middleware/chatBodyAdmission.ts` | Zastarané nastavenie bez účinku od #10110: prijímacie pruhy pre jednotlivé relácie boli odstránené v prospech jedného limitu pre celý proces. Akceptuje sa kvôli kompatibilite konfigurácie, ale ignoruje sa. | | `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Zastarané nastavenie bez účinku od #10110: prijímacie pruhy pre jednotlivé relácie boli odstránené v prospech jedného limitu pre celý proces. Akceptuje sa kvôli kompatibilite konfigurácie, ale ignoruje sa. | | `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (vypnuté) | `open-sse/services/admission/runtime.ts` | Adaptívne virtuálne prijímacie pruhy za behu (#9654): hlavný prepínač adaptívnej brány pre jednotlivých nájomcov (systém 2). Líši sa od zastaraných premenných pruhov pre jednotlivé pripojenia uvedených vyššie (TTL_MS / MAX_SESSIONS, bez účinku od #10110). Príznak funkcie s rovnakým názvom na ovládacom paneli; premenná prostredia má prednosť pred nastavením na ovládacom paneli; vyžaduje reštart. | | `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | Obmedzuje dobu, počas ktorej volanie okamžitého spustenia čaká na prebiehajúcu úlohu pred spustením úlohy zaradenej do frontu. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | zapnuté | `open-sse/services/adobeFireflySession.ts` | Udržiava stav IMS a stav rizika prehliadača aktuálny prostredníctvom relácií Chrome CDP viazaných na účet; nastavením na `0` túto funkciu vypnete. | | `ADOBE_FIREFLY_SESSION_DISK` | zapnuté | `open-sse/services/adobeFireflySession.ts` | Uchováva opravené relácie Adobe v umiestnení `DATA_DIR`; nastavením na `0` sa stav uchová iba v pamäti. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Minimálny časový odstup medzi odoslaniami požiadaviek na generovanie v službe Adobe Firefly. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Dodatočné obdobie nečinnosti po každom treťom úspešnom odoslaní do služby Adobe. | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Skutočný bezhlavý režim určený iba na ladenie; Adobe colligo zvyčajne odmietne výslednú rizikovú reláciu. | | `CHROME_PATH` | automatická detekcia | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | Voliteľná absolútna cesta k spustiteľnému súboru Chrome, ktorú používajú vykonávacie moduly ovládané prehliadačom, keď automatická detekcia platformy nestačí. | | `TELEGRAM_BOT_TOKEN` | _(nenastavené)_ | `src/lib/telegram/config.ts` | Token služby BotFather, ktorý povoľuje prichádzajúci webhook a podpisuje `initData` miniaplikácie. | | `TELEGRAM_WEBHOOK_SECRET` | _(nenastavené)_ | `src/lib/telegram/config.ts` | Zdieľaný tajný kľúč zaregistrovaný prostredníctvom `setWebhook` a overovaný voči hlavičke `X-Telegram-Bot-Api-Secret-Token` pri každom doručení webhooku. Vyžaduje sa pre cestu webhooku; ak nie je nastavený, doručenia webhooku sa odmietnu s chybou 503. | | `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Model používaný na odpovede v chate Telegramu. | | `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | Prepísanie základnej adresy URL rozhrania Bot API pre proxy servery alebo vlastne hostované servery Bot API. | | `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | Časový limit v milisekundách pre odchádzajúce volania Bot API. | | `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (zapnuté) | `scripts/build/optionalPackStaging.mjs` | Nastavením na `0` sa pri príprave voliteľných balíkov ML/prehliadača pre samostatný strom Electron preskočí vytváranie archívov `.tar.gz` (adresáre balíkov a súbor `optional-packs.index.json` sa naďalej vytvárajú). Používa sa v pracovnom postupe vydania počítačovej aplikácie na zmenšenie veľkosti nahrávaných artefaktov. | ### ChatGPT Web (Codex) Globálne predvolené hodnoty pre bezhlavý prehliadač a odchádzajúci tunel nástrojov. Hodnoty pripojenia nastavené na ovládacom paneli majú prednosť. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CHATGPT_WEB_CODEX_CHROME_PATH` | _(automatická detekcia)_ | `open-sse/executors/chatgpt-web-codex.ts` | Explicitná cesta k prehliadaču Chrome/Chromium pre prevádzku cez npm, systemd a PM2. | | `CHROME_PATH` | _(automatická detekcia)_ | `open-sse/executors/chatgpt-web-codex.ts` | Spoločná záložná možnosť pre explicitnú cestu k prehliadaču Chrome/Chromium. | | `CHATGPT_WEB_CODEX_CDP_URL` | _(nenastavené)_ | `open-sse/executors/chatgpt-web-codex.ts` | Interný koncový bod CDP; Docker používa sprievodný kontajner na porte `9223`. | | `CDP_PROXY_TOKEN` | _(nenastavené)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | Ak je nastavená, každá požiadavka na sprievodný proxy kontajner CDP musí odoslať túto hodnotu v hlavičke `X-Omni-Cdp-Token` (#13679). Bez tejto hodnoty proxy preposiela požiadavky bez overenia totožnosti — v takom prípade poskytuje ochranu iba sieťová izolácia siete Compose `chatgpt-web-codex-net`. Vygenerujte ju pomocou `openssl rand -hex 32`. | | `CHATGPT_WEB_CODEX_TUNNEL_ID` | _(nenastavené)_ | `open-sse/executors/chatgpt-web-codex.ts` | Globálne ID tunela OpenAI pre lokálne cykly nástroja Codex. | | `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(nenastavené)_ | `open-sse/executors/chatgpt-web-codex.ts` | Globálny runtime kľúč tunela; nikdy ho nevypisujte do protokolov. | | `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | Presný názov novovytvoreného vlastného konektora ChatGPT pre most MCP. | | `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | Vyhradený adresár pre stav prehliadača, brokera a tunela. | | `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | Pri hodnote `1` sa v každom kontrolnom bode zachytia diagnostické snímky prehliadača. | | `CODEX_CHATGPT_WEB_LAUNCHER` | _(nenastavené)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Voliteľná absolútna cesta k trvalému spúšťaciemu binárnemu súboru. | | `CODEX_CHATGPT_WEB_BUN` | _(automatická detekcia)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Voliteľná absolútna cesta k binárnemu súboru runtime prostredia Bun. | | `CODEX_WEB_GPT_BUN` | _(nenastavené)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Staršia záložná možnosť pre `CODEX_CHATGPT_WEB_BUN`; nové inštalácie používajú kanonický názov. | --- ## OmniConductor Bridge Dlhotrvajúci SSE konzument, ktorý zrkadlí úlohy centra OmniConductor do lokálneho A2A TaskManagera (`src/lib/conductor/`). Voliteľná funkcia — bridge sa spustí iba vtedy, keď je nastavená premenná `CONDUCTOR_HUB_URL`. Iba na strane servera: token centra sa nikdy nesmie dostať do prehliadača. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------ | ----------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `CONDUCTOR_HUB_URL` | _(prázdna)_ | `src/lib/conductor/boot.ts` | Základná URL adresa centra OmniConductor (napr. `http://127.0.0.1:7910`). Nenastavená = bridge je vypnutý. | | `CONDUCTOR_HUB_TOKEN` | _(prázdna)_ | `src/lib/conductor/boot.ts` | Prihlasovací údaj centra pre SSE kanál — v centre vytvorte peer typu `spokesperson` (`POST /v1/peers`, administrátor). | | `CONDUCTOR_ORCHESTRATOR_TOKEN` | _(prázdna)_ | `src/lib/conductor/hubProxy.ts` | Prihlasovací údaj na delegovanie prichádzajúcich úloh A2A→centrum (`POST /v1/tasks`); ak nie je nastavený, použije sa `CONDUCTOR_HUB_TOKEN`. | | `CONDUCTOR_SPOKESPERSON_URL` | `http://127.0.0.1:7920` | `src/lib/conductor/faroProxy.ts` | Základná URL adresa služby spokesperson (Faro) za chatovým proxy dashboardu (`/api/conductor/ask`). | ### Plánovanie zohľadňujúce kvóty Používa sa v `open-sse/services/combo.ts` a `src/lib/quota/quotaScheduler.ts` na kontrolu rozpočtu tokenov pred požiadavkou. Voliteľná funkcia — ak nie je nastavená, predvolené správanie smerovania zostáva nezmenené. | Premenná | Predvolená hodnota | Zdrojový súbor | Popis | | ------------------------------- | ------------------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_QUOTA_AWARE_ROUTING` | `0` | `open-sse/services/combo.ts` | Pri hodnote `1` sa preskočia pripojenia, ktorých rozpočet tokenov na dané okno (`rateLimitOverrides.tpm`, tabuľka `provider_quota_state`) nedokáže pred odoslaním pokryť odhadované náklady požiadavky. Ak nie je nakonfigurovaný žiadny rozpočet, požiadavka sa povolí. |