# Environment Variables Reference (Lietuvių) 🌐 **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) · 🇱🇻 [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) · 🇸🇰 [sk](../../../sk/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) --- > Išsamus visų „OmniRoute“ atpažįstamų aplinkos kintamųjų žinynas. > Greitosios pradžios šabloną rasite [`.env.example`](../../.env.example). > [!IMPORTANT] > Kiekvienas čia aprašytas kintamasis taip pat turi būti pateiktas faile `.env.example`, o > kiekvienas `.env.example` kintamasis turi būti aprašytas čia. `npm run check:env-doc-sync` > užtikrina šio reikalavimo laikymąsi atliekant commit ir CI procese. Jei kintamąjį norite sąmoningai praleisti, įtraukite jį į > leidžiamųjų sąrašą faile `scripts/check/check-env-doc-sync.mjs`. --- ## Turinys - [1. Privalomos paslaptys](#1-required-secrets) - [2. Saugykla ir duomenų bazė](#2-storage--database) - [3. Tinklas ir prievadai](#3-network--ports) - [4. Saugumas ir autentifikavimas](#4-security--authentication) - [5. Įvesties valymas ir AII apsauga](#5-input-sanitization--pii-protection) - [6. Įrankių ir maršruto parinkimo strategijos](#6-tool--routing-policies) - [7. URL ir sinchronizavimas su debesija](#7-urls--cloud-sync) - [8. Išeinantis tarpinis serveris](#8-outbound-proxy) - [9. CLI įrankių integravimas](#9-cli-tool-integration) - [10. Vidinio agento ir MCP integracijos](#10-internal-agent--mcp-integrations) - [11. OAuth teikėjų prisijungimo duomenys](#11-oauth-provider-credentials) - [12. Teikėjų User-Agent perrašymai](#12-provider-user-agent-overrides) - [13. CLI kontrolinio kodo suderinamumas](#13-cli-fingerprint-compatibility) - [14. API rakto teikėjai](#14-api-key-providers) - [15. Skirtojo laiko nuostatos](#15-timeout-settings) - [16. Žurnalų tvarkymas](#16-logging) - [17. Atminties optimizavimas](#17-memory-optimization) - [18. Kainodaros sinchronizavimas](#18-pricing-sync) - [19. Modelių sinchronizavimas (kūrimas)](#19-model-sync-dev) - [20. Teikėjams būdingos nuostatos](#20-provider-specific-settings) - [21. Tarpinio serverio būklė](#21-proxy-health) - [22. Derinimas](#22-debugging) - [23. GitHub integracija](#23-github-integration) - [24. Įgūdžių smėlio dėžė (v3.8.0+)](#24-skills-sandbox-v380) - [27. „Radar“ sklaidos kanalas (savarankiškas priegloba)](#27-radar-feed-self-hosting) - [Diegimo scenarijai](#deployment-scenarios) - [Auditas: pašalinti / nebenaudojami kintamieji](#audit-removed--dead-variables) --- ## 1. Privalomos paslaptys Jos **privalo** būti nustatytos prieš pirmąjį paleidimą. Be jų programa arba atsisakys paleisti, arba veiks naudodama nesaugias numatytąsias nuostatas. | Kintamasis | Privalomas | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------- | ------------------- | ----------------------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `JWT_SECRET` | **Taip** | _(nėra)_ | `src/lib/auth` | Pasirašo ir patikrina visus valdymo skydelio seanso slapukus (JWT). Sugeneruokite naudodami `openssl rand -base64 48`. | | `API_KEY_SECRET` | **Taip** | _(nėra)_ | `src/lib/db/apiKeys.ts` | AES šifravimo raktas, skirtas neaktyvioms API raktų reikšmėms SQLite duomenų bazėje. Sugeneruokite naudodami `openssl rand -hex 32`. | | `INITIAL_PASSWORD` | **Taip** | `CHANGEME` | Paleidimo scenarijus | Nustato pradinį administratoriaus valdymo skydelio slaptažodį (atitinka numatytąją `.env.example` reikšmę — ji sąmoningai palikta akivaizdžiai nesaugi, kad būtų privaloma ją pakeisti). **Pakeiskite prieš naudodami pirmą kartą.** Prisijungę pakeiskite per Valdymo skydelis → Nustatymai → Saugumas. | | `OMNIROUTE_WS_BRIDGE_SECRET` | **Taip** (gamyboje) | _(nenustatyta)_ | `src/app/api/internal/codex-responses-ws/route.ts` | Bendrasis vidinio Codex Responses WebSocket tilto slaptasis raktas. Autentifikuoja tilto užklausas tarp Electron / naršyklės WS perdavimo modulio ir OmniRoute. ⚠️ **PRIVALOMAS gamyboje — kai nenustatytas, visos WS tilto užklausos atmetamos.** Sugeneruokite naudodami `openssl rand -base64 32`. | | `OMNIROUTE_SW_BUILD_ID` | Ne | _(git SHA)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Aiškiai nurodytas paslaugų modulio podėlio atnaujinimo identifikatorius, skirtas PWA apvalkalui (#11779); pirmasis reikšmės nustatymo grandinėje. | | `SOURCE_VERSION` | Ne | _(nenustatyta)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Antrasis grandinėje — jį PaaS kūrimo sistemos (pvz., Heroku tipo) nustato kaip įdiegtą įvykdymą. | | `NEXT_PUBLIC_SW_BUILD_ID` | Ne | _(išvedama)_ | `src/shared/components/PwaRegister.tsx` | Kūrimo metu nustatoma viešoji reikšmė, kurią klientas naudoja registruodamas `/sw.js?v=…`; išvedama iš dviejų pirmiau nurodytų reikšmių, o tada iš git SHA. | | `OMNIROUTE_PEER_STAMP_TOKEN` | Ne (automatiškai) | _(automatiškai kiekvieno paleidimo metu)_ | `src/server/authz/policies/management.ts` | Kiekvieno proceso slaptasis raktas, įrodantis, kad patikima lygiaverčio mazgo IP žyma gauta iš paties OmniRoute HTTP serverio (`scripts/dev/peer-stamp.mjs`). authz tarpinė programinė įranga užklausos vietiškumu (LOCAL_ONLY maršrutų ribojimu iki grįžtamosios sąsajos / LAN) pasitiki tik tada, kai žymoje yra šis prieigos raktas. Automatiškai sugeneruojamas kiekvieno paleidimo metu — palikite nenustatytą; fiksuokite tik kelių procesų konfigūracijose, kurioms būtina bendrinti šią žymą. | ### Generavimo komandos ```bash # Sugeneruokite visus keturis slaptuosius raktus vienu metu: 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] > Niekada neįtraukite `.env` failų su tikrais slaptaisiais raktais į versijų valdymo sistemą. `.gitignore` jau neįtraukia `.env`, tačiau prieš išsiųsdami pakeitimus tai patikrinkite. --- ## 2. Saugykla ir duomenų bazė OmniRoute visiems nuolatiniams duomenims naudoja **SQLite** (per `better-sqlite3`). Šie kintamieji valdo duomenų vietą, šifravimą ir gyvavimo ciklą. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------------ | ----------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `DATA_DIR` | `~/.omniroute/` | `src/lib/db/core.ts` | SQLite DB, atsarginių kopijų ir duomenų failų šakninis katalogas. Pakeiskite, jei naudojate Docker tomus arba pasirinktinius kelius. | | `OMNIROUTE_ALLOW_DEFAULT_DATA_DIR` | _(nenustatyta)_ | `src/lib/dataPaths.ts` | Avarinis testavimo / vertinimo DATA_DIR apsaugos išjungimas (#10428). Testai ir Node vertinimo / išvedimo patikros (`-e`/`--eval`/`-p`/`--print`, įskaitant `--eval=`/`--print=` formas), kurioms nenurodytas `DATA_DIR`, nukreipiamos į laikiną vienkartinį katalogą, kad jos negalėtų atverti tikrosios operatoriaus duomenų bazės; nustatykite `1`, jei norite vėl naudoti tikrąjį katalogą. | | `OMNIROUTE_BUILD_SHA` | _(nenustatyta)_ | `src/lib/monitoring/buildSha.ts` | Vykdomo artefakto Git SHA. Įrašomas vykdant `npm run build:release`; gali būti įterptas konteineriuose, pristatomuose be `dist/BUILD_SHA` kontrolinio failo. Pateikiamas kaip `system.buildSha` galiniame taške `/api/monitoring/health`. | | `OMNIROUTE_RELEASE_REF` | `origin/main` | `scripts/build/buildProvenance.ts` | Nuoroda, su kuria artefakto pakavimo kilmės patikros mechanizmas palygina komponavimo SHA (#10427). | | `OMNIROUTE_ALLOW_CANARY_BUILD` | _(nenustatyta)_ | `scripts/build/buildProvenance.ts` | Nustatykite `1`, kad būtų leidžiama supakuoti komponuotę, kurios SHA nėra leidimo šakoje, ir užregistruoti ją kaip sąmoningai sukurtą bandomąją versiją, užuot atmetus per patikrą (#10427). | | `OMNIROUTE_SMOKE_API_KEY` | _(nenustatyta)_ | `scripts/ops/deploy-canary.mjs` | Bandomojo diegimo bazinės patikros API raktas, siunčiamas kaip `Authorization: Bearer` į `/v1/chat/completions`. Jį naudoja tik diegimo scenarijus (#10429), bet niekada nenaudoja serveris. Nesusijęs su pasirenkamos CLI bazinių patikrų sistemos `OMNIROUTE_SMOKE_*` kintamaisiais (`RUN_CLI_SMOKE=1`, `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS`, esančiais `tests/integration/upstream-cli-smoke.int.test.ts`) — žr. [CLI integracijos → Tikras bazinių patikrų vykdymas](../guides/CLI-INTEGRATIONS.md). | | `OMNIROUTE_BUILDING` | _(nenustatyta)_ | `src/lib/buildPhase.ts` | Komponavimo etapo signalas (#10060): `scripts/build/build-next-isolated.mjs` nustato jį į `1`, o reikšmę paveldi kiekvienas paleistas komponavimo vykdytojas, todėl DB sluoksnis, užuot įkėlęs savąjį better-sqlite3 priedą (kuris nutraukia vykdytojo darbą jam baigiantis), grąžina nieko nedarantį pakaitalą. Veikiančiam serveriui niekada nenustatomas. | | `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | Nustatykite `1`, kad neįprastoms kartu pateikiamoms priklausomybių struktūroms būtų praleista pasirinktinė savųjų priklausomybių išankstinio komponavimo patikra. Dėl to trūkstama priklausomybė netampa sukomponuojama; naudokite tik tada, kai savosios priklausomybės pateikiamos atskirai. | | `OMNIROUTE_DATA_DIR` | _(nenustatyta)_ | `open-sse/executors/promptql/threadSticky.ts` | **Atsarginis alternatyvus pavadinimas**, skirtas `DATA_DIR` ir tikrinamas tik tada, kai `DATA_DIR` nenustatytas. Naudojamas PromptQL vykdytojo diske laikomai su gija susietų seansų podėlio vietai nustatyti (`/promptql-thread-sessions.json`); jei nenustatytas nė vienas kintamasis, podėlis laikomas tik atmintyje (paleidus iš naujo neišsaugomas). | | `OMNIROUTE_PLUGINS_DIR` | _(nenustatyta)_ | `src/lib/plugins/scanner.ts` | Katalogas, kurį skaito **vykdymo aplinkos papildinių skaitytuvas**, ir šakninis katalogas, į kurį diegia papildinių tvarkytuvė, pakeičiantis pagal namų katalogą nustatomą numatytąją reikšmę (#11827). Docker/K8s aplinkoje nukreipkite jį į susietą papildinių katalogų medį, užuot perkėlę HOME vien tam, kad pakeistumėte skaitymo kelią (HOME taip pat valdo visą kitą nuo namų katalogo priklausančią elgseną). Nenustatyta = `~/.omniroute/plugins` arba `/tmp/.omniroute/plugins`, kai procesas apskritai nepateikia namų katalogo — šis kintamasis pašalina dėl to atsirasdavusį tylų papildinių neaptikimą. Nustatytas katalogas paleidžiant vieną kartą įrašomas į žurnalą kaip `scanner.dir_resolved` kartu su pasirinkta įvesties reikšme. Tik serverio pusėje: CLI komandų papildiniai ir toliau naudoja savo `OMNIROUTE_PLUGIN_PATH` (9 skyrius). | | `STORAGE_ENCRYPTION_KEY` | _(tuščia = išjungta)_ | `src/lib/db/encryption.ts` | AES raktas, skirtas visai SQLite duomenų bazei šifruoti saugojimo metu. Sugeneruokite naudodami `openssl rand -hex 32`. | | `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | Šifravimo rakto versijos žyma. Atlikdami rakto rotaciją padidinkite versiją, kad būtų galima iššifruoti senas atsargines kopijas. | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | Kai nustatyta `true`, praleidžiamas įprastas / prieš įrašymą atliekamas SQLite failo atsarginių kopijų kūrimas (models.dev kainodaros išsaugojimas / išvalymas, nuostatų įrašymas). Rankinis atsarginių kopijų kūrimas ir jų kūrimas prieš atkūrimą vis tiek vykdomas. Tai **neišjungia** migracijų vykdyklės privalomos ilgalaikės saugos momentinės kopijos ar masinės migracijos apsaugos, taikomos esamai nuolatinei DB. Nerankinės atsarginės kopijos kuriamos ne dažniau kaip kartą per 60 minučių. Valdymo skydelyje **Nuostatos → Saugykla** įprastą automatinį atsarginių kopijų kūrimą galima išjungti atskirai. | | `OMNIROUTE_CRYPT_KEY` | _(nenustatyta)_ | `src/lib/db/encryption.ts` | **Senasis alternatyvus pavadinimas**, skirtas `STORAGE_ENCRYPTION_KEY`. Naudojamas kaip atsarginis variantas, kai pagrindinio kintamojo nėra. | | `OMNIROUTE_API_KEY_BASE64` | _(nenustatyta)_ | `src/lib/db/encryption.ts` | **Senasis alternatyvus pavadinimas** (Base64 koduota forma), naudojamas kaip atsarginis variantas. Prieš naudojant automatiškai dekoduojamas. | | `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(nenustatyta)_ | `src/lib/db/core.ts` | Pakeičia periodinės SQLite būklės patikros intervalą (ms). Kai nenustatyta, numatytosios reikšmės išvedamos iš `NODE_ENV`. | | `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(pašalinta)_ | `src/lib/db/walMaintenance.ts` | **Pašalinta.** Periodinis veikiančios sistemos `wal_checkpoint(TRUNCATE)` gali padaryti bendrinamą wal-index susiejimą negaliojantį ir nutraukti procesą su SIGBUS (#13973), todėl planuoklio nebėra. Kintamasis neveiklus: teigiama reikšmė vieną kartą užregistruoja įspėjimą apie naudojimo nutraukimą, o nustačius `0` arba nepalikus reikšmės pranešimas nerodomas. WAL prižiūrimas naudojant PASSIVE kontrolinius taškus (toliau), o sutrumpinamas išjungimo kontroliniu tašku. | | `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5 min.) | `src/lib/db/walMaintenance.ts` | Pakeičia dažno `wal_checkpoint(PASSIVE)` intervalą (ms). Neišsaugotų WAL kadrų skaičius išlaikomas mažas, kad kontroliniai taškai būtų greiti, o WAL failo dydis tarp išjungimo metu atliekamų sutrumpinimų išliktų ribotas. `0` išjungia. | | `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | Kai PASSIVE ciklas aptinka, kad WAL failas viršija šį dydį, vykdomas `wal_checkpoint(RESTART)`, kad WAL būtų pradėtas iš naujo neperrašant susieto wal-index. Veikiančios sistemos sutrumpinimo režimo kontroliniai taškai pašalinti (žr. eilutę `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS`). | | `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | Nustatykite `1`/`true`/`yes`/`on`, kad procesas būtų užbaigtas, kai kritinis išteklių trūkumas tęsiasi `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` laikotarpį, ir prižiūrinti sistema (systemd `Restart=always`, Docker paleidimo iš naujo politika) galėtų paleisti švarų procesą, užuot neribotą laiką teikus 503 atsakymus. | | `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` | `120000` (2 min.) | `open-sse/utils/resourcePressure.ts` | Kiek laiko turi tęstis kritinis išteklių trūkumas, kad būtų užbaigtas procesas ir suaktyvintas savaiminis paleidimas iš naujo. | | `OMNIROUTE_SQLJS_WASM_PATH` | _(automatinis aptikimas)_ | `src/lib/db/adapters/sqljsAdapter.ts` | Aiškiai nurodytas kelias (absoliutus arba santykinis cwd atžvilgiu) iki `sql-wasm.wasm`, kai naudojamas atsarginis `sql.js` WASM adapteris. Kai reikšmė nenustatyta, automatiškai aptinkama pagal paketų priklausomybes ir galimus išdėstymus. | | `OMNIROUTE_BATCH_RETENTION_DAYS` | `30` | `src/lib/db/cleanup.ts` | Dienų skaičius, kurį automatinio valymo procesas prieš ištrindamas saugo baigtinės būsenos (užbaigtos / nepavykusios / atšauktos / nebegaliojančios) Batch API užduoties kontrolinius taškus, nurodytus įvesties / išvesties / klaidų failus ir eilutę. Įsigalioja tik įjungus `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED`; atitinka pačios OpenAI Batch API išvesties saugojimo laikotarpį. Nedaro įtakos operatoriaus inicijuojamam maršrutui `DELETE /api/v1/batches/delete-completed`, kuris pagal paskirtį visada vykdomas besąlygiškai (be amžiaus filtro). | | `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | Kai nustatyta `true`, automatiniam valymo procesui leidžiama ištrinti baigtinės būsenos Batch API užduotis (ir jų kontrolinius taškus), senesnes nei `OMNIROUTE_BATCH_RETENTION_DAYS`, bei išvalyti įkeltų failų, kurių `expires_at` laikas praėjo, BLOB turinį. Pagal numatytąją nuostatą išjungta: kiekviename esamame diegime šie duomenys išsaugomi lygiai taip pat kaip anksčiau, kol operatorius aiškiai įjungia šią funkciją. Tai taip pat valdymo skydelyje redaguojama funkcijos žyma — žr. `docs/reference/FEATURE_FLAGS.md` → Vykdymo aplinka. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts`, `src/lib/db/healthCheck.ts` | Nustatykite į `1`, kad paleidimo metu DB būklės patikra būtų visiškai praleista. Naudinga trumpalaikėms užduotims ir integraciniams testams. | | `OMNIROUTE_FORCE_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts` | Nustatykite į `1`, kad DB būklės patikros ciklas būtų priverstinai įjungtas, net kai įprastai jis būtų praleistas (pvz., vykdant trumpalaikes užduotis). | | `OMNIROUTE_SKIP_POSTINSTALL` | `0` | `scripts/postinstall.mjs` | Nustatykite į `1`, kad vykdant `npm install` būtų praleistas savosios vykdymo aplinkos paruošimas. Naudinga CI ir besąsajėms diegtims, kuriose sqlite jau sukompiliuota. | | `OMNIROUTE_MIGRATIONS_DIR` | _(aptinkama automatiškai)_ | `src/lib/db/migrationRunner.ts` | Nurodykite kitą katalogą, kurį tikrins migracijų vykdyklė. Naudinga pasirinktiniuose komponavimuose platinant į paketą įtrauktas migracijas. | | `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(nenustatyta)_ | `src/lib/db/migrationRunner/extraDirs.ts` | Papildomi migracijų katalogai, pateikiami kaip `namespace=dir` įrašai, atskirti platformos kelių skirtuku (pvz., `ee=/opt/app/enterprise/db/migrations`). Ten rasti failai registruojami kaip `-`, todėl platinamo produkto nuosavos migracijos niekada nekoliduoja su pagrindinio projekto skaitiniais intervalais. Netinkamai suformatuotas įrašas, netinkama vardų sritis ar trūkstamas katalogas paleidimo metu sukelia klaidą, užuot tyliai praleidus schemą. | | `OMNIROUTE_MAX_PENDING_MIGRATIONS` | `50` | `src/lib/db/migrationRunner.ts` | Saugos slenkstis dideliam laukiančių migracijų kiekiui (#3416). Paleidimas nutraukiamas, jei esamoje DB laukia daugiau migracijų nei nurodyta (taip apsisaugoma nuo išvalytos sekimo lentelės). Padidinkite reikšmę, kad atkurtumėte senesnę atsarginę kopiją; nustatykite į `0`, kad išjungtumėte patikrą. | | `OMNIROUTE_INSTALL_UPGRADE_WORKDIR` | _(`/.install-upgrade`)_ | `scripts/check/check-install-upgrade.mjs` | `check:install-upgrade` leidimo kontrolės darbo katalogas. Jam reikia maždaug 12 GB (du ~3 GB diegimo medžiai ir tar archyvas), todėl jo negalima vykdyti mažoje tmpfs — savarankiškai valdomoje vykdyklėje `/tmp` yra 12 GB RAM pagrįsta tmpfs, kurią kontrolės procesas išnaudojo ir dėl to paketas buvo sutrumpintas. | | `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(numatytoji reikšmė kode)_ | `src/lib/spend/batchWriter.ts` | Paketinio išlaidų / sąnaudų įrašymo modulio ištuštinimo intervalas (ms). Mažesnės reikšmės sumažina įrašų sujungimą, o didesnės — DB konkurenciją. | | `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(numatytoji reikšmė kode)_ | `src/lib/spend/batchWriter.ts` | Didžiausias buferyje laikomų išlaidų įrašų skaičius prieš priverstinį ištuštinimą. Padidinkite didelio QPS diegimuose; sumažinkite, kai ribotas atminties naudojimas yra svarbesnis. | | `OMNIROUTE_PROXY_FETCH_DEBUG` | _(nenustatyta)_ | `open-sse/utils/proxyFetch.ts` | Nustatykite į `"true"`, kad Vercel perdavimo kelyje būtų pateikiami `[ProxyFetch]` derinimo žurnalai. Pagal numatytąją nuostatą išjungta, kad nebūtų atskleista maršruto parinkimo informacija. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `src/lib/proxyLogger.ts` | Nustatykite į `"true"` arba `"1"`, kad į išsamią `[ProxyEgress]` proceso žurnalo eilutę būtų įtraukti kliento / išeinančio ryšio IP adresai ir paskyros prefiksas. Pagal numatytąją nuostatą palikta IŠJUNGTA, kad proceso žurnale nebūtų atskleisti IP adresai ar paskyros prefiksas. | | `OMNIROUTE_DEBUG` | _(nenustatyta)_ | `bin/cli/commands/quota.mjs` | Nustatykite į `1`, kad CLI kvotų komandos į stderr išvestų kiekvienos užklausos trukmės diagnostiką (`[omniroute] GET completed in Nms`). | | `OMNIROUTE_HEALTHCHECK_PATH` | _(automatiškai)_ | `scripts/dev/healthcheck.mjs` | Aiškiai nurodytas kelias, kurį tikrina konteinerio būklės patikra. Jei nenustatyta, patikros procesas jį nustato pagal `OMNIROUTE_BASE_PATH`; nustačius reikšmę vėl pasirenkamas išsamios stebėsenos galinis taškas. | | `OMNIROUTE_DEBUG_COMPLETION` | _(nenustatyta)_ | `bin/cli/commands/completion.mjs` | Nustatykite bet kokią netuščią reikšmę, kad CLI apvalkalo automatinio užbaigimo podėlio keliuose (skaitant / atnaujinant / rašant) būtų pateikiama `[omniroute completion]` diagnostika. Pagal numatytąją nuostatą išjungta — šių podėlių klaidos nutylimos, kad trūkstamas ar sugadintas podėlis niekada nesutrikdytų automatinio užbaigimo tabuliavimo klavišu. | | `BATCH_RETRY_DURATION_MS` | `86400000` (24 val.) | `open-sse/services/batchProcessor.ts` | Ilgiausias atskirų paketo elementų pakartotinių bandymų laikotarpis (ms). Šią trukmę viršiję elementai pažymimi kaip nepavykę. | | `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | Bazinė delsa (ms), taikoma eksponentiniam laukimo trukmės didinimui pakartotinai apdorojant paketų elementus. | | `BATCH_BACKOFF_MAX_MS` | `3600000` (1 val.) | `open-sse/services/batchProcessor.ts` | Didžiausia eksponentinio laukimo trukmė (ms) tarp pakartotinių paketų elementų apdorojimo bandymų. | | `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | Didžiausias vienu metu apdorojamų paketų skaičius. Padidinkite, kad padidintumėte pralaidumą; palikite mažą, kad išvengtumėte masinio spartos apribojimų suveikimo. | > [!IMPORTANT] > Prieš keičiant esamą nuolatinę duomenų bazę, migravimo vykdyklė paskelbia visą, > pagal turinį adresuojamą momentinę kopiją kataloge `DATA_DIR/db_backups/`. Paskelbimui reikalinga failų sistema, > palaikanti tos pačios failų sistemos standžiąsias nuorodas be perrašymo ir patvarų failų sinchronizavimą. POSIX pagrindu veikiančiuose kompiuteriuose taip pat > būtinas katalogų sinchronizavimas; Windows sistemoje Node gali atmesti katalogų deskriptorius, todėl OmniRoute išrašo > paskelbto failo duomenis į diską, o katalogo įrašo sinchronizavimą atlieka pagal galimybes. > Jei prijungtas `DATA_DIR` negali suteikti šių garantijų, paleidimas saugiai nutraukiamas prieš pritaikant > migravimą. Perkelkite `DATA_DIR` į tomą, palaikantį šias primityviąsias operacijas; nenaudokite > `DISABLE_SQLITE_AUTO_BACKUP`, kad apeitumėte migravimo saugos priemones. ### Scenarijai | Scenarijus | Konfigūracija | | ------------------------- | ------------------------------------------------------------------------------------------------------------ | | **Vietinis kūrimas** | Palikite visas numatytąsias reikšmes. DB yra adresu `~/.omniroute/omniroute.db`. | | **Docker** | `DATA_DIR=/data` + prijunkite tomą prie `/data`. | | **Šifravimas saugykloje** | Nustatykite `STORAGE_ENCRYPTION_KEY` + saugokite rakto atsargines kopijas! Praradus jį, prarandami duomenys. | | **CI / testavimas** | `DATA_DIR=/tmp/omniroute-test` — laikinas katalogas, šifravimas nereikalingas. | --- ## 3. Tinklas ir prievadai | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PORT` | `20128` | `src/lib/runtime/ports.ts` | Pagrindinis prievadas, skirtas ir valdymo skydelio naudotojo sąsajai, ir API galiniams taškams (vieno prievado režimas). | | `OMNIROUTE_BASE_PATH` | _(tuščia = šakninis kelias)_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | URL pokelis, naudojamas OmniRoute pateikti už atvirkštinio tarpinio serverio (nustato Next.js `basePath`; autentifikavimo peradresavimai atsižvelgia į `basePath`). Pvz., `/omniroute`. Docker aplinkoje reikšmė įtraukiama vykdant `docker build` (`ARG OMNIROUTE_BASE_PATH`); iš anksto sukurti šakniniai atvaizdai gali vieną kartą pritaikyti kitą vykdymo aplinkos reikšmę paleidžiant konteinerį, prieš paleidžiant Next.js. Nustatykite `NEXT_PUBLIC_BASE_URL` į viešąjį šaltinį, apimantį tą patį pokelį. | | `NEXT_PUBLIC_OMNIROUTE_BASE_PATH` | _(tuščia = šakninis kelias)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Naršyklei matomas `OMNIROUTE_BASE_PATH` atitikmuo, įterpiamas kompiliavimo metu, kad valdymo skydelyje rodomas galinis taškas būtų `https://host/omniroute/v1`, o ne `https://host/v1`. Jei nenustatyta, naudojamas `OMNIROUTE_BASE_PATH`. Pakeitę reikšmę sukompiliuokite iš naujo (Next `basePath` nustatomas kompiliavimo metu). | | `DASHBOARD_ALLOW_EMBED` | _(nenustatyta = negalima įrėminti)_ | `next.config.mjs`, `scripts/build/dashboardEmbed.mjs` | Pasirenkamas HTML puslapių įterpimas naudojant iframe. Kai reikšmė nenustatyta, kiekvienas maršrutas pateikiamas su `frame-ancestors 'none'` ir `X-Frame-Options: DENY`. Nustačius `vscode`, puslapiai (valdymo skydelis, prisijungimo, dokumentacijos ir pradinis puslapiai) pateikiami su `frame-ancestors 'self' vscode-webview:` ir be `X-Frame-Options`, todėl VS Code Simple Browser gali juos atvaizduoti (OmniCopilot režimas `dashboardOpen: "editor"`). API sąsajoje (`/api`, `/v1`, `/v1beta`, `/a2a`, `/healthz`, šakninio lygio alternatyviuose keliuose) bet kuriuo atveju išlaikomos griežtos antraštės. Atpažįstama tik `vscode` — `1`/`true` šios funkcijos neįjungia. Nustatoma kompiliavimo metu: pakeitę reikšmę sukompiliuokite iš naujo (atvaizdams naudokite `docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode`; jos nustatymas iš anksto sukompiliuotame dieginyje neturi poveikio). | | `API_PORT` | _(nenustatyta)_ | `src/lib/runtime/ports.ts` | Kai nustatyta, `/v1/*` tarpinio serverio API pateikiama per šį atskirą prievadą. | | `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | API prievado susiejimo adresas. | | `DASHBOARD_PORT` | _(nenustatyta)_ | `src/lib/runtime/ports.ts` | Kai nustatyta, valdymo skydelio naudotojo sąsaja pateikiama per šį atskirą prievadą. | | `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(išjungta)_ | `src/sse/utils/backpressure.ts` | Apriboja vienu metu vykdomų pokalbių ryšių skaičių; ribą viršijusios užklausos gauna `503` su `Retry-After`. Teigiamas sveikasis skaičius įjungia apsaugą; nenustačius arba nustačius `0`, ji išjungiama. | | `OMNIROUTE_INSTANCE_ID` | _(nenustatyta)_ | `src/shared/resilience/peerRouting.ts` | Stabilus, unikalus šliuzo ID, naudojamas jungiant OmniRoute egzempliorius į grandinę. Įjungia įeinančių lygiaverčių mazgų ciklų patikras. Leidžiami simboliai: raidės, skaitmenys, `.`, `_`, `:` ir `-`; daugiausia 64 simboliai. | | `OMNIROUTE_PEER_URLS` | _(nenustatyta)_ | `src/shared/resilience/peerRouting.ts`, `open-sse/executors/base.ts` | Kableliais atskirti baziniai OmniRoute URL, galintys gauti `X-OmniRoute-Peer-Trace`. Lygiaverčio mazgo metaduomenis gauna tik aiškiai į leidžiamųjų sąrašą įtraukti aukštesnio lygmens URL; visi kiti teikėjai lieka nepakeisti. | | `OMNIROUTE_PEER_MAX_HOPS` | `4` | `src/shared/resilience/peerRouting.ts` | Didžiausias anksčiau aplankytų OmniRoute egzempliorių, priimamų grandininėje užklausoje, skaičius (`1`–`32`). Pasikartojantys egzemplioriai arba išnaudotas limitas grąžina HTTP `508 Loop Detected`. | | `PROD_DASHBOARD_PORT` | `20130` | `docker-compose.prod.yml` | Pagrindinio kompiuterio pusėje publikuojamas Dashboard prievadas, naudojamas Docker gamybinėje veiksenoje. | | `PROD_API_PORT` | `20131` | `docker-compose.prod.yml` | Pagrindinio kompiuterio pusėje publikuojamas API prievadas, naudojamas Docker gamybinėje veiksenoje. | | `OMNIROUTE_PORT` | _(nenustatyta)_ | `src/lib/runtime/ports.ts` | Vykdant Electron ar kitose aplinkose turi pirmenybę prieš `PORT`. | | `LIVE_WS_PORT` | `20129` | `src/server/ws/liveServer.ts` | Realaus laiko WebSocket stebėjimo serverio prievadas. | | `LIVE_WS_HOST` | `127.0.0.1` | `src/server/ws/liveServer.ts` | Tiesioginio WebSocket serverio susiejimo adresas. Norėdami padaryti jį pasiekiamą LAN tinkle, nustatykite `0.0.0.0` (taip pat sukonfigūruokite `LIVE_WS_ALLOWED_ORIGINS`). | | `LIVE_WS_ALLOWED_ORIGINS` | _(nenustatyta)_ | `src/server/ws/liveServer.ts` | Kableliais atskirti papildomi šaltiniai, kuriems leidžiama atverti tiesioginį WebSocket ryšį. Atgalinio ryšio Dashboard šaltiniai pagal numatymą jau leidžiami. | | `LIVE_WS_ALLOWED_HOSTS` | _(nenustatyta)_ | `src/server/ws/liveServerAllowList.ts` | Kableliais atskirti papildomi pagrindinių kompiuterių vardai, leidžiami tiesioginio WebSocket šaltiniams. Kitaip nei `LIVE_WS_ALLOWED_ORIGINS` (visaverčiai šaltinių URL), tikrinama tik pagrindinio kompiuterio dalis — tai naudinga LAN/Tailscale sąrankoms. | | `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(nenustatyta)_ | `src/hooks/useLiveDashboard.ts` | Viešasis tiesioginio Dashboard WebSocket URL (naršyklės pusėje). Nustatykite, kai prieš WS serverį naudojamas atvirkštinis tarpinis serveris arba Cloudflare Tunnel (pvz., `wss://ws.my-ai.com/live-ws`); naršyklė jungsis ten, o ne prie `ws://hostname:20132`. Kelio dalis taip pat naudojama kaip WebSocket protokolo atnaujinimo kelias (numatytoji reikšmė: `/live-ws`). | | `OMNIROUTE_ENABLE_LIVE_WS` | `true` | `src/server/ws/liveServer.ts` ir `scripts/start-ws-server.mjs` | Norėdami išjungti realaus laiko WebSocket serverį, nustatykite `0` arba `false` (pagal numatymą jis įjungtas ir susietas su atgalinio ryšio sąsaja). CI / testavimo aplinkos perjungiklis, išjungiantis atskirą tiesioginio WebSocket pagalbinį scenarijų. | | `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | Perdavimo spartos apribojimas kiekvienai (prieigos rakto, IP) porai, užklausomis per minutę. Saugomas atmintyje, kiekvienam egzemplioriui atskirai. `0` arba neigiama reikšmė išjungia IP dimensijos ribojimą (prieigos raktui taikomas DB apribojimas išlieka). | | `NODE_ENV` | `production` | Next.js branduolys | Valdo žurnalų išsamumą, podėlio naudojimą, klaidų informacijos atskleidimą ir Next.js optimizavimą. | | `OMNIROUTE_USE_TURBOPACK` | `1` (Turbopack — numatytoji kodo reikšmė) | `package.json` / Next.js 16 | Turbopack yra numatytasis `npm run dev` ir `npm run build` paketų kūrimo įrankis (pagal našumo testus, kūrimas 2–3 kartus spartesnis). Nustatykite `0`, kad būtų grįžta prie webpack sistemoje Windows, susidūrus su savųjų susiejimų ar paketų kūrimo įrankio suderinamumo problemomis, **arba įrenginiuose, kuriuose trūksta RAM** — žinoma, kad šios Next.js versijų linijos (16.2.x) Turbopack produkcinės komponuotės, apdorodamos didelius modulių grafus, sunaudoja gerokai daugiau atminties nei webpack (Next 16.3 Turbopack atminties atlaisvinimo pataisa dar nėra stabili); naudojant atsarginį webpack variantą didžiausias atminties naudojimas yra gerokai mažesnis. Žr. #6409. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | _(nenustatyta)_ | `src/lib/db/core.ts` / `src/lib/db/healthCheck.ts` | Nustatykite `1`, kad paleidimo metu būtų praleista SQLite vientisumo patikra. Naudinga norint sparčiau paleisti sistemą su didelėmis duomenų bazėmis. | | `NOTIFY_SOCKET` | _(nenustatyta)_ | systemd (sd_notify protokolas) | Nustato systemd, kai procesas vykdomas paslaugos vienete su sd_notify integracija; OmniRoute ją nuskaito (žr. `OMNIROUTE_DISABLE_SD_NOTIFY`), kad išsiųstų READY/WATCHDOG pranešimus. Naudotojas niekada neturėtų jos nustatyti. | | `OMNIROUTE_DISABLE_SD_NOTIFY` | _(nenustatyta)_ | `scripts/dev/systemd-notify.mjs` | Nustatykite `1`, kad išjungtumėte systemd sd_notify (Type=notify / WatchdogSec=), net kai programa vykdoma systemd vienete. Už systemd ribų pranešimų siuntimo priemonė vis tiek neatlieka jokių veiksmų. | | `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | Foninės prisijungimo duomenų būklės tikrinimo planuoklio intervalas (ms). Mažiausia reikšmė: 10000 (10 s). | | `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | Podėlyje saugomos prisijungimo duomenų būklės TTL (ms). | | `OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK` | `false` | `src/lib/credentialHealth/scheduler.ts` | Nustatykite `1` arba `true`, kad išjungtumėte periodinį foninį ryšių su teikėjais tikrinimą. Paieškos teikėjai (SEARCH_VALIDATOR_CONFIGS faile `src/lib/providers/validation/searchProviders.ts`, pvz., `tavily-search`) visada neįtraukiami į patikrą — jų „tikrinimas“ yra reali apmokestinama aukštesnio lygmens užklausa, todėl jų būklė niekada netikrinama pagal laikmatį (#9970). | | `HOST` | `0.0.0.0` | `scripts/dev/run-next.mjs` | Next.js kūrimo / paleidimo serverio susiejimo adresas. Jei nustatyta, pakeičia numatytąjį `0.0.0.0`. | | `HOSTNAME` | `127.0.0.1` | `scripts/dev/run-next-playwright.mjs` | Susiejimo adresas, kurį Playwright vykdyklė naudoja paleisdama Next.js. Numatytasis adresas hermetiškiems testams yra `127.0.0.1`. **Nenaudokite su `omniroute serve`** — vietoje jo naudokite `OMNIROUTE_SERVER_HOST` (POSIX apvalkalai automatiškai nustato `HOSTNAME` įrenginio pavadinimui; `.env` negali jo pakeisti). | | `OMNIROUTE_SERVER_HOST` | `0.0.0.0` | `bin/cli/commands/serve.mjs` | `omniroute serve` susiejimo adresas. Padeda išvengti konflikto su POSIX apvalkalo kintamuoju `HOSTNAME` (bash/zsh visada nustato jį įrenginio pavadinimui). Jei nenustatyta, naudojamas `0.0.0.0`. (#6194) | ### Prievadų režimai ``` ┌─────────────────────────── Vienas prievadas (numatytasis) ─────────────────┐ │ PORT=20128 │ │ → Valdymo skydelis: http://localhost:20128 │ │ → API: http://localhost:20128/v1/chat/completions │ └─────────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────── Atskiri prievadai ───────────────────────────────┐ │ DASHBOARD_PORT=20128 │ │ API_PORT=20129 │ │ API_HOST=0.0.0.0 │ │ → Valdymo skydelis: http://localhost:20128 │ │ → API: http://0.0.0.0:20129/v1/chat/completions │ │ Paskirtis: API pasiekiama LAN, o skydelis – tik per localhost. │ └─────────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────── Docker gamybinė aplinka ─────────────────────────┐ │ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │ │ → Susieja konteinerio prievadus su pagrindinio kompiuterio prievadais │ │ faile docker-compose.prod.yml. │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 4. Saugumas ir autentifikavimas | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MACHINE_ID_SALT` | `endpoint-proxy-salt` | `src/lib/auth` | Papildoma reikšmė, sujungiama su aparatinės įrangos identifikatoriais įrenginio kontroliniam atspaudui sudaryti. Kad diegimai būtų izoliuoti, kiekviename diegime ją pakeiskite. | | `OMNIROUTE_CLI_SALT` | _(nenustatyta = atsitiktinė kiekvieno diegimo papildoma reikšmė, išsaugoma `/cli-token-salt.json`)_ | `src/lib/machineToken.ts` | HMAC papildoma reikšmė, naudojama vietiniam CLI autentifikavimo prieigos raktui išvesti. Nustačius šią reikšmę, pakeičiami visi įrenginio CLI prieigos raktai, o ji visada turi pirmenybę prieš išsaugotą papildomą reikšmę. Žr. `docs/security/CLI_TOKEN.md`. | | `AUTH_COOKIE_SECURE` | `false` | `src/lib/auth` | Seanso slapukams nustato požymį `Secure`. Naudojant už HTTPS, **privalo būti `true`**. | | `REQUIRE_API_KEY` | `false` | API tarpinė programinė įranga | Kai reikšmė yra `true`, visose `/v1/*` tarpinio serverio užklausose turi būti galiojantis API raktas. **Šis požymis neapriboja `GET /v1/models`**, nes šiai užklausai taikoma prietaisų skydelio prisijungimo nuostata (`requireAuthForModels`) — todėl `/v1/models` grąžintas `401` NEREIŠKIA, kad išvedimas yra apsaugotas. Žr. `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695). | | `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Leidžia prietaisų skydelio naudotojo sąsajoje parodyti visas API raktų reikšmes. Konfigūruojama prietaisų skydelio funkcijų požymių skiltyje; bendrinamuose egzemplioriuose tai kelia saugumo riziką. | | `NO_LOG_API_KEY_IDS` | _(tuščia)_ | `src/lib/compliance/index.ts` | Kableliais atskirti API raktų ID, kuriems netaikomas užklausų registravimas (BDAR atitiktis). | | `DEFAULT_RATE_LIMIT_PER_DAY` | _(nenustatyta = neribota)_ | `src/shared/utils/apiKeyPolicy.ts` | Atsarginis dienos užklausų limitas, taikomas API raktams, kurių stulpelio `rate_limits` reikšmė yra null. Nenustatyta arba tuščia reikšmė: nėra numanomo apribojimo (#2289, #11017). `0` reiškia tą patį (neribota). Teigiamas sveikasis skaičius N įgalina N per dieną, 5N per savaitę ir 20N per mėnesį. Netinkamai suformuotoms netuščioms reikšmėms taikomi ankstesni 1000 per dieną, 5000 per savaitę ir 20000 per mėnesį laikotarpiai. | | `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | Didžiausias leidžiamas užklausos turinio dydis. Šį limitą viršijantys duomenys atmetami. | | `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | Faktiniams užklausų turiniams, kurių dydis siekia arba viršija šią ribą, prieš analizuojant JSON atominiu būdu suteikiama vietinio proceso daug išteklių naudojančio apdorojimo prieigos teisė (BYTE kelias, įskaitant `POST /v1/responses`). Taikomas tas pats [#10437](https://github.com/diegosouzapw/OmniRoute/pull/10437) pakankamos laisvos talpos išimties mechanizmas kaip ir sudėtingos struktūros užklausoms; vis tiek ribojama naudojant `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / [#10110](https://github.com/diegosouzapw/OmniRoute/issues/10110), kad [#7849](https://github.com/diegosouzapw/OmniRoute/issues/7849) problema nepasikartotų. | | `OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES` | `52428800` (50 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Griežtoji pokalbių maršruto riba, taikoma riboto nuskaitymo metu perskaitytiems baitams, įskaitant užklausas, kuriose `Content-Length` nėra, jis netinkamas arba klaidinantis; viršijus ribą grąžinamas `413`. | | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(nenustatyta — užklausų skaičiaus ribos nėra)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-fanout:** ši senesnė užklausų SKAIČIAUS riba dabar taikoma tik tada, kai yra aiškiai nustatyta. Jei ji nenustatyta (numatytoji būsena), didelės apkrovos pokalbių užklausų priėmimą riboja `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` — automatiškai nustatomas BAITŲ biudžetas, apskaičiuotas pagal faktinę proceso atminties ribą **viename procese** (viename V8 kaupe). Dvi persidengiančios maždaug 750 tūkst. prieigos raktų `/v1/responses` užklausos nutraukia maždaug 12 GiB kaupų veikimą (#7849) — tai **atminties biudžeto** įspėjimas, o ne griežta produkto riba, lygi 2. Tvarkingai veikiančiame procese (kai kaupas nesiekia apkrovos mažinimo santykio) GALIMA priimti daugiau lygiagrečių ilgų `/v1/responses` užklausų naudojant `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM`. Dešimtys ilgai veikiančių SSE klientų (40–50) priklauso nuo kaupo ir `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110, o ne nuo „daugiausia 2“. Aklai padidinus šią reikšmę, kad būtų „naudojamas pagrindinis kompiuteris“, vėl atsiranda #7849. Dauginkite **kaupus**, naudodami **N nepriklausomų `DATA_DIR`** (#11024); niekada nenaudokite `replicas>1` su vienu SQLite failu. | | `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(nustatoma automatiškai)_ | `src/shared/middleware/admissionBudget.ts` | **#503-fanout:** automatiškai nustatomo gaunamų duomenų baitų biudžeto pakeitimas (25 % griežtesnės V8 / cgroup atminties ribos, padalytos iš 8 kartų laikinojo išdidėjimo). Išvestinės ir aiškiai nurodytos reikšmės apribojamos iki 8 MiB–2 GiB. Už efektyvųjį biudžetą didesniam turiniui iškart grąžinama `413 body_exceeds_budget`; konkurencija tarp atskirai aptarnaujamų turinių lieka pakartotinai bandytina `503` klaida. 40–50 lygiagrečių ilgai veikiančių SSE klientų priklauso nuo šio biudžeto ir kaupo, o ne nuo griežtos „daugiausia 2“ ribos. Prieš derindami perskaitykite `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity` adresu `/api/monitoring/health`. | | `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | Kaupo apkrovos mažinimo santykis (`heapUsed / heap_size_limit`), taikomas BAITŲ ir STRUKTŪROS požiūriu didelės apkrovos užklausų priėmimui (#10183, #10268, #10437). Lygiagreti didelės apkrovos užklausa, viršijanti `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT`, atmetama su pakartotinai bandytina `503` klaida tik tada, kai kaupas TAIP PAT yra pasiekęs arba viršijęs šį santykį; kai kaupas veikia tvarkingai, užklausa priimama naudojant papildomą pajėgumą. | | `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` (numatytoji reikšmė `1`) | `src/shared/middleware/chatBodyAdmission.ts` | Ribotas papildomas pajėgumas tvarkingo kaupo sparčiajam keliui (#10437), taikomas **ir** STRUKTŪRAI, **ir** BAITAMS (`admitChatRequest`, įskaitant turinius ≥ `OMNIROUTE_CHAT_LARGE_BODY_BYTES`). Be šios ribos kiekviena užimto, bet tvarkingo kaupo užklausa apeidavo priėmimo valdymą be jokios viršutinės ribos. Kai šiuo tvarkingo kaupo keliu aktyvinamas nurodytas lygiagrečių nuomos įrašų skaičius, paskesnės užklausos pereina į TĄ PATĮ riboto laukimo / atmetimo kelią, kuris naudojamas esant realiai kaupo apkrovai. `0` visiškai išjungia apėjimą. | | `OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT` | `200` | `src/shared/middleware/chatBodyAdmission.ts` | Pranešimų skaičius, pagal kurį pokalbio užklausa klasifikuojama kaip didelės apkrovos, net kai jos turinys nesiekia baitų ribos. | | `OMNIROUTE_CHAT_HEAVY_TOOL_COUNT` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Įrankių skaičius, pagal kurį pokalbio užklausa klasifikuojama kaip didelės apkrovos, net kai jos turinys nesiekia baitų ribos. | | `OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS` | `32000` | `src/shared/middleware/chatBodyAdmission.ts` | Konservatyvus prieigos raktų skaičiaus įvertis pagal eilutės dydį, pagal kurį užklausa klasifikuojama kaip didelės apkrovos; tai yra priėmimo sąnaudų aproksimacija, o ne teikėjo atsiskaitymams naudojamas prieigos raktų skaičiavimas. | | `OMNIROUTE_CHAT_HARD_MAX_MESSAGES` | `0` (išjungta) | `src/shared/middleware/chatBodyAdmission.ts` | Pasirinktinė pokalbių istorijos riba. Pagal numatytąją nuostatą išjungta: pranešimų skaičius yra diegimo politika, o ne universali užklausos savybė, todėl čia taikoma riba atmestų pokalbius su galutine `413` klaida dar prieš glaudinimo konvejeriui paverčiant juos aptarnaujamais. Kaupo augimą riboja `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` ir kaupo apkrovos mažinimas. Ribotos atminties diegimuose, kuriems reikia griežtos viršutinės ribos, nustatykite teigiamą reikšmę; ją viršijus grąžinama struktūrinė `413` klaida, nurodanti, kad būtinas glaudinimas. | | `OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES` | `67108864` (64 MB) | `open-sse/handlers/chatCore/nonStreamingResponseBody.ts` | Griežtoji nesrautinio aukštesniojo serverio atsako, visiškai buferizuojamo atmintyje, riba. Ją viršijus aukštesniojo serverio skaitytuvas atšaukiamas, o užklausa greitai nutraukiama, užuot leidus neribotai eilutei augti, kol išnaudojamas kaupas. | | `OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES` | `768` | `open-sse/handlers/chatCore/responseHeaders.ts` | Didžiausias iš pirminio serverio atsakymo antraščių persiunčiamų baitų skaičius. Viršijus limitą, žemesnio prioriteto antraštės (pvz., pasirinktinės `x-codex-*`, `x-oai-request-id`) atmetamos, kad būtų laikomasi įprastų atvirkštinio tarpinio serverio antraščių apribojimų. Nustatykite didesnę reikšmę, kad būtų persiunčiama daugiau pirminio serverio metaduomenų, tačiau atsakymo antraštės bus didesnės. | | `CORS_ORIGIN` | _(nenustatyta)_ | `src/server/cors/origins.ts` | Senasis vieno šaltinio CORS leidžiamųjų reikšmių sąrašas. Naujiems diegimams rekomenduojama naudoti `CORS_ALLOWED_ORIGINS`. CORS skirtas tik skirtingų šaltinių naršyklės API klientams; autentifikuoti valdymo skydelio rašymo veiksmai naudoja tos pačios kilmės užklausas ir su sesija susietą CSRF apsaugą. | | `CORS_ALLOWED_ORIGINS` | _(nenustatyta)_ | `src/server/cors/origins.ts` | Kableliais atskirtas CORS leidžiamųjų reikšmių sąrašas. Pakaitos simbolis nesiunčiamas, nebent aiškiai sukonfigūruota `CORS_ALLOW_ALL=true`. | | `CORS_ALLOW_ALL` | `false` | `src/server/cors/origins.ts` | Tik kūrimui skirta išimtinė priemonė, leidžianti atkartoti bet kurią naršyklės `Origin` reikšmę. Neįjunkite bendrinamuose ar produkciniuose diegimuose. | | `OUTBOUND_SSRF_GUARD_ENABLED` | `true` | `src/shared/network/outboundUrlGuard.ts` | Blokuoti paslaugų teikėjų iškvietimus, nukreiptus į privačius, grįžtamojo ryšio ar vietinio ryšio IP diapazonus. Išjunkite tik izoliuotose testavimo aplinkose. | | `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS` | `false` | `src/shared/network/outboundUrlGuard.ts` | Leisti paslaugų teikėjų URL, nukreipiančius į privačius ar vietinius tinklus (localhost, 192.168.x.x, 10.x.x.x ir t. t.). **BŪTINA savarankiškai talpinamiems paslaugų teikėjams** (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Kai nustatyta `false`, valdymo skydelis atmeta vietinių URL patikrą. | | `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuard.ts` | Leisti pridėti ir tikrinti paslaugų teikėjus vietiniais ar privačiais adresais (127.0.0.1, localhost, LAN, privatūs diapazonai) — taikoma tik paslaugų teikėjo tikrinimo keliui. **Numatytoji reikšmė `true`** (pirmenybė vietiniams); nustatykite `false`, kad būtų taikomas griežtas tik viešų adresų leidimas. Debesijos metaduomenų galiniai taškai (169.254.169.254, metadata.google.internal) lieka blokuojami neatsižvelgiant į šią nuostatą. (#5066) | | `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | Leisti `/v1/audio/*` maršrutams (transkripcijai, kalbos sintezei, vertimams) naudoti su OpenAI suderinamą paslaugų teikėjo mazgą, talpinamą ne localhost. Pagal numatytąją nuostatą išjungta — garso duomenų nukreipimas į nuotolinį pagrindinį kompiuterį pakeičia išeinančio srauto tapatybę, todėl tai turi būti aiškus operatoriaus sprendimas. Grįžtamojo ryšio ir privatūs mazgai (localhost, 127.0.0.1, 172.16-31.x) visada leidžiami ir ši nuostata jiems įtakos neturi. (#3963) | | `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | Leisti `POST /v1/rerank` (ir atminties modulio grįžtamojo ryšio perrikiavimo veiksmui) naudoti su OpenAI suderinamą paslaugų teikėjo mazgą, talpinamą ne localhost — LAN kompiuterį arba Tailscale lygiavertį mazgą, kuriame veikia TEI, Infinity, vLLM ir pan. Pagal numatytąją nuostatą išjungta — nukreipimas į nuotolinį pagrindinį kompiuterį pakeičia išeinančio srauto tapatybę, todėl tai turi būti aiškus operatoriaus sprendimas. Grįžtamojo ryšio mazgai (localhost, 127.0.0.1, 172.16-31.x) visada leidžiami ir ši nuostata jiems įtakos neturi. Nuotoliniai mazgai taip pat turi atitikti paslaugų teikėjo išeinančių URL politiką (`OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` / `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS`); srautas niekada nenukreipiamas į debesijos metaduomenų pagrindinius kompiuterius. | | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Kai OIDC įjungtas, išjungti prisijungimą slaptažodžiu, kad naudotojai galėtų autentifikuotis tik per OIDC bendrąjį prisijungimą. Taip pat priimamas trumpasis pseudonimas `OIDC_DISABLE_PASSWORD_LOGIN`; pirmenybę turi valdymo skydelio funkcijos žymė tuo pačiu raktu. (#10889) | | `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Trumpasis `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` pseudonimas (#10889). | ### Sustiprinimo kontrolinis sąrašas ```bash # Minimalūs produkcinės aplinkos saugumo reikalavimai: AUTH_COOKIE_SECURE=true # Reikalingas HTTPS REQUIRE_API_KEY=true # Autentifikuoti visus tarpinio serverio iškvietimus ALLOW_API_KEY_REVEAL=false # Niekada nerodyti raktų naudotojo sąsajoje CORS_ALLOWED_ORIGINS=https://your.domain.com MAX_BODY_SIZE_BYTES=5242880 # 5 MB riba ``` --- ## 5. Įvesties sanitizavimas ir asmens duomenų apsauga „OmniRoute“ suteikia dviejų sluoksnių apsaugą: užklausos pusės įterpimo atakų aptikimą ir atsakymo pusės asmens duomenų pašalinimą. > **⚠️ Apribojimai:** šios apsaugos priemonės yra _euristiniai aptikimo mechanizmai, veikiantys geriausių pastangų principu_, o ne visavertė užklausų įterpimo užkarda ar asmens duomenų DLP sistema. Jos gali pateikti klaidingai teigiamų rezultatų (pažymėti nepavojingas personažų / RPG užklausas) ir klaidingai neigiamų rezultatų (neaptikti „leetspeak“, tarpais atskirtų ar ne anglų kalbos šablonų). Vien jų nepakanka atitikčiai užtikrinti. Prieš jomis pasikliaudami sureguliuokite režimus ir išbandykite juos su savo srautu. ### Užklausos pusė: užklausų įterpimo apsauga | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | --------------------------------- | ------------------ | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `INPUT_SANITIZER_ENABLED` | `true` | `src/middleware/promptInjectionGuard.ts` | Įjungia gaunamų pranešimų tikrinimą dėl užklausų įterpimo šablonų. | | `INPUT_SANITIZER_MODE` | `warn` | `src/middleware/promptInjectionGuard.ts` | Įterpimo politika: `warn` = tik registruoti žurnale, `block` = atmesti užklausą su 400 kodu. Senasis `redact` **nepašalina** įterpimo teksto; užklausų asmens duomenims perrašyti naudokite `PII_REDACTION_ENABLED`. | | `INJECTION_GUARD_MODE` | _(nenustatyta)_ | `src/middleware/promptInjectionGuard.ts` | Senasis `INPUT_SANITIZER_MODE` pseudonimas — veikimas toks pats. | | `INPUT_SANITIZER_BLOCK_THRESHOLD` | `high` | `src/shared/utils/injectionSeverity.ts` | Mažiausias pavojingumo lygis, kurį atmeta `MODE=block`: `high` (numatytasis), `medium` arba `low`. Vidutinio pavojingumo šablonai skirti tik stebėjimui, nebent slenkstis sumažinamas. | | `INJECTION_GUARD_BLOCK_THRESHOLD` | _(nenustatyta)_ | `src/shared/utils/injectionSeverity.ts` | Senasis `INPUT_SANITIZER_BLOCK_THRESHOLD` pseudonimas — veikimas toks pats. | | `PII_REDACTION_ENABLED` | `false` | `src/lib/guardrails/piiMasker.ts` | Kai nustatyta `true`, gaunamose užklausose paslepia asmens duomenis (nepriklausomai nuo įterpimo režimo). | | `CREDENTIAL_REDACTION_ENABLED` | `false` | `src/lib/guardrails/credentialMasker.ts` | Užklausų ir atsakymų duomenyse paslepia gerai žinomus API raktų / slaptųjų prieigos raktų šablonus. Pasirenkama funkcija; atitinka `PII_REDACTION_ENABLED` veikimą. | ### Atsakymo pusė: asmens duomenų sanitizavimo priemonė | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | -------------------------------- | ------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------- | | `PII_RESPONSE_SANITIZATION` | `false` | `src/lib/piiSanitizer.ts` | Prieš grąžinant LLM atsakymus klientui, tikrina, ar juose nėra nutekintų asmens duomenų. | | `PII_RESPONSE_SANITIZATION_MODE` | `redact` | `src/lib/piiSanitizer.ts` | `redact` = paslėpti asmens duomenis, `warn` = tik registruoti žurnale, `block` = pašalinti visą atsakymą. | ### VS Code prieigos raktu identifikuojamo maršruto konteksto sanitizavimo priemonė | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ----------------------------------- | ------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_VSCODE_SANITIZE_CONTEXT` | `1` | `src/app/api/v1/vscode/contextSanitizer.ts` | Iš `/v1/vscode/[token]/*` užklausų pašalina numanomą aktyviosios rengyklės kontekstą (`editorContext`, `activeEditor`, `currentFile`, `selection`, `openTabs`…) ir paslepia aiškiai pridėtų neskelbtinų failų turinį. Pagal numatytąją nuostatą saugu; norėdami išjungti, nustatykite `0`. | ### Scenarijai | Scenarijus | Konfigūracija | | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Įmonės atitiktis** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=block`, `PII_REDACTION_ENABLED=true`, `PII_RESPONSE_SANITIZATION=true` (įterpimai blokuojami, o užklausų / atsakymų asmens duomenys paslepiami; režimai yra nepriklausomi) | | **Tik stebėjimas** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — registruoja žurnale, bet niekada neblokuoja | | **Asmeninis naudojimas** | Palikite viską išjungta — jokių papildomų sąnaudų | --- ## 6. Įrankių ir maršrutizavimo strategijos | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ----------------------------------------------------------- | ----------------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | Valdo LLM prieigą prie įrankių / funkcijų iškvietimo. `allowlist` = tik sąraše nurodyti įrankiai, `denylist` = visi, išskyrus nurodytus, `disabled` = jokių apribojimų. | | `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | Kelias į naudingosios apkrovos manipuliavimo taisyklių JSON failą (konkrečiam modeliui / protokolui skirti pirminės sistemos pakeitimai). | | `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | Naudingosios apkrovos taisyklių failo automatinio pakartotinio įkėlimo intervalas (ms). Mažiausia reikšmė – `1000`. | | `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | Pasirenkama nuostata: nukreipti Claude Code klientų modelių ID be teikėjo prefikso `claude-*` per Claude Code OAuth paskyrą, užuot reikalavus teikėjo prefikso. Aiškiai nurodyti teikėjų prefiksai vis tiek turi pirmenybę. Taip pat galima konfigūruoti Claude teikėjo puslapyje esančiu valdymo skydelio jungikliu. | | `COMBO_CONCURRENCY_PER_MODEL` | `3` | `open-sse/services/comboConfig.ts` | Vienam modeliui taikoma ciklinių derinių lygiagretumo riba (#9100). Ciklinio derinio semaforas turėjo nekintamą 3 vienalaikių užklausų vienam modeliui ribą, kurios nebuvo galima pakeisti, todėl didesnio lygiagretumo srautas už šios ribos buvo vykdomas nuosekliai. Patikrinama, kad reikšmė būtų `>= 1`, ir apribojama iki `<= 32`. | | `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | Pavojinga pasirenkama nuostata, kuri tiesioginėms vieno modelio užklausoms praleidžia „OmniRoute“ vietinę konteksto lango / didžiausio įvesties žetonų skaičiaus patikrą. Pirminiai teikėjai vis tiek taiko savo faktinius apribojimus; raginimo glaudinimas ir paties modelio išvesties žetonų riba išlieka aktyvūs. Galiojanti pirmumo tvarka: funkcijų žymų DB perrašymas > aplinkos kintamasis > numatytoji reikšmė; paleisti iš naujo nereikia. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS` | _(nenustatyta)_ | `open-sse/services/selfHostedEntry.ts` | Įterptasis YAML `providers:` dokumentas (RIC-738, D4). Kai nustatyta (su `strategy:` bloku arba be jo), `/v1/chat/completions` nukreipiamas į savarankiškai talpinamą bendrą su OpenAI suderinamą įvesties tašką, o ne debesijos apdorojimo grandinę. Kai nenustatyta (numatytoji reikšmė), maršrutas tiesiog perduodamas esamai debesijos apdorojimo grandinei. Žr. `docs/routing/SELF_HOSTED_OPENAI_ENTRY.md`. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE` | _(nenustatyta)_ | `open-sse/services/selfHostedEntry.ts` | Kelias į YAML failą, kuriame saugomas toks pats `providers:` dokumentas kaip `OMNIROUTE_SELF_HOSTED_PROVIDERS`; skirtas diegimams, kuriuose pirmenybė teikiama failui, o ne įterptajam aplinkos kintamajam. Savarankiškai talpinamą įvesties tašką suaktyvina bet kuris iš jų. | | `OMNIROUTE_SELF_HOSTED_API_KEY` | _(nenustatyta — atviras maršrutas)_ | `open-sse/services/selfHostedEntry.ts` | Pasirinktinis bendras API raktas, skirtas bendrajam savarankiškai talpinamam įvesties taškui (D5 karkasas, rezervuotas kiekvieno rakto kvotų sistemai). Kai nustatyta, užklausose turi būti `Authorization: Bearer `. Kai nenustatyta, maršrutas yra atviras ir atitinka esamą savarankiškai talpinamo vietinio teikėjo modelį (diegimas grįžtamojo ryšio / patikimame tinkle). | | `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(nenustatyta)_ | `open-sse/services/routingStrategies.ts` | Įterptasis YAML `strategy:` dokumentas, skirtas deterministiniam maršrutizavimo varikliui (M2/RIC-740, D3): juodasis / baltasis sąrašas, pertraukiklio atvėsimo laikotarpis, prioritetas pagal kainą, delsos vertinimas, atsarginių variantų grandinė. Kiekvienam raktui perrašo įterptąjį `strategy:` bloką, įdėtą į `OMNIROUTE_SELF_HOSTED_PROVIDERS`. Žr. `docs/routing/DETERMINISTIC_ROUTING.md`. | | `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(nenustatyta)_ | `open-sse/services/routingStrategies.ts` | Kelias į YAML failą, kuriame saugomas toks pats `strategy:` dokumentas kaip `OMNIROUTE_SELF_HOSTED_STRATEGY`; skirtas diegimams, kuriuose pirmenybė teikiama failui, o ne įterptajam aplinkos kintamajam. | | `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(nenustatyta)_ | `open-sse/services/conversationTracker.ts` | Nustatykite `1`, kad pokalbių istorija nebebūtų kaupiama. `resolveConversationId()` grąžina nesekamą rezultatą prieš nuskaitydama SQLite ar analizuodama pranešimų istoriją; tai taip pat taikoma kliento pateiktiems seanso ID. Maršruto parinkimo seansų apdorojimas nesikeičia, o esami įrašai nėra ištrinami. Skirta diegimams, kuriuose nenaudojamas ataskaitų skydelio pokalbių rodinys ir norima sustabdyti dialogo replikų lentelės augimą. | --- ## 7. URL ir debesies sinchronizavimas | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------------------- | ----------------------------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `BASE_URL` | `http://localhost:20128` | `src/lib/cloudSync.ts` | Serverio pusės URL, kurį vidinės sinchronizavimo užduotys naudoja kreipdamosi į `/api/sync/cloud`. Palikite jį kaip atgalinio ryšio arba konteinerio URL, net kai programa viešai pasiekiama per tarpinį serverį. | | `CLOUD_URL` | _(tuščia)_ | `src/lib/cloudSync.ts` | Debesies perdavimo galinio taško URL (mokama funkcija). | | `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | Debesies sinchronizavimo HTTP užklausų skirtasis laikas. | | `OMNIROUTE_BUILD_PROFILE` | `full` | Webpack kūrimo konfigūracija | Kūrimo etapo profilis (nustatykite į `minimal`, kad privilegijuoti moduliai būtų fiziškai pašalinti iš paketo). | | `OMNIROUTE_STANDALONE_DIR` | _.build/ autonominė išvestis_ | `scripts/build/colocate-standalone.mjs` | Kūrimo etapo autonominės išvesties katalogo, kurį naudoja po kūrimo vykdomas bendro išdėstymo veiksmas, perrašymas. Tai nėra vykdymo aplinkos nustatymas. | | `OMNIROUTE_CLOUD_SYNC_SECRET` | _(tuščia)_ | `src/lib/cloudSync.ts` | Bendra paslaptis, naudojama debesies sinchronizavimo atsakymų HMAC-SHA256 parašui patikrinti. | | `OMNIROUTE_CLOUD_SYNC_SECRETS` | `false` | `src/lib/cloudSync.ts` | Nustatykite į `true`, kad debesies sinchronizavimo galinis taškas galėtų perrašyti vietinius prisijungimo duomenis. Numatytoji reikšmė yra `false`. | | `OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE` | `false` | `src/lib/cloudSync.ts` | Nustatykite į `true`, kad nepasirašytas debesies sinchronizavimo atsakymas būtų atmestas, kai nesukonfigūruota vietinė paslaptis (#13679). Pateiktas parašas visada tikrinamas ir visada atmetamas, kai `OMNIROUTE_CLOUD_SYNC_SECRET` nenustatytas, neatsižvelgiant į šią žymą. Nuo v3.9 tikrinimas pagal numatytąją nuostatą bus privalomas. | | `OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP` | `false` | `src/app/api/providers/zed/import/route.ts` | Nustatykite į `true`, kad be naudotojo patvirtinimo būtų grįžtama prie v3.8.5 vieno veiksmo „importuoti viską“ veiksenos. | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | OAuth, valdymo skydas, sinchronizavimas | Viešai pasiekiamas URL, skirtas OAuth redirect_uri, valdymo skydo nuorodoms ir sugeneruotiems viešiesiems URL. Nustatykite stabilų viešąjį URL, kai OAuth atgaliniai iškvietimai arba sugeneruotos naršyklės nuorodos turi naudoti kanoninį atvirkštinio tarpinio serverio pagrindinį kompiuterį. | | `NEXT_PUBLIC_CLOUD_URL` | _(tuščia)_ | Kliento pusė | Kliento pusės `CLOUD_URL` kopija. | | `NEXT_PUBLIC_APP_URL` | _(nenustatyta)_ | `src/shared/services/cloudSyncScheduler.ts` | Senasis atsarginis `NEXT_PUBLIC_BASE_URL` variantas. | | `NEXT_PUBLIC_PORT` | _(nenustatyta — naudojamas `PORT`)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Kliento pusės atsarginis prievadas rodomiems URL, kai kilmė nežinoma (SSR / testai); nuskaitomas prieš `PORT`. | | `OMNIROUTE_PUBLIC_BASE_URL` | _(nenustatyta)_ | Viešosios kilmės nustatymo priemonė, vaizdų URL | Aukščiausio prioriteto naršyklei skirta OmniRoute kilmė, naudojama viešiesiems URL generuoti ir ne valdymo skydelio naršyklės kilmei tikrinti. Nustatykite ją, kai OpenWebUI ar kita tarpinė paslauga pasiekia OmniRoute vidiniu URL, tačiau naudotojo naršyklė turi gauti sugeneruotą mediją iš LAN, tunelio ar viešosios kilmės. **Neįtraukite** `/v1`. | | `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(nenustatyta)_ | `open-sse/config/providerPluginManifestUrl.ts` | Absoliutus teikėjo papildinio manifesto URL, pateikiamas pagalbiniams klientams. Kai nenustatyta, OmniRoute išveda `/api/v1/provider-plugin-manifest` iš užklausos kilmės arba HOST/PORT. | | `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | Protokolas, naudojamas išvedant teikėjo papildinio manifesto URL iš HOST/PORT, kai užklausos kilmė nepateikta. Jei naudojamas TLS užbaigiantis viešasis tarpinis serveris ir nėra nustatytas konkretus `OMNIROUTE_PROVIDER_MANIFEST_URL`, nustatykite `https`. | | `OMNIROUTE_TRUST_PROXY` | _(nenustatyta)_ | `src/server/origin/publicOrigin.ts` | Pasirinktinis persiųstos viešosios kilmės antraščių patikimumo režimas. Nenustatyta = priimant saugumo sprendimus nepasitikėti `Forwarded` / `X-Forwarded-*`. `true` / `loopback` pasitiki persiųstu pagrindinio kompiuterio vardu ir protokolu tik iš žetonu pažymėto vietinio tarpinio serverio. `private` / `lan` taip pat pasitiki privataus LAN tarpiniais mazgais. Gamybinėje aplinkoje pirmenybę teikite aiškiai nustatytam `NEXT_PUBLIC_BASE_URL`. | | `KIE_CALLBACK_URL` | _(nenustatyta)_ | `open-sse/utils/kieTask.ts` | Viešasis atgalinio iškvietimo URL asinchroninėms kie.ai užduotims. Aukščiausio prioriteto perrašymas, taikomas prieš `OMNIROUTE_KIE_CALLBACK_URL` ir `OMNIROUTE_PUBLIC_URL`. | | `OMNIROUTE_KIE_CALLBACK_URL` | _(nenustatyta)_ | `open-sse/utils/kieTask.ts` | Alternatyvus `KIE_CALLBACK_URL` pavadinimas. Naudojamas kaip atsarginis variantas, kai pagrindinis kintamasis nenustatytas. | | `OMNIROUTE_PUBLIC_URL` | _(nenustatyta)_ | `open-sse/utils/kieTask.ts` | Viešoji kilmė, naudojama asinchroninių atgalinio iškvietimo URL sudaryti. Žemiausio prioriteto atsarginis variantas kie.ai atgaliniams iškvietimams; taip pat naudojamas kaip bendrasis viešasis URL kitoms tarpinėms paslaugoms. | | `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | CrofAI kvotos tikrinimo galinis taškas, naudojamas naudojimo puslapyje. Pakeiskite tarpinėms paslaugoms / testiniams duomenims. | | `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | Oficialus API raktu autentifikuojamas OpenCode Go naudojimo galinis taškas, naudojamas naudojimo puslapyje. Pakeiskite tarpinėms paslaugoms / testiniams duomenims. | | `OPENCODE_SYNTHESIZE_CLI_HEADERS` | `true` | `open-sse/executors/opencode.ts` | Sugeneruoja OpenCode CLI tapatybės antraštes (User-Agent, x-opencode-client/project, užklausų / seansų UUID) opencode-go/zen išorinėms užklausoms, jei klientas jų neatsiuntė, kad Cloudflare jas priimtų perduodant iš VPS (#6210/#5997). Numatytai įjungta nuo #10571; išjunkite naudodami `false`/`0`/`no`/`off`. | | `OPENCODE_USER_AGENT` | `opencode/1.18.31` | `open-sse/utils/opencodeHeaders.ts` | Numatytasis User-Agent, naudojamas, kai `OPENCODE_SYNTHESIZE_CLI_HEADERS` įjungta ir nenustatytas konkrečiam teikėjui skirtas `_USER_AGENT` perrašymas. Taikoma tik opencode vykdymo priemonėms. Jei išorinė sistema blokuoja užklausą be rakto, sukonfigūruota reikšmė, kurioje nėra `opencode/= 1.17>`, pakeičiama šia numatytąja reikšme, užuot atmetus užklausą. | | `OPENCODE_CLIENT` | `desktop` | `open-sse/executors/opencode.ts` | Susintetintos `x-opencode-client` antraštės reikšmė, kai įjungtas `OPENCODE_SYNTHESIZE_CLI_HEADERS`. | | `OPENCODE_PROJECT` | `global` | `open-sse/executors/opencode.ts` | Susintetintos `x-opencode-project` antraštės reikšmė, kai įjungtas `OPENCODE_SYNTHESIZE_CLI_HEADERS`. | | `OPENCODE_FREE_TIER_REQUEST_CONTRACT` | _(nenustatyta)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Nustatykite `off`, kad nebebūtų koreguojamas OpenCode užklausų be rakto turinys (srautinio perdavimo žyma ir įrankių sąrašas). Antraštės vis tiek taikomos. Reikšmė nuskaitoma kiekvienai užklausai, todėl pakeitimas įsigalioja iš karto. | | `OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS` | _(nenustatyta)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Kableliais atskirti įrankių pavadinimai, kuriuos reikia deklaruoti OpenCode užklausoje be rakto ir be įrankių, kai tam modeliui dar nieko nepastebėta. Jei reikšmė tuščia, naudojamas vienas vietos rezervavimo įrankis, kurio modeliui nurodoma nekviesti. Daugiausia 32 įrašai, `[A-Za-z_][A-Za-z0-9_-]{0,63}`; netinkami įrašai ignoruojami. | | `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | Ollama Cloud nustatymų URL, naudojamas kvotos duomenims nuskaityti. Pakeiskite, jei naudojami tarpiniai serveriai / testavimo duomenys. | | `OLLAMA_USAGE_COOKIE` | _(nenustatyta)_ | `open-sse/services/usage.ts` | Ollama Cloud `__Secure-session` slapukas, naudojamas kvotos duomenims nuskaityti iš nustatymų puslapio. Konfidencialu; kai sukonfigūruotos kelios paskyros, geriau naudoti kiekvienam ryšiui skirtą valdymo skydelio lauką. | | `OLLAMA_CLOUD_USAGE_COOKIE` | _(nenustatyta)_ | `open-sse/services/usage.ts` | Alternatyvus Ollama Cloud `__Secure-session` slapuko aplinkos kintamasis. Konfidencialu; kai sukonfigūruotos kelios paskyros, geriau naudoti kiekvienam ryšiui skirtą valdymo skydelio lauką. | | `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(nenustatyta)_ | `open-sse/services/usage.ts` | Alternatyvus Ollama Cloud `__Secure-session` slapuko aplinkos kintamasis, naudojamas prieš trumpesnius alternatyvius pavadinimus. Konfidencialu; kai sukonfigūruotos kelios paskyros, geriau naudoti kiekvienam ryšiui skirtą valdymo skydelio lauką. | | `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | CodeWhisperer (AWS Kiro) naudojimo apribojimų galinis taškas. Pakeiskite, jei naudojami tarpiniai serveriai / testavimo duomenys. | > [!IMPORTANT] > Diegdami už atvirkštinio tarpinio serverio (nginx, Caddy), nustatykite `NEXT_PUBLIC_BASE_URL` į savo stabilų viešąjį URL (pvz., `https://omniroute.example.com`), kai OAuth atgaliniai iškvietimai arba sugeneruotos viešosios nuorodos turi naudoti šį pagrindinio kompiuterio vardą. To nepadarius, OAuth atgaliniai iškvietimai gali nepavykti, nes `redirect_uri` nesutaps, o sugeneruotos viešosios nuorodos gali nukreipti į vidinę konteinerio kilmę. > > Serverių tarpusavio užduotims palikite `BASE_URL` kaip vidinį grįžtamojo ryšio / konteinerio URL. Vidinėms savarankiškoms užklausoms, perduodančioms prisijungimo duomenis, nenaudokite naršyklės `Origin` ar viešojo pagrindinio kompiuterio vardo. > > Autentifikuotiems rašymo veiksmams valdymo skydelyje statinis viešasis bazinis URL nereikalingas: valdymo skydelis siunčia tos pačios kilmės nesaugiąsias užklausas su su seansu susietu CSRF prieigos raktu. OmniRoute vis tiek centralizuotai tikrina viešąją kilmę ne valdymo skydelio naršyklės integracijoms: pirmiausia pasitikima aiškiai nurodytais viešojo URL aplinkos kintamaisiais; neapdorotos `Forwarded` / `X-Forwarded-*` antraštės ignoruojamos, nebent įjungtas `OMNIROUTE_TRUST_PROXY`, o tiesioginis tarpinio serverio mazgas specialiu prieigos raktu pažymėtas kaip patikimas. Nenaudokite CORS nustatymų tos pačios kilmės valdymo skydelio užklausoms taisyti; CORS skirtas tik skirtingos kilmės naršyklės klientams. --- ## 8. Išeinantis tarpinis serveris Nukreipkite iškvietimus į aukštesnio lygio LLM teikėjus per HTTP arba SOCKS5 tarpinį serverį, kad galėtumėte valdyti išeinantį srautą, geografinį maršruto parinkimą arba maskuoti IP adresą. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------------------- | ------------------ | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | Įjungia SOCKS5 tarpinio serverio agentą iškvietimams į aukštesnio lygio paslaugas. Norėdami jo atsisakyti, nustatykite `false`. | | `NEXT_PUBLIC_ENABLE_SOCKS5_PROXY` | `true` | Kliento pusė | Leidžia kliento pusei žinoti apie SOCKS5 prieinamumą. | | `PROXY_SKIP_RECENTLY_FAILED` | `false` | `src/shared/utils/featureFlags.ts` | Pasirenkama funkcijos žyma (žr. [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); valdymo skydelio DB perrašymas turi pirmenybę). Tarpinių serverių telkiniai ir kiekvienos paskyros rotacija tam tikrą laiką pakartotinai neparinks ką tik sutrikusio nario (atmestas TCP bandymas arba per jį gautas 429); šis laikotarpis po kiekvieno pakartotinio sutrikimo dvigubėja iki nustatytos ribos. Ją įjungia `true` (arba `1`, `yes`). | | `HTTP_PROXY` | _(nenustatyta)_ | Node.js standartas | HTTP tarpinis serveris iškvietimams į aukštesnio lygio paslaugas. | | `HTTPS_PROXY` | _(nenustatyta)_ | Node.js standartas | HTTPS tarpinis serveris iškvietimams į aukštesnio lygio paslaugas. | | `ALL_PROXY` | _(nenustatyta)_ | Node.js standartas | Universalus tarpinis serveris (palaiko `socks5://`). | | `OMNIROUTE_PROXY_ECHO_URL` | _(nenustatyta)_ | `src/lib/proxyEchoTarget.ts` | Nustato vieną echo-IP tikslinį URL, naudojamą tarpinio serverio išeinančio ryšio patikroms. Jei nenustatyta, patikra pirmiausia bando `api64.ipify.org`, tada `api4.ipify.org`, kad tik IPv4 palaikantys tuneliai nebūtų klaidingai laikomi neveikiančiais (#9694). | | `NO_PROXY` | _(nenustatyta)_ | Node.js standartas | Kableliais atskirti pagrindinių kompiuterių vardai arba IP adresai, kuriems tarpinis serveris neturi būti naudojamas. | | `OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS` | `32` | `open-sse/utils/proxyDispatcher.ts` | Didžiausias vienalaikių lizdų skaičius vienai talpykloje laikomai HTTP/SOCKS tarpinio serverio užklausų paskirstyklei. Ilgaamžiams SSE srautams, pvz., Codex `/v1/responses`, reikia daugiau nei vieno ryšio, kai kelios užklausos naudoja tą patį paskyros lygmens tarpinį serverį. Didesnės nei `256` reikšmės apribojamos. | | `SOCKS_HANDSHAKE_TIMEOUT_MS` | `10000` | `open-sse/utils/socksConnectorWithFamily.ts` | SOCKS5 suderinimo (prisijungimo) skirtasis laikas milisekundėmis. Padidinkite jį, kai vienas gyvenamųjų IP šliuzo pagrindinis kompiuteris apkraunamas didele konkurencija (pvz., 100 vienalaikių užklausų) — prisotintame telkinyje tikrasis suderinimas gali trukti ilgiau nei 10 s, nors tarpinis serveris yra pasiekiamas; kitu atveju klaidingai pateikiama `[Proxy Fast-Fail] Proxy unreachable`. Apribojama iki `120000`. | | `PROXY_FAIL_OPEN` | `false` | `src/sse/handlers/chatHelpers.ts` | Kai nustatyta `false` (numatytoji reikšmė), užklausa, kurios priskirto tarpinio serverio nepavyksta nustatyti, yra **atmetama (uždarai įvykus trikčiai)**, užuot grįžus prie tiesioginio ryšio — taip išvengiama tikrojo IP adreso nutekėjimo. Nustatykite `true`, kad atkurtumėte ankstesnę DIRECT atsarginę veikseną. | | `ENABLE_TLS_FINGERPRINT` | `false` | `open-sse/executors` | Suklastoti TLS kontrolinį atspaudą naudojant wreq-js (imituoja Chrome 124). Padeda apeiti JA3/JA4 blokavimą. | | `TLS_FINGERPRINT_PROVIDERS` | _(nenustatyta)_ | `open-sse/utils/proxyFetch.ts` | Kableliais atskirtas leidžiamų teikėjų sąrašas naujam per tarpinį serverį vykdomam TLS maršrutizavimui (`open-sse/utils/proxyFetch.ts`). Kai reikšmė nenustatyta, tiesioginis TLS išlaiko ankstesnę elgseną; tik šie teikėjai maršrutizuojami per Chrome-124 kontrolinio atspaudo tarpinį sluoksnį. | | `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | Leisti Claude Turnstile Playwright naršyklės kontekstui nepaisyti HTTPS sertifikato klaidų. | ### Scenarijai | Scenarijus | Konfigūracija | | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **SOCKS5 per SSH tunelį** | `ALL_PROXY=socks5://127.0.0.1:7890`, `ENABLE_SOCKS5_PROXY=true` | | **Įmonės HTTP tarpinis serveris** | `HTTP_PROXY=http://proxy.corp.com:3128`, `HTTPS_PROXY=http://proxy.corp.com:3128`, `NO_PROXY=localhost,internal.corp.com` | | **Apsauga nuo kontrolinio atspaudo nustatymo** | `ENABLE_TLS_FINGERPRINT=true` — reikalingas `wreq-js` (įtrauktas) | | **Valdomas išeinantis srautas / nėra tiesioginės prieigos** | Palikite `PROXY_FAIL_OPEN=false` (numatytoji reikšmė). Kai tarpinis serveris nepasiekiamas, užklausos griežtai atmetamos, užuot nutekėjusios tiesioginiu ryšiu. | | **Senasis režimas / kūrimas — leisti tiesioginį atsarginį ryšį** | `PROXY_FAIL_OPEN=true`. Atkuriama iki saugumo sustiprinimo buvusi elgsena: nepavykus nustatyti tarpinio serverio, naudojamas tiesioginis ryšys. | > **Pastaba (NVIDIA patikros apėjimas — #3226):** NVIDIA API rakto patikros galinis taškas > užstringa, kai užklausa nukreipiama per visuotinį tarpinį serverį / TLS modifikuotą „fetch“ (undici dispečeris → 504). > `src/lib/providers/validation.ts::directHttpsRequest()` sąmoningai apeina > tarpinio serverio pataisą tik šiam vienam patikros iškvietimui, naudodama `safeOutboundFetch({ bypassProxyPatch: true })`. > Tai dokumentuota, ribotos apimties išimtis — ji **neturi** įtakos pokalbių / naudojimo išeinančiam srautui. > Apėjimo apimtį apriboja `tests/unit/proxy-bypass-scope-guard-3226.test.ts`. --- ## 9. CLI įrankių integracija Valdo, kaip „OmniRoute“ aptinka ir paleidžia CLI pagalbinius procesus („Claude Code“, „Codex“ ir kt.). | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | --------------------------------- | -------------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLI_MODE` | `auto` | `src/shared/services/cliRuntime.ts` | `auto` = ieškoti sistemos PATH; `manual` = naudoti tik aiškiai nurodytus kelius. | | `CLI_EXTRA_PATHS` | _(nenustatyta)_ | `src/shared/services/cliRuntime.ts` | Papildomi PATH įrašai, skirti CLI vykdomiesiems failams aptikti (atskirti dvitaškiais). | | `CLI_CONFIG_HOME` | _(nenustatyta)_ | `src/shared/services/cliRuntime.ts` | Pakeičia namų katalogą, iš kurio skaitomos CLI konfigūracijos (`~/.claude`, `~/.codex`). Kelias turi būti absoliutus ir būti proceso namų kataloge — **arba**, konteineryje, būti prijungtas naudojant susiejimą (taip veikia `/host-home`). Visais kitais atvejais naudojamas namų katalogas. | | `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | Leidžia OmniRoute rašyti CLI konfigūracijos failus (atnaujinti prieigos raktus, įrašyti seanso duomenis). Nustačius `false`, kiekvienas bandymas rašyti CLI konfigūraciją nepavyks ir bus pateikta aiški klaida „rašymas išjungtas“. | | `CLI_CLAUDE_BIN` | `claude` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Claude CLI vykdomąjį failą. | | `CLI_CODEX_BIN` | `codex` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Codex CLI vykdomąjį failą. | | `CLI_DROID_BIN` | `droid` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Droid CLI vykdomąjį failą. | | `CLI_OPENCLAW_BIN` | `openclaw` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į OpenClaw CLI vykdomąjį failą. | | `CLI_CURSOR_BIN` | `agent`, tada `cursor` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Cursor agento vykdomąjį failą. Jei jis nenurodytas, pirmiausia bandoma aptikti `agent`, o nepavykus naudojamas `cursor`. | | `CLI_CLINE_BIN` | `cline` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Cline CLI vykdomąjį failą. | | `CLI_5DIVE_BIN` | `5dive` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į 5dive CLI vykdomąjį failą. | | `CLI_5DIVE_STATE_DIR` | `/var/lib/5dive` | `src/shared/services/cliRuntime.ts` | 5dive sistemos būsenos katalogas (root priklausantys autentifikavimo profiliai); atitinka paties 5dive numatytąją STATE_DIR reikšmę. | | `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Continue CLI vykdomąjį failą. | | `CLI_QODER_BIN` | `qodercli` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Qoder CLI vykdomąjį failą. | | `CLI_QWEN_BIN` | `qwen` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Qwen Code CLI vykdomąjį failą. | | `CLI_AIDER_BIN` | `aider` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Aider CLI vykdomąjį failą. | | `CLI_GOOSE_BIN` | `goose` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Goose CLI vykdomąjį failą. | | `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Google Gemini CLI vykdomąjį failą — naudojamas tik aptikimui ir būklės patikroms serverio pusėje; `omniroute run gemini` aptinka `gemini` vykdomąjį failą sistemos PATH. | | `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į Kilo Code CLI vykdomąjį failą. | | `CLI_OPENCODE_BIN` | `opencode` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias į OpenCode CLI vykdomąjį failą. | | `CLI_HERMES_BIN` | `hermes` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Hermes vykdomojo failo. Bendrinamas abiejų katalogo įrašų (`hermes` ir `hermes-agent`). | | `CLI_FORGE_BIN` | `forge` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki ForgeCode CLI vykdomojo failo. | | `CLI_JCODE_BIN` | `jcode` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki jcode CLI vykdomojo failo. | | `CLI_DEEPSEEK_TUI_BIN` | `deepseek-tui` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki DeepSeek TUI vykdomojo failo. | | `CLI_CODEWHALE_BIN` | `codewhale` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki CodeWhale CLI vykdomojo failo. | | `CLI_SMELT_BIN` | `smelt` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Smelt CLI vykdomojo failo. | | `CLI_PI_BIN` | `pi` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Pi (pi-coding-agent) vykdomojo failo. | | `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Crush CLI vykdomojo failo. | | `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Oh My Pi (`omp`) agento vykdomojo failo. | | `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Letta CLI vykdomojo failo. | | `CLI_PRIME_AGENT_BIN` | `prime-agent` | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Prime Agent (Prime Intellect) vykdomojo failo. | | `CLI_WINDSURF_BIN` | _(nėra)_ | `src/shared/services/cliRuntime.ts` | Pasirinktinis kelias iki Windsurf vykdomojo failo. Windsurf pateikiamas **be numatytosios komandos** — vykdomojo failo aptikimas lieka išjungtas, kol ši reikšmė nenustatyta. | | `CLI_DEVIN_BIN` | `devin` | `open-sse/executors/devin-cli.ts` | Pasirinktinis kelias iki Devin CLI vykdomojo failo (v3.8.0). Naudojamas Windsurf/Devin vykdyklėje. | | `DEVIN_DESKTOP_VERSION` | `3.6.27` | `open-sse/executors/devin-desktop.ts` | Devin Desktop `ide_version`. Perrašomos reikšmės turi būti `x.y.z` formato; netinkamų reikšmių atveju naudojama patikrinta numatytoji reikšmė. | | `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | Kartu pateikiama Codeium/language-server `extension_version`, kuri skiriasi nuo Desktop `ide_version`. Perrašomos reikšmės turi būti `x.y.z` formato; netinkamų reikšmių atveju naudojama kartu pateikiama numatytoji reikšmė. | | `CLI_DEVIN_AGENTIC_BIN` | `devin` | `open-sse/executors/devin-cli-agentic.ts` | Tik agentinei sąsajai skirtas Devin CLI perrašymas. Vykdyklė priima tik vietinį ACP stdio pirminį srautą. | | `DEVIN_AGENTIC_HOME` | _(privaloma)_ | `open-sse/executors/devin-cli-agentic.ts` | Absoliutus izoliuotas agentinio Devin poprocesio namų katalogas; priimami sąsajos keliai yra `/home/bridge` ir užduočiai vietiniai `.sandbox` keliai (Windows sistemoje – `C:\...\.sandbox\...`). | | `DEVIN_AGENTIC_ACP_TIMEOUT_MS` | `120000` | `open-sse/executors/devin-cli-agentic.ts` | Didžiausia vieno Devin ACP ciklo trukmė, po kurios sąsaja nutraukia antrinį procesą ir grąžina aiškų skirtojo laiko viršijimo pranešimą. | | `DEVIN_BRIDGE_MODEL` | `devin-cli-agentic/swe-1-7` | `docker/devin-bridge/compose.yml` | Pagrindinis Claude Code modelio alternatyvusis pavadinimas izoliuotai sąsajai. Veikiantis testavimo mechanizmas pavyzdį pakeičia modeliu, kurį grąžina dabartinė Devin paskyra. | | `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izoliuotos sąsajos alternatyvusis pavadinimas, naudojamas, kai Claude Code prašo numatytojo Sonnet modelio. | | `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izoliuotos sąsajos alternatyvusis pavadinimas, naudojamas, kai Claude Code prašo numatytojo Opus modelio. | | `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izoliuotos sąsajos alternatyvusis pavadinimas, naudojamas, kai Claude Code prašo numatytojo Haiku modelio. | | `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Izoliuotos sąsajos alternatyvusis pavadinimas, naudojamas Claude Code pagalbiniams agentams. | | `DEVIN_SEAT_API_URL` | `https://server.codeium.com` | `open-sse/services/usage/devinCli.ts` | Pasirinktinis Codeium vietų valdymo API, kurį Devin CLI naudoja kvotai (`GetUserStatus`), perrašymas. | | `AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Absoliutaus kelio iki Augment (Auggie) CLI dvejetainio failo, kurį naudoja vietinis `auggie` teikėjas, perrašymas. Jei nenurodyta, naudojamas `CLI_AUGGIE_BIN`, tada ieškoma PATH. | | `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Alternatyvus Augment (Auggie) CLI dvejetainio failo kelio perrašymas (tikrinamas po `AUGGIE_BIN`). | | `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | Dvejetainis failas, naudojamas vietinio `zcode` teikėjo stdio klientui. Jei nenurodyta, naudojamas PATH esantis `zcode`. | | `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | Papildomų argumentų, perduodamų `zcode` dvejetainiam failui, kai jis paleidžiamas naudojant `cliTools`, JSON masyvas (≤16 eilučių). | | `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | ZCode programų serverio antrinio proceso darbinis katalogas. | | `ZCODE_PROVIDER_ID` | `builtin:zai-coding-plan` | `open-sse/executors/zcode.ts` | Teikėjo ID, siunčiamo programų serveriui, perrašymas. | | `ZCODE_SERVER_RUNTIME_ROOT` | `~/.zcode/server` | `open-sse/executors/zcode.ts` | ZCode programų serverio vykdymo aplinkos šakninis katalogas (jame yra kartu pateikiami `node` ir `zcode-server.cjs`). | | `ZCODE_SERVER_NODE` | `/node` | `open-sse/executors/zcode.ts` | Node vykdomasis failas, naudojamas ZCode programų serveriui paleisti. | | `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | Programų serverio pradinis scenarijus, naudojamas ZCode serveriui paleisti. | | `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | Paleidimo skirtasis laikas (ms), kuriam pasibaigus ZCode programų serverio paleidimas laikomas nepavykusiu. | | `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | Kiekvienos ZCode programų serverio RPC užklausos skirtasis laikas (ms). | | `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | Ilgiausia vieno ZCode ciklo trukmė (ms), kuriai pasibaigus prižiūrėtojas jį nutraukia. | | `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | ZCode ciklo užbaigimo tikrinimo intervalas (ms). | | `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | Hermes Agent namų katalogas, kuriame OmniRoute skaito ir įrašo Hermes CLI konfigūraciją. Atitinka aplinkos kintamąjį, kurį Hermes PowerShell diegimo programa nustato Windows sistemoje (`%LOCALAPPDATA%\hermes`). | ### Automatinis CLI profilių sinchronizavimas Šios funkcijų žymos yra pasirenkamos ir pagal numatytąsias nuostatas išjungtos. Jas taip pat galima įjungti arba išjungti CLI Code valdymo skydelyje. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------- | ------------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Sinchronizavus teikėjo modelius, automatiškai perrašo `~/.codex/*.config.toml` profilių failus pagal esamą katalogą. Reikalingas `CLI_ALLOW_CONFIG_WRITES`; niekada nekeičia aktyviosios arba numatytosios Codex konfigūracijos, autentifikavimo, Codex-lb nuostatų ar teikėjo pasirinkimo. | | `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Sinchronizavus teikėjo modelius, automatiškai perrašo `~/.claude/profiles//settings.json` Claude Code profilių failus pagal esamą katalogą. Reikalingas `CLI_ALLOW_CONFIG_WRITES`; niekada nekeičia aktyviosios arba numatytosios Claude konfigūracijos, autentifikavimo ar teikėjo pasirinkimo. | ### Docker pavyzdys ```bash # Prijunkite pagrindinio kompiuterio dvejetainius failus prie konteinerio ir nurodykite OmniRoute, kur jie yra: 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` įsigalioja tik tada, kai kelias iš tiesų prijungtas iš pagrindinio kompiuterio naudojant bind tipo prijungimą — naudokite jį kartu su tokiais prijungimais kaip `~/.codex:/host-home/.codex:rw` (žr. `host` profilį faile `docker-compose.yml`). Kelias, kuris nėra nei konteinerio naudotojo namų kataloge, nei prijungtas naudojant bind tipo prijungimą, ignoruojamas, nes į jį įrašyti duomenys būtų prarasti iš naujo sukūrus konteinerį. Atvaizdis vykdomas kaip `USER node`, todėl neprijungtas `/root` **nėra** tinkamas perrašymas. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------------------- | ------------------ | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CONTAINER` | _(automatinė)_ | `src/shared/utils/containerEnv.ts` | Priverstinai įjungti (`1`/`true`) arba išjungti (`0`/`false`) konteinerio aptikimą. Reikalinga tik vykdymo aplinkose, kurių automatinis aptikimas neatpažįsta. | | `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | Vis tiek leisti CLI įrankio konfigūraciją įrašyti į neprijungtą konteinerio kelią. CLI atitikmuo yra `--allow-container-write`. | ### CLI vykdomojo failo (`omniroute`) pagalbiniai kintamieji Šie kintamieji reguliuoja paties `omniroute` CLI vykdomojo failo veikimą (ne anksčiau aprašytą pagalbinio konteinerio aptikimą). | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------- | ------------------ | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_LANG` | _(sistemos)_ | `bin/cli/i18n.mjs` | Priverstinai nustatyti CLI išvesties kalbą. BCP-47 lokalė (pvz., `en`, `pt-BR`). Perrašo sistemos lokalės aplinkos kintamuosius (LC_ALL, LC_MESSAGES). | | `OMNIROUTE_SHOW_LOG` | _(nenustatyta)_ | `bin/cli/runtime/processSupervisor.mjs` | Nustatykite į `1`, kad prižiūrimu režimu serverio stdout/stderr būtų perduodami į terminalą. Atitinka `omniroute serve` parametrą `--log`. | | `OMNIROUTE_CLI_TOKEN` | _(nenustatyta)_ | `bin/cli/api.mjs` | Įrenginio autentifikavimo prieigos raktas, įterpiamas kaip `x-omniroute-cli-token` antraštė. Automatiškai sugeneruojamas atliekant 8.12 užduotį. | | `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Kiekvieno CLI → serverio užklausos bandymo HTTP skirtasis laikas (ms). | | `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Ilgiausias laikas (ms), kurį CLI laukia serverio būklės patikros galinio taško prieš išvesdamas įspėjimą apie pasibaigusį skirtąjį laiką. Naudinga esant lėtam šaltajam paleidimui (pvz., Windows). Taip pat galima nustatyti naudojant `--ready-timeout`. | | `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Nustatykite į `1`, kad vykdant CLI komandas į stderr būtų išvedama pakartotinių bandymų / delsos diagnostika. | | `OMNIROUTE_PLUGIN_PATH` | _(nenustatyta)_ | `bin/cli/plugins.mjs` | Pasirinktinis CLI papildinių aptikimo katalogas (`omniroute-cmd-*` paketai). Jei nenustatyta, numatytoji reikšmė yra `~/.omniroute/plugins/`. Skirta tik CLI — ji niekada nepasiekia serverio pusės papildinių skaitytuvo, kurio vietą nurodo `OMNIROUTE_PLUGINS_DIR` (2 skyrius). | --- ## 10. Vidinio agento ir MCP integracijos | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ----------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_BASE_URL` | automatinis aptikimas | `open-sse/mcp-server/server.ts` | Aiškiai nurodytas URL, kuriuo MCP/A2A įrankiai pasiekia OmniRoute. Pakeičia automatinį localhost aptikimą. | | `OMNIROUTE_API_KEY` | _(nenustatyta)_ | MCP/A2A moduliai | API raktas, skirtas vidinio MCP įrankio ir A2A įgūdžių iškvietimams. | | `OMNIROUTE_API_KEY_ID` | _(nenustatyta)_ | `open-sse/mcp-server/audit.ts` | Rakto ID, skirtas MCP audito žurnalo įrašams priskirti. | | `ROUTER_API_KEY` | _(nenustatyta)_ | Senstelėjusi sistema | Senstelėjęs `OMNIROUTE_API_KEY` pseudonimas. | | `OMNIROUTE_A2A_HISTORY_RETENTION_DAYS` | `30` | `src/lib/a2a/taskManager.ts` | Dienų skaičius, kiek A2A užduočių istorija saugoma vietinėje duomenų bazėje, kol kasdienis valymas pašalina eilutę. Jei reikšmė nenustatyta, nėra skaitinė arba yra `<= 0`, naudojama `30`. | | `OMNIROUTE_A2A_MEMORY_HITS` | `1` | `src/lib/a2a/taskExecution.ts` | A2A atminties atitikčių stebimumo funkcijos avarinis išjungiklis. Nustatykite `0`, kad užduočiai būtų visiškai praleista paieška atmintyje; bet kuri kita reikšmė (įskaitant nenustatytą) palieka ją įjungtą. | | `OMNIROUTE_ISSUE_AGENT_ENABLED` | `false` | `src/app/api/issue-agent/runs/route.ts` | Įjungia autonominį / vietinį Issue Agent įrašyto pirminio įvertinimo galinį tašką. Palikite išjungtą, nebent aiškiai vykdomos vietinės įrašyto pirminio įvertinimo darbo eigos. | | `OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS` | _(nenustatyta)_ | `src/lib/issueAgent/execution.ts` | Vieno Issue Agent įrašyto pirminio įvertinimo vykdymo skirtasis laikas (ms). Apribojamas vidine didžiausia reikšme; jei nenustatyta arba netinkama, naudojama įtaisytoji numatytoji reikšmė. | | `OMNIROUTE_CONTEXT` | _(aktyvus kontekstas)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | CLI nuotolinio režimo kontekstas / profilis, skirtas `omniroute` komandoms; pakeičia aktyvų kontekstą vietinėje kontekstų saugykloje. Lygiavertis `--context `. | | `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | Išjungia pasirinktinę CLI konteksto prisijungimo duomenų `keytar` OS raktinės posistemę. Įjungus prisijungimo duomenys lieka `config.json` faile, kurio režimas yra `0600`, o CLI pateikia vienkartinį įspėjimą apie atsarginį režimą; skirta sąmoningam naudojimui begalvėse sistemose / konteineriuose. | | `OMNIROUTE_MCP_ENFORCE_SCOPES` | `false` | `open-sse/mcp-server/server.ts` | MCP įrankių iškvietimams taiko apimtimis pagrįstą prieigos kontrolę. | | `OMNIROUTE_MCP_SCOPES` | _(visos)_ | `open-sse/mcp-server/server.ts` | Kableliais atskirtos apimtys: `admin`, `combos`, `health`, `models`, `routing`, `budget`, `metrics`, `pricing`, `memory`, `skills`. | | `OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS` | `false` | `open-sse/mcp-server/descriptionCompressor.ts` | Suglaudina MCP įrankių aprašus prieš serializuojant manifestą. Įjungiančios reikšmės: `1`, `true`, `on`. | | `OMNIROUTE_MCP_DESCRIPTION_COMPRESSION` | `rtk` | `open-sse/mcp-server/descriptionCompressor.ts` | Glaudinimo algoritmas / profilis. Išjungiančios reikšmės: `0`, `false`, `off`. | | `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | Nutraukimo laiko limitas (ms), skirtas MCP serverio vidinėms valdymo užklausoms (būsenos, atsparumo, derinių, kvotos, naudojimo). | | `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | Nutraukimo laukimo limitas (ms), taikomas MCP užklausoms, kurios laukia teikėjo (`route_request`, `web_search`, `web_fetch`). | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | `src/lib/localCorpus/configured.ts` | Didžiausias atmintyje laikomų vietinio tekstyno indekso egzempliorių skaičius (LRU, po vieną kiekvienam indeksuotam šakniniam katalogui). Apribojama iki ne mažesnės nei `1` reikšmės. | | `MODEL_SYNC_INTERVAL_HOURS` | `24` | `src/shared/services/modelSyncScheduler.ts` | Modelių katalogo sinchronizavimo intervalas valandomis. | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | `src/lib/usage/providerLimits.ts` | Teikėjo spartos apribojimų ir kvotos tikrinimo intervalas. | | `PROVIDER_LIMITS_SYNC_SPACING_MS` | `1500` | `src/lib/usage/providerLimits.ts` | Tarpas (ms) tarp nuoseklių OAuth kvotos gavimų vykdant masinį sinchronizavimą; OAuth ryšiai apdorojami po vieną, kad pirminė sistema nebūtų užtvindyta užklausomis. `0` šį ribojimą išjungia (vykdoma lygiagrečiai). | | `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | Minimalus intervalas (ms) tarp nuoseklių pirminės sistemos kvotos gavimų kiekvienos užklausos išankstinės patikros / stebėjimo kelyje; išskirsto lygiagrečius tinklo kreipinius, kad daug paskyrų iš vieno IP neužtvindytų pirminės sistemos. Integruota į Codex (`/wham/usage`), DeepSeek, Bailian (abiejose gavimo vietose), OpenCode ir Crof kvotos gavimo priemones (#6009, #6911). Bendrasis `usage.ts::getUsageForProvider` nukreipimo kelias (github/glm/minimax/nanogpt/xai/ir kt.) dar neapimtas — stebimas atskirai. Podėlio atitiktys nepaveikiamos. `0` išjungia; ribojama iki `0..5000`. | | `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | Delsa (ms) prieš atnaujinant teikėjo apribojimus po faktinio naudojimo įvykio, kad pirminės sistemos kvotos API spėtų užregistruoti naudojimą. | | `OMNIROUTE_LOGIN_BROWSER_PATH` | automatinis aptikimas | `open-sse/services/adobeFireflyBrowserLogin.ts` | Absoliutusis kelias iki sistemos Chrome arba Edge vykdomojo failo, naudojamo interaktyviai prisijungti prie Adobe Firefly ir foniniam atnaujinimui. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | įjungta | `open-sse/services/adobeFireflySession.ts` | Palaiko IMS ir naršyklės rizikos būsenos aktualumą naudodama paskyrai priskirtas Chrome CDP sesijas. Norėdami išjungti naršyklės atnaujinimą, nustatykite `0`. | | `ADOBE_FIREFLY_SESSION_DISK` | įjungta | `open-sse/services/adobeFireflySession.ts` | Išsaugo atkurtas Adobe sesijas kataloge `DATA_DIR`, kad jos išliktų po proceso paleidimo iš naujo. Nustatykite `0`, kad sesijos būtų laikomos tik atmintyje. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Minimalus intervalas milisekundėmis tarp Adobe Firefly generavimo pateikimų; `0` išjungia intervalą. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Papildomas ramybės laikotarpis milisekundėmis po kas trečio sėkmingo pateikimo Adobe sistemai. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyClient.ts` | Bazinis kartojimo delsos laikas milisekundėmis po trumpalaikių Adobe 408 atsakymų; derinamas su pateikimų intervalais per ne daugiau kaip penkis bandymus. | | `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | Išjungia visas fonines paslaugas (sinchronizavimą, kainodarą, modelių atnaujinimą). Naudinga CI / testavimui. | | `OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS` | _(nenustatyta)_ | `src/lib/config/runtimeSettings.ts` | Priverstinai įjungia fonines užduotis, kai aptinkamas automatizuotas testavimas. Nustatykite `1`, kad nepaisytumėte testavimo euristikos. | | `OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS` | `600000` | `src/lib/jobs/budgetResetJob.ts` | Biudžeto nustatymo iš naujo tikrinimo periodiškumas (ms). Mažiausia reikšmė – `10000`. | | `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | Aktyvaus ryšio atvėsimo atkūrimo periodiškumas (ms): pakartotinai patvirtinami ryšiai, kurių laikinasis `rate_limited_until` jau praėjo, nevykdant to pagrindiniame užklausų apdorojimo kelyje. Mažiausia reikšmė – `5000`. | | `OMNIROUTE_DISABLE_CONNECTION_RECOVERY` | `false` | `src/lib/quota/connectionRecovery.ts` | Išjungti aktyvaus ryšio atvėsimo atkūrimo planuoklę (atidėtasis atkūrimas funkcijoje `getProviderCredentials` vis tiek taikomas). | | `OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS` | `1800000` | `src/lib/jobs/reasoningCacheCleanupJob.ts` | Samprotavimo podėlio valymo periodiškumas (ms). Mažiausia reikšmė – `60000`. | | `OMNIROUTE_REASONING_MIN_BUDGET` | _nenustatyta_ (išjungta) | `open-sse/services/reasoningTokenBuffer.ts` | Pasirenkama minimali mąstančių modelių išvesties biudžeto riba: iškvietėjo `max_tokens`, patenkantis į intervalą `[256, minimali riba)`, padidinamas iki minimalios ribos (neviršijant modelio išvesties ribos). Nenustatyta = kliento biudžetai niekada nedidinami (#9507). | | `OMNIROUTE_LOG_EXPORT_CRON` | `0 * * * *` | `src/lib/jobs/logExportJob.ts` | Iškvietimų žurnalo eksportavimo užduoties, kuri apdoroja kiekvieną įjungtą žurnalo eksportavimo paskirties vietą, cron išraiška (UTC). | | `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | Konfigūracijos karštojo įkėlimo iš naujo apklausos intervalas (ms). Mažesnė nei `1000` reikšmė atmetama. | | `OMNIROUTE_DISABLE_REDIS_AUTH_CACHE` | _(įjungta)_ | `src/lib/db/apiKeys.ts` | Nustatykite `1`, kad būtų apeitas Redis pagrįstas API rakto autentifikavimo podėlis (priverstinai skaitoma iš DB). | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | `0` | `open-sse/services/compression/engines/rtk/filterLoader.ts` | Pasitikėti naudotojų valdomomis RTK projekto filtravimo taisyklėmis neatliekant griežtų parašo patikrų. | | `OMNIROUTE_LITE_MAX_TOOL_LENGTH` | `2000` | `open-sse/services/compression/lite.ts` | Lite aktyvaus įrankio rezultato trumpinimo simbolių riba, kai `lite.maxToolLength` nenustatyta. Diapazonas 256–1000000. Valdymo skydelio nuostata turi pirmenybę prieš šį aplinkos kintamąjį. | | `OMNI_COMPRESSION_WORKERS` | `2` | `open-sse/services/compression/compressionWorkerPool.ts` | Didžiausias vienu metu veikiančių sinchroninių RTK/Caveman vykdyklių skaičius; perteklinės užduotys laukia FIFO tvarka. | | `OMNI_COMPRESSION_WORKER_TIMEOUT_MS` | `120000` | `open-sse/services/compression/compressionWorkerPool.ts` | Kiekvienos užduoties skirtasis laikas milisekundėmis. Skirtąjį laiką viršiję vykdykliai nutraukiami, o užklausa paliekama nepakeista pagal atvirojo gedimo principą. | | `OMNI_COMPRESSION_WORKER_IDLE_MS` | `60000` | `open-sse/services/compression/compressionWorkerPool.ts` | Neveiklos trukmė milisekundėmis, po kurios nenaudojamas glaudinimo vykdyklis nutraukiamas. | | `COMPRESSION_PIPELINE_BREAKER_ENABLED` | `false` | `open-sse/services/compression/pipelineEngineBreaker.ts` | T02 sudėtinio konvejerio kiekvieno variklio grandinės pertraukiklio pagrindinis jungiklis. **Pasirenkama funkcija (pagal numatymą išjungta)** — įjungus variklis, kuris pakartotinai sukelia klaidas skirtingose užklausose, atvėsimo laikotarpiu praleidžiamas (atvirasis gedimas); išjungus išlaikoma baitų lygmeniu identiška ankstesnė elgsena. | | `COMPRESSION_PIPELINE_BREAKER_THRESHOLD` | `3` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Iš eilės skirtingose užklausose įvykstančių klaidų skaičius, po kurio atidaromas variklio grandinės pertraukiklis. | | `COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS` | `30000` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Laikas milisekundėmis, kurį atidarytas variklis praleidžiamas prieš pusiau atviro režimo bandymą. | | `COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR` | `2` | `open-sse/services/compression/engines/ccr/index.ts` | T08/H8 CCR gavimu pagrįstas laipsniškas didinimas: kiekvienas ankstesnis išsaugoto bloko gavimas tiesiškai padidina jo faktinę `minChars` reikšmę (dažnai gaunamas turinys glaudinamas mažiau; `>=3` gavimai = niekada neglaudinama). `1` išjungia laipsnišką didinimą (tik dvejetainis praleidimas pasiekus slenkstį). | | `COMPRESSION_CCR_DURABLE_STORE` | `true` | `open-sse/services/compression/engines/ccr/index.ts` | CCR patvari blokų saugykla (#9061). Atmintyje esančios saugyklos duomenys išsaugomi SQLite, todėl blokas išlieka po LRU pašalinimo, TTL galiojimo pabaigos, paleidimo iš naujo arba gavimo užklausai patekus į kitą egzempliorių. Nustatykite `false`, kad blokai būtų laikomi tik atmintyje. Didesni nei 512 KB blokai ir debesijos vykdymo aplinkos visada naudoja tik atmintį. | | `COMPRESSION_PREFIX_FREEZE_ENABLED` | `false` | `open-sse/services/compression/prefixFreeze.ts` | T08/H5 naudojimo stebėjimu pagrįsto prefikso fiksavimo pagrindinis jungiklis. **Pasirenkama funkcija (pagal numatytuosius nustatymus išjungta)** — kai įjungta, sisteminis raginimas, pastebėtas `>=` slenkstinį skaičių kartų, laikomas stabiliu podėliuojamu prefiksu ir apsaugomas nuo glaudinimo net tiems teikėjams, kurių neaptinka statinė podėlio euristika (fiksavimas tik _išsaugo_, niekada nekeičia). | | `COMPRESSION_PREFIX_FREEZE_THRESHOLD` | `3` | `open-sse/services/compression/prefixFreeze.ts` | Sisteminio raginimo stebėjimų skaičius, po kurio jis laikomas fiksuotu stabiliu prefiksu. | | `OMNIROUTE_BOOTSTRAPPED` | `false` | `src/app/(dashboard)/dashboard/page.tsx` | Po pradinės sąrankos paleisties scenarijus nustato `true`. Valdo sąrankos vediklio matomumą. | | `OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE` | `0` | `open-sse/executors/antigravity.ts` | Avarinė išimtis: leidžia užklausos turiniui pakeisti Antigravity projekto lauką. | | `ANTIGRAVITY_CREDITS` | `off` | `open-sse/services/antigravityCredits.ts` | Google One AI kreditų politika: `off` niekada neįterpia kreditų, `retry` įterpia vieną kartą po tinkamos kvotos 429 klaidos, o `always` įterpia pirmoje užklausoje. | | `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | Leidžia Antigravity užklausų vertikliui praleisti griežtą CLI užklausos parašo tikrinimą, kai aukštesnio lygio paslauga atmeta tikrus parašus (derinimo / pasenusio CLI režimas). Ne nulinė reikšmė įjungia apėjimą. | | `AGY_TOKEN_FILE` | `~/.gemini/antigravity-cli/antigravity-oauth-token` | `src/app/api/providers/agy-auth/apply-local/route.ts` | Pakeičia Antigravity CLI (agy) prieigos rakto failo kelią, naudojamą automatiškai aptinkamam vietinio prisijungimo importavimui. | ### OAuth CLI tiltas (vidinis) | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ------------------- | --------------------- | ------------------------------- | ----------------------------------------------------- | | `OMNIROUTE_SERVER` | automatinis aptikimas | `src/lib/oauth/config/index.ts` | CLI↔OmniRoute autentifikavimo tilto serverio URL. | | `OMNIROUTE_TOKEN` | _(nenustatyta)_ | `src/lib/oauth/config/index.ts` | CLI tilto autentifikavimo prieigos raktas. | | `OMNIROUTE_USER_ID` | `cli` | `src/lib/oauth/config/index.ts` | CLI tilto seansų naudotojo ID. | | `SERVER_URL` | _(nenustatyta)_ | `src/lib/oauth/config/index.ts` | Senasis `OMNIROUTE_SERVER` alternatyvus pavadinimas. | | `CLI_TOKEN` | _(nenustatyta)_ | `src/lib/oauth/config/index.ts` | Senasis `OMNIROUTE_TOKEN` alternatyvus pavadinimas. | | `CLI_USER_ID` | _(nenustatyta)_ | `src/lib/oauth/config/index.ts` | Senasis `OMNIROUTE_USER_ID` alternatyvus pavadinimas. | --- ## 11. OAuth teikėjo kredencialai Integruoti kredencialai, skirti **localhost kūrimui**. Nuotoliniams diegimams užregistruokite savo kiekvieno teikėjo kūrėjo konsolėje. | Kintamasis | Teikėjas | Pastabos | | :------------------------------------------ | :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLAUDE_OAUTH_CLIENT_ID` | Claude Code (Anthropic) | Viešas klientas – nereikia slaptažodžio. | | `CLAUDE_CODE_REDIRECT_URI` | Claude Code | Peradresavimo URI perrašymas. Numatytoji reikšmė: `https://platform.claude.com/oauth/code/callback` | | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Viešas klientas. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Reikalingas atitinkamas `_SECRET`. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Coding (Moonshot) | Viešas klientas. | | `MUSE_CODE_OAUTH_CLIENT_ID` | Muse Code (Meta) | Neprivalomas viešojo Muse CLI įrenginio srauto kliento ID perrašymas. Palikite nenustatytą, kad būtų naudojamas įdiegtas viešasis klientas. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Reikalingas atitinkamas `_SECRET`. | | `ANTIGRAVITY_OAUTH_CLIENT_SECRET` | Antigravity (Google) | — | | `GITHUB_OAUTH_CLIENT_ID` | GitHub Copilot | Viešas klientas. | | `GHE_COPILOT_OAUTH_CLIENT_ID` | GHE Copilot | Neprivalomas GitHub Enterprise Copilot OAuth kliento ID perrašymas. Jei nenustatyta, grįžtama prie `GITHUB_OAUTH_CLIENT_ID` viešojo numatytojo. | | `COPILOT_INTEGRATION_ID` | GitHub Copilot | Neprivalomas GitHub Copilot kliento integravimo ID perrašymas, siunčiamas `Copilot-Integration-Id` ir `Editor-Plugin-Version` antraštėse. Numatytoji reikšmė yra `copilot-developer-cli`. | | `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | API rakto atsarginė kopija, naudojama `open-sse/executors/devin-cli.ts`, kai nėra galimų kredencialų kiekvienam prisijungimui. Neprivaloma. | | `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Pasirinktinis Devin CLI dvejetainio failo (`devin`) kelias. Išsprendžiama `open-sse/executors/devin-cli.ts`. | | `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | OAuth kliento ID, skirtas GitLab Duo. Užregistruokite programą `https://gitlab.com/-/profile/applications` su peradresavimo URI `/callback` ir sritimis `api, read_user, openid, profile, email`. Grįžtama prie `GITLAB_OAUTH_CLIENT_ID`. | | `GITLAB_DUO_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | OAuth kliento paslaptis, skirta GitLab Duo. Neprivaloma – PKCE srautui nereikia paslapties. Grįžtama prie `GITLAB_OAUTH_CLIENT_SECRET`. | | `GITLAB_DUO_BASE_URL` | GitLab Duo (v3.8) | Perrašykite GitLab bazinį URL (savitarnos GitLab). Numatytoji reikšmė yra `https://gitlab.com`. Grįžtama prie `GITLAB_BASE_URL`. | | `GITLAB_BASE_URL` | GitLab Duo (v3.8) | Senesnis `GITLAB_DUO_BASE_URL` atsarginis variantas. Naudojamas, kai `_DUO_` variantas nenustatytas. | | `GITLAB_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | Senesnis `GITLAB_DUO_OAUTH_CLIENT_ID` atsarginis variantas, naudojamas `src/lib/oauth/constants/oauth.ts`. | | `GITLAB_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | Senesnis `GITLAB_DUO_OAUTH_CLIENT_SECRET` atsarginis variantas, naudojamas `src/lib/oauth/constants/oauth.ts`. | | `QODER_OAUTH_CLIENT_SECRET` | Qoder | — | | `QODER_OAUTH_AUTHORIZE_URL` | Qoder | Nustatoma, kad įjungtų Qoder OAuth. | | `QODER_OAUTH_TOKEN_URL` | Qoder | — | | `QODER_OAUTH_USERINFO_URL` | Qoder | — | | `QODER_OAUTH_CLIENT_ID` | Qoder | — | | `QODER_PERSONAL_ACCESS_TOKEN` | Qoder | Tiesioginis API rakto atsarginis variantas (apeina OAuth). | | `QODER_CLI_WORKSPACE` | Qoder | Darbo srities ID, skirtas Qoder CLI. | | `OMNIROUTE_QODER_WORKSPACE` | Qoder | Pseudonimas `QODER_CLI_WORKSPACE`. | | `QODER_CLI_CONFIG_DIR` | Qoder | Pakeičia Qoder CLI konfigūracijos katalogą (izoliuota PAT sesija, išvengiama naršyklės prisijungimo perrašymo). | | `BLACKBOX_WEB_VALIDATED_TOKEN` | Blackbox Web | Frontend `tk` prieigos raktas, siunčiamas kaip `validated` į `/api/chat`. Būtinas, kai Blackbox reikalauja prieigos raktų atitikimo; kitu atveju OmniRoute naudoja atsitiktinį UUID. Žr. problemą #2252. | | `VISION_BRIDGE_BASE_URL` | Vision Bridge guardrail | Su OpenAI suderinamas bazinis URL, skirtas ne-Anthropic vision-bridge iškvietimams. Pagal numatytuosius nustatymus naudoja senesnį OpenAI URL aplinkos kintamąjį arba api.openai.com. Nukreipkite į OmniRoute `/v1` savarankišką ciklą arba bet kurį su OpenAI suderinamą galinį tašką (Gemini OpenAI-compat, OpenRouter). Problema #2232. Kai URL yra paties OmniRoute `/v1`, aprašymo paklausimas siunčia `x-omniroute-admission-bypass: internal` ir autentifikuojasi su išspręstu savarankiško ciklo kredencialu (`sk_omniroute` sargybinis vietiniu režimu, arba `OMNIROUTE_API_KEY` / `ROUTER_API_KEY` — #1350), kad veiktų `REQUIRE_API_KEY=true` diegimai. | | `VISION_BRIDGE_API_KEY` | Vision Bridge guardrail | API raktas aukščiau nurodytam URL. Pakeičia kiekvieno teikėjo OpenAI / Google aplinkos kintamuosius, skirtus ne-Anthropic vision-bridge iškvietimams. Anthropic modeliai išlaiko savo dedikuotą Anthropic rakto kelią. Problema #2232. | | `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | Vision Bridge guardrail | Kiek laiko talpykloje saugomas maršrutizavimo rezultatas „nėra tinkamo kandidato“, milisekundėmis (numatytoji reikšmė `30000`). Netinkamos arba neigiamos reikšmės grįžta prie numatytosios; `0` išjungia neigiamą talpyklą. Šaltinis: `src/lib/guardrails/visionBridgeRouter.ts`. | > [!ĮSPĖJIMAS] > > 1. Eikite į [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) > 2. Sukurkite OAuth 2.0 kliento ID (tipas: „Žiniatinklio programa“) > 3. Pridėkite savo serverio URL kaip įgaliotąjį peradresavimo URI > 4. Pakeiskite kredencialų reikšmes `.env` faile. --- ## 12. Teikėjų User-Agent perrašymai Perrašykite kiekvienam išoriniam teikėjui siunčiamą `User-Agent` antraštę. Vykdymo metu ją dinamiškai nustato bazinė vykdytojo klasė: ``` process.env[`${PROVIDER_ID}_USER_AGENT`] ``` > **Šaltinis:** `open-sse/executors/base.ts` → `buildHeaders()` | Kintamasis | Numatytoji reikšmė | Kada atnaujinti | | -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `CLAUDE_USER_AGENT` | `claude-cli/2.1.258 (external, cli)` | Kai Anthropic išleidžia naują CLI versiją | | `CLAUDE_DISABLE_TOOL_NAME_CLOAK` | `false` | `executors/base.ts` + `executors/cliproxyapi.ts` | Nustatykite į `1`/`true`, kad trečiųjų šalių vykdymo aplinkų įrankių pavadinimai būtų perduodami Anthropic nepakeisti abiem į Anthropic nukreiptais keliais (vietiniu OAuth ir CLIProxyAPI). Pagal numatytuosius nustatymus vykdytojas deterministiškai suteikia ne Claude Code įrankių pavadinimams alternatyvius vardus (naudodamas Claude Code kanoninį susiejimą, jei toks yra, kitu atveju – PascalCase), o atsakyme juos atkuria naudodamas `_toolNameMap`, todėl vykdymo aplinkos su snake_case įrankiais nėra atmetamos kaip identifikuoti trečiųjų šalių klientai. Tik derinimui. | | `CODEX_USER_AGENT` | `codex-cli/0.155.0 (Windows 10.0.26200; x64)` | Kai OpenAI atnaujina Codex CLI | | `CODEX_CLIENT_VERSION` | `0.155.0` | Perrašyti Codex kliento versiją nepriklausomai nuo visos UA eilutės | | `CLAUDE_CODE_CLIENT_VERSION` | `2.1.258` | Perrašyti skelbiamą Claude Code versiją nepriklausomai nuo `CLAUDE_USER_AGENT`. Anthropic riboja prieigą prie kai kurių modelių pagal šią reikšmę (#12417). | | `GITHUB_COPILOT_CLI_VERSION` | `1.0.81-6` | Perrašyti skelbiamą Copilot CLI versiją nepriklausomai nuo `GITHUB_USER_AGENT` | | `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | Kai atnaujinamas GitHub Copilot Chat | | `ANTIGRAVITY_USER_AGENT` | `antigravity/2.0.1 darwin/arm64` | Kai atnaujinama Antigravity IDE | | `KIRO_USER_AGENT` | `AWS-SDK-JS/3.0.0 kiro-ide/1.0.0` | Kai atnaujinama Kiro IDE | | `KIRO_OAUTH_CLIENT_ID` | `kiro-cli` | Perrašyti Kiro socialinio įrenginio kodo `clientId` (viešąjį ID) | | `KIRO_VERIFY_FULL_CRC` | `false` | Pasirenkama: visapusis kiekvieno kadro pranešimo CRC tikrinimas Kiro įvykių sraute (sugadintiems srautams derinti) | | `QODER_USER_AGENT` | `Qoder-Cli` | Kai atnaujinama Qoder CLI | | `CURSOR_USER_AGENT` | `Cursor/3.3` | Kai atnaujinamas Cursor | > [!TIP] > Galite pridėti User-Agent perrašymus **bet kuriam** teikėjui naudodami šabloną `{PROVIDER_ID}_USER_AGENT`. Vykdytojas dinamiškai sudaro aplinkos kintamojo pavadinimą. --- ## 13. CLI skaitmeninio atspaudo suderinamumas Kai ši funkcija įjungta, „OmniRoute“ pakeičia HTTP antraščių ir JSON turinio laukų tvarką, kad ji tiksliai atitiktų oficialių CLI įrankių parašą. Tai sumažina paskyros pažymėjimo riziką ir kartu išsaugo jūsų tarpinio serverio IP. **Šaltinis:** `open-sse/config/cliFingerprints.ts`, `open-sse/executors/base.ts` ### Pagal teikėją | Kintamasis | Aktyvinimas | Poveikis | | ------------------------ | ----------- | ------------------------------------------ | | `CLI_COMPAT_CODEX` | `=1` | Imituoja „Codex CLI“ užklausos parašą | | `CLI_COMPAT_CLAUDE` | `=1` | Imituoja „Claude Code“ užklausos parašą | | `CLI_COMPAT_GITHUB` | `=1` | Imituoja „GitHub Copilot“ užklausos parašą | | `CLI_COMPAT_ANTIGRAVITY` | `=1` | Imituoja „Antigravity“ užklausos parašą | | `CLI_COMPAT_CURSOR` | `=1` | Imituoja „Cursor“ užklausos parašą | | `CLI_COMPAT_KIMI_CODING` | `=1` | Imituoja „Kimi Coding“ užklausos parašą | | `CLI_COMPAT_KILOCODE` | `=1` | Imituoja „Kilo Code“ užklausos parašą | | `CLI_COMPAT_CLINE` | `=1` | Imituoja „Cline“ užklausos parašą | ### Visuotinis nustatymas | Kintamasis | Aktyvinimas | Poveikis | | ---------------- | ----------- | ---------------------------------------------------------------------------- | | `CLI_COMPAT_ALL` | `=1` | Vienu metu įjungia skaitmeninio atspaudo suderinamumą **visiems** teikėjams. | ### „Kimi Coding CLI“ tapatybės reikšmių perrašymas | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ----------------------- | --------------------------------- | ---------------------------------------- | --------------------------------------------------------------------- | | `KIMI_CLI_VERSION` | `1.36.0` | `src/lib/oauth/providers/kimi-coding.ts` | Perrašo „Kimi CLI“ versiją, siunčiamą vykdant OAuth/API iškvietimus. | | `KIMI_CODING_DEVICE_ID` | _(užfiksuota numatytoji reikšmė)_ | `src/lib/oauth/providers/kimi-coding.ts` | Perrašo užfiksuotą „Kimi“ įrenginio ID, naudojamą kliento antraštėse. | > [!NOTE] > Ši funkcija veikia kartu su User-Agent reikšmių perrašymu (§12). Skaitmeninio atspaudo sistema tvarko antraščių ir turinio laukų tvarką, o User-Agent reikšmių perrašymas nustato konkrečią UA eilutę. Abi funkcijas galima įjungti nepriklausomai. --- ## 14. API raktų teikėjai API raktai, skirti teikėjams, naudojantiems tiesioginį autentifikavimą. **Rekomenduojamas nustatymo būdas:** Valdymo skydas → Teikėjai → Pridėti API raktą. Nustatymas naudojant aplinkos kintamuosius yra alternatyva „Docker“ arba be grafinės sąsajos veikiantiems diegimams. Atpažįstamas šablonas: `{PROVIDER_ID}_API_KEY` | Kintamasis | Teikėjas | | ------------------ | -------------------------------------------------------------------- | | `DEEPSEEK_API_KEY` | DeepSeek | | `NVIDIA_API_KEY` | NVIDIA NIM | | `JINA_AI_API_KEY` | Jina AI („Foundation API“ + atsarginis „Reader“) | | `JINA_API_KEY` | Jina AI (`JINA_AI_API_KEY` alternatyvus pavadinimas) | | `GEMINI_API_KEY` | Gemini („Google AI Studio“) įterpiniai + atsarginis pokalbių režimas | | `GOOGLE_API_KEY` | Gemini (`GEMINI_API_KEY` alternatyvus pavadinimas) | > [!NOTE] > Statiniai `${PROVIDER}_API_KEY` įrašai, skirti „Groq“, „xAI“, „Mistral“, „Perplexity“, „Together AI“, „Fireworks“, „Cerebras“, „Cohere“, „Nebius“ ir „Qianfan“, buvo pašalinti v3.8.0 versijoje, nes vykdymo aplinka jų nebeskaito — šie teikėjai naudoja tik Valdymo skydą / `data/provider-credentials.json` / šifruotą DB. Perėjimo instrukcijas rasite šio dokumento apačioje esančiame skyriuje _Auditas: pašalinti / nebenaudojami kintamieji_. > [!TIP] > Per Valdymo skydą nustatyti raktai šifruoti saugomi SQLite duomenų bazėje ir turi pirmenybę prieš aplinkos kintamuosius. > > **Jina:** `jina-ai/…` įterpiniai, pakartotinis reitingavimas, klasifikavimas, segmentavimas ir `jina-search` **nenaudoja** klasterio aplinkos rakto apmokestinimui, kai egzistuoja Valdymo skydo `jina-ai` (arba bendrinamas `jina-reader`) ryšys — `getProviderCredentials` pirmiausia užpildo trūkstamas reikšmes. `JINA_AI_API_KEY` / `JINA_API_KEY` naudojami tik tada, kai nėra tinkamo Valdymo skydo rakto. Iškvietimų žurnaluose aplinkos kintamojo atsarginis variantas priskiriamas kaip `connection_id=env:JINA_AI_API_KEY`. „Reader“ kortelė (`jina-reader`, `r.jina.ai`) niekada neaptarnauja `/v1/embeddings` arba `/v1/rerank`. > > **Gemini:** `gemini/gemini-embedding-2` (alternatyvus pavadinimas `google/gemini-embedding-2`) pirmiausia naudoja Valdymo skydo `gemini` ryšį. `GEMINI_API_KEY` / `GOOGLE_API_KEY` naudojami tik tada, kai nėra tinkamo Valdymo skydo rakto. Iškvietimų žurnaluose aplinkos kintamojo atsarginis variantas priskiriamas kaip `connection_id=env:GEMINI_API_KEY`. Pirminis daugiarūšis srautas naudoja `x-goog-api-key` su `:embedContent` / `:batchEmbedContents` — N „OpenAI“ `input` elementų tampa N vektorių. --- ## 15. Skirtojo laiko nustatymai Visos reikšmės nurodytos **milisekundėmis**. Centralizuotas reikšmių nustatymas atliekamas faile `src/shared/utils/runtimeTimeouts.ts`. ### Skirtojo laiko hierarchija ``` REQUEST_TIMEOUT_MS (visuotinis perrašymas) ├─→ FETCH_TIMEOUT_MS (išorinių paslaugų teikėjų iškvietimai, numatytoji reikšmė: 600000) │ ├─→ FETCH_HEADERS_TIMEOUT_MS (paveldi iš FETCH_TIMEOUT_MS) │ ├─→ FETCH_BODY_TIMEOUT_MS (paveldi iš FETCH_TIMEOUT_MS) │ ├─→ TLS_CLIENT_TIMEOUT_MS (paveldi iš FETCH_TIMEOUT_MS) │ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (nepriklausomas, numatytoji reikšmė: 10000) │ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (nepriklausomas, numatytoji reikšmė: 15000) │ ├── FETCH_CONNECT_TIMEOUT_MS (nepriklausomas, numatytoji reikšmė: 30000) │ └── FETCH_KEEPALIVE_TIMEOUT_MS (nepriklausomas, numatytoji reikšmė: 4000) ├─→ STREAM_IDLE_TIMEOUT_MS (paveldi iš REQUEST_TIMEOUT_MS, numatytoji reikšmė: 600000) ├─→ STREAM_ACTIVE_TIMEOUT_MS (nepriklausomas, numatytoji reikšmė: 1260000; 0 išjungia) ├─→ STREAM_READINESS_TIMEOUT_MS (paveldi iš REQUEST_TIMEOUT_MS, numatytoji reikšmė: 80000) ├─→ STREAM_READINESS_MAX_TIMEOUT_MS (riboja adaptyvius parengties laiko pratęsimus, numatytoji reikšmė: 180000) └─→ API_BRIDGE_PROXY_TIMEOUT_MS (paveldi iš REQUEST_TIMEOUT_MS, numatytoji reikšmė: 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (išvestinis, numatytoji reikšmė: 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (numatytoji reikšmė: 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (numatytoji reikšmė: 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (numatytoji reikšmė: 0 = išjungta) ``` | Kintamasis | Numatytoji reikšmė | Aprašymas | | ----------------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REQUEST_TIMEOUT_MS` | _(nenustatyta)_ | Visuotinis trumpinys — pakeičia numatytąsias `FETCH_TIMEOUT_MS` ir `STREAM_IDLE_TIMEOUT_MS` reikšmes. | | `FETCH_TIMEOUT_MS` | `600000` | Bendras HTTP užklausos skirtasis laikas kreipiniams į pirminį teikėją. | | `STREAM_IDLE_TIMEOUT_MS` | `600000` | Ilgiausias tylos intervalas tarp neapdorotų pirminio teikėjo baitų, kuriam praėjus vykdymas nutraukiamas. Išplėstinio mąstymo modeliai retai pristabdo ilgiau nei 90 sek. | | `STREAM_ACTIVE_TIMEOUT_MS` | `1260000` | Ilgiausia bendra aktyvaus SSE srauto gyvavimo trukmė; ji niekada nenustatoma iš naujo gavus pirminio teikėjo baitų ir nepriklauso nuo `REQUEST_TIMEOUT_MS`. Apskaičiuojama pagal didžiausią kiekvienam modeliui registre nustatytą `timeoutMs` reikšmę (1200000, Codex), pridedant 60000 atsargą, todėl modeliui, kuriam leidžiama išnaudoti visą savo limitą, vykdymas niekada nenutraukiamas atsakymo viduryje. Norėdami išjungti, nustatykite `0`. | | `OMNIROUTE_SSE_COMMENTS` | _(išjungta)_ | Ar OmniRoute gali siųsti SSE `:` komentarų eilutes (pvz., `: keepalive` periodinį signalą ir `x-omniroute-*` metaduomenų pabaigos įrašus). Pagal numatytąją nuostatą išjungta (#10524), nes griežti su OpenAI suderinami klientai kiekvienai SSE eilutei taiko JSON.parse ir užstringa ties `:` komentarais; `data:` periodiniams signalams tai įtakos neturi. Norėdami vėl įjungti, nustatykite `on`/`true`/`1`/`yes`. Naudojama faile `open-sse/utils/sseHeartbeat.ts`. | | `STREAM_READINESS_TIMEOUT_MS` | `80000` | Laikas, per kurį turi būti gautas pirmasis SSE įvykis, kuris nėra ping. Jei nustatytas `REQUEST_TIMEOUT_MS`, paveldi jo reikšmę. | | `STREAM_READINESS_MAX_TIMEOUT_MS` | `180000` | Didžiausias adaptyvus pasirengimo laukti pirmojo įvykio intervalas didelėms, daug įrankių naudojančioms arba intensyvaus samprotavimo srautinėms užklausoms. | | `OMNIROUTE_AGENT_GOAL_POLICY_ENABLED` | `true` | `/goal` euristikos visiško išjungimo jungiklis. Nustatykite `false`/`0`/`off`, kad visiškai išjungtumėte aptikimą — parengties skirtasis laikas ir srauto atkūrimas niekada nepadidinami pagal užklausos turinį ar antraštes, taip sumažinant kliento valdomo skirtojo laiko išplėtimo riziką. | | `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | Didžiausias pasirengimo laukti pirmojo įvykio intervalas aptiktiems `/goal` agento vykdymams arba užklausoms, priverstinai pažymėtoms naudojant `x-omniroute-agent-goal`. | | `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | Automatiškai įjungia ankstyvą srauto atkūrimą aptiktiems `/goal` agento vykdymams. Nustatykite `false`/`0`/`off`, kad išjungtumėte su tikslu susietą pasirenkamąją funkciją. Ji gali tik PAPILDOMAI įjungti atkūrimą greta numatytosios operatoriaus nuostatos — ji niekada nepaiso aiškaus atsisakymo, nustatyto per `STREAM_RECOVERY_ENABLED` / DB nuostatas. | | `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | Pašalina nestandartinius `codex.*` SSE įvykius (pvz., `codex.rate_limits`), dėl kurių OpenAI SDK `responses.stream()` grąžina 502 klaidą. Pagal numatytąją nuostatą ĮJUNGTA (#11014). Norėdami juos persiųsti, nustatykite `0`/`false`/`no`/`off`. | | `OMNIROUTE_CODEX_APPSERVER_WS` | _(nenustatyta)_ | Pasirenkamasis Codex programų serverio transportas. Vietinio `codex app-server` pagalbinio proceso WebSocket galinis taškas (`ws://`/`wss://`). Kai jis nustatytas kartu su prieigos raktu, Codex užklausos nukreipiamos per JSON-RPC į pagalbinį procesą, o ne į HTTP Responses API. Taip pat galima nustatyti kiekvienam ryšiui atskirai naudojant `providerSpecificData.codexAppServerUrl`. Naudojama faile `open-sse/executors/codex/appServerConfig.ts`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(nenustatyta)_ | Įterptasis galimybių / tapatybės patvirtinimo prieigos raktas, pateikiamas programų serveriui. Kiekvieno ryšio pakeitimas: `providerSpecificData.codexAppServerToken`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(nenustatyta)_ | Kelias į failą, kuriame saugomas programų serverio galimybių prieigos raktas (iš `codex app-server --ws-token-file`). Naudojamas, kai `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` nenustatytas. Kiekvieno ryšio pakeitimas: `providerSpecificData.codexAppServerTokenFile`. | | `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | Darbinis katalogas, kuriame vykdoma programų serverio užduotis. Kiekvieno ryšio pakeitimas: `providerSpecificData.codexAppServerCwd`. | | `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(nenustatyta)_ | Patvirtinimo politika, perduodama programų serverio užduočiai (pvz., `never`, `on-request`). Kiekvieno ryšio pakeitimas: `providerSpecificData.codexAppServerApprovalPolicy`. | | `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(nenustatyta)_ | Izoliuotosios aplinkos politika, perduodama programų serverio užduočiai (pvz., `read-only`, `workspace-write`, `danger-full-access`). Kai nenustatyta, vykdyklė pagal numatytąją nuostatą naudoja `workspace-write` (sugriežinta; anksčiau buvo `danger-full-access`). Kiekvieno ryšio pakeitimas: `providerSpecificData.codexAppServerSandbox`. | | `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | Automatiškai patvirtina paties programų serverio patvirtinimo raginimus (komandų / failų / leidimų vykdymą pagrindiniame kompiuteryje). Pagal numatytąją nuostatą išjungta — raginimai automatiškai atmetami; vykdymo aplinkos įrankių iškvietimams tai įtakos neturi (jie perduodami atskiru `item/tool/call` kanalu). Priimamos reikšmės: `true`/`1`/`yes`. Kiekvieno ryšio pakeitimas: `providerSpecificData.codexAppServerAutoApprove`. | | `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Laikas, per kurį turi būti gautos atsakymo antraštės. | | `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30 s) | Didžiausias atsako pradžios laukimo laikas (ms) kiekvienam tiesioginiam bandymui be tarpinio serverio. Pasibaigus skirtajam laikui, pakartotinai bandoma vieną kartą naudojant naują lizdą; nustatykite `0`, kad išjungtumėte ribą ir išlaikytumėte ankstesnę elgseną. | | `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 min.) | Didžiausia trukmė (ms), skirta RETRY bandymui naudojant naują lizdą, kai anksčiau baigiasi atsako pradžios laukimo laikas bandant per telkinio ryšį (#13703). Taikoma tik tada, kai iškvietėjas jau yra pridėjęs savo termino signalą (nustatyto ryšio / modelio / teikėjo / `FETCH_TIMEOUT_MS` kaskadą); šis signalas yra tikroji riba ir numatytame vykdymo kelyje suveikia pirmas, todėl tai yra dosni atsarginė apsauga, o ne fiksuota riba — be jos pakartotiniam bandymui buvo naudojamas toks pat trumpas `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` laikotarpis kaip ir bandymui per telkinio ryšį, todėl tinkamai veikiantys lėto TTFB samprotavimo modeliai grąžindavo 504 klaidą. Ši reikšmė niekada negali būti mažesnė už pirmiau nurodytą fiksuotą apatinę ribą; kai iškvietėjas apskritai nepateikia termino signalo, pakartotiniam bandymui fiksuota apatinė riba lieka nepakitusi. | | `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Laikas, skirtas visam atsako turiniui gauti. | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | TCP ryšio užmezgimo skirtasis laikas. | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Nuolatinio ryšio lizdo neveiklos skirtasis laikas. | | `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | TLS kontrolinio atspaudo tarpinio serverio (wreq-js) skirtasis laikas. | | `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | Apriboja laiką iki pirmojo baito būtent wreq-js TLS kontrolinio atspaudo perdavimo atsako turinyje; vien `TLS_CLIENT_TIMEOUT_MS` negali aptikti įstrigusio atsako turinio, nes jis baigiamas vos gavus antraštes (#12656). Pasibaigus skirtajam laikui, wreq skaitytuvas atšaukiamas ir pereinama prie tiesioginio / tarpinio serverio dispečerio; `0` išjungia stebėjimo mechanizmą. | | `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | Tik OpenCode vykdytojui ir tik tada, kai įjungtas `OPENCODE_RESPONSES_STALL_ROTATION` funkcijos jungiklis (pagal numatytuosius nustatymus išjungtas): apriboja pirmojo srautiniu būdu perduodamo Responses atsako turinio baito laukimą po jo antraščių gavimo (#13484). Responses srautas pradedamas įvykiu `response.created`, todėl tylėjimas ilgiau nei šis laikotarpis laikomas įstrigimu: paskyrai pritaikomas atvėsimo laikotarpis, o užklausa vieną kartą nukreipiama į kitą paskyrą; antras įstrigimas sukelia greitą klaidą. `0` išjungia apsaugą net ir įjungus jungiklį. | | `OPENCODE_PARK_AND_RESUME` | `false` | Tik OpenCode vykdytojui: po pasikartojančių laikinų 429 klaidų (arba aptikus naują telkinio apkrovos žymeklį) pristabdyti užklausą siunčiant gyvybingumo signalus, tada pakartoti vieną ribotą etapą, apimantį iki 3 nuosekliai naudojamų paskyrų, užuot lygiagrečiai apklausus visą paskyrų rinkinį (#13924). Pagal numatytuosius nustatymus išjungta: kiekviena 429 klaida nukreipia į kitą paskyrą lygiai taip pat kaip anksčiau. | | `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(nenustatyta)_ | Tik OpenCode vykdytojui: pakeičia prieš pristabdymą nuskaitomo telkinio apkrovos žymeklio kelią (`{since, reason, ttl_s}`, numatytasis `/tmp/opencode-pool-strain.json`, #13924). Aptikus naują žymeklį, pristabdoma neperskaičiuojant; jei žymeklio nėra arba jis pasenęs, grįžtama prie pliūpsnio skaitiklio. | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | Tarpinio serverio etapo skirtasis laikas `/v1` tilto užklausoms. | | `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Nukreipia Firecrawl žiniatinklio gavimo vykdytoją į savarankiškai prieglobiamą egzempliorių (už debesijos ribų API raktas neprivalomas). | | `FIRECRAWL_TIMEOUT_MS` | `30000` | Kiekvienos Firecrawl žiniatinklio gavimo vykdytojo užklausos skirtasis laikas. | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `300000` | Bendras tilto serverio užklausos skirtasis laikas. | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Laikas, skirtas atsako antraštėms išsiųsti per tiltą. | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Tilto nuolatinio ryšio neveiklos skirtasis laikas. | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Neapdoroto lizdo skirtasis laikas (0 = išjungta). | | `SHUTDOWN_TIMEOUT_MS` | `30000` | Atidėjimo laikotarpis gavus SIGTERM/SIGINT prieš priverstinai užbaigiant procesą. | | `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | Atsarginė reikšmė, kurią naudoja `src/shared/utils/fetchTimeout.ts`, kai `FETCH_TIMEOUT_MS` nenustatytas. | | `OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS` | `8000` | `validationRead` ir `modelsProbe` išankstinių nuostatų skirtasis laikas (ms) faile `src/shared/network/safeOutboundFetch.ts`. Padidinkite lėtoms galinėms prieigoms (Cerebras, Cloudflare AI, Groq), kad ataskaitų srityje būsena nekaitaliotųsi tarp aktyvios ir klaidos. Jei reikšmė netinkama (<1000) arba ne skaitinė, grįžtama prie 8000 ms. | | `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | Perdavimui skirtasis užklausos skirtasis laikas faile `open-sse/utils/proxyFetch.ts` (#9158). Užstrigęs perdavimas turi baigtis klaida anksčiau nei kliento / agento skirtasis laikas (~30 s), kad kvietėjai matytų konkrečią perdavimo klaidą, o ne bendrą išorinės sistemos skirtojo laiko viršijimą. Apribota iki `29000`, kad šis skirtasis laikas visada suveiktų pirmas. | | `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | Bendras kartotinio bandymo delsos laikas, skirtas tiesioginio ryšio / perdavimo / tarpinio serverio vienkartinio kartojimo keliams faile `open-sse/utils/proxyFetch.ts` (#9158). `0` = kartoti iš karto. | | `OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS` | `60000` | Savasis wreq-js užklausos skirtasis laikas (`claudeTlsClient.ts`). | | `OMNIROUTE_CLAUDE_TLS_GRACE_MS` | `10000` | Absoliutaus JS galutinio termino atsargos laikas, pridedamas prie savojo skirtojo laiko. | | `OMNIROUTE_PPLX_TLS_TIMEOUT_MS` | `30000` | Savasis wreq-js užklausos skirtasis laikas (`perplexityTlsClient.ts`). | | `OMNIROUTE_PPLX_TLS_GRACE_MS` | `10000` | Absoliutaus JS galutinio termino atsargos laikas, pridedamas prie savojo skirtojo laiko. | | `OMNIROUTE_PPLX_SEARCH_HINT` | `0` (išjungta) | Prie kvietėjo sistemos pranešimo pridedama „Turite integruotą žiniatinklio paiešką. Atsakykite į klausimus tiesiogiai, naudodami paieškos rezultatus.“ (`perplexity-web/protocol.ts`). Pagal numatytąją nuostatą išjungta — Perplexity vis tiek atlieka paiešką, o šis sakinys patenka į atsakymus kaip metakomentaras programavimo klientams. Norėdami atkurti, nustatykite `1`/`true`/`yes`/`on`. | | `OMNIROUTE_GROK_TLS_TIMEOUT_MS` | `60000` | Savasis wreq-js užklausos skirtasis laikas (`grokTlsClient.ts`). | | `OMNIROUTE_GROK_TLS_GRACE_MS` | `10000` | Absoliutaus JS galutinio termino atsargos laikas, pridedamas prie savojo skirtojo laiko. | | `OMNIROUTE_NOTION_TLS_TIMEOUT_MS` | `30000` | Savasis wreq-js užklausos skirtasis laikas (`notionTlsClient.ts`); `notion-web` ilgoms generavimo užduotims kiekvienoje užklausoje jį padidina iki `180000`. | | `OMNIROUTE_NOTION_TLS_GRACE_MS` | `10000` | Absoliutaus JS galutinio termino atsargos laikas, pridedamas prie savojo skirtojo laiko. | | `OMNIROUTE_BROWSER_POOL` | `on` | Bendras Playwright naršyklių telkinys naršykle pagrįstiems žiniatinklio slapukų pokalbiams (`browserPool.ts`); norėdami išjungti, nustatykite `off`. | | `OBSCURA_BIN` | `auto-detect` | Kelias iki `obscura` dvejetainio failo, kurį naršyklių telkinys ir Cloudflare Playground vykdyklė naudoja kaip pagrindinį variklį (`open-sse/services/obscura.ts`); jei nenustatyta, automatiškai aptinkamas sistemos PATH. | | `OBSCURA_CDP_ENDPOINT` | _(nenustatyta)_ | Nurodykite jau veikiančią Obscura (`http://host:port`), užuot paleidę naują; modulis šio proceso nevaldo (`open-sse/services/obscura.ts`). | | `OBSCURA_PORT` | `random free port` | Aiškiai nurodytas prievadas paleidžiamai `obscura serve`; jei nenustatyta, laisvas prievadas parenkamas automatiškai (`open-sse/services/obscura.ts`). | | `WEB_COOKIE_USE_BROWSER` | `0` | Nukreipia žiniatinklio slapukų pokalbio užklausą į naršykle pagrįstą kelią (`browserBackedChat.ts`); norėdami įjungti, nustatykite `1`. | | `KIMI_WEB_BASE_URL` | `https://www.kimi.ai` | Bazinis Kimi Web (tarptautinės kimi.ai Connect-RPC) vykdyklės URL (`kimi-web.ts`); keiskite tik veidrodinių / tarpinių serverių galiniams taškams. | | `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Visas Kimi Web vykdyklės pokalbio galinis taškas (`kimi-web.ts`). | | `OMNIROUTE_LOGIN_BROWSER_PATH` | _(aptinkama automatiškai)_ | Kelias iki sistemos Chrome / Edge vykdomojo failo, skirto Adobe Firefly interaktyviajam prisijungimui naršyklėje (`adobeFireflyBrowserLogin.ts`); pakeičia kiekvienai OS taikomą automatinį aptikimą. | | `OMNIROUTE_STANDALONE_DIR` | _.build/ autonominio paketo išvestis_ | Kompiliavimo metu taikomas autonominio paketo išvesties katalogo, kurį naudoja po kompiliavimo vykdomas failų sugretinimo veiksmas (`scripts/build/colocate-standalone.mjs`), perrašymas; skirta kompiliavimo įrankiams, o ne vykdymo aplinkai. | Kombinuoto taikinio bandymai paveldi nustatytą išorinės sistemos užklausos skirtąjį laiką (`FETCH_TIMEOUT_MS` arba `REQUEST_TIMEOUT_MS`, kai jis pateikia numatytąją užklausos reikšmę). Nustatykite `targetTimeoutMs` kombinacijoje, kombinacijos numatytosiose nuostatose arba teikėjo perrašoje tik tam, kad greičiau būtų pereinama prie atsarginio kombinacijos varianto; reikšmės, viršijančios dabartinį išorinės sistemos skirtąjį laiką, apribojamos iki išorinės sistemos skirtojo laiko. `comboTimeoutMs` yra atskiras bendras visos kombinacijos realiojo laiko biudžetas, taikomas visiems perjungimo taikiniams. Palikite jį nenustatytą arba nustatykite `0`, kad iteracijų skaičius liktų neribotas (vis tiek taikomas 10 minučių programoje `comboPredicates.ts` fiksuotai nustatytas apsaugos nuo užstrigimo terminas). Teigiama reikšmė pakeičia šią kombinacijos apsaugos priemonę. `comboTimeoutMs` turi būti ilgesnis nei `targetTimeoutMs`, kad po lėto pirmojo taikinio dar liktų laiko pereiti prie atsarginio varianto. ### Grandinės pertraukiklio slenksčiai Teikėjo lygmens grandinės pertraukiklio derinimas. Numatytosios reikšmės atitinka nuo v3.6 naudojamas reikšmes, pritaikytas daugiau nei 500 jungčių. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ------------------------------------------------------------- | ------------------ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD` | `8` | `open-sse/config/constants.ts` | Nuoseklių OAuth teikėjų trikčių slenkstis, kurį pasiekus suveikia grandinės pertraukiklis. | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS` | `60000` | `open-sse/config/constants.ts` | OAuth teikėjo grandinės pertraukiklio nustatymo iš naujo intervalas (ms). | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD` | `12` | `open-sse/config/constants.ts` | Nuoseklių API rakto teikėjų trikčių slenkstis. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | API rakto teikėjo grandinės pertraukiklio nustatymo iš naujo intervalas (ms). | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Nuoseklių vietinių teikėjų (Ollama, LM Studio, ...) trikčių slenkstis. | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS` | `15000` | `open-sse/config/constants.ts` | Vietinio teikėjo grandinės pertraukiklio nustatymo iš naujo intervalas (ms). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD` | `10` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: trikčių skaičius per intervalą, kurį pasiekus visas OAuth teikėjas pereina į atvėsimo būseną. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS` | `900000` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: slenkantis OAuth teikėjų trikčių skaičiavimo intervalas (ms). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: atvėsimo trukmė (ms), pasiekus OAuth teikėjo slenkstį. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD` | `5` | `open-sse/config/constants.ts` | Pasiekus tokį trikčių skaičių, OAuth teikėjas pereina į DEGRADED būseną. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER` | `8` | `open-sse/config/constants.ts` | Didžiausias OAuth teikėjo `resetTimeout` didinimo daugiklis. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT` | `2` | `open-sse/config/constants.ts` | OAuth teikėjo laukimo trukmė padidinama po tiek atidarymo ciklų. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD` | `15` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: trikčių skaičius per intervalą, kurį pasiekus visas API rakto teikėjas pereina į atvėsimo būseną. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: slenkantis API rakto teikėjų trikčių skaičiavimo intervalas (ms). | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: atvėsimo trukmė (ms), pasiekus API rakto teikėjo slenkstį. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | Pasiekus tokį trikčių skaičių, API rakto teikėjas pereina į DEGRADED būseną. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | Didžiausias API rakto teikėjo `resetTimeout` didinimo daugiklis. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | API rakto teikėjo laukimo trukmė padidinama po tiek atidarymo ciklų. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: trikčių skaičius, kurį pasiekus visas vietinis teikėjas pereina į atvėsimo būseną. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS` | `300000` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: slenkantis vietinių teikėjų trikčių skaičiavimo intervalas (ms). | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | Teikėjo lygmens grandinės pertraukiklis: atvėsimo trukmė (ms), pasiekus vietinio teikėjo slenkstį. | | `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | Atidėjimo lygis, kuriam esant konteksto podėlio fiksavimo teikėjas laikomas ilgai neveiksniu, o fiksavimas pašalinamas, kad būtų galima persijungti. | | `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | Būsenų kaitos prevencijos intervalas (ms), per kurį toleruojami trumpi laikini atvėsimai prieš pašalinant konteksto podėlio fiksavimą. | ### Scenarijai | Scenarijus | Konfigūracija | | ------------------------------------------ | ------------------------------------------------------- | | **Ilgai trunkantis kodo generavimas** | `REQUEST_TIMEOUT_MS=900000` (15 min.) | | **Apribota bendra srauto gyvavimo trukmė** | `STREAM_ACTIVE_TIMEOUT_MS=1260000` (21 min.) | | **Greitas gedimas gamybinei API** | `API_BRIDGE_PROXY_TIMEOUT_MS=10000` | | **Išplėstinio samprotavimo modeliai** | `STREAM_IDLE_TIMEOUT_MS=300000` (5 min. tarp fragmentų) | --- ## 16. Žurnalų registravimas Žurnalų registravimo sistema įrašo duomenis ir į stdout, ir į rotuojamus žurnalų failus. Visa konfigūracija nuskaitoma iš `src/lib/logEnv.ts`. | Kintamasis | Numatytoji reikšmė | Aprašymas | | ----------------------------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `APP_LOG_LEVEL` | `info` | Mažiausias žurnalo lygis: `debug`, `info`, `warn`, `error`. | | `APP_LOG_FORMAT` | `text` | Išvesties formatas: `text` (skaitomas žmogui) arba `json` (struktūrizuotas). | | `APP_LOG_TO_FILE` | `true` | Įrašyti žurnalus į failą kartu su išvestimi į stdout. | | `APP_LOG_FILE_PATH` | `logs/application/app.log` | Žurnalo failo kelias (projekto šakninio katalogo arba `DATA_DIR` atžvilgiu). | | `APP_LOG_MAX_FILE_SIZE` | `50M` | Didžiausias failo dydis prieš rotaciją. Priimama: `50M`, `1G`, `512K` arba paprastas baitų skaičius. | | `APP_LOG_RETENTION_DAYS` | `7` | Dienų skaičius, kurį saugomi rotuoti programos žurnalų failai. | | `APP_LOG_MAX_FILES` | `20` | Didžiausias rotuotų žurnalų failų atsarginių kopijų skaičius. | | `CALL_LOG_RETENTION_DAYS` | `7` | Dienų skaičius, kurį užklausų / iškvietimų žurnalo įrašai saugomi duomenų bazėje. | | `CALL_LOG_MAX_ENTRIES` | `10000` | Didžiausias iškvietimų žurnalo įrašų skaičius atminties buferyje. | | `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | Didžiausias eilučių skaičius SQLite lentelėje `call_logs` prieš jos valymą. | | `ENABLE_REQUEST_LOGS` | _(nenustatyta)_ | Priverstinai įjungti arba išjungti išsamų užklausų registravimą, nepaisant valdymo skydelio nuostatos. | | `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (1 valanda) | Didžiausias atsietų aktyvių užklausų žurnalo įrašų amžius prieš pašalinant juos iš atminties. | | `CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS` | `false` | Saugoti srauto fragmentus konvejerio artefaktuose, kai `call_log_pipeline_enabled=true`. Pasirenkama (`true`) — pagal numatytąją nuostatą išjungta, kad būtų taupoma vieta diske. | | `CALL_LOG_PIPELINE_MAX_SIZE_KB` | `512` | Didžiausias konvejerio iškvietimų žurnalo artefakto dydis KB, kai `call_log_pipeline_enabled=true`. | | `PROXY_LOGS_TABLE_MAX_ROWS` | `100000` | Didžiausias eilučių skaičius SQLite lentelėje `proxy_logs` prieš jos valymą. | | `PROXY_LOG_INCLUDE_IPS` | `false` | Įtraukti kliento / išvesties IP adresus ir paskyrų prefiksus į `[ProxyEgress]` konsolės žurnalus. Valdymo skydelio / duomenų bazės tarpinio serverio žurnalo įrašuose išsaugoma visa informacija. | | `APP_LOG_ROTATION_CHECK_INTERVAL_MS` | `60000` (1 min.) | Kaip dažnai `src/lib/logRotation.ts` pakartotinai tikrina aktyvaus žurnalo failo dydį. | | `CHAT_LOG_TEXT_LIMIT` | `65536` | Didžiausias pokalbių žurnalo artefaktuose išsaugomos eilutės ilgis (numatytoji reikšmė – 64 KB). | | `CHAT_LOG_ARRAY_TAIL_ITEMS` | `128` | Masyvo elementų, išsaugomų nuo pabaigos trumpinant pokalbių žurnalo duomenis, skaičius. | | `CHAT_LOG_MAX_DEPTH` | `6` | Didžiausias įdėjimo gylis, kurį viršijus pokalbių žurnalo duomenys trumpinami. | | `CHAT_LOG_MAX_OBJECT_KEYS` | `80` | Didžiausias objekto raktų, išsaugomų pokalbių žurnalo duomenyse, skaičius (0 = neribojama). | | `CHAT_LOG_MAX_BODY_KB` | `1024` | Visos užklausos / atsako turinio dydis (KB), kurį viršijus visa kopija pakeičiama glausta santrauka. Padidinkite šią reikšmę, jei ilgų agentinių pokalbių atveju valdymo skydelyje vietoje tikrųjų pranešimų rodoma vietos rezervavimo žyma. | | `CHAT_DEBUG_FILE` | `false` | Kai nustatyta `true`, `serializeArtifactForStorage` netaiko dydžiu pagrįsto trumpinimo. Skirta tik derinimui. | --- ## 17. Atminties optimizavimas | Kintamasis | Numatytoji reikšmė | Aprašymas | | ----------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_MEMORY_MB` | _automatinė_ (fizinėje sistemoje); **`1024` Docker atvaizde** | **Rekomenduojama** Docker / autonominio V8 kaupo riba (MB). Jei nenustatyta, dinamiškai apskaičiuojama (~35 % sistemos RAM, apribojant iki `[512, 4096]`); `512` yra tik apatinė riba, kai nepavyksta nuskaityti bendro atminties kiekio. Naudojant `run-standalone.mjs` (Docker CMD), **aiškiai nurodyta** reikšmė pridedama kaip `--max-old-space-size` ir turi **pirmenybę** prieš prieštaraujantį NODE_OPTIONS kaupo parametrą (V8 taiko paskutinį parametrą). `omniroute serve` vis dar teikia pirmenybę esamam NODE_OPTIONS kaupo parametrui (#5238). Nenustatykite abiejų skirtingais skaičiais — procesas žurnale pateikia įspėjimą, nurodydamas abi reikšmes ir kuri iš jų turi pirmenybę. **Oficialiame Docker atvaizde visada nustatoma `1024`, todėl jame kalibravimas niekada nevykdomas.** Programavimo agento `/v1/responses` reikia `8192`–`12288` ir papildomos cgroup atminties — žr. [Docker vadovą — vykdymo aplinkos RAM](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). | | `PROMPT_CACHE_MAX_SIZE` | `50` | Didžiausias talpykloje laikomų sistemos užklausų įrašų skaičius. | | `PROMPT_CACHE_MAX_BYTES` | `2097152` (2 MB) | Didžiausias bendras užklausų talpyklos dydis. | | `PROMPT_CACHE_TTL_MS` | `300000` (5 min.) | Užklausų talpyklos įrašo TTL. | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | Didžiausias talpykloje laikomų atsakymų, kurių temperature=0, skaičius. | | `SEMANTIC_CACHE_MAX_BYTES` | `4194304` (4 MB) | Didžiausias bendras semantinės talpyklos dydis. | | `SEMANTIC_CACHE_TTL_MS` | `1800000` (30 min.) | Semantinės talpyklos įrašo TTL. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | Vietinio tekstyno šaknų, kurių aktyvus indeksas vienu metu laikomas atmintyje, skaičius (`src/lib/localCorpus/configured.ts`). LRU: pasiekus ribą, pašalinamas seniausiai naudotos šaknies indeksas, o per kitą jos užklausą jis sukuriamas iš naujo. Mažiausia reikšmė apribojama iki `1`; jei reikšmė nėra skaitinė, naudojama numatytoji reikšmė. | | `STREAM_HISTORY_MAX` | `50` | Didžiausias naujausių srauto įvykių skaičius prietaisų skydelio tiesioginės peržiūros buferyje. | | `CONTEXT_LENGTH_DEFAULT` | `128000` | Visuotinė atsarginė didžiausia konteksto apimtis modeliams, kuriems nėra aiškiai nurodytos konfigūracijos. | | `USAGE_TOKEN_BUFFER` | `100` | Papildoma atpažinimo ženklų atsarga, rezervuojama naudojimo kvotoms stebėti. | ### Glaudinimas | Kintamasis | Numatytoji reikšmė | Aprašymas | | ------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | nenustatyta | Pasitikėti projekto `.rtk/filters.json` be `.rtk/trust.json` maišos. Naudokite tik kontroliuojamoje vietinėje kūrimo aplinkoje. | ### Atminties variklis (21 planas) ### Atminties, įgūdžių ir prieigos rakto atnaujinimo poveikis įvykių ciklui (#10349) OmniRoute yra **vienas Node procesas**. Atminties išgavimas / paieška, įgūdžių įterpimas ir teikėjo prieigos rakto atnaujinimas vykdomi tame **pačiame įvykių cikle** kaip `GET /healthz` ir prietaisų skydelis. Jie nevykdomi atskiroje vykdytojo gijoje. | Darbas | Kodas | Numatytoji reikšmė | Operatoriaus valdymas | | ----------------------------- | ---------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | Atminties išgavimas / paieška | `src/lib/memory/` | Valdymo skydelio **memoryEnabled** (pagal numatytuosius nustatymus įjungta) | Išjunkite **Nustatymai → Atmintis**. Atskiro aplinkos kintamojo avarinio išjungimo jungiklio nėra — funkciją galima išjungti tik nustatymuose. | | Įgūdžių įterpimas | `src/lib/skills/injection.ts` | Valdymo skydelio **skillsEnabled** (pagal numatytuosius nustatymus įjungta) | Išjunkite **Nustatymai → Atmintis / įgūdžiai** (`skillsEnabled`). Toliau nurodyti smėlio dėžės parametrai tik apriboja vykdymą, kai įterpimas jau įjungtas. | | Prieigos raktų atnaujinimas | `src/sse/services/tokenRefresh.ts` | Įjungta prijungtiems OAuth / žiniatinklio teikėjams | Atjunkite teikėją arba leiskite prieigos raktams likti galiojantiems; šiuo metu nėra aplinkos kintamojo `TOKEN_REFRESH=0`. | Jei mažai apkrautoje sistemoje `/healthz` veikia lėtai, pirmiausia išjunkite atmintį ir įgūdžius, tada patikrinkite katalogo / glaudinimo apkrovą (#10303, #9685). Šios funkcijos atlaisvina vykdymą ties `await` taškais, tačiau vis tiek konkuruoja dėl vienos gijos. Įterpinių sluoksnio, vektorių saugyklos ir pakartotinio reitingavimo parametrai, skirti nuolatinės atminties posistemei (`src/lib/memory/`). | Kintamasis | Numatytoji reikšmė | Aprašymas | | ------------------------------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (5 min.) | Atmintyje laikomos įterpinių podėlio reikšmės galiojimo trukmė (pagal šaltinio / modelio / matmenų parašą). | | `MEMORY_EMBEDDING_CACHE_MAX` | `1000` | Didžiausias LRU įrašų, saugomų įterpinių podėlyje, skaičius. | | `MEMORY_TRANSFORMERS_MODEL` | `Xenova/all-MiniLM-L6-v2` | HF saugyklos ID pasirenkamai vietinei `@huggingface/transformers` MiniLM eigai (~23 MB int8, ~400 MB RAM). | | `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | Statinio potion / Model2Vec peržvalgos lentelės įterpinių generatoriaus HF saugyklos ID. Į podėlio katalogą atsisiunčiama atidėtuoju būdu. | | `MEMORY_STATIC_CACHE_DIR` | `/embeddings` | Katalogas, naudojamas statinio potion modelio failams laikyti podėlyje. Jei nenustatyta, pagal numatytuosius nustatymus naudojamas `DATA_DIR` poaplankis. | | `HF_HUB_ENDPOINT` | `https://huggingface.co` | Pakeičia Hugging Face Hub bazinį URL, kurį naudoja `staticPotion.ts` (pvz., veidrodinio serverio galinis taškas nuo interneto izoliuotoms sistemoms). | | `MEMORY_VEC_TOP_K` | `20` | Numatytoji top-K reikšmė, naudojama `sqlite-vec` pilno perrinkimo vektorių paieškoje, esančioje `src/lib/memory/vectorStore.ts`. | | `MEMORY_RRF_K` | `60` | Reciprocal Rank Fusion konstanta `k`, skirta hibridinei FTS5 ir vektorių paieškai (`sqlite-vec` metodas). | | `VECTOR_STORE_DISABLE_VEC` | `false` | Testavimo / diagnostikos tarpinė vieta funkcijoje `getVectorStore()` (`src/lib/memory/vectorStore.ts`): kai nustatyta `true`, vektorių saugykla priverstinai nustatoma į `null` (imituojama debesijos / WASM aplinka be `sqlite-vec`), todėl atminties paieškai lieka FTS5 raktažodžių paieška. Gamybinėje aplinkoje nenustatykite. | | `NOTION_API_KEY` | _(nenustatyta)_ | Notion posistemės API raktas (naudojamas `genericBackend.ts` žinomos posistemės išankstinėje parinktyje). | | `NOTION_API_URL` | `https://api.notion.com/v1` | Notion API bazinis URL (galima pakeisti savarankiškai talpinamoms Notion alternatyvoms). | | `OBSIDIAN_API_KEY` | _(nenustatyta)_ | Obsidian Vault posistemės API raktas (naudojamas `genericBackend.ts` žinomos posistemės išankstinėje parinktyje). | | `OBSIDIAN_API_URL` | `http://localhost:27123` | Obsidian Vault API bazinis URL (galima pakeisti nuotolinei saugyklai). | | `MEMORY_TYPED_DECAY_ENABLED` | `false` | Pagrindinis TV6 tipizuotos atminties nykimo jungiklis. **Pasirenkama funkcija (pagal numatytuosius nustatymus išjungta)** — valymas **pašalina** sunykusius atminties įrašus. Kai išjungta, `access_count` / `last_accessed_at` yra tik telemetrija ir niekas niekada nepašalinama. | | `MEMORY_TYPED_DECAY_EPISODIC_DAYS` | `30` | TTL (dienomis), kuriam praėjus nenaudojamas `episodic` atminties įrašas sunyksta. Nustačius `0`, `episodic` įrašai taip pat tampa atsparūs. Ilgalaikiai tipai (`factual` / `procedural` / `semantic`) visada yra atsparūs. Nykimo laikmatis pradedamas iš naujo pagal `last_accessed_at`. | | `MEMORY_TYPED_DECAY_ACCESS_IMMUNITY` | `3` | Atminties įrašas, įterptas `>=` tiek kartų, tampa atsparus nykimui nepriklausomai nuo jo tipo. `0` išjungia prieigos suteikiamą atsparumą. | | `MEMORY_TYPED_DECAY_SWEEP_INTERVAL` | `0` (išjungta) | Neprivalomo periodinio nykimo valymo intervalas (sekundėmis) faile `src/lib/memory/typedDecay.ts`. `0` / nenustatyta = periodinis valymas nevykdomas. Reikia dvigubo pasirinktinio įjungimo: taip pat būtina nustatyti `MEMORY_TYPED_DECAY_ENABLED=true`. | | `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(nenustatyta)_ | Kableliais atskirti teikėjų ID (neskiriant didžiųjų ir mažųjų raidžių), priimantys `system` pranešimą **tik ties indeksu 0** (`src/lib/memory/injection.ts`). Šiems teikėjams podėliui saugus atminties įterpimas masyvo viduryje nėra saugus kelių žingsnių pokalbiuose, todėl atmintis sujungiama arba pridedama pradžioje kaip pirmasis sistemos pranešimas. Pagal numatytuosius nustatymus taikoma tik `xiaomi-mimo` / `mimo`; išplėskite savarankiškai talpinamiems su OpenAI suderinamiems galiniams taškams (pvz., Qwen3.5+/3.6), kurių pokalbių šablonas reikalauja tokio paties vienintelio pirmojo sistemos pranešimo apribojimo. | ### Mažai RAM naudojančio Docker pavyzdys `128` skirta tik valdymo skydeliui. Programavimo agentai su tokiu atminties kiekiu ilgų `/v1/responses` užklausų metu susiduria su `FATAL ERROR`. Nenaudokite šio pavyzdžio kaip Claude / Codex / Grok tinklų sietuvo. ```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. Kainodaros sinchronizavimas Automatinis modelių kainodaros duomenų sinchronizavimas iš išorinių šaltinių. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ----------------------- | ------------------ | ------------------------ | ---------------------------------------------------------------- | | `PRICING_SYNC_ENABLED` | `false` | `src/lib/pricingSync.ts` | Pasirinktinai įjungiamas periodinis kainodaros sinchronizavimas. | | `PRICING_SYNC_INTERVAL` | `86400` (24h) | `src/lib/pricingSync.ts` | Sinchronizavimo intervalas sekundėmis. | | `PRICING_SYNC_SOURCES` | `litellm` | `src/lib/pricingSync.ts` | Kableliais atskirti duomenų šaltiniai. | --- ## Arena ELO sinchronizavimas | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------- | ------------------ | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Periodinis Arena AI lyderių lentelės ELO sinchronizavimas, konfigūruojamas valdymo skydelio funkcijų žymose arba išjungiamas nustačius `false`. | | `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | Modelių ID priešdėlio forma, naudojama `GET /v1/models`. `dual` kiekvienam modeliui pateikia ir trumpojo pseudonimo priešdėlį, ir kanoninį teikėjo priešdėlį (atgalinis suderinamumas — katalogas tampa maždaug dvigubai didesnis); `alias` pateikia po vieną ID kiekvienam modeliui; `canonical` pateikia tik visą teikėjo ID priešdėlį (teikėjams, kurių pseudonimas jau yra kanoninis ID, paliekamas vienas įrašas). Klientai gali pakeisti šią nuostatą kiekvienai užklausai naudodami `?prefix=alias`. Žr. [API_REFERENCE](API_REFERENCE.md#model-id-prefixes-prefix). | | `ARENA_ELO_SYNC_INTERVAL` | `86400` (24h) | `src/lib/arenaEloSync.ts` | Sinchronizavimo intervalas sekundėmis. | --- ## PromptQL bandomosios aplinkos teikėjas (neoficialus / eksperimentinis) Atvirkštinės inžinerijos būdu sukurta GraphQL seanso sąsaja, skirta prompt.ql.app (`src/shared/constants/providers/web-cookie.ts`). Visi parametrai neprivalomi — numatytosios reikšmės nurodo viešosios bandomosios aplinkos galinius taškus; keiskite jas tik naudodami savarankiškai talpinamą arba alternatyvų PromptQL diegimą. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | `PROMPTQL_GRAPHQL_ENDPOINT` | `https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql` | `open-sse/executors/promptql.ts` | GraphQL galinis taškas, naudojamas pokalbių ir seansų operacijoms. | | `PROMPTQL_CREDITS_ENDPOINT` | `https://data.pro.ql.app/v1/graphql` | `open-sse/executors/promptql.ts`, `open-sse/services/usage/promptql.ts` | GraphQL galinis taškas, naudojamas kreditų likučiui ir naudojimui užklausti. | | `PROMPTQL_TOKEN_REFRESH_URL` | `https://auth.pro.ql.app/ddn/project/token` | `open-sse/executors/promptql.ts` | Galinis taškas, naudojamas bandant atnaujinti prieigos raktą. | | `PROMPTQL_POLL_TIMEOUT_MS` | `180000` | `open-sse/executors/promptql.ts` | Ilgiausia trukmė (ms), kurią apklausiami `thread_events` prieš pasibaigiant skirtajam laikui. | --- ## „HyperAgent“ žiniatinklio teikėjas (neoficialus / eksperimentinis) Atvirkštinės inžinerijos būdu sukurta hyperagent.com seanso sąsaja (`src/shared/constants/providers/web-cookie.ts`). Neprivaloma — pagal numatytąją nuostatą naudojamas viešas atsiskaitymo / naudojimo galinis taškas; keiskite tik savarankiškai talpinamam arba alternatyviam „HyperAgent“ diegimui. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ---------------------- | --------------------------------------------------- | --------------------------------------- | -------------------------------------------------------------------------- | | `HYPERAGENT_USAGE_URL` | `https://hyperagent.com/api/settings/billing/usage` | `open-sse/services/usage/hyperagent.ts` | Galinis taškas, naudojamas atsiskaitymo / naudojimo kreditų blokams gauti. | --- ## „Kilo Code“ naudojimo kvotos Asmeninio USD likučio ir „Kilo Pass“ naudojimo duomenų gavimas „Kilo Code“ teikėjui. Neprivaloma — pagal numatytąją nuostatą naudojama vieša „Kilo“ API; keiskite tik tarpiniam serveriui arba bandomajai imitacijai. Autentifikavimui naudojamas esamas ryšio OAuth prieigos prieigos raktas. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | -------------- | --------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------- | | `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | Bazinis URL, naudojamas asmeniniam „Kilo Code“ likučiui ir „Kilo Pass“ naudojimo duomenims gauti. | --- ## „Adobe Firefly“ žiniatinklio teikėjas (neoficialus / eksperimentinis) Naršykle valdomas „Adobe Firefly“ žiniatinklio teikėjo seanso atnaujinimas (`open-sse/services/adobeFireflyBrowserLogin.ts`, `open-sse/services/adobeFireflySession.ts`, `open-sse/services/adobeFireflyClient.ts`). Neprivaloma — visos numatytosios nuostatos pritaikytos įprastam darbalaukio diegimui. > **Pašalinta leidime #9255.** Senoji prie CDP prijungta „Chrome“ vykdymo aplinka (adobeFireflyChromeRuntime.ts) buvo > pakeista „Playwright“ prisijungimo per naršyklę paslauga, o jos nustatymai nebeegzistuoja. > ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART kintamieji, taip pat > ADOBE_FIREFLY_LOGIN_WAIT_MS ir ADOBE_FIREFLY_FORTER_WAIT_MS, niekur > kodų bazėje neskaitomi — jų nustatymas neturi jokio poveikio. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ------------------------------------ | ------------------ | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Nustatykite `1`, kad „Chrome“ veiktų visiškai be grafinės sąsajos (žinoma, kad generavimas neveikia; skirta tik derinimui). | | `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | Įjungia arba išjungia aktyvų išankstinį naršyklės paruošimą. `0` išjungia aktyvų išankstinį paruošimą (atkūrimas po 408 klaidos paketo viduryje vis tiek taikomas). | | `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | Nustatykite `0`, kad „Adobe Firefly“ seansas nebūtų išsaugomas diske. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(nenustatyta)_ | `open-sse/services/adobeFireflySession.ts` | Minimalus privalomas intervalas (ms) tarp vienas po kito atliekamų pateikimų, pakeičiantis integruotąją numatytąją reikšmę. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | _(nenustatyta)_ | `open-sse/services/adobeFireflySession.ts` | Papildomas intervalas (ms), pridedamas sėkmingai apdorojus paketą ir pakeičiantis integruotąją numatytąją reikšmę. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(nenustatyta)_ | `open-sse/services/adobeFireflyClient.ts` | Bazinis delsos laikas (ms) prieš pateikiant generavimo užklausą, pakeičiantis integruotąją numatytąją reikšmę. | --- ## 19. Modelių sinchronizavimas (kūrimo aplinka) | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ----------------------------------- | ------------------ | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MODELS_DEV_SYNC_ENABLED` | _(nenustatyta)_ | `src/lib/modelsDevSync.ts` | Priverstinis models.dev kainodaros sinchronizavimo perrašymas. Nenustačius paisoma Nustatymai > DI parinkties (`modelsDevSyncEnabled`). `0`/`false`/`off`/`no` **turi pirmenybę prieš DB** ir praleidžia tiek periodinį sinchronizavimą, tiek `getModelsDevPricing()` SQL/JSON nuskaitymus (atkūrimui, kai valdymo skydelis užstringa toje pačioje įvykių kilpoje). `1`/`true`/`on`/`yes` priverstinai įjungia sinchronizavimą. Išsaugant ar išvalant kainodarą vis tiek iškviečiama `backupDbFile("pre-write")`; šis iškvietimas nieko neatlieka, kai taikomas 60 minučių ribojimas arba `DISABLE_SQLITE_AUTO_BACKUP`. | | `MODELS_DEV_SYNC_INTERVAL` | `86400` (24 val.) | `src/lib/modelsDevSync.ts` | Kūrimo metu naudojamas modelių katalogo sinchronizavimo intervalas sekundėmis. | | `CONTEXT_WINDOW_RECONCILE_INTERVAL` | `86400` (24 val.) | `src/lib/contextWindowResolver.ts` | Savaime pasitaisančio konteksto lango suderintuvo (5004) intervalas (sekundėmis): kai teikėjo per `/models` aptikimą deklaruoti langai skiriasi nuo katalogo, jie įtvirtinami kaip `auto:discovery` perrašymai. Norėdami išjungti, nustatykite `0`. Pakartotinai naudojami jau sinchronizuoti duomenys (nauja užklausa nevykdoma); `manual` perrašymai niekada neperrašomi. | --- ## 20. Teikėjui būdingi nustatymai | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 val.) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter modelių katalogo podėlio TTL. | | `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Įtraukti patogiai rodomus `name` laukus į `/v1/models` atsakymus. Išjunkite klientams, kurie tikisi tik ID. | | `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 sek.) | `src/app/api/v1/models/catalogCache.ts` | Šaltojo kelio sujungto `GET /v1/models` katalogo atkūrimo laukimo riba (#12627). Pasibaigus skirtajam laikui, pateikiamas paskutinis tinkamas 200 atsakymas, jei toks yra. | | `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dienų) | `src/lib/db/models/activeSyncedCatalog.ts` | Laikotarpis, kuriam praėjus sinchronizuotas ryšio modelių sąrašas nebelaikomas patikimu maršrutizavimo šaltiniu ir pereinama prie registro (#12849). Įrašai, kuriems niekada nebuvo priskirta laiko žyma, laikomi pasenusiais. | | `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Ilgiausias NanoBanana vaizdų generavimo užduočių laukimo laikas. | | `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana užduočių būsenos tikrinimo dažnis. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Bazinis Adobe Firefly raiškos didinimo pateikimo pakartotinių bandymų eksponentinio delsimo laikas. | | `AWS_REGION` | _(nenustatyta)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Regionas, naudojamas AWS Bedrock galiniams taškams (Kiro, garsui) sudaryti. | | `AWS_DEFAULT_REGION` | _(nenustatyta)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Atsarginė reikšmė, kai `AWS_REGION` nenustatytas. | | `CLOUDFLARE_ACCOUNT_ID` | _(nenustatyta)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI paskyros ID. | | `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nenustatyta)_ | `open-sse/executors/cloudflare-playground.ts` | Visas darbalaukio Chrome dvejetainio failo kelias, skirtas Cloudflare AI Playground vykdyklei ir naudojamas, kai naršyklės be grafinės sąsajos kontrolinio kodo patikra blokuoja su Playwright pateikiamą Chromium. | | `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Pakeisti bazinį Cloudflare REST API adresą, kurį naudoja tarpinių serverių telkinio Workers perdavimo paslaugos diegimo priemonė (#4640 / 9router#1360). | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Numatytasis darbuotojo projekto pavadinimas, siūlomas tarpinių serverių telkinio „Deploy Relay“ modaliniame lange. | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nustatykite `false`, kad tarpinių serverių telkinio skirtuke būtų paslėpta Cloudflare Workers perdavimo parinktis. | | `CLOUDFLARED_BIN` | aptinkama automatiškai | `src/lib/cloudflaredTunnel.ts` | Pasirinktinis kelias į `cloudflared` dvejetainį failą. | | `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunelio transportavimo protokolas: `http2` (numatytasis), `quic` arba `auto`. | | `CLOUDFLARED_CONFIG` | _(nenustatyta)_ | `src/lib/cloudflaredTunnel.ts` | Kelias į vietoje valdomą cloudflared `config.yml` (su `tunnel:`, `credentials-file:`, `ingress:`). Kai nustatyta, OmniRoute vykdo `tunnel --config run` (įvardytą tunelį), o ne laikinąjį spartųjį tunelį. | | `CLOUDFLARED_HOSTNAME` | _(iš konfigūracijos ingress)_ | `src/lib/cloudflaredTunnel.ts` | Įvardyto tunelio viešojo pagrindinio kompiuterio vardo (pvz., `ai.example.com`), pateikiamo kaip `publicUrl`/`apiUrl`, pakeitimas. Kai nenustatyta, jis nuskaitomas iš pirmojo konfigūracijos `ingress` pagrindinio kompiuterio vardo. | | `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Perrašomas Deno Deploy REST API bazinis adresas, kurį naudoja tarpinių serverių telkinio perdavimo diegimo priemonė (#4643 / 9router#1437). | | `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Numatytasis Deno Deploy programos pavadinimas, siūlomas tarpinių serverių telkinio modale „Diegti perdavimo paslaugą“. | | `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nustatykite `false`, kad Deno Deploy perdavimo parinktis būtų paslėpta skirtuke „Tarpinių serverių telkinys“. | | `SEARCH_CACHE_TTL_MS` | `300000` (5 min.) | `open-sse/services/searchCache.ts` | Paieškos API (Perplexity, Brave ir kt.) atsakymų podėlio TTL. | | `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Parodoma eksperimentinė su CC suderinamo teikėjo naudotojo sąsaja, skirta tik Claude Code perdavimo paslaugoms. | | `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Perrašomas pagrindinio kompiuterio adresas, kuriuo įtaisytasis 9router egzempliorius priima ryšius. | | `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Perrašomas prievadas, kuriuo įtaisytasis 9router egzempliorius priima ryšius. | | `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Įtaisytosios paslaugos WebSocket tarpinio serverio susiejimo pagrindinio kompiuterio adresas (pagal numatytuosius nustatymus – tik grįžtamojo ryšio sąsaja). | | `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Įtaisytosios paslaugos WebSocket tarpinio serverio prievadas. | | `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI tilto pagrindinio kompiuterio adresas (senstelėjusi integracija). | | `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI tilto prievadas. | | `CLIPROXYAPI_API_KEY` | _(tuščia)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Atsarginis duomenų lygmens raktas, naudojamas, kai nėra `cliproxyapi_api_key` nustatymo. | | `CLIPROXYAPI_MANAGEMENT_KEY` | _(tuščia)_ | `src/lib/services/cliproxyAccountHealth.ts` | Valdymo raktas, skirtas paskyros būklės duomenims nuskaityti iš išoriškai valdomo CLIProxyAPI egzemplioriaus. | | `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI konfigūracijos katalogas. | | `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Pagrindinio kompiuterio sąsaja, kurioje docker-compose publikuoja `cliproxyapi` pagalbinį konteinerį (#12578). Jo duomenų tome saugomi teikėjo OAuth/API prisijungimo duomenys, o fiksuota atvaizdo versija nepalaiko aplinkos kintamaisiais pagrįsto duomenų lygmens `api-keys` perrašymo (galima naudoti tik prijungtą `config.yaml`), todėl `0.0.0.0` atveria prisijungimo duomenis turinčią paslaugą visam LAN. | | `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Perrašomas prievadas, kuriuo įtaisytasis Mux (coder/mux) agentų orkestravimo demonas priima ryšius (visada 127.0.0.1). | | `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Perrašomas prievadas, kuriuo įtaisytasis open-wa (WhatsApp Web automatizavimo) demonas priima ryšius (visada 127.0.0.1). | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario įtaisytosios paslaugos susiejimo / prisijungimo pagrindinio kompiuterio adresas (pagal numatytuosius nustatymus – tik grįžtamojo ryšio sąsaja). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario įtaisytosios paslaugos prievadas. | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario įtaisytosios paslaugos susiejimo / prisijungimo pagrindinio kompiuterio adresas (pagal numatytuosius nustatymus – tik grįžtamojo ryšio sąsaja). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | „Dario“ integruotosios paslaugos prievadas. | | `LOCAL_HOSTNAMES` | _(tuščia)_ | `open-sse/config/providerRegistry.ts` | Kableliais atskirti papildomi pagrindinių kompiuterių vardai, laikomi „vietiniais“ („Docker“ paslaugų vardai ir kt.). | `ENABLE_CC_COMPATIBLE_PROVIDER` skirta tik trečiųjų šalių tarpinėms paslaugoms, kurios priima išimtinai „Claude Code“ klientus. „OmniRoute“ perrašo užklausas, kad šios tarpinės paslaugos jas priimtų. Jei norite naudoti tik „Claude Code“ CLI arba nesate tikri, kas yra šios tarpinės paslaugos, palikite šią parinktį išjungtą ir vietoj jos pridėkite įprastą su „Anthropic“ suderinamą teikėją. --- ## 21. Tarpinių serverių būklė | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | `src/lib/proxyHealth.ts` | Sparčiojo gedimo būklės patikros skirtasis laikas. | | `PROXY_LATENCY_WINDOW_HOURS` | `3` | `src/lib/db/proxies.ts` | Laiko intervalas (valandomis), naudojamas galimų tarpinių serverių vidutinei delsai apskaičiuoti pagal delsą optimizuotoje telkinio strategijoje. | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | `src/lib/proxyHealth.ts` | Būklės patikros rezultatų podėlio TTL. | | `PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS` | `2000` | `src/lib/proxyHealth.ts` | Nepavykusių tarpinio serverio būklės patikrų podėlio TTL. Nustatykite jį trumpesnį nei `PROXY_HEALTH_CACHE_TTL_MS`, kad laikinojo tarpinio serverio skirtojo laiko viršijimo atveju, esant dideliam lygiagrečių užklausų skaičiui, patikra būtų greitai pakartota, neišjungiant sparčiojo gedimo mechanizmo iš tiesų neveikiantiems tarpiniams serveriams. | | `PROXY_HEALTH_ENABLED` | `true` | `src/lib/proxyHealth/scheduler.ts` | Nustatykite `false`, kad išjungtumėte foninę tarpinių serverių būklės planavimo priemonę, kuri periodiškai tikrina užregistruotus tarpinius serverius. | | `PROXY_HEALTH_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Foninės būklės planavimo priemonės tikrinimo intervalas milisekundėmis (mažiausiai `60000`). | | `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Foninio atkūrimo patikrinimo intervalas ms: kaip dažnai pakartotinai tikrinami anksčiau neveikę tarpiniai serveriai, kad atkurtas tarpinis serveris būtų grąžintas į rotaciją be paleidimo iš naujo. Mažesnėms nei `60000` reikšmėms naudojama numatytoji reikšmė. | | `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | Pasiekiamumo patikros paskirties vieta, kurią naudoja planuoklis ir galinis taškas `/api/settings/proxies/auto-test`. Nurodykite vidinį / savarankiškai teikiamą URL, kad nebūtų naudojama numatytoji viešoji paskirties vieta. | | `PROXY_HEALTH_TEST_CONCURRENCY` | `10` | `src/lib/proxyHealth/probeTarget.ts` | Vienu metu pakete pradedamų patikrų skaičius, bendras planuokliui ir galiniam taškui `/api/settings/proxies/auto-test`. Suapvalinama žemyn iki sveikojo skaičiaus; mažiausia reikšmė – 1, didžiausia – 50. | | `PROXY_HEALTH_TEST_STAGGER_MS` | `100` | `src/lib/proxyHealth/probeTarget.ts` | Delsa ms tarp dviejų paketo patikrų išsiuntimo. Be jos visas paketas išsiunčiamas tuo pačiu metu, todėl bendra išeinančio srauto IP gali suaktyvinti užklausų dažnį ribojančią paskirties vietą. Nustatykite `0`, kad išjungtumėte intervalus; didžiausia reikšmė – 5000. | | `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | Nustatykite „false“, kad nebūtų tikrinamas tikrasis tarpiniam serveriui priskirto paslaugų teikėjo pagrindinis kompiuteris (`GET /models`, be API rakto) ir vietoje jo visada būtų naudojamas `PROXY_HEALTH_TEST_URL`. | | `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | Kai nustatyta `false` (numatytoji reikšmė), automatinės pasiekiamumo patikros (planuoklis ir `/api/settings/proxies/auto-test` mygtukas „Tikrinti visus“) yra **skirtos tik skaityti** ir niekada nekeičia tarpinio serverio būsenos – aktyvią / neaktyvią būseną nustato tik operatorius, todėl nepastovi patikra negali palikti priskirto tarpinio serverio neveiksnaus (#6246). Nustatykite `true`, kad atkurtumėte ankstesnę tikrinimo ir būsenos nustatymo veikseną. | | `FLUSH_EMPTY_RETRY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Pasirenkama funkcijos žymė (žr. [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); valdymo skydelyje nustatyta DB reikšmė turi pirmenybę). `true` (arba `1`, `yes`) pakartotinai bando apdoroti tuščius išversto srautinio perdavimo atsakymus per įprastą kredencialų kelią (iki `STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX` pakartotinių bandymų), užuot pateikus tuščią 200 arba 502 atsakymą su tuščiu turiniu. | | `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | Pasirenkama funkcijos žymė (žr. [FEATURE_FLAGS.md](./FEATURE_FLAGS.md); valdymo skydelyje nustatyta DB reikšmė turi pirmenybę). `true` (arba `1`, `yes`) valdymo skydelyje po tarpinių serverių telkiniu rodo tik skaitomą telkinio išeinančio srauto stebėjimo informaciją (skirtingus išeinančio srauto IP, ryšių skaičių ir dažniausiai per pastarąsias 24 val. už vieno IP aptiktą skaičių, nustatytą pagal tarpinių serverių žurnalą). Maršrutizavimui niekada nenaudojama. | | `PROXY_AUTO_REMOVE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Nustatykite `true`, kad planuoklė automatiškai pašalintų tarpinius serverius po pasikartojančių iš eilės einančių nesėkmių. | | `PROXY_AUTO_REMOVE_AFTER` | `3` | `src/lib/proxyHealth/scheduler.ts` | Iš eilės einančių nesėkmių skaičius, po kurio planuoklė automatiškai pašalina tarpinį serverį (kai `PROXY_AUTO_REMOVE=true`). | | `PROXY_AUTO_DISABLE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Nustatykite `true`, kad planuoklė po pasikartojančių iš eilės einančių nesėkmių laikinai išjungtų tarpinį serverį (būsena `dead`, jis niekada nepašalinamas), užuot jį pašalinusi. Tai nedestruktyvi `PROXY_AUTO_REMOVE` alternatyva: tarpinis serveris nedelsiant pašalinamas iš telkinio / rotacijos parinkimo (aktyvumo būsenos filtras, naudojamas apimties telkinio parinkimui, jau jo neįtraukia) ir automatiškai vėl aktyvuojamas, kai tik vėl sėkmingai pereina patikras. Naudojama ta pati `PROXY_AUTO_REMOVE_AFTER` riba. Jei abi vėliavėlės yra `true`, pirmenybė teikiama `PROXY_AUTO_REMOVE`. | | `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Leisti OAuth ir teikėjo tikrinimo eigoms apeiti priskirtą tarpinį serverį ir prisijungti tiesiogiai, kai nepavyksta išankstinės tarpinio serverio pasiekiamumo patikros. Galiojanti pirmumo tvarka: funkcijų vėliavėlių DB perrašymas > aplinkos kintamasis > numatytoji reikšmė. | | `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30 s) | `src/lib/resilience/settings.ts` | Numatytasis **laukimo eilėje** laiko limitas: kiek laiko užklausa gali laukti teikėjo vietos ir būti eilėje, kol bus atmesta taip ir nepasiekusi išorinio serverio. Laikmatis išvalomas, kai užduotis pradedama vykdyti — vykdymas atskirai ribojamas naudojant `RATE_LIMIT_EXECUTION_MAX_WAIT_MS`. Aplinkos kintamasis nustato tik numatytąją reikšmę: įrašyta `resilienceSettings.requestQueue.maxWaitMs`, o po jos kiekvienam ryšiui skirta `rateLimitOverrides.maxWaitMs` turi pirmenybę prieš ją. | | `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (10 min.) | `open-sse/services/rateLimitManager.ts` | Ilgiausias laikas, kurį priimta užklausa gali būti vykdoma prieš pasibaigiant jos spartos ribojimo rezervacijai — jis atsietas nuo laukimo eilėje laiko limito, kad lėta duomenų gavimo pradžia neinkrementiniuose tinklų sietuvuose nesukeltų skirtojo laiko pabaigos (#12027). | | `RATE_LIMIT_MAX_QUEUE_DEPTH` | `0` (išjungta) | `open-sse/services/rateLimitManager.ts` | Priėmimo į eilę riba: atmesti pateikiant 429 `queue_full`, kai eilėje jau laukia tiek užklausų. `0` = neribota (numatytoji reikšmė). | | `RATE_LIMIT_AUTO_ENABLE` | _(nenustatyta)_ | `open-sse/services/rateLimitManager.ts` | Priverstinai įjungti arba išjungti automatinio spartos ribojimo apsaugą, neatsižvelgiant į išsaugotą valdymo skydelio nustatymą. Priimama `true`/`1`/`on`, norint priverstinai įjungti, ir `false`/`0`/`off`, norint priverstinai išjungti. | | `PROVIDER_COOLDOWN_ENABLED` | _(nenustatyta → išjungta)_ | `open-sse/services/providerCooldownTracker.ts` | Pasirinktinis visuotinis tarp užklausų veikiantis teikėjų / ryšių atvėsimo laikotarpio stebėjimas. Pagal numatytuosius nustatymus IŠJUNGTAS (persidengia su ryšio atvėsimo laikotarpiu / teikėjo grandinės pertraukikliu). Norint įjungti, priimamos reikšmės `true`/`1`/`on`. | | `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | Minimalus atvėsimo laikotarpis (ms) prieš pakartotinai bandant naudoti sutrikusį teikėją / ryšį. Eksponentiškai didinamas su kiekviena iš eilės įvykusia triktimi. Naudojamas tik tada, kai įjungtas `PROVIDER_COOLDOWN_ENABLED`. | | `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 min.) | `open-sse/services/providerCooldownTracker.ts` | Maksimali atvėsimo laikotarpio riba (ms), po kurios, nepaisant aplinkybių, pakartotinai bandoma naudoti sutrikusį teikėją / ryšį. Naudojama tik tada, kai įjungtas `PROVIDER_COOLDOWN_ENABLED`. | | `STREAM_RECOVERY_ENABLED` | _(nenustatyta → išjungta)_ | `src/lib/resilience/settings.ts` (pradinė reikšmė) → `open-sse/services/streamRecovery.ts` (logika) | **Kas tai:** skaidrus nutrūkusių aukštesnio lygmens srautų atkūrimas (`free-claude-code` prievadas). Pradinis SSE langas sulaikomas iki `STREAM_RECOVERY.HOLDBACK_MS` (750 ms), kad _prieš patvirtinimą_ įvykęs nutraukimas — dar prieš bet kuriam baitui pasiekiant klientą — būtų nepastebimai iš naujo atvertas ir pakartotas. **Kada įjungti:** kai aukštesnio lygmens šaltiniai nepatikimi ir srauto pradžioje dažnai nutraukiami nepersiuntus nė vieno baito; palikite IŠJUNGTĄ, jei negalite leisti, kad kiekviename sraute laikas iki pirmojo prieigos rakto pailgėtų iki 750 ms. Priimamos reikšmės `true`/`1`/`on`. Nustato pradinę išsaugomo atsparumo parametro reikšmę; nustačius parametro reikšmę skydelyje, pirmenybė teikiama jai. | | `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(nenustatyta → išjungta)_ | `src/lib/resilience/settings.ts` (pradinė reikšmė) → `open-sse/services/streamRecovery.ts` (logika) | **Kas tai:** tęsimas srauto viduryje (4.4 etapas) — po _patvirtinus_ įvykusio nutraukimo (baitai jau pasiekė klientą) užklausa pateikiama iš naujo, dalinį tekstą naudojant kaip išankstinį asistento užpildą, o trūkstama galinė dalis prijungiama. Tik su OpenAI suderinami paprastojo teksto srautai; niekada nesuaktyvinama vykstant įrankio iškvietimui. **Kada įjungti:** kai ilgi generavimai nutraukiami atsakymo viduryje ir sutinkate, kad atkurta galinė dalis būtų pateikta vienu pliūpsniu, o ne po prieigos raktą. Nepriklauso nuo `STREAM_RECOVERY_ENABLED` (kitoks rizikos profilis). Priimamos reikšmės `true`/`1`/`on`. | | `STREAM_THROUGHPUT_WATCHDOG_ENABLED` | _(nenustatyta → išjungta)_ | `src/lib/resilience/settings.ts` → `open-sse/services/throughputWatchdog.ts` | Pasirinktinis aktyvaus srauto naudingojo išvesties pralaidumo stebėjimo mechanizmas. Aptinka srautus, kurie toliau siunčia fragmentus, tačiau nepasiekia sukonfigūruoto asistento išvesties greičio; palaikomieji signalai, naudojimo įvykiai, tušti pokyčiai ir įrankių / samprotavimo etapai nelaikomi pažanga. Veikia atskirai nuo neveiklumo ir griežto galutinio termino skirtųjų laikų. | | `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Atidėjimo laikotarpis prieš vertinant pralaidumą, ribojamas iki 0–600000 ms. | | `STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Slenkantysis naudingojo išvesties vertinimo langas, ribojamas iki 1000–600000 ms; prieš nutraukiant būtinas vienas visas langas. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND` | `4` | `src/lib/resilience/settings/normalize.ts` | Minimalus UTF-8 asistento išvesties baitų dažnis (konservatyvus prieigos raktų pakaitinis rodiklis), ribojamas iki 1–1000000. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES` | `1` | `src/lib/resilience/settings/normalize.ts` | Minimalus išmatuojamu laikomas nenulinis naudingosios išvesties imties dydis, ribojamas iki 1–1000000 baitų. | | `HEALTHCHECK_STAGGER_MS` | `3000` | `src/lib/tokenHealthCheck.ts` | Pakopinis intervalas (ms) tarp teikėjo prieigos raktų būklės patikrų paleidimo metu. | | `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | Mažiausias atsitiktinis delsos nuokrypis (ms), pridedamas prie `HEALTHCHECK_STAGGER_MS` tarp teikėjo prieigos raktų būklės patikrų, siekiant išvengti staigaus užklausų antplūdžio (problema #1220). | | `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | Didžiausias atsitiktinis delsos nuokrypis (ms), pridedamas prie `HEALTHCHECK_STAGGER_MS` tarp teikėjo prieigos raktų būklės patikrų, siekiant išvengti staigaus užklausų antplūdžio (problema #1220). | | `HEALTHCHECK_BATCH_SIZE` | `20` | `src/lib/tokenHealthCheck.ts` | Paleidimo metu vykdomos prieigos raktų būklės patikros vienalaikių patikrų paketo dydis; didesnės reikšmės leidžia lygiagrečiai tikrinti daugiau ryšių, o mažesnės sumažina momentinę apkrovą (problema #7875, problemos #7719 regresija). | | `REQUEST_RETRY` | `2` | `src/sse/services/cooldownAwareRetry.ts` | Automatinių pakartotinių bandymų skaičius gavus su modeliu susietą laikinojo ribojimo atsaką, prieš grąžinant klaidą klientui. | | `MAX_RETRY_INTERVAL_SEC` | `30` | `src/sse/services/cooldownAwareRetry.ts` | Didžiausias eksponentinio delsimo intervalas (sekundėmis) tarp pakartotinių bandymų po laikinojo ribojimo. Ši reikšmė taikoma kaip viršutinė riba neatsižvelgiant į aukštesnio lygmens `Retry-After`. | | `HEADROOM_URL` | `http://localhost:8787` | `src/lib/headroom/detect.ts` | „Headroom“ prieigos raktus taupančio tarpinio serverio URL. Pagal numatytąją nuostatą valdymo skydelio gyvavimo ciklas (`api/headroom/*`) vietinėje grįžtamojo ryšio sąsajoje paleidžia `headroom-ai` CLI; keiskite tik norėdami nukreipti į išorinį „Docker“ pagalbinį tarpinį serverį. | ### Srauto atkūrimo derinimo konstantos Atkūrimo sulaikymo elgsena derinama naudojant kode įrašytas konstantas faile `open-sse/config/constants.ts` (`STREAM_RECOVERY`), kurios čia pateiktos informaciniais tikslais — norint jas pakeisti, reikia redaguoti kodą, o ne aplinkos kintamąjį: - `STREAM_RECOVERY.HOLDBACK_MS = 750` — kiek laiko sulaikomas pradinis SSE langas, kad ankstyvo nutraukimo atveju būtų galima bandyti dar kartą prieš perduodant klientui bet kurį baitą. - `STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536` — griežta sulaikyto lango dydžio riba; perdavimas (buferio ištuštinimas ir tolesnis tiesioginis perdavimas) pradedamas iškart, kai sukaupiama tiek baitų, neatsižvelgiant į laikmatį. - `STREAM_RECOVERY.EARLY_RETRY_MAX = 4` — didžiausias skaidrių pakartotinių aukštesnio lygmens srauto atidarymų skaičius, kol sulaikyti duomenys dar nepradėti perduoti. > **Kiekvieno teikėjo slankiojo lango spartos apribojimas (be aplinkos kintamojo):** iš FCC perkeltas > atsarginis kiekvieno teikėjo slankiojo lango spartos ribojimo mechanizmas yra kode > (`open-sse/services/providerDefaultRateLimit.ts`, prijungtas per > `open-sse/services/rateLimitManager.ts`), tačiau pateikiamas su **tuščiu numatytuoju atvaizdžiu** > ir šiuo metu **neturi operatoriui skirto aplinkos kintamojo** — jis įjungiamas tik naudojant testavimo sąsają / > redaguojant kodą. Jis sąmoningai neįtrauktas į pirmiau pateiktą lentelę. Kiekvienos `(token, IP)` > poros perdavimo ribotuvas, kuris _turi_ nustatymą, yra `RELAY_IP_PER_MINUTE` (§3 Tinklas ir prievadai). --- ## 22. Derinimas > [!CAUTION] > Šie kintamieji generuoja **išsamią išvestį** ir gali atskleisti neskelbtinus duomenis. **Niekada neįjunkite jų gamybinėje aplinkoje.** | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CURSOR_DEBUG` | _(nenustatyta)_ | `open-sse/executors/cursor.ts` | Nustatykite `1`, kad įjungtumėte išsamius Cursor vykdyklės žurnalus (dekoduotus SSE fragmentus ir kt.). | | `CURSOR_STREAM_DEBUG` | _(nenustatyta)_ | `open-sse/executors/cursor.ts` | Su ankstesnėmis versijomis suderinamas `CURSOR_DEBUG` alternatyvus pavadinimas. | | `CURSOR_DUMP_FILE` | _(nenustatyta)_ | `open-sse/executors/cursor.ts` | Pasirinktinis failo kelias, į kurį įrašomi neapdoroti dekoduoti Cursor fragmentai, kai `CURSOR_DEBUG=1`. | | `CURSOR_STREAM_TIMEOUT_MS` | `300000` | `open-sse/executors/cursor.ts` | Cursor vykdyklės neaktyvaus srauto skirtasis laikas (ms). | | `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | Papildomas laukimo laikotarpis (ms) po composer kv_after_text minkštojo užbaigimo žymeklio, kai buferyje lieka baitų — suteikia paskesniam exec_mcp įrankio iškvietimui laiko užbaigti savo kadrą. | | `CURSOR_TOOL_DIRECTIVE` | įjungta (`!== "0"`) | `open-sse/executors/cursor.ts` | Įrankio patvirtinimo direktyva, užtikrinanti, kad composer-2.5 patikimai vykdytų įrankių iškvietimus. Norėdami išjungti, nustatykite `0`. | | `OMNIROUTE_SYSTEM_INSTRUCTION_APPEND` | _(nenustatyta)_ | `open-sse/translator/request/claude-to-openai.ts`, `open-sse/translator/response/openai-to-claude.ts` | Operatoriaus apibrėžtas sistemos užklausos tekstas, pridedamas prie sistemos pranešimo PO vertimo (įterpimas po vertimo), pasiekiantis codex/Responses ir `/v1/messages` kelius. Taip pat naudojamas kaip direktyvos prefiksas, pašalinamas iš atkartotų sistemos preambulės blokų. Norėdami išjungti, palikite nenustatytą. | | `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (išjungta) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | Nustatykite `1`, kad iš openai→claude srauto pradžios pašalintumėte atkartotus sistemos užklausos preambulės blokus. Pagal numatytuosius nustatymus išjungta — euristikos pritaikytos angliškos prozos struktūrai ir keičia atsakymo naudingąją apkrovą, todėl atsakymas, teisėtai prasidedantis tokiu skyriumi, jį prarastų. | | `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | Kiekvieno vaizdo gavimo skirtasis laikas (ms), taikomas nuotolinei `image_url` vaizdinei įvesčiai. | | `CURSOR_STATE_DB_PATH` | _(aptinkama)_ | `open-sse/utils/cursorVersionDetector.ts` | Pakeičia Cursor IDE būsenos DB paieškos vietą, naudojamą IDE versijai aptikti. | | `CURSOR_AGENT_CLI_VERSION` | _(aptikti / fiksuoti)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Agent CLI komponavimo ID (`YYYY.MM.DD-`), naudojamas `x-cursor-client-version: cli-…` antraštei Agent Run metu. | | `CURSOR_AGENT_BIN` | _(nenustatyta)_ | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Vaizdams generuoti naudojamo Cursor Agent dvejetainio failo kelias. Jei nenustatyta, apdorojimo programa pirmiausia naudoja `providerSpecificData.agentBin`, tada PATH. | | `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Kiekvieno Cursor Agent vaizdo darbo bendrasis skirtasis laikas (ms). | | `CURSOR_IMG_MAX_CONCURRENT` | `2` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Bendrinamos vietos lygiagretumo ribotuvas Cursor vaizdų darbams. | | `CURSOR_IMG_MODEL` | užklausa / `auto` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Pakeičia Cursor CLI `--model` reikšmę vaizdų darbams. | | `UC_IMAGE_POLL_INTERVAL_MS` | `2000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC (uncensored.com) vaizdų generavimo rezultato tikrinimo intervalas (ms). | | `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC vaizdų generavimo rezultato tikrinimo bendrasis skirtasis laikas (ms). | | `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC (uncensored.com) vaizdo įrašų generavimo rezultato tikrinimo intervalas (ms). | | `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC vaizdo įrašų generavimo rezultato tikrinimo bendrasis skirtasis laikas (ms). | | `CURSOR_DATA_DIR` | _(aptinkama)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Pakeičia Cursor Agent CLI duomenų katalogą (`…/versions/`); tai tas pats kintamasis, kurį naudoja oficialus agentas. | | `CURSOR_TOKEN` | _(nenustatyta)_ | `scripts/ad-hoc/cursor-tap.cjs` | Tiesioginis Cursor nešėjo prieigos raktas, naudojamas kūrėjų įrankiuose. | | `OMNIROUTE_LOG_REQUEST_SHAPE` | išjungta (įjungiama naudojant `"1"`) | `src/app/api/v1/chat/completions/route.ts` | Kai nustatyta `"1"`, žurnale įrašo didelių pokalbių naudingųjų apkrovų turinio tipo ir ilgio žymeklius. Pagal numatytuosius nustatymus išjungta, kad žurnale būtų mažiau triukšmo. | | `DEBUG_RESPONSES_SSE_TO_JSON` | _(nenustatyta)_ | `open-sse/handlers/responseTranslator.ts` | Nustatykite `true`, kad žurnale būtų registruojama Responses API SSE→JSON vertimo informacija. | | `DEBUG_CLAUDE_NONSTREAM` | _(nenustatyta)_ | `open-sse/handlers/responseTranslator.ts` | Nustatykite `true`, kad Claude atsakymo vertimo kelyje būtų pateikiami tušti textContent fragmentai (tik derinimui). | | `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(nenustatyta)_ | E2E testavimo aplinka | Nustatykite `true`, kad įjungtumėte E2E testavimo režimą (sušvelnintas autentifikavimas, testavimo kabliai). | --- ## 23. GitHub integracija Leiskite naudotojams pranešti apie problemas tiesiogiai iš valdymo skydelio. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | --------------------- | ------------------ | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `GITHUB_ISSUES_REPO` | _(nenustatyta)_ | `src/app/api/v1/issues/report/route.ts` | Saugykla `owner/repo` formatu. | | `GITHUB_ISSUES_TOKEN` | _(nenustatyta)_ | `src/app/api/v1/issues/report/route.ts` | GitHub asmeninės prieigos prieigos raktas su `issues:write` teisių sritimi. | | `GITHUB_TOKEN` | _(nenustatyta)_ | problemų rūšiavimo / debesijos agento pagalbinės priemonės | Bendrasis GitHub prieigos raktas, naudojamas kaip atsarginis `GITHUB_ISSUES_TOKEN` variantas ir debesijos agento pagalbinėse priemonėse, esančiose `src/lib/cloudAgent/*`. | --- ## Diegimo scenarijai Dėl perdavimo serverio SRE gairių (`ts`/`bifrost`/`auto` veikimo, `9router` ir `CLIProxyAPI` išdėstymo bei didelio pralaidumo atsarginės strategijos) žr. [Perdavimo serverio strategiją](/docs/reference/RELAY_BACKEND_STRATEGY.md). ### Minimalus vietinis kūrimas ```bash JWT_SECRET=$(openssl rand -base64 48) API_KEY_SECRET=$(openssl rand -hex 32) INITIAL_PASSWORD=dev123 PORT=20128 NODE_ENV=development ``` ### „Docker“ produkcinė aplinka ```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 ``` ### Izoliuota nuo tinklo / 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 su atvirkštiniu tarpiniu serveriu („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. Skills smėlio dėžė (v3.8.0+) Apribojimai ir saugos nustatymai, taikomi, kai Skills sistema (`src/lib/skills/`) vykdo naudotojų apibrėžtas automatizacijas smėlio dėžės aplinkoje. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | --------------------------------- | ------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `SKILLS_SANDBOX_TIMEOUT_MS` | `10000` (10 s) | `src/lib/skills/builtins.ts` | Kiekvieno vykdymo smėlio dėžėje faktinio laiko limitas. Griežtoji riba; ilgiau vykdomas procesas nutraukiamas. | | `SKILLS_EXECUTION_TIMEOUT_MS` | _(naudojama `SKILLS_SANDBOX_TIMEOUT_MS` reikšmė)_ | `src/lib/skills/` | Aukšto lygio Skills operacijų koordinavimo laiko limitas. Nustatykite didesnę reikšmę nei `SKILLS_SANDBOX_TIMEOUT_MS`, kad būtų leidžiamos kelių žingsnių darbo sekos. | | `SKILLS_MAX_FILE_BYTES` | `1048576` (1 MB) | `src/lib/skills/builtins.ts` | Didžiausias baitų skaičius, kurį Skills operacija gali nuskaityti iš vieno smėlio dėžėje esančio failo. | | `SKILLS_MAX_HTTP_RESPONSE_BYTES` | `256000` (250 KB) | `src/lib/skills/builtins.ts` | Didžiausias baitų skaičius, paimamas iš vieno HTTP atsako vykdant Skills operaciją. | | `SKILLS_MAX_SANDBOX_OUTPUT_CHARS` | `100000` | `src/lib/skills/builtins.ts` | Griežtoji iš smėlio dėžės iškvietimo grąžinamų stdout/stderr simbolių skaičiaus riba. | | `SKILLS_SANDBOX_NETWORK_ENABLED` | `false` | `src/lib/skills/builtins.ts` | Nustatykite `1`/`true`, kad smėlio dėžėje būtų leidžiama prieiga prie išorinio tinklo. Saugumo sumetimais numatytoji būsena yra **izoliuota**. | | `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(tuščia)_ | `src/lib/skills/builtins.ts` | Kableliais atskirtas konteinerių atvaizdų, leidžiamų vykdyti smėlio dėžėje, sąrašas. Tuščia reikšmė reiškia, kad leidžiama tik integruotoji numatytoji reikšmė. | | `SKILLS_SANDBOX_DOCKER_IMAGE` | _(integruotoji numatytoji reikšmė)_ | `src/lib/skills/` | Konteinerio atvaizdas, naudojamas paleidžiant Docker pagrindu veikiančią smėlio dėžę. Pakeiskite, kad prisegtumėte pasirinktinį sustiprinto saugumo bazinį atvaizdą. | | `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | Konteinerių vykdymo aplinka, skirta Skills smėlio dėžei: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman`. `auto` pasirenka geriausią įdiegtą vykdymo aplinką pagal pagrindinio kompiuterio OS (Apple Container/OrbStack sistemoje macOS, WSL Container sistemoje Windows, Podman sistemoje Linux), o jei tokios nėra, naudoja Docker. | > [!CAUTION] > Įjungus `SKILLS_SANDBOX_NETWORK_ENABLED=true`, savavališkam Skills kodui atveriamas išeinančiojo ryšio kelias. Bendruose diegimuose naudokite kartu su `OUTBOUND_SSRF_GUARD_ENABLED=true` ir griežta `CORS_ORIGIN` / tarpinio serverio politika. --- ## 25. Teikėjų kvotos, tuneliai, atsarginės kopijos ir įvairi vykdymo aplinka Teikėjų kvotų galiniai taškai, tinklo tuneliai („Tailscale“, „Ngrok“, MITM derinimo tarpinis serveris), „1Proxy“ išeinančio srauto telkinys, duomenų bazės atsarginės kopijos ir nedidelės atskirų funkcijų perrašo parinktys, kurias naudoja vykdytojo sluoksnis arba scenarijai. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | „Redis“ prisijungimo eilutė, skirta užklausų dažnio ribotuvo posistemei. | | `ALIBABA_CODING_PLAN_HOST` | _(gamybinės aplinkos pagrindinio kompiuterio adresas)_ | `open-sse/services/bailianQuotaFetcher.ts` | Leidžia pakeisti pagrindinio kompiuterio adresą, naudojamą „Alibaba Bailian“ programavimo plano kvotoms gauti. | | `ALIBABA_CODING_PLAN_QUOTA_URL` | gaunamas iš pagrindinio kompiuterio adreso | `open-sse/services/bailianQuotaFetcher.ts` | Leidžia pakeisti visą „Alibaba Bailian“ kvotos URL. | | `QWEN_CLOUD_COOKIE` | _(nenustatyta)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Konsolės seanso slapukas, skirtas „Qwen Cloud“ / „Model Studio“ asmeninio žetonų plano kvotų tinklų sietuvui (išvadų API raktas negali jo nuskaityti). Nukopijuokite visą `Cookie` užklausos antraštę — joje yra `login_qwencloud_ticket` — iš bet kurios `api.json` užklausos į `cs-data.qwencloud.com`, esančios home.qwencloud.com › Billing › Subscription (F12 › Network). Tai jautrūs ir su seansu susieti duomenys; pirmenybę teikite kiekvienam ryšiui skirtam prietaisų skydelio laukui `qwenCloudCookie`. | | `QWEN_CLOUD_SEC_TOKEN` | _(nenustatyta)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Leidžia rankiniu būdu pakeisti žetonų plano konsolės tinklų sietuvo `sec_token`. Tai jautrūs duomenys; kai reikšmė nenustatyta, gaviklis ją nustato iš prietaisų skydelio HTML, naudodamas slapuką. | | `QWEN_TOKEN_PLAN_HOST` | `https://cs-data.qwencloud.com` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Leidžia pakeisti asmeninio žetonų plano kvotų gaviklio tinklų sietuvo pagrindinio kompiuterio adresą (pvz., `bailian-singapore-cs.alibabacloud.com`, skirtą „Model Studio“ konsolei). | | `QWEN_TOKEN_PLAN_DASHBOARD_URL` | `https://home.qwencloud.com/` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Prietaisų skydelio URL, naudojamas `sec_token` nustatyti iš prisijungusio naudotojo HTML. | | `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Leidžia pakeisti konsolės sąsajos kelią, naudojamą „Alibaba Model Studio“ nemokamo lygio vaizdų ir medijos kvotai gauti. | | `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Konsolės sąsajos kelio perrašymas, skirtas „Alibaba Model Studio“ nemokamo plano multimodalinei kvotai gauti. | | `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Konsolės sąsajos kelio perrašymas, skirtas „Alibaba Model Studio“ nemokamo plano garso kvotai gauti. | | `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(nenustatyta)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | Pasirenkamas kelias į vietinį JSON failą, kuriuo perrašomas integruotas „Alibaba“ nemokamo plano teksto modelių leidžiamųjų sąrašas. Jei failas nerandamas, pirmiausia naudojamas `$DATA_DIR/alibaba-free-tier-allowlist.json`, tada `config/alibaba-free-tier-allowlist.json`. | | `CONTEXT_RESERVE_TOKENS` | `1024` | `open-sse/services/contextManager.ts` | Užbaigimo išvesčiai rezervuojami prieigos raktai, naudojami skaičiuojant užklausos limitus. | | `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | Kiek naujausių įterptųjų vaizdų palikti šalinant senesnius, kad būtų tilpstama į konteksto langą (#8560). | | `MODEL_ALIAS_COMPAT_ENABLED` | įjungta | `open-sse/services/model.ts` | Įjungia arba išjungia senąjį modelių alternatyviųjų pavadinimų suderinamumo sluoksnį, naudojamą senesnių klientų. | | `OMNIROUTE_EMERGENCY_FALLBACK` | įjungta | `open-sse/services/emergencyFallback.ts` | Nustatykite `false` (arba `0`), kad išjungtumėte avarinį atsarginį mechanizmą, kuris, išnaudojus biudžetą, nukreipia nepavykusias užklausas į nemokamą `nvidia`/`openai/gpt-oss-120b` modelį. Efektyvi pirmumo tvarka: funkcijų žymų DB perrašymas > aplinkos kintamasis > numatytoji reikšmė; jei nepasiekiama, paslauga naudoja neapdorotą aplinkos kintamojo reikšmę. | | `COMMAND_CODE_CALLBACK_PORT` | _(nenustatyta)_ | `src/app/api/providers/command-code/auth/shared.ts` | Vietinis prievadas, naudojamas „OAuth“ tipo atgaliniams iškvietimams iš „Command Code“ CLI pagalbinės priemonės. | | `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Reikšmė, siunčiama „Command Code“ išorinei paslaugai kaip `x-command-code-version` antraštė. Perrašykite ją, kad atnaujintumėte CLI versiją. | | `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | Bazinis „Command Code“ naudojimo / kvotų išorinės paslaugos URL, kurį naudoja išmaniojo telefono kvotų gavimo priemonės telemetrija. Perrašykite, jei naudojate savarankiškai talpinamą arba alternatyvią „Command Code“ API. | | `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | Vietinis prievadas, prie kurio susiejamas MITM derinimo tarpinis serveris. | | `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | Nustatykite `1`, kad išjungtumėte aukštesniojo lygmens TLS patikrą (tik kūrimui). | | `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | Tarpinių jungčių neaktyvaus lizdo skirtasis laikas (ms); šį laiką viršiję neaktyvūs lizdai atjungiami, kad neliktų nutekėjusių pusiau atvirų tunelių. | | `BRIDGE_PORT` | `20129` | `bin/antigravity-bridge.mjs` | Prievadas, kuriuo klausosi „Antigravity“ MITM tiltas. | | `ROUTER_URL` | `http://127.0.0.1:20128/v1/antigravity` | `bin/antigravity-bridge.mjs` | Maršruto parinktuvo galinis taškas, į kurį tiltas persiunčia „Antigravity“ srautą. | | `CERT_DIR` | `~/.omniroute/mitm` | `bin/antigravity-bridge.mjs` | Katalogas, kuriame saugomi tilto TLS klausyklės failai `server.key` / `server.crt`; jei kurio nors iš jų nėra, tiltas išjungiamas. | | `MITM_VERBOSE` | `1` | `src/mitm/server.cjs`, `src/mitm/_internal/bypass.cjs` | Maršruto parinkimo sprendimų žurnalo detalumas: `0` nutildo žurnalą, o didesnės reikšmės registruoja daugiau apėjimo / maršruto parinkimo sprendimų. | | `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | Nustatykite `true`, kad pasirinktumėte šakninės CA ir kiekvienam pagrindiniam kompiuteriui skirto galutinio sertifikato modelį (#6684). Naujuose diegimuose jis įjungiamas automatiškai; diegimuose su jau esančiu patikimu senuoju galutiniu sertifikatu išlaikomas senasis fiksuoto SAN sertifikatas, nebent pasirenkamas naujasis modelis. | | `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | MITM tvarkytuvė nustato šią reikšmę paleistam tarpinio serverio procesui (`root-ca` \| `legacy`) — ji atspindi sertifikato perkėlimo sprendimą ir nėra skirta nustatyti rankiniu būdu. | | `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | Nustatykite `1` (teisingą reikšmę), kad iš MITM sertifikatų pasitikėjimo komandų būtų pašalintas pradinis `sudo` — diegimams be root teisių / su naudotojų vardų sritimis, kuriuose operatorius CA pasitiki rankiniu būdu (pvz., naudodamas „Node“ papildomų CA sertifikatų mechanizmą). | | `SKIP_ANTIGRAVITY_DNS` | _(nenustatyta)_ | `src/mitm/dns/provision.ts` | Nustatykite `true`, kad visiškai praleistumėte „Antigravity“ tarpinio serverio pagrindinių kompiuterių vardų DNS įrašų kūrimą faile `/etc/hosts` — konteineriams, kuriuose negalimos `sudo` / root teisės. | | `OMNIROUTE_SKIP_DNS_WRITE` | _(nenustatyta)_ | `src/mitm/dns/dnsConfig.ts` | Nustatykite `1`, kad pridedant ar šalinant DNS įrašus būtų praleistas rašymas į pagrindinių kompiuterių failą — izoliuotoms arba tik skaitomoms testavimo aplinkoms. | | `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | Tik testams / CI skirtas saugiklis: nustatykite `1`, kad sertifikato patikimumo diegimas / šalinimas neatliktų jokių veiksmų ir testų rinkinys niekada nekeistų OS patikimų sertifikatų saugyklos. Nustatoma automatiškai testų sąrankos ir CI darbo eigų. | | `CHANGELOG_BASE_REF` | _(automatiškai)_ | `scripts/check/check-changelog-integrity.mjs` | Aiškiai nurodyta bazinė nuoroda, skirta apsaugai nuo CHANGELOG turinio pašalinimo (numatytoji reikšmė CI aplinkoje yra PR bazinė šaka arba aukščiausia `release/v*`). | | `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | Nustatykite `true`, kad įjungtumėte foninę nemokamų tarpinių serverių telkinio automatinio sinchronizavimo planuoklę. Įjungiama pasirinktinai, pagal numatytuosius nustatymus išjungta. | | `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | Automatinio sinchronizavimo intervalas milisekundėmis (numatytoji reikšmė – 30 min.). | | `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | Įjunkite „1proxy“ nemokamų tarpinių serverių šaltinį. Nustatykite `false`, kad išjungtumėte. | | `FREE_PROXY_1PROXY_API_URL` | _(žr. oneproxy.ts)_ | `src/lib/freeProxyProviders/oneproxy.ts` | „1proxy“ API URL perrašymas. | | `FREE_PROXY_1PROXY_MAX` | `500` | `src/lib/freeProxyProviders/oneproxy.ts` | Didžiausias tarpinių serverių, gaunamų iš „1proxy“ per vieną sinchronizavimą, skaičius. | | `FREE_PROXY_1PROXY_MIN_QUALITY` | `50` | `src/lib/freeProxyProviders/oneproxy.ts` | Mažiausia kokybės balo riba importuojant iš „1proxy“. | | `FREE_PROXY_PROXIFLY_ENABLED` | `true` | `src/lib/freeProxyProviders/proxifly.ts` | Įjunkite „Proxifly“ nemokamų tarpinių serverių šaltinį. Nustatykite `false`, kad išjungtumėte. | | `FREE_PROXY_PROXIFLY_QUANTITY` | `100` | `src/lib/freeProxyProviders/proxifly.ts` | Tarpinių serverių, gaunamų per vieną „Proxifly“ sinchronizavimą, skaičius. | | `FREE_PROXY_PROXIFLY_ANONYMITY` | `elite` | `src/lib/freeProxyProviders/proxifly.ts` | „Proxifly“ anonimiškumo lygio filtras (`elite`, `anonymous`, `transparent`). | | `FREE_PROXY_IPLOCATE_ENABLED` | `false` | `src/lib/freeProxyProviders/iplocate.ts` | Įjungti nemokamų „IPLocate“ tarpinių serverių šaltinį. Įjungiamas tik pasirinktinai. | | `FREE_PROXY_IPLOCATE_BASE_URL` | `https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols` | `src/lib/freeProxyProviders/iplocate.ts` | „IPLocate“ tarpinių serverių sąrašo bazinio URL perrašymas. | | `FREE_PROXY_WEBSHARE_ENABLED` | `true` | `src/lib/freeProxyProviders/webshare.ts` | Įjungti „Webshare“ tarpinių serverių telkinio šaltinį. Norėdami išjungti, nustatykite `false`; taip pat reikia nustatyti `FREE_PROXY_WEBSHARE_API_KEY`. | | `FREE_PROXY_WEBSHARE_API_KEY` | _(nėra)_ | `src/lib/freeProxyProviders/webshare.ts` | „Webshare“ paskyros API prieigos raktas (`Authorization: Token `). Privalomas — be jo teikėjas lieka išjungtas. | | `FREE_PROXY_WEBSHARE_API_URL` | `https://proxy.webshare.io/api/v2/proxy/list/` | `src/lib/freeProxyProviders/webshare.ts` | „Webshare“ tarpinių serverių sąrašo API URL perrašymas. | | `FREE_PROXY_WEBSHARE_MAX` | `500` | `src/lib/freeProxyProviders/webshare.ts` | Didžiausias per vieną „Webshare“ sinchronizavimą importuojamų tarpinių serverių skaičius. | | `NEXT_PUBLIC_VERCEL_RELAY_ENABLED` | `true` | `src/app/(dashboard)/…/ProxyPoolTab.tsx` | Rodyti arba slėpti mygtuką „Deploy Vercel Relay“ skirtuke „Proxy Pool“. | | `VERCEL_API_BASE` | `https://api.vercel.com` | `src/app/api/settings/proxy/vercel-deploy/route.ts` | „Vercel“ API bazinio URL perrašymas (testavimui). | | `NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/…/VercelRelayModal.tsx` | Numatytasis projekto pavadinimas, iš anksto įrašytas „Vercel Relay“ diegimo modaliniame lange. | | `TAILSCALE_BIN` | _(aptinkama automatiškai)_ | `src/lib/tailscaleTunnel.ts` | Aiškiai nurodytas kelias iki `tailscale` vykdomojo failo. | | `TAILSCALED_BIN` | _(aptinkama automatiškai)_ | `src/lib/tailscaleTunnel.ts` | Aiškiai nurodytas kelias iki `tailscaled` demono vykdomojo failo. | | `TAILSCALE_AUTHKEY` | _(nenustatyta)_ | `src/lib/tailscaleTunnel.ts` | Iš anksto bendrinamas Tailscale autentifikavimo raktas, skirtas neinteraktyviai / be grafinės sąsajos vykdomai komandai `tailscale up` (perduodamas naudojant `--auth-key=`). Jei nenustatytas, prisijungimui naudojamas interaktyvus naršyklės autentifikavimo URL. | | `NGROK_AUTHTOKEN` | _(nenustatyta)_ | `src/lib/ngrokTunnel.ts` | Autentifikuoja išeinančius ngrok tunelius. | | `DB_BACKUP_MAX_FILES` | `20` | `src/lib/db/backup.ts` | Didžiausias SQLite atsarginių kopijų failų, išsaugomų atliekant rankinį / suplanuotą atsarginių kopijų valymą, skaičius. Perkėlimo momentinės kopijos adresuojamos pagal turinį ir pakartotinai naudojamos esant identiškai DB būsenai; jos nešalinamos lygiagrečiojo perkėlimo laikotarpiu. Pakeičia reikšmę, išsaugotą skiltyje Nustatymai → Duomenų bazės atsarginių kopijų saugojimas. | | `DB_BACKUP_RETENTION_DAYS` | `0` | `src/lib/db/backup.ts` | Didžiausias amžius dienomis, kurį atsarginės kopijos išsaugomos atliekant rankinį / suplanuotą atsarginių kopijų valymą. `0` išjungia šalinimą pagal amžių. Perkėlimo momentinės kopijos nešalinamos lygiagrečiojo perkėlimo laikotarpiu. Pakeičia reikšmę, išsaugotą skiltyje Nustatymai → Duomenų bazės atsarginių kopijų saugojimas. | | `OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS` | `30000` | `src/lib/jobs/backupScheduleJob.ts` | Serverio užduoties, vykdančios `backup-schedule.json`, ciklo intervalas (ms). Jis turi būti gerokai trumpesnis nei 1 minutės cron detalumas; jei reikšmės mažesnės nei `5000` arba jų nepavyksta išanalizuoti, naudojama numatytoji reikšmė `30000`. | | `CONTAINER_HOST` | `docker` | `scripts/check-permissions.sh` | Konteinerių vykdymo aplinkos nuoroda, skirta įėjimo taško leidimų patikrai. Nustatykite `podman`, jei naudojama bet kokia Podman topologija. Kadangi konteineris negali nustatyti, ar variklis yra vietinis, ar pasiekiamas per Podman Machine, įspėjimas lieka neutralus topologijos atžvilgiu ir nurodo `contrib/podman/README.md`. | | `QUOTA_STORE_DRIVER` | `sqlite` | `src/lib/quota/storeFactory.ts` | Kvotos dalies sunaudojimo saugyklos posistemė: `sqlite` (numatytoji) arba `redis`. | | `QUOTA_STORE_REDIS_URL` | _(nenustatyta)_ | `src/lib/quota/storeFactory.ts` | Redis ryšio eilutė, naudojama, kai `QUOTA_STORE_DRIVER=redis` (pvz., `redis://localhost:6379`). | | `QUOTA_SATURATION_THRESHOLD` | `0.5` | `src/lib/quota/enforce.ts` | Telkinio prisotinimo santykis (0..1); jį pasiekus ar viršijus, telkinys pereina į griežtąjį režimą (skolinimasis neleidžiamas). | | `QUOTA_SOFT_DEPRIORITIZE_FACTOR` | `0.7` | `open-sse/services/combo.ts` | Įverčio daugiklis (0..1), taikomas paskirties elementui, kai švelnioji kvotos politika sumažina jo prioritetą. | | `STATUS_SOFT_DEPRIORITIZE_FACTOR` | `0.5` | `open-sse/services/combo/autoStrategy.ts` | Įverčio daugiklis (0..1), taikomas išteklius išeikvojusiam teikėjui (`credits_exhausted`/`rate_limited`) automatinio derinio vertinime, kai išankstinės kvotos ribojimas yra IŠJUNGTAS (#4540). | | `QUOTA_CONSUMPTION_RETENTION_DAYS` | `14` | `src/lib/db/quotaConsumption.ts` | `quota_consumption` segmentų saugojimo laikotarpis (dienomis) prieš šiukšlių surinkimą (`gcQuotaConsumption`). | | `QUOTA_PREFLIGHT_CUTOFF_ENABLED` | `false` | `src/lib/resilience/settings.ts` | Pasirenkama funkcija (pagal numatytuosius nustatymus IŠJUNGTA): įjungia automatinio maršruto parinkimo griežtą kvotos ribojimą, kuris prieš vertinimą pašalina kandidatus, turinčius mažą kvotą. | | `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | Pasirenkama funkcija (pagal numatytuosius nustatymus IŠJUNGTA): kai `auto/:` filtras neranda prijungtų kandidatų, atkuriama ankstesnė elgsena, kai vietoje tuščio telkinio grąžinimo naudojamas visas (nefiltruotas) telkinys. Pagal numatytuosius nustatymus IŠJUNGTA parinktis reiškia, kad `:free` nurodo „tik nemokamą pakopą“. | | `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | `auto/*:chaos` transliavimo varianto grupės dydžio riba (apribota iki 1–10) — viena užklausa išsiunčiama daugiausia tokiam skaičiui skirtingų teikėjų modelių. | | `OMNIROUTE_CHAOS_MIN_PANEL` | _(numatytoji variklio reikšmė)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Mažiausio grupės dydžio derinimo reikšmė, perduodama chaotiško transliavimo apdorojimo programai; nenustačius išlaikoma numatytoji variklio reikšmė. | | `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(numatytoji variklio reikšmė)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Griežtasis visos chaotiškos grupės lygiagretaus užklausų išsiuntimo skirtasis laikas (ms); nenustačius išlaikoma numatytoji variklio reikšmė. | | `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | Grok CLI failo `auth.json`, naudojamo grok-web savaitinei kvotai gauti, kelias; pakeiskite testams arba nestandartiniam CLI diegimui. | | `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(nenustatyta)_ | `src/mitm/manager.ts` | Papildomas CA sertifikatas (PEM), kuriuo pasitikima užmezgant „AgentBridge“ išeinančius TLS ryšius. | | `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Didžiausias užfiksuotų užklausų, saugomų „Traffic Inspector“ žiediniame buferyje, skaičius. | | `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | Didžiausias užfiksuotos užklausos / atsako turinio dydis (KB), kurį viršijus turinys sutrumpinamas. | | `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Vietinis „Traffic Inspector“ HTTP tarpinio serverio prievadas. | | `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | Automatiškai paleisti tikrintuvo HTTP tarpinį serverį įkrovos metu. | | `INSPECTOR_TLS_INTERCEPT` | `false` | `src/lib/inspector/captureState.ts` | Įjungti užfiksuoto HTTPS srauto TLS perėmimą (MITM). | | `INSPECTOR_LLM_HOSTS_EXTRA` | _(nenustatyta)_ | `src/lib/inspector/captureState.ts` | Papildomi pagrindinių kompiuterių vardai (atskirti kableliais), kurie fiksuojant laikomi LLM galiniais taškais. | | `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | Maskuoti slaptus duomenis (autentifikavimo antraštes / API raktus) užfiksuotame sraute. | | `INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES` | `30` | `src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts` | Minučių skaičius, kuriam praėjus sistemos tarpinio serverio apsauga automatiškai atkuria OS tarpinio serverio nustatymus. | | `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(automatiškai)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | Prieigos raktas, autentifikuojantis vidinį užfiksuotų duomenų perdavimą į tikrintuvą. | | `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Didžiausias greta rodomų stulpelių skaičius Playground palyginimo režime. | | `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(nenustatyta)_ | `src/app/(dashboard)/dashboard/playground/` | Numatytasis modelis, naudojamas Playground veiksmui „patobulinti užklausą“ (jei nenustatyta, naudojamas aktyvus modelis). | | `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Pagrindinis Bifrost pagalbinio tarpinio serverio avarinio išjungimo jungiklis. Nustačius `0`, maršrutas grąžina 503 su `X-Bifrost-Killswitch` antrašte, o operatorius nukreipiamas į TS kelią. Naudokite pagalbinei tarnybai išjungti neatliekant pakartotinio diegimo (1-ojo lygio maršrutizatoriaus incidento ar rakto keitimo atveju). | | `BIFROST_BASE_URL` | _(nenustatyta)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Kai nustatyta, Bifrost pagalbinio tarpinio serverio maršrutas persiunčia `/v1/chat/completions` srautą į šį Go šliuzą, o ne į TS perdavimo tvarkytuvę. Nenustatyta → 503 su atsarginiu keliu. Galinis pasvirasis brūkšnys pašalinamas. | | `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | Prievadas, prie kurio prižiūrima įterptoji Bifrost paslauga prisijungia (`127.0.0.1:`), kai OmniRoute valdo Bifrost pagalbinės tarnybos gyvavimo ciklą. Numatytoji reikšmė yra `8080`. | | `BIFROST_API_KEY` | _(nenustatyta)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost šliuzo API raktas (siunčiamas kaip `Authorization: Bearer ...`). Jei nenustatytas, maršrutas tikisi, kad užklausoje bus galiojantis OmniRoute API raktas; šis raktas skirtas tik autentifikavimui šliuzo pusėje. | | `BIFROST_STREAMING_ENABLED` | `true` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Kai reikšmė yra true, Bifrost pagalbinės tarnybos maršrutas srautiniu būdu grąžina atsakymus per SSE ir šliuzą, o ne per TS srautinio vykdymo priemonę. Nustatykite `0`, kad per šliuzą būtų priverstinai grąžinami nesrautiniai JSON atsakymai. | | `BIFROST_TIMEOUT_MS` | `30000` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Kiekvienos užklausos skirtasis laikas (ms), kai ji perduodama per Bifrost šliuzą. Viršijus skirtąjį laiką, maršrutas per `X-Bifrost-Fallback` antraštę grąžina TS perdavimo kelią. | | `OMNIROUTE_BIFROST_KEY` | _(nenustatyta)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | `BIFROST_API_KEY` alternatyvus pavadinimas (naudojamas scenarijų, kurie skaito aplinkos kintamuosius per `OMNIROUTE_*`). Jei nustatyti abu, pirmenybė teikiama `BIFROST_API_KEY`. | | `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | `/api/v1/relay/chat/completions` perdavimo posistemė: `ts \| bifrost \| auto`. `ts` = TypeScript perdavimas (numatytasis, kai Bifrost nesukonfigūruotas); `auto` pasirenka Bifrost, kai nustatytas `BIFROST_BASE_URL` ir `BIFROST_ENABLED` ≠ `0`, bei automatiškai naudoja TS atsarginį kelią, jei pagalbinė tarnyba nepasiekiama; `bifrost` priverstinai naudoja Bifrost (griežtai, be atsarginio kelio). Autentifikavimo, užklausų dažnio ribojimo, įterpimo apsaugos ir leidžiamųjų elementų sąrašo patikros visada pirmiausia vykdomos Next maršrute. Atsakymuose pateikiamos `X-Routing-Backend` / `X-Routing-Fallback` / `X-Routing-Fallback-Reason` antraštės. | | `RELAY_ROUTING_BACKEND` | _(nenustatyta)_ | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Priimamas `OMNIROUTE_RELAY_BACKEND` alternatyvus pavadinimas (tos pačios `ts \| bifrost \| auto` reikšmės). Kai nustatyti abu, pirmenybė teikiama `OMNIROUTE_RELAY_BACKEND`. | | `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | Atvėsimo laikotarpis (ms), taikomas po nesėkmingo perėjimo per „Bifrost“ pagalbinį procesą `auto` režimu, prieš perdavimo moduliui pakartotinai bandant naudoti pagalbinį procesą; kol tęsiasi atvėsimo laikotarpis, užklausos nukreipiamos tiesiai TS keliu, o jam pasibaigus bandoma dar kartą. `0` išjungia. Taikoma tik tada, kai `OMNIROUTE_RELAY_BACKEND=auto`. | | `OMNIROUTE_TLS_CERT` | _(nenustatyta)_ | `bin/cli/commands/serve.mjs` | Kelias į PEM TLS sertifikatą, skirtą `omniroute serve` teikti per HTTPS (atitinka `--tls-cert`). Turi būti naudojamas kartu su `OMNIROUTE_TLS_KEY`; autonominis serveris tuomet užbaigia TLS ryšį tame pačiame klausyme (`wss://` veikia be pakeitimų). Nenustatyta → paprastas HTTP. Pateikus tik sertifikatą arba raktą, arba nenuskaitomą kelią, užregistruojamas įspėjimas ir toliau naudojamas HTTP. | | `OMNIROUTE_TLS_KEY` | _(nenustatyta)_ | `bin/cli/commands/serve.mjs` | Kelias į privatųjį PEM TLS raktą, skirtą `omniroute serve` HTTPS (atitinka `--tls-key`). Turi būti naudojamas kartu su `OMNIROUTE_TLS_CERT`. Žr. `OMNIROUTE_TLS_CERT`. | | `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | Pagrindinis `/api/local/*` maršrutų jungiklis. Kai nenustatyta arba nustatyta `0`, visi `/api/local/*` maršrutai gamybinėje aplinkoje grąžina 503. Diegiant ne grįžtamojo ryšio sąsajoje turi būti nustatyta `1`, kad būtų įjungta „Redis“ paleidyklė ir panašios vienu spustelėjimu paleidžiamos vietinės paslaugos. Papildoma apsauga kartu su `isLocalOnlyPath()` maršrutų apsaugos klasifikacija (`LOCAL_ONLY_API_PREFIXES` faile `src/server/authz/routeGuard.ts`). | | `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(nenustatyta)_ | `src/lib/security/localEndpoints.ts` | „Bearer“ prieigos raktas, skirtas `/api/local/*` užklausų siuntėjams, kurie nėra grįžtamojo ryšio sąsajoje (pvz., darbalaukio programai). Kai nustatyta, užklausose iš ne grįžtamojo ryšio IP adresų turi būti pateikta `Authorization: Bearer `. Privaloma, kai diegimuose ne grįžtamojo ryšio sąsajoje nustatyta `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1`. | | `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | Vienu spustelėjimu paleidžiamos „Redis“ paleidyklės konteinerio pavadinimas (`omniroute redis up`). Naudojamas ir CLI, ir `RedisLauncherPanel` grafinėje sąsajoje. | | `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | Vienu spustelėjimu paleidžiamos „Redis“ paleidyklės pagrindinio kompiuterio prievadas. Pakeiskite, jei pagrindiniame kompiuteryje prievadas 6379 jau susietas. Vidinis konteinerio prievadas lieka 6379. | | `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | Pagrindinio kompiuterio sąsaja, kurioje publikuojama vienu spustelėjimu paleidžiama „Redis“ paleidyklė. Paleidyklė paleidžia „Redis“ BE slaptažodžio, todėl susiejus su `0.0.0.0` kiekvienam jūsų LAN pagrindiniam kompiuteriui suteikiama neautentifikuota prieiga prie „Redis“ — išplėskite prieigą tik jei patys nustatote egzemplioriaus slaptažodį. | | `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Pagrindinio kompiuterio sąsaja, kurioje docker-compose publikuoja pagalbinį „Redis“ procesą (#9286). „Compose“ „Redis“ veikia be `requirepass`; programos konteineriai jį pasiekia per „Compose“ tinklą (`redis:6379`) — publikuotas prievadas skirtas tik pagrindinio kompiuterio įrankiams. `0.0.0.0` visam LAN atveria neautentifikuotą „Redis“. | | `REDIS_PORT` | `6379` | `docker-compose.yml` | Pagrindinio kompiuterio prievadas, skirtas „Compose“ Redis pagalbiniam konteineriui. | | `APP_BIND_HOST` | `127.0.0.1` | `docker-compose.yml`, `docker-compose.prod.yml` | Pagrindinio kompiuterio sąsaja, kurioje docker-compose publikuoja pačios programos valdymo skydelio/API/tiesioginio WS prievadus (#12568). Kadangi `.env.example` pagal numatytąją nuostatą pateikiama su `REQUIRE_API_KEY=false`, `0.0.0.0` visam LAN/WAN atveria anoniminį `/v1` LLM tarpinį serverį — prieigą išplėskite tik nustatę `REQUIRE_API_KEY=true` arba kai priešais esantis atvirkštinis tarpinis serveris užtikrina savo autentifikavimą. | | `QDRANT_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Pagrindinio kompiuterio sąsaja, kurioje docker-compose publikuoja Qdrant atminties pagalbinį konteinerį (#12578). Taikomi tie patys prieigos iš LAN argumentai kaip ir `REDIS_BIND_HOST`. | | `BIFROST_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Pagrindinio kompiuterio sąsaja, kurioje docker-compose publikuoja Bifrost maršruto parinktuvo pagalbinį konteinerį (#12578). Taikomi tie patys prieigos iš LAN argumentai kaip ir `REDIS_BIND_HOST`. | | `REDIS_KEY_PREFIX` | `omniroute:` | `src/shared/utils/rateLimiter.ts` | Vardų srities priešdėlis, taikomas kiekvienam OmniRoute Redis raktui (užklausų dažnio ribotuvui, autentifikavimo podėliui, kvotų saugyklai, parengiamojo paleidimo grandinės pertraukikliui). Apsaugo nuo raktų kolizijų, kai Redis egzempliorius bendrinamas su kitomis programomis (#11042). | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | _(nenustatyta — mechanizmas išjungtas)_ | `src/lib/api/internalServiceAuth.ts` | Bendrinama paslaptis, skirta tapatybę išsaugantiems vidiniams REST perėjimams (#9260): OmniRoute komponentai, iškviečiantys kitus vietinius OmniRoute maršrutus, siunčia ją kaip `x-omniroute-internal-service-token`, kad būtų išsaugota pradinio kvietėjo tapatybė. Palyginama naudojant `timingSafeEqual`. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | _(nenustatyta)_ | `src/lib/api/internalServiceAuth.ts` | Vidinės paslaugos prieigos rakto varianto su paslapties failu kelias į failą, kurio turinys, pašalinus tarpus pradžioje ir pabaigoje, yra prieigos raktas. Naudojama tik tada, kai tiesioginis kintamasis nenustatytas. | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | `src/lib/catalog/openrouterProviderStats.ts` | Papildo valdymo skydelio teikėjų sąrašą OpenRouter savaitinio reitingo statistika (#9324). Įjungta pagal numatytąją nuostatą; nustatykite `false`, kad foninis gavimas būtų visiškai praleistas (neblokuoja ir niekada nesukelia kritinės klaidos). | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `86400000` (24 val.) | `src/lib/catalog/openrouterProviderStats.ts` | OpenRouter teikėjų statistikos momentinės kopijos podėlio TTL milisekundėmis. | | `OMNIROUTE_REDIS_IMAGE` | `redis:7-alpine` | `bin/cli/commands/redis.mjs` | Redis atvaizdas, naudojamas Redis paleidimo vienu spustelėjimu priemonėje. Jei reikia, pakeiskite į `redis:8-alpine` arba privataus registro veidrodį. | | `QDRANT_HOST` | `qdrant` | _(pasirenkamas klasterio profilis)_ | Qdrant papildomo konteinerio pagrindinio kompiuterio vardas, kai aktyvus `--profile memory`. Numatytoji reikšmė nurodo vidinio tinklo qdrant paslaugos pavadinimą; naudodami išorinį diegimą, ją pakeiskite. Naudojama tik tada, kai kode `qdrantEnabled` yra `true` (`src/lib/memory/vectorStore.ts:108`). | | `QDRANT_PORT` | `6333` | _(pasirenkamas klasterio profilis)_ | Qdrant papildomo konteinerio REST prievadas. | | `QDRANT_GRPC_PORT` | `6334` | _(pasirenkamas klasterio profilis)_ | Qdrant papildomo konteinerio gRPC prievadas. Naudojamas klientų bibliotekų, kurios srautinėms operacijoms teikia pirmenybę gRPC, o ne REST. | | `QDRANT_API_KEY` | _(nenustatyta)_ | _(pasirenkamas klasterio profilis)_ | Pasirenkamas API raktas, skirtas Qdrant Cloud arba autentifikuotam vietiniam egzemplioriui. Tuščia reikšmė → `api-key` antraštė nesiunčiama. | | `QDRANT_COLLECTION` | `omniroute-memory` | _(pasirenkamas klasterio profilis)_ | OmniRoute pokalbių atminties įterpinių rinkinio pavadinimas. Pirmą kartą paleidus sukuriamas su `QDRANT_VECTOR_SIZE` matmenų skaičiumi. | | `QDRANT_EMBEDDING_MODEL` | `text-embedding-3-small` | _(pasirenkamas klasterio profilis)_ | Numatytasis įterpinių modelio pavadinimas, įrašomas Qdrant rinkinio metaduomenyse. Faktinius įterpinius generuoja bet kuris teikėjas, į kurį nurodo OmniRoute nustatymų laukas `embeddingModel`. | | `QDRANT_VECTOR_SIZE` | `1536` | _(pasirenkamas klasterio profilis)_ | Įterpinio vektoriaus matmuo. Jis turi atitikti įterpiniams naudojamą modelį (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768). | | `QDRANT_HNSW_EF_CONSTRUCT` | `128` | _(pasirenkamas klasterio profilis)_ | HNSW indekso tikslumas kūrimo metu. Didesnė reikšmė = lėtesnis kūrimas, greitesnė paieška. | | `OMNIROUTE_ROTATION_ENABLED` | `true` | `open-sse/services/rotationConfig.ts` | Pagrindinis operatoriaus konfigūruojamo paskyrų kaitaliojimo jungiklis. Kai `false`, nė viena iš toliau pateiktų `OMNIROUTE_ROTATE_*` klasių neaktyvina perėjimo prie atsarginės paskyros (išjungta pagrindinė būsena taip pat blokuoja pagal numatytuosius nustatymus įjungtas 429/500/502 klases). Leidžia prižiūrinčiai sąsajai (pvz., VibeProxy darbalaukio programai) atkartoti savo kaitaliojimo taisykles serverio paskyrų atsarginio perjungimo variklyje. | | `OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS` | `0` | `open-sse/services/rotationConfig.ts` | Atvėsimo laikotarpis (sekundėmis), taikomas užklausų dažnio apribotai paskyrai, kai aukštesnio lygio paslauga nepateikia aiškios atkūrimo nuorodos. `0` = vietoje fiksuoto perrašymo naudoti numatytąjį variklio atvėsimo laikotarpį. | | `OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET` | `true` | `open-sse/services/rotationConfig.ts` | Sąsajos „nežymėti kaip pasiekusio užklausų dažnio ribą, jei nėra atstatymo laiko“ nuostatos atitikmuo. | | `OMNIROUTE_ROTATE_ON_429` | `true` | `open-sse/services/rotationConfig.ts` | Atsarginio perjungimo įjungimas `429` klaidoms. Kai `false` (ir `OMNIROUTE_ROTATION_ENABLED=true`), `429` nebesukelia paskyros pakeitimo ir vietoje to grąžinama klientui. | | `OMNIROUTE_ROTATE_429_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | `429` klaidų skaičius per `OMNIROUTE_ROTATE_429_WINDOW_SECONDS`, reikalingas paskyrai pakeisti. `1` (numatytoji reikšmė) paskyrą pakeičia iš karto, taip išsaugant ankstesnę veikseną. | | `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Slankusis laiko intervalas (sekundėmis), per kurį `429` klaidos skaičiuojamos siekiant `OMNIROUTE_ROTATE_429_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_500` | `true` | `open-sse/services/rotationConfig.ts` | Atsarginio perjungimo įjungimas `5xx` serverio klaidoms (išskyrus `502`, kuriai skirta atskira klasė). Kai `false`, šios klaidos nebesukelia paskyros pakeitimo. | | `OMNIROUTE_ROTATE_500_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | `5xx` klaidų skaičius per `OMNIROUTE_ROTATE_500_WINDOW_SECONDS`, reikalingas paskyrai pakeisti. `1` (numatytoji reikšmė) paskyrą pakeičia iš karto. | | `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Slankusis laiko intervalas (sekundėmis), per kurį `5xx` klaidos skaičiuojamos siekiant `OMNIROUTE_ROTATE_500_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_502` | `true` | `open-sse/services/rotationConfig.ts` | Atsarginio perjungimo įjungimas `502` (netinkamo tinklų sietuvo) klaidoms. Kai `false`, `502` klaidos nebesukelia paskyros pakeitimo. | | `OMNIROUTE_ROTATE_502_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | `502` klaidų skaičius per `OMNIROUTE_ROTATE_502_WINDOW_SECONDS`, reikalingas paskyrai pakeisti. `1` (numatytoji reikšmė) paskyrą pakeičia iš karto. | | `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Slankusis laiko intervalas (sekundėmis), per kurį `502` klaidos skaičiuojamos siekiant `OMNIROUTE_ROTATE_502_THRESHOLD`. | | `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | Pasirenkama funkcija (pagal numatytuosius nustatymus IŠJUNGTA): kai `true`, paprasta `400` (netinkama užklausa) klaida taip pat inicijuoja paskyros pakeitimą. Tai tik papildo esamą veikimą — ši nuostata niekada neblokuoja esamos variklio elgsenos, kai `400` klaida, kurios tekste minima užklausų dažnio riba ar kvota, vis tiek inicijuoja perjungimą, neatsižvelgiant į šią žymą. | | `OMNIROUTE_ROTATE_400_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | `400` klaidų skaičius per `OMNIROUTE_ROTATE_400_WINDOW_SECONDS`, kurį pasiekus paskyra pakeičiama (taikoma tik kai `OMNIROUTE_ROTATE_ON_400=true`). | | `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Slankusis langas (sekundėmis), per kurį `400` klaidos skaičiuojamos siekiant `OMNIROUTE_ROTATE_400_THRESHOLD`. | ### Claude parengiamojo aktyvinimo planuoklis „Cron“ valdomas parengiamasis aktyvinimas pasirinktoms „Anthropic OAuth“ jungtims, kad 5 valandų užklausų dažnio ribojimo langas būtų atvertas suplanuota paprasta užklausa, o ne pirmąja tikra užklausa (#8848). Planuoklis yra išjungtas, nebent `OMNIROUTE_WARMUP_ENABLED` reikšmė yra teisinga **ir** jungtis pažymėta `settings.claudeWarmup.connections`; tuščias jungčių sąrašas reiškia, kad niekas nebus parengiamai aktyvinama, net jei aplinkos kintamasis įjungtas. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------ | --------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_WARMUP_ENABLED` | _(nenustatyta → išjungta)_ | `src/lib/warmupScheduler.ts` | Pagrindinis parengiamojo aktyvinimo planuoklio jungiklis. Priima `1`/`true`/`yes`/`on` (neskiriant didžiųjų ir mažųjų raidžių, pašalinus tarpus). Bet kuri kita reikšmė arba nenustatyta reikšmė palieka planuoklį išjungtą. | | `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | Penkių laukų „cron“ išraiška parengiamojo aktyvinimo ciklui, vertinama `America/Los_Angeles` („Anthropic“ nustatymo iš naujo laiko juostoje), neatsižvelgiant į pagrindinio kompiuterio laikrodį. | | `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | Kiek jungčių parengiamai aktyvinama lygiagrečiai per vieną ciklą. Apribojama iki `1`–`10`; jei reikšmė nėra skaitinė, naudojama `3`. | | `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | Parengiamojo aktyvinimo užklausai naudojamas modelis. Keiskite tik jei numatytojo modelio nėra jūsų plane; pasirinkite pigiausią modelį, kuris vis tiek atveria langą. | ### Naršyklės prisijungimo VNC seansai ir duomenų katalogo alternatyvusis pavadinimas Konteineryje veikiantys „Chromium“ ir VNC, naudojami prisijungimo per naršyklę kredencialams interaktyviai gauti (`/api/vnc-session`), taip pat senasis `DATA_DIR` alternatyvusis pavadinimas. Visa tai neprivaloma — numatytosios VNC nuostatos skirtos kartu pateikiamam `omniroute-vnc-chromium:local` atvaizdui ir keičiamos tik naudojant pasirinktinį konteinerio atvaizdą, prievadus arba koreguojant gyvavimo ciklą. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Docker atvaizdo žyma, skirta Chromium+VNC prisijungimo konteineriui. Sukurkite `docker/vnc-browser/chromium` arba nurodykite čia pasirinktinį atvaizdą. | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Konteinerių vykdymo aplinkos dvejetainis failas, naudojamas VNC konteineriui paleisti (pvz., nustatykite `podman`). | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Konteinerio viduje atvertas VNC/noVNC prievadas. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Chrome DevTools Protocol prievadas konteinerio viduje. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Chromium profilio katalogo kelias konteinerio viduje. | | `OMNIROUTE_VNC_PROFILE_DIR` | `$HOME/.omniroute/browser-login-profiles` | `src/lib/vncSession/manifest.ts` | Pagrindinio kompiuterio katalogas, kuriame saugomi išliekantys naršyklės prisijungimo profiliai. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` (10 min.) | `src/lib/vncSession/manifest.ts` | Neveiklos skirtasis laikas (ms), kuriam praėjus neaktyvi VNC sesija pašalinama. | | `OMNIROUTE_VNC_MAX_MS` | `1800000` (30 min.) | `src/lib/vncSession/manifest.ts` | Griežta vienos VNC sesijos gyvavimo trukmės riba (ms). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Didžiausias vienu metu vykdomų VNC sesijų skaičius. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Skirtasis laikas (ms), per kurį laukiama, kol konteineryje veikianti naršyklė bus paruošta CDP ryšiui. | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Skirtasis laikas (ms), skirtas užfiksuotai sesijai ir slapukams surinkti baigus prisijungimą. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | `--remote-debugging-port=9222 --no-first-run --no-default-browser-check` | `src/lib/vncSession/manifest.ts` | Papildomos komandų eilutės vėliavėlės, perduodamos konteineryje veikiančiai Chromium naršyklei. | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Specialus Docker tinklas, prie kurio prisijungia VNC prisijungimo konteineris (#12571), užuot naudojęs numatytąjį tiltą, kad lygiagretūs konteineriai negalėtų pasiekti jo CDP tilto prievado. | | `VIBEPROXY_DATA_DIR` | _(nenustatyta)_ | `open-sse/services/notionThreadSessions.ts` | **Pasenęs alternatyvus pavadinimas**, skirtas `DATA_DIR`; tikrinamas tik tada, kai nenustatyti nei `DATA_DIR`, nei `OMNIROUTE_DATA_DIR`. Nurodo Notion žiniatinklio gijos sesijos podėlio vietą (`/notion-web-thread-sessions.json`). | --- ## 26. Testavimo ir E2E infrastruktūra Naudojama `scripts/dev/run-next-playwright.mjs`, `scripts/dev/smoke-electron-packaged.mjs`, `scripts/dev/run-ecosystem-tests.mjs` ir `scripts/build/uninstall.mjs`. Produkcinėse aplinkose palikite visas toliau nurodytas reikšmes nenustatytas. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | -------------------------------------- | -------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_E2E_BOOTSTRAP_MODE` | `auth` | `scripts/dev/run-next-playwright.mjs` | E2E pradinio parengimo režimas (`auth`, `fresh`, `reuse`), skirtas Playwright vykdyklei. | | `OMNIROUTE_E2E_PASSWORD` | grįžtama prie `INITIAL_PASSWORD` | `scripts/dev/run-next-playwright.mjs` | Administratoriaus slaptažodis, įterpiamas į Playwright aplinką. | | `OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Išjungia vietinės būklės patikros apklausą vykdant Playwright. | | `OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Išjungia OAuth prieigos rakto būklės patikros ciklą testų metu. | | `OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS` | _(nenustatyta)_ | `src/lib/tokenHealthCheck.ts` | Kableliais atskirtų teikėjų, neįtraukiamų į išankstinį prieigos raktų atnaujinimą, sąrašas (pvz., `codex,openai`). Tikslinė alternatyva visiškam būklės patikros išjungimui — trumpo galiojimo teikėjai toliau atnaujinami, o kaskadiniai teikėjai lieka tik reaktyvūs. | | `OMNIROUTE_HIDE_HEALTHCHECK_LOGS` | `true` | `scripts/dev/run-next-playwright.mjs` | Nutildo būklės patikros pranešimus Playwright standartinėje išvestyje. | | `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Praleidžia Next.js produkcinį komponavimą prieš paleidžiant Playwright (CI optimizavimas). | | `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | Praleidžia OmniRoute pašalinimo kablį (naudojama CI, kad `node_modules` liktų nepakeistas). | | `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | Laukimo laikas (ms), per kurį serveris turi pradėti tinkamai veikti prieš vykdant ekosistemos arba protokolo testus. | | `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | URL, kuriuo, kaip tikisi Electron bazinio patikrinimo infrastruktūra, supakuota programa teiks paslaugą. | | `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | Bendrasis skirtasis laikas (ms), kuriam pasibaigus bazinio patikrinimo infrastruktūra nutraukia bandymą. | | `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | Stabilizavimosi laikotarpis (ms) įkėlus puslapį. | | `ELECTRON_SMOKE_APP_EXECUTABLE` | _(automatiškai)_ | `scripts/dev/smoke-electron-packaged.mjs` | Aiškiai nurodytas kelias iki supakuoto Electron vykdomojo failo. | | `ELECTRON_SMOKE_DATA_DIR` | _(tmpdir)_ | `scripts/dev/smoke-electron-packaged.mjs` | Electron bazinio patikrinimo vykdymo duomenų katalogas. | | `ELECTRON_SMOKE_KEEP_DATA` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Nustatykite `1`, kad po vykdymo būtų išsaugotas bandomųjų duomenų katalogas. | | `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Nustatykite `1`, kad vykdymo metu Electron žurnalai būtų srautiniu būdu siunčiami į stdout. | | `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: paleidžia iš naujo naudodamas tą patį duomenų katalogą ir patikrina, ar antrojo paleidimo metu pasirenkama savoji SQLite tvarkyklė. | | `CLI_DEVIN_BIN` | _(PATH paieška)_ | `open-sse/executors/devin-cli.ts` | Leidžia pakeisti Devin CLI dvejetainio failo kelią. | ### Dokumentacijos vertimo procesas Naudojama `scripts/i18n/run-translation.mjs` (`npm run i18n:run` komanda). Pagal numatytuosius nustatymus visi penki kintamieji yra nenustatyti — nustatykite juos `.env` tik tuose kompiuteriuose, kuriuose turi būti galima vykdyti dokumentacijos vertimo įrankį. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ----------------------------------- | ------------------ | ---------------------------------- | -------------------------------------------------------------------------- | | `OMNIROUTE_TRANSLATION_API_URL` | _(nenustatyta)_ | `scripts/i18n/run-translation.mjs` | Su OpenAI suderinamas bazinis vertimo posistemės URL. | | `OMNIROUTE_TRANSLATION_API_KEY` | _(nenustatyta)_ | `scripts/i18n/run-translation.mjs` | Vertimo posistemės atpažinimo ženklas „Bearer“ (niekada neregistruojamas). | | `OMNIROUTE_TRANSLATION_MODEL` | _(nenustatyta)_ | `scripts/i18n/run-translation.mjs` | Modelio ID, pvz., `gpt-4o-mini` arba `cx/gpt-5.4-mini`. | | `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | Kiekvienos užklausos skirtasis laikas milisekundėmis. | | `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | Lygiagrečios vertimo užklausos apdorojant kelis failus / lokales. | --- ## 27. Radar srautas (savarankiškas talpinimas) Pasirenkamas priedas, valdomas RADAR_ENABLED funkcijos vėliavėle (pagal numatytuosius nustatymus išjungta — funkcijos vėliavėlė keičiama per nustatymus / DB, o ne aplinkos kintamuoju; žr. [docs/frameworks/RADAR.md](../frameworks/RADAR.md#flag-radar_enabled-default-off)). Pirmieji keturi toliau pateikti kintamieji yra pasirenkami savarankiškai talpinamo arba išsišakojusio srauto ir rėmėjo rakto procesų perrašymai. Penktasis, `RADAR_ADMIN_URL`, yra atskira, numatytosios reikšmės neturinti nuoroda į savininko privatų operacijų skydelį. Išsamius modulio dokumentus ir jo [visą aktyvinimo bei vedamojo nustatymo seką](../frameworks/RADAR.md#end-to-end-activation-and-guided-setup) žr. [docs/frameworks/RADAR.md](../frameworks/RADAR.md). Bendrasis pradžios puslapio / pakeitimų žurnalo pranešimų skaitytuvas nėra konfigūruojamas aplinkos kintamuoju ir nepriklauso nuo RADAR_ENABLED funkcijos vėliavėlės. Jis tik per GET nuskaito viešosios saugyklos `news.json` URL, deklaruotą `src/shared/utils/releaseNotes.ts`; atmetimo ID lieka naršyklės vietinėje saugykloje. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ----------------------------- | -------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `RADAR_FEED_URL` | `https://radar.omniroute.online` | `src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts` | Bazinis URL, bendrai naudojamas atskirai pasirašytiems katalogo, rekomendacijų, rėmėjų pasiūlymų ir „Intel“ srautams. Pakeiskite, kad būtų naudojama savarankiškai talpinama arba išsišakojusi paslauga. | | `RADAR_FEED_PUBKEY` | _(įtvirtintas numatytasis raktas)_ | `src/lib/radar/pinnedKeys.ts` | Ed25519 viešasis raktas (base64-DER SPKI arba PEM), naudojamas pasirinktinio srauto parašams tikrinti. | | `RADAR_CONTRIBUTOR_CLAIM_URL` | `https://radar.omniroute.online/auth/github` | `src/lib/radar/links.ts` | URL, kurį atveria valdymo skydelio mygtukas „Esu bendradarbis“ (rėmėjo rakto gavimo per GitHub OAuth procesas). | | `RADAR_SUPPORTER_PLANS_URL` | `https://radar.omniroute.online/planos` | `src/lib/radar/links.ts` | URL, kurį atveria valdymo skydelio mygtukas „Paremti projektą“ (mokėjimo / planų puslapis). | | `RADAR_ADMIN_URL` | _(nenustatyta)_ | `src/lib/radar/links.ts` | Tik savininkui skirta privataus operacijų skydelio nuoroda. HTTPS privalomas, išskyrus HTTP grįžtamojo ryšio SSH persiuntimą; jei reikšmė nenustatyta arba netinkama, naršymo elementas nesukuriamas. | --- ## Auditas: pašalinti / nebenaudojami kintamieji Toliau nurodyti kintamieji buvo ankstesnėse `.env.example` versijose, tačiau dabartinėje kodų bazėje **vykdymo metu niekur nenaudojami**. Jie buvo pašalinti: | Kintamasis | Priežastis | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `STORAGE_DRIVER=sqlite` | Jo neskaito joks šaltinio failas. SQLite yra vienintelė palaikoma tvarkyklė, todėl pasirinkimas nereikalingas. | | `INSTANCE_NAME=omniroute` | Yra senoje dokumentacijoje ir aplinkos šablonuose, tačiau vykdymo metu nenaudojamas. Gali būti grąžintas būsimoje kelių egzempliorių funkcijoje. | | `SQLITE_MAX_SIZE_MB=2048` | Šaltinio kode nenurodomas. Duomenų bazės dydis nėra dirbtinai ribojamas. | | `SQLITE_CLEAN_LEGACY_FILES=true` | Šaltinio kode nenurodomas. Tikėtina, kad pasenusių failų valymo funkcija buvo pašalinta. | | `CLI_ROO_BIN` | Neužregistruotas faile `src/shared/services/cliRuntime.ts`. | | `CLI_KIMI_CODING_BIN` | Neužregistruotas faile `src/shared/services/cliRuntime.ts` (Kimi Coding naudoja OAuth, o ne CLI dvejetainį failą). | | `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | Niekur šaltinio kode nenurodomi. | | `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` | Pašalinti v3.8.0. Vykdymo aplinka šių aplinkos kintamųjų nebeskaito — prisijungimo duomenys gaunami iš Dashboard / `data/provider-credentials.json` / šifruotos DB. | | `CURSOR_PROTOBUF_DEBUG` | Pašalintas v3.8.0. Cursor vykdyklė naudoja `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` (žr. §22). | | `CLI_COMPAT_KIRO` | Pašalintas v3.8.0. Kiro yra sąraše `CLI_COMPAT_OMITTED_PROVIDER_IDS`, todėl jo perjungiklis neturi jokio poveikio. | | `QIANFAN_API_KEY` | Pašalintas kartu su kitais nenaudojamais teikėjų API raktų ruošiniais v3.8.0. | ### Numatytųjų reikšmių pataisymai | Kintamasis | Senoji `.env.example` reikšmė | Faktinė numatytoji reikšmė kode | Pataisyta | | ------------------------- | ----------------------------- | ------------------------------- | -------------------------------------------------------------- | | `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Pašalinta klaidinanti reikšmė; `7` nurodyta kaip numatytoji | | `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Pašalinta klaidinanti reikšmė; `7` nurodyta kaip numatytoji | ### OpenCode konfigūracijos generavimas iš naujo (specializuoti įrankiai) Naudojama scenarijuje `scripts/ad-hoc/regen-opencode-config.ts`, kad būtų iš naujo sugeneruotas `opencode.json` su tiksliomis `limit.context` ir `limit.output` reikšmėmis, gautomis iš veikiančio OmniRoute egzemplioriaus. Nė vienas iš jų nėra būtinas įprastam veikimui — šis scenarijus yra skirtas tik kūrėjams. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------ | ------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_URL` | `http://localhost:20128` | `scripts/ad-hoc/regen-opencode-config.ts` | Bazinis OmniRoute egzemplioriaus URL, naudojamas `/v1/models` užklausai. | | `OMNIROUTE_KEY` | _(nenustatyta)_ | `scripts/ad-hoc/regen-opencode-config.ts` | API raktas, skirtas autentifikuotis OmniRoute `/v1/models` galiniame taške. Jei nenustatyta, naudojamas `OPENCODE_API_KEY`. | | `OPENCODE_API_KEY` | _(nenustatyta)_ | `scripts/ad-hoc/regen-opencode-config.ts` | OpenCode formato API raktas (`sk-...`), įrašomas į iš naujo sugeneruotą `opencode.json`. Jei nenustatyta, naudojamas `OMNIROUTE_KEY`. | ### Glaudinimo vertinimo neprisijungus sistema (specialiosios paskirties įrankiai) Naudojama `scripts/compression-eval/index.ts` – glaudinimo vertinimo neprisijungus CLI. Įprastam veikimui nereikalinga – skirta tik kūrėjų įrankiams. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ---------------------------- | ------------------ | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (tuščias) | `scripts/compression-eval/index.ts` | Operatoriaus pateikti JSON kredencialai teikėjui, kurį naudoja glaudinimo vertinimo neprisijungus CLI (analizuojami naudojant `JSON.parse`). Sausajam paleidimui palikite nenustatytą. | ### VNC naršyklės seansai Naudojama `src/lib/vncSession/manifest.ts`, kad būtų konfigūruojami Docker pagrindu veikiantys Chromium seansai be grafinės sąsajos, skirti naršyklės automatizavimo teikėjams. Visi parametrai neprivalomi – numatytosios reikšmės pateiktos toliau. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------- | ------------------------------ | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Kelias iki Docker vykdomojo failo, naudojamo VNC konteineriams paleisti. | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Docker atvaizdis, skirtas VNC Chromium konteineriui. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | _(įtaisytosios vėliavėlės)_ | `src/lib/vncSession/manifest.ts` | Papildomi Chromium CLI argumentai, perduodami konteinerio viduje veikiančiai naršyklei. | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | VNC prievadas konteinerio viduje. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Chrome DevTools Protocol prievadas konteinerio viduje. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Profilio katalogas konteinerio viduje. | | `OMNIROUTE_VNC_PROFILE_DIR` | _(nenustatyta)_ | `src/lib/vncSession/manifest.ts` | Pagrindinio kompiuterio katalogas nuolatiniams naršyklės profiliams. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` | `src/lib/vncSession/manifest.ts` | Neveiklos skirtasis laikas (ms), kuriam praėjus VNC seansas surenkamas. | | `OMNIROUTE_VNC_MAX_MS` | `1800000` | `src/lib/vncSession/manifest.ts` | Didžiausia seanso trukmė (ms). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Didžiausias vienu metu veikiančių VNC seansų skaičius. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Naršyklės parengties skirtasis laikas (ms). | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Surinkimo / valymo skirtasis laikas (ms). | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Specialus Docker tinklas, prie kurio prisijungia konteineris (#12571), atskirai nuo numatytojo tiltinio tinklo. | | `VIBEPROXY_DATA_DIR` | _(nenustatyta)_ | `open-sse/services/notionThreadSessions.ts` | Katalogas, skirtas ilgalaikiam Notion gijų seansų saugojimui. | ### Vidinės paslaugos autentifikavimas | Kintamasis | Numatytoji reikšmė | Aprašymas | | --------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | – | Tiesiogiai nurodytas prieigos raktas, skirtas valdymo lygmens paslaugų tarpusavio autentifikavimui. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | – | Kelias iki failo, kuriame yra vidinės paslaugos prieigos raktas (pageidautina naudoti konteineriuose; turi pirmenybę prieš tiesiogiai nurodytą kintamąjį). | ### OpenRouter teikėjų statistika | Kintamasis | Numatytoji reikšmė | Aprašymas | | ----------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------- | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | Nustatykite `false`, kad nebūtų gaunama kiekvieno OpenRouter teikėjo statistika katalogui papildyti. | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `3600000` | Gautos OpenRouter teikėjų statistikos podėlio galiojimo trukmė (ms). | ### Įtaisytasis Redis susiejimas | Kintamasis | Numatytoji reikšmė | Aprašymas | | --------------------------- | ------------------ | --------------------------------------------------------------------------- | | `REDIS_BIND_HOST` | `127.0.0.1` | Integruotos Redis paslaugos susiejimo adresas. | | `REDIS_PORT` | `6379` | Integruotos Redis paslaugos prievadas. | | `OMNIROUTE_REDIS_BIND_HOST` | – | OmniRoute taikomas integruotos Redis paslaugos susiejimo adreso perrašymas. | --- ## 24. „v3.8.50“ leidimo papildymai Šie nustatymai buvo įtraukti po ankstesnės aplinkos sutarties momentinės kopijos. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | ------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | Ilgiausias laukimo laikas, per kurį tikimasi gauti didelio išteklių poreikio pokalbio priėmimo vietą prieš grąžinant pakartotinai bandomą `503`; trumpas ribotas laukimas nuosekliai apdoroja agentų užklausų pliūpsnius, užuot iškart grąžinęs `503`. `0` atkuria neatidėliotiną atmetimą. | | `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Eilėje esančių baitų biudžetas priėmimo laukimui: apriboja bendrą buferyje laikomų užklausos turinio baitų kiekį visame procese, kad laukimas nepadidintų dinaminės atminties naudojimo (#4380). Biudžetą viršijantys laukimai iškart gauna pakartotinai bandomą `503`. | | `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 s) | `src/shared/middleware/chatBodyAdmission.ts` | Nuo #10110 nebenaudojama ir nieko neatliekanti parinktis: kiekvieno seanso priėmimo juostos buvo pašalintos ir pakeistos vienu visam procesui taikomu biudžetu. Priimama dėl konfigūracijos suderinamumo, tačiau ignoruojama. | | `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Nuo #10110 nebenaudojama ir nieko neatliekanti parinktis: kiekvieno seanso priėmimo juostos buvo pašalintos ir pakeistos vienu visam procesui taikomu biudžetu. Priimama dėl konfigūracijos suderinamumo, tačiau ignoruojama. | | `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (išjungta) | `open-sse/services/admission/runtime.ts` | Adaptyviosios vykdymo aplinkos virtualios priėmimo juostos (#9654): pagrindinis kiekvienam nuomininkui taikomo adaptyviojo užkardo mechanizmo (2 sistema) jungiklis. Skiriasi nuo anksčiau pateiktų nebenaudojamų kiekvieno ryšio juostų kintamųjų (TTL_MS / MAX_SESSIONS, nuo #10110 nieko neatlieka). Valdymo skydo funkcijos vėliavėlė tokiu pačiu pavadinimu; aplinkos kintamasis turi pirmenybę prieš valdymo skydo perrašą; reikia paleisti iš naujo. | | `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | Apriboja laiką, kurį „run-now“ iškvieta laukia vykdomos užduoties prieš pradėdama eilėje esančią vykdymo užklausą. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | įjungta | `open-sse/services/adobeFireflySession.ts` | Naudojant paskyrai priskirtus „Chrome“ CDP seansus palaikoma aktuali IMS ir naršyklės rizikos būsena; norėdami išjungti, nustatykite `0`. | | `ADOBE_FIREFLY_SESSION_DISK` | įjungta | `open-sse/services/adobeFireflySession.ts` | Atkurti „Adobe“ seansai išsaugomi kataloge `DATA_DIR`; norėdami būseną laikyti tik atmintyje, nustatykite `0`. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Mažiausias intervalas tarp „Adobe Firefly“ generavimo užklausų pateikimų. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Papildomas ramybės laikotarpis po kas trečio sėkmingo „Adobe“ pateikimo. | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Tik derinimui skirtas tikras veikimo be grafinės sąsajos režimas; „Adobe colligo“ paprastai atmeta taip sukurtą rizikos seansą. | | `CHROME_PATH` | automatinis aptikimas | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | Pasirinktinis absoliutus kelias iki „Chrome“ vykdomojo failo, kurį naršykle valdomos vykdymo priemonės naudoja, kai platformos automatinio aptikimo nepakanka. | | `TELEGRAM_BOT_TOKEN` | _(nenustatyta)_ | `src/lib/telegram/config.ts` | „BotFather“ prieigos raktas, kuris įjungia gaunamų užklausų „webhook“ ir pasirašo „Mini App“ `initData`. | | `TELEGRAM_WEBHOOK_SECRET` | _(nenustatyta)_ | `src/lib/telegram/config.ts` | Bendrinama slaptoji reikšmė, užregistruota naudojant `setWebhook` ir kiekvieno „webhook“ pristatymo metu tikrinama pagal `X-Telegram-Bot-Api-Secret-Token` antraštę. Privaloma „webhook“ keliui; jei nenustatyta, „webhook“ pristatymai atmetami grąžinant 503. | | `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | „Telegram“ pokalbių atsakymams naudojamas modelis. | | `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | Bazinio „Bot API“ URL perrašymas, skirtas tarpiniams serveriams arba savarankiškai talpinamiems „Bot API“ serveriams. | | `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | Siunčiamų „Bot API“ iškvietų skirtasis laikas milisekundėmis. | | `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (įjungta) | `scripts/build/optionalPackStaging.mjs` | Nustatykite `0`, kad ruošiant pasirinktinius ML / naršyklės paketus autonominiam „Electron“ medžiui nebūtų kuriami `.tar.gz` archyvai (paketų katalogai ir `optional-packs.index.json` vis tiek sukuriami). Naudojama darbalaukio leidimo darbo eigoje siekiant sumažinti įkeliamų artefaktų dydį. | ### „ChatGPT Web“ („Codex“) Visuotinės numatytosios naršyklės be grafinės sąsajos ir siunčiamo įrankių tunelio nuostatos. Valdymo skyde nustatytos ryšio reikšmės turi pirmenybę. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašymas | | --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CHATGPT_WEB_CODEX_CHROME_PATH` | _(aptinkama automatiškai)_ | `open-sse/executors/chatgpt-web-codex.ts` | Aiškiai nurodytas Chrome / Chromium kelias, skirtas veikimui su npm, systemd ir PM2. | | `CHROME_PATH` | _(aptinkama automatiškai)_ | `open-sse/executors/chatgpt-web-codex.ts` | Bendroji atsarginė aiškiai nurodyto Chrome / Chromium kelio reikšmė. | | `CHATGPT_WEB_CODEX_CDP_URL` | _(nenustatyta)_ | `open-sse/executors/chatgpt-web-codex.ts` | Vidinis CDP galinis taškas; Docker naudoja pagalbinį konteinerį per prievadą `9223`. | | `CDP_PROXY_TOKEN` | _(nenustatyta)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | Jei nustatyta, kiekviena užklausa CDP tarpinio serverio pagalbiniam konteineriui turi perduoti šią reikšmę antraštėje `X-Omni-Cdp-Token` (#13679). Jei reikšmė nenustatyta, tarpinis serveris persiunčia užklausas be autentifikavimo — tokiu atveju apsaugą užtikrina tik Compose tinklo `chatgpt-web-codex-net` izoliacija. Sugeneruokite naudodami `openssl rand -hex 32`. | | `CHATGPT_WEB_CODEX_TUNNEL_ID` | _(nenustatyta)_ | `open-sse/executors/chatgpt-web-codex.ts` | Visuotinis OpenAI tunelio ID vietiniams Codex įrankių vykdymo ciklams. | | `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(nenustatyta)_ | `open-sse/executors/chatgpt-web-codex.ts` | Visuotinis tunelio vykdymo aplinkos raktas; niekada neįrašykite jo į žurnalus. | | `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | Tikslus naujai sukurto ChatGPT pasirinktinio jungiklio, skirto MCP tiltui, pavadinimas. | | `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | Specialus katalogas, skirtas naršyklės, tarpininko ir tunelio būsenai. | | `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | Nustačius `1`, kiekviename kontroliniame taške užfiksuojami naršyklės diagnostikos vaizdai. | | `CODEX_CHATGPT_WEB_LAUNCHER` | _(nenustatyta)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Pasirenkamas absoliutus kelias į nuolatinį paleidiklio dvejetainį failą. | | `CODEX_CHATGPT_WEB_BUN` | _(aptinkama automatiškai)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Pasirenkamas absoliutus kelias į Bun vykdymo aplinkos dvejetainį failą. | | `CODEX_WEB_GPT_BUN` | _(nenustatyta)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Senesnė atsarginė `CODEX_CHATGPT_WEB_BUN` reikšmė; naujos konfigūracijos naudoja kanoninį pavadinimą. | --- ## OmniConductor tiltas Ilgaamžis SSE vartotojas, kuris atspindi OmniConductor centro užduotis vietinėje A2A TaskManager (`src/lib/conductor/`). Pasirenkama funkcija — tiltas paleidžiamas tik tada, kai nustatytas `CONDUCTOR_HUB_URL`. Tik serverio pusėje: centro prieigos raktas niekada neturi pasiekti naršyklės. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ------------------------------ | ----------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | `CONDUCTOR_HUB_URL` | _(tuščia)_ | `src/lib/conductor/boot.ts` | Bazinis OmniConductor centro URL (pvz., `http://127.0.0.1:7910`). Nenustatyta = tiltas išjungtas. | | `CONDUCTOR_HUB_TOKEN` | _(tuščia)_ | `src/lib/conductor/boot.ts` | Centro kredencialas, skirtas SSE srautui — centre sukurkite `spokesperson` tipo lygiavertį mazgą (`POST /v1/peers`, administratorius). | | `CONDUCTOR_ORCHESTRATOR_TOKEN` | _(tuščia)_ | `src/lib/conductor/hubProxy.ts` | Kredencialas, skirtas gaunamų A2A→centras užduočių delegavimui (`POST /v1/tasks`); jei nenustatyta, naudojamas `CONDUCTOR_HUB_TOKEN`. | | `CONDUCTOR_SPOKESPERSON_URL` | `http://127.0.0.1:7920` | `src/lib/conductor/faroProxy.ts` | Bazinis atstovo (Faro) paslaugos, veikiančios už valdymo skydelio pokalbių tarpinio serverio (`/api/conductor/ask`), URL. | ### Į kvotą atsižvelgiantis planavimas Naudojama `open-sse/services/combo.ts` ir `src/lib/quota/quotaScheduler.ts` žetonų biudžetui patikrinti prieš užklausą. Pasirenkama funkcija — jei nenustatyta, numatytoji maršruto parinkimo elgsena nesikeičia. | Kintamasis | Numatytoji reikšmė | Šaltinio failas | Aprašas | | ------------------------------- | ------------------ | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_QUOTA_AWARE_ROUTING` | `0` | `open-sse/services/combo.ts` | Kai nustatyta `1`, prieš siunčiant užklausą praleidžiami ryšiai, kurių kiekvieno lango žetonų biudžeto (`rateLimitOverrides.tpm`, lentelė `provider_quota_state`) nepakanka apskaičiuotai užklausos kainai padengti. Jei biudžetas nesukonfigūruotas, leidžiama tęsti. |