# 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á referencia pre každú premennú prostredia, ktorú rozpoznáva OmniRoute. Šablónu rýchleho spustenia nájdete [`.env.example`](../../.env.example). > [!IMPORTANT] > Každá premenná tu zdokumentovaná sa musí objaviť aj v `.env.example` a každá premenná v `.env.example` sa tu musí objaviť. `npm run check:env-doc-sync` to vynucuje pri odovzdaní a v CI. Ak chcete premennú zámerne vynechať, pridajte ju do zoznamu povolených v `scripts/check/check-env-doc-sync.mjs`. --- ## Obsah - [1. Požadované tajomstvá](#1-required-secrets) - [2. Ukladanie a databáza](#2-storage--database) - [3. Sieť a porty](#3-network--ports) - [4. Zabezpečenie a overenie](#4-security--authentication) - [5. Sanitizácia vstupu a ochrana PII](#5-input-sanitization--pii-protection) - [6. Zásady nástrojov a smerovania](#6-tool--routing-policies) - [7. URLs & Cloud Sync](#7-urls--cloud-sync) - [8. Outbound Proxy](#8-outbound-proxy) - [9. Integrácia nástrojov CLI](#9-cli-tool-integration) - [10. Integrácie interného agenta a MCP](#10-internal-agent--mcp-integrations) - [11. Poverenia poskytovateľa OAuth](#11-oauth-provider-credentials) - [12. Prepisy User-Agent poskytovateľa](#12-provider-user-agent-overrides) - [13. CLI Kompatibilita s odtlačkami prstov](#13-cli-fingerprint-compatibility) - [14. Kľúčoví poskytovatelia API](#14-api-key-providers) - [15. Nastavenia časového limitu](#15-timeout-settings) - [16. Ťažba dreva](#16-logging) - [17. Optimalizácia pamäte](#17-memory-optimization) - [18. Synchronizácia cien](#18-pricing-sync) - [19. Synchronizácia modelu (dev)](#19-model-sync-dev) - [20. Nastavenia špecifické pre poskytovateľa](#20-provider-specific-settings) - [21. Zdravie proxy](#21-proxy-health) - [22. Ladenie](#22-debugging) - [23. GitHub Integrácia](#23-github-integration) - [24. Sandbox schopností (v3.8.0 +)](#24-skills-sandbox-v380) - [27. Radarový zdroj (vlastné hosťovanie)](#27-radar-feed-self-hosting) - [Scenáre nasadenia](#deployment-scenarios) - [Audit: Odstránené / mŕtve premenné](#audit-removed--dead-variables) --- ## 1. Požadované tajomstvá Nenastavené tajomstvá označené** áno** sú automaticky generované pri prvom spustení (`JWT_SECRET`, `API_KEY_SECRET`) a pretrvávajú do `server.env` v dátovom adresári, — ich explicitne nastavuje, keď je tento adresár efemérny. Výnimkou je `OMNIROUTE_WS_BRIDGE_SECRET`: nie je trvalé `server.env` — že vstupné body servera určia dočasnú hodnotu pre každé spustenie, ktorú môže použiť iba most v procese, takže klienti externého mosta ju potrebujú explicitne nastaviť. | Variabilné | Povinné | Predvolené | Zdrojový súbor | Popis | | ---------------------------- | ----------------- | ---------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `JWT_SECRET` | **áno** | _(žiadne)_ | `src/lib/auth` | Signs/verifies všetky súbory cookie relácie dashboardu (JWT). Vygenerujte pomocou `openssl rand -base64 48`. | | `API_KEY_SECRET` | **áno** | _(žiadne)_ | `src/lib/db/apiKeys.ts` | šifrovací kľúč AES pre pokojové hodnoty kľúča API v SQLite. Vygenerujte pomocou `openssl rand -hex 32`. | | `INITIAL_PASSWORD` | Nie | _(nenastavené)_ | `src/lib/auth/managementPassword.ts` | Nastaví heslo palubnej dosky pri spustení, zatiaľ čo žiadne ešte nie je uložené; po uložení hesla sa ignoruje. Inštalácie npm a zdroja skopírujú `.env.example` do `.env`, takže začínajú jeho verejne známym zástupným symbolom `CHANGEME`: nahraďte ho pred prvým spustením alebo nastavte `INITIAL_PASSWORD=` (prázdne) v tomto `.env`, aby sa pri prvej návšteve vytvorilo heslo v sprievodcovi vstupom, ako to robí nenastavená hodnota (predvolená hodnota obrázka Docker ). Zmeňte uložené heslo v Nastaveniach ovládacieho panela → → Zabezpečenie alebo spustite `omniroute reset-password` (`node bin/reset-password.mjs` v pokladni zdroja) so `DATA_DIR` nastaveným na dátový adresár servera. | | `OMNIROUTE_WS_BRIDGE_SECRET` | **áno** (výroba) | _(nenastavené)_ | `src/app/api/internal/codex-responses-ws/route.ts` | Zdieľané tajomstvo pre interný most Codex Responses WebSocket. Autentifikuje požiadavky na premostenie medzi relé Electron/browser WS a OmniRoute. ⚠️**REQUIRED v produkcii —, keď nie je nastavené, všetky požiadavky na premostenie WS budú zamietnuté.** Vygenerujte pomocou `openssl rand -base64 32`. | | `OMNIROUTE_SW_BUILD_ID` | Nie | _(git SHA)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Explicitné ID pre vynechanie vyrovnávacej pamäte servisného pracovníka pre shell PWA (#11779); prvý v reťazci riešenia. | | `SOURCE_VERSION` | Nie | _(nenastavené)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Druhá v reťazci — nastavená tvorcami PaaS (napr. v štýle Heroku) ako nasadený commit. | | `NEXT_PUBLIC_SW_BUILD_ID` | Nie | _(odvodené)_ | `src/shared/components/PwaRegister.tsx` | Verejná hodnota v čase zostavenia, ktorú klient používa na registráciu `/sw.js?v=…`; odvodené od dvoch vyššie, potom git SHA. | | `OMNIROUTE_PEER_STAMP_TOKEN` | Nie (automaticky) | _(automaticky pri spustení)_ | `src/server/authz/policies/management.ts` | Tajomstvo jednotlivých procesov dokazujúce dôveryhodnú peer-IP pečiatku pochádza z vlastného HTTP servera OmniRoute(`scripts/dev/peer-stamp.mjs`). Authz middleware dôveruje lokalite požiadavky (loopback/LAN hradlovanie LOCAL_ONLY trás) iba vtedy, keď pečiatka nesie tento token. Automaticky generované každé spustenie — nechajte nenastavené; pripnite ho len pre viacprocesové nastavenia, ktoré musia zdieľať pečiatku. | | `OMNIROUTE_TRUSTED_PROXIES` | Nie | _(nenastavené)_ | `scripts/dev/peer-stamp.mjs` | Čiarkami oddelené rozsahy IPs alebo CIDR reverzných proxy serverov, ktorých `X-Forwarded-For` / `X-Real-IP` zoznam IP allow/deny môže okrem spätnej slučky veriť aj adresám súkromnej siete a okrajom Cloudflare, ktoré sú vždy dôveryhodné. Potrebné iba pre proxy na akejkoľvek inej verejnej adrese; inak filter posúdi vlastnú adresu servera proxy. Tlačidlá obmedzovača (`/api/v1/relay/chat/completions`) relé na rovnakej vyriešenej adrese klienta, nikdy nie na samotných hlavičkách preposielania. | ### Generačné príkazy ```bash # Generate all four secrets at once: 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] > Nikdy neposielajte `.env` súbory so skutočnými tajomstvami do správy verzií. `.gitignore` už vylučuje `.env`, ale pred stlačením ho overte. --- ## 2. Ukladanie a databáza OmniRoute používa**SQLite** (cez `better-sqlite3`) za všetku vytrvalosť. Tieto premenné riadia umiestnenie údajov, šifrovanie a životný cyklus. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------ | ----------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `DATA_DIR` | `~/.omniroute/` | `src/lib/db/core.ts` | Koreňový adresár pre SQLite DB, zálohy a dátové súbory. Prepísať zväzky Docker alebo vlastné cesty. | | `OMNIROUTE_ALLOW_DEFAULT_DATA_DIR` | _(nenastavené)_ | `src/lib/dataPaths.ts` | Únikový poklop pre strážcu DATA_DIR test/eval #10428). Testy a sondy Node eval/print (`-e`/`--eval`/`-p`/`--print`, vrátane formulárov `--eval=`/`--print=` ) bez `DATA_DIR` sú presmerované do dočasného adresára, takže nemôžu otvoriť skutočnú databázu operátora; nastavte na `1`, aby ste sa prihlásili späť do skutočného adresára. | | `OMNIROUTE_BUILD_SHA` | _(nenastavené)_ | `src/lib/monitoring/buildSha.ts` | Git SHA bežiaceho artefaktu. Pečiatkou `npm run build:release`; injekčne v kontajneroch, ktoré sa dodávajú bez `dist/BUILD_SHA` sentinelu. Zobrazuje sa ako `system.buildSha` na `/api/monitoring/health`. | | `OMNIROUTE_RELEASE_REF` | `origin/main` | `scripts/build/buildProvenance.ts` | Ref. brána pôvodu artefaktu porovnáva zostavu SHA (#10427). | | `OMNIROUTE_ALLOW_CANARY_BUILD` | _(nenastavené)_ | `scripts/build/buildProvenance.ts` | Nastavte na `1`, aby ste umožnili zbaliť zostavu, ktorej SHA nie je na uvoľňovacej linke, zaznamenať ju ako úmyselného kanára namiesto zlyhania brány (#10427). | | `OMNIROUTE_SMOKE_API_KEY` | _(nenastavené)_ | `scripts/ops/deploy-canary.mjs` | kľúč API pre dymovú sondu canary-deploy, odoslaný ako `Authorization: Bearer` na `/v1/chat/completions`. Používa sa iba skriptom nasadenia (#10429), nikdy serverom. Nesúvisí s premennými `OMNIROUTE_SMOKE_*` voliteľného postroja CLI dymu (`RUN_CLI_SMOKE=1`, `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS` v `tests/integration/upstream-cli-smoke.int.test.ts`) — pozri [CLI Integrácie → Skutočný dymový záťah](../guides/CLI-INTEGRATIONS.md). | | `OMNIROUTE_BUILDING` | _(nenastavené)_ | `src/lib/buildPhase.ts` | Signál fázy zostavenia (#10060): nastavený na `1` pomocou `scripts/build/build-next-isolated.mjs` a zdedený každým vytvoreným zostavovacím pracovníkom, takže vrstva DB vráti no-op stub namiesto načítania natívneho doplnku better-sqlite3 (čo preruší pracovníka pri ukončení). Nikdy nenastavujte pre spustený server. | | `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | Nastavte na `1`, ak chcete preskočiť voliteľnú kontrolu predzostavenia natívnej závislosti pre exotické dodávané stromy. Vďaka tomu nie je možné zostaviť chýbajúcu závislosť; použite len vtedy, keď sú natívne závislosti dodávané mimo pásma. | | `OMNIROUTE_DATA_DIR` | _(nenastavené)_ | `open-sse/executors/promptql/threadSticky.ts` | **Záložný alias** pre `DATA_DIR`, začiarknuté iba vtedy, keď `DATA_DIR` nie je nastavené. Používa sa na nájdenie vyrovnávacej pamäte PromptQL s priľnavosťou vlákien na disku (`/promptql-thread-sessions.json`); ak nie je nastavená ani jedna var, vyrovnávacia pamäť zostane iba v pamäti (neuchová sa počas reštartov). | | `OMNIROUTE_PLUGINS_DIR` | _(nenastavené)_ | `src/lib/plugins/scanner.ts` | Adresár** runtime plugin skener** číta — a koreňový adresár, ktorý správca doplnkov nainštaluje do —, čím prepíše predvolené nastavenie (#11827). Nasmerujte ho na strom zásuvných modulov pripojených k väzbe v Docker/K8s namiesto toho, aby ste presunuli HOME len aby ste premiestnili cestu skenovania (HOME tiež riadi každé ďalšie správanie súvisiace s domovom). Zrušte nastavenie = `~/.omniroute/plugins` alebo `/tmp/.omniroute/plugins` keď proces neexportuje žiadny domov — tiché neobjavenie, ktoré táto premenná odstráni. Vyriešený adresár sa pri spustení zaznamená raz ako `scanner.dir_resolved` so vstupom, ktorý vyhral. Iba na strane servera: Doplnky príkazov CLI si ponechajú svoje vlastné `OMNIROUTE_PLUGIN_PATH` (časť 9). | | `STORAGE_ENCRYPTION_KEY` | _(prázdne = zakázané)_ | `src/lib/db/encryption.ts` | kľúč AES pre úplné šifrovanie databázy SQLite v pokoji. Vygenerujte pomocou `openssl rand -hex 32`. | | `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | Štítok verzie pre šifrovací kľúč. Zvýšenie pri vykonávaní rotácie kľúčov na podporu dešifrovania starých záloh. | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | Keď `true`, preskočí zálohy súborov routine/pre-write SQLite (cena modelov.dev save/clear, zápisy nastavení). Manuálne zálohy a zálohy pred obnovením stále bežia. áno** nie** deaktivovať povinnú trvanlivú bezpečnostnú snímku alebo ochranu pred hromadnou migráciou pre existujúce trvalé DB. Nemanuálne zálohy sú obmedzené na maximálne raz za 60 minút. Dashboard** Nastavenia → Úložisko** môže nezávisle vypnúť rutinné automatické zálohovanie. | | `OMNIROUTE_SQLITE_SLOW_MS` | _(unset/off)_ | `src/lib/db/adapters/slowDiagnostics.ts` | milisekúnd; hodnoty pod 1 alebo nečíselné ostanú vypnuté; varuje maximálne raz za 10 s; riadok denníka obsahuje iba ovládač, prevádzku a elapsedMs. | | `OMNIROUTE_SQLITE_OPTIMIZE_ENABLED` | `true` | `src/lib/db/sqlitePlannerStats.ts` | Údržba štatistík plánovača na pozadí, nezávislá od vyčistenia uchovávania: prvý povolený prechod na vyčistenie (zvyčajne 30 s po spustení, po migrácii) sa spustí `PRAGMA optimize=0x10002`; následné prechody každých 6 hodín spustia `PRAGMA optimize` (alebo `PRAGMA optimize=0x00002` pre neobmedzenú analýzu). `false` alebo `0` zakáže všetku údržbu (nerozlišujú sa malé a veľké písmená, orezané medzery). Pamäťové databázy a cesty zálohovania len na čítanie nie sú ovplyvnené. Poruchy sa zaznamenávajú, nie sú vyhodené. | | `OMNIROUTE_SQLITE_ANALYSIS_LIMIT` | `400` | `src/lib/db/sqlitePlannerStats.ts` | Nastaví `PRAGMA analysis_limit` pred optimalizáciou. Desatinné celé čísla sú viazané na [0, 100 000]; predvolené hodnoty malformed/empty sú 400. `0` požaduje neobmedzenú, presnú analýzu tabuliek vybraných optimalizáciou; periodický prechod vymaže SQLite optimalizačný bit-cap, aby sa to splnilo. Nespustí sa žiadny samostatný príkaz analýzy SQL. | | `OMNIROUTE_CRYPT_KEY` | _(nenastavené)_ | `src/lib/db/encryption.ts` | **Starý alias** pre `STORAGE_ENCRYPTION_KEY`. Prijíma sa ako záložná, keď chýba primárna premenná. | | `OMNIROUTE_API_KEY_BASE64` | _(nenastavené)_ | `src/lib/db/encryption.ts` | **Starý alias** (forma Base64-encoded ) prijatá ako záložná. Pred použitím sa automaticky dekóduje. | | `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(nenastavené)_ | `src/lib/db/core.ts` | Prepíšte interval pravidelnej kontroly stavu SQLite (ms). Keď nie je nastavené, predvolené hodnoty sú odvodené od `NODE_ENV`. | | `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(odstránené)_ | `src/lib/db/walMaintenance.ts` | **Odstránené.** Pravidelné živé `wal_checkpoint(TRUNCATE)` môže zneplatniť zdieľané mapovanie wal-index a zrútiť proces pomocou SIGBUS (#13973), takže plánovač už neexistuje. Premenná je inertná: kladná hodnota zaznamená jednorazové upozornenie na ukončenie podpory, zatiaľ čo `0` alebo unset zostane ticho. WAL je udržiavaný kontrolnými bodmi PASSIVE (nižšie) a skrátený kontrolným bodom vypnutia. | | `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5 m) | `src/lib/db/walMaintenance.ts` | Prepíše častý interval `wal_checkpoint(PASSIVE)` (ms). Čakajúce snímky WAL zostávajú malé, takže kontrolné body zostanú rýchle a súbor WAL zostane ohraničený medzi skráteniami vypnutia. `0` zakáže. | | `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | Keď tick PASSIVE nájde súbor WAL nad touto veľkosťou, spustite `wal_checkpoint(RESTART)` takže WAL začne odznova bez prepisovania namapovaného wal-indexu. Kontrolné body režimu živého skrátenia boli odstránené (pozri riadok `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` ). | | `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | Nastavte na `1`/`true`/`yes`/`on`, aby ste ukončili proces po kritickom tlaku na zdroje počas `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS`, čo umožní supervízorovi (systemd `Restart=always`, Docker reštart politika) priviesť späť čistý proces namiesto nepretržitého obsluhovania 503. | | `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` | `120000` (2 m) | `open-sse/utils/resourcePressure.ts` | Ako dlho musí pretrvávať kritický tlak, kým sa spustí samočinný reštart. | | `OMNIROUTE_PRESSURE_PSI_DISABLED` | `false` | `open-sse/utils/resourcePressurePolicy.ts` | Nastavte na `1`/`true`/`yes`/`on` ak chcete ignorovať `/proc/pressure/memory` na celom hostiteľovi (`psi_some` / `psi_full`), keď hlučný sused spustí 503 s, kým je tento proces v poriadku (#13124). Chrániče haldy Cgroup a V8 zostávajú zapnuté. PSI sa tiež prestane počítať ako dôkaz škrtiacej klapky jadra pre `cgroup_high`: súčet cgroup nad `memory.high` sa potom stane kritickým iba pri zvýšení `memory.events` `high`/`max`. Bez `memory.events` sa zachová surový pomer. | | `OMNIROUTE_SQLJS_WASM_PATH` | _(automatická detekcia)_ | `src/lib/db/adapters/sqljsAdapter.ts` | Explicitná cesta (absolútna alebo relatívna k cwd) k `sql-wasm.wasm` pri použití záložného adaptéra `sql.js` WASM. Automaticky zistené prostredníctvom závislostí balíkov a kandidátskych rozložení, keď nie je nastavené. | | `OMNIROUTE_BATCH_RETENTION_DAYS` | `30` | `src/lib/db/cleanup.ts` | Dni terminálu (completed/failed/cancelled/expired) Kontrolné body úlohy API, odkazované súbory input/output/error a riadok sú uchovávané automatickým vyčistením pred odstránením. Nadobudne účinnosť až po zapnutí `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` ; zodpovedá vlastnému oknu uchovávania výstupu API OpenAI. Nemá vplyv na trasu `DELETE /api/v1/batches/delete-completed` spustenú operátorom, ktorá je podľa návrhu nepodmienená (bez vekového filtra). | | `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | Keď `true`, nechajte automatické vyčistenie odstrániť terminál Dávkové úlohy API (a ich kontrolné body) za `OMNIROUTE_BATCH_RETENTION_DAYS` a vymažte obsah BLOB nahraných súborov za ich vlastným `expires_at`. Predvolene vypnuté: každá existujúca inštalácia uchováva tieto údaje presne tak, ako predtým, kým sa operátor neprihlási. Tiež príznak funkcie upraviteľný na paneli — pozri `docs/reference/FEATURE_FLAGS.md` → Runtime. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts`, `src/lib/db/healthCheck.ts` | Ak chcete pri spustení úplne preskočiť kontrolu stavu DB, nastavte na `1`. 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ť zapnutie cyklu kontroly stavu DB, aj keď by sa normálne preskočilo (napr. úlohy s krátkou životnosťou). | | `OMNIROUTE_SKIP_POSTINSTALL` | `0` | `scripts/postinstall.mjs` | Nastavte na `1`, ak chcete preskočiť zahrievanie natívneho prostredia počas `npm install`. Užitočné pri inštaláciách CI/headless, kde je už vytvorený sqlite. | | `OMNIROUTE_MIGRATIONS_DIR` | _(automatická detekcia)_ | `src/lib/db/migrationRunner.ts` | Prepíšte adresár, ktorý bežec migrácie skenuje. Užitočné pri odosielaní migrácií v balíkoch vo vlastných zostavách. | | `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(nenastavené)_ | `src/lib/db/migrationRunner/extraDirs.ts` | Ďalšie migračné adresáre ako položky `namespace=dir` oddelené oddeľovačom cesty platformy (napr. `ee=/opt/app/enterprise/db/migrations`). Súbory, ktoré sa tam nachádzajú, sú zaznamenané ako `-`, takže distribúcia odosielajúca svoje vlastné migrácie nikdy nekoliduje s upstream numerickými slotmi. Chybná položka, neplatný menný priestor alebo chýbajúci adresár sa vyhodia pri spustení namiesto tichého preskočenia schémy. | | `OMNIROUTE_MAX_PENDING_MIGRATIONS` | `50` | `src/lib/db/migrationRunner.ts` | Bezpečnostný prah hromadnej migrácie (#3416). Spustenie sa preruší, ak na existujúci DB čaká viac než tento počet migrácií (ochrana pred vymazanou tabuľkou sledovania). Zdvihnutím obnovíte staršiu zálohu; nastavením na `0` zakážete kontrolu. | | `OMNIROUTE_INSTALL_UPGRADE_WORKDIR` | _(`/.install-upgrade`)_ | `scripts/check/check-install-upgrade.mjs` | Pracovný adresár brány vydania `check:install-upgrade`. Potrebuje približne 12 GB (dva ~ 3 GB inštalačné stromy plus tarball), takže nesmie bežať na malom tmpfs — na samohostiteľskom runner `/tmp` je 12 GB tmpfs podporovaný RAM a brána ho vyčerpala a orezala balík. | | `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(predvolené v kóde)_ | `src/lib/spend/batchWriter.ts` | Interval splachovania (ms) pre dávkový zapisovač spend/cost. Nižšie hodnoty znižujú koalescenciu zápisu; vyššie hodnoty znižujú DB spor. | | `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(predvolené v kóde)_ | `src/lib/spend/batchWriter.ts` | Maximálne uložené položky výdavkov pred vynúteným splachovaním. Zvýšte nasadenie s vysokým QPS; nižšie, keď na obmedzenej pamäti záleží viac. | | `OMNIROUTE_PROXY_FETCH_DEBUG` | _(nenastavené)_ | `open-sse/utils/proxyFetch.ts` | Nastavte na `"true"`, ak chcete vysielať protokoly ladenia `[ProxyFetch]` na prenosovej ceste Vercel. Predvolene vypnuté, aby sa predišlo úniku tipov na smerovanie. | | `OMNIROUTE_PROXY_CORE_BINARY_PATH` | _(nenastavené)_ | `src/lib/proxySubscription/coreConfig/sync.ts` | Absolútna cesta binárneho jadra lokálneho proxy (súbor s názvom `sing-box` / `mihomo`), ktorý kontroluje vygenerovanú konfiguráciu jadra predtým, ako nahradí prijatý súbor. Unset zapíše `.generated` iba vedľa prijatého súboru. Iba hostiteľské prostredie: nikdy sa neukladá do databázy ani sa neprijíma cez správu API, pretože sa spúšťa binárny súbor. | | `OMNIROUTE_PROXY_CORE_RELOAD_COMMAND` | _(nenastavené)_ | `src/lib/proxySubscription/coreConfig/reload.ts` | Ako sa jadro lokálneho proxy znovu načíta po overenej výmene konfigurácie: pole argumentov JSON sa spustí bez shellu alebo presne `external` keď súbor použije vonkajší pozorovateľ. Nikdy neuložené v databáze ani vystavené prostredníctvom API. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `src/lib/proxyLogger.ts` | Nastavte na `"true"` alebo `"1"` ak chcete zahrnúť client/egress IPs a predponu účtu do podrobného riadku protokolu procesu `[ProxyEgress]`. V predvolenom nastavení sa ponechal OFF, aby z denníka procesu neuniklo IPs alebo predpona účtu. | | `OMNIROUTE_DEBUG` | _(nenastavené)_ | `bin/cli/commands/quota.mjs` | Nastavte na `1`, ak chcete vytlačiť diagnostiku časovania podľa požiadavky (`[omniroute] GET completed in Nms`) z príkazov kvóty CLI do stderr. | | `OMNIROUTE_HEALTHCHECK_PATH` | _(auto)_ | `scripts/dev/healthcheck.mjs` | Explicitná cesta testovaná kontrolou stavu kontajnera. Nenastavený, sonda ho odvodzuje od `OMNIROUTE_BASE_PATH`; jeho nastavením sa prihlásite späť do koncového bodu hlbokého monitorovania. | | `OMNIROUTE_DEBUG_COMPLETION` | _(nenastavené)_ | `bin/cli/commands/completion.mjs` | Ak chcete vygenerovať diagnostiku `[omniroute completion]` z ciest vyrovnávacej pamäte dokončenia shellu CLI (read/refresh/write), nastavte na akúkoľvek neprázdnu hodnotu. V predvolenom nastavení — tieto vyrovnávacie pamäte zlyhajú ticho, takže vyrovnávacia pamäť missing/corrupt nikdy nepreruší dokončenie karty. | | `BATCH_RETRY_DURATION_MS` | `86400000` (24h) | `open-sse/services/batchProcessor.ts` | Maximálne okno opakovania pre jednotlivé položky dávky (ms). Položky prekračujúce toto trvanie sú označené ako neúspešné. | | `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | Základné oneskorenie (ms) pre exponenciálne stiahnutie pri opakovaných pokusoch o dávku. | | `BATCH_BACKOFF_MAX_MS` | `3600000` (1 h) | `open-sse/services/batchProcessor.ts` | Obmedzenie (ms) pre exponenciálne stiahnutie medzi opakovanými pokusmi o dávkové položky. | | `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | Maximálny počet súbežne spracovaných dávok. Zvýšte na zvýšenie priepustnosti; držte sa nízko, aby ste sa vyhli búrkam s limitom rýchlosti. | > [!IMPORTANT] > Pred zmenou existujúcej trvalej databázy bežec migrácie zverejní kompletnú snímku s adresou obsahu pod `DATA_DIR/db_backups/`. Publikácia vyžaduje súborový systém, ktorý podporuje rovnaký súborový systém, pevné odkazy bez prepisovania a trvalú synchronizáciu súborov. POSIX hostitelia tiež vyžadujú synchronizáciu adresára; na Windows môže Node odmietnuť popisovače adresárov, takže OmniRoute vyprázdni publikovaný súbor a považuje synchronizáciu položky adresára za najlepšiu snahu. Ak pripojené `DATA_DIR` nemôže poskytnúť tieto záruky, spustenie zlyhá pred použitím migrácie. Presuňte `DATA_DIR` do zväzku s týmito primitívami; nepoužívajte `DISABLE_SQLITE_AUTO_BACKUP` na obídenie bezpečnosti migrácie. ### Scenáre | Scenár | Konfigurácia | | ------------------------ | -------------------------------------------------------------------------------- | | **Miestny rozvoj** | Ponechajte všetky predvolené nastavenia. DB býva v `~/.omniroute/omniroute.db`. | | **Docker** | `DATA_DIR=/data` + pripojiť zväzok na `/data`. | | **Zašifrované v pokoji** | Nastaviť `STORAGE_ENCRYPTION_KEY` + uchovávať zálohy kľúča! Strata = strata dát. | | **CI/Testing** | `DATA_DIR=/tmp/omniroute-test` — efemérne, nie je potrebné šifrovanie. | --- ## 3. Sieť a porty | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PORT` | `20128` | `src/lib/runtime/ports.ts` | Primárny port pre koncové body Dashboard UI aj API (režim s jedným portom). | | `OMNIROUTE_BASE_PATH` | _(prázdny koreň = )_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | podcesta URL na obsluhu OmniRoute za reverzným proxy serverom (nastavuje Next.js `basePath`; presmerovania auth sú založené na basePath). Napr `/omniroute`. V Docker sa hodnota pečie počas `docker build` (`ARG OMNIROUTE_BASE_PATH`); vopred vytvorené koreňové obrazy môžu použiť inú hodnotu runtime raz pri spustení kontajnera pred zavedením Next.js. Nastavte `NEXT_PUBLIC_BASE_URL` na verejný pôvod vrátane rovnakej podcesty. | | `NEXT_PUBLIC_OMNIROUTE_BASE_PATH` | _(prázdny koreň = )_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Zrkadlo `OMNIROUTE_BASE_PATH` viditeľné v prehliadači, vložené v čase zostavenia, takže zobrazenie koncového bodu palubnej dosky zobrazuje `https://host/omniroute/v1` namiesto `https://host/v1`. Keď nie je nastavené, vráti sa späť na `OMNIROUTE_BASE_PATH`. Po zmene znova zostavte (Ďalším `basePath` je čas zostavenia). | | `DASHBOARD_ALLOW_EMBED` | _(nenastavené = nikdy nesnímateľné)_ | `next.config.mjs`, `scripts/build/dashboardEmbed.mjs` | Aktivujte vkladanie stránok HTML do prvkov iframe. Nenastavené, každá trasa odosiela `frame-ancestors 'none'` + `X-Frame-Options: DENY`. Nastavte na `vscode`, aby sa stránky (hlavný panel, prihlásenie, dokumenty, vstupná stránka) zobrazovali so `frame-ancestors 'self' vscode-webview:` a bez `X-Frame-Options`, takže jednoduchý prehliadač kódu VS ich môže vykresliť (režim OmniCopilot `dashboardOpen: "editor"` ). Povrch API (`/api`, `/v1`, `/v1beta`, `/a2a`, `/healthz`, aliasy na koreňovej úrovni) si zachováva prísne hlavičky v oboch smeroch. Rozpozná sa iba `vscode` — `1`/`true` ho nepovoľujú. Čas zostavenia: po zmene znova zostaviť (`docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode` pre obrázky; nastavenie na vopred zostavenú inštaláciu nemá žiadny vplyv). | | `API_PORT` | _(nenastavené)_ | `src/lib/runtime/ports.ts` | Keď je nastavený, slúži `/v1/*` proxy API (plus Gemini-native `/v1beta/*`) na tomto samostatnom porte. | | `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | Väzba adresy pre port API. | | `DASHBOARD_PORT` | _(nenastavené)_ | `src/lib/runtime/ports.ts` | Po nastavení slúži Dashboard UI na tomto samostatnom porte. | | `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(zakázané)_ | `src/sse/utils/backpressure.ts` | Obmedzí súbežné chatové spojenia počas letu; žiadosti nad rámec získajú `503` s `Retry-After`. Kladné celé číslo umožňuje stráž; unset/`0` to zakáže. | | `OMNIROUTE_INSTANCE_ID` | _(nenastavené)_ | `src/shared/resilience/peerRouting.ts` | Stabilné, jedinečné ID pre túto bránu pri reťazení inštancií OmniRoute. Umožňuje prichádzajúce kontroly rovnocenných slučiek. Povolené znaky: písmená, číslice, `.`, `_`, `:` a `-`; maximálne 64 znakov. | | `OMNIROUTE_PEER_URLS` | _(nenastavené)_ | `src/shared/resilience/peerRouting.ts`, `open-sse/executors/base.ts` | Čiarkou oddelený základ OmniRoute URLs, ktorý môže prijať `X-OmniRoute-Peer-Trace`. Iba explicitne uvedené povolené upstream URLs prijímajú rovnocenné metadáta; všetci ostatní poskytovatelia sú nedotknutí. | | `OMNIROUTE_PEER_MAX_HOPS` | `4` | `src/shared/resilience/peerRouting.ts` | Maximálny počet predtým navštívených inštancií OmniRoute prijatých na reťazenú požiadavku (`1`-`32`). Opakované prípady alebo vyčerpaný rozpočet sa vracia HTTP `508 Loop Detected`. | | `PROD_DASHBOARD_PORT` | `20130` | `docker-compose.prod.yml` | Port zverejnený na strane hostiteľa pre Dashboard 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` | Pri spustení vo vnútri Electron alebo iných obalov má prednosť pred `PORT`. | | `LIVE_WS_PORT` | `20129` | `src/server/ws/liveServer.ts` | Port pre živý monitorovací server WebSocket v reálnom čase. | | `LIVE_WS_HOST` | `127.0.0.1` | `src/server/ws/liveServer.ts` | Viazajte adresu pre živý server WebSocket. Ak chcete vystaviť na `0.0.0.0`, nastavte na LAN (nakonfigurujte aj `LIVE_WS_ALLOWED_ORIGINS`). Pripojenia sa overujú pomocou súboru cookie relácie dashboardu alebo kľúča Nosič API, ktorý obsahuje rozsah správy (`manage`/`admin`). | | `LIVE_WS_ALLOWED_ORIGINS` | _(nenastavené)_ | `src/server/ws/liveServer.ts` | Čiarkami oddelené extra pôvody umožňujú otvoriť živú WebSocket. Počiatky ovládacieho panela Loopback sú už predvolene povolené. | | `LIVE_WS_ALLOWED_HOSTS` | _(nenastavené)_ | `src/server/ws/liveServerAllowList.ts` | Ďalšie názvy hostiteľov oddelené čiarkami sú povolené pre živý pôvod WebSocket. Na rozdiel od `LIVE_WS_ALLOWED_ORIGINS` (úplný pôvod URLs) zodpovedá iba hostiteľskej časti — užitočnej pre nastavenia LAN/Tailscale. | | `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(nenastavené)_ | `src/hooks/useLiveDashboard.ts` | Verejné URL pre živý informačný panel WebSocket (na strane prehliadača). Nastaví sa, keď je server WS konfrontovaný s reverzným proxy alebo Cloudflare tunelom (napr. `wss://ws.my-ai.com/live-ws`); prehliadač sa tam pripojí namiesto `ws://hostname:20132`. Časť názvu cesty sa tiež používa ako cesta aktualizácie WebSocket (predvolené: `/live-ws`). | | `OMNIROUTE_ENABLE_LIVE_WS` | `true` | `src/server/ws/liveServer.ts` a `scripts/start-ws-server.mjs` | Nastavte na `0` alebo `false`, aby ste deaktivovali server WebSocket v reálnom čase (v predvolenom nastavení povolené, viazané na spätnú slučku). prepínač CI/harness, ktorý zakáže samostatný živý pomocný skript WebSocket. | | `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | Limit rýchlosti prenosu na (token, IP), requests/minute. v pamäti, na inštanciu. `0` alebo záporné zakáže bránu IP dimenzie (stále platí limit DB na token). | | `NODE_ENV` | `production` | Next.js | Ovláda podrobnosť protokolovania, ukladanie do vyrovnávacej pamäte, vystavenie detailov chýb a optimalizácie Next.js. | | `OMNIROUTE_USE_TURBOPACK` | _(nenastavené)_ (automatický výber zostavy) | `scripts/build/build-next-isolated.mjs` | Pre `npm run build`, unset alebo empty vyberie webpack, keď je limit efektívnej pamäte (fyzická RAM alebo nižšia kvóta cgroup/process ) najviac** 16 GiB** alebo sa nedá bezpečne určiť; nad 16 GiB sa vyberie Turbopack. Explicitný webový balík síl `0` ; explicitné `1` a iné neprázdne nenulové hodnoty sila Turbopack. Prázdna hodnota prostredia odoslaná službou Compose áno** nie** sila Turbopack. Tento prah pochádza z 15,6 GiB regresie budovania pamäte (#18184); zostavy hostiteľa s 24/32 GiB neboli porovnávané. Produkčný webpack v predvolenom nastavení automaticky preskakuje svoju trvalú vyrovnávaciu pamäť (pozri `OMNIROUTE_WEBPACK_BUILD_CACHE` nižšie; #18141) a vytvára sa s podstatne menším vrcholom RSS ako súčasná cesta Turbopack. Vývoj si zachováva svoje doterajšie správanie sa zväzovačov.**Docker zostavuje už predvolene na `0` (webpack)** ; na aktiváciu použite `--build-arg OMNIROUTE_USE_TURBOPACK=1`. Pozrite si `docs/guides/DOCKER_GUIDE.md`. | | `OMNIROUTE_WEBPACK_BUILD_CACHE` | _(nenastavené)_ | `next.config.mjs` | Produkčné zostavy webpacku (`OMNIROUTE_USE_TURBOPACK=0`) preskočia vyrovnávaciu pamäť trvalého súborového systému webpack, pokiaľ to nie je `1`. Zápis do tejto vyrovnávacej pamäte pridá približne 2,5 GB špičkovej zostavovacej pamäte pri limite haldy 6144 MB a čisté zostavy ju nikdy neprečítajú. Nastavte na `1`, aby ste ponechali `.build/next/cache/webpack` pre rýchlejšie opakované zostavy na počítači s rezervou RAM ; Zostavy Docker to berú ako `--build-arg OMNIROUTE_WEBPACK_BUILD_CACHE=1` (stavebné fázy `Dockerfile` a `Dockerfile.bun` ). | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | _(nenastavené)_ | `src/lib/db/core.ts` / `src/lib/db/healthCheck.ts` | Nastavte na `1`, ak chcete preskočiť kontrolu stavu integrity SQLite pri spustení. Užitočné pre rýchlejšie spúšťanie veľkých databáz. | | `NOTIFY_SOCKET` | _(nenastavené)_ | systemd (protokol sd_notify) | Nastaví systemd, keď proces beží pod servisnou jednotkou s integráciou sd_notify; OmniRoute ho prečíta (pozri `OMNIROUTE_DISABLE_SD_NOTIFY`), aby odoslal upozornenia READY/WATCHDOG. Nikdy nenastavuje používateľ. | | `OMNIROUTE_DISABLE_SD_NOTIFY` | _(nenastavené)_ | `scripts/dev/systemd-notify.mjs` | Nastavte na `1`, aby ste zakázali systemd sd_notify (napíšte = notify / WatchdogSec=), aj keď beží pod jednotkou systemd. Oznamovateľ je bez ohľadu na to, že je mimo systému neprístupný. | | `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `3600000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | Interval (ms) pre plánovač kontroly stavu poverení na pozadí. Minimum: 10 000 (10 s). | | `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | TTL (ms) pre stav poverení uložených vo vyrovnávacej pamäti. | | `OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK` | `false` | `src/lib/credentialHealth/scheduler.ts` | Nastavte na `1` alebo `true`, aby ste zakázali pravidelné testovanie pripojení poskytovateľa na pozadí. Poskytovatelia vyhľadávania (SEARCH_VALIDATOR_CONFIGS v `src/lib/providers/validation/searchProviders.ts`, napr. `tavily-search`) sú vždy vylúčení z rozbehu — ich „validácia“ je skutočným účtovaným upstream dotazom, takže sa nikdy nekontroluje stav pomocou časovača (#9970). | | `DEEP_HEALTH_CHECK_ENABLED` | `0` | `src/app/api/monitoring/health/route.ts` | Nastavte na `1`, aby ste umožnili overenému volajúcemu požiadať o `/api/monitoring/health?deep=1`, ktorý vzorkuje povrch dokončenia raz za TTL. Anonymní volajúci nikdy nespustia sondu. | | `OMNIROUTE_EVENT_LOOP_STALL_THRESHOLD_MS` | `5000` | `src/lib/healthzLag.ts` | Prah zastavenia (ms) pre záznamník slučky udalostí pri zavádzaní: zmrazenie dlhšie ako toto zaznamená jeden riadok `event loop stalled` pri obnovení s pamäťou a počtami počas letu a narazí na `eventLoopStall` counter/maximum na `/api/monitoring/health`. Ak chcete vypnúť, nastavte na `0` ; nečitateľná alebo záporná hodnota klesne späť na `5000`. | | `HOST` | `0.0.0.0` | `scripts/dev/run-next.mjs` | Väzba adresy pre server Next.js dev/start. Po nastavení prepíše predvolené `0.0.0.0`. | | `HOSTNAME` | `127.0.0.1` | `scripts/dev/run-next-playwright.mjs` | Väzba adresy, ktorú používa bežec Playwright pri spustení Next.js. Predvolená hodnota je `127.0.0.1` pre hermetické testy.** Nepoužívajte pre `omniroute serve`** — namiesto toho použite `OMNIROUTE_SERVER_HOST` ( shelly POSIX automaticky nastavia `HOSTNAME` na názov počítača; `.env` ho nemôže prepísať). | | `OMNIROUTE_SERVER_HOST` | `0.0.0.0` | `bin/cli/commands/serve.mjs` | Viazať adresu pre `omniroute serve`. Zabraňuje kolízii s premennou `HOSTNAME` shellu POSIX (vždy sa nastavuje na názov počítača pomocou bash/zsh). Po deaktivácii sa vráti späť na `0.0.0.0`. (#6194) | ### Režimy portov ``` ┌─────────────────────────── Single Port (default) ──────────────────────────┐ │ PORT=20128 │ │ → Dashboard: http://localhost:20128 │ │ → API: http://localhost:20128/v1/chat/completions │ └─────────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────── Split Ports ─────────────────────────────────────┐ │ DASHBOARD_PORT=20128 │ │ API_PORT=20129 │ │ API_HOST=0.0.0.0 │ │ → Dashboard: http://localhost:20128 │ │ → API: http://0.0.0.0:20129/v1/chat/completions │ │ Use case: Expose API to LAN while restricting Dashboard to localhost. │ └─────────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────── Docker Production ──────────────────────────────┐ │ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │ │ → Maps container ports to host ports in docker-compose.prod.yml. │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 4. Zabezpečenie a overenie | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MACHINE_ID_SALT` | `endpoint-proxy-salt` | `src/lib/auth` | Soľ kombinovaná s hardvérovými identifikátormi pre strojové odtlačky prstov. Zmeňte podľa nasadenia na izoláciu. | | `OMNIROUTE_CLI_SALT` | _(nenastavená náhodná soľ = na inštaláciu trvala na `/cli-token-salt.json`)_ | `src/lib/machineToken.ts` | soľ HMAC na odvodenie miestneho autorizačného tokenu CLI. Nastavením tejto hodnoty sa otočia všetky žetóny CLI na počítači a vždy má prednosť pred trvalou soľou. Pozri `docs/security/CLI_TOKEN.md`. | | `AUTH_COOKIE_SECURE` | `false` | `src/lib/auth` | Nastaví príznak `Secure` pre súbory cookie relácie.** Musí to byť `true`** pri behu za HTTPS. | | `REQUIRE_API_KEY` | `false` | middleware API | Keď `true`, všetky požiadavky proxy `/v1/*` musia obsahovať platný kľúč API.** Táto vlajka neohraničuje `GET /v1/models`** , ktorý nasleduje po pozícii prihlásenia na palubnej doske (`requireAuthForModels`) namiesto —, takže `401` z `/v1/models` znamená NOT že záver je chránený. Pozri `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695). Prijíma `true`, `1` alebo `yes`, ignoruje malé a veľké písmená a okolité medzery; akákoľvek iná hodnota (vrátane `on`) je vypnutá. | | `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Umožňuje odhaliť úplné hodnoty kľúča API v informačnom paneli UI. Konfigurovateľné z príznakov funkcií ovládacieho panela; bezpečnostné riziko na zdieľaných inštanciách. | | `NO_LOG_API_KEY_IDS` | _(prázdne)_ | `src/lib/compliance/index.ts` | Čiarkou oddelený kľúč API IDs, ktorý obchádza protokolovanie požiadaviek (zhoda GDPR ). | | `DEFAULT_RATE_LIMIT_PER_DAY` | _(nenastavené = neobmedzené)_ | `src/shared/utils/apiKeyPolicy.ts` | Záložný rozpočet dennej požiadavky použitý na kľúče API, ktorých stĺpec `rate_limits` je prázdny. Nenastavené alebo prázdne: žiadne implicitné obmedzenie (#2289, #11017). `0` je rovnaký (neobmedzený). Kladné celé číslo N umožňuje N/day, 5N/week, 20N/month. Poškodené neprázdne hodnoty spadajú späť do starých okien 1000/day, 5000/week, 20000/month. | | `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | Predvolené nastavenie pre viditeľné `maxBodySizeMb` ; uložené nastavenie má prednosť. `/api/v1/chat/completions` a `/api/v1/responses` udržujú predvolenú hodnotu 50 MB, kým sa neuloží limit; uložený limit ho potom nahradí, nahor alebo nadol, pre ochranu hlavičky a pre prijímanie chatu v aktuálnom byte. | | `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | Skutočné telesá požiadaviek na tejto prahovej hodnote alebo nad ňou prevezmú pred analýzou JSON (cesta BYTE, vrátane `POST /v1/responses`) miestny prístupový prenájom ťažkej váhy pre atómový proces. Rovnaký únik [#10437](https://github.com/diegosouzapw/OmniRoute/pull/10437) so zdravou výškou ako s ťažkou štruktúrou; stále ohraničené `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / [#10110](https://github.com/diegosouzapw/OmniRoute/issues/10110) takže [#7849](https://github.com/diegosouzapw/OmniRoute/issues/7849) sa nevracia. | | `OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES` | `52428800` (50 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Pevný strop chatovej cesty vynútený proti bajtom načítaným počas obmedzeného príjmu, vrátane požiadaviek s chýbajúcim, neplatným alebo nečestným `Content-Length`; nadbytok dostáva `413`. Uložený `maxBodySizeMb` nahradí predvolených 50 MB ; keď je táto premenná nastavená, obmedzuje aj uloženú hodnotu. | | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(nenastavené — bez obmedzenia počtu žiadostí)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-fanout:** tento starý limit žiadosti – COUNT sa teraz viaže iba vtedy, keď je explicitne nastavený. Ponechanie nenastavené (predvolené), prijímanie ťažkej konverzácie je namiesto toho hradené `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` — automaticky odvodeným BYTE rozpočtom s veľkosťou skutočného pamäťového stropu procesu v** jeden proces** (jedna hromada V8). Dve prekrývajúce sa ~ 750k-token `/v1/responses` abort ~ 12 Gi hromady (#7849) — a** pamäť-rozpočet** varovanie, nie tvrdý produkt max. 2. Zdravý proces (hromada pod pomerom prepadu) MAY pripustite viac súbežných dlhých `/v1/responses` cez `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM`. Desiatky dlhých klientov SSE (40 – 50) sú haldy + `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110, nie „max 2“. Slepým zvýšením tejto hodnoty na „použitie hostiteľa“ sa znovu zavedie #7849. Vynásobte** hromady** s** N nezávislých `DATA_DIR` s** (#11024); nikdy `replicas>1` na jeden súbor SQLite. | | `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(automaticky odvodené)_ | `src/shared/middleware/admissionBudget.ts` | **#503-fanout:** prepísanie pre automaticky odvodený bajtový rozpočet na príjem (25 % užšieho stropu pamäte V8/cgroup vydelené 8-násobným prechodným zosilnením). Odvodené a explicitné hodnoty sa držia na 8 MiB–2 GiB. Telo väčšie ako efektívny rozpočet okamžite zlyhá s `413 body_exceeds_budget`; spor medzi jednotlivo použiteľnými telesami zostáva opakovateľný `503`. 40 – 50 súbežných long SSE klientov je táto hromada + rozpočtu, nie tvrdé „max 2“. Pred ladením si prečítajte `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity` pri `/api/monitoring/health`. | | `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | Pomer tlakovej straty haldy (`heapUsed / heap_size_limit`) pre BYTE a STRUCTURE vstup do ťažkej váhy (#10183, #10268, #10437). Súbežná požiadavka ťažkej váhy za `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` sa odloží iba s opakovateľným `503`, keď je halda ALSO na tomto pomere alebo nad ním; na zdravej halde sa namiesto toho pripúšťa cez zdravý priestor. | | `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` (predvolené `1`) | `src/shared/middleware/chatBodyAdmission.ts` | Ohraničená dodatočná kapacita pre rýchlu cestu zdravej haldy (#10437).** oboje** STRUCTURE a BYTE (`admitChatRequest`, vrátane tiel ≥ `OMNIROUTE_CHAT_LARGE_BODY_BYTES`). Bez tohto obmedzenia sa každá zaneprázdnená, ale zdravá hromada žiadosti obišla bez stropu. Akonáhle je tento počet súbežných prenájmov aktívnych prostredníctvom cesty zdravej haldy, ďalšie zaneprázdnené požiadavky prejdú na cestu SAME bounded-wait/shed používanú pod skutočným tlakom haldy. `0` úplne deaktivuje bypass. | | `OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT` | `200` | `src/shared/middleware/chatBodyAdmission.ts` | Počet správ, ktoré klasifikujú žiadosť o rozhovor ako ťažkú, aj keď je jej telo pod prahovou hodnotou bajtov. | | `OMNIROUTE_CHAT_HEAVY_TOOL_COUNT` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Počet nástrojov, ktoré klasifikujú žiadosť o rozhovor ako ťažkú, aj keď je jej telo pod prahovou hodnotou bajtov. | | `OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS` | `32000` | `src/shared/middleware/chatBodyAdmission.ts` | Konzervatívny odhad tokenu veľkosti reťazca, ktorý klasifikuje požiadavku ako ťažkú; toto je proxy vstupných nákladov, nie tokenizácia fakturácie poskytovateľa. | | `OMNIROUTE_CHAT_HARD_MAX_MESSAGES` | `0` (zakázané) | `src/shared/middleware/chatBodyAdmission.ts` | Voliteľný limit histórie chatu. Predvolene vypnuté: počet správ je politika nasadenia, nie univerzálna vlastnosť požiadavky, a obmedzenie tu odmietne konverzácie s terminálom `413` skôr, ako ich kompresný kanál umožní obsluhovať. Rast haldy je ohraničený `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` a tlakovou stratou haldy. Nastavte kladnú hodnotu pre nasadenia s obmedzenou pamäťou, ktoré si vyžadujú pevný strop; prebytok potom dostane štruktúrovaný kompaktný požadovaný `413`. | | `OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES` | `67108864` (64 MB) | `open-sse/handlers/chatCore/nonStreamingResponseBody.ts` | Pevná čiapočka pre nestreamingovú odozvu upstream plne uloženú do pamäte. Po tomto je upstream čítačka zrušená a požiadavka rýchlo zlyhá namiesto toho, aby sa zväčšil neobmedzený reťazec, kým sa nevyčerpá halda. | | `OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES` | `768` | `open-sse/handlers/chatCore/responseHeaders.ts` | Maximálny počet bajtov preposlaných z hlavičiek odozvy proti prúdu. Keď je rozpočet prekročený, hlavičky s nižšou prioritou (napr. vlastné `x-codex-*`, `x-oai-request-id`) sa vypustia, aby zostali v rámci bežných limitov hlavičiek reverzného proxy. Nastavte vyššie, ak chcete poslať viac upstream metadát za cenu väčšej veľkosti hlavičky odpovede. | | `OMNIROUTE_QUOTA_RECOVERY_MAX_PER_KEY` | `64` | `src/lib/quota/quotaSessionRecovery.ts` | Väčšina lístkov na obnovenie kvóty (čakajúcich, prebiehajúcich alebo čakajúcich na potvrdenie) môže obsahovať jeden kľúč API. Keď je kľúč na limite, nové kolo dostane pôvodnú chybu kvóty namiesto lístka `202` ; opätovný pokus o odbočenie, ktoré už bolo zaparkované, stále vracia lístok. Neplatné alebo nezáporné hodnoty používajú predvolené. | | `CORS_ORIGIN` | _(nenastavené)_ | `src/server/cors/origins.ts` | Starý zoznam povolení CORS s jedným pôvodom. Pre nové nasadenia uprednostňujte `CORS_ALLOWED_ORIGINS`. CORS je len pre klientov API prehliadačov s rôznymi zdrojmi; overené zápisy na dashboard používajú namiesto toho požiadavky rovnakého pôvodu plus ochranu CSRF viazanú na reláciu. | | `CORS_ALLOWED_ORIGINS` | _(nenastavené)_ | `src/server/cors/origins.ts` | Zoznam povolených CORS oddelených čiarkami. Žiadny zástupný znak sa neodošle, pokiaľ nie je explicitne nakonfigurované `CORS_ALLOW_ALL=true`. | | `CORS_ALLOW_ALL` | `false` | `src/server/cors/origins.ts` | Únikový poklop určený len pre vývoj na odozvu ľubovoľného prehliadača `Origin`. Nepovoľujte v zdieľaných alebo produkčných nasadeniach. | | `OUTBOUND_SSRF_GUARD_ENABLED` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | Starý alias. Jeho prepínač dashboardu (prepísanie DB ) sa načíta pred touto hodnotou prostredia; `false`, `0`, `no` alebo `off` v oboch vypína kontroly hostiteľa tak, ako to robí `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true`, aj keď je prepínač dashboardu tohto príznaku vypnutý; ostatné hodnoty ponechajú stráž na dvoch príznakoch nižšie. | | `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS` | `false` | `src/shared/network/outboundUrlGuardPolicy.ts` | Vypne kontroly hostiteľa odchádzajúceho strážcu URL, vrátane bloku metadát v cloude (všetky 169.254.0.0/16, metadata.google.internal), na cestách poskytovateľa, ktoré nasledujú po režime stráže: overenie URL, zisťovanie modelu, základný uzol poskytovateľa URLs (vrátane uzlov vzdialenej zmeny poradia) a test záložného servera, okrem iných ochádzajúcich ciest image/media susediacich s poskytovateľom, ako je napr. Umožňuje tiež súkromné ciele webhooku, okrem koncových bodov cloud-metadata/link-local, ktoré zostanú blokované aj so zapnutým týmto príznakom. Žiadosti o čet odoslané prostredníctvom `BaseExecutor.execute()` si zachovávajú kontrolu metadát v cloude. Lokálni poskytovatelia pracujú s predvolenými hodnotami: `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` (predvolené `true`) už povoľuje lokálne a LAN URLs na cestách overovania, zisťovania a uzla poskytovateľa; záložný test proxy a ciele súkromného webhooku konzultujú iba tento príznak a blokujú hostiteľov local/LAN, keď je vypnutý. Prepíše `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false`. Hodnota uložená z prepínača dashboardu má prednosť pred touto premennou. | | `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | Povoľte poskytovateľovi URLs na adresách local/private (127.0.0.1, localhost, LAN, súkromné rozsahy) pre overenie poskytovateľa, zisťovanie modelu, chat a ďalšie odchádzajúce cesty susediace s poskytovateľom, ktorými sa riadi režim ochrany.** Predvolené `true`** (local-first): strážca potom zablokuje koncové body cloudových metadát — všetky 169.254.0.0/16 plus známe názvy hostiteľov metadát (metadata.google.internal, metadata.goog, Alibaba/Azure/Oracle IMDS, fd00:ec2::254). Nastavte `false` pre verejný režim, ktorý blokuje aj súkromných hostiteľov a hostiteľov so spätnou väzbou. Strážca skontroluje názov hostiteľa alebo literál IP tak, ako je napísaný, pred akýmkoľvek vyhľadávaním DNS ; vo verejnom režime obal bezpečného načítania dodatočne rozpozná názov hostiteľa a odmietne akúkoľvek súkromnú odpoveď. `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` vypne tieto kontroly na cestách svojich zoznamov riadkov. Zabudovaní lokálni poskytovatelia, ako napríklad LM Studio, Ollama, vLLM, Llamafile a Triton, preskočia všetky kontroly hostiteľa na overenie kľúčov a chat. Hodnota uložená z prepínača dashboardu má prednosť pred touto premennou. (#5066) | | `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | Nechajte cesty `/v1/audio/*` (prepisy, reč, preklady) používať uzol poskytovateľa kompatibilný s OpenAI hostený mimo localhost. Predvolene vypnuté smerovanie zvuku — na vzdialený hostiteľ zmení identitu výstupu a musí ísť o explicitné rozhodnutie operátora. uzly Loopback/private (localhost, 127.0.0.1, 172.16-31.x) sú vždy povolené a neovplyvnené. (#3963) | | `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | Nechajte `POST /v1/rerank` (a krok prehodnotenia spätnej slučky pamäťového nástroja) použiť uzol poskytovateľa kompatibilný s OpenAI, ktorý je hosťovaný mimo localhost — a LAN box alebo Tailscale peer so TEI, Infinity, vLLM atď. Predvolene vypnuté smerovanie — na vzdialený hostiteľ mení identitu výstupu a musí ísť o explicitné rozhodnutie operátora. Uzly spätnej slučky (localhost, 127.0.0.1, 172.16-31.x) sú vždy povolené a neovplyvnené. Základný URL vzdialeného uzla musí tiež prejsť politikou URL pre výstup poskytovateľa (`OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` / `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS`). | | `OMNIROUTE_LOCAL_PROVIDER_NODE_HOSTS` | _(prázdne)_ | `src/shared/network/localNodeHosts.ts` | Názvy hostiteľov (oddelené čiarkami alebo medzerami), ktoré smerovanie uzla poskytovateľa považuje za miestne — zvyčajne názov služby Docker/Compose rerankera, TEI alebo audio postranného vozíka vo vlastnej sieti Docker OmniRoute `http://reranker:8080/v1`), takže uzol nepotrebuje pevne kódovaný kontajner IP. Uvedení hostitelia majú nárok na `/v1/rerank`, `/v1/audio/*` a lokálnu kontrolu stavu bez zapnutia `RERANK_REMOTE_PROVIDER_NODES` / `AUDIO_REMOTE_PROVIDER_NODES` pre každý vzdialený uzol a volajú sa priamo — nikdy nie cez `HTTP(S)_PROXY` alebo pripojený proxy server. Stále posielajú kľúč API pripojenia. Akceptované sú iba názvy s jedným štítkom a názvy `.internal`/`.local` ; verejné literály FQDNs, IP a názvy cloudových metadát sa ignorujú s upozornením. (#14635) | | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Keď je povolené OIDC, zakážte prihlásenie heslom, aby sa používatelia mohli autentifikovať iba prostredníctvom jediného prihlásenia OIDC. Akceptuje sa aj holý alias `OIDC_DISABLE_PASSWORD_LOGIN` ; vlajka funkcie ovládacieho panela rovnakého kľúča má prednosť. (#10889) | | `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Holý alias `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` (#10889). | | `OMNIROUTE_DISABLE_MFA` | `false` | `src/server/auth/dashboardMfa.ts` | Obnova strateného zariadenia pre voliteľný informačný panel TOTP dvojfaktorové prihlásenie. Keď `true`, druhý faktor sa preskočí len pri prihlásení zo samotného hostiteľa (loopback peer a loopback `Host`); vzdialené prihlásenia a `POST /api/cli/connect` z iných zdrojov stále vyžadujú kód. Prihláste sa lokálne, zakážte dvojfaktorové nastavenie v časti Nastavenia → Zabezpečenie (kód môže zostať počas nastavenia prázdny, takže faktor, ktorý sa už neoveruje, je možné odstrániť; heslo sa stále vyžaduje), potom ho zrušte. TOTP pokrýva prihlásenie heslom a iba `omniroute connect` — prihlásenie OIDC/SSO sa spolieha na druhý faktor vlastného poskytovateľa identity. Pozri [AUTHZ_GUIDE](../architecture/AUTHZ_GUIDE.md#optional-totp-two-factor-login-16619). | ### Kontrolný zoznam kalenia ```bash # Production security minimum: AUTH_COOKIE_SECURE=true # Requires HTTPS REQUIRE_API_KEY=true # Authenticate all proxy calls ALLOW_API_KEY_REVEAL=false # Never expose keys in UI CORS_ALLOWED_ORIGINS=https://your.domain.com MAX_BODY_SIZE_BYTES=5242880 # 5 MB limit ``` --- ## 5. Sanitizácia vstupu a ochrana PII OmniRoute poskytuje dvojvrstvovú obranu: skenovanie vstrekovania na strane požiadavky a odstraňovanie PII na strane odozvy. > **Obmedzenia ⚠️ :** Tieto ochranné zábradlia sú heuristickými detekciami _best-effort_, nie kompletným firewallom s promptným vkladaním alebo systémom PII DLP. Môžu produkovať falošne pozitívne (benígne výzvy persona/RPG označené) a falošne negatívne (leetspeak, medzery, neanglické vzory). Na súlad nestačia samotné. Vylaďte režimy a otestujte ich v porovnaní s prevádzkou, kým sa na ne spoľahnete. ### Strana požiadavky: Ochrana rýchleho vstrekovania | Variabilné | Predvolené | Zdrojový súbor | Popis | | --------------------------------- | --------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `INPUT_SANITIZER_ENABLED` | `true` | `src/middleware/promptInjectionGuard.ts` | Povoliť skenovanie prichádzajúcich správ na rýchle vzory injekcie. | | `INPUT_SANITIZER_MODE` | `warn` | `src/middleware/promptInjectionGuard.ts` | Zásady vstrekovania: `warn` = iba denník, `block` = zamietnutie žiadosti s 400. Starší `redact` robí** nie** text vstrekovania prúžkov; použite `PII_REDACTION_ENABLED` na prepísanie požiadavky PII. | | `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ú `MODE=block` odmieta: `high` (predvolené), `medium` alebo `low`. Stredné vzory sú len na pozorovanie, pokiaľ nie sú znížené. | | `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` | Keď `true`, rediguje PII v prichádzajúcich požiadavkách (nezávisle od režimu vstrekovania). | | `CREDENTIAL_REDACTION_ENABLED` | `false` | `src/lib/guardrails/credentialMasker.ts` | Upravte známe vzory kľúčov API / tajných tokenov z užitočných zaťažení request/response. Prihlásiť sa; zrkadlá `PII_REDACTION_ENABLED`. | ### Strana odozvy: PII Sanitizer | Variabilné | Predvolené | Zdrojový súbor | Popis | | -------------------------------- | ---------- | ------------------------- | ---------------------------------------------------------------------- | | `PII_RESPONSE_SANITIZATION` | `false` | `src/lib/piiSanitizer.ts` | Pred návratom ku klientovi skontrolujte odpovede LLM na únik PII. | | `PII_RESPONSE_SANITIZATION_MODE` | `redact` | `src/lib/piiSanitizer.ts` | `redact` = maska PII, `warn` = iba log, `block` = drop celej odpovede. | ### VS Kód Tokenized-Route Context Sanitizer | Variabilné | Predvolené | 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 rediguje obsah explicitne pripojených citlivých súborov. Zabezpečené predvolene; nastavte na `0` na vypnutie. | ### Scenáre | Scenár | Konfigurácia | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Súlad podniku** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=block`, `PII_REDACTION_ENABLED=true`, `PII_RESPONSE_SANITIZATION=true` (vstrekovacie bloky + request/response PII redakcia; režimy sú nezávislé) | | **Iba monitorovanie** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — protokoluje, ale nikdy neblokuje | | **Osobné použitie** | Nechajte všetky deaktivované — nulovú réžiu | --- ## 6. Zásady nástrojov a smerovania | Variabilné | Predvolené | Zdrojový súbor | Popis | | ----------------------------------------------------------- | -------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | Ovláda prístup LLM tool/function-calling. `allowlist` = iba uvedené nástroje, `denylist` = všetky okrem uvedených, `disabled` = žiadne obmedzenia. | | `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | Cesta k pravidlám manipulácie s užitočným zaťažením JSON súboru (per-model/protocol upstream vylepšenia). | | `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | Interval opätovného načítania (ms) pre rýchle opätovné načítanie súboru pravidiel užitočného zaťaženia. Minimálne `1000`. | | `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | Prihlásenie: smerujte holý model `claude-*` IDs od klientov kódu Claude cez účet Claude Code OAuth namiesto vyžadovania predpony poskytovateľa. Stále vyhrávajú explicitné predpony poskytovateľa. Konfigurovateľné aj pomocou prepínača dashboardu na stránke poskytovateľa Claude. | | `OMNIROUTE_REDACT_THINKING` | `true` | `open-sse/executors/base/redactThinkingBeta.ts` | Nastavte `false` tak, aby OmniRoute zastavilo pridávanie samotnej beta verzie `redact-thinking-2026-02-12` Anthropic (prázdne bloky myslenia iba na podpis). Žiadosti s `thinking.display: "summarized"` ho bez ohľadu na to preskočia; ponecháva si ho klientom dohodnutý redigovaný beta alebo CC-kompatibilný `requestDefaults.redactThinking` opt-in. Žiadosti Claude OAuth zachovávajú beta verziu (je súčasťou odtlačku Claude kódu OAuth ), pokiaľ nie je zapnutý príznak funkcie `CLAUDE_OAUTH_SUMMARIZED_THINKING_UNREDACTED` predvolene vypnuté. | | `BARE_MODEL_DEFAULT_OVERRIDE_LEGACY` | `false` | `open-sse/services/model.ts` | Staršie správanie `resolveBareModelToConnectionDefault` (#4825): nahraďte akýkoľvek holý názov modelu `defaultModel` vybratého pripojenia. Predvolene vypnuté, nahradí sa iba `auto` alebo prázdny model; pri zapnutí zaznamená jedno upozornenie na pár. | | `COMBO_CONCURRENCY_PER_MODEL` | `3` | `open-sse/services/comboConfig.ts` | Obmedzenie súbežnosti jednotlivých modelov pre kombá typu round-robin (#9100). Kombinovaný semafor typu round-robin bol pevne nastavený na 3 súbežné požiadavky na model bez prepísania, čím sa za týmto limitom serializovala vyššia súbežnosť. Overené na `>= 1`, upnuté na `<= 32`. | | `OMNIROUTE_AGENTIC_STALL_FAILOVER` | `false` | `open-sse/services/combo/agenticStallFailover.ts` | Opt-in: nastavte na `1` (alebo `true`), takže kombinovaný člen, ktorý odpovedá na otočenie s výsledkom nástroja s rozprávaním `finish: stop` + + nulovým volaním nástroja, zlyhá na ďalší cieľ (stratégie prioritnej slučky, cyklické a pripnuté relácie). Ak sa žiadnemu cieľu nedarí lepšie, namiesto chyby sa vráti zablokovaná odpoveď a neúčtuje sa ani prerušovač poskytovateľa, ani blokovanie modelu. Streamované ťahy sú klientovi pozdržané, kým nie je vynesený verdikt. Žiadosti používajúce tvar Odpovede API `input` nie sú klasifikované. Predvolené OFF. | | `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | Nebezpečné prihlásenie, ktoré preskočí kontrolu lokálneho kontextového okna / max-input-tokenu OmniRoute pre priame požiadavky jedného modelu. Upstream poskytovatelia stále presadzujú svoje skutočné limity; rýchla kompresia a vlastný výstupný token modelu zostávajú aktívne. Efektívna prednosť je Feature Flags DB prepíše > premennú prostredia > predvolenú; nie je potrebný žiadny reštart. | | `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` presmeruje na samostatný zjednotený záznam kompatibilný s OpenAI namiesto cloudového kanála. Nenastavené (predvolené): trasa padá priamo do existujúceho cloudového potrubia. Pozri `docs/routing/SELF_HOSTED_OPENAI_ENTRY.md`. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE` | _(nenastavené)_ | `open-sse/services/selfHostedEntry.ts` | Cesta k súboru YAML ktorý obsahuje rovnaký dokument `providers:` ako `OMNIROUTE_SELF_HOSTED_PROVIDERS`, pre nasadenia, ktoré uprednostňujú súbor pred vloženým env var. Každý z nich aktivuje vlastný hosťovaný záznam. | | `OMNIROUTE_SELF_HOSTED_API_KEY` | _(nenastavená — otvorená trasa)_ | `open-sse/services/selfHostedEntry.ts` | Voliteľný zdieľaný kľúč API pre zjednotenú položku s vlastným hosťovaním (scaffold D5, vyhradený pre systém kvót na kľúč). Po nastavení musia požiadavky obsahovať `Authorization: Bearer `. Nenastavené: trasa je otvorená a zodpovedá existujúcemu vzoru lokálneho poskytovateľa s vlastným hosťovaním (nasadenie loopback/trusted-network ). | | `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(nenastavené)_ | `open-sse/services/routingStrategies.ts` | Vložený dokument YAML `strategy:` pre deterministický smerovací stroj (M2/RIC-740, D3) — blacklist/whitelist, prerušovač chladenia, priorita nákladov, latencia, záložný reťazec. Prepíše vložený blok `strategy:` vnorený do `OMNIROUTE_SELF_HOSTED_PROVIDERS` pre každý kľúč. Pozri `docs/routing/DETERMINISTIC_ROUTING.md`. | | `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(nenastavené)_ | `open-sse/services/routingStrategies.ts` | Cesta k súboru YAML ktorý obsahuje rovnaký dokument `strategy:` ako `OMNIROUTE_SELF_HOSTED_STRATEGY`, pre nasadenia, ktoré uprednostňujú súbor pred vloženým env var. | | `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(nenastavené)_ | `open-sse/services/conversationTracker.ts` | Nastavte `1` na zastavenie zhromažďovania histórie konverzácií. `resolveConversationId()` vráti nesledovaný výsledok predtým, ako prečíta SQLite alebo analyzuje históriu správ a relácia IDs dodaná klientom je tiež pokrytá. Spracovanie relácie smerovania sa nemení a existujúce záznamy sa neodstránia. Pre nasadenia, ktoré nepoužívajú zobrazenie konverzácie na dashboarde a chcú, aby otočný stôl prestal rásť. | | `OMNIROUTE_NADIR_API_KEY` | _(nenastavené)_ | `open-sse/services/autoCombo/nadirStrategy.ts` | kľúč API pre voliteľnú stratégiu automatického komba smerovača `nadir`, ktorá sa používa, keď nie je nastavené vlastné `config.nadir.apiKey` komba. Voliteľné: bezkľúčové hovory pristávajú na Nadirovej anonymnej úrovni, ktorá je obmedzená rýchlosťou za IP, a preto nie je použiteľná za zdieľanou bránou. Citlivý; uprednostňujte pole pre jednotlivé kombinácie, keď kombinácie používajú rôzne účty. | | `OMNIROUTE_NADIR_BASE_URL` | `https://api.getnadir.com` | `open-sse/services/autoCombo/nadirStrategy.ts` | Základný pôvod rozhodnutia Nadir API, ktorý sa používa, keď nie je nastavený vlastný `config.nadir.baseUrl` komba. Potrebné iba pre Nadir s vlastným hosťovaním, ktorý udržiava rýchle hlavy vo vašej vlastnej sieti. Koncové `/v1` je tolerované a odstránené. | | `OMNIROUTE_API_KEY_WEEKLY_WINDOW` | `provider` | `src/lib/usage/apiKeyUsageLimits.ts` | Týždenné okno pre limity používania USD pre každý kľúč API (vynútenie žiadosti, `GET /api/keys/{id}/usage-limits`, `@@om-usage`). `provider`: týždeň končí najskôr týždenný reset medzi upstream pripojeniami, ktoré môže kľúč dosiahnuť, alebo je to 7 dní, keď nie je známe žiadne. `calendar`: miestny týždeň od pondelka 00:00 do nasledujúceho pondelka 00:00, rovnaký pre každý kľúč. `calendar` sa odporúča, keď jeden fond upstream účtov zdieľa mnoho individuálne rozpočtovaných kľúčov. Neplatné hodnoty sa vrátia späť na `provider`. | | `OMNIROUTE_API_KEY_WEEKLY_WINDOW_TIMEZONE` | _(časové pásmo procesu)_ | `src/lib/usage/apiKeyUsageLimits.ts` | časové pásmo IANA (napríklad `Asia/Shanghai`), ktoré definuje pondelok 00:00 pre týždenné okno `calendar`. Nenastavené alebo neplatné: časové pásmo procesu OmniRoute ( `TZ` hostiteľa alebo kontajnera, ktorý je často nenastavený, tj koordinovaný svetový čas, v obrázkoch kontajnera). Ignorované v režime `provider`. | | `OMNIROUTE_MAX_TOOLS_LIMIT` | `128` | `open-sse/config/constants.ts` | Predvolený maximálny počet nástrojov povolených v požiadavke (predvolené OpenAI ). Iba kladné celé čísla; nenastavené alebo neplatné hodnoty zachovať `128`. Poskytovateľ s limitom known/proactive (`grok-cli` 200, `nvidia` 1536) stále uplatňuje svoj vlastný strop — čím sa posúva iba predvolený strop. Ciele vo formáte Claude nemajú žiadne predvolené obmedzenie ( API Messages ho nemá); stále platí naučená hranica. | | `OMNIROUTE_TOOL_OUTPUT_IMAGE_MAX_COUNT` | `16` | `open-sse/translator/request/openai-responses.ts` | Odpovede na preklad chatu: koľko obrázkov výstupu nástroja (`function_call_output`, `custom_tool_call_output`, rola `tool`) sa opätovne odošle ako časti obrázkov používateľa na žiadosť. Najnovšie sa zachovajú a každý starší sa stane zástupným symbolom textu so svojím `tool_call_id`. Iba kladné celé čísla; nenastavené alebo neplatné hodnoty zachovať `16`. | | `OMNIROUTE_TOOL_OUTPUT_IMAGE_MAX_BYTES` | `20971520` (20 MB) | `open-sse/translator/request/openai-responses.ts` | Celková veľkosť obrázka výstupu nástroja URLs opätovne odoslaného na žiadosť v rovnakom preklade. Obrázky, ktoré prekročili rozpočet, sú vypustené ako najstaršie, s jedným upozornením na žiadosť. Iba kladné celé čísla; nenastavené alebo neplatné hodnoty zachovať `20971520`. | | `OMNIROUTE_RESPONSES_STRICT_TOOL_HISTORY` | `false` | `open-sse/translator/helpers/responsesToolHistory.ts` | Ako sa spracováva nekonzistentná história nástroja Reakcie: výstup bez volania, volanie bez výstupu, chýbajúce, príliš dlhé alebo neplatné `call_id` alebo chybné historické argumenty. Vypnuté, OmniRoute opraví históriu a odošle ju (osirotené výstupy sú zrušené, nezodpovedané hovory dostanú prázdny výstup, ID sú vyrazené alebo uchytené, nesprávne tvarované argumenty sa stanú `{}`). Zapnuté, žiadosť dostane pred odoslaním `400` ; je odoslaná platná história s jej ID volania a argumentmi JSON. Prijíma `true` alebo `1`; akákoľvek iná hodnota si ponechá predvolenú hodnotu. | | `OMNIROUTE_PROMPT_EMULATE_TOOLS` | _(zapnuté)_ | `open-sse/executors/syntxChat.ts` | SYNTX.ai volanie nástroja emulovaného promptom: deaktivuje nastavenie alebo `1`/`true`/`on`/`yes` vloží do výzvy lokálny katalóg nástrojov; akákoľvek iná hodnota (napr. `0`) túto injekciu preskočí. | --- ## 7. URLs & Cloud Sync | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `BASE_URL` | `http://localhost:20128` | `src/lib/cloudSync.ts` | URL na strane servera pre úlohy internej synchronizácie na volanie `/api/sync/cloud`. Ponechajte to ako loopback/container URL aj keď je aplikácia verejne proxy. Zručnosti A2A ho tiež používajú (pozri `OMNIROUTE_BASE_URL`) a zlyhajú, namiesto toho, aby poslali kľúč API na verejný plain-http URL. | | `CLOUD_URL` | _(prázdne)_ | `src/lib/cloudSync.ts` | Cloud relay endpoint URL (prémiová funkcia). | | `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | časový limit HTTP pre požiadavky na synchronizáciu v cloude. | | `OMNIROUTE_BUILD_PROFILE` | `full` | Konfigurácia zostavy webového balíka | Profil času zostavenia (nastavený na `minimal` na fyzické vylúčenie privilegovaných modulov z balíka). | | `OMNIROUTE_STANDALONE_DIR` | _.zostavenie/ samostatný výstup_ | `scripts/build/colocate-standalone.mjs` | Prepísanie času zostavenia pre samostatný výstupný adresár spotrebovaný krokom kolokácie po zostavení. Nie je to nastavenie runtime. | | `OMNIROUTE_DIST_DIR` | `dist/` (repo root) | `scripts/build/prepublish.ts` | Prepísanie času zostavenia pre adresár, do ktorého krok publikovania (`prepublish.ts`) zapíše zväzok CLI, namiesto `dist/` pod koreňový adresár úložiska. Adresár sa pred zostavením vymaže. Nie je to nastavenie runtime. | | `OMNIROUTE_CLOUD_SYNC_SECRET` | _(prázdne)_ | `src/lib/cloudSync.ts` | Zdieľané tajomstvo používané na overenie podpisu HMAC-SHA256 odpovedí Cloud Sync. | | `OMNIROUTE_CLOUD_SYNC_SECRETS` | `false` | `src/lib/cloudSync.ts` | Nastavte na `true`, aby ste umožnili koncovému bodu Cloud Sync prepísať miestne poverenia. Predvolená hodnota je `false`. | | `OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE` | `false` | `src/lib/cloudSync.ts` | Nastavte na `true`, ak chcete odmietnuť nepodpísanú odpoveď Cloud Sync, keď nie je nakonfigurovaný žiadny lokálny tajný kľúč (#13679). Prítomný podpis je vždy overený — a vždy odmietnutý, keď `OMNIROUTE_CLOUD_SYNC_SECRET` nie je nastavené — bez ohľadu na tento príznak. Predvolená hodnota sa zmení na vynútenú vo verzii 3.9. | | `OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP` | `false` | `src/app/api/providers/zed/import/route.ts` | Nastavte na `true`, aby ste sa vrátili k jednokrokovému správaniu „importovať všetko“ vo verzii 3.8.5 bez potvrdenia používateľom. | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | OAuth, Dashboard, synchronizácia | Verejne orientované URL pre OAuth redirect_uri, odkazy na informačný panel a vygenerované verejné URLs. Nastavte toto na stabilné verejné URL keď spätné volania OAuth alebo generované odkazy prehliadača musia používať kanonického hostiteľa reverzného proxy. | | `NEXT_PUBLIC_CLOUD_URL` | _(prázdne)_ | Na strane klienta | Zrkadlo `CLOUD_URL` na strane klienta. | | `NEXT_PUBLIC_APP_URL` | _(nenastavené)_ | `src/shared/services/cloudSyncScheduler.ts` | Staršia záloha pre `NEXT_PUBLIC_BASE_URL`. | | `NEXT_PUBLIC_PORT` | _(nenastavené — sa vráti späť na `PORT`)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Záložný port na strane klienta pre zobrazenie URLs keď nie je známy žiadny pôvod (SSR/tests); čítať pred `PORT`. | | `OMNIROUTE_PUBLIC_BASE_URL` | _(nenastavené)_ | Public-origin resolver, image URLs | Pôvod OmniRoute s najvyššou prioritou v prehliadači používaný na verejné generovanie URL a overenie pôvodu prehliadača bez ovládacieho panela. Nastavte to, keď OpenWebUI alebo iný prenos dosiahne OmniRoute interným URL, ale prehliadač používateľa musí načítať vygenerované médium z LAN, tunela alebo verejného zdroja. Do** nie** zahrnúť `/v1`. | | `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(nenastavené)_ | `open-sse/config/providerPluginManifestUrl.ts` | Absolútny manifest doplnku poskytovateľa URL inzerovaný klientom sidecar. Keď nie je nastavené, OmniRoute odvodzuje `/api/v1/provider-plugin-manifest` od pôvodu požiadavky alebo HOST/PORT. | | `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | Protokol používaný pri odvodzovaní manifestu URL doplnku poskytovateľa zo HOST/PORT bez pôvodu požiadavky. Ak nie je nastavené žiadne explicitné `OMNIROUTE_PROVIDER_MANIFEST_URL`, nastavte na `https` za verejným proxy serverom ukončujúcim TLS. | | `OMNIROUTE_TRUST_PROXY` | _(nenastavené)_ | `src/server/origin/publicOrigin.ts` | Voliteľný režim dôveryhodnosti pre preposielané hlavičky s verejným pôvodom. Zrušte nastavenie = nedôverujte `Forwarded` / `X-Forwarded-*` pre bezpečnostné rozhodnutia. `true` / `loopback` dôveruje preposlanému host/proto iba z proxy servera spätnej väzby s tokenom. `private` / `lan` tiež dôveruje privátnym LAN proxy partnerom, umožňuje `API_PORT` mostu udržiavať `X-Forwarded-For` takéhoto partnera a umožňuje LOCAL_ONLY routes akceptovať klienta privátnej siete, ktorého takýto proxy nahlási (nikdy nie je požiadavka Cloudflare tunela, iba loopback alebo len loopback CLI-token brány). Vo výrobe uprednostňujte explicitné `NEXT_PUBLIC_BASE_URL`. | | `KIE_CALLBACK_URL` | _(nenastavené)_ | `open-sse/utils/kieTask.ts` | Verejné spätné volanie URL pre asynchrónne úlohy kie.ai. Prepísanie najvyššej priority pred `OMNIROUTE_KIE_CALLBACK_URL` a `OMNIROUTE_PUBLIC_URL`. | | `OMNIROUTE_KIE_CALLBACK_URL` | _(nenastavené)_ | `open-sse/utils/kieTask.ts` | Alternatívny pravopis `KIE_CALLBACK_URL`. Vráti sa späť, keď primárna premenná nie je nastavená. | | `OMNIROUTE_PUBLIC_URL` | _(nenastavené)_ | `open-sse/utils/kieTask.ts` | Verejný pôvod použitý na zostavenie asynchrónneho spätného volania URLs. Záložné volanie s najnižšou prioritou pre spätné volanie kie.ai; používa sa aj ako všeobecný verejný URL pre iné relé. | | `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | Koncový bod vyhľadávania kvóty CrofAI používaný stránkou Použitie. Potlačenie pre relé / testovacie prípravky. | | `OMNIROUTE_CLINEPASS_USAGE_URL` | `https://api.cline.bot/api/v1/users/me/plan/usage-limits` | `open-sse/services/usage/clinepass.ts` | ClinePass 5-hodinový / týždenný / mesačný koncový bod kvóty používaný na stránke Použitie. Potlačenie pre relé / testovacie prípravky. | | `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | Oficiálny koncový bod používania OpenCode Go overený kľúčom API, ktorý používa stránka Používanie. Potlačenie pre relé / testovacie prípravky. | | `OPENCODE_SYNTHESIZE_CLI_HEADERS` | `true` | `open-sse/executors/opencode.ts` | Syntetizujte hlavičky identity OpenCode CLI (User-Agent, x-opencode-client/project, request/session UUIDs) v požiadavkách opencode-go/zen upstream, ktoré klient neodoslal, takže Cloudflare na výstupe VPS ich akceptuje (#6210/#5997). Štandardne zapnuté od #10571; odhlásiť sa pomocou `false`/`0`/`no`/`off`. | | `OPENCODE_USER_AGENT` | `opencode/1.18.31` | `open-sse/utils/opencodeHeaders.ts` | Predvolený používateľský agent sa používa, keď je `OPENCODE_SYNTHESIZE_CLI_HEADERS` zapnuté a nie je nastavené žiadne prepísanie `_USER_AGENT` pre jednotlivých poskytovateľov. Aplikuje sa len na vykonávateľov opencode. Pri bezkľúčovej požiadavke sa upstream brány, nakonfigurovaná hodnota, ktorá nenesie `opencode/= 1.17>` nahradí touto predvolenou hodnotou a nie je odmietnutá. | | `OMNIROUTE_FORWARD_ATTRIBUTION` | `1` (zapnuté) | `open-sse/utils/opencodeHeaders.ts` | Preposielajte hlavičky priraďovania klientskej aplikácie (`x-session-id`, `x-title`, `http-referer`) poskytovateľom upstream, takže požiadavka, ktorá sa spustí v uvedenom zväzku, si zachová svoju identitu cez smerovač (na nich kľúč OpenRouter publisher gates). `0`/`false`/`no`/`off` zachováva identitu registry/operator a znižuje hodnoty zadané klientom. Vlastné hlavičky nakonfigurované operátorom vždy víťazia nad hodnotami klienta. | | `OPENCODE_CLIENT` | `desktop` | `open-sse/executors/opencode.ts` | Hodnota pre syntetizovanú hlavičku `x-opencode-client` keď je `OPENCODE_SYNTHESIZE_CLI_HEADERS` zapnuté. | | `OPENCODE_PROJECT` | `global` | `open-sse/executors/opencode.ts` | Hodnota pre syntetizovanú hlavičku `x-opencode-project` keď je `OPENCODE_SYNTHESIZE_CLI_HEADERS` zapnuté. | | `OMNIROUTE_EGRESS_IP_LOCK_PROVIDERS` | _(nenastavené)_ | `open-sse/config/providerErrorRules.ts` | Efektívna množina poskytovateľov, ktorých upstream zlyhania sú zablokované výstupným IP (jeden 429 zaparkuje každé súrodenecké pripojenie zdieľajúce toto IP). Unset používa predvolené `opencode,opencode-go,opencode-cli` voľnej úrovne; `none`/`off`/`false`/`0` úplne zakáže kaskádu; množinu nahrádza zoznam oddelený čiarkami. Platené plány sú účtované upstream a môžu ho bezpečne zakázať (#9611). | | `OMNIROUTE_EGRESS_QUOTA_ROTATION_PROVIDERS` | _(nenastavené)_ | `open-sse/config/providerErrorRules.ts` | Rozsah rotácie pri opustení kvóty. Unset vyčlení člena fondu na 429 iba pre vyššie uvedenú skupinu IP-bucket; `all` rozširuje tento zápis ku každému poskytovateľovi, takže limit sadzby prijatý prostredníctvom člena spôsobí, že ďalší výber vyjde inde. Akákoľvek hodnota iná ako `all` sa ignoruje. Vyžaduje `PROXY_SKIP_RECENTLY_FAILED` (štandardne zapnuté). Obchod je kľúčovaný výstupnou adresou, nie (poskytovateľ, adresa), takže rozšírených 429 parkuje tento člen pre každého poskytovateľa, kým neuplynie obdobie (5 minút, zdvojnásobenie na 15). Čítanie na výsledok odpovede, takže zmena platí bez reštartu. | | `OPENCODE_FREE_TIER_REQUEST_CONTRACT` | _(nenastavené)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Nastavte na `off`, ak chcete zastaviť úpravu tela bezkľúčových požiadaviek OpenCode (príznak streamovania a zoznam nástrojov). Hlavičky sú stále použité. Čítať na žiadosť, 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 majú deklarovať pri bezkľúčovej požiadavke OpenCode, ktorá nenesie žiadne, ak pre tento model ešte nebolo nič pozorované. Prázdne sa vráti späť do jedného zástupného symbolu, ktorý má model nevolať. Najviac 32 záznamov, `[A-Za-z_][A-Za-z0-9_-]{0,63}`; neplatné položky sa ignorujú. | | `OPENCODE_FREE_TIER_CREDENTIAL` | `public` | `open-sse/executors/opencodeFreeTierContract.ts` | Poverenie odoslané na jazdnom pruhu voľného radu (`https://opencode.ai/inference/v1`). Od 21.10.2026 tento pruh odpovedá 403 `Model access is disabled` na skutočný kľúč API a namiesto toho slúži anonymnému doslovu. `key` uchováva kľúč API operátora, `none`/`off` neposiela hlavičku poverení, akýkoľvek iný literál sa odosiela ako token nosiča. Čítať na požiadanie. | | `OPENCODE_FREE_TIER_RELAY_URL` | odstaviť | `src/lib/opencodeFreeRelay.ts` | Základné URL relé Bun pre požiadavky OpenCode na voľnej vrstve. Keď sú nastavené, tieto požiadavky nesú systémovú výzvu OpenCode CLI a sadu nástrojov a sú odosielané cez relé (`scripts/ops/opencode-free-relay.ts`), pretože upstream odpovedá 429 klientom HTTP, ktorí nie sú Bun. Loopback URLs sa spustí so serverom, keď je `bun` na PATH; cesta na URL sa ignoruje. Obyčajný `http://` je akceptovaný iba pre hostiteľov so spätnou slučkou (`localhost`, `127.0.0.0/8`, `::1`); každý iný hostiteľ musí používať `https://`, inak požiadavky zlyhajú s explicitnou chybou. Iba dokončenia rozhovoru. Čítať na požiadanie. | | `OPENCODE_FREE_RELAY_BUN` | `bun` na PATH | `src/lib/opencodeFreeRelay.ts` | Binárna Bun používaná na spustenie relé. | | `OPENCODE_FREE_RELAY_SCRIPT` | `scripts/ops/opencode-free-relay.ts` pod koreňom balíka | `src/lib/opencodeFreeRelay.ts` | Cesta skriptu relé. Predvolená hodnota sa rieši z koreňového adresára nainštalovaného balíka a potom z pracovného adresára. | | `OPENCODE_FREE_RELAY_HOST` | `127.0.0.1` | `scripts/ops/opencode-free-relay.ts` | Relé počúvať hostiteľa. | | `OPENCODE_FREE_RELAY_PORT` | `20199` | `scripts/ops/opencode-free-relay.ts` | Port na počúvanie relé. | | `OPENCODE_FREE_RELAY_UPSTREAM` | `https://opencode.ai` | `scripts/ops/opencode-free-relay.ts` | Počiatok relé smeruje dopredu. Musí byť `https://` (`http://` len pre začiatok testu spätnej slučky); relé odmietne spustiť inak. | | `OPENCODE_FREE_RELAY_TOKEN` | odstaviť | `scripts/ops/opencode-free-relay.ts`, `open-sse/executors/opencodeRelay.ts` | Zdieľané tajomstvo. OmniRoute to odošle v `x-opencode-relay-auth`; relé odpovie 401 bez toho. Vyžaduje sa: relé so spätnou slučkou `OPENCODE_FREE_RELAY_HOST` bez neho odmietne spustiť. | | `OPENCODE_FREE_RELAY_PROXY_ALLOWLIST` | odstaviť | `scripts/ops/opencode-free-relay.ts` | Výstupné proxy servery `host` alebo `host:port` oddelené čiarkou, ktoré relé bez spätnej slučky prijíma od volajúcich (`x-opencode-relay-proxy`); akýkoľvek iný proxy odpovedá 403. Ignorované na spätnej slučke. | | `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | Ollama Nastavenia cloudu URL používané na zoškrabovanie kvót. Potlačenie pre relé / testovacie prípravky. | | `OMNIROUTE_OLLAMA_CLOUD_BALANCE_URL` | `https://ollama.com/api/balance` | `open-sse/services/ollamaCloudBalance.ts` | Ollama Cloud zdokumentovaný upstream koncový bod bilancie (`GET https://ollama.com/api/balance`, `Authorization: Bearer `). Čítajte raz pri načítaní modulu. Používa sa najskôr pre kvótu Ollama Cloud, keď má pripojenie kľúč API ; škrabka súborov cookie na stránke nastavení zostane ako záložná. Potlačenie pre relé / testovacie prípravky. | | `OLLAMA_USAGE_COOKIE` | _(nenastavené)_ | `open-sse/services/usage.ts` | Ollama Cloud `__Secure-session` cookie používaný na zoškrabovanie kvót stránky nastavení. Citlivý; ak je nakonfigurovaných viacero účtov, uprednostnite pole Dashboard pre jednotlivé pripojenia. | | `OLLAMA_CLOUD_USAGE_COOKIE` | _(nenastavené)_ | `open-sse/services/usage.ts` | Alternatívne Ollama Cloud `__Secure-session` cookie env var. Citlivý; ak je nakonfigurovaných viacero účtov, uprednostnite pole Dashboard pre jednotlivé pripojenia. | | `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(nenastavené)_ | `open-sse/services/usage.ts` | Alternatívne Ollama Cloud `__Secure-session` cookie env var použité pred kratšími aliasmi. Citlivý; ak je nakonfigurovaných viacero účtov, uprednostnite pole Dashboard pre jednotlivé pripojenia. | | `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | CodeWhisperer (AWS Kiro) limity používania koncového bodu. Potlačenie pre relé / testovacie prípravky. | > [!IMPORTANT] > Pri nasadzovaní za reverzným proxy (nginx, Caddy) nastavte `NEXT_PUBLIC_BASE_URL` na vaše stabilné verejné URL (napr. `https://omniroute.example.com`), keď spätné volania OAuth alebo generované verejné odkazy musia používať tento názov hostiteľa. Bez toho môžu spätné volania OAuth zlyhať, pretože redirect_uri sa nezhoduje a generované verejné odkazy môžu ukazovať na pôvod interného kontajnera. > > Ponechajte `BASE_URL` ako interné loopback/container URL pre úlohy server-to-server. Nepoužívajte `Origin` prehliadača ani verejný názov hostiteľa na interné samonačítanie s poverením. > > Overené zápisy na dashboard nevyžadujú statickú verejnú základňu URL: dashboard odosiela nebezpečné požiadavky rovnakého pôvodu s tokenom CSRF viazaným na reláciu. OmniRoute stále centralizuje overenie verejného pôvodu pre integrácie prehliadačov, ktoré nie sú na dashboardoch: explicitné verejné URL env sú dôveryhodné ako prvé; nespracované hlavičky `Forwarded` / `X-Forwarded-*` sa ignorujú, pokiaľ nie je povolené `OMNIROUTE_TRUST_PROXY` a bezprostredný proxy partner nie je označený ako dôveryhodný. Nepoužívajte nastavenia CORS na opravu požiadaviek dashboardu s rovnakým pôvodom; CORS je len pre klientov prehliadača s rôznymi zdrojmi. --- ## 8. Outbound Proxy Smerujte upstream hovory poskytovateľa LLM cez proxy HTTP alebo SOCKS5 na kontrolu výstupu, geografické smerovanie alebo maskovanie IP. `OMNIROUTE_UPSTREAM_HTTP2_ENABLED` je predvolene `true`. Nastavte ho na `false`, `0`, `no` alebo `off` aby ste vynútili HTTP/1.1 dispečerom Undici v `open-sse/utils/proxyDispatcher.ts` a `open-sse/utils/proxyFetch.ts`: priamy výstup, HTTP(S)/SOCKS proxy, relé a ich opätovné pokusy o nové zásuvky. Tým sa zachová overenie certifikátu TLS, overenie proxy, limity pripojenia a nastavenia udržiavania. Po jeho zmene reštartujte OmniRoute, pretože dispečeri sú vo vyrovnávacej pamäti a pri spustení sa vytvárajú prenosoví agenti. Prepínač neovláda odtlačky prstov wreq TLS ani prenosy špecifické pre poskytovateľa. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ---------------------------------------- | --------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | Povoliť proxy agenta SOCKS5 pre upstream hovory. Odhlásiť sa pomocou `false`. | | `OMNIROUTE_GZIP_REQUEST_BODIES` | `true` | `open-sse/executors/base/gzipRequestBody.ts` | Gzipujte telo požiadavky odoslané oficiálnemu `api.anthropic.com` (4096 znakov +, iba priame spojenia; preskočené za proxy, TLS zosobnenie alebo `NODE_EXTRA_CA_CERTS`). Anthropic akceptuje iba gzip. Odmietnuté kódovanie (415, neantropické 400/403 alebo pôvodná analýza JSON 400) sa znova odošle nekomprimované raz a pôvod zostane nekomprimovaný jednu hodinu. Deaktivujte sa pomocou `0`, `false`, `off` alebo `no`. | | `NEXT_PUBLIC_ENABLE_SOCKS5_PROXY` | `true` | Na strane klienta | Povedomie o dostupnosti SOCKS5 na strane klienta. | | `PROXY_SKIP_RECENTLY_FAILED` | `true` | `src/shared/utils/featureFlags.ts` | Príznak zapnutej predvolenej funkcie (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). Proxy pooly a rotácia podľa účtu zastavia opätovné obsluhovanie člena, ktorý práve zlyhal (odmietnutá sonda TCP alebo 429 cez ňu) na obdobie, ktoré sa zdvojnásobí pri každom opakovaní až do limitu. `false` obnoví obyčajný výber. | | `SELECTOR_CONTROL_ALLOWLIST` | _(nenastavené)_ | `src/lib/proxySubscription/selectorGuard.ts` | Zoznam povolených cieľov selektorového riadenia lokálneho jadra mimo slučky (comma/space oddelení hostitelia alebo IPs, `*` otvára LAN/private, ale nikdy nie metadata/link-local). Spätná slučka cez http/https je predvolene povolená. Ak je nastavená a nie je prázdna, nad touto premennou víťazí hodnota DB dashboardu. | | `PROXY_QUOTA_429_BASE_MS` | `300000` | `open-sse/utils/proxyRefusalMemory.ts` | Základná perióda (ms) 429 vynechaných plôch, zdvojnásobená pri každom opakovaní. Prečítajte si raz pri spustení. Obmedzené na `1000..3600000`; mimo rozsah alebo nečitateľné sa vráti späť na predvolenú hodnotu s upozornením. | | `PROXY_QUOTA_429_MAX_MS` | `900000` | `open-sse/utils/proxyRefusalMemory.ts` | Čiapka (ms) 429 vyňatých z produkcie. Prečítajte si raz pri spustení. Obmedzené na `1000..3600000`; mimo rozsah alebo nečitateľné sa vráti späť na predvolenú hodnotu s upozornením. Keď je uzáver pod základňou, vráti sa späť na predvolenú hodnotu. Zníženie viečka tiež skracuje zabudnutie na sériu: záznamy sa po uplynutí platnosti vymažú `2 x max`. | | `PROXY_POOL_SHARED_EGRESS_ORDER` | `false` | `src/shared/utils/featureFlags.ts` | Príznak funkcie opt-in (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). V prípade poskytovateľov, ktorých kvóta je rozdelená podľa výstupnej adresy, ohodnoťte člena fondu, ktorý zdieľa nedávno odmietnutú výstupnú adresu pozorovaného člena, tesne pod zdravých členov. Iba na objednávku, nikdy nie je vylúčené. Potrebuje `PROXY_SKIP_RECENTLY_FAILED`, ktorý prečíta signál odmietnutia. | | `PROXY_WEBHOOK_REBOUND_MS` | `300000` | `src/lib/proxyEvents/proxyTransitionBridge.ts` | Okno odrazu (ms) obmedzujúce opakované upozornenia `proxy.set_aside` webhooku na člena fondu, takže množstvo odmietnutí odošle jednu udalosť. Prečítajte si na každej emisii. Obmedzené na `1000..3600000`; mimo rozsah alebo nečitateľné ticho sa vráti na predvolenú hodnotu. | | `HTTP_PROXY` | _(nenastavené)_ | štandard Node.js | HTTP proxy pre upstream hovory. | | `HTTPS_PROXY` | _(nenastavené)_ | štandard Node.js | HTTPS proxy pre upstream hovory. | | `ALL_PROXY` | _(nenastavené)_ | štandard Node.js | Univerzálny proxy (podporuje `socks5://`). | | `OMNIROUTE_PROXY_ECHO_URL` | _(nenastavené)_ | `src/lib/proxyEchoTarget.ts` | Pripne cieľ echo-IP, ktorý používajú výstupné sondy proxy, k jednému URL. Nenastavené, sonda skúša `api64.ipify.org` potom `api4.ipify.org` takže tunely IPv4-only nie sú hlásené ako mŕtve (#9694). | | `NO_PROXY` | _(nenastavené)_ | štandard Node.js | Čiarkami oddelené hostnames/IPs na obídenie proxy. | | `OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS` | `32` | `open-sse/utils/proxyDispatcher.ts` | Maximálny počet súbežných soketov na jedného servera proxy HTTP/SOCKS vo vyrovnávacej pamäti. Dlhotrvajúce toky SSE, ako napríklad Codex `/v1/responses` potrebujú viac ako jedno pripojenie, keď niekoľko žiadostí zdieľa rovnaký server proxy na úrovni účtu. Hodnoty nad `256` sú obmedzené. | | `SOCKS_HANDSHAKE_TIMEOUT_MS` | `10000` | `open-sse/utils/socksConnectorWithFamily.ts` | SOCKS5 handshake (pripojenie) časový limit v ms. Zvýšte ho, keď je jeden hostiteľ domácej brány zasiahnutý vysokou súbežnosťou (napr. 100 súčasných požiadaviek) — skutočný handshake môže pod nasýteným fondom presiahnuť 10 s, aj keď je proxy dosiahnuteľný, čo sa inak javí ako falošné `[Proxy Fast-Fail] Proxy unreachable`. Obmedzené na `120000`. | | `PROXY_FAIL_OPEN` | `false` | `src/sse/handlers/chatHelpers.ts` | Keď je `false` (predvolené), požiadavka, ktorej pridelený proxy sa nepodarí vyriešiť, je** odmietol (fail-closed)** namiesto návratu k priamemu pripojeniu — zabraňuje únikom skutočných IP. Ak chcete obnoviť starú záložnú verziu DIRECT nastavte `true`. | | `ENABLE_TLS_FINGERPRINT` | `false` | `open-sse/executors` | Sfalšujte odtlačok prsta TLS pomocou wreq-js (napodobňuje Chrome 124). Počíta 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`). Direct TLS si zachová svoje pôvodné správanie, keď nie je nastavené; iba títo poskytovatelia smerujú cez most odtlačkov prstov Chrome-124. Groq (`api.groq.com`) je vylúčené, aj keď nie je nastavený zoznam povolených, pretože Chrome JA3 spúšťa Cloudflare 1010, zatiaľ čo natívne undici dosiahne API. | | `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | Povoliť kontextu prehliadača Claude Turnstile Playwright ignorovať chyby certifikátu HTTPS. | ### Scenáre | Scenár | Konfigurácia | | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | **SOCKS5 cez SSH tunel** | `ALL_PROXY=socks5://127.0.0.1:7890`, `ENABLE_SOCKS5_PROXY=true` | | **Firemný HTTP proxy** | `HTTP_PROXY=http://proxy.corp.com:3128`, `HTTPS_PROXY=http://proxy.corp.com:3128`, `NO_PROXY=localhost,internal.corp.com` | | **Proti odtlačkom prstov** | `ENABLE_TLS_FINGERPRINT=true` — vyžaduje `wreq-js` (v cene) | | **Kontrolovaný výstup / žiadny priamy prístup** | Nechajte `PROXY_FAIL_OPEN=false` (predvolené). Požiadavky ťažko zlyhajú, keď proxy nie je k dispozícii namiesto úniku cez priame. | | **Legacy / dev — umožňujú priamu rezervu** | `PROXY_FAIL_OPEN=true`. Obnovuje správanie pred zosilnením: priame pripojenie sa používa, keď zlyhá rozlíšenie proxy. | > **Poznámka (NVIDIA validácia obíde — #3226):** Koncový bod overenia kľúča API NVIDIA sa zastaví pri smerovaní cez globálne načítanie proxy/TLS-patched (undici dispatcher → 504). `src/lib/providers/validation.ts::directHttpsRequest()` zámerne obchádza opravu proxy pre toto jedno overovacie volanie pomocou `safeOutboundFetch({ bypassProxyPatch: true })`. Toto je zdokumentovaná výnimka s rozsahom —** nie** ovplyvniť výstup chat/usage. Obtok je pripojený pomocou `tests/unit/proxy-bypass-scope-guard-3226.test.ts`. --- ## 9. Integrácia nástrojov CLI Ovláda, ako OmniRoute objavuje a spúšťa CLI postranné vozíky (Claude Code, Codex atď.). | Variabilné | Predvolené | Zdrojový súbor | Popis | | --------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLI_MODE` | `auto` | `src/shared/services/cliRuntime.ts` | `auto` = vyhľadávací systém PATH; `manual` = používa iba explicitné cesty. | | `CLI_EXTRA_PATHS` | _(nenastavené)_ | `src/shared/services/cliRuntime.ts` | Ďalšie položky PATH pre CLI binárne objavovanie (oddelené dvojbodkou). | | `CLI_CONFIG_HOME` | _(nenastavené)_ | `src/shared/services/cliRuntime.ts` | Prepísať domovský adresár na čítanie konfigurácií CLI (`~/.claude`, `~/.codex`). Musí byť absolútna a v rámci procesu home —** alebo** , v kontajneri, cesta namontovaná na väzbu (takto funguje `/host-home` ). Všetko ostatné padá späť do domáceho dir. | | `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | Povoliť OmniRoute zapisovať konfiguračné súbory CLI (obnovenie tokenov, údaje relácie). Nastavte na `false`, aby každý zápis konfigurácie CLI zlyhal 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. Bez neho sa detekcia najskôr pokúsi `agent` a vráti sa späť na `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árke 5dive CLI. | | `CLI_5DIVE_STATE_DIR` | `/var/lib/5dive` | `src/shared/services/cliRuntime.ts` | stavový adresár systému 5dive (autorizačné profily vlastnené root); zrkadlí predvolenú STATE_DIR 5dive. | | `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k Continue CLI binárne. | | `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 kódu Qwen 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_WHYCODES_BIN` | `whycodes` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru WhyCodes CLI. | | `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k Google Gemini CLI binárnym — kontrolám detection/health len na strane servera; `omniroute run gemini` rieši binárny súbor `gemini` zo systému PATH. | | `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárke 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ľané oboma položkami katalógu (`hermes` a `hermes-agent`). | | `CLI_FORGE_BIN` | `forge` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru ForgeCode CLI. | | `CLI_JCODE_BIN` | `jcode` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru jcode CLI. | | `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 CodeWhale CLI. | | `CLI_SMELT_BIN` | `smelt` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Smelt CLI. | | `CLI_PI_BIN` | `pi` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárke Pi (pi-coding-agent). | | `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Crush CLI. | | `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu agentu Oh My Pi (`omp`). | | `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Letta CLI. | | `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` | _(žiadne)_ | `src/shared/services/cliRuntime.ts` | Vlastná cesta k binárnemu súboru Windsurf. Windsurf lode** žiadny predvolený príkaz** Binárna detekcia — zostane zakázaná, kým toto nenastavíte. | | `CLI_DEVIN_BIN` | `devin` | `open-sse/executors/devin-cli.ts` | Vlastná cesta k binárnemu súboru Devin CLI (v3.8.0). Používa ho vykonávateľ Windsurf/Devin. | | `DEVIN_DESKTOP_VERSION` | `3.6.27` | `open-sse/executors/devin-desktop.ts` | Devin Desktop `ide_version`. Prepisy musia používať formát `x.y.z` ; neplatné hodnoty sa vrátia späť na overenú predvolenú hodnotu. | | `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | Zbalený Codeium/language-server `extension_version`, odlišný od Desktop `ide_version`. Prepisy musia používať `x.y.z`; neplatné hodnoty používajú predvolené nastavenie balíka. | | `CLI_DEVIN_AGENTIC_BIN` | `devin` | `open-sse/executors/devin-cli-agentic.ts` | Prepísanie Devin CLI iba pre agentský most. Exekútor akceptuje iba lokálne ACP stdio upstream. | | `DEVIN_AGENTIC_HOME` | _(povinné)_ | `open-sse/executors/devin-cli-agentic.ts` | Absolútne izolovaný domov pre agentický podproces Devin ; akceptované mostové cesty sú `/home/bridge` a task-local `.sandbox` cesty (na Windows, `C:\...\.sandbox\...`). | | `DEVIN_AGENTIC_ACP_TIMEOUT_MS` | `120000` | `open-sse/executors/devin-cli-agentic.ts` | Maximálne trvanie jedného otočenia Devin ACP predtým, ako most ukončí dieťa a vráti explicitný časový limit. | | `DEVIN_BRIDGE_MODEL` | `devin-cli-agentic/swe-1-7` | `docker/devin-bridge/compose.yml` | Hlavný Claude Kód modelu alias pre izolovaný most. Živý postroj nahrádza príklad modelom vráteným aktuálnym účtom Devin. | | `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izolovaný alias mosta, ktorý sa používa, keď kód Claude požaduje predvolené nastavenie pre sonnet. | | `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izolovaný alias mosta používaný, keď kód Claude požaduje predvolené nastavenie Opus. | | `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izolovaný alias mosta používaný, keď kód Claude požaduje predvolené nastavenie Haiku. | | `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izolovaný alias mosta používaný pre subagentov kódu Claude. | | `DEVIN_SEAT_API_URL` | `https://server.codeium.com` | `open-sse/services/usage/devinCli.ts` | Voliteľné prepísanie pre správu sedadla Codeium API používanú Devin CLI (`GetUserStatus`). | | `AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Prepísanie absolútnej cesty pre binárny súbor Augment (Auggie) CLI ktorý používa miestny poskytovateľ `auggie`. Späť na `CLI_AUGGIE_BIN`, potom vyhľadávanie PATH. | | `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Prepísanie aliasu pre binárnu cestu Augment (Auggie) CLI (skontrolované po `AUGGIE_BIN`). | | `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | Binárny súbor používaný pre stdio klienta lokálneho poskytovateľa `zcode`. Vráti sa späť na `zcode` na PATH. | | `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | JSON pole (≤ 16 reťazcov) extra argumentov odovzdaných do binárneho súboru `zcode` pri spustení cez `cliTools`. | | `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | Pracovný adresár pre podproces app-server ZCode. | | `ZCODE_TRANSPORT` | `app-server` | `open-sse/executors/zcode.ts` | `app-server` (predvolené) alebo `gateway`.** Experimentálne / nepodporované:** `gateway` posiela priame požiadavky AI kódovacieho plánu Z. HTTP reprodukovaním protokolu klienta ZCode (podpisovanie handshake a hlavičky proof-of-work klienta 0.16.9) a môže sa prerušiť pri aktualizácii ZCode. Akceptuje iba profil Individuálny kódovací plán. | | `ZCODE_PROVIDER_ID` | `account:zai-individual-coding-plan` | `open-sse/executors/zcode.ts` | Presný profil natívneho poskytovateľa pre výber modelu. Keď nie je nastavený, použije sa profil účtu individuálneho plánu, ktorý sa vráti späť na `builtin:zai-coding-plan` (položka konfigurácie, ktorá obsahuje kľúč Individuálny plán kódovania). Nastavte presné ID napríklad `account:zai-start-plan`, aby ste pripli tento profil; pripnutý profil nikdy nespadne späť. | | `ZCODE_SERVER_RUNTIME_ROOT` | `~/.zcode/server` | `open-sse/executors/zcode.ts` | Koreň runtime aplikačného servera ZCode (kde sa nachádzajú pribalené `node` a `zcode-server.cjs` ). | | `ZCODE_SERVER_NODE` | `/node` | `open-sse/executors/zcode.ts` | Spustiteľný súbor uzla používaný na hosťovanie aplikačného servera ZCode. | | `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | Vstupný skript servera aplikácie používaný na hosťovanie servera ZCode. | | `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | Časový limit spustenia (ms) predtým, ako sa spustenie ZCode app-server považuje za neúspešné. | | `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | Časový limit RPC na žiadosť (ms) pre volanie ZCode app-server. | | `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | Maximálne trvanie (ms) jedného ťahu ZCode predtým, ako ho supervízor vyprší. | | `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | Interval dotazovania (ms) na dokončenie obratu ZCode. | | `MINIMAX_CODE_GATEWAY_URL` | `https://agent.minimax.io/mavis/api/v1/llm/v1/messages` | `open-sse/executors/minimaxCodeGateway.ts` | Koncový bod spravovanej brány MiniMax, ktorý odpovedá volaniami natívnych nástrojov. Je to interný koncový bod aplikácie MiniMax Code, nie zdokumentovaný verejný API: môže sa zmeniť bez upozornenia a požiadavka potom zlyhá s 502, ktorá pomenuje transport. | | `MINIMAX_CODE_GATEWAY_TIMEOUT_MS` | `60000` | `open-sse/executors/minimax-code.ts` | Maximálne trvanie (ms) jedného pokusu o spravovanú bránu. Celý hovor (pokus, stiahnutie, jeden pokus) trvá približne dve minúty, takže nedostupná brána nedokáže udržať modelový slot dlho. | | `MINIMAX_CODE_GATEWAY_RETRIES` | `1` | `open-sse/executors/minimaxCodeGateway.ts` | Opakované pokusy o hovor riadenej brány, ktorý zlyhá s prechodnou chybou (429, 5xx, prerušené pripojenie). | | `MINIMAX_CODE_CONTEXT_WINDOW` | `1000000` | `open-sse/executors/minimaxCodeGateway.ts` | Kontextové okno, o ktoré sa požaduje riadená brána MiniMax. Katalóg modelov produktu MiniMax Code deklaruje 512000 ako predvolené okno MiniMax-M3 a MiniMax-M3.1-Flash a ponúka 1000000 ako druhé; brána odpovie vo väčšom okne (požiadavka 1024056 vstupných tokenov bola zodpovedaná 200 dňa 2026-10-23). Nastavte toto na 512000, aby ste zúžili požiadavku — plán ju počíta menej. Každá ďalšia hodnota je ignorovaná, takže preklep nemôže požiadať o okno, ktoré model nemá. | | `MINIMAX_CODE_MAX_INPUT_TOKENS` | `1000000` | `open-sse/executors/minimaxCodeGateway.ts` | Strop (vo vstupných tokenoch) jednej požiadavky, ktorá sa odošle do riadenej brány MiniMax. Väčšia požiadavka je odmietnutá lokálne s číslom 413 namiesto toho, aby bola preposlaná, pretože odmietnutie brány uzamkne model z núdzových nastavení. Predvolené je kontextové okno brány (1000000); táto hodnota môže znížiť strop, nikdy ho nezdvíhať nad okno. | | `MINIMAX_CODE_MAX_TOKENS` | `8192` | `open-sse/executors/minimaxCodeGateway.ts` | Maximálny počet tokenov, s ktorými môže riadená brána odpovedať. | | `MINIMAX_CODE_AUTH_FILE` | `~/.minimax/auth/prod//mcode-public/auth.json` | `open-sse/executors/minimaxCodeGateway.ts` | Cesta k profilu overenia kódu MiniMax, ktorý obsahuje prístupový a obnovovací token. | | `MINIMAX_CODE_PROFILE_DIR` | `~/.minimax` | `open-sse/executors/minimaxCodeGateway.ts` | Adresár profilu MiniMax Code, ktorý obsahuje auth profil. | | `MINIMAX_CODE_AUTH_RECORD` | _(najnovšia generácia)_ | `open-sse/executors/minimaxCodeGateway.ts` | Záznam profilu, ktorý sa má použiť, ak má niekoľko účtov. Empty vyberie najnovšiu generáciu, ktorú obnovuje samotná CLI. | | `MINIMAX_CODE_REGION` | `en` | `open-sse/executors/minimaxCodeGateway.ts` | Oblasť účtu MiniMax. Rozhoduje o koncovom bode účtu, ktorý obnoví token, a adresári profilu, z ktorého sa načíta poverenie. | | `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | Domovský adresár Hermes Agent, kde OmniRoute reads/writes konfigurácia Hermes CLI. Zodpovedá env var inštalačným programom Hermes PowerShell na Windows (`%LOCALAPPDATA%\hermes`). | | `WHYCODES_HOME` | `~/.whycodes` | `src/lib/cli-helper/config-generator/whycodesHome.ts` | WhyCodes koreň inštancie kde OmniRoute reads/writes `config.toml`. Rovnaké env var WhyCodes číta; predvolene je `~/.whycodes` (`%USERPROFILE%\.whycodes` na Windows). | ### Automatická synchronizácia profilu CLI Tieto príznaky funkcie sú voliteľné a predvolene vypnuté. Môžu byť tiež prepínané z ovládacieho panela kódu CLI. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------- | ---------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Po synchronizácii modelu poskytovateľa automaticky prepíše súbory profilu `~/.codex/*.config.toml` zo živého katalógu. Vyžaduje `CLI_ALLOW_CONFIG_WRITES`; nikdy nezmení konfiguráciu active/default Codex, auth, nastavenia Codex-lb ani výber poskytovateľa. | | `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Po synchronizácii modelu poskytovateľa automaticky prepíše súbory profilu kódu `~/.claude/profiles//settings.json` Claude zo živého katalógu. Vyžaduje `CLI_ALLOW_CONFIG_WRITES`; nikdy nezmení výber konfigurácie, overenia alebo poskytovateľa active/default Claude. | ### Docker Príklad ```bash # Mount host binaries into the container and tell OmniRoute where they are: 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 — spáruje ju s pripojeniami ako `~/.codex:/host-home/.codex:rw` (pozri profil `host` v `docker-compose.yml`). Cesta, ktorá sa nenachádza ani v domove používateľa kontajnera, ani v pripojení väzby, sa ignoruje, pretože zápis tam by sa pri opätovnom vytvorení kontajnera zahodil. Obraz beží ako `USER node`, takže je nepripojený `/root`** nie** platné prepísanie. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ---------------------------------------- | ---------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CONTAINER` | _(auto)_ | `src/shared/utils/containerEnv.ts` | Vynútiť zapnutie detekcie kontajnera (`1`/`true`) alebo vypnutie (`0`/`false`). Potrebné iba v behu, keď automatická detekcia chýba. | | `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | Napriek tomu povoľte zapisovanie konfigurácie nástroja CLI do nepripojenej cesty kontajnera. Ekvivalent CLI je `--allow-container-write`. | | `DOCKER_UPDATE_TRIGGER_FILE` | odstaviť | `src/lib/system/autoUpdate.ts` | len obrázok Docker : dashboard** Aktualizovať teraz** zapíše do tohto súboru požiadavku JSON (musí byť vo vnútri `DATA_DIR`), aby mohol hostiteľ na strane hostiteľa stiahnuť a znova vytvoriť kontajner. Pozrite si [príručku Docker](../guides/DOCKER_GUIDE.md#dashboard-updates-in-docker). | ### CLI Binary (`omniroute`) pomocníci Tieto premenné vylaďujú vlastné správanie binárnej sústavy `omniroute` CLI (nie detekciu postranného vozíka vyššie). | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_LANG` | _(systém)_ | `bin/cli/i18n.mjs` | Vynútiť výstupný jazyk CLI. BCP-47 locale (napr. `en`, `pt-BR`). Prepíše systémové miestne nastavenia env vars (LC_ALL, LC_MESSAGES). | | `OMNIROUTE_SHOW_LOG` | _(nenastavené)_ | `bin/cli/runtime/processSupervisor.mjs` | Nastavte na `1`, ak chcete poslať server stdout/stderr do terminálu v kontrolovanom režime. Ekvivalent k vlajke `--log` na `omniroute serve`. | | `OMNIROUTE_CLI_TOKEN` | _(nenastavené)_ | `bin/cli/api.mjs` | Token strojového overenia bol vložený ako hlavička `x-omniroute-cli-token`. Automaticky generované v úlohe 8.12. | | `GEMINI_CLI_HOME` | _(nenastavené)_ | `bin/cli/commands/setup-gemini.mjs` | Trvalý domovský koreň Gemini ; jednorazový beh využíva dočasný izolovaný domov. | | `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Ochranná lehota v milisekundách pred násilným zabitím signalizovaného dieťaťa CLI. | | `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nenastavené)_ | `bin/omniroute.mjs` | Nastavte na 1 s explicitným DATA_DIR, aby ste preskočili súbor prostredia dátového adresára predvoleného používateľa. | | `OMNIROUTE_SYNC_TOKEN` | _(nenastavené)_ | `bin/cli/commands/sync.mjs` | Synchronizačný token pre `omniroute sync bundle` (`GET /api/sync/bundle` akceptuje iba synchronizačný token, nie kľúč API ). Ekvivalent `--token`. | | `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Časový limit HTTP za pokus (ms) pre požiadavky servera CLI →. | | `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maximálny čas (ms), počas ktorého CLI čaká na koncový bod stavu servera pred vytlačením upozornenia na časový limit. Užitočné pre pomalé studené štarty (napr. Windows). Nastaviteľné aj cez `--ready-timeout`. | | `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Nastavte na `1`, ak chcete vytlačiť diagnostiku retry/backoff na stderr počas príkazov CLI. | | `OMNIROUTE_PLUGIN_PATH` | _(nenastavené)_ | `bin/cli/plugins.mjs` | Vlastný adresár na zisťovanie doplnkov CLI (balíky `omniroute-cmd-*` ). Predvolene je to `~/.omniroute/plugins/` keď nie je nastavené. CLI-only — nikdy nedosiahne skener zásuvných modulov na strane servera, na ktorý ukazuje `OMNIROUTE_PLUGINS_DIR` (časť 2). | | `OMNIROUTE_NO_UPDATE_NOTIFIER` | _(nenastavené)_ | `bin/omniroute.mjs` | Potlačiť kontroly aktualizácií pri nastavení na akúkoľvek neprázdnu hodnotu: upozornenie CLI pri ukončení procesu a banner "dostupná aktualizácia" na paneli (`GET /api/system/version` potom preskočí vyhľadávanie npm, GitHub a správ). Upozornenie CLI zostane vypnuté aj v CI, tichom režime a beztextovom výstupe. | | `OMNIROUTE_DOCTOR_LIVENESS_URL` | _(odvodené)_ | `bin/cli/commands/doctor.mjs` | Živosť URL skúmaná `omniroute doctor`. Prednosť má programová možnosť `livenessUrl` ; inak sa táto hodnota používa doslovne. Ak nie je nastavené, CLI odvodzuje koncový bod `/api/health/degradation` lokálneho dashboardu. | | `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | Cesta katalógu poskytovateľa, ktorú používajú príkazy poskytovateľa CLI. Prednosť má programová možnosť `catalogPath`. Absolútne cesty sa používajú tak, ako sú; relatívne cesty sa riešia z koreňového adresára projektu. Nenastavené, CLI používa adresár konštánt poskytovateľa so starým súborom `providers.ts` ako záložným. | | `OMNIROUTE_PROVIDER_TEST_MODEL` | _(predvolené nastavenie poskytovateľa)_ | `bin/cli/provider-test.mjs` | Globálny záložný model pre testy pripojenia poskytovateľa CLI. Prioritou je nakonfigurovaný model pripojenia, prepísanie modelu špecifického pre poskytovateľa, táto hodnota a potom vstavaný testovací model poskytovateľa. | --- ## 10. Integrácie interného agenta a MCP | Variabilné | Predvolené | Zdrojový súbor | Popis | | ----------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_BASE_URL` | automatická detekcia | `open-sse/mcp-server/server.ts` | Explicitné URL pre nástroje MCP/A2A na dosiahnutie OmniRoute. Prepíše automatickú detekciu localhost. Zručnosti A2A zlyhajú namiesto odoslania kľúča API tomuto URL (alebo `BASE_URL` na ktoré sa vráti), keď je to obyčajné http na verejnú adresu, verejný názov hostiteľa s bodkami alebo hostiteľ metaúdajov v cloude, alebo obsahuje poverenia: použite https alebo http na spätnú slučku, názov kontajnera alebo služby alebo súkromnú adresu. | | `OMNIROUTE_API_KEY` | _(nenastavené)_ | moduly MCP/A2A | kláves API pre interné volania nástroja MCP. A2A zručnosti posielať to len pre volajúceho bez kľúča API (relácia dashboardu); volajúci s kľúčom koná s vlastným. | | `OMNIROUTE_API_KEY_ID` | _(nenastavené)_ | `open-sse/mcp-server/audit.ts` | Kľúč ID pre priradenie denníka auditu MCP. | | `ROUTER_API_KEY` | _(nenastavené)_ | Dedičstvo | Starý alias pre `OMNIROUTE_API_KEY`. | | `OMNIROUTE_A2A_HISTORY_RETENTION_DAYS` | `30` | `src/lib/a2a/taskManager.ts` | Dni histórie úloh A2A uchovávané v lokálnej databáze predtým, ako denné čistenie odstráni riadok. Nenastavené, nenumerické alebo `<= 0` sa vráti späť na `30`. | | `OMNIROUTE_A2A_MEMORY_HITS` | `1` | `src/lib/a2a/taskExecution.ts` | Kill-switch pre funkciu pozorovateľnosti pamäťových zásahov A2A. Nastavte na `0` ak chcete úplne preskočiť vyhľadávanie vyvolania pamäte pre úlohu; akákoľvek iná hodnota (vrátane nenastavenej) ju ponechá povolenú. | | `OMNIROUTE_ISSUE_AGENT_ENABLED` | `false` | `src/app/api/issue-agent/runs/route.ts` | Povolí koncový bod zaznamenaného triedenia agenta vydania offline/local. Nechajte deaktivované, 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) pre jeden zaznamenaný priebeh triedenia agenta vydania. Upnuté na vnútorné maximum; po deaktivácii alebo neplatnosti sa vráti späť na vstavanú predvolenú hodnotu. | | `OMNIROUTE_CONTEXT` | _(aktívny kontext)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | CLI vzdialený režim context/profile pre príkazy `omniroute` ; prepíše aktívny kontext v úložisku lokálnych kontextov. Ekvivalent `--context `. | | `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | Zakážte voliteľný backend `keytar` OS-keychain pre kontextové poverenia CLI. Keď je táto možnosť povolená, poverenia zostanú v režime `config.json` `0600` a CLI vydá jednorazové núdzové varovanie; určené na zámernú prevádzku headless/container. | | `OMNIROUTE_MCP_ENFORCE_SCOPES` | `false` | `open-sse/mcp-server/server.ts` | Vynútiť riadenie prístupu na základe rozsahu pri volaniach nástroja MCP. | | `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_PPLX_RESEARCH_ENABLED` | `0` | `open-sse/mcp-server/tools/perplexityResearch.ts` | Zaregistrujte si nástroj Perplexity Deep Research MCP. Registruje to iba `1` ; čokoľvek iné to nechá preč. | | `OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS` | `false` | `open-sse/mcp-server/descriptionCompressor.ts` | Pred serializáciou manifestu komprimujte popisy nástroja MCP. Povoliť hodnoty: `1`, `true`, `on`. | | `OMNIROUTE_MCP_DESCRIPTION_COMPRESSION` | `rtk` | `open-sse/mcp-server/descriptionCompressor.ts` | Hodnoty kompresie algorithm/profile. : `0`, `false`, `off`. | | `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | Prerušenie rozpočtu (ms) pre interné správy MCP servera (zdravie, odolnosť, kombá, kvóty, využitie). | | `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | Zrušiť rozpočet (ms) pre skoky MCP, ktoré čakajú na poskytovateľa (`route_request`, `web_search`, `web_fetch`). | | `OMNIROUTE_MCP_SESSION_IDLE_MS` | `300000` | `open-sse/mcp-server/httpTransport.ts` | Nečinná TTL (ms) predtým, ako zametanie zožne nečinnú streamovateľnú reláciu MCP. Relácia s otvoreným streamom alebo žiadosťou počas letu sa nikdy nezíska. Nenastavené, neceločíselné alebo kladné hodnoty sa vrátia späť na predvolené hodnoty. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | `src/lib/localCorpus/configured.ts` | Maximálny počet inštancií indexu lokálneho korpusu uložených v pamäti cache (LRU, jedna na indexovaný koreňový adresár). Upnuté na minimum `1`. | | `MODEL_SYNC_INTERVAL_HOURS` | `6` | `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` | Limit rýchlosti poskytovateľa a interval prieskumu kvóty. | | `PROVIDER_LIMITS_SYNC_SPACING_MS` | `1500` | `src/lib/usage/providerLimits.ts` | Medzera (ms) medzi po sebe idúcimi načítaniami kvóty OAuth pri hromadnej synchronizácii; pripojenia OAuth sa získavajú jedno po druhom, aby sa predišlo prerušeniu upstreamu. `0` sa odhlási (súbežne). | | `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | Minimálny interval (ms) medzi po sebe idúcimi načítaniami upstream kvóty na ceste preflight/monitor pre každú požiadavku; priestory súbežných sieťových hovorov, takže veľa účtov na jednom IP nepretrhne upstream. Zapojené do Codex (`/wham/usage`), DeepSeek, Bailian (obe stránky načítania), OpenCode a Crof kvóty (#6009, #6911). Všeobecná cesta odoslania `usage.ts::getUsageForProvider` (github/glm/minimax/nanogpt/xai/etc.) ešte nie je pokrytá — sledovaným samostatne. Zásahy do vyrovnávacej pamäte nie sú ovplyvnené. `0` zakáže; upnutý `0..60000`. | | `OMNIROUTE_QUOTA_FETCH_JITTER_MS` | `120` | `open-sse/services/quotaFetchThrottle.ts` | Dodatočné náhodné rozstupy na žiadosť (ms), vzorkované pri každom rezervovanom načítaní kvóty smerom nahor. Predvolená hodnota je 120; upnutý `0..60000`; `0` odstraňuje iba chvenie. Nastavte `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS=0`, aby ste deaktivovali celý plyn. Jitter nezaručuje predchádzanie zákazom proti prúdu. | | `CODEX_QUOTA_FETCH_TIMEOUT_MS` | `8000` | `open-sse/services/codexQuotaFetcher.ts` | Časový limit (ms) pre jedno načítanie kvóty Codex (`chatgpt.com/backend-api/wham/usage`). Preflight čaká na toto načítanie pred odoslaním požiadavky. Po vypršaní časového limitu alebo chybe prenosu sa znova použije posledná snímka z posledných 15 minút, pokiaľ sa jej okno nevyčerpá alebo sa neresetuje; pri žiadnej je kvóta neznáma, takže účet s plateným kreditom sa pre túto požiadavku preskočí a nepretrváva žiadne cooldown. Prijíma kladné celé číslo až do `2147483647`; akákoľvek iná hodnota sa vráti späť na predvolenú hodnotu. | | `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | Oneskorenie (ms) pred obnovením limitov poskytovateľa po udalosti skutočného používania, čo dáva kvóte API upstreamu čas na registráciu spotreby. | | `OMNIROUTE_LOGIN_BROWSER_PATH` | automatická detekcia | `open-sse/services/adobeFireflyBrowserLogin.ts` | Absolútna cesta k systémovému spustiteľnému súboru Chrome alebo Edge používaná na interaktívne prihlásenie do Adobe Firefly a obnovenie mimo obrazovky. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | povolené | `open-sse/services/adobeFireflySession.ts` | Udržuje IMS a rizikový stav prehliadača čerstvý pomocou relácií Chrome CDP v rozsahu účtu. Ak chcete zakázať obnovenie prehliadača, nastavte na `0`. | | `ADOBE_FIREFLY_SESSION_DISK` | povolené | `open-sse/services/adobeFireflySession.ts` | Pretrváva opravené relácie Adobe pod `DATA_DIR` pri reštartovaní procesu. Ak chcete zachovať iba pamäť relácií, nastavte `0`. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Minimálne rozostupy v milisekundách medzi odoslaním generovaným Adobe Firefly; `0` zakáže medzery. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Mimoriadne pokojné obdobie v milisekundách po každom treťom úspešnom odoslaní aplikácie Adobe. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyClient.ts` | Základné stiahnutie v milisekundách po prechodných odpovediach Adobe 408; v kombinácii s predložením medzier na najviac päť pokusov. | | `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | Zakážte všetky služby na pozadí: obnovenie kvóty, synchronizáciu limitov poskytovateľa, obnovenie pripojenia, stav poverení, synchronizáciu cloud/model/free-proxy/proxy-health, vyčistenie uchovávania, naplánované VACUUM a hlasovanie o opätovnom načítaní nastavení. Užitočné pre CI/test; pri dlhotrvajúcej inštalácii sa pripojenia automaticky neobnovujú a databáza neustále rastie. | | `OMNIROUTE_HEADLESS` | _(nenastavené)_ | `src/lib/system/headless.ts` | Zavádzanie iba pomocou proxy servera: preskočí voliteľné podsystémy, `/dashboard` → 404. Rovnaké ako `omniroute serve --headless`. Pozri [HEADLESS.md](../guides/HEADLESS.md). | | `OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS` | _(nenastavené)_ | `src/lib/config/runtimeSettings.ts` | Vynútiť zapnutie úloh na pozadí pri automatickej detekcii testu. Nastavte `1` na prepísanie testovacej heuristiky. | | `OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS` | `600000` | `src/lib/jobs/budgetResetJob.ts` | Kadencia kontroly resetovania rozpočtu (ms). Poschodie `10000`. | | `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | Kadencia obnovy proaktívneho pripojenia-chladenia (ms): znovu overí pripojenia, ktorých prechodné `rate_limited_until` uplynulo, mimo horúcej cesty požiadavky. Poschodie `5000`. | | `OMNIROUTE_DISABLE_CONNECTION_RECOVERY` | `false` | `src/lib/quota/connectionRecovery.ts` | Zakážte proaktívny plánovač obnovy pripojení-cooldown (lenivé obnovenie v `getProviderCredentials` stále platí). | | `OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS` | `1800000` | `src/lib/jobs/reasoningCacheCleanupJob.ts` | Kadencia čistenia vyrovnávacej pamäte odôvodnenia (ms). Poschodie `60000`. | | `OMNIROUTE_REASONING_MIN_BUDGET` | _unset_ (zakázané) | `open-sse/services/reasoningTokenBuffer.ts` | Minimálna hodnota voliteľnej funkcie pre výstupné rozpočty premysleného modelu: volajúci `max_tokens` v `[256, floor)` sa zvýši na minimálnu úroveň (obmedzená limitom výstupu modelu). Zrušené rozpočty klientov = sa nikdy nezvýšili (#9507). | | `OMNIROUTE_REASONING_EFFORT_PROBE_PROVIDERS` | _unset_ (zakázané) | `open-sse/services/learnedReasoningEffortCaps.ts` | Voliteľné, čiarkami oddelené ID poskytovateľa (alebo `*`): keď `reasoning_effort` 400/422 nepomenuje žiadnu akceptovanú množinu, skúste to znova raz o úroveň nižšie (nikdy nie pod `low`) a zistite, že táto úroveň je zodpovedaná (#14895). | | `OMNIROUTE_LOG_EXPORT_CRON` | `0 * * * *` | `src/lib/jobs/logExportJob.ts` | Cron výraz (UTC) pre úlohu exportu protokolu hovorov, ktorá vyčerpá každý povolený cieľ exportu protokolu. Pri exporte tiel uprednostnite `*/5 * * * *`. | | `OMNIROUTE_LOG_EXPORT_RUN_TIMEOUT_MS` | `900000` | `src/lib/logExport/childRunner.ts` | Časový limit podriadených nástenných hodín pre jednotlivé cieľové miesta v milisekundách. Časový limit zaznamená zlyhanie a ukončí proces bez posunutia nepotvrdenej dávky. hodnoty Invalid/non-positive/non-integer používajú predvolené. | | `OMNIROUTE_LOG_EXPORT_CHILD_MAX_OLD_SPACE_MB` | `1024` | `src/lib/logExport/childRunner.ts` | Limit starého priestoru exportu uzla V8 v MB (nie celkové RSS). Default ponecháva priestor pre 500 radov zakrytých artefaktov s telami; nadrozmerné dávky môžu stále vyčerpať detskú hromadu. V prípade zlyhania sa odporúča znížiť veľkosť dávky alebo zvýšiť tento limit. hodnoty Invalid/non-positive/non-integer používajú predvolené. Exporty Bun sa v priebehu procesu vrátia späť bez tohto limitu. | | `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | Interval dotazovania (ms) pre rýchle opätovné načítanie konfigurácie. Nižšie ako `1000` je odmietnuté. | | `OMNIROUTE_DISABLE_REDIS_AUTH_CACHE` | _(povolené)_ | `src/lib/db/apiKeys.ts` | Nastavte `1` tak, aby obišiel autorizačnú pamäť kľúča API podporovanú Redis (vynúti čítanie DB ). | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | `0` | `open-sse/services/compression/engines/rtk/filterLoader.ts` | Dôverujte pravidlám filtrovania projektov RTK riadených používateľom bez prísnych kontrol podpisov. | | `OMNIROUTE_LITE_MAX_TOOL_LENGTH` | `2000` | `open-sse/services/compression/lite.ts` | Obmedzenie znakov pre proaktívne skrátenie výsledkov nástroja Lite, keď nie je nastavené `lite.maxToolLength`. Rozsah 256–1 000 000. Nastavenie ovládacieho panela vyhráva nad týmto prostredím. | | `OMNI_COMPRESSION_WORKERS` | `2` | `open-sse/services/compression/compressionWorkerPool.ts` | Maximálne súbežné synchrónne RTK/Caveman pracovníkov; nadbytočné pracovné miesta počkajte FIFO. | | `OMNI_COMPRESSION_WORKER_TIMEOUT_MS` | `120000` | `open-sse/services/compression/compressionWorkerPool.ts` | Časový limit na úlohu v milisekundách. Pracovníci s časovým limitom sú ukončení a požiadavka sa nepodarí otvoriť bez zmeny. | | `OMNI_COMPRESSION_WORKER_IDLE_MS` | `60000` | `open-sse/services/compression/compressionWorkerPool.ts` | Životnosť nečinnosti v milisekundách pred ukončením nepoužívaného kompresného pracovníka. | | `OMNI_COMPRESSION_WORKER_MAX_OLD_MB` | `1024` | `open-sse/services/compression/compressionWorkerPool.ts` | V8 starej generácie haldy v MB pre každého kompresného pracovníka, všetky režimy (podlahové `128`). Úloha, ktorá ho prekročí, sa nepodarí otvoriť (nekomprimovať) namiesto toho, aby sa zväčšila halda brány. | | `COMPRESSION_PIPELINE_BREAKER_ENABLED` | `false` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Hlavný spínač ističa T02 pre jednotlivé motory.** Prihlásiť sa (predvolene vypnuté)** — keď je zapnutý, motor, ktorý opakovane hádže cez požiadavky, je preskočený (fail-open) na cooldown; off = byte-identické staršie správanie. | | `COMPRESSION_PIPELINE_BREAKER_THRESHOLD` | `3` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Po sebe idúce zlyhania krížových požiadaviek pred otvorením ističa motora. | | `COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS` | `30000` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Milisekundy otvorený motor zostane preskočený pred polootvorenou sondou. | | `COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR` | `2` | `open-sse/services/compression/engines/ccr/index.ts` | Nábeh spätnej väzby T08/H8 CCR : každé predchádzajúce načítanie uloženého bloku lineárne zvyšuje jeho efektívne `minChars` (často získavaný obsah sa komprimuje menej; získavanie `>=3` = sa nikdy nekomprimuje). `1` zakáže rampu (binárne preskočenie len na prahu). | | `COMPRESSION_CCR_DURABLE_STORE` | `true` | `open-sse/services/compression/engines/ccr/index.ts` | CCR trvanlivý blokový obchod (#9061). Zálohuje úložisko v pamäti pomocou SQLite, takže blok prežije vysťahovanie LRU, TTL, reštart alebo pristátie obnovenia na inej inštancii. Nastavte `false`, aby bloky zostali iba v pamäti. Bloky nad 512 kB a cloudové runtime zostávajú bez ohľadu na to len v pamäti. | | `COMPRESSION_PREFIX_FREEZE_ENABLED` | `false` | `open-sse/services/compression/prefixFreeze.ts` | predpona zmrazenia hlavného prepínača T08/H5.** Prihlásiť sa (predvolene vypnuté)** — keď je zapnuté, systémová výzva spozoruje `>=` prah sa považuje za stabilnú predponu, ktorú možno uložiť do vyrovnávacej pamäte a chráni ju pred kompresiou aj pre poskytovateľov, ktorých heuristika statickej vyrovnávacej pamäte vynechá (zmrazí iba _zachová_, nikdy nezmutuje). | | `COMPRESSION_PREFIX_FREEZE_THRESHOLD` | `3` | `open-sse/services/compression/prefixFreeze.ts` | Pozorovania systémovej výzvy predtým, ako sa s ňou bude zaobchádzať ako so zmrazenou stabilnou predponou. | | `OMNIROUTE_BOOTSTRAPPED` | `false` | `src/app/(dashboard)/dashboard/page.tsx` | Po úvodnom nastavení nastavte `true` pomocou bootstrap skriptu. Ovláda viditeľnosť sprievodcu nastavením. | | `OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE` | `0` | `open-sse/executors/antigravity.ts` | Únikový poklop: umožňuje telu požiadavky prepísať pole projektu Antigravity. | | `ANTIGRAVITY_CREDITS` | `off` | `open-sse/services/antigravityCredits.ts` | Politika Google One AI kreditov: `off` nikdy nevloží kredity, `retry` raz vloží po oprávnenej kvóte 429 a `always` vloží na prvú žiadosť. | | `OMNIROUTE_ANTIGRAVITY_TIMING_TELEMETRY` | `false` | `open-sse/executors/antigravity/executeAttempt.ts` | Aktivované dezinfikované načasovanie fyzického odoslania: nečinný účet, požiadavky počas letu, čas do hlavičiek a prvý zmysluplný obsah SSE. Žiadne výzvy, poverenia ani upstream URLs v denníkoch. | | `ANTIGRAVITY_MAX_429_ATTEMPTS` | `2` | `open-sse/services/antigravity429Guard.ts` | Upstream 429 tolerované na požiadavku Antigravity (`agy`/`antigravity`) na všetkých hostiteľoch (1 – 12), kým sa 429 vráti späť k volajúcemu. Telo, ktoré ho minulo, je zodpovedané lokálne pri opätovnom odoslaní (2 minúty, zdvojnásobenie na 30 minút alebo upstream nápoveda na opakovanie) a obsluha chatu po tomto 429 požiadavku nereštartuje. | | `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | Umožnite prekladaču požiadaviek Antigravity preskočiť prísnu validáciu podpisu požiadavky CLI, keď nadradený odmietne skutočné podpisy (režim debug/antiquated-CLI ). Nenulová umožňuje obtok. | | `AGY_TOKEN_FILE` | `~/.gemini/antigravity-cli/antigravity-oauth-token` | `src/app/api/providers/agy-auth/apply-local/route.ts` | Prepíšte cestu k súboru tokenov Antigravity CLI (agy) pre import automaticky zisťovaného lokálneho prihlásenia. | ### OAuth CLI most (interný) | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------- | -------------------- | ------------------------------- | ----------------------------------------- | | `OMNIROUTE_SERVER` | automatická detekcia | `src/lib/oauth/config/index.ts` | Server URL pre CLI↔OmniRoute auth bridge. | | `OMNIROUTE_TOKEN` | _(nenastavené)_ | `src/lib/oauth/config/index.ts` | Autorizačný token pre most CLI. | | `OMNIROUTE_USER_ID` | `cli` | `src/lib/oauth/config/index.ts` | Používateľ ID 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. Poverenia poskytovateľa OAuth ### Obnovenie pasívneho tokenu Codex `OMNIROUTE_TOKEN_REFRESH_PASSIVE_PROVIDERS` nastavené na `codex` robí z tejto inštancie spotrebiteľa synchronizovaných poverení Codex, nie vlastníka rotácie obnovovacích tokenov. Prázdna alebo nenastavená predvolená hodnota zachováva normálne obnovovacie správanie. Hodnoty oddelené čiarkami sú orezané a nerozlišujú sa v nich veľké a malé písmená; `cx` je alias pre `codex`. Nepodporovaní poskytovatelia zlyhajú pri overení spustenia. Ostatní poskytovatelia sú nezmenení. V existujúcich bodoch obnovenia inštancia obíde vyrovnávaciu pamäť na čítanie pripojení a prijme iba iný prístupový token, ktorému nevypršala platnosť. Tokeny odmietnuté upstreamom počas požiadavky sa po vrátení synchronizácie nemôžu znova kvalifikovať: poverenia žiadosti obsahujú najviac štyri odtlačky prstov SHA-256, ktoré sa s touto žiadosťou zahodia. Prijímajú sa iba polia tokenov, takže metadáta miestneho poskytovateľa žiadosti prežijú. Žiadne prijaté poverenia sa nezachovajú. Ak neexistuje žiadna náhrada, `refresh_disabled` nie je koncový a nezapočítava sa do ističa na obnovenie tokenu. Skutočné odozvy 401/403 upstream zachovávajú bežné účtovanie porúch, exponenciálne ochladzovanie a chyby klienta; signály deaktivácie účtu sa stále natrvalo uzamknú. Manuálne obnovenie dashboard/API vráti `409` s kódom `refresh_disabled` a inštrukciou na obnovenie aktívnej inštancie a synchronizáciu. Implicitné aktualizácie (chat, používanie, kontroly stavu a overenie importu) túto chybu neodhalia; použitie na požiadanie 401 sa raz zopakuje s prijatým synchronizovaným tokenom. importy Codex auth ukladajú dodané tokeny bez výmeny obnovovacích tokenov; nové prihlasovacie údaje OAuth sú nezmenené. Mimo existujúcej proaktívnej obnovovacej cesty nie je pridaná žiadna synchronizácia pred odoslaním. Ponechajte si presne jedného vlastníka rotácie a zaistite synchronizáciu tokenov oddelene pred vypršaním platnosti prístupových tokenov (predvolené proaktívne vedenie: päť minút). Táto voľba nie je distribuovaný zámok, replikácia databázy alebo zdieľané nasadenie SQLite. Zdroj: `open-sse/services/tokenRefresh/passiveCodex.ts`. Vstavané poverenia pre** vývoj localhost** . Pre vzdialené nasadenia zaregistrujte svoje vlastné na vývojárskej konzole každého poskytovateľa. | Variabilné | Poskytovateľ | Poznámky | | ------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLAUDE_OAUTH_CLIENT_ID` | Claude kód (Anthropic) | Verejný klient — nepotrebuje žiadne tajomstvo. | | `CLAUDE_CODE_REDIRECT_URI` | Claude kód | Prepísať presmerovanie URI. Predvolená hodnota: `https://platform.claude.com/oauth/code/callback` | | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Verejný klient. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Vyžaduje zodpovedajúce `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | | `KIMI_CODING_OAUTH_CLIENT_ID` | kódovanie Kimi (Moonshot) | Verejný klient. | | `MUSE_CODE_OAUTH_CLIENT_ID` | Muse Code (Meta) | Voliteľné prepísanie pre verejné ID klienta toku zariadenia Muse CLI. Ak chcete použiť zapečateného verejného klienta, ponechajte nenastavené. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Vyžaduje zodpovedajúce `_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. Po zrušení nastavenia sa vráti späť na verejné predvolené nastavenie `GITHUB_OAUTH_CLIENT_ID`. | | `COPILOT_INTEGRATION_ID` | GitHub Copilot | Voliteľné prepísanie pre integráciu klienta GitHub Copilot ID odoslané v hlavičkách `Copilot-Integration-Id` a `Editor-Plugin-Version`. Predvolená hodnota je `copilot-developer-cli`. | | `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | Záložný kľúč API používaný `open-sse/executors/devin-cli.ts`, keď nie sú k dispozícii žiadne poverenia na pripojenie. Voliteľné. | | `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Vlastná cesta k binárnemu súboru Devin CLI (`devin`). Vyriešil `open-sse/executors/devin-cli.ts`. | | `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | OAuth klient ID pre GitLab Duo. Zaregistrujte si aplikáciu na `https://gitlab.com/-/profile/applications` s presmerovaním URI `/callback` a rozsahmi `api, read_user, openid, profile, email`. Spadne späť na `GITLAB_OAUTH_CLIENT_ID`. | | `GITLAB_DUO_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | Tajné tajomstvo klienta OAuth pre GitLab Duo. Voliteľný tok — PKCE nevyžaduje tajomstvo. Spadá späť do `GITLAB_OAUTH_CLIENT_SECRET`. | | `GITLAB_DUO_BASE_URL` | GitLab Duo (v3.8) | Prepísať základ GitLab URL (samohosťovaný GitLab). Predvolená hodnota je `https://gitlab.com`. Spadá späť do `GITLAB_BASE_URL`. | | `GITLAB_BASE_URL` | GitLab Duo (v3.8) | Staršia záloha pre `GITLAB_DUO_BASE_URL`. Používa sa, keď nie je nastavený variant `_DUO_`. | | `GITLAB_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | Starý záložný zdroj pre `GITLAB_DUO_OAUTH_CLIENT_ID` spotrebovaný `src/lib/oauth/constants/oauth.ts`. | | `GITLAB_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | Starý záložný zdroj pre `GITLAB_DUO_OAUTH_CLIENT_SECRET` spotrebovaný `src/lib/oauth/constants/oauth.ts`. | | `QODER_OAUTH_CLIENT_SECRET` | Qoder | — | | `QODER_OAUTH_AUTHORIZE_URL` | Qoder | Nastavte na 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ý kľúč API (obchádza OAuth). | | `QODER_CLI_WORKSPACE` | Qoder | Pracovný priestor ID pre Qoder CLI. | | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Alias pre `QODER_CLI_WORKSPACE`. | | `QODER_CLI_CONFIG_DIR` | Qoder | Prepíšte konfiguračný adresár Qoder CLI (izolovaná relácia PAT, zabraňuje zablokovaniu prihlásenia do prehliadača). | | `QODER_CLI_MAX_CONCURRENCY` | Qoder | Maximálny počet súbežných spustení qodercli (vytlačenie výziev alebo výziev ACP ); front ďalších žiadostí FIFO. Zrušte nastavenie (predvolené) = bez obmedzenia. | | `QODER_CLI_QUEUE_TIMEOUT_MS` | Qoder | Ako dlho čaká požiadavka Qoder na slot qodercli (iba s nastaveným stropom), kým zlyhá s 429 `qodercli_busy` + `Retry-After`. Predvolené `120000`. | | `QODER_CLI_TRANSPORT` | Qoder | `print` (predvolené) vytvorí `qodercli --print` na žiadosť; `acp` uchováva jeden trvalý proces `qodercli --acp` na PAT. | | `QODER_CLI_ACP_IDLE_TIMEOUT_MS` | Qoder | ACP transport: zabite pretrvávajúci proces qodercli po tomto dlhom čase nečinnosti. Predvolené `600000`. | | `QODER_CLI_ACP_STARTUP_TIMEOUT_MS` | Qoder | doprava ACP : konečný termín pre qodercli na odpoveď na ACP `initialize`. Predvolené `60000`. | | `QODER_CLI_ACP_MAX_SESSIONS_PER_PROCESS` | Qoder | ACP transport: recyklujte pretrvávajúci proces qodercli po toľkých reláciách. Predvolené `500`. | | `BLACKBOX_WEB_VALIDATED_TOKEN` | Blackbox Web | Frontendový token `tk` na odoslanie ako `validated` na `/api/chat`. Vyžaduje sa, keď Blackbox vynucuje párovanie tokenov; inak sa OmniRoute vráti späť na náhodné UUID. Pozrite si vydanie #2252. | | `VISION_BRIDGE_BASE_URL` | Zábradlie Vision Bridge | Základná URL kompatibilná s OpenAI pre neantropické hovory na premostenie videnia. Predvolene je to staré OpenAI URL env alebo api.openai.com. Ukážte na OmniRoute `/v1` self-loop alebo akýkoľvek koncový bod OpenAI-compat (Gemini OpenAI-compat, OpenRouter). Vydanie #2232. Keď je URL vlastným OmniRoute `/v1`, podžiadosť description odošle `x-omniroute-admission-bypass: internal` a overí sa pomocou vyriešeného poverenia vlastnej slučky (`sk_omniroute` sentinel v lokálnom režime alebo `OMNIROUTE_API_KEY` / `ROUTER_API_KEY` — #1350), takže nasadenia `REQUIRE_API_KEY=true` fungujú. | | `VISION_BRIDGE_API_KEY` | Zábradlie Vision Bridge | API kľúč pre URL vyššie. Prepíše premenné env OpenAI / Google na poskytovateľa pre neantropické hovory na premostenie videnia. Modely Anthropic si zachovávajú svoju vyhradenú kľúčovú cestu Anthropic. Vydanie #2232. | | `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | Zábradlie Vision Bridge | Ako dlho je výsledok smerovania „žiadny použiteľný kandidát“ uložený do vyrovnávacej pamäte, v ms (predvolené `30000`). Neplatné alebo záporné hodnoty sa vrátia späť na predvolené hodnoty; `0` zakáže negatívnu vyrovnávaciu pamäť. Zdroj: `src/lib/guardrails/visionBridgeRouter.ts`. | | `OMNIROUTE_IMAGE_NORMALIZATION` | Normalizácia obrazu videnia | Prihlásenie (zrušenie nastavenia = vypnuté, nulová zmena správania; aktivácia `1`/`true`/`on` ). Normalizuje každý vložený obrázok (data base64 URI / Claude `source.data`) v tele žiadosti o rozhovor pred odoslaním: použitá orientácia EXIF, RGB (alfa sploštená na bielu), dlhý okraj `<= 4096` px, celkový počet pixelov `<= ~4M`; obrázky, ktoré si vyžadujú zmenu, sú znova zakódované ako základný JPEG (bez alfa PNGs zostane bezstratový PNG), už vyhovujúce RGB JPEG/PNG prechádzajú nedotknuté. Rozpočty sú pevné. Zameriava sa na kanály videnia Qwen2-VL-style, ktoré odmietajú obrázky oversized/exotic so 400 chybami analýzy alebo zablokovaním s nulovým výstupom. Vzdialené http(s) URLs nie sú stiahnuté; chýbajúci binárny súbor `sharp` alebo nedekódovateľný obraz prejde nedotknutý (fail-open). Zmena veľkosti veľkého obrázka zvyšuje latenciu požiadavky. Zdroj: `open-sse/utils/visionImageNormalization.ts`. | > [!WARNING] > > 1. Prejdite na [Google Cloud Console → poverenia](https://console.cloud.google.com/apis/credentials) 2. Vytvorte klienta OAuth 2.0 ID (typ: "webová aplikácia") 3. Pridajte svoj server URL ako autorizované presmerovanie URI 4. Nahraďte hodnoty poverení v `.env`. --- ## 12. Prepisy User-Agent poskytovateľa Prepíšte hlavičku `User-Agent` odoslanú každému upstream poskytovateľovi. Toto je dynamicky vyriešené za behu pomocou základnej triedy spúšťača: ``` process.env[`${PROVIDER_ID}_USER_AGENT`] ``` > **Zdroj:** `open-sse/executors/base.ts` → `buildHeaders()` | Variabilné | Predvolená hodnota | Kedy aktualizovať | | -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `CLAUDE_USER_AGENT` | `claude-cli/2.1.280 (external, cli)` | Keď Anthropic vydá novú verziu CLI | | `CLAUDE_DISABLE_TOOL_NAME_CLOAK` | `false` | `executors/base.ts` + `executors/cliproxyapi.ts` | Nastavte na `1`/`true`, ak chcete preposielať názvy nástrojov postroja tretích strán doslovne na Anthropic na oboch antropických cestách (natívne OAuth a CLIProxyAPI). V predvolenom nastavení vykonávateľ deterministicky aliasuje názvy nástrojov iných ako Claude-Code (kanonické mapovanie kódu Claude tam, kde existuje, inak PascalCase) a obráti ich na základe odpovede cez `_toolNameMap`, takže postroje s nástrojmi snake_case nie sú odmietnuté ako klienti tretích strán s odtlačkami prstov. Iba 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íše verziu klienta Codex nezávisle od celého reťazca UA | | `GROK_CLI_CLIENT_VERSION` | `1.0.41` | Prepísať `x-grok-client-version` pre odvodenie, synchronizáciu modelu a kód zariadenia OAuth plus predvolený Grok CLI User-Agent pre odvodenie a synchronizáciu modelu. Akceptuje SemVer s voliteľnými metadátami prerelease/build, až 128 znakov po orezaní okolitých medzier. Nenastavené, prázdne, neplatné hodnoty alebo hodnoty obsahujúce zlom riadka používajú dodaný kód PIN. Existujúce úplné prepísanie User-Agent si zachováva prednosť. | | `CLAUDE_CODE_CLIENT_VERSION` | `2.1.280` | Prepísať inzerovanú verziu kódu Claude nezávisle od `CLAUDE_USER_AGENT`. Anthropic určuje niektoré modely na tejto hodnote (#12417). | | `CLAUDE_CODE_CLIENT_BUILD_REVISION` | `1e2` | Prepíšte 3-znakovú príponu OmniRoute ktorá sa pripája k `cc_version=` vo fakturačnom bloku Claude. Naraziť vedľa `CLAUDE_CODE_CLIENT_VERSION` — pripnutím iba verzie, ktorá propaguje pár `version.revision` žiadny skutočný binárny súbor nevyžaruje. | | `GITHUB_COPILOT_CLI_VERSION` | `1.0.91` | Prepíše inzerovanú verziu Copilot CLI nezávisle od `GITHUB_USER_AGENT` | | `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | Keď sa GitHub Copilot Chat aktualizuje | | `ANTIGRAVITY_CLI_CL` | _(nenastavené)_ | Prepísať zoznam zmien Piper Antigravity CLI (`agy`) hlásený ako `cl=` v CLI User-Agent. Nedá sa odvodiť z verzie ani nie je zverejnený vo verejných zoznamoch nákladu; nasadené na verziu zo živého záberu (1.4.4 → `1003595037`). Zrušiť nastavenie na neznámej verzii vynechá `cl=` namiesto inzercie zoznamu zmien inej zostavy. | | `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ísať kód sociálneho zariadenia Kiro `clientId` (verejné ID) | | `KIRO_VERIFY_FULL_CRC` | `false` | Prihlásenie: úplné overenie CRC správy pre každý rámec v streame udalostí Kiro (ladenie poškodených streamov) | | `KIRO_CREDIT_PRICE_USD` | `0.02` | USD za kredit Kiro ; prevedie `meteringEvent` kredity na presnú cenu za žiadosť | | `KIRO_REQUIRE_CREDITS` | `false` | Zlyhanie odpovede Kiro, ktorá nehlási žiadne meranie kreditu, namiesto toho, aby bola zaznamenaná ako nevyúčtovaná | | `QODER_USER_AGENT` | `Qoder-Cli` | Keď sa aktualizuje Qoder CLI | | `CURSOR_USER_AGENT` | `Cursor/3.3` | Keď sa aktualizuje Cursor | > [!TIP] > Môžete pridať prepisy User-Agent pre** akékoľvek** poskytovateľ pomocou vzoru `{PROVIDER_ID}_USER_AGENT`. Exekútor dynamicky vytvára názov env var. --- ## 13. CLI Kompatibilita s odtlačkami prstov Keď je povolené, OmniRoute zmení poradie hlavičiek HTTP a polí tela JSON tak, aby zodpovedali presnému podpisu oficiálnych nástrojov CLI. Tým sa zníži riziko označenia účtu a zároveň sa zachová váš proxy IP. **Zdroj:** `open-sse/config/cliFingerprints.ts`, `open-sse/executors/base.ts` ### Podľa poskytovateľa | Variabilné | Aktivácia | Effect | | ------------------------ | --------- | -------------------------------------------- | | `CLI_COMPAT_CODEX` | `=1` | Napodobňuje podpis žiadosti Codex CLI | | `CLI_COMPAT_CLAUDE` | `=1` | Napodobňuje podpis žiadosti kódu Claude | | `CLI_COMPAT_GITHUB` | `=1` | Napodobňuje podpis žiadosti GitHub Copilot | | `CLI_COMPAT_ANTIGRAVITY` | `=1` | Napodobňuje podpis žiadosti Antigravity | | `CLI_COMPAT_CURSOR` | `=1` | Napodobňuje podpis žiadosti Cursor | | `CLI_COMPAT_KIMI_CODING` | `=1` | Napodobňuje podpis žiadosti o kódovanie Kimi | | `CLI_COMPAT_KILOCODE` | `=1` | Napodobňuje podpis žiadosti Kilo Code | | `CLI_COMPAT_CLINE` | `=1` | Napodobňuje podpis žiadosti Cline | ### globálne | Variabilné | Aktivácia | Effect | | ---------------- | --------- | --------------------------------------------------------------------------- | | `CLI_COMPAT_ALL` | `=1` | Povoliť kompatibilitu odtlačkov prstov pre** všetky** poskytovateľov naraz. | ### Kimi Kódovanie prepíše identitu CLI | Variabilné | Predvolené | Zdrojový súbor | Popis | | ----------------------- | -------------------------- | ---------------------------------------- | --------------------------------------------------------------------- | | `KIMI_CLI_VERSION` | `1.36.0` | `src/lib/oauth/providers/kimi-coding.ts` | Prepíše verziu Kimi CLI odoslanú počas volaní OAuth/API. | | `KIMI_CODING_DEVICE_ID` | _(predvolene zaznamenané)_ | `src/lib/oauth/providers/kimi-coding.ts` | Prepíšte zachytené zariadenie Kimi ID používané v hlavičkách klienta. | > [!NOTE] > Táto funkcia funguje spolu s prepismi User-Agent (§12). Systém odtlačkov prstov spracováva poradie hlavičky a poradia polí tela, zatiaľ čo prepisy User-Agent spracovávajú špecifický reťazec UA. Obe môžu byť povolené nezávisle. --- ## 14. Kľúčoví poskytovatelia API kľúče API pre poskytovateľov, ktorí používajú priamu autentifikáciu.** Preferované nastavenie:** Dashboard → Providers → Add API Key. Nastavenie pomocou premenných prostredia je alternatívou pre Docker alebo bezhlavé nasadenia. Rozpoznaný vzor: `{PROVIDER_ID}_API_KEY` | Variabilné | Poskytovateľ | | ------------------ | -------------------------------------------------- | | `DEEPSEEK_API_KEY` | DeepSeek | | `NVIDIA_API_KEY` | NVIDIA NIM | | `JINA_AI_API_KEY` | Jina AI (záložná čítačka Foundation API + ) | | `JINA_API_KEY` | Jina AI (alias pre `JINA_AI_API_KEY`) | | `GEMINI_API_KEY` | Gemini (Google AI Studio) vloženia + chat backback | | `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 vo verzii 3.8.0 odstránené, pretože runtime ich už nečíta — títo poskytovatelia sa spoliehajú výlučne na Dashboard / `data/provider-credentials.json` / DB. Cestu migrácie nájdete v časti _Audit: Odstránené / mŕtve premenné_ v spodnej časti tohto dokumentu. > [!TIP] > Kľúče nastavené cez Dashboard sú uložené zašifrované v SQLite a majú prednosť pred premennými prostredia. > > **Jina:** `jina-ai/…` vloženia, prehodnotiť, klasifikovať, segmentovať a `jina-search` robiť** nie** účtovať kľúč env klastra, keď existuje pripojenie `jina-ai` (alebo zdieľané `jina-reader`) na dashboard — `getProviderCredentials` je na prvom mieste. `JINA_AI_API_KEY` / `JINA_API_KEY` sa používajú iba vtedy, keď neexistuje žiadny použiteľný kláves na palubnej doske. Protokoly hovorov pripisujú zálohu env ako `connection_id=env:JINA_AI_API_KEY`. Čitateľská karta (`jina-reader`, `r.jina.ai`) nikdy neslúži `/v1/embeddings` alebo `/v1/rerank`. > > **Gemini:** `gemini/gemini-embedding-2` (alias `google/gemini-embedding-2`) najprv používa pripojenie `gemini` na dashboard. `GEMINI_API_KEY` / `GOOGLE_API_KEY` sa používajú iba vtedy, keď neexistuje žiadny použiteľný kláves na palubnej doske. Protokoly hovorov pripisujú zálohu env ako `connection_id=env:GEMINI_API_KEY`. Natívna multimodálna prevádzka používa `x-goog-api-key` proti `:embedContent` / `:batchEmbedContents` — N OpenAI `input` položiek sa stáva N vektormi. --- ## 15. Nastavenia časového limitu Všetky hodnoty sú v** milisekúnd** . Centralizované rozlíšenie v `src/shared/utils/runtimeTimeouts.ts`. ### Hierarchia časového limitu ``` REQUEST_TIMEOUT_MS (global override) ├─→ FETCH_TIMEOUT_MS (upstream provider calls, default: 600000) │ ├─→ FETCH_HEADERS_TIMEOUT_MS (inherits from FETCH_TIMEOUT_MS) │ ├─→ FETCH_BODY_TIMEOUT_MS (inherits from FETCH_TIMEOUT_MS) │ ├─→ TLS_CLIENT_TIMEOUT_MS (inherits from FETCH_TIMEOUT_MS) │ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (independent, default: 10000) │ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (independent, default: 15000) │ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MS (independent, default: 0 = off, suggested: 30000) │ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS (independent, default: 2) │ ├── FETCH_CONNECT_TIMEOUT_MS (independent, default: 30000) │ └── FETCH_KEEPALIVE_TIMEOUT_MS (independent, default: 4000) ├─→ STREAM_IDLE_TIMEOUT_MS (inherits from REQUEST_TIMEOUT_MS, default: 600000) ├─→ STREAM_ACTIVE_TIMEOUT_MS (independent; unset: 1260000, raised by declared budgets; set: hard cap; 0 disables) ├─→ STREAM_READINESS_TIMEOUT_MS (inherits from REQUEST_TIMEOUT_MS, default: 80000) ├─→ STREAM_READINESS_MAX_TIMEOUT_MS (caps adaptive readiness extensions, default: 180000) └─→ API_BRIDGE_PROXY_TIMEOUT_MS (inherits from REQUEST_TIMEOUT_MS, default: 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (derived, default: 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (default: 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (default: 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (default: 0 = disabled) ``` | Variabilné | Predvolené | 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 požiadavky HTTP pre hovory poskytovateľa upstream. | | `STREAM_IDLE_TIMEOUT_MS` | `600000` | Maximálne ticho medzi nespracovanými upstream bajtmi pred prerušením. Modely s rozšíreným myslením len zriedka pozastavujú > 90. roky. | | `STREAM_ACTIVE_TIMEOUT_MS` | `1260000` | Maximálna celková životnosť aktívneho streamu SSE ; nikdy sa neresetuje na upstream bajtoch a je nezávislý od `REQUEST_TIMEOUT_MS`. Keď nie je nastavené, predvolená hodnota je najväčší `timeoutMs` na model v registri (1200 000, Codex) plus marža 60 000 a cieľ, ktorý deklaruje dlhší rozpočet (pripojenie `timeoutMs`, potom na model, potom na úrovni poskytovateľa, napr. 3000 000 GLM) dostane namiesto toho rozpočet plus 60 000. Kladná hodnota je pevný limit pre každý cieľ, ktorý deklarované rozpočty nemôžu zvýšiť. Ak chcete vypnúť pre každý cieľ, nastavte na `0`. | | `OMNIROUTE_SSE_COMMENTS` | _(zakázané)_ | Či OmniRoute môže vysielať SSE `:` komentáre (napr. `: keepalive` heartbeat a `x-omniroute-*` upútavky metadát). Predvolene vypnuté (#10524), pretože striktní klienti kompatibilní s OpenAI JSON.analyzujú každý riadok SSE a zlyhávajú pri komentároch `:` ; `data:` srdcové tepy nie sú ovplyvnené. Nastavte `on`/`true`/`1`/`yes` na opätovné prihlásenie. Používa ho `open-sse/utils/sseHeartbeat.ts`. | | `SSE_COALESCE_MS` | `0` (vypnuté) | Opt-in: zlúčenie po sebe idúcich udalostí Claude `content_block_delta` (rovnaký index bloku a typ delta) odoslané klientom Claude, splachovanie aspoň každých N ms. Bezstratový; `signature_delta` a hraničné udalosti sa nikdy nezlúčia. Platí pre každý typ delta, pokiaľ nie je nastavená premenná typu nižšie. Používa ho `open-sse/utils/sseDeltaCoalesce.ts`. | | `SSE_COALESCE_THINKING_MS` | `0` (vypnuté) | Prepísanie `SSE_COALESCE_MS` podľa typu pre `thinking_delta`. | | `SSE_COALESCE_TEXT_MS` | `0` (vypnuté) | Prepísanie `SSE_COALESCE_MS` podľa typu pre `text_delta`. | | `SSE_COALESCE_INPUT_JSON_MS` | `0` (vypnuté) | Prepísanie `SSE_COALESCE_MS` podľa typu pre `input_json_delta`. | | `SSE_FRAME_COALESCE_MS` | `0` (vypnuté) | Opt-in: dávkové SSE rámce preposlané v rámci N ms do jedného zápisu klientovi. Prvý rámec a terminálové rámce (`[DONE]`, `message_stop`, `error`, `response.completed`/`failed`/`incomplete`) nie sú nikdy oneskorené; so zapnutým dávkovaním ITL meria medzery medzi dávkami. Používa ho `open-sse/utils/sseOutputSink.ts`. | | `SSE_STALL_WATCHDOG` | `timer` | Implementácia sledovania byte-stall pre streamované odpovede. `timer` prezbrojí jeden časovač na každý upstream kus (vystrelí presne podľa rozpočtu stánku); `interval` si ponechá jednu kontrolu na stream s periódou `clamp(budget/4, 1s, 5s)`, takže v rámci rozpočtového obdobia + sa spustí stánok. Používa ho `open-sse/utils/streamStallWatchdog.ts`. | | `STREAM_READINESS_TIMEOUT_MS` | `80000` | Je čas prijať prvú udalosť SSE bez pingu. Po nastavení zdedí `REQUEST_TIMEOUT_MS`. | | `STREAM_READINESS_MAX_TIMEOUT_MS` | `180000` | Maximálne adaptívne okno pripravenosti na prvú udalosť pre veľké, náročné na nástroje alebo náročné požiadavky na streamovanie. | | `OMNIROUTE_AGENT_GOAL_POLICY_ENABLED` | `true` | Kill-switch pre heuristiku `/goal`. Nastavte `false`/`0`/`off`, aby ste úplne zakázali detekciu. Časové limity pripravenosti — a obnovenie streamu sa nikdy nezvýšia požiadavkou body/headers, čím sa zmierni klientom riadené zosilnenie časového limitu. | | `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | Maximálne okno pripravenosti prvej udalosti pre zistené spustenia agenta `/goal` alebo požiadavky vynútené `x-omniroute-agent-goal`. | | `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | Automaticky povoliť skoré obnovenie streamu pre zistené spustenia agenta `/goal`. Nastavte `false`/`0`/`off`, aby ste deaktivovali prihlásenie pre konkrétny cieľ. Toto môže obnoviť iba ADD nad predvoleným — operátora, nikdy to neprepíše explicitné zrušenie nastavení `STREAM_RECOVERY_ENABLED`/DB. | | `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | Odstráňte neštandardné udalosti `codex.*` SSE (napr. `codex.rate_limits`), ktoré porušujú OpenAI SDK `responses.stream()` s hodnotou 502. Predvolené ON (#11014). Nastavte `0`/`false`/`no`/`off`, aby ste ich poslali ďalej. | | `OMNIROUTE_CODEX_APPSERVER_WS` | _(nenastavené)_ | Prihlásiť sa na prenos Codex aplikácia-server. WebSocket koncový bod (`ws://`/`wss://`) lokálneho postranného vozíka `codex app-server`. Keď sa nastavia spolu s tokenom, požiadavky Codex sa smerujú cez JSON-RPC do postranného vozíka namiesto HTTP Responses API. Nastaviteľné aj na pripojenie cez `providerSpecificData.codexAppServerUrl`. Používa ho `open-sse/executors/codex/appServerConfig.ts`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(nenastavené)_ | Vložený token capability/bearer predložený aplikačnému serveru. Prepísanie na pripojenie: `providerSpecificData.codexAppServerToken`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(nenastavené)_ | Cesta k súboru, ktorý obsahuje token schopnosti aplikačného servera (od `codex app-server --ws-token-file`). Používa sa, keď nie je nastavené `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN`. Prepísanie na pripojenie: `providerSpecificData.codexAppServerTokenFile`. | | `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | Pracovný adresár, v ktorom beží aplikácia-server. Prepísanie podľa pripojenia: `providerSpecificData.codexAppServerCwd`. | | `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(nenastavené)_ | Schvaľovacia politika prešla na turn-aplikačný server (napr. `never`, `on-request`). Prepísanie na pripojenie: `providerSpecificData.codexAppServerApprovalPolicy`. | | `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(nenastavené)_ | Politika karantény odovzdaná na turnus app-server (napr. `read-only`, `workspace-write`, `danger-full-access`). Keď je deaktivovaný, spúšťač je štandardne nastavený na `workspace-write` (zosilnený; predtým `danger-full-access`). Prepísanie na pripojenie: `providerSpecificData.codexAppServerSandbox`. | | `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | Automatické schvaľovanie vlastných výziev na schválenie aplikačného servera (spustenie command/file/permission na hostiteľovi). Štandardne vypnuté výzvy — sú automaticky odmietnuté; volania nástrojov popruhu nie sú ovplyvnené (prechádzajú samostatným priechodom `item/tool/call` ). Prijíma `true`/`1`/`yes`. Prepísanie na pripojenie: `providerSpecificData.codexAppServerAutoApprove`. | | `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Čas na prijatie hlavičiek odpovede. | | `OMNIROUTE_FETCH_START_TIMEOUT_CAP_MS` | `110000` | Maximálne čakanie na hlavičky odpovede pri požiadavkách na streamovanie (ms). `0` zakáže túto čiapočku; explicitný poskytovateľ `fetchStartTimeoutCapMs` má prednosť. | | `OMNIROUTE_CODEX_IMAGE_RESPONSE_START_TIMEOUT_MS` | `600000` (10 min) | Termín začiatku prvej odpovede (ms) pre platené Codex image-generation/edit POSTs, a to priamo aj prostredníctvom HTTP(S)/SOCKS proxy. Tieto požiadavky sa nikdy neprehrajú po nejednoznačnom časovom limite alebo zlyhaní siete. Hranové relé (`vercel`/`deno`/`cloudflare`) tiež urobia jeden pokus, ale dodržia svoj vlastný termín `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS`. | | `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30s) | Maximálne čakanie na spustenie odpovede (ms) pre každý priamy pokus bez proxy. Časový limit sa zopakuje raz na novom sokete; nastavte `0`, aby ste zakázali väzbu a zachovali predchádzajúce správanie. | | `OMNIROUTE_LOCAL_DIRECT_HEADERS_TIMEOUT_MS` | `300000` (5 minút) | Spodná hranica spustenia odozvy (ms) pre priame pokusy bez proxy, ktorých cieľovým hostiteľom je private/LAN/loopback (napríklad `localhost`, `host.docker.internal`, `192.168.x.x`), takže natívny studený štart Ollama nie je prerušený predvolenou hodnotou 30 s vyššie. Funguje ako spodná hranica: efektívne čakanie je väčšie z tejto hodnoty a `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS`; `0` alebo neplatná hodnota odstráni lokálnu minimálnu hranicu. Vzdialení hostitelia nie sú ovplyvnení. | | `OMNIROUTE_DIRECT_HEADERS_VOLUME_ADAPTIVE` | `1` | Zvýšte okno spustenia priamej odozvy pomocou úrovne užitočného zaťaženia požiadavky: telá s hmotnosťou nad 512 KB získajú × 2, nad 2 MB × 3, obmedzené na 180 s a nikdy neznížia už vyššie poschodie (prepísanie operátorom alebo poschodie local/LAN vyššie). Veľké kontexty sa predvypĺňajú proporcionálne k veľkosti vstupu bez uvažovacieho selektora, ktorý sa má zapínať, takže ploché okno prerezáva zdravé pomalé predplnenie presne na podlahe. Nastavte `0`/`false`/`off` na pripnutie plochého správania. | | `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 min) | Horná hranica (ms) pre pokus o novú zásuvku RETRY po uplynutí časového limitu spustenia odpovede na spoločný pokus vyššie (#13703). Platí len vtedy, keď volajúci už pripojil svoj vlastný konečný signál (vyriešená kaskáda spojenia/model/poskytovateľ/`FETCH_TIMEOUT_MS` ); tento signál je skutočnou väzbou a vystrelí ako prvý na zamýšľanej ceste, takže toto je skôr veľkorysá spätná poistka než plochý — bez neho, opakovanie znovu použilo identické krátke `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` okno ako združený pokus a 504'd zdravé modely pomalého TTFB uvažovania. Nikdy nie je povolené pod rovnou podlahou nad ňou; keď volajúci neposkytne žiadny konečný signál, opakovaný pokus zachová rovnú podlahu nezmenenú. | | `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Čas na prijatie celého tela odpovede. | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | časový limit nadviazania spojenia TCP. | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Časový limit nečinnosti zásuvky Keep-alive. | | `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Časový limit proxy odtlačkov prstov TLS (wreq-js). | | `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | Špecificky viaže čas na prvý bajt na tele prenosu odtlačkov prstov TLS Wreq-js; Samotná `TLS_CLIENT_TIMEOUT_MS` nemôže zachytiť zaseknuté telo, pretože sa vyrieši hneď, ako prídu hlavičky (#12656). Časový limit zruší čítačku wreq a vráti sa späť k dispečerovi direct/proxy ; `0` zakáže strážneho psa. | | `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | Iba spúšťač OpenCode a iba vtedy, keď je príznak funkcie `OPENCODE_RESPONSES_STALL_ROTATION` zapnutý (predvolene vypnutý): ohraničuje čakanie na prvý bajt tela streamovanej odpovede odpovede po jej hlavičkách (#13484). Prúd odpovedí sa otvorí s `response.created`, takže ticho za týmto oknom sa zastaví: účet sa ochladí a požiadavka sa raz otočí na ďalší účet; druhé zastavenie rýchlo zlyhá. `0` deaktivuje stráž aj so zapnutou vlajkou. | | `OPENCODE_RESPONSES_HEADERS_WAIT_MS` | `0` (= vypnuté) | OpenCode executor only: ohraničuje čakanie na upstream hlavičky odpovedí pri streamovanom volaní Responses, keď je stále dostupný iný účet — požiadavka vo fronte prestane čakať a pokračuje ďalej namiesto toho, aby podržala celé okno hlavičiek. Ovplyvnené sú iba hovory streamovaných odpovedí (stream odpovedí sa otvára s `response.created`, takže je tu ticho, nie generovanie); dokončenie chatu a nestreamované hovory zostávajú nedotknuté a okno iba skracuje efektívny strop na spustenie načítania, nikdy ho nepredĺži. Odporúčaná hodnota pri povolení: `30000`. `0` zakáže. | | `OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS` | `2` | Iba exekútor OpenCode : koľkokrát na žiadosť sa môže hlavička-wait viazaná vyššie presunúť na ďalší účet. Posledný zostávajúci účet vždy uchováva celé okno hlavičky. | | `OPENCODE_PARK_AND_RESUME` | `false` | Iba vykonávateľ OpenCode : zaparkujte požiadavku tlkotom srdca po opakovaných prechodných 429 sekundách (alebo čerstvom značke napätia v bazéne), potom prehrajte jednu obmedzenú časť až 3 sekvenčných účtov namiesto rozloženia celej flotily (#13924). Predvolene vypnuté: každých 429 sa otočí na ďalší účet presne ako predtým. | | `OPENCODE_PARK_REPLAY_SERVE_SETASIDE` | `false` | OpenCode executor only: keď je každý účet pripravený na cooldown v úseku prehrávania park-and-resume odložený pamäťou proxy-odmietnutia, aj tak ich poslúži namiesto toho, aby ste nič prehrávali (#14851, pokračovanie #14750). Predvolene vypnuté: časť prehrávania je v tomto prípade prázdna, ako predtým #14750. | | `STREAM_READINESS_STALL_RETRY` | `false` | Iba streamovanie chatu: keď sa prvé upstream telo zastaví pred vytvorením použiteľnej udalosti, vykonajte jeden obmedzený druhý pokus cez rovnakú smerovaciu cestu s rovnakým rozpočtom pripravenosti a bez penalizácie účtu. Predvolene vypnuté: zablokované prvé telo nesplní požiadavku bez opätovného pokusu. | | `OPENCODE_POOL_RESELECT` | `false` | Iba spúšťač OpenCode : po zaslaní 429 od poskytovateľa s výstupným bucketom na účte bez proxy v kontexte okolitého fondu požiadajte fond pripojení o iného člena na ďalší pokus namiesto opätovného pokusu o rovnakú výstupnú adresu. Objednávky, nikdy nevylučuje: vyčerpaný fond si zachováva aktuálne správanie. Predvolene vypnuté: každých 429 sa otočí na ďalší účet presne ako predtým. | | `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(nenastavené)_ | Iba spúšťač OpenCode : prepíše cestu značky kmeňa načítanej pred zaparkovaním (`{since, reason, ttl_s}`, predvolené `/tmp/opencode-pool-strain.json`, #13924). Nová značka zaparkuje bez prepočítavania; chýbajúce alebo zatuchnuté spadne späť na počítadlo dávok. | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | Časový limit skoku proxy pre požiadavky na most `/v1`. | | `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Nasmerujte spúšťač webového načítania Firecrawl na samostatne hosťovanú inštanciu (kľúč API voliteľný mimo cloudu). | | `FIRECRAWL_TIMEOUT_MS` | `30000` | Časový limit pre každú požiadavku pre spúšťač webového načítania Firecrawl. | | `TAVILY_BASE_URL` | _(nenastavené)_ | Základné URL pre nástroj na získanie kvóty Tavily `/usage` (limity poskytovateľa); ignorované, keď ukazuje na `api.tavily.com`. Unset spadne späť na základňu spojenia URL. | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `300000` | Celkový časový limit serverovej požiadavky pre most. | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Je čas odoslať hlavičky odpovede cez most. | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Časový limit nečinnosti premostenia. | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Časový limit surovej zásuvky (0 = vypnutý). | | `SHUTDOWN_TIMEOUT_MS` | `30000` | Ochranná lehota na SIGTERM/SIGINT pred núteným odchodom. | | `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | Záložná funkcia, ktorú používa `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 `src/shared/network/safeOutboundFetch.ts`. Zvýšte pre pomalé koncové body (Cerebras, Cloudflare AI, Groq), aby ste predišli prepínaniu medzi active/error na paneli. Spadne späť na 8000 ms pre neplatné (< 1000) alebo nečíselné hodnoty. | | `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | Časový limit načítania špecifický pre relé v `open-sse/utils/proxyFetch.ts` (#9158). Zavesené relé musí zlyhať pred časovým limitom client/agent (~ 30 s), takže volajúci uvidia zlyhanie špecifické pre relé namiesto všeobecného upstream časového limitu. Limitovaný na `29000`, takže vždy vystrelí ako prvý. | | `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | Zdieľané stiahnutie opakovania pre cesty direct/relay/proxy opakovanie raz v `open-sse/utils/proxyFetch.ts` (#9158). `0` = skúste to ihneď znova. | | `OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS` | `60000` | Časový limit požiadavky natívneho wreq-js (`claudeTlsClient.ts`). | | `OMNIROUTE_CLAUDE_TLS_GRACE_MS` | `10000` | K pôvodnému časovému limitu bola pridaná absolútna milosť JS s pevným termínom. | | `OMNIROUTE_PPLX_TLS_TIMEOUT_MS` | `30000` | Časový limit požiadavky natívneho wreq-js (`perplexityTlsClient.ts`). | | `OMNIROUTE_PPLX_TLS_GRACE_MS` | `10000` | K pôvodnému časovému limitu bola pridaná absolútna milosť JS s pevným termínom. | | `OMNIROUTE_PPLX_SEARCH_HINT` | `0` (vypnuté) | Pridáva "Máte vstavané vyhľadávanie na webe. Odpovedajte na otázky priamo pomocou výsledkov vyhľadávania." do systémovej správy volajúceho (`perplexity-web/protocol.ts`). Predvolene vypnuté — Perplexity aj tak vyhľadáva a veta preniká do odpovedí ako metakomentár pre kódujúcich klientov. Na obnovenie nastavte `1`/`true`/`yes`/`on`. | | `OMNIROUTE_GROK_TLS_TIMEOUT_MS` | `60000` | Časový limit požiadavky natívneho wreq-js (`grokTlsClient.ts`). | | `OMNIROUTE_GROK_TLS_GRACE_MS` | `10000` | K pôvodnému časovému limitu bola pridaná absolútna milosť JS s pevným termínom. | | `OMNIROUTE_NOTION_TLS_TIMEOUT_MS` | `30000` | Časový limit požiadavky natívneho wreq-js (`notionTlsClient.ts`); `notion-web` ho na základe žiadosti zvýši na `180000` po dlhé generácie. | | `OMNIROUTE_NOTION_TLS_GRACE_MS` | `10000` | K pôvodnému časovému limitu bola pridaná absolútna milosť JS s pevným termínom. | | `OMNIROUTE_BROWSER_POOL` | `on` | Zdieľaný fond prehliadačov Playwright pre chat s webovými súbormi cookie podporovaný prehliadačom (`browserPool.ts`); nastaviť `off` na vypnutie. | | `OBSCURA_BIN` | `auto-detect` | Cesta k binárnemu súboru `obscura` používanému ako primárny nástroj fondom prehliadača a spúšťačom Cloudflare Playground (`open-sse/services/obscura.ts`); automaticky detekovaný zo systému PATH keď nie je nastavený. | | `OBSCURA_CDP_ENDPOINT` | _(nenastavené)_ | Ukážte na už spustenú Obscuru (`http://host:port`) namiesto toho, aby ste sa rozmnožili; modul nevlastní tento proces (`open-sse/services/obscura.ts`). | | `OBSCURA_PORT` | `random free port` | Explicitný port pre splodenú `obscura serve`; pri deaktivácii sa automaticky vyberie voľný port (`open-sse/services/obscura.ts`). | | `WEB_COOKIE_USE_BROWSER` | `0` | Prihláste žiadosť o rozhovor s webovými súbormi cookie na cestu podporovanú prehliadačom (`browserBackedChat.ts`); `1` povoliť. | | `KIMI_WEB_BASE_URL` | `https://www.kimi.ai` | Základ URL pre spúšťač webu Kimi (medzinárodné kimi.ai Connect-RPC) (`kimi-web.ts`); prepísať len pre koncové body mirror/proxy. | | `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Úplný koncový bod chatu pre webový spúšťač Kimi (`kimi-web.ts`). | | `OMNIROUTE_LOGIN_BROWSER_PATH` | _(automaticky rozpoznané)_ | Cesta k spustiteľnému systému Chrome/Edge pre prihlásenie do interaktívneho prehliadača Adobe Firefly (`adobeFireflyBrowserLogin.ts`); prepíše automatickú detekciu podľa OS. | | `OMNIROUTE_STANDALONE_DIR` | _.zostavenie/ samostatný výstup_ | Prepísanie času zostavenia pre samostatný výstupný adresár spotrebovaný krokom kolokácie po zostavení (`scripts/build/colocate-standalone.mjs`); zostavovacie nástroje, nie runtime. | Kombinované pokusy o cieľ zdedia vyriešený časový limit upstream požiadavky (`FETCH_TIMEOUT_MS` alebo `REQUEST_TIMEOUT_MS` keď poskytuje predvolené načítanie). Nastavte `targetTimeoutMs` v kombo, predvolené hodnoty komba alebo prepísanie poskytovateľa iba na zrýchlenie vrátenia komba; hodnoty nad aktuálny upstream upstream timeout sú obmedzené na upstream upstream timeout. `comboTimeoutMs` je samostatný celkový rozpočet na nástenné hodiny naprieč cieľmi zlyhania. Ak chcete zachovať neobmedzené opakovanie, nechajte ho nenastavené alebo `0` (stále platí 10-minútové pevne zakódované pozastavenie v `comboPredicates.ts` ). Kladná hodnota nahrádza bezpečnostnú sieť pre kombináciu. Udržujte `comboTimeoutMs` dlhšie ako `targetTimeoutMs`, takže núdzové prepnutie má stále čas po pomalom prvom cieli. ### Prahové hodnoty ističov Ladenie ističa na úrovni poskytovateľa. Predvolené hodnoty odrážajú škálované hodnoty používané od verzie 3.6 pre 500 pripojení +. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------------------------- | ---------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD` | `8` | `open-sse/config/constants.ts` | Prah následného zlyhania pre poskytovateľov OAuth pred vypnutím ističa. | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS` | `60000` | `open-sse/config/constants.ts` | Resetovať okno (ms) pre OAuth provider breaker. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD` | `12` | `open-sse/config/constants.ts` | Prah následného zlyhania pre poskytovateľov kľúčov API. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | Obnoviť okno (ms) pre prerušovač poskytovateľa kľúča API. | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Prah následného zlyhania pre lokálnych poskytovateľov (Ollama, LM Studio, ...). | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS` | `15000` | `open-sse/config/constants.ts` | Obnoviť okno (ms) pre istič lokálneho poskytovateľa. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD` | `10` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: zlyhania v rámci okna predtým, ako celý poskytovateľ OAuth vstúpi do chladenia. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS` | `900000` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: priebežné okno počtu zlyhaní (ms) pre poskytovateľov OAuth. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: cooldown (ms) po dosiahnutí prahu poskytovateľa OAuth. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD` | `5` | `open-sse/config/constants.ts` | Poskytovateľ OAuth zadá DEGRADED pri takom množstve zlyhaní. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER` | `8` | `open-sse/config/constants.ts` | OAuth poskytovateľ max resetTimeout eskalačný multiplikátor. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT` | `2` | `open-sse/config/constants.ts` | Poskytovateľ OAuth eskaluje po tomto mnohých otvorených cykloch. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD` | `15` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: zlyhania v rámci okna predtým, ako celý poskytovateľ kľúča API vstúpi do chladenia. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: pohyblivé okno počtu zlyhaní (ms) pre poskytovateľov kľúčov API. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: cooldown (ms) po dosiahnutí prahu poskytovateľa kľúča API. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | Poskytovateľ kľúča API zadá DEGRADED pri tomto množstve zlyhaní. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | Multiplikátor maximálnej eskalácie resetTimeout poskytovateľa kľúča API. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | Poskytovateľ kľúča API eskaluje po tomto mnohých otvorených cykloch. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Istič na úrovni poskytovateľa: zlyhania predtým, ako celý miestny poskytovateľ vstúpi do chladenia. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS` | `300000` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: priebežné okno počtu zlyhaní (ms) pre miestnych poskytovateľov. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | Prerušovač na úrovni poskytovateľa: cooldown (ms) po dosiahnutí prahu miestneho poskytovateľa. | | `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | Ochladzovanie na kľúč (ms) aplikované rotáciou kľúča API s viacerými kľúčmi, keď nadradený 429 nenesie žiadne `Retry-After` (#14573). Nekladné alebo nečíselné hodnoty sa vrátia späť na predvolené hodnoty. | | `OMNIROUTE_AVALANCHE_PROTECTION_ENABLED` | `false` | `open-sse/services/accountFallback/antiAvalanche.ts` | Voliteľná ochrana proti lavínam: umožňuje to iba explicitné `true`. Keď je zapnuté, 429, ktorá pomenúva limit počtu tokenov za minútu (a pretečenie kontextu 400), zastaví kaskádové prepnutie pri zlyhaní cez zostávajúce kľúče poskytovateľa. Vyčerpaná kvóta 429 neustále zlyháva, nech je výzva akokoľvek veľká, a HTTP 413 to neovplyvní (zachováva správanie #13350 pri opakovanom pokuse o iný účet). | | `OMNIROUTE_AVALANCHE_BURST_COOLDOWN_MS` | `60000` | `open-sse/services/accountFallback/antiAvalanche.ts` | Cooldown blokovania modelu (ms) sa použije, keď strážnik vystrelí, namiesto eskalujúceho blokovania. Dlhší upstream reset vždy vyhráva. Nekladné alebo nečíselné hodnoty sa vrátia späť na predvolené hodnoty. | | `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | Hĺbka stiahnutia, pri ktorej sa poskytovateľ pinu kontextovej vyrovnávacej pamäte považuje za trvalo nezdravý a pin je zrušený z dôvodu zlyhania. | | `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | Anti-flap okno (ms) tolerujúce krátke prechodné ochladenia pred uvoľnením kolíka kontextovej vyrovnávacej pamäte. | ### Scenáre | Scenár | Konfigurácia | | --------------------------------------- | ------------------------------------------------------- | | **Dlhotrvajúce generovanie kódu** | `REQUEST_TIMEOUT_MS=900000` (15 min) | | **Celková životnosť viazaného streamu** | `STREAM_ACTIVE_TIMEOUT_MS=1260000` (21 min) | | **Rýchle zlyhanie výroby API** | `API_BRIDGE_PROXY_TIMEOUT_MS=10000` | | **Rozšírené modely myslenia** | `STREAM_IDLE_TIMEOUT_MS=300000` (5 minút medzi kúskami) | --- ## 16. Ťažba dreva Protokolovací systém zapisuje do stdout aj do rotovaných protokolových súborov. Celú konfiguráciu číta `src/lib/logEnv.ts`. | Variabilné | Predvolené | Popis | | ----------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `APP_LOG_LEVEL` | `info` | Minimálna úroveň denníka: `debug`, `info`, `warn`, `error`. | | `APP_LOG_FORMAT` | `text` | Výstupný formát: `text` (čitateľné pre ľudí) alebo `json` (štruktúrované). | | `APP_LOG_TO_FILE` | `true` | Zapisujte protokoly do súboru vedľa stdout. | | `APP_LOG_FILE_PATH` | `logs/application/app.log` | Cesta k súboru denníka (vzhľadom na koreňový adresár projektu alebo `DATA_DIR`). | | `APP_LOG_MAX_FILE_SIZE` | `50M` | Maximálna veľkosť súboru pred otočením. Prijíma: `50M`, `1G`, `512K` alebo obyčajné bajty. | | `APP_LOG_RETENTION_DAYS` | `7` | Dni uchovávania rotovaných súborov denníka aplikácií. | | `APP_LOG_MAX_FILES` | `20` | Maximálne otočené zálohy súborov denníka. | | `CALL_LOG_RETENTION_DAYS` | `7` | Dni uchovávania záznamov denníka request/call v databáze. | | `CALL_LOG_MAX_ENTRIES` | `10000` | Maximálny počet záznamov protokolu hovorov vo vyrovnávacej pamäti v pamäti. | | `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | Maximálny počet riadkov v tabuľke `call_logs` SQLite pred orezaním. | | `ENABLE_REQUEST_LOGS` | _(nenastavené)_ | Vynútiť zapnutie alebo vypnutie podrobného prihlásenia žiadosti, čím sa prepíše nastavenie palubnej dosky. | | `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (1 hodina) | Maximálny vek pre osamotené aktívne položky protokolu žiadostí pred vyčistením v pamäti. | | `MAX_PENDING_DETAILS` | `5000` | Max. čakajúce podrobnosti (kladné celé číslo); počítacia čiapočka: zametať; čiapky byte/map : vložiť. | | `CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS` | `false` | Ukladajte časti streamu do artefaktov potrubia, keď `call_log_pipeline_enabled=true`. Prihlásiť sa (`true`) — je predvolene vypnuté, aby sa ušetril disk. | | `CALL_LOG_PIPELINE_MAX_SIZE_KB` | `512` | Maximálna veľkosť artefaktu protokolu hovorov v KB pri `call_log_pipeline_enabled=true`. | | `PROXY_LOGS_TABLE_MAX_ROWS` | `100000` | Maximálny počet riadkov v tabuľke `proxy_logs` SQLite pred orezaním. | | `PROXY_LOG_INCLUDE_IPS` | `false` | Zahrňte client/egress IPs a predpony účtu do denníkov konzoly `[ProxyEgress]`. Záznamy proxy-log dashboard/database uchovávajú všetky podrobnosti. | | `PROXY_LOG_FIRST_CHUNK_TIMING` | `false` | Nastavte na `"true"` alebo `"1"` ak chcete zaznamenať `first_chunk_ms` (odoslať začiatok na prvý užitočný bajt tela) do riadkov protokolu proxy. Zabalí každé upstream telo do lenivého priechodného prúdu a opraví riadok, keď príde bajt; predvolene vypnuté, takže odpovede prechádzajú nedotknuté. | | `APP_LOG_ROTATION_CHECK_INTERVAL_MS` | `60000` (1 min) | Ako často `src/lib/logRotation.ts` znova kontroluje veľkosť aktívneho súboru denníka. | | `CHAT_LOG_TEXT_LIMIT` | `65536` | Maximálna dĺžka reťazca zachovaná v artefaktoch protokolu rozhovoru (predvolená hodnota 64 KB). | | `CHAT_LOG_ARRAY_TAIL_ITEMS` | `128` | Počet položiek poľa ponechaných na konci pri skracovaní užitočného zaťaženia denníka rozhovoru. | | `CHAT_LOG_MAX_DEPTH` | `6` | Maximálna hĺbka vnorenia pred skrátením užitočných zaťažení denníka chatu. | | `CHAT_LOG_MAX_OBJECT_KEYS` | `80` | Maximálny počet kľúčov objektov zachovaných v užitočnom zaťažení denníka chatu (0 = neobmedzene). | | `CHAT_LOG_MAX_BODY_KB` | `1024` | Celá veľkosť tela request/response (KB) predtým, ako je nahradená holým súhrnom namiesto úplného klonu. Zvýšte to, ak dlhé konverzácie agentov zobrazujú zástupný symbol namiesto skutočných správ na informačnom paneli. | | `CHAT_DEBUG_FILE` | `false` | Keď je pravda, `serializeArtifactForStorage` preskočí skrátenie založené na veľkosti. Iba ladenie. | --- ## 17. Optimalizácia pamäte | Variabilné | Predvolené | Popis | | -------------------------------------------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_HEAP_DIAGNOSTICS_ENABLED` | `0` (vypnuté) | Nastavte `1` na zaznamenávanie metrík tlaku haldy V8 zo `src/lib/healthzLag.ts`. Veľkosti denníkov a počet letov, nikdy nepožadujte obsah, stopy ani hromadu snímok. Beží vo vnútri záznamníka slučky udalostí, takže `OMNIROUTE_EVENT_LOOP_STALL_THRESHOLD_MS=0` ho tiež vypína. | | `OMNIROUTE_HEAP_DIAGNOSTICS_THRESHOLD_MB` | `900` | Kladná hranica pre heapUsed (MiB), ktorá spúšťa prihlasovací diagnostický denník. Neplatné hodnoty používajú 900 MiB; správy s vysokou haldou sú obmedzené na raz za 60 sekúnd. | | `OMNIROUTE_MEMORY_MB` | _auto_ (holý kov);**`1024` na obrázku Docker** | **Odporúčané** limit haldy Docker/standalone V8 (MB). Keď nie je nastavený, kalibruje sa dynamicky (~ 35 % systému RAM, upnuté na `[512, 4096]`); `512` je iba dno, keď nie je možné prečítať celkovú pamäť. Na `run-standalone.mjs` (Docker CMD), an** explicitné** hodnota je pripojená ako `--max-old-space-size` a** vyhráva** nad konfliktným príznakom haldy NODE_OPTIONS (posledný príznak V8). `omniroute serve` stále uprednostňuje existujúcu haldu NODE_OPTIONS (#5238). Nenastavujte obe na rôzne čísla — proces zaznamená varovanie s pomenovaním oboch hodnôt a víťaza.** Oficiálny obrázok Docker vždy nastavuje `1024`, takže kalibrácia sa tam nikdy nespustí.** Coding-agent `/v1/responses` potrebuje `8192`–`12288` plus priestor pre cgroup — pozri [Docker Guide — runtime RAM](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). | | `OMNIROUTE_RSS_PRESSURE_MB` | _auto_ (`max(3072, 2 × OMNIROUTE_MEMORY_MB)`; vypnuté, keď `OMNIROUTE_MEMORY_MB` nie je nastavené) | `open-sse/utils/resourcePressure.ts` | Poistka absolútneho procesu-RSS (MB) pre pamäť native/external, ktorú V8 `heapUsed` nevidí; nad ním nové požiadavky dostanú 503 `resource_pressure`. RSS zriedkavo klesne po špičke, preto ho spárujte so `OMNIROUTE_PRESSURE_SELF_RESTART`. | | `PROMPT_CACHE_MAX_SIZE` | `50` | Maximálny počet položiek výzvy systému vo vyrovnávacej pamäti. | | `PROMPT_CACHE_MAX_BYTES` | `2097152` (2 MB) | Maximálna celková veľkosť vyrovnávacej pamäte výzvy. | | `PROMPT_CACHE_TTL_MS` | `300000` (5 minút) | Okamžitý záznam do vyrovnávacej pamäte TTL. | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | Maximálna teplota vo vyrovnávacej pamäti = 0 odpovedí. | | `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) | Záznam sémantickej vyrovnávacej pamäte TTL. | | `OMNIROUTE_SEMANTIC_CACHE_PRUNE_INTERVAL_MS` | `1800000` (30 min) | SQLite interval slivky. `0` zakáže spúšťanie a pravidelné spúšťanie; ostatné hodnoty pod `60000` sa vrátia späť na predvolené hodnoty. Hodnoty nad `2147483647` ms sa prispôsobia maximálnemu oneskoreniu časovača Node, čím sa zabráni prekročeniu dopytu na 1 ms. Prvý beh po 1 s; časovače sú nereferované a behy sa nikdy neprekrývajú. | | `OMNIROUTE_SEMANTIC_CACHE_PRUNE_BATCH_SIZE` | `2000` | Riadky na SQLite orezať DELETE, upnuté na `[100, 50000]`; vedie k slučke udalostí medzi dávkami. | | `OMNIROUTE_SEMANTIC_CACHE_PRUNE_MAX_BATCHES` | `50` | Zdieľaný dávkový rozpočet DELETE na spustenie počas vypršania platnosti a voliteľné prechody na obmedzenie počtu riadkov, viazané na `[1, 10000]`. Nevybavené úlohy pokračujú v neskorších spusteniach. | | `OMNIROUTE_SEMANTIC_CACHE_MAX_ROWS` | `0` | Voliteľné obmedzenie riadkov SQLite (`0` = žiadne). Po odstránení `expires_at <=` časovej pečiatky run-start ISO vyraďte najstarší `created_at`, potom `rowid`, vrátane aktívnych riadkov, v závislosti od rozpočtu zdieľanej dávky. Počty sú skrátené na celé čísla (až do limitu bezpečných celých čísel). Prázdne, nečíselné, neobmedzené alebo záporné hodnoty pre všetky štyri premenné orezania sa vrátia na svoje predvolené hodnoty; zlomky zaokrúhliť nadol. Orezanie nemení správanie TTL, pamäte LRU alebo vektorovej vyrovnávacej pamäte. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | Lokálne korpusové korene, ktoré súčasne uchovávajú aktívny index v pamäti (`src/lib/localCorpus/configured.ts`). LRU: pri limite je najmenej nedávno používaný koreňový index vyradený a prebudovaný pri ďalšom dotaze. Upnuté na minimum `1`; nečíselná hodnota sa vráti späť na predvolenú hodnotu. | | `STREAM_HISTORY_MAX` | `50` | Maximálny počet nedávnych udalostí streamu vo vyrovnávacej pamäti živého zobrazenia informačného panela. | | `CONTEXT_LENGTH_DEFAULT` | _(nenastavené)_ | Globálne prepísanie dĺžky kontextu (tokeny) pre každého poskytovateľa, ktorý nemá premennú `CONTEXT_LENGTH_`. Keď je nastavený,** nahrádza** katalóg, prepísanie dashboardu a hodnoty registra pre týchto poskytovateľov; keď nie je nastavený, OmniRoute používa svoj vstavaný reťazec, ktorého poslednou možnosťou je `128000`. Pozrite si [časť Dĺžka kontextu podľa poskytovateľa](#per-provider-context-length-context_length_provider). | | `USAGE_TOKEN_BUFFER` | `100` | Pri sledovaní kvót používania je vyhradená dodatočná rezerva tokenov. | ### Dĺžka kontextu podľa poskytovateľa (`CONTEXT_LENGTH_`) `open-sse/services/contextManager.ts` (`getEnvOverride()` / `resolveTokenLimit()`) tiež znamená a** na poskytovateľa** formulár, ktorého názov je zostavený z poskytovateľa ID za behu, takže nemôže byť uvedený riadok po riadku v tabuľke vyššie alebo v `.env.example`. **Meno.** `CONTEXT_LENGTH_`, kde `` je poskytovateľ ID napísaný veľkými písmenami, pričom každý znak mimo `A-Z` / `0-9` je nahradený `_`. Poskytovateľ ID je po rozlíšení aliasu kanonický (časť `provider` reťazca `provider/model` po vyriešení krátkeho aliasu). Vlastné uzly kompatibilné s OpenAI alebo Anthropic používajú svoj vygenerovaný uzol ID, takže UUID je súčasťou názvu premennej. Hodnota je kladné celé číslo tokenov; čokoľvek iné (prázdne, `0`, záporné, nenumerické) sa ignoruje a rozlíšenie sa presunie na ďalší krok. | Poskytovateľ ID | Názov premennej | | ----------------------------------------------------------- | -------------------------------------------------------------------------- | | agentrouter | CONTEXT_LENGTH_AGENTROUTER | | otvorený smerovač | CONTEXT_LENGTH_OPENROUTER | | openai-compatible-chat-0f8e2c1a-5b7d-4e3f-9a6c-2d1b8e4f7a90 | CONTEXT_LENGTH_OPENAI_COMPATIBLE_CHAT_0F8E2C1A_5B7D_4E3F_9A6C_2D1B8E4F7A90 | **Prednosť.** V prípade páru `provider/model` vyhráva prvý krok, ktorý prinesie hodnotu: 1. `CONTEXT_LENGTH_` pre daného poskytovateľa. 2. `CONTEXT_LENGTH_DEFAULT` (prepísanie globálneho prostredia). 3. Okno podľa modelu: trvalé prepísanie kontextu (nastavené na informačnom paneli alebo automaticky pripnuté zosúlaďovačom zisťovania, pozri `CONTEXT_WINDOW_RECONCILE_INTERVAL`), inak hodnota synchronizovaného katalógu / models.dev. 4. Register poskytovateľa `defaultContextLength`. 5. Heuristika názvu modelu (`claude` 200000, `gemini` 1000000, `gpt` / `o1` / `o3` / `o4` / `codex` 400000). 6. Vstavané predvolené hodnoty pre jednotlivých poskytovateľov, potom `128000`. Oba kroky prostredia sa vzťahujú na** celého poskytovateľa** : každý model tohto poskytovateľa má rovnaký limit a víťazí nad prepismi na dashboarde podľa modelu. Ak iba jeden model poskytovateľa potrebuje iné okno, použite namiesto toho prepísanie pre každý model na informačnom paneli. **Rozsah.** Tento reťazec riadi kontrolu kontextového okna v čase požiadavky (odmietnutie `context_length_exceeded` / "Vstup presahuje kontextové okno" v `open-sse/handlers/chatCore.ts`), rozpočty rýchlej kompresie a limity kontextu komba. `context_length` inzerované `GET /v1/models` môže stále pochádzať z metadát katalógu alebo registra a nie je zaručené, že bude odrážať prepísanie prostredia. **Príklad.** Poskytovateľ, ktorého model akceptuje okno s 1 050 000 tokenmi, zatiaľ čo katalóg uvádza 128 000: ```dotenv CONTEXT_LENGTH_AGENTROUTER=1050000 ``` Po zmene reštartujte server: hodnota sa načíta z prostredia procesu servera. Na** desktopová aplikácia** server beží ako podriadený proces a po spustení aplikácie nevidí nastavenú systémovú premennú; vložte riadok do súboru `.env`, ktorý sa načítava (poradie vyhľadávania v [Electron Guide: Environment file lookup](../guides/ELECTRON_GUIDE.md#environment-file-lookup) ), potom úplne ukončite a znova spustite aplikáciu. ### Kompresia | Variabilné | Predvolené | Popis | | ------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | odstaviť | Dôverujte projektu `.rtk/filters.json` bez hashu `.rtk/trust.json`. Používajte len v kontrolovanom lokálnom rozvoji. | ### Memory Engine (plán 21) ### Náklady na pamäť, zručnosti a obnovenie tokenu v slučke udalostí (#10349) OmniRoute je a** proces jedného uzla** . Na tom beží pamäť extraction/retrieval, vstrekovanie zručností a obnovenie tokenu poskytovateľa** rovnaká slučka udalostí** ako `GET /healthz` a prístrojová doska. Nie sú pracovným vláknom. | Práca | kód | Predvolené | Ovládanie operátorom | | -------------------------- | ---------------------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | | Extrakcia/vyvolanie pamäte | `src/lib/memory/` | Dashboard**memoryEnabled** (predvolene zapnuté) | Vypnite** Nastavenia → Memory** . Okrem vypnutia funkcie v nastaveniach neexistuje žiadny samostatný prepínač zabíjania env. | | Injekcia zručností | `src/lib/skills/injection.ts` | Dashboard**skillsEnabled** (predvolene zapnuté) | Vypnite** Nastavenia → Memory/Skills** (`skillsEnabled`). Gombíky karantény pod iba viazané spustenie po injekcii je už zapnuté. | | Obnovenie tokenu | `src/sse/services/tokenRefresh.ts` | Zapnuté pre pripojených poskytovateľov OAuth/web | Odpojte poskytovateľa alebo nechajte tokeny v platnosti; dnes neexistuje `TOKEN_REFRESH=0` env. | Ak je `/healthz` na tichom boxe pomalá, najskôr deaktivujte zručnosti + pamäte a potom skontrolujte zaťaženie catalog/compression (#10303, #9685). Tieto funkcie prinášajú zisk v bodoch `await`, ale stále súťažia o jedno vlákno. Gombíky vkladania vrstvy, vektorového ukladania a zmeny poradia pre subsystém perzistentnej pamäte (`src/lib/memory/`). | Variabilné | Predvolené | Popis | | ------------------------------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (5 minút) | TTL pre vyrovnávaciu pamäť na vkladanie do pamäte (na podpis source/model/dim ). | | `MEMORY_EMBEDDING_CACHE_MAX` | `1000` | Maximálny počet záznamov LRU uložených vo vyrovnávacej pamäti na vkladanie. | | `MEMORY_TRANSFORMERS_MODEL` | `Xenova/all-MiniLM-L6-v2` | HF repo id pre voliteľný `@huggingface/transformers` miestny kanál MiniLM (~ 23 MB int8, ~ 400 MB RAM). | | `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | HF repo id pre statickú potion/Model2Vec vyhľadávaciu tabuľku embedder. Lenivo stiahnuté do vyrovnávacej pamäte. | | `MEMORY_STATIC_CACHE_DIR` | `/embeddings` | Adresár používaný na ukladanie súborov modelu statického elixíru do vyrovnávacej pamäte. Predvolená hodnota pod `DATA_DIR`, keď nie je nastavená. | | `HF_HUB_ENDPOINT` | `https://huggingface.co` | Prepíše základňu Hugging Face Hub URL používanú `staticPotion.ts` (napr. koncový bod zrkadla pre nastavenia so vzduchovou medzerou). | | `MEMORY_VEC_TOP_K` | `20` | Predvolené top-K používané pri vektorovom vyhľadávaní hrubou silou `sqlite-vec` v `src/lib/memory/vectorStore.ts`. | | `MEMORY_RRF_K` | `60` | Konštanta recipročného poradia fúzie `k` pre hybridné vyhľadávanie vektorov FTS5 + (recept sqlite-vec). | | `VECTOR_STORE_DISABLE_VEC` | `false` | Test/diagnostic šev v `getVectorStore()` (`src/lib/memory/vectorStore.ts`): keď `true`, núti vektorový ukladací priestor na `null` (simuluje prostredie cloud/WASM bez `sqlite-vec`), čím sa zhoršuje vyhľadávanie pamäte na vyhľadávanie podľa kľúčového slova FTS5. Nechajte vo výrobe nenastavené. | | `NOTION_API_KEY` | _(nenastavené)_ | kľúč API pre backend Notion (používaný známou predvoľbou backendu `genericBackend.ts` ). | | `NOTION_API_URL` | `https://api.notion.com/v1` | Základné URL pre Notion API (môže prepísať pre alternatívy Notion s vlastným hosťovaním). | | `OBSIDIAN_API_KEY` | _(nenastavené)_ | Kľúč API pre backend Obsidian Vault (používaný známou predvoľbou backendu `genericBackend.ts` ). | | `OBSIDIAN_API_URL` | `http://localhost:27123` | Základné URL pre Obsidian Vault API (môže prepísať pre vzdialený trezor). | | `MEMORY_TYPED_DECAY_ENABLED` | `false` | Hlavný prepínač znižovania pamäte typu TV6.** Prihlásiť sa (predvolene vypnuté)** — zametanie** vymaže** skazené spomienky. Keď je vypnutá, `access_count`/`last_accessed_at` sú čistou telemetriou a nikdy sa nič nevymaže. | | `MEMORY_TYPED_DECAY_EPISODIC_DAYS` | `30` | TTL (dni), po ktorých sa nevyužitá pamäť `episodic` rozpadne. `0` tiež robí epizodickú imunitu. Odolné typy (`factual`/`procedural`/`semantic`) sú vždy imúnne. Hodiny rozpadu znovu zakladajú na `last_accessed_at`. | | `MEMORY_TYPED_DECAY_ACCESS_IMMUNITY` | `3` | Pamäťová injekcia `>=` sa mnohokrát stáva imúnnou voči rozpadu bez ohľadu na typ. `0` zakáže prístupovú imunitu. | | `MEMORY_TYPED_DECAY_SWEEP_INTERVAL` | `0` (zakázané) | Interval (v sekundách) pre voliteľné periodické vychýlenie v `src/lib/memory/typedDecay.ts`. `0`/unset = žiadne pravidelné zametanie. Dvojité prihlásenie: vyžaduje sa aj `MEMORY_TYPED_DECAY_ENABLED=true`. | | `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(nenastavené)_ | ID poskytovateľov oddelené čiarkami (nerozlišujú sa malé a veľké písmená), ktoré prijímajú správu `system`** len pri indexe 0** (`src/lib/memory/injection.ts`). Pre tieto je spojenie medzipamäťovej pamäte bezpečné vo vyrovnávacej pamäti vo viacotáčkových konverzáciách nebezpečné, takže hlavnou systémovou správou je namiesto toho pamäť merged/prepended. Predvolená hodnota je len `xiaomi-mimo`/`mimo`; rozšíriť o samostatné koncové body kompatibilné s OpenAI (napr. Qwen3.5 +/3.6), ktorých šablóna chatu presadzuje rovnaké obmedzenie systémovej správy s jedným vedúcim. | ### Príklad Docker s nízkou pamäťou RAM `128` je len na prístrojovej doske. Kódovací agenti na tejto halde `FATAL ERROR` počas dlhého `/v1/responses`. Tento príklad nepoužívajte 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 cene modelu z externých zdrojov. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ----------------------- | ------------- | ------------------------ | ----------------------------------------- | | `PRICING_SYNC_ENABLED` | `false` | `src/lib/pricingSync.ts` | Aktivujte pravidelnú synchronizáciu 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. | --- ## Arena ELO Sync | Variabilné | Predvolené | Zdrojový súbor | Popis | | ---------------------------- | ------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Pravidelná synchronizácia výsledkov ELO AI v aréne, konfigurovateľná pomocou vlajok funkcií ovládacieho panela alebo pomocou `false` na odhlásenie. | | `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | Formulár predpony používaný pre ID modelov v `GET /v1/models`. `dual` propaguje krátku predponu aliasu aj predponu kanonického poskytovateľa pre každý model (spätná kompatibilita — zhruba zdvojnásobuje katalóg); `alias` vydáva jedno ID na model; `canonical` vysiela iba úplnú predponu identifikátora poskytovateľa (poskytovatelia, ktorých alias je už kanonické ID, si ponechajú svoj jediný záznam). Klienti môžu prepísať požiadavku pomocou `?prefix=alias`. Pozri [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ľ detského ihriska PromptQL (Unofficial/Experimental) Reverzne vytvorený most relácie GraphQL pre prompt.ql.app (`src/shared/constants/providers/web-cookie.ts`). Všetky voliteľné predvolené hodnoty — smerujú na koncové body verejného ihriska; prepísať len pre nasadenie self-hosted/alternate PromptQL. | Variabilné | Predvolené | 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ý pre operácie chat/session. | | `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 dopytovanie kreditu balance/usage. | | `PROMPTQL_TOKEN_REFRESH_URL` | `https://auth.pro.ql.app/ddn/project/token` | `open-sse/executors/promptql.ts` | Koncový bod používaný na obnovenie tokenu s maximálnym úsilím. | | `PROMPTQL_POLL_TIMEOUT_MS` | `180000` | `open-sse/executors/promptql.ts` | Maximálny čas (ms) na prieskum `thread_events` pred vypršaním časového limitu. | --- ## HyperAgent webový poskytovateľ (Unofficial/Experimental) Reverzne navrhnutý most relácie pre hyperagent.com (`src/shared/constants/providers/web-cookie.ts`). Voliteľné — predvolené body na verejnom koncovom bode billing/usage ; prepísať len pre nasadenie self-hosted/alternate HyperAgent. | Variabilné | Predvolené | 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 kreditných blokov billing/usage. | --- ## Zásady rozpočtu na používanie bez ceny | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------ | ------------------------------------------------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `UNPRICED_USAGE_BUDGET_POLICY` | _(nenastavené; zlyhanie uzavreté, pokiaľ nie je povolené boolovské odhlásenie)_ | `src/shared/utils/featureFlags.ts` | Limity daily/weekly USD na kľúč: `fail_closed` blokuje skutočne lacné použitie; `count_as_zero` to počíta ako 0 USD pri presadzovaní ocenených výdavkov. Explicitné enum (DB pred env) prepíše boolovské odhlásenie. Neplatné hodnoty a zlyhania vyhľadávania cien sa nepodarilo uzavrieť. | | `USAGE_LIMIT_IGNORE_UNPRICED` | `false` | `src/shared/utils/featureFlags.ts` | Upstream logická kompatibilita opt-out: Započítava sa skutočne neocenené použitie ako $0, len ak nie je nakonfigurovaná žiadna explicitná enum politika. Cenové výdavky a neúspešné vyhľadávania zostávajú presadzované. | ## Kvóty používania kilokódov Osobný USD zostatok a vyhľadávanie využitia Kilo Pass pre poskytovateľa Kilo Code. Voliteľné — predvolené body na verejných kilo API; prepísať iba pre zariadenie relay/test. Autentifikácia používa existujúci prístupový token OAuth pripojenia. | Variabilné | Predvolené | Zdrojový súbor | Popis | | -------------- | --------------------- | ------------------------------------- | -------------------------------------------------------------------------------------- | | `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | Základňa URL sa používa na načítanie osobného zostatku Kilo Code a použitia Kilo Pass. | --- ## Adobe Firefly Web Provider (Unofficial/Experimental) 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é — sú všetky predvolené nastavenia vyladené pre normálnu inštaláciu na plochu. > **Odstránené v #9255.** Starý runtime Chrome pripojený k CDP (adobeFireflyChromeRuntime.ts) bol nahradený službou prihlasovania do prehliadača Playwright a jej gombíky už neexistujú. Premenné ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART plus ADOBE_FIREFLY_LOGIN_WAIT_MS a ADOBE_FIREFLY_FORTER_WAIT_MS sa nečítajú nikde v kódovej základni — pričom ich nastavenie nemá žiadny vplyv. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------ | --------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Nastaviť na `1` pre skutočný bezhlavý Chrome (známe-nefunkčné pre generovanie; iba ladenie). | | `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | Proaktívne zahrievanie prehliadača opt-in/out. `0` deaktivuje proaktívne zahrievanie (obnovenie 408 v polovici dávky stále platí). | | `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | Nastavte na `0`, ak chcete deaktivovať zachovanie relácie Adobe Firefly na disku. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(nenastavené)_ | `open-sse/services/adobeFireflySession.ts` | Minimálna medzera (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` | Extra medzera (ms) pridaná po úspešnej dávke, čím sa prepíše vstavaná predvolená hodnota. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(nenastavené)_ | `open-sse/services/adobeFireflyClient.ts` | Základné oneskorenie (ms) pred odoslaním požiadavky na generovanie, čím sa prepíše vstavaná predvolená hodnota. | --- ## 19. Synchronizácia modelu (dev) | Variabilné | Predvolené | Zdrojový súbor | Popis | | ----------------------------------- | --------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MODELS_DEV_SYNC_ENABLED` | _(nenastavené)_ | `src/lib/modelsDevSync.ts` | Tvrdé prepísanie synchronizácie cien models.dev. Zrušiť nastavenie = honor Nastavenia > AI (`modelsDevSyncEnabled`). `0`/`false`/`off`/`no`** víťazí nad DB** a preskočí periodickú synchronizáciu aj skenovanie `getModelsDevPricing()` SQL/JSON (obnovenie, keď je prístrojová doska zaklinená v rovnakej slučke udalostí). `1`/`true`/`on`/`yes` sa synchronizujú sily. Ceny save/clear stále volajú `backupDbFile("pre-write")`, čo je no-op pod 60-minútovým limitom alebo `DISABLE_SQLITE_AUTO_BACKUP`. | | `MODELS_DEV_SYNC_INTERVAL` | `86400` (24h) | `src/lib/modelsDevSync.ts` | Interval synchronizácie katalógu modelov v čase vývoja v sekundách. | | `CONTEXT_WINDOW_RECONCILE_INTERVAL` | `86400` (24h) | `src/lib/contextWindowResolver.ts` | Interval (v sekundách) pre samoopravný zosúlaďovač kontextového okna (5004): pripne okná deklarované poskytovateľom z objavenia `/models`, keď sa `auto:discovery` odklonia od katalógu. Ak ju chcete vypnúť, nastavte na `0`. Opätovne použije už synchronizované údaje (žiadne nové načítanie); nikdy neprepíše prepisy `manual`. | --- ## 20. Nastavenia špecifické pre poskytovateľa | Variabilné | Predvolené | Zdrojový súbor | Popis | | ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24h) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter modelový katalóg cache TTL. | | `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Zahrňte do odpovedí `/v1/models` polia `name` vhodné na zobrazenie. Zakázať pre klientov, ktorí očakávajú iba IDs. | | `OMNIROUTE_GEMINI_WEB_ARGON_ENABLED` | `0` (vypnuté) | `open-sse/config/providers/registry/gemini/web/index.ts` | Prihlásiť sa (#16573). Nastavte `1` (alebo `true`/`yes`), aby inzeroval `gweb/gemini-4-argon` na webovom poskytovateľovi Gemini a nechajte jeho vykonávateľa vybrať tento režim. Predvolene vypnuté, pretože selektory ponuky režimu Argon neboli skontrolované so živým webovým účtom Gemini ; keď je vypnutý, model nie je uvedený a žiadosť oň je zamietnutá ako neznámy model, ako predtým. Čítajte pri spustení, takže zmena vyžaduje reštart. | | `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8s) | `src/app/api/v1/models/catalogCache.ts` | Čakanie na studenej ceste viazané na zjednotené prebudovanie katalógu `GET /v1/models` (#12627). Po vypršaní časového limitu je doručených 200 posledných dobrých, ak nejaký existuje. | | `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dní) | `src/lib/db/models/activeSyncedCatalog.ts` | Vek, po ktorom zoznam synchronizovaných modelov pripojenia prestane byť autoritatívny pre smerovanie a zlyhá pri otvorení registra (#12849). Nikdy neoznačené riadky sa počítajú ako neaktuálne. | | `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60. roky) | `src/lib/usage/analyticsResponseCache.ts` | Ako dlho sa znova používa pomalá odpoveď `GET /api/usage/analytics` pre rovnaký reťazec dopytu (#15629). `0` zakáže vyrovnávaciu pamäť. | | `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1s) | `src/lib/usage/analyticsResponseCache.ts` | Do vyrovnávacej pamäte sa ukladajú iba analytické odpovede, ktorých zostavenie trvalo aspoň takto dlho, takže malé inštancie vždy vidia čerstvé údaje. | | `OMNIROUTE_CACHE_METRICS_MIN_COMPUTE_MS` | odstaviť (vypnuté) | `src/app/api/cache/route.ts` cez `src/lib/usage/analyticsResponseCache.ts` | Prihlásiť sa (#16361). Keď je nastavené na nezáporné celé číslo N, časť histórie používania `GET /api/cache` (trend súčtu + vo vyrovnávacej pamäti výzvy) sa poskytuje zo zdieľanej vyrovnávacej pamäte analytických odpovedí, keď vytvorenie `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` trvalo aspoň N ms na jedno upnuté okno `trendHours` (história sa môže oneskoriť až do tohto TTL; `DELETE /api/cache` ju zruší). Nenastavená alebo neplatná história = prečítaná naživo pri každej žiadosti. | | `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maximálne čakanie na úlohy generovania obrázkov NanoBanana. | | `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | frekvencia prieskumov pracovných miest NanoBanana. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Základné oneskorenie exponenciálneho odkladu exponenciálneho odstúpenia od predloženia a opätovného pokusu Adobe Firefly. | | `AWS_REGION` | _(nenastavené)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Oblasť použitá na vytvorenie koncových bodov AWS Bedrock (Kiro, audio). | | `AWS_DEFAULT_REGION` | _(nenastavené)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Záložný režim, keď nie je nastavené `AWS_REGION`. | | `CLOUDFLARE_ACCOUNT_ID` | _(nenastavené)_ | `open-sse/executors/cloudflare-ai.ts` | Účet ID pre pracovníkov Cloudflare AI. | | `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nenastavené)_ | `open-sse/executors/cloudflare-playground.ts` | Úplná binárna cesta prehliadača Chrome pre počítač pre spúšťač Cloudflare AI Playground, ktorý sa používa, keď bezhlavá kontrola odtlačkov prstov blokuje pribalený prehliadač Chromium Playwright. | | `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) — _unset = no length cap_ | `open-sse/executors/codebuddy/shared.ts` | Voliteľné obmedzenie dĺžky pre výzvy systému volajúceho odoslané na CodeBuddy (CN a International). Štandardne je iba výzva nesúca značku identity kódovacieho agenta nahradená neutrálnou (obsahový filter Tencent ich odmieta); dlhé výzvy sa uchovávajú. Celé číslo > 0 tiež nahradí akúkoľvek systémovú výzvu, ktorá je dlhšia ako toľko znakov; unset, `0` alebo neceločíselná hodnota zakáže obmedzenie. Každá náhrada zaznamenáva, ktoré pravidlo sa spustilo (značka identity alebo dĺžka). | | `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Prepíšte základňu Cloudflare REST API používanú nasadzovačom prenosu pracovníkov skupiny proxy (#4640 / 9router#1360). | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Predvolený názov pracovného projektu navrhnutý v modáli proxy-pool "Nasadenie relé". | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nastavte na `false`, ak chcete skryť možnosť prenosu pracovníkov Cloudflare na karte Proxy Pool. | | `CLOUDFLARED_BIN` | automatická detekcia | `src/lib/cloudflaredTunnel.ts` | Vlastná cesta k binárnemu súboru `cloudflared`. | | `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Protokol prenosu tunela: `http2` (predvolené), `quic` alebo `auto`. | | `CLOUDFLARED_CONFIG` | _(nenastavené)_ | `src/lib/cloudflaredTunnel.ts` | Cesta k lokálne spravovanému cloudflared `config.yml` (so `tunnel:`, `credentials-file:`, `ingress:`). Keď je nastavený, OmniRoute spustí `tunnel --config run` (pomenovaný tunel) namiesto efemérneho rýchleho tunela. | | `CLOUDFLARED_HOSTNAME` | _(zo vstupu konfigurácie)_ | `src/lib/cloudflaredTunnel.ts` | Prepísanie verejného názvu hostiteľa pomenovaného tunela (napr. `ai.example.com`), hláseného ako `publicUrl`/`apiUrl`. Keď nie je nastavený, načíta sa z prvého názvu hostiteľa `ingress` konfigurácie. | | `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Prepíšte základňu Deno Deploy REST API, ktorú používa nasadzovač relé fondu proxy (#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 navrhnutý v modáli „Deploy Relay“ fondu proxy. | | `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nastavte na `false`, ak chcete skryť možnosť prenosu Deno Deploy na karte Proxy Pool. | | `SEARCH_CACHE_TTL_MS` | `300000` (5 minút) | `open-sse/services/searchCache.ts` | TTL pre vyhľadávanie API (Perplexity, Brave, atď.) odpoveď do vyrovnávacej pamäte. | | `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Odhaľte experimentálneho poskytovateľa kompatibilného s CC UI pre relé Claude iba s kódom. | | `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Prepíšte hostiteľa, na ktorom počúva vstavaná inštancia smerovača. | | `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Prepíšte port, na ktorom počúva vstavaná inštancia smerovača. | | `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Naviazať hostiteľa pre server proxy WebSocket vstavanej služby (predvolene iba spätná slučka). | | `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port pre vstavaný server proxy WebSocket. | | `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI bridge host (staršia integrácia). | | `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | prístav mosta CLIProxyAPI. | | `CLIPROXYAPI_API_KEY` | _(prázdne)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Záložný kľúč dátovej roviny, keď chýba nastavenie `cliproxyapi_api_key`. | | `CLIPROXYAPI_MANAGEMENT_KEY` | _(prázdne)_ | `src/lib/services/cliproxyAccountHealth.ts` | Riadiaci kľúč pre čítanie stavu účtu z externe spravovanej inštancie CLIProxyAPI. | | `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI konfiguračný adresár. | | `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Hostiteľské rozhranie docker-compose publikuje postranný vozík `cliproxyapi` na (#12578). Jeho dátový objem obsahuje poverenia poskytovateľa OAuth/API a pripojený obrázok nemá žiadne prepísanie dátovej roviny `api-keys` na základe env (iba pripojené `config.yaml`), takže `0.0.0.0` sprístupňuje službu nesúcu poverenia celému LAN. | | `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Prepíšte port, na ktorom počúva vložený démon Mux (coder/mux) agent-orchestration (vždy 127.0.0.1). | | `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Prepíšte port, na ktorom počúva vložený démon open-wa (WhatsApp Web automation) (vždy 127.0.0.1). | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Hostiteľ Dario embedded-service bind/connect (predvolene iba spätná slučka). | | `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ľ Dario embedded-service bind/connect (predvolene iba spätná slučka). | | `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 „miestne“ (názvy služieb Docker atď.). | `ENABLE_CC_COMPATIBLE_PROVIDER` je len pre relé tretích strán, ktoré akceptujú výhradne klientov Claude Code. OmniRoute prepisuje požiadavky tak, aby ich tieto relé akceptovali. Ak chcete použiť iba Claude Code CLI, alebo si nie ste istí, čo tieto relé sú, ponechajte toto vypnuté a namiesto toho pridajte bežného poskytovateľa kompatibilného s Anthropic. --- ## 21. Zdravie proxy | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | `src/lib/proxyHealth.ts` | Časový limit rýchlej kontroly stavu. | | `PROXY_LATENCY_WINDOW_HOURS` | `3` | `src/lib/db/proxies.ts` | Časové okno (hodiny) na výpočet priemernej latencie kandidátskych proxy v stratégii skupiny s optimalizovanou latenciou. | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | `src/lib/proxyHealth.ts` | Medzipamäť výsledkov kontroly stavu TTL. | | `NONE_HONORED_WINDOW_HOURS` | `24` | `src/lib/db/reasoningEffortCompliance.ts` | Priebežné okno v hodinách pre čítačku = na GET /v1/models/health. | | `NONE_HONORED_CACHE_TTL_MS` | `20000` | `src/lib/db/reasoningEffortCompliance.ts` | Uložte do vyrovnávacej pamäte TTL v ms pre snímku nesúladu (15 – 30 s). | | `NONE_HONORED_MIN_SAMPLE` | `3` | `src/lib/db/reasoningEffortCompliance.ts` | Minimálne žiadne požiadavky predtým, ako bude model prečítaný ako uznaný alebo neocenený; pod týmto model znie neznámy. | | `PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS` | `2000` | `src/lib/proxyHealth.ts` | Uložte do vyrovnávacej pamäte TTL pre neúspešné sondy stavu servera proxy. Udržujte toto kratšie ako `PROXY_HEALTH_CACHE_TTL_MS`, aby prechodné časové limity servera proxy pri vysokej súbežnosti rýchlo opakovali bez vypnutia rýchleho zlyhania pre skutočne mŕtve servery proxy. | | `PROXY_HEALTH_ENABLED` | `true` | `src/lib/proxyHealth/scheduler.ts` | Nastavte `false`, aby ste zakázali plánovač stavu servera proxy na pozadí, ktorý pravidelne testuje registrované servery proxy. | | `PROXY_HEALTH_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Interval na pozadí plánovača stavu v ms (minimálne `60000`). | | `PROXY_HEALTH_RELAY_INTERVAL_MS` | `21600000` | `src/lib/proxyHealth/relayCadence.ts` | Interval sondy v ms pre servery proxy na hrane relé (`deno`/`vercel`/`cloudflare`), ktorých sondy prebudia účtovanú bezserverovú izoláciu (minimálne `60000`). | | `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Interval prechodu obnovenia na pozadí v ms: ako často sa predtým nezdravé servery proxy opätovne testujú, aby sa obnovený server proxy vrátil do rotácie bez reštartu. Hodnoty pod `60000` sa vrátia na predvolené hodnoty. | | `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | Cieľ sondy dosiahnuteľnosti používaný plánovačom a koncovým bodom `/api/settings/proxies/auto-test`. Nasmerujte ho na internal/self-hosted URL, aby ste sa vyhli verejnému predvoleniu. | | `PROXY_HEALTH_TEST_CONCURRENCY` | `10` | `src/lib/proxyHealth/probeTarget.ts` | Sondy sa spustili naraz v dávke, zdieľané plánovačom a koncovým bodom `/api/settings/proxies/auto-test`. Poschodie na 1 a obmedzenie na 50. | | `PROXY_HEALTH_TEST_STAGGER_MS` | `100` | `src/lib/proxyHealth/probeTarget.ts` | Oneskorenie v ms medzi dvoma odchodmi sondy v rámci dávky. Bez nej celá dávka odchádza v rovnakom momente a zdieľaný výstup IP môže spustiť cieľ s obmedzenou rýchlosťou. Nastavte na `0`, aby ste zakázali medzery; obmedzená na 5000. | | `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | Ak chcete zastaviť testovanie skutočného hostiteľa priradeného poskytovateľa proxy (`GET /models`, bez kľúča API ), nastavte hodnotu „false“ a namiesto toho vždy použite `PROXY_HEALTH_TEST_URL`. | | `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | Keď `false` (predvolené), sú automatické sondy dosiahnuteľnosti (plánovač + tlačidlo `/api/settings/proxies/auto-test` „Test All“)** len na čítanie** a nikdy nezapíšte stav proxy — iba operátor nastaví active/inactive, takže nestála sonda nemôže uviazať pridelený proxy (#6246). Nastavte `true`, aby ste obnovili staré správanie test-and-set. | | `FLUSH_EMPTY_RETRY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Príznak funkcie opt-in (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). `true` (alebo `1`, `yes`) namiesto odhalenia prázdneho čísla 200 alebo prázdneho obsahu 502 zopakuje pokusy o prázdny preložený streaming cez normálnu cestu poverení (až do `STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX` opakovaní). | | `EMPTY_STREAM_SIBLING_RECOVERY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Príznak funkcie opt-in (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). `true` (alebo `1`, `yes`) aktivuje sondu obsahu prázdneho toku Claude/Codex a po otočení `empty_content` strávi existujúci obmedzený pokus na ďalšie vhodné pripojenie bez ochladenia alebo uzamknutia modelu. | | `STREAM_LATE_OUTPUT_PROBE_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Príznak funkcie opt-in (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). `true` (alebo `1`, `yes`) udržiava vzorkovanie jeden preposlaný kus zo 16 po prvých 64, takže neskoro viditeľný výstup stále označí tok ako s emitovaným výstupom (osamelý post-výstup 5xx zostáva v rozsahu požiadaviek namiesto uzamknutia iba modelu). | | `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | Príznak funkcie opt-in (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). `true` (alebo `1`, `yes`) zobrazuje pozorovanie výstupu z fondu len na čítanie pod fondom proxy na paneli (zreteľné výstupné IPs, pripojenia a najviditeľnejšie za jedným IP za posledných 24 hodín, z protokolu proxy). Nikdy sa nepoužíva na smerovanie. | | `PROXY_OPERATOR_EGRESS_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Príznak funkcie opt-in (pozri [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; víťazí prepísanie DB na dashboarde). `true` (alebo `1`, `yes`) akceptuje operátorom zadané datované pozorované adresy na člena skupiny a zlúči ich s čítaným žurnálom na zobrazenie a poradie skupiny. | | `PROXY_OPERATOR_EGRESS_WINDOW_HOURS` | `24` | `src/lib/db/proxyOperatorEgress.ts` | Okno pozorovania v hodinách pre výstupné riadky vytlačené operátorom (čítajte pri každom čítaní, nie je potrebné reštartovať). Obmedzené na 1..168; out-of-range, non-numeric, alebo empty klesnú späť na 24 s jediným varovaním pre celý proces, nikdy nie hodom. | | `PROXY_AUTO_REMOVE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Nastavte `true`, aby plánovač automaticky odstránil proxy po opakovaných po sebe nasledujúcich zlyhaniach. | | `PROXY_AUTO_REMOVE_AFTER` | `3` | `src/lib/proxyHealth/scheduler.ts` | Následné zlyhania predtým, ako plánovač automaticky odstráni proxy (keď `PROXY_AUTO_REMOVE=true`). | | `PROXY_AUTO_DISABLE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Nastavte `true`, aby plánovač namiesto odstránenia proxy po opakovaných po sebe nasledujúcich zlyhaniach jemne deaktivoval (stav `dead`, nikdy sa neodstránil). Nedeštruktívna alternatíva k `PROXY_AUTO_REMOVE`: proxy okamžite vypadne z rozlíšenia pool/rotation (filter aktívneho stavu, ktorý sa používa pri rozlíšení poolu rozsahov, ho už vylučuje) a je automaticky znovu aktivovaný, keď začne znova prechádzať sondami. Zdieľa prah `PROXY_AUTO_REMOVE_AFTER`. Ak sú obe vlajky `true`, vyhráva `PROXY_AUTO_REMOVE`. | | `PROXY_HEALTH_PASSIVE_SKIP` | `false` | `src/lib/proxyHealth/scheduler.ts` | Voliteľné pasívne preskočenie: keď `true`, plánovač preskočí živú sondu pre koncový bod, ktorého nedávna produkčná prevádzka to už dokazuje (aspoň jeden úspech a žiadne pripísané zlyhanie servera proxy v okne, pozorovaný presne jeden poskytovateľ). Predvolene vypnuté: každý proxy je testovaný. | | `PROXY_PASSIVE_WINDOW_MS` | `300000` | `src/lib/proxyHealth/passiveVerdict.ts` | Okno v ms produkčnej prevádzky, na ktoré sa pasívne preskočenie pozerá (ohraničené `60000..599999`). Kratší ako 10-minútový interval rozmietania, takže namiesto zriedenia dominuje nedávne zlyhanie. | | `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Umožnite overovacím procesom OAuth a poskytovateľa obísť pripojený server proxy a pripojiť sa priamo, keď predbežné kontroly dostupnosti servera proxy zlyhajú. Efektívna priorita je predvolené nastavenie príznakov funkcie DB > env var >. | | `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30s) | `src/lib/resilience/settings.ts` | Predvolené** fronta-čakať** rozpočet: ako dlho môže požiadavka čakať na slot poskytovateľa a sedieť vo fronte, kým bude odmietnutá, pričom sa nikdy nedostane do upstreamu. Časovač sa vymaže, keď úloha začne vykonávať — spustenie je oddelene ohraničené `RATE_LIMIT_EXECUTION_MAX_WAIT_MS`. Env nastaví iba predvolenú hodnotu: trvalé `resilienceSettings.requestQueue.maxWaitMs` a potom `rateLimitOverrides.maxWaitMs` pre každé pripojenie, pričom každá nad ním vyhrá. | | `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (10 min) | `open-sse/services/rateLimitManager.ts` | Strop, ako dlho môže prijatá požiadavka zostať v realizácii pred vypršaním jej rezervácie rýchlostného limitu — oddelená od rozpočtu na čakanie vo fronte, takže pomalý štart na neinkrementálnych bránach nevyprší (#12027). | | `RATE_LIMIT_MAX_QUEUE_DEPTH` | `0` (zakázané) | `open-sse/services/rateLimitManager.ts` | Obmedzenie prijatia do frontu: odmietnite s 429 `queue_full` keď je už toľko žiadostí zaradených do frontu. `0` = neohraničené (predvolené). | | `RATE_LIMIT_AUTO_ENABLE` | _(nenastavené)_ | `open-sse/services/rateLimitManager.ts` | Vynútiť automatickú aktiváciu rýchlostného limitu bezpečnostnej siete on/off bez ohľadu na pretrvávajúce nastavenie ovládacieho panela (`resilienceSettings.requestQueue.autoEnableApiKeyProviders`). Akceptuje `true`/`1`/`on` na vynútené zapnutie, `false`/`0`/`off` na vynútené vypnutie. Keď sú aktívne (predvolené), aktívne pripojenia s kľúčom API sú automaticky chránené rýchlostným limitom. Nastavenie `rateLimitProtection: false` na pripojenie zakáže explicitnú ochranu, ale nezruší túto bezpečnostnú sieť; nastavenie tejto env var na `false` je globálny mechanizmus na spustenie pripojení kľúča API bez frontov s limitom rýchlosti. | | `PROVIDER_COOLDOWN_ENABLED` | _(zrušiť → vypnuté)_ | `open-sse/services/providerCooldownTracker.ts` | Aktivujte si globálne krížové sledovanie provider/connection cooldownu. OFF predvolene (prekrýva chladenie pripojenia / istič poskytovateľa). Akceptuje `true`/`1`/`on` na povolenie. | | `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | Minimálne chladenie (ms) pred opakovaným pokusom o neúspešné provider/connection. Exponenciálne škálované s po sebe nasledujúcimi zlyhaniami. Používa sa len pri `PROVIDER_COOLDOWN_ENABLED`. | | `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 minút) | `open-sse/services/providerCooldownTracker.ts` | Obmedzenie maximálneho chladenia (ms) pred opakovaným pokusom o neúspešné provider/connection. Používa sa len pri `PROVIDER_COOLDOWN_ENABLED`. | | `STREAM_RECOVERY_ENABLED` | _(zrušiť → vypnuté)_ | `src/lib/resilience/settings.ts` (semeno) → `open-sse/services/streamRecovery.ts` (logika) | **čo:** transparentné obnovenie skrátených upstream tokov (port free-claude-code). Podrží otváracie okno SSE až do `STREAM_RECOVERY.HOLDBACK_MS` (750 ms), takže _pre-commit_ cutoff —, ku ktorému dôjde predtým, ako sa akýkoľvek bajt dostane ku klientovi — sa znova otvorí a zopakuje neviditeľné.** Kedy povoliť:** flaky/upstreams, ktoré sa pri spustení streamu často skráti o 0 bajtov; ponechajte OFF ak si nemôžete dovoliť až 750 ms pridaného času do prvého tokenu v každom streame. Prijíma `true`/`1`/`on`. Nasadí trvalé nastavenie odolnosti; po nastavení vyhráva nastavenie Dashboard. | | `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(zrušiť → vypnuté)_ | `src/lib/resilience/settings.ts` (semeno) → `open-sse/services/streamRecovery.ts` (logika) | **čo:** strednoprúdové pokračovanie (Fase 4.4) — po skrátení _post-commit_ (bajty sa už dostali ku klientovi), znovu požiadajte o čiastočný text ako pomocnú predvyplnenie a prišite chýbajúcu príponu. Iba streamy kompatibilné s OpenAI vo formáte obyčajného textu; nikdy nevystrelí s volaním nástroja počas letu.** Kedy povoliť:** dlhé generácie, ktoré sa odrežú uprostred odpovede a vy akceptujete, že obnovený chvost prichádza ako jedna dávka, nie žetón po žetóne. Nezávislé od `STREAM_RECOVERY_ENABLED` (iný rizikový profil). Prijíma `true`/`1`/`on`. | | `STREAM_THROUGHPUT_WATCHDOG_ENABLED` | _(zrušiť → vypnuté)_ | `src/lib/resilience/settings.ts` → `open-sse/services/throughputWatchdog.ts` | Prihláste sa do stráženia aktívneho streamu a užitočného výstupu. Detekuje toky, ktoré stále odosielajú bloky, ale zostávajú pod nakonfigurovanou výstupnou rýchlosťou asistenta; tlkot srdca, udalosti používania, prázdne delty a fázy tool/reasoning sa netvária ako pokrok. Oddelené od časových limitov nečinnosti a pevných termínov. Nastaví iba predvolenú hodnotu: logická hodnota uložená v `resilienceSettings` ( → Nastavenia ovládacieho panela → Resilience) má prednosť. | | `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Obdobie odkladu pred vyhodnotením priepustnosti, ohraničené na 0–600 000 ms. | | `STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Rolujúce okno s užitočným výstupom, obmedzené na 1000–600000 ms; pred prerušením sa vyžaduje jedno úplné okno. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND` | `4` | `src/lib/resilience/settings/normalize.ts` | Minimálna výstupná bajtová rýchlosť asistenta UTF-8 (konzervatívny token proxy), obmedzená na 1–1 000 000. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES` | `1` | `src/lib/resilience/settings/normalize.ts` | Minimálna nenulová užitočná výstupná vzorka považovaná za merateľnú, ohraničená na 1–1000000 bajtov. | | `HEALTHCHECK_STAGGER_MS` | `3000` | `src/lib/tokenHealthCheck.ts` | Striedavý interval (ms) medzi kontrolami stavu tokenu poskytovateľa pri spustení. | | `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | Minimálne náhodné chvenie (ms) pridané nad `HEALTHCHECK_STAGGER_MS` medzi kontroly stavu tokenu poskytovateľa, aby sa zabránilo prasknutiu (vydanie #1220). | | `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | Maximálny náhodný jitter (ms) pridaný na vrchol `HEALTHCHECK_STAGGER_MS` medzi kontrolami stavu tokenu poskytovateľa, aby sa zabránilo prasknutiu (vydanie #1220). | | `HEALTHCHECK_BATCH_SIZE` | `20` | `src/lib/tokenHealthCheck.ts` | Súbežná kontrola veľkosti dávky pre kontrolu stavu spúšťacieho tokenu; väčšie hodnoty kontrolujú viac spojení paralelne, menšie hodnoty znižujú nárazové zaťaženie (vydanie #7875, regresia #7719). | | `REQUEST_RETRY` | `2` | `src/sse/services/cooldownAwareRetry.ts` | Počet automatických opakovaní odpovedí ochladzovania v rozsahu modelu pred vrátením chyby klientovi. | | `MAX_RETRY_INTERVAL_SEC` | `30` | `src/sse/services/cooldownAwareRetry.ts` | Maximálny interval stiahnutia (v sekundách) medzi opakovaniami ochladzovania. Obmedzené touto hodnotou bez ohľadu na `Retry-After` proti prúdu . | | `HEADROOM_URL` | `http://localhost:8787` | `src/lib/headroom/detect.ts` | Proxy proxy na šetrenie tokenov URL s priestorom . Životný cyklus dashboardu (`api/headroom/*`) štandardne vytvára lokálny `headroom-ai` CLI pri spätnej slučke; prepísať len na nasmerovanie na externý proxy Docker sidecar. | ### Konštanty ladenia obnovy toku Správanie pozastavenia obnovy je vyladené pevne zakódovanými konštantami v `open-sse/config/constants.ts` (`STREAM_RECOVERY`), ktoré sú tu uvedené pre referenciu — ich zmena vyžaduje úpravu kódu, nie env var: - `STREAM_RECOVERY.HOLDBACK_MS = 750` — ako dlho sa podrží otváracie okno SSE, aby bolo možné zopakovať skoré skrátenie predtým, ako sa klientovi odovzdá akýkoľvek bajt. - `STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536` — tvrdá čiapka na držanom okne; commit (vyprázdnenie + passthrough) hneď, ako sa nahromadí toľko bajtov, bez ohľadu na časovač. - `STREAM_RECOVERY.EARLY_RETRY_MAX = 4` — max transparentné znovu otvorí upstream stream, zatiaľ čo zadržanie je stále nepotvrdené. > **Limit sadzby pre posuvné okno na poskytovateľa (bez env var):** limit rýchlosti posuvného okna _fallback_ prenášaný FCC na poskytovateľa existuje v kóde (`open-sse/services/providerDefaultRateLimit.ts`, prepojené cez `open-sse/services/rateLimitManager.ts`), ale dodáva sa s** prázdna predvolená mapa** a má** žiadny operátor env var** dnes — je povolený iba cez testovací hák / úpravu kódu. Zámerne nie je uvedený v tabuľke vyššie. Obmedzovač relé per-`(token, IP)`, ktorý _má_ gombík, je `RELAY_IP_PER_MINUTE` (§3 Sieť a porty). --- ## 22. Ladenie > [!CAUTION] > Tieto premenné produkujú** podrobný výstup** a môže dôjsť k úniku citlivých údajov.** Nikdy nepovoľujte vo výrobe.** | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CURSOR_DEBUG` | _(nenastavené)_ | `open-sse/executors/cursor.ts` | Nastavte `1`, aby ste povolili podrobné protokoly spúšťača Cursor (dekódované časti SSE atď.). | | `CURSOR_STREAM_DEBUG` | _(nenastavené)_ | `open-sse/executors/cursor.ts` | Spätne kompatibilný alias `CURSOR_DEBUG`. | | `CURSOR_DUMP_FILE` | _(nenastavené)_ | `open-sse/executors/cursor.ts` | Voliteľná cesta k súboru, ktorá prijíma surové dekódované časti Cursor pri `CURSOR_DEBUG=1`. | | `CURSOR_STREAM_TIMEOUT_MS` | `300000` | `open-sse/executors/cursor.ts` | Časový limit nečinnosti streamu (ms) pre spúšťač Cursor. | | `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | Okno milosti (ms) po mäkkom terminátore kv_after_text skladateľa, keď bajty zostanú vo vyrovnávacej pamäti — poskytuje koncový čas volania nástroja exec_mcp na dokončenie jeho rámca. | | `CURSOR_TOOL_DIRECTIVE` | povolené (`!== "0"`) | `open-sse/executors/cursor.ts` | Direktíva Tool-commit, ktorá umožňuje composer-2.5 spoľahlivo vydávať volania nástrojov. Nastavte `0` na vypnutie. | | `OMNIROUTE_SYSTEM_INSTRUCTION_APPEND` | _(nenastavené)_ | `open-sse/translator/request/claude-to-openai.ts`, `open-sse/translator/response/openai-to-claude.ts` | Operátorom definovaný systémový text výzvy pripojený k prekladu systémovej správy AFTER (injekcia po preklade), dosahujúci cesty codex/Responses a `/v1/messages`. Používa sa tiež ako predpona smernice odstránená z blokov preambuly systému s ozvenou. Ak chcete deaktivovať, ponechajte nenastavené. | | `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (vypnuté) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | Nastavte na `1`, aby sa odstránili bloky preambuly systémových výziev s ozvenou od začiatku toku claude openai →. V predvolenom nastavení — je heuristika v tvare anglickej prózy a mení užitočné zaťaženie odpovede, takže odpoveď, ktorá sa legitímne otvorí s takouto sekciou, ju stratí. | | `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | Časový limit načítania pre každý obrázok (ms) pre vzdialený vstup videnia `image_url`. | | `CURSOR_STATE_DB_PATH` | _(sondoval)_ | `open-sse/utils/cursorVersionDetector.ts` | Prepíšte vyhľadávanie Cursor stavu DB IDE na zisťovanie verzie IDE. | | `CURSOR_AGENT_CLI_VERSION` | _(rozpoznať / pripnúť)_ | `open-sse/utils/cursorAgentCliVersion.ts` | ID zostavy agenta 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 agenta Cursor používaného na generovanie obrázkov. Nenastavené, handler použije `providerSpecificData.agentBin` a potom PATH. | | `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Nástenné hodiny podľa obrázka (ms) pre úlohy s obrázkami agenta Cursor. | | `CURSOR_IMG_MAX_CONCURRENT` | `2` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Súbežná brána so zdieľaným sídlom pre obrázkové úlohy Cursor. | | `CURSOR_IMG_MODEL` | žiadosť / `auto` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Prepísať Cursor CLI `--model` pre obrázkové úlohy. | | `UC_IMAGE_POLL_INTERVAL_MS` | `2000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC (uncensored.com) image-gen result-poll kadence (ms). | | `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | nástenné hodiny UC image-gen result-poll (ms). | | `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC (uncensored.com) video-gen result-poll kadence (ms). | | `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | nástenné hodiny UC video-gen result-poll (ms). | | `CURSOR_DATA_DIR` | _(sondoval)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Prepísať Cursor Agent CLI data dir (`…/versions/`); rovnaký var ako oficiálny zástupca používa. | | `CURSOR_TOKEN` | _(nenastavené)_ | `scripts/ad-hoc/cursor-tap.cjs` | Priamy nosný token Cursor používaný nástrojmi pre vývojárov. | | `OMNIROUTE_LOG_REQUEST_SHAPE` | zakázané (prihlásiť sa cez `"1"`) | `src/app/api/v1/chat/completions/route.ts` | Keď je nastavené `"1"`, zaznamenávajte značky content-type/length pre veľké objemy chatu. Predvolene vypnuté, aby sa znížil šum denníka. | | `DEBUG_RESPONSES_SSE_TO_JSON` | _(nenastavené)_ | `open-sse/handlers/responseTranslator.ts` | Nastaviť `true` na protokolovanie odpovedí API SSE→JSON podrobnosti prekladu. | | `DEBUG_CLAUDE_NONSTREAM` | _(nenastavené)_ | `open-sse/handlers/responseTranslator.ts` | Nastavte `true` na povrch prázdnych častí textContent v ceste prekladu odpovede Claude (len ladenie). | | `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(nenastavené)_ | skúšobný postroj E2E | Nastavte `true`, aby ste povolili testovací režim E2E (uvoľnené overenie, testovacie háky). | --- ## 23. GitHub Integrácia Umožnite používateľom hlásiť problémy priamo z informačného panela. | Variabilné | Predvolené | Zdrojový súbor | Popis | | --------------------- | --------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | `GITHUB_ISSUES_REPO` | _(nenastavené)_ | `src/app/api/v1/issues/report/route.ts` | Úložisko vo formáte `owner/repo`. | | `GITHUB_ISSUES_TOKEN` | _(nenastavené)_ | `src/app/api/v1/issues/report/route.ts` | GitHub osobný prístupový token s rozsahom `issues:write`. | | `GITHUB_TOKEN` | _(nenastavené)_ | Triedenie problémov / pomocníci cloudového agenta | Všeobecný prístupový token GitHub používaný ako náhrada pre `GITHUB_ISSUES_TOKEN` a spotrebovaný pomocníkmi cloudových agentov v `src/lib/cloudAgent/*`. | --- ## Render Free-Tier Keep-Alive Render spustí bezplatnú webovú službu po približne 15 minútach bez prichádzajúcej prevádzky. Samostatný spúšťač (`scripts/dev/run-standalone.mjs`, ktorý spúšťa obraz Docker ) môže pingovať vlastné verejné URL služby, aby tomu zabránil. Nerobí nič, pokiaľ nie je k dispozícii verejné URL, a prihlási sa iba vtedy, keď sa zmení stav. | Variabilné | Predvolené | Popis | | ---------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | `SELF_PING_ENABLED` | zapnuté, keď je nastavené URL | `0`, `false`, `off` alebo `no` vypne ping. Použite ho na platených plánoch vykresľovania, kde sa nič netočí. | | `SELF_PING_URL` | `RENDER_EXTERNAL_URL` | Základňa URL na ping. Render nastavuje `RENDER_EXTERNAL_URL` sám na každý plán, takže pinger je tam predvolene zapnutý. | | `SELF_PING_PATH` | `/api/monitoring/health` | Cesta na tej URL. Musí začínať s `/`; čokoľvek iné vypne ping s upozornením. | | `SELF_PING_INTERVAL_SECONDS` | `180` | Sekundy medzi pingmi, po prvom pingu 60 sekúnd. Hodnoty pod `30` klesnú späť na `180`. | Služba, ktorá je v pohotovostnom režime celý mesiac, využíva približne 744 hodín inštancie, preto ju porovnajte s aktuálnou povolenou verziou Render. ## Scenáre nasadenia Pokyny pre backend SRE prenosu (správanie ts/bifrost/auto, umiestnenie 9router vs CLIProxyAPI a vysokovýkonná záložná stratégia) nájdete v [časti Stratégia backendu prenosu](/docs/reference/RELAY_BACKEND_STRATEGY.md). ### Minimálny miestny rozvoj ```bash JWT_SECRET=$(openssl rand -base64 48) API_KEY_SECRET=$(openssl rand -hex 32) INITIAL_PASSWORD=dev123 PORT=20128 NODE_ENV=development ``` ### Výroba 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 ``` ### Air-Gapped / 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. Karanténa zručností (v3.8.0 +) Limity a bezpečnostné gombíky aplikované, keď rámec zručností (`src/lib/skills/`) spúšťa používateľom definované automatizácie v prostredí karantény. | Variabilné | Predvolené | Zdrojový súbor | Popis | | -------------------------------------- | --------------------------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `SKILLS_SANDBOX_TIMEOUT_MS` | `10000` (10 s) | `src/lib/skills/builtins.ts` | Časový limit nástenných hodín na vykonanie pre kód zručnosti v karanténe. Pevná čiapka; čokoľvek dlhšie je zabité. | | `SKILLS_EXECUTION_TIMEOUT_MS` | _(spadá späť na `SKILLS_SANDBOX_TIMEOUT_MS`)_ | `src/lib/skills/` | Časový limit orchestrácie zručností na vysokej úrovni. Nastavte vyššiu hodnotu ako `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ť prečítať z akéhokoľvek súboru v karanténe. | | `SKILLS_MAX_HTTP_RESPONSE_BYTES` | `256000` (250 KB) | `src/lib/skills/builtins.ts` | Maximálny počet bajtov zachytených z akejkoľvek odpovede HTTP v rámci zručnosti. | | `SKILLS_MAX_SANDBOX_OUTPUT_CHARS` | `100000` | `src/lib/skills/builtins.ts` | Pevné obmedzenie znakov stdout/stderr vrátených z vyvolania karantény. | | `SKILLS_SANDBOX_NETWORK_ENABLED` | `false` | `src/lib/skills/builtins.ts` | Nastavte `1`/`true`, aby ste umožnili odchádzajúce siete z vnútra karantény. Predvolená hodnota je** izolovaný** pre bezpečnosť. Ignorované runtime `agent-sandbox` : izolácia siete, koreňový súborový systém len na čítanie a limity CPU/memory pochádzajú z operátorovho `SandboxTemplate`. | | `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(prázdne)_ | `src/lib/skills/builtins.ts` | Čiarkami oddelený zoznam obrázkov kontajnerov povolených na spustenie v karanténe. Prázdne znamená iba vstavané predvolené nastavenie. | | `SKILLS_SANDBOX_DOCKER_IMAGE` | _(predvolená vstavaná)_ | `src/lib/skills/` | Obrázok kontajnera použitý pri vytváraní karantény podporovanej Dockerom. Prepísaním pripnete vlastný spevnený základný obrázok. | | `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | Spustenie kontajnera pre sandboxing zručností: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman` \| `agent-sandbox`. `auto` vyberie najlepšie nainštalované runtime na hostiteľa OS (Apple Container/OrbStack na macOS, WSL kontajner na Windows, Podman na Linux), pričom sa vráti k Docker. `agent-sandbox` (vzdialené teplé bazény Kubernetes) je možné iba aktivovať a nikdy sa nezistí automaticky. | | `SKILLS_AGENT_SANDBOX_POOLS` | _(prázdne)_ | `src/lib/skills/agentSandboxProvider.ts` | páry `image=pool`, oddelené čiarkou: ktorý `SandboxWarmPool` slúži každému obrázku v karanténe, keď `SKILLS_SANDBOX_RUNTIME=agent-sandbox`. | | `SKILLS_AGENT_SANDBOX_POOL` | _(prázdne)_ | `src/lib/skills/agentSandboxProvider.ts` | Záložný teplý bazén pre obrázky neuvedené v `SKILLS_AGENT_SANDBOX_POOLS`. Spustenie zlyhá (žiadny návrat k lokálnym kontajnerom), keď sa nevyrieši ani jeden. | | `SKILLS_AGENT_SANDBOX_NAMESPACE` | `default` | `src/lib/skills/agentSandboxProvider.ts` | Menný priestor s teplými bazénmi; tu sa vytvorí a odstráni jedna `SandboxClaim` na spustenie. | | `SKILLS_AGENT_SANDBOX_KUBECONFIG` | _(predvolená hodnota kubectl)_ | `src/lib/skills/agentSandboxProvider.ts` | Kubeconfig pre prostredie agent-sandbox runtime. V priestore názvov potrebuje iba sandboxclaims create/get/list/watch/delete, pods get, pods/exec. | | `SKILLS_AGENT_SANDBOX_KUBECTL` | `kubectl` | `src/lib/skills/agentSandboxProvider.ts` | binárny súbor kubectl používaný modulom agent-sandbox runtime. | | `SKILLS_AGENT_SANDBOX_CONTAINER` | `main` | `src/lib/skills/agentSandboxProvider.ts` | Názov kontajnera vnútri karantény, v ktorej sa vykonávajú príkazy. | | `SKILLS_AGENT_SANDBOX_CLAIM_TIMEOUT_S` | `60` | `src/lib/skills/agentSandboxProvider.ts` | Sekundy čakania, kým sa nárok stane pripraveným (max. 600). Nárok sa vymaže, ak sa tak nestane. | > [!CAUTION] > Povolenie `SKILLS_SANDBOX_NETWORK_ENABLED=true` otvára výstupnú cestu z ľubovoľného kódu zručnosti. Spárujte s `OUTBOUND_SSRF_GUARD_ENABLED=true` a prísnou politikou `CORS_ORIGIN`/proxy v zdieľaných nasadeniach. --- ## 25. Kvóty poskytovateľov, tunely, zálohy a rôzne informácie o runtime Invalidácia záložného mechanizmu afinity relácií Redis (iba s voliteľným povolením; predvolené nastavenie SQLite zostáva nezmenené): Každé úložisko afinity Redis povoľuje najviac 8 prebiehajúcich operácií; pri dosiahnutí kapacity volania okamžite použijú SQLite a sloty zostanú obsadené, kým sa nedokončí základná práca Redis, a to aj po uplynutí 100 ms lehoty volajúceho. - R1. Každá odpoveď Redis doručená včas pre operáciu relácie je autoritatívna: prijaté mutácie, zamietnuté/stratené CAS, chýbajúce kľúče, mazania neexistujúcich kľúčov a zásahy alebo nezásahy pri vyhadzovaní synchronne vymažú lokálny záložný riadok danej relácie bez akéhokoľvek `await` medzi odpoveďou a vymazaním. Vymazanie je bezpečné (v najhoršom prípade dôjde k jednému opätovnému výberu počas neskoršieho výpadku); zastaraný riadok nie. - R2. Operácia, ktorá vyprší alebo zlyhá a zapíše lokálnu zálohu, zaznamená presne to, čo zapísala, ako serializované bajty. Ak sa jej príkaz Redis dokončí neskôr, synchronné porovnanie a vymazanie v SQLite odstráni iba bajtovo identický riadok, nikdy nie podľa zhody konta alebo pripojenia. Novší zápis z výpadku zostane zachovaný. - R3. Vyhadzovanie vždy odstráni lokálne pripnutie zlyhaného konta vrátane situácie počas výpadku; následné spracovanie jeho odpovede sa riadi pravidlami R1/R2. Funkčný Redis nikdy nezapisuje lokálne pripnutia: neexistuje žiadne zrkadlo ani evidencia poradia a inštancie sa môžu počas výpadku rozísť. Koncové body kvót poskytovateľov, sieťové tunely (Tailscale, Ngrok, MITM proxy na ladenie), výstupný fond 1Proxy, zálohy databázy a malé prepisy nastavení pre jednotlivé funkcie, na ktoré odkazuje vrstva exekútora alebo skripty. | Variable | Default | Source File | Description | | ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_SESSION_AFFINITY_STORE` | `sqlite` | `src/lib/db/sessionAffinity/storeFactory.ts` | Backend afinity relácie k účtu. Zdieľanie umožňuje iba `redis` spolu s nakonfigurovaným `REDIS_URL`; nenastavené/neznáme hodnoty alebo chýbajúca konfigurácia Redis používajú SQLite. Vyžaduje kladnú hodnotu `sessionAffinityTtlMs`. Smerovanie Redis ukladá hašovanú identitu používaného účtu spolu s ID pripojenia; predvolené smerovanie SQLite zachováva starý tvar JSON so štyrmi poľami. Pred ID porovnáva identitu v oprávnenej lokálnej skupine. Používa `REDIS_KEY_PREFIX` zdieľaného klienta, hodnoty JSON a TTL `PX`; mutácie porovnávajú presne zistenú hodnotu. Zdravé odpovede Redis rušia lokálnu záložnú hodnotu pri výpadku a oneskorená odpoveď môže vymazať iba presný serializovaný riadok záložnej hodnoty zapísaný danou operáciou s časovým limitom. Prednačítané pripnutia sa pri použití opätovne overujú. Chyby Redis, časové limity alebo nasýtenie prijímacej kapacity sa vracajú k SQLite s obmedzenými upozorneniami (limit 100 ms na jedno volanie úložiska); úspešné nenájdenia v Redis nečítajú tieňové úložisko. Nezdieľa zotrvanie kombinácií, natívne pripnutia ťahov Codex, súbežnosť účtov, zablokovania ani limity výdavkov. | | `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | Pripojovací reťazec Redis pre backend obmedzovača rýchlosti. | | `ALIBABA_CODING_PLAN_HOST` | _(produkčný hostiteľ)_ | `open-sse/services/bailianQuotaFetcher.ts` | Prepíše hostiteľa používaného na načítanie kvót kódovacieho plánu Alibaba Bailian. | | `ALIBABA_CODING_PLAN_QUOTA_URL` | odvodené od hostiteľa | `open-sse/services/bailianQuotaFetcher.ts` | Úplné prepísanie URL kvóty pre 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 Qwen Cloud / Model Studio (inferenčný kľúč API ho nedokáže prečítať). Skopírujte celé hlavičky požiadavky `Cookie` — obsahujú `login_qwencloud_ticket` — z ľubovoľného volania `api.json` na `cs-data.qwencloud.com` na stránke home.qwencloud.com › Fakturácia › Predplatné (F12 › Sieť). Citlivé a viazané na reláciu; uprednostnite pole `qwenCloudCookie` pre jednotlivé pripojenie na Dashboarde. | | `QWEN_CLOUD_SEC_TOKEN` | _(nenastavené)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Manuálne prepísanie `sec_token` pre bránu konzoly Token Plan. Citlivé; ak nie je nastavené, fetcher ho vyrieši z HTML dashboardu pomocou cookie. | | `QWEN_TOKEN_PLAN_HOST` | `https://cs-data.qwencloud.com` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Prepísanie hostiteľa brány pre načítavač kvóty 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` | URL adresa ovládacieho panela použitá na získanie `sec_token` z HTML prihláseného používateľa. | | `XIAOMI_MIMO_CONSOLE_COOKIE` | _(unset)_ | `open-sse/services/usage/xiaomi-mimo.ts` | Súbor cookie relácie konzoly pre API kvóty Xiaomi MiMo Token Plan (`platform.xiaomimimo.com/api/v1/tokenPlan/usage` + `tokenPlan/detail` — inferenčný kľúč API ho nedokáže prečítať). Skopírujte celý hlavičkový údaj požiadavky `Cookie` — obsahuje `api-platform_serviceToken` a `userId` — z ľubovoľnej požiadavky na `platform.xiaomimimo.com` na stránke Token Plan (F12 › Sieť). Citlivé a viazané na reláciu; uprednostnite pole ovládacieho panela pre pripojenie `xiaomiMimoConsoleCookie`. | | `XIAOMI_MIMO_MONTHLY_TOKEN_LIMIT` | `4100000000` | `open-sse/services/usage/xiaomi-mimo.ts` | Mesačný rozpočet (Credits) pre záložné riešenie Xiaomi MiMo sledované službou OmniRoute, ktoré sa používa, keď nie je nakonfigurovaný súbor cookie konzoly. Predvolene používa hodnotu 4,1 mld. úrovne Lite; nastavte ho na počet Credits príslušného plánu (Standard 11 mld. / Pro 38 mld. / Max 82 mld.). Prepísanie `providerSpecificData.monthlyTokenLimit` pre konkrétne pripojenie má prednosť pred touto premennou prostredia. | | `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Prepísanie cesty front-endu konzoly na načítanie kvóty bezplatnej úrovne pre obrazový/multimediálny obsah Alibaba Model Studio. | | `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 kvóty bezplatnej úrovne pre multimodálny obsah 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 kvóty bezplatnej úrovne pre zvukový obsah Alibaba Model Studio. | | `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(unset)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | Voliteľná cesta k lokálnemu prepísaniu vo formáte JSON pre vstavaný zoznam povolených textových modelov bezplatnej úrovne Alibaba. Ak sa nenájde, 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 vyhradené na výstup dokončenia pri výpočte rozpočtov promptu. | | `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | Koľko najnovších vložených obrázkov zachovať pri odstraňovaní starších obrázkov s cieľom zmestiť sa do kontextového okna (#8560). | | `MODEL_ALIAS_COMPAT_ENABLED` | enabled | `open-sse/services/model.ts` | Prepínač vrstvy kompatibility starších aliasov modelov používanej staršími klientmi. | | `OMNIROUTE_EMERGENCY_FALLBACK` | enabled | `open-sse/services/emergencyFallback.ts` | Nastavením na `false` (alebo `0`) zakážete núdzovú záložnú funkciu pri vyčerpaní rozpočtu, ktorá neúspešné požiadavky presmeruje na bezplatný model `nvidia`/`nvidia/nemotron-3.5-super-vl-120b-a12b`. 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` | _(unset)_ | `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 Command Code CLI. | | `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Hodnota odosielaná v hlavičke `x-command-code-version` upstream službe Command Code. Prepísaním zvýšite verziu CLI. | | `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | Základná URL upstream služby Command Code na používanie a kvóty, ktorú využíva telemetria získavania kvóty zo smartfónu. Prepísaním použijete vlastné alebo alternatívne API Command Code. | | `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | Lokálny port na väzbu proxy servera MITM na ladenie. | | `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | Nastavte `1`, aby ste zakázali overovanie TLS upstreamu (iba na vývoj). | | `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | Časový limit nečinnosti soketu (ms) pre proxy pripojenia; nečinné sokety po uplynutí tohto času sa ukončia, aby sa zabránilo úniku napoly otvorených tunelov. | | `BRIDGE_PORT` | `20129` | `bin/antigravity-bridge.mjs` | Port, na ktorom most Antigravity MITM počúva. | | `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` | `/mitm` | `bin/antigravity-bridge.mjs` | Prepíše adresár, z ktorého most načítava materiál TLS. Model certifikátov sa vyberá rovnako ako na serveri AgentBridge: `server.crt`/`server.key` pre staršiu inštaláciu s koncovým certifikátom, v opačnom prípade `ca.crt`/`ca.key` (koreňová certifikačná autorita, koncový certifikát pre každý zachytený hostiteľ; vynútené nastavením `MITM_ROOT_CA_ENABLED=true`). Most sa pri spustení ukončí, ak chýbajú súbory pre aktívny model. | | `MITM_VERBOSE` | `1` | `src/mitm/server.cjs`, `src/mitm/_internal/bypass.cjs` | Podrobnosť protokolovania rozhodnutí o smerovaní: `0` potlačí výpis, vyššie hodnoty zaznamenávajú viac rozhodnutí o obídení/smerovaní. | | `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | Nastavte `true`, aby ste povolili model s koreňovou certifikačnou autoritou a koncovým certifikátom pre každý hostiteľ (#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 ponechajú starší certifikát s pevným SAN, pokiaľ tento model výslovne nepovolíte. | | `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | Nastavuje ho správca MITM pre vytvorený proxy proces (`root-ca` \| `legacy`) — odráža rozhodnutie o migrácii certifikátu; nie je určené na manuálne nastavenie. | | `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | Nastavte `1` (pravdivú hodnotu), aby sa z príkazov na dôverovanie certifikátom MITM odstránilo úvodné `sudo` — pre nasadenia bez roota / s používateľskými mennými priestormi, kde operátor dôveruje CA manuálne (napr. prostredníctvom mechanizmu Node na pridanie extra certifikátov CA). | | `SKIP_ANTIGRAVITY_DNS` | _(nenastavené)_ | `src/mitm/dns/provision.ts` | Nastavte `true`, aby sa úplne preskočilo vytváranie záznamov DNS v súbore `/etc/hosts` pre hostiteľské názvy proxy Antigravity — pre kontajnery bez dostupného sudo/roota. | | `OMNIROUTE_SKIP_DNS_WRITE` | _(nenastavené)_ | `src/mitm/dns/dnsConfig.ts` | Nastavte `1`, aby sa pri pridávaní/odstraňovaní záznamov DNS preskočil zápis do súboru hosts — pre izolované alebo iba na čítanie určené testovacie prostredia. | | `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | Ochrana určená iba na testovanie/CI: nastavte `1`, aby inštalácia/odinštalácia dôvery pre certifikáty nevykonala žiadnu operáciu a sada testov nikdy nemenila úložisko dôveryhodných certifikátov operačného systému. Nastavuje ju automaticky príprava testov a pracovné postupy CI. | | `CHANGELOG_BASE_REF` | _(automaticky)_ | `scripts/check/check-changelog-integrity.mjs` | Explicitná základná referencia pre kontrolu proti neoprávnenému vymazaniu obsahu CHANGELOG-u (v CI predvolene základná vetva PR alebo najvyššia vetva `release/v*`). | | `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | Nastavte `true`, aby sa povolil plánovač automatickej synchronizácie fondu bezplatných proxy serverov na pozadí. Funkcia sa aktivuje na požiadanie a 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` | Povolenie zdroja bezplatných proxy serverov 1proxy. Nastavením na `false` ho zakážete. | | `FREE_PROXY_1PROXY_API_URL` | _(see oneproxy.ts)_ | `src/lib/freeProxyProviders/oneproxy.ts` | Prepísanie adresy URL rozhrania API 1proxy. | | `FREE_PROXY_1PROXY_MAX` | `500` | `src/lib/freeProxyProviders/oneproxy.ts` | Maximálny počet proxy serverov načítaných pri jednej synchronizácii z 1proxy. | | `FREE_PROXY_1PROXY_MIN_QUALITY` | `50` | `src/lib/freeProxyProviders/oneproxy.ts` | Prahová hodnota minimálnej kvality pre importy z 1proxy. | | `FREE_PROXY_PROXIFLY_ENABLED` | `true` | `src/lib/freeProxyProviders/proxifly.ts` | Povolenie bezplatného zdroja proxy serverov Proxifly. Nastavením na `false` ho zakážete. | | `FREE_PROXY_PROXIFLY_QUANTITY` | `100` | `src/lib/freeProxyProviders/proxifly.ts` | Počet proxy serverov načítaných pri jednej synchronizácii 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. Iba po výslovnom povolení. | | `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` | Povoliť zdroj fondu proxy serverov Webshare. Nastavte na `false`, ak ho chcete zakázať; zároveň je potrebné nastaviť `FREE_PROXY_WEBSHARE_API_KEY`. | | `FREE_PROXY_WEBSHARE_API_KEY` | _(žiadne)_ | `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 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 počas jednej synchronizácie Webshare. | | `NEXT_PUBLIC_VERCEL_RELAY_ENABLED` | `true` | `src/app/(dashboard)/…/ProxyPoolTab.tsx` | Zobraziť/skryť tlačidlo Nasadiť 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 URL rozhrania API Vercel (na testovanie). | | `NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/…/VercelRelayModal.tsx` | Predvolený názov projektu predvyplnený v modálnom okne nasadenia Vercel Relay. | | `TAILSCALE_BIN` | _(automatické zistenie)_ | `src/lib/tailscaleTunnel.ts` | Explicitná cesta k binárnemu súboru `tailscale`. | | `TAILSCALED_BIN` | _(auto-detect)_ | `src/lib/tailscaleTunnel.ts` | Explicitná cesta k binárnemu súboru démona `tailscaled`. | | `TAILSCALE_AUTHKEY` | _(unset)_ | `src/lib/tailscaleTunnel.ts` | Vopred zdieľaný overovací kľúč Tailscale pre neinteraktívne / bezhlavové `tailscale up` (odovzdáva sa cez `--auth-key=`). Ak nie je nastavený, prihlásenie sa vráti k interaktívnej URL na overenie v prehliadači. | | `NGROK_AUTHTOKEN` | _(unset)_ | `src/lib/ngrokTunnel.ts` | Overuje odchádzajúce tunely ngrok. | | `DB_BACKUP_MAX_FILES` | `20` | `src/lib/db/backup.ts` | Maximálny počet súborov záloh SQLite uchovávaných manuálnym/plánovaným čistením záloh. Migračné snímky sú obsahovo adresované a pri identickom stave databázy sa opätovne používajú; v rámci súbežného okna migrácie sa neodstraňujú. Prepíše hodnotu uloženú v Nastavenia → Uchovávanie záloh databázy. | | `DB_BACKUP_RETENTION_DAYS` | `0` | `src/lib/db/backup.ts` | Maximálny vek (v dňoch) uchovávaný manuálnym/plánovaným čistením záloh. `0` deaktivuje odstraňovanie podľa veku. Migračné snímky sa v rámci súbežného okna migrácie neodstraňujú. Prepíše hodnotu uloženú v Nastavenia → Uchovávanie záloh databázy. | | `OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS` | `30000` | `src/lib/jobs/backupScheduleJob.ts` | Interval tiknutia (ms) úlohy na strane servera, ktorá vykonáva `backup-schedule.json`. Musí zostať výrazne pod jednominútovou presnosťou cron plánovania; hodnoty pod `5000` alebo hodnoty, ktoré nemožno analyzovať, sa vrátia na `30000`. | | `CONTAINER_HOST` | `docker` | `scripts/check-permissions.sh` | Indikácia kontajnerového runtime pre kontrolu oprávnení vstupného bodu. Pre akúkoľvek topológiu Podman nastavte na `podman`. Keďže kontajner nedokáže určiť, či je engine lokálny alebo je dostupný prostredníctvom Podman Machine, upozornenie zostáva neutrálne vzhľadom na topológiu a odkazuje na `contrib/podman/README.md`. | | `QUOTA_STORE_DRIVER` | `sqlite` | `src/lib/quota/storeFactory.ts` | Backend úložiska spotreby zdieľanej kvóty: `sqlite` (predvolené) alebo `redis`. | | `QUOTA_STORE_REDIS_URL` | _(nenastavené)_ | `src/lib/quota/storeFactory.ts` | Reťazec pripojenia k Redis použitý, keď je `QUOTA_STORE_DRIVER=redis` (napr. `redis://localhost:6379`). | | `QUOTA_SATURATION_THRESHOLD` | `0.5` | `src/lib/quota/enforce.ts` | Pomer nasýtenia poolu (0..1); pri dosiahnutí tejto hodnoty alebo jej prekročení pool prejde do prísneho režimu (bez požičiavania). | | `QUOTA_SOFT_DEPRIORITIZE_FACTOR` | `0.7` | `open-sse/services/combo.ts` | Násobiteľ skóre (0..1) použitý pre cieľ, keď politika mäkkej kvóty zníži jeho prioritu. | | `STATUS_SOFT_DEPRIORITIZE_FACTOR` | `0.5` | `open-sse/services/combo/autoStrategy.ts` | Násobiteľ skóre (0..1) použitý pre vyčerpaného poskytovateľa (`credits_exhausted`/`rate_limited`) pri automatickom kombinovanom skórovaní, keď je predbežný limit kvóty vypnutý (#4540). | | `QUOTA_CONSUMPTION_RETENTION_DAYS` | `14` | `src/lib/db/quotaConsumption.ts` | Obdobie uchovávania (v dňoch) pre segmenty `quota_consumption` pred GC (`gcQuotaConsumption`). | | `QUOTA_PREFLIGHT_CUTOFF_ENABLED` | `false` | `src/lib/resilience/settings.ts` | Voliteľná aktivácia (predvolene VYPNUTÉ): povoľuje pevný limit kvóty pri automatickom smerovaní, ktorý pred skórovaním vyradí kandidátov s nízkou kvótou. Nastavuje iba predvolenú hodnotu: boolean uložený v `resilienceSettings` (Ovládací panel → Nastavenia → Odolnosť) má prednosť. | | `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | Voliteľná aktivácia (predvolene VYPNUTÉ): keď filter `auto/:` nezodpovedá žiadnym pripojeným kandidátom, obnoví staršie správanie spočívajúce v návrate k úplnému (nefiltrovanému) poolu namiesto vrátenia prázdneho poolu. Predvolené VYPNUTÉ znamená, že `:free` označuje iba „bezplatnú úroveň“. | | `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | Limit veľkosti panela (obmedzený na 1–10) pre variant vysielania `auto/*:chaos` — jedna požiadavka sa rozšíri najviac na tento počet modelov od rôznych poskytovateľov. | | `OMNIROUTE_CHAOS_MIN_PANEL` | _(predvolené nastavenie enginu)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Nastavenie minimálnej veľkosti panela odovzdávané obslužnému mechanizmu vysielania chaosu; ak nie je nastavené, zachová sa predvolené nastavenie enginu. | | `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(predvolené nastavenie enginu)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Pevný časový limit (ms) pre celé paralelné rozoslanie panela chaosu; ak nie je nastavený, zachová sa predvolené nastavenie enginu. | | `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | Cesta k súboru `auth.json` rozhrania Grok CLI, ktorý sa používa na načítanie týždennej kvóty služby grok-web; prepíšte ju pre testy alebo neštandardnú inštaláciu 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ť zachyteného tela 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 spustí HTTP proxy inšpektora pri štarte. | | `INSPECTOR_LLM_HOSTS_EXTRA` | _(unset)_ | `src/lib/inspector/captureState.ts` | Ďalšie názvy hostiteľov (oddelené čiarkami), ktoré sa pri zaznamenávaní považujú za koncové body LLM. | | `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | Maskovanie tajomstiev (autorizačných hlavičiek / kľúčov API) v zaznamenanej 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 obnoví nastavenia proxy operačného systému. | | `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(auto)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | Token na overenie interného prijímania zaznamenaných údajov do inspectora. | | `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Maximálny počet stĺpcov vedľa seba v režime porovnávania Playgroundu. | | `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(unset)_ | `src/app/(dashboard)/dashboard/playground/` | Predvolený model pre akciu Playgroundu „vylepšiť prompt“ (ak nie je nastavený, použije sa aktívny model). | | `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Hlavný vypínač pre proxy sidecar Bifrost. Ak je nastavený na `0`, trasa vráti stav 503 s hlavičkou `X-Bifrost-Killswitch` a operátor bude presmerovaný na cestu TS. Použite ho na vypnutie sidecaru bez opätovného nasadenia (incident smerovača úrovne 1, rotácia kľúčov). | | `BIFROST_BASE_URL` | _(unset)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Ak je nastavená, trasa proxy sidecaru Bifrost presmeruje komunikáciu `/v1/chat/completions` na túto bránu Go namiesto obslužnej rutiny relé TS. Ak nie je nastavená → 503 s núdzovým návratom. Koncová lomka sa odstráni. | | `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | Port, na ktorý sa viaže spravovaná vložená služba Bifrost (`127.0.0.1:`), keď OmniRoute spravuje životný cyklus sidecaru Bifrost. Predvolená hodnota je `8080`. | | `SINGBOX_PORT` | `20140` | `src/lib/services/bootstrap.ts` | Port, na ktorý sa viaže spravovaná vložená služba sing-box (`127.0.0.1:`), keď OmniRoute spravuje životný cyklus sidecaru sing-box. Predvolená hodnota je `20140`. | | `LLMLINGUA_PORT` | `20135` | `src/lib/services/bootstrap.ts` | Port, na ktorý sa viaže spravovaná kompresná služba LLMLingua (`127.0.0.1:`). Predvolená hodnota je `20135`. | | `LLMLINGUA_BASE_URL` | `http://127.0.0.1:20135` | `open-sse/services/compression/engines/llmlingua/index.ts` | Základná URL adresa lokálneho démona HTTP mikroslužby na kompresiu LLMLingua. Predvolená hodnota je `http://127.0.0.1:20135`. | | `LLMLINGUA_MODEL` | `atjsh/llmlingua-2-js-tinybert-meetingbank` | `src/lib/services/installers/llmlingua.ts` | Identifikátor modelu Hugging Face, ktorý načíta spravovaný sidecar LLMLingua (odovzdá sa do prostredia podriadeného procesu). | | `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 overenie na strane brány. | | `BIFROST_STREAMING_ENABLED` | `true` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Keď je hodnota true, trasa sidecaru Bifrost streamuje odpovede späť cez SSE prostredníctvom brány namiesto streamovacieho exekútora v TS. Nastavením na `0` vynútite 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í na bránu Bifrost (v ms). Pri prekročení časového limitu trasa vráti cestu prenosu TS prostredníctvom hlavičky `X-Bifrost-Fallback`. | | `OMNIROUTE_BIFROST_KEY` | _(unset)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Alias pre `BIFROST_API_KEY` (používajú ho skripty, ktoré načítavajú prostredie cez `OMNIROUTE_*`). Ak sú nastavené obe, prednosť má `BIFROST_API_KEY`. | | `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Backend relé pre `/api/v1/relay/chat/completions`: `ts \| bifrost \| auto`. `ts` = relé v TypeScripte (predvolené, keď Bifrost nie je nakonfigurovaný); `auto` vyberie Bifrost, keď je nastavené `BIFROST_BASE_URL` a `BIFROST_ENABLED` ≠ `0`, s automatickým prechodom na TypeScript, ak je sidecar nedostupný; `bifrost` vynúti Bifrost (prísne, bez náhradného riešenia). Autentifikácia, obmedzenie frekvencie, ochrana pred injekciami a zoznam povolených položiek sa vždy najskôr vykonajú v route Nextu. Odpovede obsahujú `X-Routing-Backend` / `X-Routing-Fallback` / `X-Routing-Fallback-Reason`. | | `RELAY_ROUTING_BACKEND` | _(unset)_ | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Akceptovaný alias pre `OMNIROUTE_RELAY_BACKEND` (rovnaké hodnoty `ts \| bifrost \| auto`). Ak sú nastavené obe, prednosť má `OMNIROUTE_RELAY_BACKEND`. | | `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | Čas ochladzovania (v ms) po zlyhaní prechodu cez sidecar Bifrost v režime `auto`, počas ktorého relé znova nepokúsi prechod cez sidecar; kým ochladzovanie trvá, smeruje požiadavky priamo na cestu TypeScriptu a potom sidecar znova otestuje. Hodnota `0` túto funkciu deaktivuje. Platí iba vtedy, keď je `OMNIROUTE_RELAY_BACKEND=auto`. | | `OMNIROUTE_TLS_CERT` | _(unset)_ | `bin/cli/commands/serve.mjs` | Cesta k certifikátu PEM TLS, pomocou ktorého bude `omniroute serve` poskytovať HTTPS (ekvivalent `--tls-cert`). Musí byť spárovaná s `OMNIROUTE_TLS_KEY`; samostatný server potom ukončuje TLS na tom istom listenri (`wss://` funguje bez zmien). Nenastavené → obyčajné HTTP. Ak je zadaný iba certifikát alebo kľúč, prípadne je cesta nečitateľná, zaznamená sa upozornenie a zostane použité HTTP. | | `OMNIROUTE_TLS_KEY` | _(unset)_ | `bin/cli/commands/serve.mjs` | Cesta k súkromnému kľúču PEM TLS pre HTTPS `omniroute serve` (ekvivalent `--tls-key`). Musí byť spárovaná s `OMNIROUTE_TLS_CERT`. Pozri `OMNIROUTE_TLS_CERT`. | | `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | Hlavný prepínač pre route `/api/local/*`. Ak nie je nastavený alebo má hodnotu `0`, všetky route `/api/local/*` v produkcii vracajú 503. V nasadeniach mimo loopbacku musí mať hodnotu `1`, aby sa povolil spúšťač Redis a podobné spúšťače lokálnych služieb jedným kliknutím. Ide o dodatočnú ochranu spolu s klasifikáciou route guardu `isLocalOnlyPath()` (`LOCAL_ONLY_API_PREFIXES` v `src/server/authz/routeGuard.ts`). | | `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(unset)_ | `src/lib/security/localEndpoints.ts` | Bearer token pre volajúce `/api/local/*`, ktoré nie sú na loopbacku (napr. desktopová aplikácia). Ak je nastavený, požiadavky z IP adries mimo loopbacku musia obsahovať `Authorization: Bearer `. Vyžaduje sa v nasadeniach mimo loopbacku, keď je `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1`. | | `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | Názov kontajnera pre 1-klikový spúšťač Redis (`omniroute redis up`). Používa ho CLI aj grafické rozhranie `RedisLauncherPanel`. | | `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | Port hostiteľa pre 1-klikový spúšťač Redis. Zvýšte ho, ak hostiteľ už používa port 6379. Interný port kontajnera zostáva 6379. | | `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | Rozhranie hostiteľa, na ktorom 1-klikový spúšťač Redis zverejňuje službu. Spúšťač spúšťa Redis BEZ hesla, takže naviazanie na `0.0.0.0` sprístupní každému hostiteľovi vo vašej sieti LAN Redis bez autentifikácie — túto hodnotu rozšírte iba vtedy, ak na inštancii sami nastavíte aj heslo. | | `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Rozhranie hostiteľa, na ktorom docker-compose zverejňuje pomocnú službu Redis (#9286). Redis v compose beží bez `requirepass`; aplikačné kontajnery k nemu pristupujú cez sieť compose (`redis:6379`) — zverejnený port existuje iba pre nástroje na strane hostiteľa. `0.0.0.0` sprístupní Redis bez autentifikácie celej sieti LAN. | | `REDIS_PORT` | `6379` | `docker-compose.yml` | Port hostiteľa pre pomocnú službu 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 dashboard/API/živé WS (#12568). Keďže `REQUIRE_API_KEY=false` je predvolená hodnota v dodávanom súbore `.env.example`, hodnota `0.0.0.0` sprístupní anonymný proxy server LLM na `/v1` celej sieti LAN/WAN — rozšírte ju až po nastavení `REQUIRE_API_KEY=true` alebo po umiestnení reverzného proxy servera, ktorý vynucuje vlastnú autentifikáciu. | | `QDRANT_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Rozhranie hostiteľa, na ktorom docker-compose zverejňuje pomocnú pamäťovú službu Qdrant (#12578). Platia rovnaké dôvody týkajúce sa vystavenia 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 pomocnú smerovaciu službu Bifrost (#12578). Platia rovnaké dôvody týkajúce sa vystavenia v sieti LAN ako pri `REDIS_BIND_HOST`. | | `REDIS_KEY_PREFIX` | `omniroute:` | `src/shared/utils/rateLimiter.ts` | Prefix menného priestoru použitý pre každý kľúč OmniRoute v Redis (obmedzovač rýchlosti, vyrovnávacia pamäť autentifikácie, úložisko kvót, istič okruhu zahrievania). Zabraňuje kolíziám kľúčov pri zdieľaní inštancie Redis s inými aplikáciami (#11042). | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | _(nenastavené — mechanizmus je deaktivovaný)_ | `src/lib/api/internalServiceAuth.ts` | Zdieľané tajomstvo na zachovanie identity pri interných REST presmerovaniach (#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álneho servisného tokenu v súbore s tajomstvom: cesta k súboru, ktorého orezaný obsah predstavuje token. Zohľadňuje sa iba vtedy, keď nie je nastavená vložená premenná. | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | `src/lib/catalog/openrouterProviderStats.ts` | Obohatiť zoznam poskytovateľov na paneli štatistikami týždenného hodnotenia OpenRouter (#9324). Predvolene zapnuté; nastavením na `false` sa úplne preskočí načítanie na pozadí (neblokujúce, nikdy nespôsobí fatálnu chybu). | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterProviderStats.ts` | Doba platnosti 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 sprievodnej služby Qdrant, keď je aktívny `--profile memory`. Predvolene odkazuje na názov služby qdrant v internej sieti; pre externé nasadenie ho prepíšte. Používa sa iba vtedy, keď je v kóde `qdrantEnabled` nastavené na `true` (`src/lib/memory/vectorStore.ts:108`). | | `QDRANT_PORT` | `6333` | _(voliteľný profil klastra)_ | Port REST sprievodnej služby Qdrant. | | `QDRANT_GRPC_PORT` | `6334` | _(profil klastra s aktiváciou podľa potreby)_ | gRPC port sidecaru Qdrant. Používa sa v klientskych knižniciach, ktoré pri streamovacích operáciách uprednostňujú gRPC pred REST. | | `QDRANT_API_KEY` | _(unset)_ | _(profil klastra s aktiváciou podľa potreby)_ | Voliteľný kľúč API pre Qdrant Cloud alebo overenú lokálnu inštanciu. Prázdna hodnota → hlavička `api-key` sa neodošle. | | `QDRANT_COLLECTION` | `omniroute-memory` | _(profil klastra s aktiváciou podľa potreby)_ | Názov kolekcie pre embeddingy konverzačnej pamäte OmniRoute. Pri prvom spustení sa vytvorí s počtom dimenzií `QDRANT_VECTOR_SIZE`. | | `QDRANT_EMBEDDING_MODEL` | `text-embedding-3-small` | _(profil klastra s aktiváciou podľa potreby)_ | Predvolený názov embeddingového modelu zaznamenaný v metadátach kolekcie Qdrant. Skutočné embeddingy generuje poskytovateľ, na ktorého odkazuje pole `embeddingModel` v nastaveniach OmniRoute. | | `QDRANT_VECTOR_SIZE` | `1536` | _(profil klastra s aktiváciou podľa potreby)_ | Dimenzia embeddingového vektora. Musí zodpovedať modelu, pomocou ktorého vytvárate embeddingy (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768). | | `QDRANT_HNSW_EF_CONSTRUCT` | `128` | _(profil klastra s aktiváciou podľa potreby)_ | Presnosť konštrukcie 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 tried `OMNIROUTE_ROTATE_*` uvedených nižšie nespustí záložný účet (stav s vypnutým hlavným prepínačom blokuje aj predvolene povolené triedy 429/500/502). Umožňuje nadradenému front-endu (napr. desktopovej aplikácii VibeProxy) zrkadliť vlastné pravidlá rotácie do backendového mechanizmu zálohovania účtov. | | `OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS` | `0` | `open-sse/services/rotationConfig.ts` | Čas čakania (v sekundách) uplatnený na účet s obmedzením rýchlosti, keď nadradená služba neposkytne explicitnú informáciu o obnovení. `0` = použiť predvolený čas čakania mechanizmu namiesto pevného prepísania. | | `OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET` | `true` | `open-sse/services/rotationConfig.ts` | Zrkadlenie preferencie front-endu „neoznačovať ako limitované rýchlosťou bez času resetovania“. | | `OMNIROUTE_ROTATE_ON_429` | `true` | `open-sse/services/rotationConfig.ts` | Povolenie záložného spracovania pre stavové chyby `429`. 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 `OMNIROUTE_ROTATE_429_WINDOW_SECONDS`, ktorý je potrebný pred rotáciou účtu. Predvolená hodnota `1` spustí rotáciu okamžite, čím sa zachováva historické správanie. | | `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné okno (v sekundách), počas ktorého sa chyby `429` započítavajú do hodnoty `OMNIROUTE_ROTATE_429_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_500` | `true` | `open-sse/services/rotationConfig.ts` | Povolenie záložného spracovania pre serverové chyby `5xx` (s výnimkou `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 `OMNIROUTE_ROTATE_500_WINDOW_SECONDS`, ktorý je potrebný pred rotáciou účtu. Predvolená hodnota `1` spustí rotáciu okamžite. | | `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné okno (v sekundách), počas ktorého sa chyby `5xx` započítavajú do hodnoty `OMNIROUTE_ROTATE_500_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_502` | `true` | `open-sse/services/rotationConfig.ts` | Povolenie záložného spracovania pre chyby `502` (chybná brána). 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 `OMNIROUTE_ROTATE_502_WINDOW_SECONDS`, ktorý je potrebný pred rotáciou účtu. `1` (predvolené) spustí rotáciu okamžite. | | `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné okno (v sekundách), počas ktorého sa chyby `502` započítavajú do hodnoty `OMNIROUTE_ROTATE_502_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | Voliteľná funkcia (predvolene VYPNUTÁ): keď je nastavená na `true`, aj obyčajná chyba `400` (nesprávna požiadavka) spustí rotáciu účtu. Toto nastavenie je iba doplnkové — nikdy neblokuje existujúce správanie enginu, pri ktorom chyba `400` obsahujúca text o obmedzení rýchlosti alebo kvóte aj naďalej spôsobí prechod na ďalší účet 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 `OMNIROUTE_ROTATE_400_WINDOW_SECONDS`, ktorý je potrebný pred rotáciou účtu (kontroluje sa iba vtedy, keď je `OMNIROUTE_ROTATE_ON_400=true`). | | `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Posuvné okno (v sekundách), počas ktorého sa chyby `400` započítavajú do hodnoty `OMNIROUTE_ROTATE_400_THRESHOLD`. | ### Plánovač zahrievania Claude Zahrievanie riadené cron úlohou pre pripojenia Anthropic OAuth, ktoré si ho aktivovali, aby sa 5-hodinové okno obmedzenia rýchlosti 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 uvedené v `settings.claudeWarmup.connections`; prázdny zoznam pripojení znamená, že sa nezahrieva nič ani vtedy, keď je premenná prostredia zapnutá. | Premenná | Predvolené | Zdrojový súbor | Popis | | ------------------------------ | --------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_WARMUP_ENABLED` | _(unset → off)_ | `src/lib/warmupScheduler.ts` | Hlavný prepínač plánovača zahrievania. Akceptuje `1`/`true`/`yes`/`on` (bez rozlíšenia veľkosti písmen, s odstránenými okolitými medzerami). Akákoľvek iná hodnota alebo nenastavená premenná ponechá plánovač vypnutý. | | `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | Päťpoľový výraz cron pre interval zahrievania, vyhodnocovaný v časovom pásme `America/Los_Angeles` (časové pásmo resetovania Anthropic) bez ohľadu na hodiny hostiteľa. | | `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | Počet pripojení, ktoré sa zahrievajú paralelne pri jednom intervale. Obmedzené na `1` – `10`; nečíselná hodnota sa nahradí hodnotou `3`. | | `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | Model použitý pre požiadavku na zahrievanie. Prepíšte ho iba v prípade, že predvolený model nie je vo vašom pláne dostupný; vyberte najlacnejší model, ktorý stále otvorí okno. | ### Relácie VNC na prihlasovanie v prehliadači a alias dátového adresára Kontajnerizovaný Chromium+VNC používaný na interaktívne zachytávanie poverení pri prihlasovaní v prehliadači (`/api/vnc-session`), spolu so starším aliasom `DATA_DIR`. Všetko je voliteľné — predvolené nastavenia VNC smerujú na pribalený obraz `omniroute-vnc-chromium:local` a menia sa iba pri použití vlastného obrazu kontajnera, portov alebo pri úprave životného cyklu. | Premenná | Predvolené | Zdrojový súbor | Popis | | ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Značka obrazu Docker pre kontajner Chromium+VNC na prihlasovanie. Zostavte `docker/vnc-browser/chromium` alebo sem nasmerujte vlastný obraz. | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Binárny súbor runtime kontajnera používaný na spustenie kontajnera VNC (napr. nastavte na `podman`). | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Port VNC/noVNC sprístupnený v kontajneri. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Port Chrome DevTools Protocol v kontajneri. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Cesta k adresáru profilu Chromium v kontajneri. | | `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 v prehliadači. | | `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 odstráni. | | `OMNIROUTE_VNC_MAX_MS` | `1800000` (30 min) | `src/lib/vncSession/manifest.ts` | Pevný limit (ms) na dobu trvania 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 na pripravenosť prehliadača v kontajneri na CDP. | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Časový limit (ms) na získanie zachytenej relácie/cookies po dokončení prihlasovania. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | `--remote-debugging-port=9222 --no-first-run --no-default-browser-check` | `src/lib/vncSession/manifest.ts` | Ďalšie 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í kontajner VNC (#12571) namiesto predvoleného mosta, aby sa susedné kontajnery nemohli pripojiť k jeho portu mosta CDP. | | `VIBEPROXY_DATA_DIR` | _(unset)_ | `open-sse/services/notionThreadSessions.ts` | **Starší alias** pre `DATA_DIR`, kontrolovaný až po tom, ako nie sú nastavené ani `DATA_DIR`, ani `OMNIROUTE_DATA_DIR`. Určuje umiestnenie vyrovnávacej pamäte webových relácií vlákien Notion (`/notion-web-thread-sessions.json`). | --- ## 26. Test & E2E postroj Používajú ho `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 každú hodnotu nižšie nenastavenú. | Variabilné | Predvolené | Zdrojový súbor | Popis | | -------------------------------------- | -------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_E2E_BOOTSTRAP_MODE` | `auth` | `scripts/dev/run-next-playwright.mjs` | režim bootstrap E2E (`auth`, `fresh`, `reuse`) pre bežca Playwright. | | `OMNIROUTE_E2E_PASSWORD` | spadá späť do `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` | Vypnite miestne prieskumy zdravotného stavu počas behu Playwright. | | `OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Počas testov vypnite slučku kontroly stavu tokenu OAuth. | | `OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS` | _(nenastavené)_ | `src/lib/tokenHealthCheck.ts` | Poskytovatelia oddelení čiarkami boli vylúčení z proaktívnej obnovy tokenov (napr. `codex,openai`). Cielená alternatíva k úplnému vypnutiu Healthcheck — poskytovateľov krátkych TTL sa neustále obnovuje, zatiaľ čo kaskádoví poskytovatelia zostávajú iba reaktívni. | | `OMNIROUTE_HIDE_HEALTHCHECK_LOGS` | `true` | `scripts/dev/run-next-playwright.mjs` | Utlmiť hluk zdravotnej kontroly v Playwright stdout. | | `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Pred spustením Playwright preskočte produkčnú zostavu Next.js (optimalizácia CI ). | | `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | Preskočte háčik odinštalovania OmniRoute (používa ho CI na udržanie `node_modules` nedotknutého). | | `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | Pred spustením testov ecosystem/protocol počkajte (ms), kým sa server uzdraví. | | `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | URL dymový postroj Electron očakáva, že zabalená aplikácia bude slúžiť. | | `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | Celkový časový limit (ms), kým sa dymový postroj vzdá. | | `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | Vyrovnať okno (ms) po načítaní stránky. | | `ELECTRON_SMOKE_APP_EXECUTABLE` | _(auto)_ | `scripts/dev/smoke-electron-packaged.mjs` | Explicitná cesta k zabalenému spustiteľnému Electron. | | `ELECTRON_SMOKE_DATA_DIR` | _(tmpdir)_ | `scripts/dev/smoke-electron-packaged.mjs` | Údajový adresár pre Electron smoke run. | | `ELECTRON_SMOKE_KEEP_DATA` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Nastavte `1`, aby sa po spustení zachoval adresár údajov o dyme. | | `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Nastavte `1` na streamovanie protokolov Electron na stdout počas behu. | | `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: opätovné spustenie s rovnakým dátovým adresárom a potvrdenie pri druhom spustení vyberie natívny ovládač SQLite. | | `CLI_DEVIN_BIN` | _(vyhľadávanie PATH )_ | `open-sse/executors/devin-cli.ts` | Prepíšte binárnu cestu Devin CLI. | ### Priebeh prekladu dokumentov Používa ho `scripts/i18n/run-translation.mjs` (príkaz `npm run i18n:run` ). Všetkých šesť premenných je predvolene nenastavených. — ich nastavte v `.env` iba na počítačoch, ktoré by mali byť schopné spustiť prekladač dokumentov. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------ | --------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_TRANSLATION_API_URL` | _(nenastavené)_ | `scripts/i18n/run-translation.mjs` | Základná URL kompatibilná s OpenAI pre prekladový backend. | | `OMNIROUTE_TRANSLATION_API_KEY` | _(nenastavené)_ | `scripts/i18n/run-translation.mjs` | Nosný token pre backend prekladu (nikdy neprihlásený). | | `OMNIROUTE_TRANSLATION_MODEL` | _(nenastavené)_ | `scripts/i18n/run-translation.mjs` | ID modelu, napr. `gpt-4o-mini` alebo `cx/gpt-5.4-mini`. | | `OMNIROUTE_TRANSLATION_FALLBACK_MODELS` | _(nenastavené)_ | `scripts/i18n/lib/translate-backend.mjs` | Voliteľný reťazec modelu oddelený čiarkami vyskúšaný v poradí, keď primárny model zlyhá (kvóta 429, 401/402, 5xx, časový limit, sieť); chybná požiadavka (400/413/422) sa inde nepokúša. | | `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | Časový limit na žiadosť v milisekundách. | | `OMNIROUTE_TRANSLATION_REASONING_EFFORT` | _(nenastavené)_ | `scripts/i18n/lib/translate-backend.mjs` | Voliteľné ovládanie uvažovania, ktoré sa po nastavení odošle do backendu. | | `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | Požiadavky na paralelný preklad pri spustení viacerých súborov / miestnych nastavení. | | `OMNIROUTE_TRANSLATION_ENGINE` | `llm` | `scripts/i18n/run-translation.mjs` | `llm` používa backend vyššie; `google` sa prekladá cez engine Google bezpečný pre štruktúru a nepotrebuje žiadnu z premenných LLM. | | `OMNIROUTE_TRANSLATION_GOOGLE_FALLBACK` | `1` | `scripts/i18n/run-translation.mjs` | S motorom `llm` je časť, ktorú model nedokázal vytvoriť (ochrana výstupu zlyhala pri každom pokuse alebo chyba modelu), preložená Google namiesto zlyhania miestneho nastavenia. `0` to zakáže. | | `OMNIROUTE_TRANSLATION_GOOGLE_API_KEY` | _(nenastavené)_ | `scripts/i18n/lib/google-translate.mjs` | Voliteľný kľúč Cloud Translation v2. Unset používa bezkľúčový webový koncový bod (obmedzená rýchlosť, v poriadku pre občasné vlny). | | `OMNIROUTE_TRANSLATION_GOOGLE_CONCURRENCY` | `6` | `scripts/i18n/lib/google-translate.mjs` | Paralelné požiadavky Google zdieľané každým miestnym nastavením behu. | | `OMNIROUTE_TRANSLATION_GOOGLE_TIMEOUT_MS` | `30000` | `scripts/i18n/lib/google-translate.mjs` | Časový limit na žiadosť pre motor Google v milisekundách. | | `UI_KIT_READ_TOKEN` | _(nenastavené)_ | `scripts/check/check-ui-kit-upstream.mjs` | Token iba na čítanie pre súkromné úložisko súpravy UI upstream, ktoré používa `npm run check:ui-kit-upstream` a týždenný pracovný postup „UI Kit upstream watch“. Lokálne kontrola používa vaše poverenia git. | --- ## 27. Radarový zdroj (vlastné hosťovanie) Voliteľný doplnok chránený príznakom funkcie RADAR_ENABLED (predvolene vypnuté — príznak funkcie prepínaný cez Settings/DB, nie env var; pozri [docs/frameworks/RADAR.md](../frameworks/RADAR.md#flag-radar_enabled-default-off) ). Prvé štyri premenné nižšie sú voliteľné prepísania pre samostatne hostený alebo rozvetvený informačný kanál a toky kľúčov pre podporovateľov. Piaty, `RADAR_ADMIN_URL`, je samostatný predvolený bezplatný odkaz na súkromný operačný panel vlastníka. Pozrite si [docs/frameworks/RADAR.md](../frameworks/RADAR.md) kde nájdete celý dokument o module a jeho [komplexnú aktiváciu a postupnosť nastavenia so sprievodcom](../frameworks/RADAR.md#end-to-end-activation-and-guided-setup). Všeobecná čítačka oznámení Home/Changelog nie je nakonfigurovaná premennou prostredia a nezávisí od príznaku funkcie RADAR_ENABLED. Číta verejný archív `news.json` URL deklarovaný v `src/shared/utils/releaseNotes.ts` iba GET ; dismissal IDs zostávajú v miestnom úložisku prehliadača. | Variabilné | Predvolené | 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ým katalógom, odporúčaniami, ponukami od podporovateľov a informačnými kanálmi Intel. Prepísať, aby ukázal na službu, ktorá je hosťovaná alebo rozvetvená. | | `RADAR_FEED_PUBKEY` | _(pripnutý predvolený kľúč)_ | `src/lib/radar/pinnedKeys.ts` | Verejný kľúč Ed25519 (base64-DER SPKI alebo PEM) používaný na overenie podpisov informačného kanála z vlastného informačného kanála. | | `RADAR_CONTRIBUTOR_CLAIM_URL` | `https://radar.omniroute.online/auth/github` | `src/lib/radar/links.ts` | URL otvorí sa tlačidlo hlavného panela „Som prispievateľ“ (GitHub OAuth postup pri nárokovaní kľúča podpory). | | `RADAR_SUPPORTER_PLANS_URL` | `https://radar.omniroute.online/planos` | `src/lib/radar/links.ts` | URL otvorí sa tlačidlo hlavného panela „Podporiť projekt“ ( stránka payment/plans ). | | `RADAR_ADMIN_URL` | _(nenastavené)_ | `src/lib/radar/links.ts` | Odkaz na súkromný prevádzkový panel len pre vlastníka. HTTPS sa vyžaduje okrem spätnej slučky HTTP SSH vpred; nenastavené alebo neplatné hodnoty nevytvoria žiadnu navigačnú položku. | --- ## Audit: Odstránené / mŕtve premenné Nasledujúce premenné sa objavili v predchádzajúcich verziách `.env.example`, ale majú** žiadne odkazy na runtime** v aktuálnej kódovej základni. Boli odstránené: | Variabilné | Dôvod | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | `STORAGE_DRIVER=sqlite` | Nikdy nečítajte žiadnym zdrojovým súborom. SQLite je jediný podporovaný ovládač — nie je potrebný žiadny výber. | | `INSTANCE_NAME=omniroute` | Prítomné v starých šablónach docs/env, ale nepoužívané pri spustení. Môže sa vrátiť v budúcej funkcii s viacerými inštanciami. | | `SQLITE_MAX_SIZE_MB=2048` | Neuvádza sa v zdrojovom kóde. Veľkosť databázy nie je umelo obmedzená. | | `SQLITE_CLEAN_LEGACY_FILES=true` | Neuvádza sa v zdrojovom kóde. Staršie čistenie 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` ( kódovanie Kimi používa OAuth, nie binárny súbor CLI ). | | `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | Nikde v zdrojovom kóde nie je uvedené. | | `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 3.8.0. Runtime už nečíta tieto env vars — poverenia pochádzajúce z Dashboard/ `data/provider-credentials.json` /encrypted DB. | | `CURSOR_PROTOBUF_DEBUG` | Odstránené vo verzii 3.8.0. Cursor exekútor používa `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` (pozri §22). | | `CLI_COMPAT_KIRO` | Odstránené vo verzii 3.8.0. Kiro je v `CLI_COMPAT_OMITTED_PROVIDER_IDS` — jeho prepínanie nemá žiadny vplyv. | | `QIANFAN_API_KEY` | Odstránené spolu s ďalšími nepoužitými kľúčmi API poskytovateľa vo verzii 3.8.0. | ### Opravy predvolenej hodnoty | Variabilné | Stará hodnota `.env.example` | Skutočný predvolený kód | Opravené | | ------------------------- | ---------------------------- | ----------------------- | -------------------------------------------------------------------- | | `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Odstránená zavádzajúca hodnota; zdokumentovaný `7` ako predvolený | | `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Odstránená zavádzajúca hodnota; zdokumentovaný `7` ako predvolený | ### regenerácia konfigurácie OpenCode (ad-hoc nástroje) Používa ho `scripts/ad-hoc/regen-opencode-config.ts` na regeneráciu `opencode.json` s presnými hodnotami `limit.context` a `limit.output` stiahnutými zo spustenej inštancie OmniRoute. Žiadna z nich nie je potrebná pre normálnu prevádzku — skript je iba nástrojom vývojára. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------ | ------------------------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_URL` | `http://localhost:20128` | `scripts/ad-hoc/regen-opencode-config.ts` | Základ URL inštancie OmniRoute na dotazovanie `/v1/models`. | | `OMNIROUTE_KEY` | _(nenastavené)_ | `scripts/ad-hoc/regen-opencode-config.ts` | kľúč API na autentifikáciu voči koncovému bodu `/v1/models` OmniRoute Keď nie je nastavené, vráti sa späť na `OPENCODE_API_KEY`. | | `OPENCODE_API_KEY` | _(nenastavené)_ | `scripts/ad-hoc/regen-opencode-config.ts` | Kľúč API v štýle OpenCode (`sk-...`) zapísaný do vygenerovaného `opencode.json`. Keď nie je nastavené, vráti sa späť na `OMNIROUTE_KEY`. | ### Kompresný offline-eval postroj (ad-hoc nástroje) Používa ho `scripts/compression-eval/index.ts`, offline hodnotenie kompresie CLI. Nevyžaduje sa len pre bežnú prevádzku — vývojárskych nástrojov. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ---------------------------- | -------------- | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (prázdne) | `scripts/compression-eval/index.ts` | Poverenia JSON poskytnuté operátorom pre poskytovateľa vykonávané offline kompresiou CLI (analyzované pomocou `JSON.parse`). Nechajte odstavené na suchý chod. | ### VNC relácie prehliadača Používa ho `src/lib/vncSession/manifest.ts` na konfiguráciu bezhlavých relácií Chromium založených na Docker pre poskytovateľov automatizácie prehliadača. Všetky voliteľné predvolené hodnoty — sú uvedené nižšie. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------- | ------------------------------ | ------------------------------------------- | ---------------------------------------------------------------------------------------- | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Cesta k binárnemu súboru Docker ktorý sa používa na vytvorenie kontajnerov VNC. | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | obrázok Docker pre kontajner VNC Chromium. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | _(vstavané vlajky)_ | `src/lib/vncSession/manifest.ts` | Do prehliadača v kontajneri boli odovzdané ďalšie argumenty Chromium CLI. | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | VNC port vo vnútri kontajnera. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Port protokolu Chrome DevTools vo vnútri kontajnera. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Adresár profilu vo 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) pred zberom relácie VNC. | | `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 Harvest/cleanup (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 pre pretrvávanie relácie vlákna Notion. | ### Interné overenie služby | Variabilné | Predvolené | Popis | | --------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | – | Vložený token na overenie medzi jednotlivými službami na úrovni riadenia. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | – | Cesta k súboru obsahujúcemu interný token služby (preferuje sa v kontajneroch; prepíše vloženú premennú). | ### štatistiky poskytovateľa OpenRouter | Variabilné | Predvolené | Popis | | ----------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | Nastavte na `false`, ak chcete preskočiť načítanie štatistík OpenRouter podľa poskytovateľa na obohatenie katalógu. | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `3600000` | Uložte do vyrovnávacej pamäte TTL (ms) pre načítané štatistiky poskytovateľa OpenRouter. | ### Vstavaná väzba Redis | Variabilné | Predvolené | Popis | | --------------------------- | ----------- | -------------------------------------------------------------- | | `REDIS_BIND_HOST` | `127.0.0.1` | Väzba adresy pre vstavanú službu Redis. | | `REDIS_PORT` | `6379` | Port pre vstavanú službu Redis. | | `OMNIROUTE_REDIS_BIND_HOST` | – | Prepísanie v rozsahu OmniRoute pre vloženú adresu väzby Redis. | --- ## 24. Vydanie v3.8.50 dodatkov Tieto nastavenia boli zavedené po predchádzajúcej snímke zmluvy o prostredí. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | Maximálne čakanie na vstupný slot ťažkej váhy pred opakovaným `503`; krátke ohraničené čakanie serializuje zhluky agentov namiesto okamžitého `503`. `0` obnovuje okamžité odmietnutie. | | `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Rozpočet bajtov vo fronte na čakanie na prijatie: ohraničuje celkový počet bajtov tela vo vyrovnávacej pamäti zaparkovaných v celom procese, takže čakanie nemôže zosilniť haldu (#4380). Čakania s nadmerným rozpočtom dostanú okamžite opakovateľnú `503`. | | `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 s) | `src/shared/middleware/chatBodyAdmission.ts` | Zastarané no-op od #10110: vstupné pruhy na reláciu boli odstránené v prospech jedného rozpočtu pre celý proces. Akceptované pre kompatibilitu konfigurácie; ignoroval. | | `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Zastarané no-op od #10110: vstupné pruhy na reláciu boli odstránené v prospech jedného rozpočtu pre celý proces. Akceptované pre kompatibilitu konfigurácie; ignoroval. | | `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (vypnuté) | `open-sse/services/admission/runtime.ts` | Adaptívne runtime virtuálne vstupné pruhy (#9654): hlavný prepínač pre adaptívnu bránu pre jednotlivých nájomníkov (systém 2). Na rozdiel od vyššie uvedených zastaraných varov pre jednotlivé pripojovacie pruhy (TTL_MS / MAX_SESSIONS, bez prevádzky od # 10110). Rovnaký príznak funkcie ovládacieho panela; env var víťazí nad prepísaním palubnej dosky; vyžaduje reštart. | | `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | Ohraničuje, ako dlho čaká volanie run-now na prebiehajúcu úlohu pred spustením behu vo fronte. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | povolené | `open-sse/services/adobeFireflySession.ts` | Udržuje IMS a rizikový stav prehliadača čerstvý prostredníctvom relácií Chrome CDP v rozsahu účtu; nastaviť `0` na vypnutie. | | `ADOBE_FIREFLY_SESSION_DISK` | povolené | `open-sse/services/adobeFireflySession.ts` | Pretrváva opravené relácie Adobe pod `DATA_DIR`; nastaviť `0` pre stav iba pamäte. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Minimálny rozostup medzi odoslaním generovaným Adobe Firefly. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Mimoriadne pokojné obdobie po každom treťom úspešnom odoslaní aplikácie Adobe. | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Skutočný bezhlavý režim iba na ladenie; Adobe colligo zvyčajne odmieta 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útny spustiteľný súbor Chrome používaný spúšťačmi riadenými prehliadačom, keď automatická detekcia platformy nestačí. | | `TELEGRAM_BOT_TOKEN` | _(nenastavené)_ | `src/lib/telegram/config.ts` | BotFather token, ktorý umožňuje prichádzajúci webhook a podpisuje Mini App `initData`. | | `TELEGRAM_WEBHOOK_SECRET` | _(nenastavené)_ | `src/lib/telegram/config.ts` | Zdieľané tajomstvo zaregistrované prostredníctvom `setWebhook` a overené podľa hlavičky `X-Telegram-Bot-Api-Secret-Token` pri každom doručení webhooku. Vyžaduje sa pre cestu webhooku; unset znamená, že dodávky webhooku sú odmietnuté s 503. | | `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Model použitý pre odpovede na chat Telegram. | | `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | Bot API základné prepísanie URL pre proxy servery alebo servery Bot API s vlastným hosťovaním. | | `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | Časový limit v milisekundách pre odchádzajúce hovory Bot API. | | `TELEGRAM_USER_ALLOWLIST_ENABLED` | `false` | `src/lib/telegram/config.ts` | Nastavte na `true`, aby slúžil iba používateľom Telegram uvedeným v `TELEGRAM_ALLOWED_USER_IDS` (ostatní: Mini App 403, správa webhooku zrušená). Predvolene vypnuté: každý používateľ Telegram je obsluhovaný a dostane vyrazený kľúč API, ktorý minie upstream kvótu. | | `TELEGRAM_ALLOWED_USER_IDS` | _(nenastavené)_ | `src/lib/telegram/config.ts` | Číselné ID používateľov Telegram oddelené čiarkou sa zobrazili pri `TELEGRAM_USER_ALLOWLIST_ENABLED=true`. Záznamy, ktoré nie sú obyčajnými kladnými celými číslami, sú ignorované s jednorazovým upozornením. Ignorované, keď je zoznam povolených vypnutý; prázdne so zapnutým zoznamom povolených neslúži nikomu. | | `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (povolené) | `scripts/build/optionalPackStaging.mjs` | Nastavte `0` tak, aby preskočilo vysielanie tarballov `.tar.gz` pri vytváraní voliteľných balíčkov ML/browser pre samostatný strom Electron (adresáre balíčkov a `optional-packs.index.json` sa stále vyrábajú). Používa sa pracovným postupom vydania pre stolné počítače na zníženie veľkosti nahrávania artefaktov. | | `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | Umožňuje registráciu trás obrázkov predplatného xAI ; predvolene vypnuté, takže cesta k obrázku kľúča API zostane nezmenená. | | `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | Ochladenie na kľúč v milisekundách, keď odpoveď `429` nemá žiadny použiteľný náznak `Retry-After`. | | `OMNIROUTE_ESTIMATOR_CALIBRATION` | povolené | `open-sse/services/estimatorCalibration.ts` | Nastavte na `off`, `0` alebo `false`, aby ste deaktivovali záznam a aplikáciu kalibrácie estimátora v pamäti. | | `NEXT_MANUAL_SIG_HANDLE` | _(interné)_ | `scripts/dev/standalone-server-ws.mjs` | Prepísanie obsluhy signálu interného samostatného servera; normálne nastavené a vymazané spúšťačom, nie konfigurované operátormi. | | `CHATGPT_WEB_TURN_TIMEOUT_MS` | `180000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Strop za otočenie pre otočenie textu ChatGPT Web (Clean Room); hodnoty pod `1000` sa ignorujú. | | `CHATGPT_WEB_TOOL_TURN_TIMEOUT_MS` | `180000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Strop na otočenie pre turn ChatGPT Web (Clean Room), ktorý nesie klientske nástroje (emulovaná obálka `` ); znížte ho, aby sa kontrola vrátila klientovi skôr. Hodnoty pod `1000` sa ignorujú. | | `CHATGPT_WEB_HEADLESS` | `1` (bez hlavy) | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Spustite bezhlavo webový prehliadač ChatGPT (Clean Room). `0` nastavte iba pre účty, ktorých výzva prvej strany odmieta bezhlavý režim (predvolené nastavenie sa zmenilo z bezhlavého na bezhlavý v #14948). | | `CHATGPT_WEB_BROWSER_ACQUIRE_TIMEOUT_MS` | `45000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Strop pre spustenie webového prehliadača ChatGPT (Clean Room) a zahriatie chatgpt.com, takže nefunkčný prehliadač alebo relácia nemôže využiť termín frontu žiadostí. | | `UI_KIT_CLONE` | `_references/cheaper-inference-ui-kit` | `scripts/check/check-ui-kit-snapshot.mjs` | Cesta súkromnej súpravy CI UI Kit klonuje bránu snapshotu `packages/ui-kit/src` proti (KEA-7886); brána preskočí s upozornením, keď klon chýba. | ### ChatGPT Web (Codex) Globálne predvolené nastavenia pre bezhlavý prehliadač a ausgehenden Tool-Tunnel. Im Dashboard gesetzte Connection-Werte haben Dorrang. | Variabilné | Predvolené | Zdrojový súbor | Popis | | --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `CHATGPT_WEB_CODEX_CHROME_PATH` | _(automatická detekcia)_ | `open-sse/executors/chatgpt-web-codex.ts` | Expliziter Chrome-/Chromium-Pfad für npm-, systemd- a PM2-Betrieb. | | `CHROME_PATH` | _(automatická detekcia)_ | `open-sse/executors/chatgpt-web-codex.ts` | Gemeinsamer Fallback für einen expliziten Chrome-/Chromium-Pfad. | | `CHATGPT_WEB_CODEX_CDP_URL` | _(nenastavené)_ | `open-sse/executors/chatgpt-web-codex.ts` | Interner CDP-Endpunkt; Docker verwendet den Sidecar auf Port `9223`. | | `CHATGPT_WEB_CODEX_USE_CDP_PROFILE` | _(zrušiť — vypnuté)_ | `open-sse/vendor/codex-chatgpt-web/persistent-cdp-context.ts` | Nastavte na `1` (s nakonfigurovaným koncovým bodom CDP ), aby ste opätovne použili existujúcu stránku ChatGPT z externe spravovaného a prihláseného profilu prehliadača namiesto izolovaného kontextu na každé kolo; tiež obmedzuje súbežné karty ChatGPT na 1. Predvolene vypnuté. Pozrite si [trvalý profil CDP](../guides/CHATGPT-WEB-PERSISTENT-CDP.md). | | `CDP_PROXY_TOKEN` | _(nenastavené)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | Wenn gesetzt, muss jede Anfrage a CDP-Proxy-Sidecar diesen Wert im Header `X-Omni-Cdp-Token` mitschicken (#13679). Ohne Wert leitet der Proxy unauthentifiziert weiter — dann schützt nur die Netzisolierung des Compose-Netzes `chatgpt-web-codex-net`. Erzeugen mit `openssl rand -hex 32`. | | `CHATGPT_WEB_CODEX_TUNNEL_ID` | _(nenastavené)_ | `open-sse/executors/chatgpt-web-codex.ts` | Globale OpenAI-Tunnel-ID pre miestne Codex-Tool-Runden. | | `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(nenastavené)_ | `open-sse/executors/chatgpt-web-codex.ts` | Globaler Tunnel Runtime-Key; niemals in Logs ausgeben. | | `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | Exakter Name des neu erstellten ChatGPT-Custom-Connectors für die MCP-Brücke. | | `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | Dediziertes Verzeichnis für Browser-, Broker- und Tunnelzustand. | | `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | Ak `1` skontrolovať diagnostiku prehliadača, kliknite na tlačidlo Checkpoint. | | `CODEX_CHATGPT_WEB_LAUNCHER` | _(nenastavené)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Voliteľná absolútna verzia programu Launcher-Binary. | | `CODEX_CHATGPT_WEB_BUN` | _(automatická detekcia)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Voliteľný absolútny Pfad zum Bun-Runtime-Binary. | | `CODEX_WEB_GPT_BUN` | _(nenastavené)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Legacy-Fallback für `CODEX_CHATGPT_WEB_BUN`; neue Setups verwenden den kanonischen Namen. | --- ## OmniConductor most Spotrebiteľ SSE s dlhou životnosťou, ktorý zrkadlí úlohy rozbočovača OmniConductor do lokálneho A2A TaskManager (`src/lib/conductor/`). Prihlásiť sa — most sa spustí iba vtedy, keď je nastavené `CONDUCTOR_HUB_URL`. Len na strane servera: token hubu sa nikdy nesmie dostať do prehliadača. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------ | ----------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | `CONDUCTOR_HUB_URL` | _(prázdne)_ | `src/lib/conductor/boot.ts` | Základňa URL náboja OmniConductor (napr. `http://127.0.0.1:7910`). Zrušiť nastavenie mosta = je vypnuté. | | `CONDUCTOR_HUB_TOKEN` | _(prázdne)_ | `src/lib/conductor/boot.ts` | Poverenie hubu pre SSE feed — vysiela `spokesperson` -kind peer na hube (`POST /v1/peers`, admin). | | `CONDUCTOR_ORCHESTRATOR_TOKEN` | _(prázdne)_ | `src/lib/conductor/hubProxy.ts` | Poverenie pre delegovanie úloh A2A→ rozbočovača (`POST /v1/tasks`); pri deaktivácii sa vráti späť na `CONDUCTOR_HUB_TOKEN`. | | `CONDUCTOR_SPOKESPERSON_URL` | `http://127.0.0.1:7920` | `src/lib/conductor/faroProxy.ts` | Základňa URL služby hovorcu (Faro) za proxy chatom na dashboarde (`/api/conductor/ask`). | ### Plánovanie s ohľadom na kvóty Používajú ho `open-sse/services/combo.ts` a `src/lib/quota/quotaScheduler.ts` na predbežné kontroly rozpočtu tokenov. Predvolené správanie smerovania — je nezmenené, keď nie je nastavené. | Variabilné | Predvolené | Zdrojový súbor | Popis | | ---------------------------------- | ----------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_QUOTA_AWARE_ROUTING` | `0` | `open-sse/services/combo.ts` | Keď `1`, preskočte pripojenia, ktorých rozpočet tokenu na okno (`rateLimitOverrides.tpm`, tabuľka `provider_quota_state`) si nemôže dovoliť odhadovanú cenu požiadavky pred odoslaním. Otváranie zlyhaním, keď nie je nakonfigurovaný žiadny rozpočet. | | `OMNIROUTE_ESTIMATOR_CALIBRATION` | _(zapnuté)_ | `open-sse/services/estimatorCalibration.ts` | Kalibrácia spätnej väzby estimátora kontextového ochranného tokenu (#14931): na (poskytovateľ, model, prítomné nástroje) EMA `usage.prompt_tokens` / odhad, upnuté na 0,15–2,0, iba v pamäti. `off`, `0` alebo `false` zakáže nahrávanie a aplikáciu. | | `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | Registruje trasy obrazu `xai-oauth` (`xao`) a `grok-cli`. Rovnaký príznak funkcie ovládacieho panela; prepísanie DB vyhráva nad touto hodnotou. | ## Diagnostika synchronizácie modelu | Variabilné | Predvolené | Zdrojový súbor | Popis | | ------------------------------ | ---------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_MODEL_SYNC_TIMINGS` | `0` | `src/lib/providerModels/modelSyncTimings.ts` | Nastavte na `1`, ak chcete zaznamenávať časovanie fázy, vygenerovanú požiadavku ID a výsledky fázy success/error počas synchronizácie modelu. Zakázané pre všetky ostatné hodnoty. Protokoly vynechávajú užitočné zaťaženie požiadaviek, účtu, katalógu a chýb. | ## Lokálny nástroj OpenCode na analýzu médií Používa ho `scripts/cli/omniroute-media-mcp.mjs`. Nastavte ich v prostredí lokálneho procesu nástroja. | Premenná | Predvolené nastavenie | Popis | | -------------------------- | ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_MEDIA_CONFIG` | `$XDG_CONFIG_HOME/opencode/opencode.json` (alebo `~/.config/opencode/opencode.json`) | Konfigurácia OpenCode, ktorú číta nástroj na prácu s médiami a inštalátor. | | `OMNIROUTE_MEDIA_PROVIDER` | `omniroute` | Položka poskytovateľa načítaná z konfigurácie OpenCode nástrojom na prácu s médiami. | | `OMNIROUTE_MEDIA_MODEL` | `auto` | Model odosielaný nástrojom na prácu s médiami. Jeho poskytovateľ musí podporovať požadované typy médií. | | `OMNIROUTE_MEDIA_API_KEY` | Nakonfigurovaný kľúč API poskytovateľa alebo jeho referencia na premennú prostredia | Voliteľné prepísanie prihlasovacích údajov. Uchovávajte ho v prostredí lokálneho procesu; nikdy ho nezaraďujte do revízie. |