# Environment Variables Reference (Kiswahili)
🌐 **Languages:** 🇺🇸 [English](../../../../reference/ENVIRONMENT.md) · 🇪🇹 [am](../../../am/docs/reference/ENVIRONMENT.md) · 🇸🇦 [ar](../../../ar/docs/reference/ENVIRONMENT.md) · 🇦🇿 [az](../../../az/docs/reference/ENVIRONMENT.md) · 🇧🇬 [bg](../../../bg/docs/reference/ENVIRONMENT.md) · 🇧🇩 [bn](../../../bn/docs/reference/ENVIRONMENT.md) · 🇧🇦 [bs](../../../bs/docs/reference/ENVIRONMENT.md) · 🇨🇿 [cs](../../../cs/docs/reference/ENVIRONMENT.md) · 🇩🇰 [da](../../../da/docs/reference/ENVIRONMENT.md) · 🇩🇪 [de](../../../de/docs/reference/ENVIRONMENT.md) · 🇬🇷 [el](../../../el/docs/reference/ENVIRONMENT.md) · 🇪🇸 [es](../../../es/docs/reference/ENVIRONMENT.md) · 🇪🇪 [et](../../../et/docs/reference/ENVIRONMENT.md) · 🇮🇷 [fa](../../../fa/docs/reference/ENVIRONMENT.md) · 🇫🇮 [fi](../../../fi/docs/reference/ENVIRONMENT.md) · 🇫🇷 [fr](../../../fr/docs/reference/ENVIRONMENT.md) · 🇮🇪 [ga](../../../ga/docs/reference/ENVIRONMENT.md) · 🇮🇳 [gu](../../../gu/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ha](../../../ha/docs/reference/ENVIRONMENT.md) · 🇮🇱 [he](../../../he/docs/reference/ENVIRONMENT.md) · 🇮🇳 [hi](../../../hi/docs/reference/ENVIRONMENT.md) · 🇭🇷 [hr](../../../hr/docs/reference/ENVIRONMENT.md) · 🇭🇺 [hu](../../../hu/docs/reference/ENVIRONMENT.md) · 🇦🇲 [hy](../../../hy/docs/reference/ENVIRONMENT.md) · 🇮🇩 [id](../../../id/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ig](../../../ig/docs/reference/ENVIRONMENT.md) · 🇮🇹 [it](../../../it/docs/reference/ENVIRONMENT.md) · 🇯🇵 [ja](../../../ja/docs/reference/ENVIRONMENT.md) · 🇬🇪 [ka](../../../ka/docs/reference/ENVIRONMENT.md) · 🇰🇭 [km](../../../km/docs/reference/ENVIRONMENT.md) · 🇮🇳 [kn](../../../kn/docs/reference/ENVIRONMENT.md) · 🇰🇷 [ko](../../../ko/docs/reference/ENVIRONMENT.md) · 🇱🇹 [lt](../../../lt/docs/reference/ENVIRONMENT.md) · 🇱🇻 [lv](../../../lv/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ml](../../../ml/docs/reference/ENVIRONMENT.md) · 🇮🇳 [mr](../../../mr/docs/reference/ENVIRONMENT.md) · 🇲🇾 [ms](../../../ms/docs/reference/ENVIRONMENT.md) · 🇲🇹 [mt](../../../mt/docs/reference/ENVIRONMENT.md) · 🇲🇲 [my](../../../my/docs/reference/ENVIRONMENT.md) · 🇳🇵 [ne](../../../ne/docs/reference/ENVIRONMENT.md) · 🇳🇱 [nl](../../../nl/docs/reference/ENVIRONMENT.md) · 🇳🇴 [no](../../../no/docs/reference/ENVIRONMENT.md) · 🇮🇳 [or](../../../or/docs/reference/ENVIRONMENT.md) · 🇮🇳 [pa](../../../pa/docs/reference/ENVIRONMENT.md) · 🇵🇭 [phi](../../../phi/docs/reference/ENVIRONMENT.md) · 🇵🇱 [pl](../../../pl/docs/reference/ENVIRONMENT.md) · 🇵🇹 [pt](../../../pt/docs/reference/ENVIRONMENT.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/ENVIRONMENT.md) · 🇷🇴 [ro](../../../ro/docs/reference/ENVIRONMENT.md) · 🇷🇺 [ru](../../../ru/docs/reference/ENVIRONMENT.md) · 🇱🇰 [si](../../../si/docs/reference/ENVIRONMENT.md) · 🇸🇰 [sk](../../../sk/docs/reference/ENVIRONMENT.md) · 🇸🇮 [sl](../../../sl/docs/reference/ENVIRONMENT.md) · 🇷🇸 [sr](../../../sr/docs/reference/ENVIRONMENT.md) · 🇸🇪 [sv](../../../sv/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)
---
> Rejelea kamili kwa kila kigeu cha mazingira kinachotambuliwa na OmniRoute. Kwa kiolezo cha kuanza haraka, angalia [`.env.example`](../../.env.example).
> [!IMPORTANT]
> Kila kigezo kilichoandikwa hapa lazima pia kionekane katika `.env.example`, na kila kigezo katika `.env.example` lazima kionekane hapa. `npm run check:env-doc-sync` inatekeleza hili kwa ahadi na katika CI. Ili kuacha kigezo kwa makusudi, kiongeze kwenye orodha ya wanaoruhusiwa ndani `scripts/check/check-env-doc-sync.mjs`.
---
## Jedwali la Yaliyomo
- [1. Siri zinazohitajika](#1-required-secrets)
- [2. Hifadhi na Hifadhidata](#2-storage--database)
- [3. Mtandao na Bandari](#3-network--ports)
- [4. Usalama na Uthibitishaji](#4-security--authentication)
- [5. Usafishaji wa Pembejeo & Ulinzi PII](#5-input-sanitization--pii-protection)
- [6. Zana na Sera za Uelekezaji](#6-tool--routing-policies)
- [7. URLs & Usawazishaji wa Wingu](#7-urls--cloud-sync)
- [8. Wakala wa Nje](#8-outbound-proxy)
- [9. CLI Tool Integration](#9-cli-tool-integration)
- [10. Wakala wa Ndani & Muunganisho MCP](#10-internal-agent--mcp-integrations)
- [11. OAuth Hati za Mtoa huduma](#11-oauth-provider-credentials)
- [12. Ubatilishaji wa Wakala wa Mtumiaji wa Mtoa Huduma](#12-provider-user-agent-overrides)
- [13. CLI Utangamano wa Alama za Kidole](#13-cli-fingerprint-compatibility)
- [14. API Watoa Huduma Muhimu](#14-api-key-providers)
- [15. Mipangilio ya Muda wa Kuisha](#15-timeout-settings)
- [16. Kukata miti](#16-logging)
- [17. Uboreshaji wa Kumbukumbu](#17-memory-optimization)
- [18. Usawazishaji wa Bei](#18-pricing-sync)
- [19. Usawazishaji wa Muundo (Dev)](#19-model-sync-dev)
- [20. Mipangilio Maalum ya Mtoa huduma](#20-provider-specific-settings)
- [21. Afya ya Wakala](#21-proxy-health)
- [22. Debugging](#22-debugging)
- [23. GitHub Integration](#23-github-integration)
- [24. Ujuzi Sandbox (v3.8.0 +)](#24-skills-sandbox-v380)
- [27. Mlisho wa Rada (Kujihudumia)](#27-radar-feed-self-hosting)
- [Matukio ya Usambazaji](#deployment-scenarios)
- [Ukaguzi: Vigezo Vilivyoondolewa / Vilivyokufa](#audit-removed--dead-variables)
---
## 1. Siri zinazohitajika
Siri ambazo hazijawekwa zimetiwa alama** Ndiyo** huzalishwa kiotomatiki kwa mara ya kwanza (`JWT_SECRET`, `API_KEY_SECRET`) na kuendelea hadi `server.env` kwenye saraka ya data — kuziweka wazi wakati saraka hiyo ni ya muda mfupi. Isipokuwa ni `OMNIROUTE_WS_BRIDGE_SECRET`: haijadumishwa kwa `server.env` — viingilio vya seva kutoa thamani ya muda kwa kila buti ambayo daraja la mchakato pekee linaweza kutumia, kwa hivyo wateja wa daraja la nje wanahitaji kuwekwa wazi.
| Inaweza kubadilika | Inahitajika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------- | ---------------------- | ---------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `JWT_SECRET` | **Ndiyo** | _(hakuna)_ | `src/lib/auth` | Signs/verifies vidakuzi vyote vya kikao cha dashibodi (JWT). Tengeneza na `openssl rand -base64 48`. |
| `API_KEY_SECRET` | **Ndiyo** | _(hakuna)_ | `src/lib/db/apiKeys.ts` | AES ufunguo wa usimbaji fiche wa thamani kuu za API ukiwa umepumzika ndani SQLite. Tengeneza kwa `openssl rand -hex 32`. |
| `INITIAL_PASSWORD` | Hapana | _(haijawekwa)_ | `src/lib/auth/managementPassword.ts` | Huweka nenosiri la dashibodi wakati wa kuanza huku hakuna lililohifadhiwa bado; hupuuzwa mara tu nenosiri limehifadhiwa. npm na chanzo husakinisha nakala `.env.example` kwa `.env`, kwa hivyo huanza na kishikilia nafasi chake kinachojulikana hadharani `CHANGEME`: ibadilishe kabla ya kuwasha kwanza, au weka `INITIAL_PASSWORD=` (tupu) katika `.env` hiyo kuunda nenosiri katika kichawi cha uwekaji kwenye ziara ya kwanza, kama thamani ambayo haijawekwa (chaguo-msingi ya picha ya Docker ). Badilisha nenosiri lililohifadhiwa katika Dashibodi → Mipangilio → Usalama, au endesha `omniroute reset-password` (`node bin/reset-password.mjs` katika malipo ya chanzo) na `DATA_DIR` imewekwa kwenye saraka ya data ya seva. |
| `OMNIROUTE_WS_BRIDGE_SECRET` | **Ndiyo** (uzalishaji) | _(haijawekwa)_ | `src/app/api/internal/codex-responses-ws/route.ts` | Siri iliyoshirikiwa kwa daraja la ndani la Majibu ya Codex WebSocket. Inathibitisha maombi ya daraja kati ya relay Electron/browser WS na OmniRoute. ⚠️**REQUIRED katika uzalishaji — wakati haijawekwa, maombi yote ya daraja la WS yamekataliwa.** Tengeneza kwa `openssl rand -base64 32`. |
| `OMNIROUTE_SW_BUILD_ID` | Hapana | _(git SHA)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Kitambulisho cha akiba cha mfanyikazi-huduma kwa ganda la PWA (#11779); kwanza katika mlolongo wa azimio. |
| `SOURCE_VERSION` | Hapana | _(haijawekwa)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | Pili katika mnyororo — uliowekwa na wajenzi wa PaaS (km mtindo wa Heroku) kama ahadi iliyotumwa. |
| `NEXT_PUBLIC_SW_BUILD_ID` | Hapana | _(imetolewa)_ | `src/shared/components/PwaRegister.tsx` | Thamani ya muda ya umma ambayo mteja hutumia kusajili `/sw.js?v=…`; inayotokana na hizo mbili hapo juu, kisha git SHA. |
| `OMNIROUTE_PEER_STAMP_TOKEN` | Hapana (otomatiki) | _(otomatiki kwa buti)_ | `src/server/authz/policies/management.ts` | Siri ya kila mchakato inayothibitisha stempu ya IP-rika inayoaminika ilitoka kwa seva ya HTTP ya OmniRoute(`scripts/dev/peer-stamp.mjs`). Authz middleware trusts inaomba eneo (loopback/LAN lango la njia LOCAL_ONLY ) tu wakati stempu inabeba tokeni hii. Imetolewa kiotomatiki kila — ya buti iache bila kuwekwa; ibandike tu kwa usanidi wa michakato mingi ambayo lazima ishiriki muhuri. |
| `OMNIROUTE_TRUSTED_PROXIES` | Hapana | _(haijawekwa)_ | `scripts/dev/peer-stamp.mjs` | Masafa ya IPs au CIDR yaliyotenganishwa kwa koma ya proksi za kinyume ambazo `X-Forwarded-For` / `X-Real-IP` orodha ya allow/deny IP kuamini, juu ya loopback, anwani za mtandao wa kibinafsi na kingo za Cloudflare, ambazo zinaaminika kila wakati. Inahitajika tu kwa wakala kwenye anwani nyingine yoyote ya umma; la sivyo hiyo anwani ya wakala ndiyo inayohukumu kichujio. Vitufe vya kuponyeza kwa mteja kwa kila mteja (`/api/v1/relay/chat/completions`) kwenye anwani ile ile ya mteja iliyotatuliwa, kamwe si kwa kusambaza vichwa pekee. |
### Amri za Kizazi
```bash
# Generate all four secrets at once:
echo "JWT_SECRET=$(openssl rand -base64 48)"
echo "API_KEY_SECRET=$(openssl rand -hex 32)"
echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"
echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"
```
> [!CAUTION]
> Kamwe usitoe faili `.env` zilizo na siri halisi za kudhibiti toleo. `.gitignore` tayari haijumuishi `.env`, lakini thibitisha kabla ya kusukuma.
---
## 2. Hifadhi na Hifadhidata
OmniRoute hutumia**SQLite** (kupitia `better-sqlite3`) kwa uvumilivu wote. Vigezo hivi hudhibiti eneo la data, usimbaji fiche na mzunguko wa maisha.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------ | ------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DATA_DIR` | `~/.omniroute/` | `src/lib/db/core.ts` | Saraka ya mizizi ya SQLite DB, chelezo, na faili za data. Batilisha kwa ujazo wa Docker au njia maalum. |
| `OMNIROUTE_ALLOW_DEFAULT_DATA_DIR` | _(haijawekwa)_ | `src/lib/dataPaths.ts` | Escape hatch kwa walinzi wa DATA_DIR test/eval #10428). Majaribio na uchunguzi wa Node eval/print (`-e`/`--eval`/`-p`/`--print`, ikiwa ni pamoja na fomu za `--eval=`/`--print=` ) bila `DATA_DIR` huelekezwa kwenye temp dir ya kutupa ili wasiweze kufungua hifadhidata halisi ya mwendeshaji; weka `1` ili kuchagua kurudi kwenye saraka halisi. |
| `OMNIROUTE_BUILD_SHA` | _(haijawekwa)_ | `src/lib/monitoring/buildSha.ts` | Git SHA ya vizalia vya programu vinavyoendesha. muhuri wa `npm run build:release`; hudungwa katika makontena ambayo husafirishwa bila mlinzi wa `dist/BUILD_SHA`. Imewekwa kama `system.buildSha` kwenye `/api/monitoring/health`. |
| `OMNIROUTE_RELEASE_REF` | `origin/main` | `scripts/build/buildProvenance.ts` | Rejelea lango la asili la pakiti-vizalia vya zamani hukagua SHA ya ujenzi dhidi ya (#10427). |
| `OMNIROUTE_ALLOW_CANARY_BUILD` | _(haijawekwa)_ | `scripts/build/buildProvenance.ts` | Weka kuwa `1` ili kuruhusu upakiaji wa jengo ambalo SHA yake haiko kwenye mstari wa kutolewa, ikirekodi kama canary ya makusudi badala ya kushindwa lango (#10427). |
| `OMNIROUTE_SMOKE_API_KEY` | _(haijawekwa)_ | `scripts/ops/deploy-canary.mjs` | API ufunguo wa uchunguzi wa moshi wa kutumia canary, umetumwa kama `Authorization: Bearer` kwenye `/v1/chat/completions`. Inatumiwa tu na hati ya kupeleka (#10429), kamwe na seva. Haihusiani na vigeu vya `OMNIROUTE_SMOKE_*` vya kuunganisha moshi wa CLI (`RUN_CLI_SMOKE=1`, `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS` katika `tests/integration/upstream-cli-smoke.int.test.ts`) — tazama [CLI Integrations → Ufagiaji halisi wa moshi](../guides/CLI-INTEGRATIONS.md). |
| `OMNIROUTE_BUILDING` | _(haijawekwa)_ | `src/lib/buildPhase.ts` | Mawimbi ya awamu ya ujenzi (#10060): iliyowekwa kuwa `1` na `scripts/build/build-next-isolated.mjs` na kurithiwa na kila mfanyakazi wa ujenzi aliyezaliwa ili safu ya DB irejeshe kibofu cha no-op badala ya kupakia better-sqlite3 addon asilia (ambayo humpa mfanyikazi mimba wakati wa kutoka). Usiweke kamwe kwa seva inayoendesha. |
| `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | Weka `1` ili kuruka hundi ya hiari ya utegemezi asilia kwa miti ya kigeni inayouzwa. Hii haifanyi utegemezi unaokosekana kujengwa; tumia tu wakati tegemezi asili hutolewa nje ya bendi. |
| `OMNIROUTE_DATA_DIR` | _(haijawekwa)_ | `open-sse/executors/promptql/threadSticky.ts` | **Lakabu mbadala** kwa `DATA_DIR`, imeangaliwa tu wakati `DATA_DIR` haijawekwa. Inatumika kupata akiba ya kikao cha mtekelezaji wa PromptQL kwenye diski-nata (`
/promptql-thread-sessions.json`); ikiwa hakuna var imewekwa, kashe hukaa kwenye kumbukumbu pekee (haijadumishwa kwa kuanza tena). |
| `OMNIROUTE_PLUGINS_DIR` | _(haijawekwa)_ | `src/lib/plugins/scanner.ts` | Saraka ya** kichanganuzi cha programu-jalizi cha wakati wa kukimbia** husoma — na mzizi ambao kidhibiti programu-jalizi husakinisha kwenye — ikipita chaguo-msingi inayotokana na nyumbani (#11827). Ielekeze kwenye mti-jalizi uliopachikwa kwenye Docker/K8s badala ya kusogeza HOME ili tu kuhamisha njia ya kuchanganua (HOME inasimamia kila tabia nyingine ya jamaa ya nyumbani pia). Ondoa = `~/.omniroute/plugins`, au `/tmp/.omniroute/plugins` wakati mchakato unasafirisha nje hakuna nyumba hata kidogo — ugunduzi usio na ugunduzi huondoa kigezo hiki. Saraka iliyotatuliwa huwekwa mara moja wakati wa kuanza kama `scanner.dir_resolved` na ingizo ambalo lilishinda. Upande wa seva pekee: programu jalizi za amri za CLI huweka `OMNIROUTE_PLUGIN_PATH` zao (sehemu ya 9). |
| `STORAGE_ENCRYPTION_KEY` | _( = tupu imezimwa)_ | `src/lib/db/encryption.ts` | AES ufunguo kamili wa usimbaji wa hifadhidata wa SQLite ukiwa umepumzika. Tengeneza na `openssl rand -hex 32`. |
| `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | Lebo ya toleo la ufunguo wa usimbaji fiche. Ongezeko wakati wa kuzungusha ufunguo ili kusaidia usimbuaji wa nakala rudufu za zamani. |
| `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | Wakati `true`, ruka routine/pre-write SQLite faili chelezo (models.dev bei save/clear, mipangilio inaandika). Nakala za mwongozo na za kurejesha mapema bado zinafanya kazi. Inafanya** sivyo** zima kijipicha cha lazima cha usalama cha kudumu cha kikimbiaji au ulinzi wa uhamaji wa watu wengi kwa DB inayoendelea iliyopo. Hifadhi rudufu zisizo za mikono hupunguzwa hadi mara moja kwa dakika 60. Dashibodi** Mipangilio ya Hifadhi →** inaweza kulemaza kuhifadhi nakala kiotomatiki kwa kujitegemea. |
| `OMNIROUTE_SQLITE_SLOW_MS` | _(unset/off)_ | `src/lib/db/adapters/slowDiagnostics.ts` | Milisekunde; maadili yaliyo chini ya 1 au yasiyo ya nambari kukaa mbali; anaonya mara moja kwa 10s; logi ina dereva, operesheni, na elapsedMs pekee. |
| `OMNIROUTE_SQLITE_OPTIMIZE_ENABLED` | `true` | `src/lib/db/sqlitePlannerStats.ts` | Matengenezo ya takwimu za mpangaji wa usuli, bila kusafishwa kwa uhifadhi: njia ya kwanza ya kusafisha iliyowezeshwa (kwa kawaida 30s baada ya kuanza, baada ya uhamiaji) huendesha `PRAGMA optimize=0x10002`; hupita zinazofuata kila 6h kukimbia `PRAGMA optimize` (au `PRAGMA optimize=0x00002` kwa uchanganuzi usio na kikomo). `false` au `0` huzima matengenezo yote (isiyojali kesi, nafasi nyeupe iliyopunguzwa). Hifadhidata za kumbukumbu na njia mbadala za kusoma pekee haziathiriwi. Kushindwa kumeingia, sio kutupwa. |
| `OMNIROUTE_SQLITE_ANALYSIS_LIMIT` | `400` | `src/lib/db/sqlitePlannerStats.ts` | Huweka `PRAGMA analysis_limit` kabla ya uboreshaji. Nambari kamili za decimal zimebanwa hadi [0, 100000]; malformed/empty maadili chaguo-msingi hadi 400. `0` huomba bila kikomo, uchambuzi kamili wa majedwali yaliyochaguliwa kwa uboreshaji; kupita mara kwa mara husafisha SQLite's optimize sampling-cap bit kuheshimu hili. Hakuna taarifa ya uchambuzi SQL inayoendeshwa. |
| `OMNIROUTE_CRYPT_KEY` | _(haijawekwa)_ | `src/lib/db/encryption.ts` | **Lakabu za urithi** kwa `STORAGE_ENCRYPTION_KEY`. Inakubaliwa kama njia mbadala wakati kigezo msingi hakipo. |
| `OMNIROUTE_API_KEY_BASE64` | _(haijawekwa)_ | `src/lib/db/encryption.ts` | **Lakabu za urithi** (Base64-encoded form) imekubaliwa kama njia mbadala. Imewekwa kiotomatiki kabla ya matumizi. |
| `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(haijawekwa)_ | `src/lib/db/core.ts` | Batilisha muda wa ukaguzi wa afya SQLite (ms). Wakati haijawekwa, chaguo-msingi hutolewa kutoka `NODE_ENV`. |
| `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(imeondolewa)_ | `src/lib/db/walMaintenance.ts` | **Imeondolewa.** `wal_checkpoint(TRUNCATE)` ya mara kwa mara inaweza kubatilisha upangaji wa faharasa wa wal-iliyoshirikiwa na kuvuruga mchakato kwa SIGBUS (#13973), kwa hivyo kiratibu hakipo tena. Tofauti ni ajizi: thamani chanya huweka onyo la kuacha kutumia mara moja, huku `0` au isiyowekwa inakaa kimya. WAL inadumishwa na vituo vya ukaguzi PASSIVE (chini) na kupunguzwa na kituo cha ukaguzi cha kuzima. |
| `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5m) | `src/lib/db/walMaintenance.ts` | Batilisha muda wa `wal_checkpoint(PASSIVE)` wa mara kwa mara (ms). Huweka fremu za WAL zinazosubiri kuwa ndogo ili vituo vya ukaguzi vikae haraka na faili WAL ibaki kwenye mipaka kati ya upunguzaji wa kuzima. `0` imezimwa. |
| `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | Jibu la PASSIVE linapopata faili WAL juu ya saizi hii, endesha `wal_checkpoint(RESTART)` ili WAL ianze tena bila kuandika upya faharasa ya wal iliyopangwa. Vituo vya ukaguzi vya moja kwa moja vya hali ya truncate viliondolewa (angalia safu mlalo `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` ). |
| `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | Weka `1`/`true`/`yes`/`on` ili kuondoka kwenye mchakato baada ya shinikizo muhimu la rasilimali kuendelezwa `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS`, kuruhusu msimamizi (systemd `Restart=always`, Docker kuanzisha upya sera) kurejesha mchakato safi badala ya kutumikia 503s kwa muda usiojulikana. |
| `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` | `120000` (m 2) | `open-sse/utils/resourcePressure.ts` | Shinikizo muhimu lazima lidumu kwa muda gani kabla ya moto wa kutoka kuwasha upya. |
| `OMNIROUTE_PRESSURE_PSI_DISABLED` | `false` | `open-sse/utils/resourcePressurePolicy.ts` | Weka kuwa `1`/`true`/`yes`/`on` ili kupuuza mwenyeji `/proc/pressure/memory` (`psi_some` / `psi_full`) jirani mwenye kelele anaposafiri sekunde 503 huku mchakato huu ukiwa sawa (#13124). Kikundi na walinzi wa lundo la V8 hukaa. PSI pia huacha kuhesabu kama uthibitisho wa kernel throttle kwa `cgroup_high`: jumla ya kikundi juu ya `memory.high` kisha hubadilika kuwa muhimu tu kwa ongezeko la `memory.events` `high`/`max`. Bila `memory.events` uwiano mbichi huhifadhiwa. |
| `OMNIROUTE_SQLJS_WASM_PATH` | _(gundua kiotomatiki)_ | `src/lib/db/adapters/sqljsAdapter.ts` | Njia dhahiri (kabisa au inayohusiana na cwd) hadi `sql-wasm.wasm` unapotumia adapta mbadala ya `sql.js` WASM. Imegunduliwa kiotomatiki kupitia vitegemezi vya kifurushi na mipangilio ya mteuliwa wakati haijawekwa. |
| `OMNIROUTE_BATCH_RETENTION_DAYS` | `30` | `src/lib/db/cleanup.ts` | Siku za mwisho (completed/failed/cancelled/expired) Vituo vya ukaguzi vya Batch API, faili zilizorejelewa input/output/error, na safu mlalo huwekwa kwa usafishaji wa kiotomatiki kabla ya kufutwa. Huanza kutumika mara tu `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` inapowashwa; inalingana na dirisha la uhifadhi wa matokeo ya OpenAI Batch API. Haiathiri njia ya `DELETE /api/v1/batches/delete-completed` iliyoanzishwa na opereta, ambayo hukaa bila masharti (hakuna kichujio cha umri) kwa muundo. |
| `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | Wakati `true`, acha usafishaji kiotomatiki ufagie kifuta kituo cha kazi za Batch API (na vituo vyake vya ukaguzi) zilizopita `OMNIROUTE_BATCH_RETENTION_DAYS`, na ufute maudhui ya BLOB ya faili zilizopakiwa na kupita `expires_at` zao. Imezimwa kwa chaguo-msingi: kila usakinishaji uliopo huhifadhi data hii kama ilivyokuwa hapo awali hadi opereta ajijumuishe. Pia kipengele kinachoweza kuhaririwa cha dashibodi alama — tazama `docs/reference/FEATURE_FLAGS.md` → Runtime. |
| `OMNIROUTE_SKIP_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts`, `src/lib/db/healthCheck.ts` | Weka `1` ili kuruka ukaguzi wa afya DB kabisa unapoanzisha. Inafaa kwa kazi za muda mfupi na majaribio ya ujumuishaji. |
| `OMNIROUTE_FORCE_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts` | Weka `1` ili kulazimisha kitanzi cha ukaguzi wa afya DB, hata wakati kwa kawaida kingerukwa (kwa mfano, kazi za muda mfupi). |
| `OMNIROUTE_SKIP_POSTINSTALL` | `0` | `scripts/postinstall.mjs` | Weka kuwa `1` ili kuruka hali ya joto ya wakati asilia wakati wa `npm install`. Inatumika katika usakinishaji wa CI/headless ambapo sqlite tayari imejengwa. |
| `OMNIROUTE_MIGRATIONS_DIR` | _(gundua kiotomatiki)_ | `src/lib/db/migrationRunner.ts` | Batilisha saraka ambayo kiendesha uhamiaji huchanganua. Inatumika wakati wa kusafirisha uhamishaji uliounganishwa katika miundo maalum. |
| `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(haijawekwa)_ | `src/lib/db/migrationRunner/extraDirs.ts` | Saraka za ziada za uhamiaji kama maingizo `namespace=dir` yaliyotenganishwa na kikomo cha njia ya jukwaa (km `ee=/opt/app/enterprise/db/migrations`). Faili zinazopatikana hapo zimerekodiwa kama `-`, kwa hivyo usambazaji wa uhamishaji wake kamwe haugongani na nafasi za juu za nambari. Ingizo lenye hitilafu, nafasi ya majina isiyo sahihi au saraka inayokosekana hutupa wakati wa kuanza badala ya kuruka taratibu kimyakimya. |
| `OMNIROUTE_MAX_PENDING_MIGRATIONS` | `50` | `src/lib/db/migrationRunner.ts` | Kizingiti cha usalama cha uhamiaji-unaosubiri kwa wingi (#3416). Kuanzisha huacha ikiwa uhamaji zaidi ya huu unasubiri kwenye DB iliyopo (walinzi dhidi ya jedwali la ufuatiliaji lililofutwa). Inua ili kurejesha nakala rudufu ya zamani; weka `0` ili kuzima hundi. |
| `OMNIROUTE_INSTALL_UPGRADE_WORKDIR` | _(`/.install-upgrade`)_ | `scripts/check/check-install-upgrade.mjs` | Saraka ya kufanya kazi ya lango la kutolewa la `check:install-upgrade`. Inahitaji takriban GB 12 (miti ya kusakinisha ~ 3 GB mbili pamoja na tarball), kwa hivyo ni lazima isiendeshe tmpfs — kwenye mkimbiaji anayejipangisha `/tmp` ni tmpfs zinazoungwa mkono na RAM GB 12 na lango limeimaliza, ikipunguza kifurushi. |
| `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(chaguo-msingi katika msimbo)_ | `src/lib/spend/batchWriter.ts` | Muda wa kuvuta (ms) kwa mwandishi wa spend/cost aliyeunganishwa. Maadili ya chini hupunguza kuunganisha kuandika; maadili ya juu hupunguza ugomvi DB. |
| `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(chaguo-msingi katika msimbo)_ | `src/lib/spend/batchWriter.ts` | Ingizo la matumizi lililoakibishwa zaidi kabla ya kusafisha kwa lazima. Kuinua juu ya uwekaji wa QPS ya juu; chini wakati kumbukumbu iliyofungwa ni muhimu zaidi. |
| `OMNIROUTE_PROXY_FETCH_DEBUG` | _(haijawekwa)_ | `open-sse/utils/proxyFetch.ts` | Weka kwa `"true"` ili kutoa kumbukumbu za utatuzi `[ProxyFetch]` kwenye njia ya upeanaji Vercel. Imezimwa kwa chaguo-msingi ili kuzuia kuvuja kwa vidokezo vya uelekezaji. |
| `OMNIROUTE_PROXY_CORE_BINARY_PATH` | _(haijawekwa)_ | `src/lib/proxySubscription/coreConfig/sync.ts` | Njia kamili ya binary ya msingi ya seva ya ndani (faili inayoitwa `sing-box` / `mihomo`) ambayo hukagua usanidi wa msingi uliotolewa kabla ya kuchukua nafasi ya faili iliyopitishwa. Unset huandika `.generated` kando ya faili iliyopitishwa pekee. Mazingira ya seva pangishi pekee: haijawahi kuhifadhiwa kwenye hifadhidata wala kukubaliwa kupitia usimamizi API, kwa sababu mfumo wa jozi hutekelezwa. |
| `OMNIROUTE_PROXY_CORE_RELOAD_COMMAND` | _(haijawekwa)_ | `src/lib/proxySubscription/coreConfig/reload.ts` | Jinsi msingi wa seva mbadala wa ndani hupakia upya baada ya uwekaji mbadala uliothibitishwa: safu ya hoja ya JSON inayoendeshwa bila ganda, au `external` haswa wakati mwangalizi wa nje anatumia faili. Haijawahi kuhifadhiwa kwenye hifadhidata wala kufichuliwa kupitia API. |
| `PROXY_LOG_INCLUDE_IPS` | `false` | `src/lib/proxyLogger.ts` | Weka kuwa `"true"` au `"1"` ili kujumuisha client/egress IPs na kiambishi awali cha akaunti katika kitenzi `[ProxyEgress]` mchakato-logi mstari. Imehifadhiwa OFF kwa chaguo-msingi ili logi ya mchakato isivuje IPs au kiambishi awali cha akaunti. |
| `OMNIROUTE_DEBUG` | _(haijawekwa)_ | `bin/cli/commands/quota.mjs` | Weka kuwa `1` ili kuchapisha uchunguzi wa saa kwa kila ombi (`[omniroute] GET completed in Nms`) kutoka kwa amri za mgao wa CLI hadi stderr. |
| `OMNIROUTE_HEALTHCHECK_PATH` | _(otomatiki)_ | `scripts/dev/healthcheck.mjs` | Njia ya wazi iliyochunguzwa na ukaguzi wa afya wa chombo. Haijawekwa, uchunguzi huipata kutoka kwa `OMNIROUTE_BASE_PATH`; kuiweka huchagua kurudi kwenye sehemu ya mwisho ya ufuatiliaji. |
| `OMNIROUTE_DEBUG_COMPLETION` | _(haijawekwa)_ | `bin/cli/commands/completion.mjs` | Weka kwa thamani yoyote isiyo tupu ili kutoa uchunguzi wa `[omniroute completion]` kutoka kwa njia za kache za ukamilishaji CLI (read/refresh/write). Huzimwa kwa chaguo-msingi — kache hizo hushindwa kimyakimya ili kache ya missing/corrupt isiwahi kuvunja ukamilishaji wa kichupo. |
| `BATCH_RETRY_DURATION_MS` | `86400000` (saa 24) | `open-sse/services/batchProcessor.ts` | Dirisha la juu zaidi la kujaribu tena kwa vipengee vya kundi mahususi (ms). Vipengee vinavyozidi muda huu vimetiwa alama kuwa havikufanikiwa. |
| `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | Ucheleweshaji wa msingi (ms) kwa urejeshaji wa kielelezo kwenye majaribio ya kipengee cha kundi. |
| `BATCH_BACKOFF_MAX_MS` | `3600000` (saa 1) | `open-sse/services/batchProcessor.ts` | Cap (ms) kwa urejeshaji wa kielelezo kati ya majaribio ya kipengee cha kundi. |
| `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | Idadi ya juu zaidi ya bechi zilizochakatwa kwa wakati mmoja. Pandisha ili kuongeza matokeo; weka chini ili kuepuka dhoruba za kikomo cha viwango. |
> [!IMPORTANT]
> Kabla ya kubadilisha hifadhidata iliyopo, kiendesha uhamiaji huchapisha muhtasari kamili, wenye anwani ya maudhui chini ya `DATA_DIR/db_backups/`. Uchapishaji unahitaji mfumo wa faili unaotumia mfumo sawa wa faili, viungo ngumu visivyoweza kubatilisha pamoja na usawazishaji wa kudumu wa faili. POSIX majeshi pia yanahitaji usawazishaji wa saraka; kwenye Windows, Node inaweza kukataa vishikio vya saraka, kwa hivyo OmniRoute husafisha faili iliyochapishwa na kushughulikia usawazishaji wa saraka kama juhudi bora. Ikiwa `DATA_DIR` iliyopachikwa haiwezi kutoa hakikisho hizo, uanzishaji utashindwa kufungwa kabla ya kutumia uhamishaji. Sogeza `DATA_DIR` kwa ujazo na hizo primitives; usitumie `DISABLE_SQLITE_AUTO_BACKUP` kupitisha usalama wa uhamiaji.
### Matukio
| Mazingira | Usanidi |
| ------------------------------------------------ | ----------------------------------------------------------------------------------- |
| **Maendeleo ya ndani** | Acha chaguo-msingi zote. DB anaishi `~/.omniroute/omniroute.db`. |
| **Docker** | `DATA_DIR=/data` + weka sauti kwa `/data`. |
| **Imesimbwa kwa njia fiche wakati wa mapumziko** | Weka `STORAGE_ENCRYPTION_KEY` + weka chelezo za ufunguo! Kuipoteza = kupoteza data. |
| **CI/Testing** | `DATA_DIR=/tmp/omniroute-test` — ephemeral, hakuna usimbaji fiche unaohitajika. |
---
## 3. Mtandao na Bandari
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `PORT` | `20128` | `src/lib/runtime/ports.ts` | Lango kuu la sehemu za mwisho za Dashibodi UI na API (hali ya mlango mmoja). |
| `OMNIROUTE_BASE_PATH` | _(mzizi tupu = )_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | URL njia ndogo ya kuhudumia OmniRoute nyuma ya proksi ya kinyume (huweka Next.js `basePath`; uelekezaji upya wa auth ni basePath-aware). Mfano `/omniroute`. Katika Docker thamani huokwa wakati wa `docker build` (`ARG OMNIROUTE_BASE_PATH`); picha za mizizi zilizoundwa awali zinaweza kutumia thamani tofauti ya wakati wa utekelezaji mara moja kwenye kontena kuanza kabla ya buti za Next.js. Weka `NEXT_PUBLIC_BASE_URL` kwa asili ya umma ikijumuisha njia ndogo sawa. |
| `NEXT_PUBLIC_OMNIROUTE_BASE_PATH` | _(mzizi tupu = )_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Kioo kinachoonekana kwenye kivinjari cha `OMNIROUTE_BASE_PATH`, kikiwa na mstari wakati wa ujenzi ili onyesho la mwisho la dashibodi lionyeshe `https://host/omniroute/v1` badala ya `https://host/v1`. Hurudi hadi `OMNIROUTE_BASE_PATH` wakati haijawekwa. Jenga upya baada ya kubadilisha ( `basePath` inayofuata ni wakati wa kujenga). |
| `DASHBOARD_ALLOW_EMBED` | _(haijawekwa = kamwe haiwezi kutengenezwa)_ | `next.config.mjs`, `scripts/build/dashboardEmbed.mjs` | Jijumuishe upachikaji wa iframe wa kurasa za HTML. Haijawekwa, kila njia inasafirishwa `frame-ancestors 'none'` + `X-Frame-Options: DENY`. Weka kuwa `vscode` ili kuhudumia kurasa (dashibodi, kuingia, hati, kutua) na `frame-ancestors 'self' vscode-webview:` na hakuna `X-Frame-Options`, ili Kivinjari Rahisi cha Msimbo VS kiweze kuzitoa (OmniCopilot's `dashboardOpen: "editor"` mode). Sehemu ya API (`/api`, `/v1`, `/v1beta`, `/a2a`, `/healthz`, lakabu za kiwango cha mzizi) huweka vichwa vikali kwa vyovyote vile. Ni `vscode` pekee inayotambulika — `1`/`true` usiiwezeshe. Muda wa Kujenga: jenga upya baada ya kubadilisha (`docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode` kwa picha; kuiweka kwenye usakinishaji uliojengwa awali haina athari). |
| `API_PORT` | _(haijawekwa)_ | `src/lib/runtime/ports.ts` | Inapowekwa, hutumikia proksi `/v1/*` API (pamoja na Gemini-native `/v1beta/*`) kwenye mlango huu tofauti. |
| `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | Funga anwani ya bandari API. |
| `DASHBOARD_PORT` | _(haijawekwa)_ | `src/lib/runtime/ports.ts` | Inapowekwa, hutumikia Dashibodi UI kwenye bandari hii tofauti. |
| `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(walemavu)_ | `src/sse/utils/backpressure.ts` | Caps miunganisho ya mazungumzo ya ndani ya ndege kwa wakati mmoja; maombi juu ya kofia pata `503` na `Retry-After`. Nambari kamili huwezesha mlinzi; unset/`0` huizima. |
| `OMNIROUTE_INSTANCE_ID` | _(haijawekwa)_ | `src/shared/resilience/peerRouting.ts` | ID thabiti, ya kipekee kwa lango hili wakati wa kufunga matukio OmniRoute. Huwasha ukaguzi wa kitanzi cha rika unaoingia. Herufi zinazoruhusiwa: herufi, tarakimu, `.`, `_`, `:`, na `-`; upeo wa herufi 64. |
| `OMNIROUTE_PEER_URLS` | _(haijawekwa)_ | `src/shared/resilience/peerRouting.ts`, `open-sse/executors/base.ts` | URLs OmniRoute kwa koma ambayo inaweza kupokea `X-OmniRoute-Peer-Trace`. URLs iliyoorodheshwa kwa njia ya juu pekee ndiyo inayopokea metadata rika; watoa huduma wengine wote hawajaguswa. |
| `OMNIROUTE_PEER_MAX_HOPS` | `4` | `src/shared/resilience/peerRouting.ts` | Idadi ya juu zaidi ya matukio OmniRoute yaliyotembelewa hapo awali yamekubaliwa kwa ombi lenye minyororo (`1`-`32`). Matukio yanayorudiwa au urejeshaji wa bajeti uliokwisha HTTP `508 Loop Detected`. |
| `PROD_DASHBOARD_PORT` | `20130` | `docker-compose.prod.yml` | Lango la upande wa mwenyeji lililochapishwa la Dashibodi katika hali ya uzalishaji Docker. |
| `PROD_API_PORT` | `20131` | `docker-compose.prod.yml` | Lango la upande wa mwenyeji lililochapishwa la API katika hali ya uzalishaji Docker. |
| `OMNIROUTE_PORT` | _(haijawekwa)_ | `src/lib/runtime/ports.ts` | Huchukua kipaumbele juu ya `PORT` wakati wa kukimbia ndani ya Electron au kanga zingine. |
| `LIVE_WS_PORT` | `20129` | `src/server/ws/liveServer.ts` | Bandari kwa seva ya ufuatiliaji wa moja kwa moja WebSocket. |
| `LIVE_WS_HOST` | `127.0.0.1` | `src/server/ws/liveServer.ts` | Unganisha anwani ya seva WebSocket ya moja kwa moja. Weka `0.0.0.0` kufichua kwenye LAN (pia sanidi `LIVE_WS_ALLOWED_ORIGINS`). Miunganisho huthibitisha kwa kutumia kidakuzi cha kipindi cha dashibodi au kitufe cha Bearer API ambacho kinashikilia upeo wa usimamizi (`manage`/`admin`). |
| `LIVE_WS_ALLOWED_ORIGINS` | _(haijawekwa)_ | `src/server/ws/liveServer.ts` | Asili za ziada zilizotenganishwa kwa koma zinaruhusiwa kufungua WebSocket moja kwa moja . Asili za dashibodi ya Loopback tayari zimeruhusiwa kwa chaguomsingi. |
| `LIVE_WS_ALLOWED_HOSTS` | _(haijawekwa)_ | `src/server/ws/liveServerAllowList.ts` | Majina ya ziada yaliyotenganishwa kwa koma yanayoruhusiwa kwa asili za WebSocket moja kwa moja. Tofauti na `LIVE_WS_ALLOWED_ORIGINS` (asili kamili URLs), inalingana na sehemu ya seva pangishi — muhimu kwa usanidi wa LAN/Tailscale. |
| `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(haijawekwa)_ | `src/hooks/useLiveDashboard.ts` | URL ya umma kwa dashibodi ya moja kwa moja WebSocket (upande wa kivinjari). Weka unapoweka mbele seva WS kwa kutumia proksi ya kinyume au Tunnel Cloudflare (km `wss://ws.my-ai.com/live-ws`); kivinjari huunganisha hapo badala ya `ws://hostname:20132`. Sehemu ya jina la njia pia hutumiwa kama njia ya uboreshaji WebSocket (chaguo-msingi: `/live-ws`). |
| `OMNIROUTE_ENABLE_LIVE_WS` | `true` | `src/server/ws/liveServer.ts` na `scripts/start-ws-server.mjs` | Weka kuwa `0` au `false` ili kuzima seva WebSocket wakati halisi (imewezeshwa kwa chaguo-msingi, imefungwa kwenye loopback). CI/harness kugeuza ambayo inalemaza hati ya WebSocket ya moja kwa moja ya msaidizi wa moja kwa moja. |
| `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | Per-(token, IP) kikomo cha kiwango cha relay, requests/minute. Katika kumbukumbu, kwa kila mfano. `0` au hasi huzima lango la mwelekeo wa IP (kikomo cha DB kwa ishara bado kinatumika). |
| `NODE_ENV` | `production` | Next.js msingi | Hudhibiti kitenzi cha kumbukumbu, akiba, udhihirisho wa maelezo ya hitilafu, na uboreshaji wa Next.js. |
| `OMNIROUTE_USE_TURBOPACK` | _(haijawekwa)_ (uteuzi wa kiotomatiki wa muundo) | `scripts/build/build-next-isolated.mjs` | Kwa `npm run build`, haijawekwa au tupu huchagua kifurushi cha wavuti wakati kikomo cha kumbukumbu kinachofaa ( RAM ya kimwili au sehemu ya chini cgroup/process ) iko zaidi.** 16 GiB** au haiwezi kuamuliwa kwa usalama; zaidi ya 16 GiB, Turbopack imechaguliwa. `0` inalazimisha pakiti ya wavuti; `1` wazi na maadili mengine yasiyo tupu yanalazimisha Turbopack. Thamani tupu ya mazingira inayotumwa na Compose haina** sivyo** lazimisha Turbopack. Kizingiti hiki kinatoka kwa urejeshaji wa kumbukumbu GiB 15.6 (#18184); jeshi hujenga na 24/32 GiB hazikuwekwa alama. Kifurushi cha tovuti cha uzalishaji huruka kiotomatiki akiba yake inayoendelea kwa chaguo-msingi (ona `OMNIROUTE_WEBPACK_BUILD_CACHE` hapa chini; #18141) na huunda kwa RSS kilele kidogo kuliko njia ya sasa Turbopack. Maendeleo huhifadhi tabia yake iliyopo ya kifurushi.**Docker huunda chaguo-msingi tayari kwa `0` (webpack)** ; tumia `--build-arg OMNIROUTE_USE_TURBOPACK=1` kuchagua kuingia. Tazama `docs/guides/DOCKER_GUIDE.md`. |
| `OMNIROUTE_WEBPACK_BUILD_CACHE` | _(haijawekwa)_ | `next.config.mjs` | Uzalishaji wa pakiti za wavuti huunda (`OMNIROUTE_USE_TURBOPACK=0`) ruka kashe ya mfumo wa faili inayoendelea isipokuwa hii ni `1`. Kuandika kache hiyo huongeza takriban GB 2.5 ya kumbukumbu ya kilele cha ujenzi kwenye kofia ya lundo la 6144 MB, na miundo safi haijawahi kuisoma tena. Weka kwa `1` ili kuweka `.build/next/cache/webpack` kwa uundaji wa marudio haraka kwenye mashine iliyo na RAM ya ziada; Docker inajenga ichukue kama `--build-arg OMNIROUTE_WEBPACK_BUILD_CACHE=1` (`Dockerfile` na `Dockerfile.bun` hatua za wajenzi). |
| `OMNIROUTE_SKIP_DB_HEALTHCHECK` | _(haijawekwa)_ | `src/lib/db/core.ts` / `src/lib/db/healthCheck.ts` | Weka `1` ili uruke ukaguzi wa afya wa SQLite unapoanzisha. Inafaa kwa kuwasha haraka kwenye hifadhidata kubwa. |
| `NOTIFY_SOCKET` | _(haijawekwa)_ | systemd (itifaki ya sd_notify) | Imewekwa na systemd wakati mchakato unaendeshwa chini ya kitengo cha huduma na ujumuishaji wa sd_notify; OmniRoute anaisoma ( tazama `OMNIROUTE_DISABLE_SD_NOTIFY`) kutuma arifa READY/WATCHDOG. Haijawekwa kamwe na mtumiaji. |
| `OMNIROUTE_DISABLE_SD_NOTIFY` | _(haijawekwa)_ | `scripts/dev/systemd-notify.mjs` | Weka kuwa `1` ili kuzima systemd sd_notify (Chapa = notify / WatchdogSec=) hata unapoendesha chini ya kitengo cha mfumo. Arifa ni mfumo wa kuto-op nje bila kujali. |
| `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `3600000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | Muda (ms) kwa kipanga ratiba cha ukaguzi wa kitambulisho cha usuli. Kiwango cha chini: 10000 (sekunde 10). |
| `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | TTL (ms) kwa hali ya kitambulisho iliyohifadhiwa. |
| `OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK` | `false` | `src/lib/credentialHealth/scheduler.ts` | Weka `1` au `true` ili kuzima upimaji wa mara kwa mara wa usuli wa miunganisho ya watoa huduma. Watoa huduma za utafutaji (SEARCH_VALIDATOR_CONFIGS in `src/lib/providers/validation/searchProviders.ts`, kwa mfano `tavily-search`) huwa hawajumuishwi katika kufagia — "uthibitishaji" wao ni hoja halisi inayotozwa malipo ya juu, kwa hivyo huwa hawakaguliwi kiafya kwenye kipima muda (#9970). |
| `DEEP_HEALTH_CHECK_ENABLED` | `0` | `src/app/api/monitoring/health/route.ts` | Weka kuwa `1` ili kuruhusu mpigaji simu aliyeidhinishwa kuomba `/api/monitoring/health?deep=1`, ambayo hutoa sampuli za sehemu ya kukamilisha mara moja kwa kila TTL. Wapigaji simu wasiojulikana kamwe hawaanzishi uchunguzi. |
| `OMNIROUTE_EVENT_LOOP_STALL_THRESHOLD_MS` | `5000` | `src/lib/healthzLag.ts` | Kiwango cha juu cha kusimamisha (ms) cha kinasa sauti cha kitanzi cha kuwasha: kuganda kwa muda mrefu zaidi kuliko hii huweka laini moja `event loop stalled` wakati wa kuendelea na hesabu za kumbukumbu na ndani ya ndege, na kugonga `eventLoopStall` counter/maximum kwenye `/api/monitoring/health`. Weka kwa `0` ili kuzima; thamani isiyoweza kusomeka au hasi inarudi kwa `5000`. |
| `HOST` | `0.0.0.0` | `scripts/dev/run-next.mjs` | Funga anwani ya seva ya Next.js dev/start. Inabatilisha `0.0.0.0` chaguo-msingi inapowekwa. |
| `HOSTNAME` | `127.0.0.1` | `scripts/dev/run-next-playwright.mjs` | Unganisha anwani inayotumiwa na Playwright runner wakati wa kuzindua Next.js. Chaguomsingi hadi `127.0.0.1` kwa majaribio ya hermetic.** Usitumie kwa `omniroute serve`** — tumia `OMNIROUTE_SERVER_HOST` badala yake (POSIX shells weka `HOSTNAME` kiotomatiki kwa jina la mashine; `.env` haiwezi kuibatilisha). |
| `OMNIROUTE_SERVER_HOST` | `0.0.0.0` | `bin/cli/commands/serve.mjs` | Funga anwani ya `omniroute serve`. Huepuka mgongano na kigeu cha POSIX shell `HOSTNAME` (kila mara huwekwa kwa jina la mashine na bash/zsh). Hurudi hadi `0.0.0.0` wakati haijawekwa. (#6194) |
### Njia za Bandari
```
┌─────────────────────────── Single Port (default) ──────────────────────────┐
│ PORT=20128 │
│ → Dashboard: http://localhost:20128 │
│ → API: http://localhost:20128/v1/chat/completions │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Split Ports ─────────────────────────────────────┐
│ DASHBOARD_PORT=20128 │
│ API_PORT=20129 │
│ API_HOST=0.0.0.0 │
│ → Dashboard: http://localhost:20128 │
│ → API: http://0.0.0.0:20129/v1/chat/completions │
│ Use case: Expose API to LAN while restricting Dashboard to localhost. │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Docker Production ──────────────────────────────┐
│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │
│ → Maps container ports to host ports in docker-compose.prod.yml. │
└─────────────────────────────────────────────────────────────────────────────┘
```
---
## 4. Usalama na Uthibitishaji
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MACHINE_ID_SALT` | `endpoint-proxy-salt` | `src/lib/auth` | Chumvi pamoja na vitambulishi vya maunzi kwa uchapaji vidole kwenye mashine. Badilisha kwa kila matumizi kwa kutengwa. |
| `OMNIROUTE_CLI_SALT` | _(ondoa = nasibu kwa kila usakinishaji chumvi iliendelea kwa `/cli-token-salt.json`)_ | `src/lib/machineToken.ts` | HMAC chumvi kwa ajili ya kupata ishara ya CLI auth ya ndani. Kuweka thamani hii huzungusha tokeni zote CLI kwenye mashine na daima huchukua kipaumbele juu ya chumvi inayoendelea. Angalia `docs/security/CLI_TOKEN.md`. |
| `AUTH_COOKIE_SECURE` | `false` | `src/lib/auth` | Inaweka bendera `Secure` kwenye vidakuzi vya kikao.** Lazima `true`** wakati wa kukimbia nyuma ya HTTPS. |
| `REQUIRE_API_KEY` | `false` | API kati | Wakati `true`, maombi yote ya proksi `/v1/*` lazima yajumuishe kitufe halali API.** Bendera hii haiingii `GET /v1/models`** , ambayo inafuata mkao wa kuingia kwenye dashibodi (`requireAuthForModels`) badala yake — kwa hivyo `401` kutoka `/v1/models` haina maana NOT maana ya uelekezaji inalindwa. Tazama `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695). Inakubali `true`, `1` au `yes`, kesi ya kupuuza na nafasi zinazozunguka; thamani nyingine yoyote (pamoja na `on`) imezimwa. |
| `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Huruhusu kufichua thamani kamili za API kwenye Dashibodi UI. Inaweza kusanidiwa kutoka kwa Alama za Kipengele cha Dashibodi; hatari ya usalama kwenye matukio ya pamoja. |
| `NO_LOG_API_KEY_IDS` | _(tupu)_ | `src/lib/compliance/index.ts` | Kitufe cha API kilichotenganishwa kwa IDs ambacho hupita ukataji wa ombi (GDPR kufuata). |
| `DEFAULT_RATE_LIMIT_PER_DAY` | _(unset = unlimited)_ | `src/shared/utils/apiKeyPolicy.ts` | Bajeti ya ombi la kurudi nyuma kwa siku inatumika kwa vitufe vya API ambavyo safu wima yake `rate_limits` ni batili. Haijawekwa au tupu: hakuna kifuniko kisicho wazi (#2289, #11017). `0` ni sawa (isiyo na kikomo). Nambari kamili N huwezesha N/day, 5N/week, 20N/month. Nambari zisizo na umbo mbovu zirudi kwenye urithi 1000/day, 5000/week, 20000/month madirisha. |
| `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | Chaguo-msingi kwa mpangilio wa `maxBodySizeMb` unaoonekana; mpangilio uliohifadhiwa huchukua nafasi ya kwanza. `/api/v1/chat/completions` na `/api/v1/responses` huweka chaguo-msingi la MB 50 hadi kikomo kihifadhiwe; kikomo kilichohifadhiwa basi hukibadilisha, juu au chini, kwa ulinzi wa kichwa na kwa kiingilio cha gumzo la byte sawa sawa. |
| `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | Miili halisi ya ombi iliyo katika au juu ya kizingiti hiki huchukua upangishaji wa uandikishaji wa mchakato wa atomiki - uzani mzito wa eneo lako kabla ya kuchanganua JSON (BYTE njia, ikijumuisha `POST /v1/responses`). [#10437](https://github.com/diegosouzapw/OmniRoute/pull/10437) sawa kutoroka afya-headroom kama muundo-nzito; bado imefungwa na `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / [#10110](https://github.com/diegosouzapw/OmniRoute/issues/10110) ili [#7849](https://github.com/diegosouzapw/OmniRoute/issues/7849) isirudi. |
| `OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES` | `52428800` (50 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Kofia ngumu ya njia ya gumzo inayotekelezwa dhidi ya baiti zilizosomwa wakati wa kumeza kwa mipaka, ikijumuisha maombi yenye `Content-Length` zinazokosekana, batili au zisizo za uaminifu; ziada hupokea `413`. `maxBodySizeMb` iliyohifadhiwa inachukua nafasi ya 50 MB chaguo-msingi; wakati utofauti huu umewekwa, pia hufunika thamani iliyohifadhiwa. |
| `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(ondoa — hakuna kikomo cha kuhesabu ombi)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-fanout:** ombi hili la urithi-COUNT kikomo sasa hufunga tu wakati limewekwa wazi. Ikiachwa ikiwa haijawekwa (chaguo-msingi), uandikishaji wa gumzo la uzani mzito badala yake umewekwa na `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` — bajeti inayotokana otomatiki BYTE yenye ukubwa kutoka dari halisi ya kumbukumbu ya mchakato huo.** mchakato mmoja** (lundo moja la V8). ~ 750k-tokeni mbili zinazopishana `/v1/responses` atoa ~ 12 Gi lundo (#7849) — a** kumbukumbu - bajeti** onyo, sio bidhaa ngumu isiyozidi 2. Mchakato wenye afya (rundo chini ya uwiano wa kumwaga) MAY kubali `/v1/responses` ndefu zaidi sanjari kupitia `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM`. Makumi ya wateja wa muda mrefu SSE (40–50) ni lundo + `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110, si "max 2". Kuinua hii kwa upofu ili "kutumia seva pangishi" kunaleta tena #7849. Zidisha** chungu** na** N `DATA_DIR` huru s** (#11024); kamwe `replicas>1` kwenye faili moja SQLite. |
| `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(imetolewa kiotomatiki)_ | `src/shared/middleware/admissionBudget.ts` | **#503-fanout:** kubatilisha kwa bajeti ya baiti inayotokana na kiotomatiki (25% ya dari ya kumbukumbu V8/cgroup iliyobana zaidi ikigawanywa na ukuzaji wa muda mfupi wa 8x). Thamani zinazotolewa na zilizo wazi zinabana hadi 8 MiB-2 GiB. Mwili mkubwa kuliko bajeti yenye ufanisi hushindwa mara moja na `413 body_exceeds_budget`; ugomvi kati ya mashirika ya mtu mmoja mmoja yanayoweza kuhudumiwa bado unaweza kujaribu tena `503`. Wateja wa SSE 40–50 wanaofanana ni lundo hili + bajeti, sio "max 2" ngumu. Soma `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity` kwa `/api/monitoring/health` kabla ya kurekebisha. |
| `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | Uwiano wa kumwaga shinikizo la lundo (`heapUsed / heap_size_limit`) kwa kiingilio BYTE na STRUCTURE uzani mzito (#10183, #10268, #10437). Ombi la uzani mzito la wakati mmoja uliopita `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` hutolewa tu na `503` inayoweza kujaribiwa tena wakati lundo liko ALSO kwa au juu ya uwiano huu; kwenye lundo lenye afya inakubaliwa kupitia chumba cha kulala cha afya badala yake. |
| `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` ( `1` chaguomsingi) | `src/shared/middleware/chatBodyAdmission.ts` | Imepakana uwezo wa ziada kwa njia ya haraka ya lundo lenye afya (#10437) imewashwa** zote mbili** STRUCTURE na BYTE (`admitChatRequest`, ikiwa ni pamoja na miili ≥ `OMNIROUTE_CHAT_LARGE_BODY_BYTES`). Bila mipaka hii, kila ombi lenye shughuli nyingi-lakini-la-afya-lundo lilikwepa kiingilio bila dari. Pindi ukodishaji huu mwingi wa wakati mmoja unapotumika kupitia njia ya lundo lenye afya, maombi yenye shughuli nyingi hupitia njia ya SAME bounded-wait/shed inayotumiwa chini ya shinikizo halisi la lundo. `0` huzima njia ya kukwepa kabisa. |
| `OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT` | `200` | `src/shared/middleware/chatBodyAdmission.ts` | Hesabu ya ujumbe ambayo huainisha ombi la gumzo kama uzani mzito hata wakati mwili wake uko chini ya kizingiti cha byte. |
| `OMNIROUTE_CHAT_HEAVY_TOOL_COUNT` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Hesabu ya zana ambayo huainisha ombi la gumzo kama uzani mzito hata wakati mwili wake uko chini ya kizingiti cha byte. |
| `OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS` | `32000` | `src/shared/middleware/chatBodyAdmission.ts` | Kadirio la kihafidhina la ukubwa wa kamba ambalo huainisha ombi kama uzani mzito; hii ni proksi ya gharama ya kiingilio, si tokeni ya bili ya mtoa huduma. |
| `OMNIROUTE_CHAT_HARD_MAX_MESSAGES` | `0` (walemavu) | `src/shared/middleware/chatBodyAdmission.ts` | Kikomo cha hiari cha historia ya gumzo. Imezimwa kwa chaguomsingi: hesabu ya ujumbe ni sera ya utumaji, si mali ya ombi zima, na kuweka alama hapa chini kunakataa mazungumzo na `413` wa mwisho kabla ya bomba la mbano kuzifanya zitumike. Ukuaji wa lundo umefungwa na `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` na kibanda cha shinikizo la lundo. Weka thamani nzuri juu ya upelekaji wa vikwazo vya kumbukumbu ambavyo vinahitaji dari ngumu; ziada kisha hupokea muundo wa kompakt-inahitajika `413`. |
| `OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES` | `67108864` (64 MB) | `open-sse/handlers/chatCore/nonStreamingResponseBody.ts` | Kifuniko kigumu cha jibu lisilotiririsha la mto limewekwa kwenye kumbukumbu kikamilifu. Huku nyuma kisomaji cha mkondo wa juu kinaghairiwa na ombi halifaulu haraka badala ya kukuza mfuatano usio na mipaka hadi lundo liishe. |
| `OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES` | `768` | `open-sse/handlers/chatCore/responseHeaders.ts` | Upeo wa baiti za waya zinazosambazwa kutoka kwa vichwa vya majibu juu ya mkondo. Bajeti inapopitwa, vichwa vya kipaumbele cha chini (kwa mfano, desturi `x-codex-*`, `x-oai-request-id`) hushushwa ili kukaa ndani ya vikomo vya kawaida vya vichwa vya wakala wa nyuma. Weka juu ili kusambaza metadata zaidi ya mkondo kwa gharama ya ukubwa wa kichwa cha majibu. |
| `OMNIROUTE_QUOTA_RECOVERY_MAX_PER_KEY` | `64` | `src/lib/quota/quotaSessionRecovery.ts` | Tiketi nyingi za urejeshaji wa mgao (zinasubiri, zinaendeshwa au zinangoja uthibitisho) ufunguo mmoja API unaweza kushikilia. Ufunguo unapofikia kikomo, zamu mpya hupata hitilafu asilia ya mgao badala ya tikiti `202` ; kujaribu tena zamu ambayo tayari imeegeshwa bado hurejesha tikiti yake. Thamani batili au zisizo chanya hutumia chaguo-msingi. |
| `CORS_ORIGIN` | _(haijawekwa)_ | `src/server/cors/origins.ts` | Orodha ya ruhusa CORS yenye asili moja. Pendelea `CORS_ALLOWED_ORIGINS` kwa matumizi mapya. CORS ni kwa wateja wa API wa kivinjari chenye asili tofauti tu; dashibodi iliyothibitishwa huandika tumia maombi ya asili moja pamoja na ulinzi CSRF unaofungamana na kikao badala yake. |
| `CORS_ALLOWED_ORIGINS` | _(haijawekwa)_ | `src/server/cors/origins.ts` | Orodha ya ruhusa CORS iliyotenganishwa kwa koma. Hakuna kadi-mwitu inayotumwa isipokuwa `CORS_ALLOW_ALL=true` imesanidiwa kwa uwazi. |
| `CORS_ALLOW_ALL` | `false` | `src/server/cors/origins.ts` | Njia ya kutoroka kwa maendeleo pekee ili kutoa mwangwi wa kivinjari chochote `Origin`. Usiwashe kwenye uwekaji wa pamoja au wa uzalishaji. |
| `OUTBOUND_SSRF_GUARD_ENABLED` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | Lakabu za urithi. Kugeuza dashibodi yake (ubatilishaji wa DB ) husomwa kabla ya thamani hii ya mazingira; `false`, `0`, `no`, au `off` katika aidha huzima uangalizi wa seva pangishi jinsi `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` hufanya, hata wakati kigeuza dashibodi cha bendera hiyo kimehifadhiwa; maadili mengine acha ulinzi kwa bendera mbili hapa chini. |
| `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS` | `false` | `src/shared/network/outboundUrlGuardPolicy.ts` | Huzima ukaguzi wa mwenyeji wa URL guard, kizuizi cha metadata ya wingu kinajumuishwa (zote 169.254.0.0/16, metadata.google.internal), kwenye njia za mtoa huduma zinazofuata hali ya ulinzi: uthibitishaji wa URL, ugunduzi wa modeli, msingi wa nodi za mtoa huduma URLs (pamoja na nodi za renodi za mbali), na njia ya proksi-fallback kama vile njia ya mtoa huduma ya mbali image/media. Pia inaruhusu shabaha za wavuti za kibinafsi, isipokuwa sehemu za mwisho cloud-metadata/link-local, ambazo husalia kuzuiwa hata bendera hii ikiwa imewashwa. Maombi ya gumzo yanayotumwa kupitia `BaseExecutor.execute()` weka ukaguzi wao wa metadata ya wingu. Watoa huduma wa ndani hufanya kazi na chaguo-msingi: `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` (chaguo-msingi `true`) tayari inaruhusu ndani na LAN URLs kwenye uthibitishaji, ugunduzi na njia za nodi za mtoa huduma; jaribio la proksi-fallback na malengo ya webhook ya kibinafsi huwasiliana na bendera hii pekee na kuzuia wapangishi wa local/LAN wakati imezimwa. Inabatilisha `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false`. Thamani iliyohifadhiwa kutoka kwa kugeuza dashibodi inachukua nafasi ya kwanza kuliko kigeu hiki. |
| `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | Ruhusu mtoa huduma URLs kwenye anwani za local/private (127.0.0.1, localhost, LAN, masafa ya faragha) kwa uthibitishaji wa mtoa huduma, ugunduzi wa muundo, gumzo, na njia za nje za mtoa huduma nyingine zinazopakana na hali ya ulinzi.** `true` chaguomsingi** (ya ndani-kwanza): kisha mlinzi huzuia ncha za metadata ya wingu — zote za 169.254.0.0/16 pamoja na majina ya wapangishi wa metadata (metadata.google.internal, metadata.goog, Alibaba/Azure/Oracle IMDS, fd00:ec2::254). Weka `false` kwa hali ya umma pekee, ambayo huzuia wapangishi wa faragha na wa kurudi nyuma pia. Mlinzi hukagua jina la mpangishaji au IP halisi kama ilivyoandikwa, kabla ya utafutaji wowote DNS ; katika hali ya umma pekee kifurushi cha kuleta salama hutatua pia jina la mpangishaji na kukataa jibu lolote la faragha. `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` huzima ukaguzi huu kwenye njia ambazo orodha zake za safu mlalo. Watoa huduma wa ndani waliojengewa ndani, kama vile LM Studio, Ollama, vLLM, Llamafile na Triton, ruka ukaguzi wote wa seva pangishi ili upate uthibitisho muhimu na gumzo. Thamani iliyohifadhiwa kutoka kwa kugeuza dashibodi inachukua nafasi ya kwanza kuliko kigeu hiki. (#5066) |
| `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | Ruhusu njia za `/v1/audio/*` (nukuu, hotuba, tafsiri) zitumie nodi ya mtoa huduma inayooana na OpenAI iliyopangishwa nje ya mwenyeji. Ikizimwa kwa chaguo-msingi ya — ya kuelekeza sauti hadi kwa seva pangishi ya mbali hubadilisha utambulisho wa egress na lazima iwe uamuzi wa opereta wazi. nodi Loopback/private (localhost, 127.0.0.1, 172.16-31.x) zinaruhusiwa kila wakati na haziathiriwi. (#3963) |
| `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | Ruhusu `POST /v1/rerank` (na hatua ya kurejesha tena kitanzi cha injini ya kumbukumbu) itumie nodi ya mtoa huduma inayolingana na OpenAI iliyopangishwa nje ya localhost — kisanduku LAN au Tailscale peer inayoendesha TEI, Infinity, vLLM, n.k. Kuzimwa kwa chaguo-msingi — kuelekeza hadi kwa seva pangishi ya mbali hubadilisha utambulisho na lazima uwe na uamuzi wazi. Nodi za Loopback (localhost, 127.0.0.1, 172.16-31.x) zinaruhusiwa kila wakati na haziathiriwi. Msingi wa URL wa nodi ya mbali lazima pia upitishe sera URL ya mtoa huduma inayotoka nje (`OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` / `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS`). |
| `OMNIROUTE_LOCAL_PROVIDER_NODE_HOSTS` | _(tupu)_ | `src/shared/network/localNodeHosts.ts` | Majina ya wapangishi (koma au nafasi nyeupe iliyotenganishwa) ambayo uelekezaji wa nodi za mtoa huduma huchukulia kama — ya karibu kwa kawaida jina la huduma ya Docker/Compose la kipanga upya, TEI au gari la sauti kwenye mtandao wa Docker wa OmniRoute(`http://reranker:8080/v1`), kwa hivyo nodi haihitaji chombo chenye msimbo mgumu IP. Wapangishi walioorodheshwa wanastahiki `/v1/rerank`, `/v1/audio/*` na ukaguzi wa afya wa ndani bila kuwasha `RERANK_REMOTE_PROVIDER_NODES` / `AUDIO_REMOTE_PROVIDER_NODES` kwa kila nodi ya mbali, na huitwa moja kwa moja — kamwe kupitia `HTTP(S)_PROXY` au seva mbadala iliyobandikwa ya muunganisho. Bado wanatuma kitufe cha API cha muunganisho. Majina ya lebo moja tu na majina ya `.internal`/`.local` yanakubaliwa; public FQDNs, IP halisi na majina ya metadata ya wingu hupuuzwa kwa onyo. (#14635) |
| `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Wakati OIDC imewashwa, zima kuingia kwa nenosiri ili watumiaji waweze tu kuthibitisha kupitia OIDC Kuingia Mara Moja. Lakabu tupu `OIDC_DISABLE_PASSWORD_LOGIN` pia inakubaliwa; Bendera ya Kipengele cha Dashibodi ya ufunguo sawa inachukua nafasi ya kwanza. (#10889) |
| `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | Lakabu tupu la `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` (#10889). |
| `OMNIROUTE_DISABLE_MFA` | `false` | `src/server/auth/dashboardMfa.ts` | Urejeshaji wa kifaa kilichopotea kwa dashibodi ya kuchagua kuingia TOTP kuingia kwa vipengele viwili. Wakati `true`, kipengele cha pili kinarukwa tu kwa kuingia kutoka kwa seva pangishi yenyewe ( loopback peer na loopback `Host`); kuingia kwa mbali na `POST /api/cli/connect` kutoka asili nyingine bado kunahitaji msimbo. Ingia ndani ya eneo lako, zima vipengele viwili chini ya Mipangilio → Usalama (msimbo unaweza kuachwa wazi wakati hii imewekwa, kwa hivyo kipengele ambacho hakithibitishi tena kinaweza kuondolewa; nenosiri bado linahitajika), kisha uiondoe. TOTP inashughulikia kuingia kwa nenosiri na kuingia OIDC/SSO `omniroute connect` — pekee kunategemea kipengele cha pili cha mtoa huduma ya utambulisho. Angalia [AUTHZ_GUIDE](../architecture/AUTHZ_GUIDE.md#optional-totp-two-factor-login-16619). |
### Ugumu Orodha
```bash
# Production security minimum:
AUTH_COOKIE_SECURE=true # Requires HTTPS
REQUIRE_API_KEY=true # Authenticate all proxy calls
ALLOW_API_KEY_REVEAL=false # Never expose keys in UI
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # 5 MB limit
```
---
## 5. Usafishaji wa Pembejeo & Ulinzi PII
OmniRoute hutoa ulinzi wa safu mbili: uchanganuzi wa sindano ya upande wa ombi na uondoaji wa PII wa upande wa majibu.
> **⚠️ Mapungufu:** Njia hizi za ulinzi ni ugunduzi _best-effort heuristic_, si ngome kamili ya kudunga kwa haraka au mfumo wa PII DLP. Zinaweza kutoa maoni chanya ya uwongo (vidokezo vya benign persona/RPG vilivyoalamishwa) na hasi za uwongo (leetspeak, nafasi, mifumo isiyo ya Kiingereza). Hazitoshi peke yake kwa kufuata. Rejesha hali na ujaribu dhidi ya trafiki yako kabla ya kuzitegemea.
### Upande wa Ombi: Kilinzi cha Sindano cha Haraka
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| --------------------------------- | -------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `INPUT_SANITIZER_ENABLED` | `true` | `src/middleware/promptInjectionGuard.ts` | Washa utambazaji wa ujumbe unaoingia kwa ruwaza za haraka za sindano. |
| `INPUT_SANITIZER_MODE` | `warn` | `src/middleware/promptInjectionGuard.ts` | Sera ya sindano: logi ya `warn` = pekee, `block` = kataa ombi kwa 400. Legacy `redact` haina** sivyo** maandishi ya sindano ya strip; tumia `PII_REDACTION_ENABLED` kwa ombi PII kuandika upya. |
| `INJECTION_GUARD_MODE` | _(haijawekwa)_ | `src/middleware/promptInjectionGuard.ts` | Lakabu ya urithi ya `INPUT_SANITIZER_MODE` — tabia sawa. |
| `INPUT_SANITIZER_BLOCK_THRESHOLD` | `high` | `src/shared/utils/injectionSeverity.ts` | Kiwango cha chini cha ukali ambacho `MODE=block` inakataa: `high` (chaguo-msingi), `medium`, au `low`. Miundo ya wastani huzingatiwa tu isipokuwa imeshushwa. |
| `INJECTION_GUARD_BLOCK_THRESHOLD` | _(haijawekwa)_ | `src/shared/utils/injectionSeverity.ts` | Lakabu ya urithi ya `INPUT_SANITIZER_BLOCK_THRESHOLD` — tabia sawa. |
| `PII_REDACTION_ENABLED` | `false` | `src/lib/guardrails/piiMasker.ts` | Wakati `true`, rekebisha PII katika maombi yanayoingia (isiyojitegemea kwa njia ya sindano). |
| `CREDENTIAL_REDACTION_ENABLED` | `false` | `src/lib/guardrails/credentialMasker.ts` | Rekebisha mifumo inayojulikana ya ufunguo wa API / ishara-siri kutoka kwa upakiaji wa request/response. Jijumuishe; vioo `PII_REDACTION_ENABLED`. |
### Upande wa Majibu: PII Sanitizer
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| -------------------------------- | ------------ | ------------------------- | ------------------------------------------------------------------------ |
| `PII_RESPONSE_SANITIZATION` | `false` | `src/lib/piiSanitizer.ts` | Changanua majibu LLM kwa PII iliyovuja kabla ya kurudi kwa mteja. |
| `PII_RESPONSE_SANITIZATION_MODE` | `redact` | `src/lib/piiSanitizer.ts` | `redact` = mask PII, `warn` = log pekee, `block` = dondosha majibu yote. |
### VS Msimbo wa Kisafishaji Muktadha wa Njia-Iliyowekwa alama
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------------------- | ------------ | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_VSCODE_SANITIZE_CONTEXT` | `1` | `src/app/api/v1/vscode/contextSanitizer.ts` | Huondoa muktadha wa kihariri amilifu (`editorContext`, `activeEditor`, `currentFile`, `selection`, `openTabs`...) kutoka kwa maombi ya `/v1/vscode/[token]/*` na kurekebisha maudhui ya faili nyeti zilizoambatishwa kwa njia dhahiri. Salama-kwa-msingi; weka `0` kuzima. |
### Matukio
| Mazingira | Usanidi |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Kuzingatia biashara** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=block`, `PII_REDACTION_ENABLED=true`, `PII_RESPONSE_SANITIZATION=true` (vizuizi vya sindano + request/response PII urekebishaji; aina ni huru) |
| **Ufuatiliaji pekee** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — magogo lakini haizuii kamwe |
| **Matumizi ya kibinafsi** | Acha zote — sifuri juu ya juu zilizozimwa |
---
## 6. Zana na Sera za Uelekezaji
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | Inadhibiti ufikiaji wa LLM tool/function-calling. `allowlist` = zana zilizoorodheshwa pekee, `denylist` = zote isipokuwa zilizoorodheshwa, `disabled` = hakuna vikwazo. |
| `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | Njia ya kubadilisha sheria za upakiaji JSON faili (per-model/protocol tweaks za mkondo wa juu). |
| `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | Pakia upya muda (ms) wa kupakia upya faili ya sheria za upakiaji moto. Kiwango cha chini cha `1000`. |
| `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | Jijumuishe: pitia `claude-*` mfano IDs kutoka kwa wateja wa Msimbo wa Claude kupitia akaunti ya Claude Code OAuth badala ya kuhitaji kiambishi awali cha mtoa huduma. Viambishi awali vya mtoa huduma dhahiri bado vinashinda. Pia inaweza kusanidiwa kupitia dashibodi ya kugeuza kwenye ukurasa wa mtoa huduma Claude. |
| `OMNIROUTE_REDACT_THINKING` | `true` | `open-sse/executors/base/redactThinkingBeta.ts` | Weka `false` ili kukomesha OmniRoute kuongeza beta `redact-thinking-2026-02-12` Anthropic yenyewe (vizuizi tupu vya kufikiria kwa sahihi pekee). Maombi na `thinking.display: "summarized"` ruka bila kujali; beta ya kurekebisha iliyojadiliwa na mteja au `requestDefaults.redactThinking` inayooana na CC huihifadhi. maombi ya Claude OAuth huweka beta (ni sehemu ya alama ya vidole ya Claude Code OAuth ) isipokuwa alama ya kipengele cha `CLAUDE_OAUTH_SUMMARIZED_THINKING_UNREDACTED` ya kuzima chaguo-msingi imewashwa. |
| `BARE_MODEL_DEFAULT_OVERRIDE_LEGACY` | `false` | `open-sse/services/model.ts` | Tabia ya urithi `resolveBareModelToConnectionDefault` (#4825): badilisha jina lolote la modeli tupu na muunganisho uliochaguliwa `defaultModel`. Imezimwa kwa chaguo-msingi, `auto` pekee au modeli tupu inabadilishwa; huweka onyo moja kwa kila jozi wakati imewashwa. |
| `COMBO_CONCURRENCY_PER_MODEL` | `3` | `open-sse/services/comboConfig.ts` | Kofia ya upatanisho ya kila mfano kwa michanganyiko ya robin ya pande zote (#9100). Semaphore ya mseto wa robin-raundi ilifungwa kwa maombi 3 kwa wakati mmoja kwa kila mtindo bila kubatilisha, na kuratibu trafiki ya sarafu ya juu nyuma ya kifuniko hicho. Imethibitishwa kuwa `>= 1`, imebanwa hadi `<= 32`. |
| `OMNIROUTE_AGENTIC_STALL_FAILOVER` | `false` | `open-sse/services/combo/agenticStallFailover.ts` | Jijumuishe: weka `1` (au `true`) ili mshiriki mseto anayejibu zamu ya tokeo la zana kwa simu za zana za `finish: stop` + narration + sifuri hushindwa kufikia lengo linalofuata (mikakati ya kipaumbele-kitanzi, mzunguko-robin na vipindi vilivyobandikwa). Iwapo hakuna lengo linalofanya vyema, jibu lililokwama hurejeshwa badala ya hitilafu, na si kivunja mtoa huduma au kifungio cha mfano hakitozwi. Zamu za mtiririko huzuiliwa kutoka kwa mteja hadi uamuzi utatuliwe. Maombi kwa kutumia umbo la Majibu API `input` hayajaainishwa. OFF chaguomsingi . |
| `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | Chaguo hatari la kuingia ambalo linaruka muktadha-dirisha wa ndani wa OmniRoute/ ukaguzi wa ishara-max-ingilizi kwa maombi ya moja kwa moja ya muundo mmoja. Watoa huduma wa mikondo ya juu bado wanatekeleza mipaka yao halisi; ukandamizaji wa papo hapo na kikomo cha tokeni cha modeli hiyo husalia kuwa amilifu. Utangulizi unaofaa ni Bendera za Kipengele DB hubatilisha > mazingira tofauti ya > chaguomsingi; hakuna kuanzisha upya inahitajika. |
| `OMNIROUTE_SELF_HOSTED_PROVIDERS` | _(haijawekwa)_ | `open-sse/services/selfHostedEntry.ts` | Hati ya ndani YAML `providers:` (RIC-738, D4). Inapowekwa (pamoja na au bila kizuizi cha `strategy:` ), `/v1/chat/completions` huelekezwa kwenye ingizo linalooana na OpenAI linalojiendesha lenyewe badala ya bomba la wingu. Haijawekwa (chaguo-msingi): njia hupitia moja kwa moja hadi kwenye bomba la wingu lililopo. Angalia `docs/routing/SELF_HOSTED_OPENAI_ENTRY.md`. |
| `OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE` | _(haijawekwa)_ | `open-sse/services/selfHostedEntry.ts` | Njia ya faili YAML iliyoshikilia hati `providers:` sawa na `OMNIROUTE_SELF_HOSTED_PROVIDERS`, kwa utumaji ambao unapendelea faili zaidi ya env var ya ndani. Moja huwasha ingizo la mwenyeji mwenyewe. |
| `OMNIROUTE_SELF_HOSTED_API_KEY` | _(ondoa — njia wazi)_ | `open-sse/services/selfHostedEntry.ts` | Kitufe cha API hiari kilichoshirikiwa kwa ingizo lililounganishwa la mwenyeji binafsi (scaffold ya D5, iliyohifadhiwa kwa mfumo wa mgawo wa kila ufunguo). Inapowekwa, maombi lazima yajumuishe `Authorization: Bearer `. Haijawekwa: njia imefunguliwa, inayolingana na muundo uliopo wa mtoa huduma wa ndani anayejipangisha mwenyewe ( uwekaji wa loopback/trusted-network ). |
| `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(haijawekwa)_ | `open-sse/services/routingStrategies.ts` | Hati ya ndani YAML `strategy:` ya injini ya uelekezaji inayoamua (M2/RIC-740, D3) — blacklist/whitelist, kivunja baridi, kipaumbele cha gharama, kufahamu muda, msururu wa kurudi nyuma. Hubatilisha kizuizi cha ndani `strategy:` kilichowekwa ndani ya `OMNIROUTE_SELF_HOSTED_PROVIDERS`, kwa ufunguo. Angalia `docs/routing/DETERMINISTIC_ROUTING.md`. |
| `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(haijawekwa)_ | `open-sse/services/routingStrategies.ts` | Njia ya faili YAML iliyoshikilia hati `strategy:` sawa na `OMNIROUTE_SELF_HOSTED_STRATEGY`, kwa utumaji ambao unapendelea faili zaidi ya env var ya ndani. |
| `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(haijawekwa)_ | `open-sse/services/conversationTracker.ts` | Weka `1` ili kuacha kukusanya historia ya mazungumzo. `resolveConversationId()` hurejesha matokeo ambayo hayajafuatiliwa kabla ya kusoma SQLite au kuchanganua historia ya ujumbe, na kipindi cha IDs kinachotolewa na mteja kinashughulikiwa pia. Ushughulikiaji wa kipindi cha uelekezaji haujabadilika na rekodi zilizopo hazijafutwa. Kwa utumaji ambao hautumii mwonekano wa mazungumzo ya dashibodi na ungependa jedwali la kugeuza likome kukua. |
| `OMNIROUTE_NADIR_API_KEY` | _(haijawekwa)_ | `open-sse/services/autoCombo/nadirStrategy.ts` | API ufunguo wa mkakati wa kuchagua kuingia `nadir` wa kipanga njia kiotomatiki, kinachotumika wakati `config.nadir.apiKey` ya mseto yenyewe haijawekwa. Hiari: simu zisizo na ufunguo hutua kwenye kiwango cha Nadir kisichojulikana, ambacho kina kikomo cha bei kwa kila IP na kwa hivyo hakitumiki nyuma ya lango la pamoja. Nyeti; pendelea uga wa kila mseto wakati michanganyiko inapotumia akaunti tofauti. |
| `OMNIROUTE_NADIR_BASE_URL` | `https://api.getnadir.com` | `open-sse/services/autoCombo/nadirStrategy.ts` | Asili ya msingi ya uamuzi wa Nadir API, inayotumika wakati `config.nadir.baseUrl` ya kuchana yenyewe haijawekwa. Inahitajika tu kwa Nadir anayejipangisha mwenyewe, ambayo huweka vichwa vya haraka ndani ya mtandao wako mwenyewe. `/v1` iliyofuata inavumiliwa na kuvuliwa. |
| `OMNIROUTE_API_KEY_WEEKLY_WINDOW` | `provider` | `src/lib/usage/apiKeyUsageLimits.ts` | Dirisha la kila wiki la vikomo vya matumizi vya USD wa API-kila-API (utekelezaji wa ombi, `GET /api/keys/{id}/usage-limits`, `@@om-usage`). `provider`: wiki inaisha kwa uwekaji upya wa mapema zaidi wa kila wiki kati ya miunganisho ya juu ya mkondo ambayo ufunguo unaweza kufikia, au ni kusonga kwa siku 7 wakati hakuna inayojulikana. `calendar`: wiki ya ndani kuanzia Jumatatu 00:00 hadi Jumatatu ijayo 00:00, sawa kwa kila funguo. `calendar` inapendekezwa wakati kundi moja la akaunti za juu linashirikiwa na funguo nyingi zilizowekwa kwenye bajeti. Thamani batili zinarudi kwa `provider`. |
| `OMNIROUTE_API_KEY_WEEKLY_WINDOW_TIMEZONE` | _(chakata saa za eneo)_ | `src/lib/usage/apiKeyUsageLimits.ts` | IANA saa za eneo (kwa mfano `Asia/Shanghai`) inayofafanua Jumatatu 00:00 kwa dirisha la wiki `calendar`. Haijawekwa au batili: saa za eneo la mchakato wa OmniRoute ( `TZ` ya seva pangishi au kontena, ambayo mara nyingi haijawekwa, yaani Saa ya Ulimwenguni Iliyoratibiwa, katika picha za kontena). Imepuuzwa katika hali ya `provider`. |
| `OMNIROUTE_MAX_TOOLS_LIMIT` | `128` | `open-sse/config/constants.ts` | Idadi chaguomsingi ya upeo wa juu wa zana zinazoruhusiwa katika ombi (OpenAI chaguomsingi). Nambari kamili chanya pekee; maadili yasiyowekwa au batili weka `128`. Mtoa huduma aliye na kikomo cha known/proactive (`grok-cli` 200, `nvidia` 1536) bado anatumia — yake mwenyewe, hii inasonga tu dari chaguo-msingi. Malengo ya umbizo la Claude hayana kikomo chaguo-msingi ( API ya Messages haina); kikomo cha kujifunza bado kinatumika. |
| `OMNIROUTE_TOOL_OUTPUT_IMAGE_MAX_COUNT` | `16` | `open-sse/translator/request/openai-responses.ts` | Majibu kwa tafsiri ya Chat: ni picha ngapi za pato la zana (`function_call_output`, `custom_tool_call_output`, role `tool`) hutumwa tena kama sehemu za picha za mtumiaji kwa kila ombi. Vipya zaidi huwekwa na kila moja kuu zaidi huwa kishika nafasi cha maandishi na `tool_call_id` yake . Nambari kamili chanya pekee; maadili ambayo hayajawekwa au batili weka `16`. |
| `OMNIROUTE_TOOL_OUTPUT_IMAGE_MAX_BYTES` | `20971520` (20 MB) | `open-sse/translator/request/openai-responses.ts` | Jumla ya ukubwa wa picha ya pato la zana URLs imetumwa tena kwa kila ombi katika tafsiri sawa. Picha zilizopita za bajeti huondolewa kongwe kwanza, kwa onyo moja kwa kila ombi. Nambari kamili chanya pekee; maadili yasiyowekwa au batili weka `20971520`. |
| `OMNIROUTE_RESPONSES_STRICT_TOOL_HISTORY` | `false` | `open-sse/translator/helpers/responsesToolHistory.ts` | Jinsi historia ya zana ya Majibu isiyolingana inavyoshughulikiwa: pato bila simu, simu isiyo na sauti, inayokosekana, ndefu au isiyo sahihi `call_id`, au hoja za kihistoria zenye hitilafu. Imezimwa, OmniRoute hurekebisha historia na kuituma (matokeo ya yatima yameshuka, simu zisizojibiwa hupata pato tupu, vitambulisho vinatengenezwa au kubanwa, hoja zenye hitilafu huwa `{}`). Imewashwa, ombi hupata `400` kabla ya kutumwa; historia halali inasambazwa na vitambulisho vyake vya kupiga simu na hoja JSON kama zimetumwa. Inakubali `true` au `1`; thamani nyingine yoyote huweka chaguo-msingi. |
| `OMNIROUTE_PROMPT_EMULATE_TOOLS` | _(imewashwa)_ | `open-sse/executors/syntxChat.ts` | SYNTX.ai simu ya zana iliyoigwa kwa haraka: haijawekwa au `1`/`true`/`on`/`yes` inaingiza katalogi ya zana za ndani kwenye dodoso; thamani nyingine yoyote (km `0`) inaruka sindano hiyo. |
---
## 7. URLs & Usawazishaji wa Wingu
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BASE_URL` | `http://localhost:20128` | `src/lib/cloudSync.ts` | URL ya upande wa seva kwa kazi za kusawazisha za ndani kupiga `/api/sync/cloud`. Weka hii kama loopback/container URL hata wakati programu imetolewa kwa umma. ustadi wa A2A pia unaitumia ( tazama `OMNIROUTE_BASE_URL`) na ushindwe badala ya kutuma kitufe cha API kwenye uwanda wa umma-http URL. |
| `CLOUD_URL` | _(tupu)_ | `src/lib/cloudSync.ts` | Mwisho wa relay ya wingu URL (kipengele cha kwanza). |
| `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | HTTP umeisha kwa maombi ya usawazishaji wa wingu. |
| `OMNIROUTE_BUILD_PROFILE` | `full` | Usanidi wa uundaji wa Webpack | Wasifu wa muda wa kuunda (umewekwa kuwa `minimal` ili kutenga moduli za upendeleo kutoka kwa kifungu). |
| `OMNIROUTE_STANDALONE_DIR` | _.jenga/ pato la pekee_ | `scripts/build/colocate-standalone.mjs` | Ubatilishaji wa muda wa saraka ya towe inayotumiwa na hatua ya kuweka upya baada ya ujenzi. Sio mpangilio wa wakati wa kukimbia. |
| `OMNIROUTE_DIST_DIR` | `dist/` (mzizi wa repo) | `scripts/build/prepublish.ts` | Ubatilishaji wa muda wa saraka hatua ya uchapishaji (`prepublish.ts`) huandika kifurushi cha CLI ndani, badala ya `dist/` chini ya mzizi wa repo. Saraka inafutwa kabla ya ujenzi. Sio mpangilio wa wakati wa kukimbia. |
| `OMNIROUTE_CLOUD_SYNC_SECRET` | _(tupu)_ | `src/lib/cloudSync.ts` | Siri iliyoshirikiwa iliyotumiwa kuthibitisha sahihi ya HMAC-SHA256 ya majibu ya Usawazishaji wa Wingu. |
| `OMNIROUTE_CLOUD_SYNC_SECRETS` | `false` | `src/lib/cloudSync.ts` | Weka `true` ili kuruhusu mwisho wa Usawazishaji wa Wingu kubatilisha kitambulisho cha ndani. Chaguomsingi ni `false`. |
| `OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE` | `false` | `src/lib/cloudSync.ts` | Weka kuwa `true` ili kukataa jibu lisilo na saini la Usawazishaji wa Wingu wakati hakuna siri ya ndani iliyosanidiwa (#13679). Sahihi iliyopo huthibitishwa — kila wakati na hukataliwa wakati `OMNIROUTE_CLOUD_SYNC_SECRET` haijawekwa — bila kujali bendera hii. Chaguo-msingi hugeuka ili kutekelezwa katika v3.9. |
| `OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP` | `false` | `src/app/api/providers/zed/import/route.ts` | Weka `true` ili kurudi kwenye v3.8.5 tabia ya hatua moja ya "kuagiza kila kitu" bila uthibitisho wa mtumiaji. |
| `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | OAuth, Dashibodi, kusawazisha | URL inayoangalia hadharani ya OAuth redirect_uri, viungo vya Dashibodi, na URLs iliyotolewa kwa umma. Weka hii kwa URL thabiti ya umma wakati simu za nyuma OAuth au viungo vya kivinjari vilivyotengenezwa lazima vitumie seva pangishi ya reverse-proksi ya kisheria. |
| `NEXT_PUBLIC_CLOUD_URL` | _(tupu)_ | Upande wa mteja | Kioo cha upande wa mteja cha `CLOUD_URL`. |
| `NEXT_PUBLIC_APP_URL` | _(haijawekwa)_ | `src/shared/services/cloudSyncScheduler.ts` | Marudio ya urithi kwa `NEXT_PUBLIC_BASE_URL`. |
| `NEXT_PUBLIC_PORT` | _( — isiyowekwa inarudi kwa `PORT`)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | Mlango wa kurudi nyuma wa upande wa mteja wa kuonyesha URLs wakati hakuna asili inayojulikana (SSR/tests); soma kabla ya `PORT`. |
| `OMNIROUTE_PUBLIC_BASE_URL` | _(haijawekwa)_ | Kitatuzi cha asili ya umma, picha URLs | Asili ya OmniRoute yenye kipaumbele cha juu zaidi inayoangalia kivinjari inayotumika kwa uzalishaji wa URL wa umma na uthibitishaji wa asili ya kivinjari usio wa dashibodi. Weka hii wakati OpenWebUI au upeanaji mwingine unafika OmniRoute kwa URL ya ndani lakini kivinjari cha mtumiaji lazima chukue midia kutoka LAN, handaki au asili ya umma. Fanya** sivyo** ni pamoja na `/v1`. |
| `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(haijawekwa)_ | `open-sse/config/providerPluginManifestUrl.ts` | Faili ya wazi ya programu-jalizi ya mtoa huduma URL iliyotangazwa kwa wateja wa kando. Isipowekwa, OmniRoute hupata `/api/v1/provider-plugin-manifest` kutoka asili ya ombi au HOST/PORT. |
| `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | Itifaki inayotumika wakati wa kupata faili ya maelezo ya programu-jalizi URL kutoka HOST/PORT bila asili ya ombi. Weka `https` nyuma ya seva mbadala ya umma inayosimamisha TLS wakati hakuna `OMNIROUTE_PROVIDER_MANIFEST_URL` dhahiri iliyowekwa. |
| `OMNIROUTE_TRUST_PROXY` | _(haijawekwa)_ | `src/server/origin/publicOrigin.ts` | Hali ya hiari ya uaminifu kwa vichwa vya asili vya umma vilivyotumwa. = ambayo haijawekwa usiamini `Forwarded` / `X-Forwarded-*` kwa maamuzi ya usalama. `true` / `loopback` amana husambazwa host/proto pekee kutoka kwa seva mbadala ya kitanzi iliyopigwa muhuri. `private` / `lan` pia inaamini seva mbadala za LAN, huruhusu daraja la `API_PORT` kuweka `X-Forwarded-For` ya rika kama hilo, na huruhusu njia za LOCAL_ONLY kukubali mteja wa mtandao wa kibinafsi ambaye proksi kama hiyo inaripoti (kamwe sio ombi la Cloudflare-handaki, mlolongo wa loopback-pekee, au lango la kubadilisha-rejea pekee la CLI). Pendelea `NEXT_PUBLIC_BASE_URL` wazi katika uzalishaji. |
| `KIE_CALLBACK_URL` | _(haijawekwa)_ | `open-sse/utils/kieTask.ts` | Kupiga simu kwa umma URL kwa kazi zisizo za kawaida za kie.ai. Ubatilishaji wa kipaumbele cha juu kabla ya `OMNIROUTE_KIE_CALLBACK_URL` na `OMNIROUTE_PUBLIC_URL`. |
| `OMNIROUTE_KIE_CALLBACK_URL` | _(haijawekwa)_ | `open-sse/utils/kieTask.ts` | Tahajia mbadala ya `KIE_CALLBACK_URL`. Hurudi nyuma wakati kigezo msingi hakijawekwa. |
| `OMNIROUTE_PUBLIC_URL` | _(haijawekwa)_ | `open-sse/utils/kieTask.ts` | Asili ya umma ilitumika kutunga async callback URLs. Urejesho wa kipaumbele cha chini zaidi kwa simu za nyuma za kie.ai; pia hutumika kama URL ya umma kwa upeanaji mwingine. |
| `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | CrofAI sehemu ya mwisho ya kuangalia kwa upendeleo inayotumiwa na ukurasa wa Matumizi. Batilisha kwa relay / marekebisho ya majaribio. |
| `OMNIROUTE_CLINEPASS_USAGE_URL` | `https://api.cline.bot/api/v1/users/me/plan/usage-limits` | `open-sse/services/usage/clinepass.ts` | ClinePass sehemu ya mwisho ya mgao wa saa 5 / kila wiki / kila mwezi inayotumiwa na ukurasa wa Matumizi. Batilisha kwa relay / marekebisho ya majaribio. |
| `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | Sehemu rasmi ya mwisho ya matumizi ya ufunguo wa API- OpenCode Go inayotumiwa na ukurasa wa Matumizi. Batilisha kwa relay / marekebisho ya majaribio. |
| `OPENCODE_SYNTHESIZE_CLI_HEADERS` | `true` | `open-sse/executors/opencode.ts` | Sawazisha vichwa vya utambulisho vya OpenCode CLI (Mtumiaji-Ajenti, x-opencode-client/project, request/session UUIDs) kwenye maombi ya opencode-go/zen ya mkondo wa juu ambayo mteja hakutuma, kwa hivyo Cloudflare kwenye VPS egress inakubali (#6210/#5997). Imewashwa kwa chaguo-msingi tangu #10571; chagua kutoka kwa `false`/`0`/`no`/`off`. |
| `OPENCODE_USER_AGENT` | `opencode/1.18.31` | `open-sse/utils/opencodeHeaders.ts` | Wakala Chaguomsingi wa Mtumiaji hutumika wakati `OPENCODE_SYNTHESIZE_CLI_HEADERS` imewashwa na hakuna ubatilishaji wa `_USER_AGENT` kwa kila mtoaji umewekwa. Inatumika kwa watekelezaji opencode pekee. Kwa ombi lisilo na ufunguo lango la juu, thamani iliyosanidiwa ambayo haina `opencode/= 1.17>` inabadilishwa na chaguo-msingi hii badala ya kukataliwa. |
| `OMNIROUTE_FORWARD_ATTRIBUTION` | `1` (imewashwa) | `open-sse/utils/opencodeHeaders.ts` | Sambaza vichwa vya maelezo ya programu ya mteja (`x-session-id`, `x-title`, `http-referer`) kwa watoa huduma wa juu, kwa hivyo ombi linaloanzia ndani ya uunganisho ulioorodheshwa huhifadhi utambulisho wake kupitia kipanga njia (OpenRouter publisher gates key on these). `0`/`false`/`no`/`off` huhifadhi utambulisho registry/operator na kuangusha thamani zinazotolewa na mteja. Vijajuu maalum vilivyosanidiwa na opereta kila mara hushinda thamani za mteja. |
| `OPENCODE_CLIENT` | `desktop` | `open-sse/executors/opencode.ts` | Thamani ya kichwa cha `x-opencode-client` kilichosanisishwa wakati `OPENCODE_SYNTHESIZE_CLI_HEADERS` imewashwa. |
| `OPENCODE_PROJECT` | `global` | `open-sse/executors/opencode.ts` | Thamani ya kichwa cha `x-opencode-project` kilichosanisishwa wakati `OPENCODE_SYNTHESIZE_CLI_HEADERS` imewashwa. |
| `OMNIROUTE_EGRESS_IP_LOCK_PROVIDERS` | _(haijawekwa)_ | `open-sse/config/providerErrorRules.ts` | Seti madhubuti ya watoa huduma ambao hitilafu zao za juu zinatokana na egress IP (mbuga 429 kila muunganisho wa ndugu unaoshiriki IP). Haijawekwa hutumia kiwango-msingi chaguo-msingi `opencode,opencode-go,opencode-cli`; `none`/`off`/`false`/`0` inalemaza mteremko kabisa; orodha iliyotenganishwa kwa koma inachukua nafasi ya seti. Mipango inayolipishwa imewekewa akaunti kwenye mkondo wa juu na inaweza kuizima kwa usalama (#9611). |
| `OMNIROUTE_EGRESS_QUOTA_ROTATION_PROVIDERS` | _(haijawekwa)_ | `open-sse/config/providerErrorRules.ts` | Wigo wa mzunguko wa kukataa wa kukataa. Haijawekwa huweka mshiriki kando kwenye 429 pekee kwa familia iliyo na ndoo ya IP hapo juu; `all` inapanua maandishi hayo kwa kila mtoa huduma, kwa hivyo kikomo cha kiwango kinachopokelewa kupitia kwa mwanachama hufanya chaguo linalofuata litoke mahali pengine. Thamani yoyote isipokuwa `all` imepuuzwa. Inahitaji `PROXY_SKIP_RECENTLY_FAILED` (imewashwa kwa chaguo-msingi). Duka lina ufunguo wa anwani ya egress, si (mtoa huduma, anwani), hivyo kupanua bustani 429 ambazo wanachama kwa kila mtoa huduma hadi kipindi kitakapopita (dakika 5, mara mbili hadi 15). Soma kwa kila matokeo ya jibu, kwa hivyo mabadiliko yatatumika bila kuanza tena. |
| `OPENCODE_FREE_TIER_REQUEST_CONTRACT` | _(haijawekwa)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Weka kuwa `off` ili kuacha kurekebisha muundo wa maombi OpenCode yasiyo na ufunguo (kutiririsha bendera na orodha ya zana). Vichwa bado vinatumika. Soma kwa kila ombi, kwa hivyo mabadiliko yatatekelezwa mara moja. |
| `OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS` | _(haijawekwa)_ | `open-sse/executors/opencodeFreeTierContract.ts` | Majina ya zana yaliyotenganishwa na koma ya kutangaza kwa ombi la OpenCode lisilo na ufunguo ambalo halibeba chochote, wakati hakuna chochote ambacho kimezingatiwa kwa muundo huo. Tupu inarudi kwa kishika nafasi kimoja ambacho kielelezo kinaambiwa usipige simu. Angalau maingizo 32, `[A-Za-z_][A-Za-z0-9_-]{0,63}`; maingizo batili yamepuuzwa. |
| `OPENCODE_FREE_TIER_CREDENTIAL` | `public` | `open-sse/executors/opencodeFreeTierContract.ts` | Kitambulisho kimetumwa kwenye njia ya daraja la bure iliyo na lango (`https://opencode.ai/inference/v1`). Tangu 2026-10-21 njia hiyo inajibu 403 `Model access is disabled` kwa ufunguo halisi API na hutumikia halisi isiyojulikana badala yake. `key` huweka ufunguo wa API wa opereta, `none`/`off` haitumi kichwa cha kitambulisho, halisi nyingine yoyote hutumwa kama ishara ya mbebaji. Soma kwa kila ombi. |
| `OPENCODE_FREE_TIER_RELAY_URL` | haijawekwa | `src/lib/opencodeFreeRelay.ts` | URL ya msingi ya relay Bun kwa maombi ya OpenCode ya kiwango cha bure. Yanapowekwa, maombi hayo hubeba arifa ya mfumo wa OpenCode CLI na seti ya zana na hutumwa kupitia upeanaji (`scripts/ops/opencode-free-relay.ts`), kwa sababu mkondo wa juu hujibu 429 kwa wateja wasio wa Bun HTTP. Loopback URLs huanzishwa na seva wakati `bun` iko kwenye PATH; njia kwenye URL imepuuzwa. `http://` wazi inakubaliwa tu kwa wapangishi wa loopback (`localhost`, `127.0.0.0/8`, `::1`); mwenyeji mwingine yeyote lazima atumie `https://`, vinginevyo maombi yatashindwa na hitilafu ya wazi. Ukamilishaji wa Gumzo pekee. Soma kwa kila ombi. |
| `OPENCODE_FREE_RELAY_BUN` | `bun` kwenye PATH | `src/lib/opencodeFreeRelay.ts` | Bun binary kutumika kuanzisha relay. |
| `OPENCODE_FREE_RELAY_SCRIPT` | `scripts/ops/opencode-free-relay.ts` chini ya mzizi wa kifurushi | `src/lib/opencodeFreeRelay.ts` | Njia ya hati ya relay. Chaguo msingi hutatuliwa kutoka kwa mzizi wa kifurushi kilichosanikishwa, kisha saraka ya kufanya kazi. |
| `OPENCODE_FREE_RELAY_HOST` | `127.0.0.1` | `scripts/ops/opencode-free-relay.ts` | Relay sikiliza mwenyeji. |
| `OPENCODE_FREE_RELAY_PORT` | `20199` | `scripts/ops/opencode-free-relay.ts` | Relay kusikiliza bandari. |
| `OPENCODE_FREE_RELAY_UPSTREAM` | `https://opencode.ai` | `scripts/ops/opencode-free-relay.ts` | Anzisha relay mbele kwa. Lazima iwe `https://` (`http://` tu kwa asili ya mtihani wa loopback); relay inakataa kuanza vinginevyo. |
| `OPENCODE_FREE_RELAY_TOKEN` | haijawekwa | `scripts/ops/opencode-free-relay.ts`, `open-sse/executors/opencodeRelay.ts` | Siri iliyoshirikiwa. OmniRoute huituma kwa `x-opencode-relay-auth`; relay inajibu 401 bila hiyo. Inahitajika: relay yenye `OPENCODE_FREE_RELAY_HOST` isiyo ya kitanzi inakataa kuanza bila hiyo. |
| `OPENCODE_FREE_RELAY_PROXY_ALLOWLIST` | haijawekwa | `scripts/ops/opencode-free-relay.ts` | `host` iliyotenganishwa kwa koma au seva mbadala za `host:port` egress relay isiyo ya kitanzi inakubali kutoka kwa wapigaji (`x-opencode-relay-proxy`); majibu mengine yoyote ya wakala 403. Imepuuzwa kwenye kizuizi cha nyuma. |
| `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | Ollama Mipangilio ya Wingu URL inayotumika kukwarua kiasi. Batilisha kwa relay / marekebisho ya majaribio. |
| `OMNIROUTE_OLLAMA_CLOUD_BALANCE_URL` | `https://ollama.com/api/balance` | `open-sse/services/ollamaCloudBalance.ts` | Ollama Wingu lilionyesha mwisho wa usawa wa mkondo wa juu (`GET https://ollama.com/api/balance`, `Authorization: Bearer `). Soma mara moja kwenye upakiaji wa moduli. Inatumika kwanza kwa mgao wa Wingu wa Ollama wakati muunganisho una kitufe cha API ; kifuta kikuki cha ukurasa wa mipangilio kinakaa kama njia mbadala. Batilisha kwa relay / marekebisho ya majaribio. |
| `OLLAMA_USAGE_COOKIE` | _(haijawekwa)_ | `open-sse/services/usage.ts` | Ollama kidakuzi `__Secure-session` cha Wingu kinatumika kwa uchakachuaji wa upendeleo wa ukurasa wa mipangilio. Nyeti; pendelea sehemu ya Dashibodi ya kila muunganisho wakati akaunti nyingi zimesanidiwa. |
| `OLLAMA_CLOUD_USAGE_COOKIE` | _(haijawekwa)_ | `open-sse/services/usage.ts` | Kidakuzi mbadala Ollama Cloud `__Secure-session` env var. Nyeti; pendelea sehemu ya Dashibodi ya kila muunganisho wakati akaunti nyingi zimesanidiwa. |
| `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(haijawekwa)_ | `open-sse/services/usage.ts` | Kidakuzi mbadala Ollama Cloud `__Secure-session` env var kilitumika kabla ya lakabu fupi zaidi. Nyeti; pendelea sehemu ya Dashibodi ya kila muunganisho wakati akaunti nyingi zimesanidiwa. |
| `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | CodeWhisperer (AWS Kiro) kikomo cha matumizi. Batilisha kwa relay / marekebisho ya majaribio. |
> [!IMPORTANT]
> Wakati wa kupeleka nyuma ya seva mbadala ya nyuma (nginx, Caddy), weka `NEXT_PUBLIC_BASE_URL` kwa URL yako thabiti ya umma (km, `https://omniroute.example.com`) wakati OAuth au viungo vya umma vilivyoundwa lazima vitumie jina la mpangishaji. Bila hili, upigaji simu OAuth unaweza kushindwa kwa sababu redirect_uri haitalingana na viungo vya umma vilivyotolewa vinaweza kuelekeza kwenye asili ya chombo cha ndani.
>
> Weka `BASE_URL` kama URL loopback/container ya ndani kwa kazi za seva hadi seva. Usitumie `Origin` ya kivinjari au jina la mpangishi wa umma kwa uchotaji wa ndani wenye sifa.
>
> Dashibodi iliyoidhinishwa huandika haihitaji msingi tuli wa umma URL: dashibodi hutuma maombi yasiyo salama ya asili moja kwa tokeni CSRF inayofungamana na kipindi. OmniRoute bado inaweka kati uthibitishaji wa asili ya umma kwa viunganishi visivyo vya dashibodi: vazi za wazi URL env zinaaminika kwanza; Vijajuu vya `Forwarded` / `X-Forwarded-*` ghafi havizingatiwi isipokuwa `OMNIROUTE_TRUST_PROXY` imewashwa na seva mbadala ya moja kwa moja imegongwa muhuri kama inavyoaminika. Usitumie mipangilio CORS kurekebisha maombi ya dashibodi yenye asili moja; CORS ni kwa wateja wa vivinjari vya asili tofauti pekee.
---
## 8. Wakala wa Nje
Pitia mtoa huduma wa LLM juu ya mkondo kupitia proksi HTTP au SOCKS5 kwa udhibiti wa egress, uelekezaji wa kijiografia, au ufunikaji wa IP.
`OMNIROUTE_UPSTREAM_HTTP2_ENABLED` chaguomsingi kwa `true`. Iweke `false`, `0`, `no`, au `off` ili kulazimisha HTTP/1.1 kwa watumaji wa Undici katika `open-sse/utils/proxyDispatcher.ts` na `open-sse/utils/proxyFetch.ts`: egress ya moja kwa moja, HTTP(S)/SOCKS proksi, relays, na majaribio yao mapya ya soketi. Hii huhifadhi uthibitishaji wa cheti TLS, uthibitishaji wa proksi, vikomo vya muunganisho, na mipangilio ya kuweka hai. Anzisha tena OmniRoute baada ya kuibadilisha kwa sababu watumaji huwekwa akiba na mawakala wa relay huundwa wakati wa kuanza. Swichi haidhibiti alama za vidole za wreq TLS au usafirishaji mahususi wa mtoaji.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------------------- | -------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | Washa wakala wa SOCKS5 kwa simu za juu. Ondoka na `false`. |
| `OMNIROUTE_GZIP_REQUEST_BODIES` | `true` | `open-sse/executors/base/gzipRequestBody.ts` | Gzip chombo cha ombi kilichotumwa kwa `api.anthropic.com` rasmi (herufi 4096 +, miunganisho ya moja kwa moja pekee; kurukwa nyuma ya proksi, uigaji TLS au `NODE_EXTRA_CA_CERTS`). Anthropic inakubali gzip pekee. Usimbaji uliokataliwa (415, 400/403 isiyo ya Anthropic, au asili ya JSON-parse 400) hutupwa tena bila kubanwa mara moja na asili hukaa bila kubanwa kwa saa moja. Chagua kutoka kwa `0`, `false`, `off` au `no`. |
| `NEXT_PUBLIC_ENABLE_SOCKS5_PROXY` | `true` | Upande wa mteja | Uelewa wa upande wa mteja wa upatikanaji wa SOCKS5. |
| `PROXY_SKIP_RECENTLY_FAILED` | `true` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele-cha-msingi (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kubatilisha imeshinda). Viwanja vya seva mbadala na mzunguko wa kila akaunti huacha kuhudumia tena mwanachama ambaye ameshindwa (alikataa uchunguzi wa TCP, au 429 kupitia hilo) kwa muda ambao unaongezeka maradufu kwa kila marudio, hadi upeo. `false` inarejesha uteuzi wazi. |
| `SELECTOR_CONTROL_ALLOWLIST` | _(haijawekwa)_ | `src/lib/proxySubscription/selectorGuard.ts` | Ruhusu orodha ya shabaha za udhibiti wa kichaguzi-msingi zaidi ya kurudi nyuma (comma/space waliotenganishwa wapangishi au IPs, `*` hufungua LAN/private lakini kamwe metadata/link-local). Loopback juu ya http/https inaruhusiwa na chaguo-msingi. Thamani ya dashibodi DB inashinda kigeu hiki ikiwekwa na bila tupu. |
| `PROXY_QUOTA_429_BASE_MS` | `300000` | `open-sse/utils/proxyRefusalMemory.ts` | Kipindi cha msingi (ms) cha 429 kilichowekwa, mara mbili kwa kila marudio. Soma mara moja wakati wa kuanza. Imefungwa kwa `1000..3600000`; nje ya masafa au isiyosomeka hurudi nyuma kwa chaguomsingi kwa onyo. |
| `PROXY_QUOTA_429_MAX_MS` | `900000` | `open-sse/utils/proxyRefusalMemory.ts` | Kipeo (ms) cha 429 kilichowekwa kando. Soma mara moja wakati wa kuanza. Imefungwa kwa `1000..3600000`; nje ya masafa au isiyosomeka hurudi nyuma kwa chaguomsingi kwa onyo. Wakati kofia iko chini ya msingi, inarudi kwa chaguo-msingi. Kupunguza kofia pia kufupisha kusahau kwa mfululizo: maingizo husafisha `2 x max` baada ya kuisha. |
| `PROXY_POOL_SHARED_EGRESS_ORDER` | `false` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele cha kujijumuisha (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kushinda). Kwa watoa huduma ambao mgawo wao umebanwa na anwani ya egress, weka orodha ya mshiriki wa kikundi anayeshiriki anwani ya mwanachama iliyokataliwa hivi majuzi chini ya washiriki walio na afya njema. Agizo pekee, kamwe halijatengwa. Inahitaji `PROXY_SKIP_RECENTLY_FAILED`, ambayo hutoa ishara ya kukataa inayosoma. |
| `PROXY_WEBHOOK_REBOUND_MS` | `300000` | `src/lib/proxyEvents/proxyTransitionBridge.ts` | Dirisha linalorudisha nyuma (ms) linarudia arifa za `proxy.set_aside` webhook kwa kila mwanachama wa kikundi ili kukataliwa mara nyingi kutume tukio moja. Soma juu ya kila emit. Imefungwa kwa `1000..3600000`; nje ya masafa au isiyosomeka hurudi nyuma kwa chaguomsingi kimya kimya. |
| `HTTP_PROXY` | _(haijawekwa)_ | kiwango cha Node.js | HTTP proksi kwa simu za juu. |
| `HTTPS_PROXY` | _(haijawekwa)_ | kiwango cha Node.js | HTTPS proksi kwa simu za juu. |
| `ALL_PROXY` | _(haijawekwa)_ | kiwango cha Node.js | Wakala wa jumla (inasaidia `socks5://`). |
| `OMNIROUTE_PROXY_ECHO_URL` | _(haijawekwa)_ | `src/lib/proxyEchoTarget.ts` | Hubandika lengo la echo-IP linalotumiwa na probes za proksi kwa URL moja . Haijawekwa, uchunguzi hujaribu `api64.ipify.org` kisha `api4.ipify.org` ili vichuguu vya IPv4-only zisiripotiwe kufa (#9694). |
| `NO_PROXY` | _(haijawekwa)_ | kiwango cha Node.js | hostnames/IPs iliyotenganishwa kwa koma ili kukwepa proksi. |
| `OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS` | `32` | `open-sse/utils/proxyDispatcher.ts` | Upeo wa soketi zinazofanana kwa kila kisambaza proksi HTTP/SOCKS kilichohifadhiwa. Mitiririko ya muda mrefu SSE kama vile Codex `/v1/responses` inahitaji muunganisho zaidi ya mmoja wakati maombi kadhaa yanashiriki seva mbadala ya kiwango cha akaunti. Thamani zilizo juu ya `256` zimepunguzwa. |
| `SOCKS_HANDSHAKE_TIMEOUT_MS` | `10000` | `open-sse/utils/socksConnectorWithFamily.ts` | SOCKS5 handshake (unganisha) umeisha katika ms. Ipandishe wakati mpangishi mmoja wa lango la makazi anapoguswa na fedha nyingi (km maombi 100 kwa wakati mmoja) — kupeana mkono halisi kunaweza kuzidi sekunde 10 chini ya bwawa lililojaa ingawa seva mbadala inaweza kufikiwa, ambayo vinginevyo inaonekana kama `[Proxy Fast-Fail] Proxy unreachable` ya uwongo. Imefungwa kwa `120000`. |
| `PROXY_FAIL_OPEN` | `false` | `src/sse/handlers/chatHelpers.ts` | Wakati `false` (chaguo-msingi), ombi ambalo proksi yake iliyokabidhiwa inashindwa kusuluhishwa ni** imekataa (iliyoshindwa-imefungwa)** badala ya kurudi kwenye muunganisho wa moja kwa moja — huzuia uvujaji wa IP halisi. Weka `true` ili kurejesha urithi DIRECT. |
| `ENABLE_TLS_FINGERPRINT` | `false` | `open-sse/executors` | Spoof TLS fingerprint kwa kutumia wreq-js (mimics Chrome 124). Vihesabu vya kuzuia JA3/JA4. |
| `TLS_FINGERPRINT_PROVIDERS` | _(haijawekwa)_ | `open-sse/utils/proxyFetch.ts` | Orodha ya ruhusa ya watoa huduma iliyotenganishwa na koma kwa uelekezaji mpya TLS (`open-sse/utils/proxyFetch.ts`). TLS ya moja kwa moja huweka tabia yake ya urithi wakati haijawekwa; watoa huduma hawa pekee wanapitia daraja la alama za vidole Chrome-124. Groq (`api.groq.com`) haijajumuishwa hata wakati orodha ya viingilio haijawekwa, kwa sababu Chrome JA3 inaanzisha Cloudflare 1010 huku undici asili ikifikia API. |
| `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | Ruhusu muktadha wa kivinjari wa Claude Turnstile Playwright kupuuza hitilafu za cheti HTTPS. |
### Matukio
| Mazingira | Usanidi |
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **SOCKS5 kupitia handaki SSH** | `ALL_PROXY=socks5://127.0.0.1:7890`, `ENABLE_SOCKS5_PROXY=true` |
| **Wakala wa HTTP kampuni** | `HTTP_PROXY=http://proxy.corp.com:3128`, `HTTPS_PROXY=http://proxy.corp.com:3128`, `NO_PROXY=localhost,internal.corp.com` |
| **Kupambana na alama za vidole** | `ENABLE_TLS_FINGERPRINT=true` — inahitaji `wreq-js` (imejumuishwa) |
| **Egress-kudhibitiwa / hakuna upatikanaji wa moja kwa moja** | Acha `PROXY_FAIL_OPEN=false` (chaguo-msingi). Maombi hayafaulu sana wakati proksi haipatikani badala ya kuvuja kupitia moja kwa moja. |
| **Urithi / dev — kuruhusu kurudi nyuma moja kwa moja** | `PROXY_FAIL_OPEN=true`. Hurejesha tabia ya ugumu wa awali: muunganisho wa moja kwa moja unaotumika wakati azimio la seva mbadala linashindwa. |
> **Kumbuka (NVIDIA uthibitisho bypass — #3226):** NVIDIA's API-kituo cha mwisho cha uthibitishaji kinapopitishwa kwenye uchotaji wa proxy/TLS-patched wa kimataifa (undici dispatcher → 504). `src/lib/providers/validation.ts::directHttpsRequest()` hupita kwa makusudi kiraka cha proksi kwa simu hiyo moja ya uthibitishaji kwa kutumia `safeOutboundFetch({ bypassProxyPatch: true })`. Hii ni kumbukumbu, ubaguzi — inafanya** sivyo** kuathiri chat/usage egress. Njia ya kukwepa imebandikwa na `tests/unit/proxy-bypass-scope-guard-3226.test.ts`.
---
## 9. CLI Tool Integration
Hudhibiti jinsi OmniRoute hugundua na kuzindua kando za CLI ( Msimbo wa Claude, Codex, n.k.).
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| --------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CLI_MODE` | `auto` | `src/shared/services/cliRuntime.ts` | `auto` = mfumo wa utafutaji PATH; `manual` = tumia njia wazi pekee. |
| `CLI_EXTRA_PATHS` | _(haijawekwa)_ | `src/shared/services/cliRuntime.ts` | Maingizo ya ziada PATH ya ugunduzi wa mfumo wa binary CLI (uliotenganishwa na koloni). |
| `CLI_CONFIG_HOME` | _(haijawekwa)_ | `src/shared/services/cliRuntime.ts` | Batilisha saraka ya nyumbani kwa kusoma CLI configs (`~/.claude`, `~/.codex`). Lazima iwe kabisa na ndani ya mchakato nyumbani —** au** , kwenye chombo, njia iliyofungwa (ndivyo `/host-home` inavyofanya kazi). Kitu kingine chochote kinarudi kwenye dir ya nyumbani. |
| `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | Ruhusu OmniRoute kuandika faili za usanidi CLI (onyesha ishara upya, data ya kipindi). Weka kwa `false` kufanya kila uandishi wa usanidi CLI ushindwe na kosa la wazi la "kuandika kuzima". |
| `CLI_CLAUDE_BIN` | `claude` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Claude CLI binary. |
| `CLI_CODEX_BIN` | `codex` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Codex CLI binary. |
| `CLI_DROID_BIN` | `droid` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Droid CLI binary. |
| `CLI_OPENCLAW_BIN` | `openclaw` | `src/shared/services/cliRuntime.ts` | Njia maalum ya OpenClaw CLI binary. |
| `CLI_CURSOR_BIN` | `agent`, kisha `cursor` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya wakala Cursor. Bila hivyo, ugunduzi hujaribu `agent` kwanza na kurudi nyuma kwa `cursor`. |
| `CLI_CLINE_BIN` | `cline` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Cline CLI binary. |
| `CLI_5DIVE_BIN` | `5dive` | `src/shared/services/cliRuntime.ts` | Njia maalum ya 5dive CLI binary. |
| `CLI_5DIVE_STATE_DIR` | `/var/lib/5dive` | `src/shared/services/cliRuntime.ts` | Mfumo wa 5dive hali dir (wasifu wa mwandishi unaomilikiwa na mizizi); vioo 5dive ya STATE_DIR chaguo msingi. |
| `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Endelea CLI binary. |
| `CLI_QODER_BIN` | `qodercli` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Qoder CLI binary. |
| `CLI_QWEN_BIN` | `qwen` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Qwen Code CLI binary. |
| `CLI_AIDER_BIN` | `aider` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Aider CLI binary. |
| `CLI_GOOSE_BIN` | `goose` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya Goose CLI. |
| `CLI_WHYCODES_BIN` | `whycodes` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya WhyCodes CLI. |
| `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Njia maalum ya ukaguzi wa Google Gemini CLI binary — seva-upande wa detection/health pekee; `omniroute run gemini` hutatua `gemini` binary kutoka kwa mfumo PATH. |
| `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Msimbo wa Kilo CLI binary. |
| `CLI_OPENCODE_BIN` | `opencode` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya OpenCode CLI. |
| `CLI_HERMES_BIN` | `hermes` | `src/shared/services/cliRuntime.ts` | Njia maalum ya binary ya Hermes. Imeshirikiwa na maingizo ya katalogi (`hermes` na `hermes-agent`). |
| `CLI_FORGE_BIN` | `forge` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya ForgeCode CLI. |
| `CLI_JCODE_BIN` | `jcode` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jcode CLI binary. |
| `CLI_DEEPSEEK_TUI_BIN` | `deepseek-tui` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya DeepSeek TUI. |
| `CLI_CODEWHALE_BIN` | `codewhale` | `src/shared/services/cliRuntime.ts` | Njia maalum ya jozi ya CodeWhale CLI. |
| `CLI_SMELT_BIN` | `smelt` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Smelt CLI binary. |
| `CLI_PI_BIN` | `pi` | `src/shared/services/cliRuntime.ts` | Njia maalum ya binary ya Pi (pi-coding-agent). |
| `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Crush CLI binary. |
| `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | Njia maalum kwa wakala wa Oh My Pi (`omp`) binary. |
| `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Njia maalum ya Letta CLI binary. |
| `CLI_PRIME_AGENT_BIN` | `prime-agent` | `src/shared/services/cliRuntime.ts` | Njia maalum kwa Wakala Mkuu (Prime Intellect) binary. |
| `CLI_WINDSURF_BIN` | _(hakuna)_ | `src/shared/services/cliRuntime.ts` | Njia maalum ya Windsurf binary. meli Windsurf** hakuna amri chaguo-msingi** — utambuzi wa binary husalia kuzimwa hadi hii iwekwe. |
| `CLI_DEVIN_BIN` | `devin` | `open-sse/executors/devin-cli.ts` | Njia maalum ya Devin CLI binary (v3.8.0). Inatumiwa na mtekelezaji Windsurf/Devin. |
| `DEVIN_DESKTOP_VERSION` | `3.6.27` | `open-sse/executors/devin-desktop.ts` | Devin Eneo-kazi `ide_version`. Ubatilishaji lazima utumie umbizo la `x.y.z` ; thamani batili hurudi nyuma kwa chaguomsingi iliyothibitishwa. |
| `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | Zilizounganishwa Codeium/language-server `extension_version`, tofauti na Eneo-kazi `ide_version`. Ubatilishaji lazima utumie `x.y.z`; thamani batili hutumia chaguomsingi iliyounganishwa. |
| `CLI_DEVIN_AGENTIC_BIN` | `devin` | `open-sse/executors/devin-cli-agentic.ts` | Ubatilishaji wa daraja la kiajenti Devin CLI. Mtekelezaji anakubali tu ACP stdio ya juu ya mkondo. |
| `DEVIN_AGENTIC_HOME` | _(inahitajika)_ | `open-sse/executors/devin-cli-agentic.ts` | Nyumba iliyotengwa kabisa kwa mchakato mdogo Devin ; njia za daraja zinazokubalika ni `/home/bridge` na njia za `.sandbox` za eneo la kazi (kwenye Windows, `C:\...\.sandbox\...`). |
| `DEVIN_AGENTIC_ACP_TIMEOUT_MS` | `120000` | `open-sse/executors/devin-cli-agentic.ts` | Muda wa juu zaidi wa zamu moja ya Devin ACP kabla ya daraja kusimamisha mtoto na kurudisha muda ulio wazi wa kuisha. |
| `DEVIN_BRIDGE_MODEL` | `devin-cli-agentic/swe-1-7` | `docker/devin-bridge/compose.yml` | Kuu Claude Code mfano pak kwa daraja pekee. Njia ya moja kwa moja inachukua nafasi ya mfano na mfano uliorejeshwa na akaunti ya sasa Devin. |
| `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Lakabu zilizotengwa za daraja hutumika wakati Msimbo wa Claude unapoomba chaguomsingi yake ya Sonnet. |
| `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Lakabu zilizotengwa za daraja hutumika wakati Msimbo wa Claude unapoomba chaguomsingi yake ya Opus. |
| `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Lakabu lililotengwa la daraja linalotumika wakati Msimbo wa Claude unapoomba chaguomsingi lake la Haiku. |
| `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Lakabu lililotengwa la daraja linalotumika kwa vifaa vidogo vya Claude Code. |
| `DEVIN_SEAT_API_URL` | `https://server.codeium.com` | `open-sse/services/usage/devinCli.ts` | Kubatilisha kwa hiari kwa API ya usimamizi wa kiti cha Codeium inayotumiwa na mgao wa Devin CLI (`GetUserStatus`). |
| `AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Ubatilishaji wa njia kabisa ya Ongezeko (Auggie) CLI binary inayotumiwa na mtoa huduma wa karibu `auggie`. Hurudi nyuma hadi `CLI_AUGGIE_BIN`, kisha kuangalia kwa PATH. |
| `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Lakabu hubatilisha njia ya kuongeza (Auggie) CLI binary (iliyoangaliwa baada ya `AUGGIE_BIN`). |
| `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | Nambari inatumika kwa mteja wa stdio wa mtoaji wa `zcode` wa karibu. Hurejea hadi `zcode` kwenye PATH. |
| `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | JSON array (≤ 16 strings) ya hoja za ziada zilizopitishwa kwa binary `zcode` ilipozinduliwa kupitia `cliTools`. |
| `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | Saraka ya kufanya kazi ya mchakato mdogo wa seva ya programu ZCode. |
| `ZCODE_TRANSPORT` | `app-server` | `open-sse/executors/zcode.ts` | `app-server` (chaguo-msingi) au `gateway`.** Majaribio / hayatumiki:** `gateway` hutuma maombi ya HTTP ya Mpango wa Usimbaji wa AI moja kwa moja kwa kutoa tena itifaki ya mteja wa ZCode (kutia sahihi kupeana mkono na kichwa cha uthibitisho wa kazi cha mteja 0.16.9) na kinaweza kukatika ZCode inaposasishwa. Inakubali wasifu wa Mpango wa Usimbaji wa Mtu Binafsi pekee. |
| `ZCODE_PROVIDER_ID` | `account:zai-individual-coding-plan` | `open-sse/executors/zcode.ts` | Wasifu halisi wa mtoa huduma kwa uteuzi wa mfano. Isipowekwa, wasifu wa akaunti ya Mpango wa Mtu Binafsi hutumiwa, kurudi nyuma hadi `builtin:zai-coding-plan` (ingizo la usanidi ambalo lina ufunguo wa Mpango wa Usimbaji wa Mtu binafsi). Weka ID kamili kama vile `account:zai-start-plan` kubandika wasifu huo; wasifu uliobandikwa haurudi nyuma. |
| `ZCODE_SERVER_RUNTIME_ROOT` | `~/.zcode/server` | `open-sse/executors/zcode.ts` | Mizizi ya muda wa utekelezaji wa seva ya programu ya ZCode (ambapo `node` na `zcode-server.cjs` zilizounganishwa zinaishi). |
| `ZCODE_SERVER_NODE` | `/node` | `open-sse/executors/zcode.ts` | Njia inayoweza kutekelezwa inayotumika kupangisha seva ya programu ZCode. |
| `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | Hati ya ingizo la seva ya programu inayotumika kupangisha seva ZCode. |
| `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | Muda wa kuanza umekwisha (ms) kabla ya uzinduzi wa seva ya programu ZCode kuchukuliwa kuwa haukufaulu. |
| `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | Muda wa ombi la RPC umekwisha (ms) kwa simu ya ZCode ya seva ya programu. |
| `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | Muda wa juu zaidi (ms) wa zamu moja ya ZCode kabla ya msimamizi kuizima. |
| `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | Muda wa upigaji kura (ms) kwa ajili ya kukamilisha zamu ZCode. |
| `MINIMAX_CODE_GATEWAY_URL` | `https://agent.minimax.io/mavis/api/v1/llm/v1/messages` | `open-sse/executors/minimaxCodeGateway.ts` | Mwisho wa lango la MiniMax linalodhibitiwa ambalo hujibu kwa simu za zana asilia. Ni mwisho wa ndani wa programu ya Msimbo wa MiniMax, si API ya umma iliyoandikwa : inaweza kubadilika bila taarifa, na ombi kisha kushindwa na 502 inayotaja usafiri. |
| `MINIMAX_CODE_GATEWAY_TIMEOUT_MS` | `60000` | `open-sse/executors/minimax-code.ts` | Muda wa juu zaidi (ms) wa jaribio moja la lango linalodhibitiwa. Simu nzima (jaribio, kurudi nyuma, kujaribu mara moja) hukaa kama dakika mbili, kwa hivyo lango lisiloweza kufikiwa haliwezi kushikilia slot ya mfano kwa muda mrefu. |
| `MINIMAX_CODE_GATEWAY_RETRIES` | `1` | `open-sse/executors/minimaxCodeGateway.ts` | Majaribio ya simu ya lango inayodhibitiwa ambayo itashindwa kwa hitilafu ya muda mfupi (429, 5xx, muunganisho ulioacha). |
| `MINIMAX_CODE_CONTEXT_WINDOW` | `1000000` | `open-sse/executors/minimaxCodeGateway.ts` | Dirisha la muktadha lango la MiniMax linalosimamiwa linaulizwa. Katalogi ya muundo wa bidhaa ya Msimbo wa MiniMax inatangaza 512000 kama dirisha chaguo-msingi la MiniMax-M3 na MiniMax-M3.1-Flash na inatoa 1000000 kama ya pili; majibu ya lango kwenye dirisha kubwa (ombi la tokeni za pembejeo 1024056 lilijibiwa na 200 mnamo 2026-10-23). Weka hii kuwa 512000 ili kupunguza ombi — mpango hauhesabu kidogo. Kila thamani nyingine inapuuzwa, kwa hivyo typo haiwezi kuuliza dirisha ambalo mfano hauna. |
| `MINIMAX_CODE_MAX_INPUT_TOKENS` | `1000000` | `open-sse/executors/minimaxCodeGateway.ts` | Dari (katika ishara za pembejeo) ya ombi moja ambalo hutumwa kwa lango la MiniMax linalosimamiwa. Ombi kubwa zaidi limekataliwa ndani ya nchi na 413 badala ya kutumwa, kwa sababu kukataa kwa lango hufunga modeli kutoka kwa makosa. Chaguo-msingi ni dirisha la muktadha wa lango (1000000); thamani hii inaweza kupunguza dari hiyo, kamwe usiinue juu ya dirisha. |
| `MINIMAX_CODE_MAX_TOKENS` | `8192` | `open-sse/executors/minimaxCodeGateway.ts` | Idadi ya juu zaidi ya tokeni ambazo lango linalodhibitiwa linaweza kujibu nalo. |
| `MINIMAX_CODE_AUTH_FILE` | `~/.minimax/auth/prod//mcode-public/auth.json` | `open-sse/executors/minimaxCodeGateway.ts` | Njia ya wasifu wa MiniMax Code auth ambayo inashikilia tokeni ya ufikiaji na kuonyesha upya. |
| `MINIMAX_CODE_PROFILE_DIR` | `~/.minimax` | `open-sse/executors/minimaxCodeGateway.ts` | Saraka ya wasifu wa Msimbo MiniMax ambayo ina wasifu wa mwandishi. |
| `MINIMAX_CODE_AUTH_RECORD` | _(kizazi kipya zaidi)_ | `open-sse/executors/minimaxCodeGateway.ts` | Rekodi ya wasifu wa kutumia wakati ina akaunti kadhaa. Tupu huchagua kizazi kipya zaidi, ambacho ndicho CLI yenyewe huburudisha. |
| `MINIMAX_CODE_REGION` | `en` | `open-sse/executors/minimaxCodeGateway.ts` | Eneo la akaunti ya MiniMax. Huamua sehemu ya mwisho ya akaunti ambayo itaonyesha upya ishara na saraka ya wasifu ambayo kitambulisho kinasomwa kutoka. |
| `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | Hermes Agent directory home ambapo OmniRoute reads/writes Hermes CLI config. Inalingana na seti za kisakinishi cha env var Hermes PowerShell kwenye Windows (`%LOCALAPPDATA%\hermes`). |
| `WHYCODES_HOME` | `~/.whycodes` | `src/lib/cli-helper/config-generator/whycodesHome.ts` | WhyCodes mfano mzizi ambapo OmniRoute reads/writes `config.toml`. Sawa env var WhyCodes inasoma; chaguo-msingi kwa `~/.whycodes` (`%USERPROFILE%\.whycodes` kwenye Windows). |
### CLI Profaili Usawazishaji Kiotomatiki
Alamisho hizi za vipengele zimejijumuisha na chaguomsingi zimezimwa. Zinaweza pia kugeuzwa kutoka kwa dashibodi ya Msimbo wa CLI.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------- | ------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Baada ya kusawazisha muundo wa mtoa huduma, huandika upya faili za wasifu wa `~/.codex/*.config.toml` kiotomatiki kutoka kwa orodha ya moja kwa moja. Inahitaji `CLI_ALLOW_CONFIG_WRITES`; haibadilishi kamwe usanidi wa active/default Codex, auth, mipangilio ya Codex-lb, au chaguo la mtoa huduma. |
| `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Baada ya kusawazisha muundo wa mtoa huduma, huandika upya kiotomatiki faili za wasifu wa `~/.claude/profiles//settings.json` Claude kutoka kwa orodha ya moja kwa moja. Inahitaji `CLI_ALLOW_CONFIG_WRITES`; kamwe haibadilishi usanidi wa active/default Claude, auth, au chaguo la mtoaji. |
### Docker Mfano
```bash
# Mount host binaries into the container and tell OmniRoute where they are:
CLI_EXTRA_PATHS=/host-cli/bin
CLI_CONFIG_HOME=/host-home
CLI_ALLOW_CONFIG_WRITES=true
CLI_CLAUDE_BIN=/host-cli/bin/claude
```
`CLI_CONFIG_HOME` huanza kutumika tu wakati njia imeunganishwa kutoka kwa mwenyeji — ioanishe na vipandikizi kama `~/.codex:/host-home/.codex:rw` (tazama wasifu wa `host` katika `docker-compose.yml`). Njia ambayo haipo ndani ya nyumba ya mtumiaji wa kontena au kipachiko haizingatiwi, kwa sababu kuandika hapo kunaweza kutupwa wakati kontena itaundwa upya.
Picha inaendesha kama `USER node`, kwa hivyo `/root` isiyowekwa ni** sivyo** ubatilishaji halali.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------------------- | ------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_CONTAINER` | _(otomatiki)_ | `src/shared/utils/containerEnv.ts` | Lazimisha ugunduzi wa kontena uwashe (`1`/`true`) au uzime (`0`/`false`). Inahitajika tu wakati wa utekelezaji ambapo utambuzi wa kiotomatiki hukosa. |
| `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | Ruhusu usanidi wa zana ya CLI uandike kwenye njia ya kontena isiyopandishwa hata hivyo. CLI sawa ni `--allow-container-write`. |
| `DOCKER_UPDATE_TRIGGER_FILE` | haijawekwa | `src/lib/system/autoUpdate.ts` | Docker picha pekee: dashibodi** Sasisha Sasa** huandika ombi la JSON kwa faili hii (lazima liwe ndani `DATA_DIR`) kwa mtazamaji wa upande wa mwenyeji kuvuta na kuunda tena kontena. Tazama [Mwongozo Docker](../guides/DOCKER_GUIDE.md#dashboard-updates-in-docker). |
### CLI Binary (`omniroute`) wasaidizi
Vigezo hivi hurekebisha tabia ya `omniroute` CLI binary (sio utambuzi wa gari la kando hapo juu).
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------- | --------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_LANG` | _(mfumo)_ | `bin/cli/i18n.mjs` | Lazimisha lugha ya pato la CLI. BCP-47 eneo (kwa mfano `en`, `pt-BR`). Inabatilisha mfumo wa eneo la env vars (LC_ALL, LC_MESSAGES). |
| `OMNIROUTE_SHOW_LOG` | _(haijawekwa)_ | `bin/cli/runtime/processSupervisor.mjs` | Weka kuwa `1` ili kusambaza seva stdout/stderr kwenye terminal katika hali inayosimamiwa. Sawa na bendera `--log` kwenye `omniroute serve`. |
| `OMNIROUTE_CLI_TOKEN` | _(haijawekwa)_ | `bin/cli/api.mjs` | Tokeni ya uthibitishaji wa mashine imedungwa kama kichwa `x-omniroute-cli-token`. Imetolewa kiotomatiki katika jukumu la 8.12. |
| `GEMINI_CLI_HOME` | _(haijawekwa)_ | `bin/cli/commands/setup-gemini.mjs` | Mzizi wa nyumbani Gemini unaoendelea; kukimbia kwa risasi moja hutumia nyumba iliyotengwa kwa muda. |
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Grace period katika milisekunde kabla ya kumuua kwa nguvu mtoto CLI aliyeashiria. |
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(haijawekwa)_ | `bin/omniroute.mjs` | Weka 1 kwa DATA_DIR wazi ili kuruka faili ya mazingira ya saraka ya data ya mtumiaji chaguomsingi. |
| `OMNIROUTE_SYNC_TOKEN` | _(haijawekwa)_ | `bin/cli/commands/sync.mjs` | Tokeni ya kusawazisha ya `omniroute sync bundle` (`GET /api/sync/bundle` inakubali tokeni ya kusawazisha pekee, si kitufe cha API ). Sawa na `--token`. |
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Muda wa HTTP wa kila jaribio (ms) kwa maombi ya seva ya CLI →. |
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Muda wa juu zaidi (ms) CLI husubiri mwisho wa afya ya seva kabla ya kuchapisha onyo la kuisha. Inafaa kwa kuanza kwa baridi polepole (kwa mfano Windows). Pia inaweza kusanikishwa kupitia `--ready-timeout`. |
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Weka kwa `1` ili kuchapisha uchunguzi wa retry/backoff kwa stderr wakati wa amri za CLI. |
| `OMNIROUTE_PLUGIN_PATH` | _(haijawekwa)_ | `bin/cli/plugins.mjs` | Saraka maalum ya ugunduzi wa programu-jalizi CLI ( vifurushi vya `omniroute-cmd-*` ). Chaguomsingi hadi `~/.omniroute/plugins/` wakati haijawekwa. — ya CLI pekee haifikii kichanganuzi cha programu-jalizi cha upande wa seva, ambacho kimeelekezwa na `OMNIROUTE_PLUGINS_DIR` (sehemu ya 2). |
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | _(haijawekwa)_ | `bin/omniroute.mjs` | Zuia ukaguzi wa masasisho unapowekwa kwa thamani yoyote isiyo tupu: ilani ya CLI wakati wa kuondoka kwa mchakato na bango la dashibodi "sasisho linapatikana" (`GET /api/system/version` kisha ruka npm, GitHub na utafutaji wa habari). Notisi ya CLI pia hukaa katika CI, hali tulivu, na utoaji usio wa maandishi. |
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | _(imetolewa)_ | `bin/cli/commands/doctor.mjs` | Liveness URL kuchunguzwa na `omniroute doctor`. Chaguo la programu ya `livenessUrl` inachukua kipaumbele; vinginevyo thamani hii inatumika neno moja kwa moja. Haijawekwa, CLI inapata sehemu ya mwisho ya dashibodi ya `/api/health/degradation`. |
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | Njia ya katalogi ya watoa huduma inayotumiwa na amri za watoa huduma CLI. Chaguo la `catalogPath` la kiprogramu linatanguliwa. Njia kamili hutumiwa kama ilivyo; njia za jamaa hutatua kutoka kwa mzizi wa mradi. Haijawekwa, CLI hutumia saraka ya vidhibiti vya mtoa huduma, na faili ya `providers.ts` ya urithi kama njia mbadala. |
| `OMNIROUTE_PROVIDER_TEST_MODEL` | _(chaguo-msingi la mtoa huduma)_ | `bin/cli/provider-test.mjs` | Muundo mbadala wa kimataifa kwa majaribio ya muunganisho wa mtoa huduma CLI. Utangulizi ni muundo wa muunganisho uliosanidiwa, modeli maalum ya mtoa huduma kubatilisha, thamani hii, kisha modeli ya majaribio iliyojengewa ndani ya mtoa huduma. |
---
## 10. Wakala wa Ndani & Muunganisho MCP
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_BASE_URL` | kugundua kiotomatiki | `open-sse/mcp-server/server.ts` | URL wazi kwa zana za MCP/A2A kufikia OmniRoute. Hubatilisha utambuzi wa kiotomatiki wa mwenyeji wa ndani. ujuzi wa A2A hushindwa badala ya kutuma ufunguo wa API kwa URL hii (au `BASE_URL` inarudi kwake) wakati ni http wazi kwa anwani ya umma, jina la mpangishi la umma lenye vitone au seva pangishi ya wingu-metadata, au inashikilia kitambulisho: tumia https, au http kurudisha nyuma, chombo au jina la huduma, au anwani ya kibinafsi. |
| `OMNIROUTE_API_KEY` | _(haijawekwa)_ | moduli MCP/A2A | API muhimu kwa simu za ndani MCP. ujuzi wa A2A utume tu kwa mpigaji bila ufunguo wa API (kikao cha dashibodi); mpigaji simu na vitendo muhimu na vyake. |
| `OMNIROUTE_API_KEY_ID` | _(haijawekwa)_ | `open-sse/mcp-server/audit.ts` | ID muhimu kwa maelezo ya kumbukumbu ya ukaguzi wa MCP. |
| `ROUTER_API_KEY` | _(haijawekwa)_ | Urithi | Lakabu ya urithi kwa `OMNIROUTE_API_KEY`. |
| `OMNIROUTE_A2A_HISTORY_RETENTION_DAYS` | `30` | `src/lib/a2a/taskManager.ts` | Siku za historia ya kazi A2A iliyohifadhiwa kwenye hifadhidata ya ndani kabla ya uondoaji wa kila siku kufuta safu mlalo. Haijawekwa, isiyo ya nambari, au `<= 0` inarudi kwa `30`. |
| `OMNIROUTE_A2A_MEMORY_HITS` | `1` | `src/lib/a2a/taskExecution.ts` | Kill-switch kwa kipengele cha uangalizi cha A2A hits memory. Weka `0` ili kuruka uchunguzi wa kumbukumbu kwa kazi kabisa; thamani nyingine yoyote (pamoja na ambayo haijawekwa) huiweka ikiwa imewashwa. |
| `OMNIROUTE_ISSUE_AGENT_ENABLED` | `false` | `src/app/api/issue-agent/runs/route.ts` | Huwasha kipengele cha mwisho cha jaribio la offline/local la Ajenti wa Suala. Ondoka ikiwa imezimwa isipokuwa ikiwa inaendesha utiririshaji wa majaribio wa ndani uliorekodiwa. |
| `OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS` | _(haijawekwa)_ | `src/lib/issueAgent/execution.ts` | Muda umeisha (ms) kwa ajili ya utekelezaji wa jaribio moja la Ajenti wa Suala. Imefungwa kwa upeo wa ndani; inarudi kwa chaguo-msingi iliyojumuishwa ikiwa haijawekwa au batili. |
| `OMNIROUTE_CONTEXT` | _(muktadha amilifu)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | CLI kijijini-mode context/profile kwa amri `omniroute` ; hubatilisha muktadha amilifu katika hifadhi ya miktadha ya ndani. Sawa na `--context `. |
| `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | Lemaza mazingira ya hiari `keytar` OS-keychain kwa vitambulisho vya muktadha wa CLI. Inapowashwa, kitambulisho husalia katika hali ya `config.json` `0600` na CLI hutoa onyo la mara moja mbadala; iliyokusudiwa kwa operesheni ya makusudi headless/container. |
| `OMNIROUTE_MCP_ENFORCE_SCOPES` | `false` | `open-sse/mcp-server/server.ts` | Tekeleza udhibiti wa ufikiaji kulingana na upeo kwenye simu za zana MCP. |
| `OMNIROUTE_MCP_SCOPES` | _(wote)_ | `open-sse/mcp-server/server.ts` | Mawanda yaliyotenganishwa kwa koma: `admin`, `combos`, `health`, `models`, `routing`, `budget`, `metrics`, `pricing`, `memory`, `skills`. |
| `OMNIROUTE_PPLX_RESEARCH_ENABLED` | `0` | `open-sse/mcp-server/tools/perplexityResearch.ts` | Sajili zana ya Utafiti wa Kina MCP. Ni `1` pekee inayoisajili; kitu kingine chochote huiacha. |
| `OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS` | `false` | `open-sse/mcp-server/descriptionCompressor.ts` | Finyaza maelezo ya zana MCP kabla ya kuratibu faili ya maelezo. Washa thamani: `1`, `true`, `on`. |
| `OMNIROUTE_MCP_DESCRIPTION_COMPRESSION` | `rtk` | `open-sse/mcp-server/descriptionCompressor.ts` | Mfinyazo algorithm/profile. Lemaza maadili: `0`, `false`, `off`. |
| `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | Acha bajeti (ms) ya usomaji wa ndani wa seva ya MCP (afya, uthabiti, mchanganyiko, kiasi, matumizi). |
| `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | Achana na bajeti (ms) ya MCP humle zinazosubiri mtoaji (`route_request`, `web_search`, `web_fetch`). |
| `OMNIROUTE_MCP_SESSION_IDLE_MS` | `300000` | `open-sse/mcp-server/httpTransport.ts` | Kutofanya TTL (ms) kabla ya kufagia kunavuna kipindi cha MCP kinachoweza kutiririka bila kitu. Kipindi kilicho na mtiririko wazi au ombi la ndani ya ndege hakivunwi kamwe. Nambari ambazo hazijawekwa, zisizo kamili, au zisizo chanya hurudi kwenye chaguo-msingi. |
| `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | `src/lib/localCorpus/configured.ts` | Idadi ya juu zaidi ya matukio ya faharasa ya ndani-iliyohifadhiwa kwenye kumbukumbu (LRU, moja kwa kila saraka ya mizizi iliyoonyeshwa). Imebanwa kwa kiwango cha chini cha `1`. |
| `MODEL_SYNC_INTERVAL_HOURS` | `6` | `src/shared/services/modelSyncScheduler.ts` | Muda wa kusawazisha katalogi kwa saa. |
| `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | `src/lib/usage/providerLimits.ts` | Kiwango cha kiwango cha mtoa huduma na muda wa upigaji kura wa kiasi. |
| `PROVIDER_LIMITS_SYNC_SPACING_MS` | `1500` | `src/lib/usage/providerLimits.ts` | Pengo (ms) kati ya mgao wa OAuth unaofuatana huleta katika usawazishaji wa wingi; miunganisho OAuth inaletwa moja kwa wakati ili kuzuia kupasuka kwa mkondo wa juu. `0` huchagua kutoka (sambamba). |
| `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | Muda wa chini (ms) kati ya mgao wa juu unaofuatana huleta kwenye njia ya ombi preflight/monitor ; spaces network inapiga simu kwa akaunti nyingi kwenye IP moja haitoi mkondo wa juu. Imeunganishwa kwenye Codex (`/wham/usage`), DeepSeek, Bailian (tovuti zote mbili za kuleta), OpenCode, na vichota vya upendeleo vya Crof (#6009, #6911). Njia ya jumla ya utumaji `usage.ts::getUsageForProvider` (github/glm/minimax/nanogpt/xai/etc.) bado haijafuatiliwa — kando. Milio ya akiba haijaathiriwa. `0` inalemaza; `0..60000` iliyofungwa. |
| `OMNIROUTE_QUOTA_FETCH_JITTER_MS` | `120` | `open-sse/services/quotaFetchThrottle.ts` | Nafasi ya ziada ya kila ombi kwa kila ombi (ms), iliyochukuliwa katika kila uletaji wa mgao wa juu wa mto uliohifadhiwa. Chaguomsingi hadi 120; `0..60000` iliyofungwa; `0` huondoa jitter tu. Weka `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS=0` kuzima sauti nzima. Jitter haitoi hakikisho la kuzuia marufuku ya juu ya mto. |
| `CODEX_QUOTA_FETCH_TIMEOUT_MS` | `8000` | `open-sse/services/codexQuotaFetcher.ts` | Muda umeisha (ms) kwa kuleta mgao mmoja Codex (`chatgpt.com/backend-api/wham/usage`). Ndege ya kabla ya ndege hungoja uchukuzi huu kabla ya kutuma ombi. Baada ya muda kuisha au hitilafu ya usafiri, muhtasari wa mwisho kutoka kwa dakika 15 zilizopita unatumiwa tena isipokuwa dirisha lake limechoka au limewekwa upya; na hakuna, mgawo haujulikani, kwa hivyo akaunti ya mkopo iliyolipwa inarukwa kwa ombi hilo na hakuna upunguzaji wa sauti unaoendelea. Inakubali nambari kamili hadi `2147483647`; thamani nyingine yoyote inarudi kwa chaguomsingi. |
| `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | Kucheleweshwa (ms) kabla ya kuonyesha upya vikomo vya mtoa huduma baada ya tukio halisi la matumizi, na kutoa muda wa API wa sehemu ya juu ya kusajili matumizi. |
| `OMNIROUTE_LOGIN_BROWSER_PATH` | kugundua kiotomatiki | `open-sse/services/adobeFireflyBrowserLogin.ts` | Njia kamili ya mfumo Chrome au Edge inayoweza kutekelezeka inayotumika kwa kuingia katika akaunti kwa kutumia Adobe Firefly na kusasisha nje ya skrini. |
| `ADOBE_FIREFLY_BROWSER_REFRESH` | kuwezeshwa | `open-sse/services/adobeFireflySession.ts` | Huweka IMS na hali ya hatari ya kivinjari kuwa mpya na vipindi vya Chrome CDP vilivyo na akaunti. Weka `0` ili kulemaza usasishaji wa kivinjari. |
| `ADOBE_FIREFLY_SESSION_DISK` | kuwezeshwa | `open-sse/services/adobeFireflySession.ts` | Huendelea kukarabati vipindi vya Adobe chini ya `DATA_DIR` katika uanzishaji upya wa mchakato. Weka `0` ili kuweka vipindi vya kumbukumbu pekee. |
| `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Kiwango cha chini cha nafasi katika milisekunde kati ya Adobe Firefly hutoa mawasilisho; `0` huzima nafasi. |
| `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Kipindi cha utulivu zaidi katika milisekunde baada ya kila uwasilishaji wa tatu uliofaulu wa Adobe. |
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyClient.ts` | Kurudi nyuma kwa milisekunde baada ya majibu ya muda mfupi ya Adobe 408; pamoja na nafasi ya kuwasilisha katika angalau majaribio matano. |
| `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | Zima huduma zote za usuli: uonyeshaji upya wa kiasi, usawazishaji wa mipaka ya mtoa huduma, urejeshaji wa muunganisho, afya ya hati miliki, usawazishaji wa cloud/model/free-proxy/proxy-health, usafishaji wa uhifadhi, VACUUM iliyoratibiwa na kura ya upakiaji upya wa mipangilio. Muhimu kwa CI/test; kwenye usakinishaji wa muda mrefu, miunganisho haijirudishi kiotomatiki na hifadhidata inaendelea kukua. |
| `OMNIROUTE_HEADLESS` | _(haijawekwa)_ | `src/lib/system/headless.ts` | Kiwanzio cha injini ya wakala pekee: ruka mifumo midogo ya hiari, `/dashboard` → 404. Sawa na `omniroute serve --headless`. Angalia [HEADLESS.md](../guides/HEADLESS.md). |
| `OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS` | _(haijawekwa)_ | `src/lib/config/runtimeSettings.ts` | Lazimisha kazi za usuli chini ya utambuzi wa kiotomatiki wa jaribio. Weka `1` ili kubatilisha urithi wa jaribio. |
| `OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS` | `600000` | `src/lib/jobs/budgetResetJob.ts` | Mwendo wa kuangalia uwekaji upya wa bajeti (ms). Sakafu `10000`. |
| `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | Mwanguko wa urejeshaji wa muunganisho unaoendelea (ms): huthibitisha tena miunganisho ambayo `rate_limited_until` ya muda mfupi imepita, kutoka kwa njia ya ombi. Sakafu `5000`. |
| `OMNIROUTE_DISABLE_CONNECTION_RECOVERY` | `false` | `src/lib/quota/connectionRecovery.ts` | Lemaza kiratibu tendaji cha urejeshaji cha muunganisho-kupunguza kasi (ahueni ya uvivu katika `getProviderCredentials` bado inatumika). |
| `OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS` | `1800000` | `src/lib/jobs/reasoningCacheCleanupJob.ts` | Mwando wa kusafisha akiba (ms). Sakafu `60000`. |
| `OMNIROUTE_REASONING_MIN_BUDGET` | _haijawekwa_ (imezimwa) | `open-sse/services/reasoningTokenBuffer.ts` | Sakafu ya kujijumuisha kwa bajeti za pato za modeli ya kufikiria: mpigaji simu `max_tokens` katika `[256, floor)` huinuliwa hadi sakafu (iliyofungwa na kifuniko cha pato la mfano). Bajeti zisizowekwa za mteja = hazijawahi kupanuliwa (#9507). |
| `OMNIROUTE_REASONING_EFFORT_PROBE_PROVIDERS` | _haijawekwa_ (imezimwa) | `open-sse/services/learnedReasoningEffortCaps.ts` | Jijumuishe, vitambulisho vya mtoa huduma vilivyotenganishwa kwa koma (au `*`): `reasoning_effort` 400/422 inapotaja hakuna seti inayokubalika, jaribu tena mara moja daraja moja chini (usiwe chini ya `low`) na ujifunze kiwango hicho ikiwa tu uchunguzi utajibiwa (#14895). |
| `OMNIROUTE_LOG_EXPORT_CRON` | `0 * * * *` | `src/lib/jobs/logExportJob.ts` | Cron expression (UTC) kwa ajili ya kazi ya kuhamisha-call-log ambayo huondoa kila eneo linalowezeshwa la usafirishaji wa logi. Pendelea `*/5 * * * *` unaposafirisha miili. |
| `OMNIROUTE_LOG_EXPORT_RUN_TIMEOUT_MS` | `900000` | `src/lib/logExport/childRunner.ts` | Muda wa saa ya ukutani wa kila mahali wa mtoto katika milisekunde. Muda wa kuisha hurekodi kutofaulu na kuua mchakato bila kuendeleza kundi ambalo halijatambuliwa. Invalid/non-positive/non-integer maadili hutumia chaguo-msingi. |
| `OMNIROUTE_LOG_EXPORT_CHILD_MAX_OLD_SPACE_MB` | `1024` | `src/lib/logExport/childRunner.ts` | Nodi ya kusafirisha mtoto V8 kikomo cha nafasi ya zamani katika MB (sio jumla RSS). Chaguo-msingi huacha chumba cha habari kwa safu 500 za mabaki yaliyofungwa na miili; batches kubwa zaidi bado inaweza kuchosha lundo la mtoto. Kushindwa kunashauri kupunguza ukubwa wa kundi au kuongeza kikomo hiki. Invalid/non-positive/non-integer maadili hutumia chaguo-msingi. Usafirishaji wa Bun hurejeshwa katika mchakato bila kikomo hiki. |
| `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | Muda wa upigaji kura (ms) wa kusanidi upakiaji upya. Chini ya `1000` imekataliwa. |
| `OMNIROUTE_DISABLE_REDIS_AUTH_CACHE` | _(imewezeshwa)_ | `src/lib/db/apiKeys.ts` | Weka `1` ili kukwepa akiba ya ufunguo wa API-inayoungwa mkono na Redis (lazima DB isomwe). |
| `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | `0` | `open-sse/services/compression/engines/rtk/filterLoader.ts` | Amini sheria za kichujio cha mradi wa RTK zinazodhibitiwa na mtumiaji bila ukaguzi mkali wa sahihi. |
| `OMNIROUTE_LITE_MAX_TOOL_LENGTH` | `2000` | `open-sse/services/compression/lite.ts` | Kikomo cha herufi kwa upunguzaji wa matokeo ya zana ya Lite wakati `lite.maxToolLength` haijawekwa. Kiwango cha 256-1000000. Mipangilio ya dashibodi inashinda juu ya env hii. |
| `OMNI_COMPRESSION_WORKERS` | `2` | `open-sse/services/compression/compressionWorkerPool.ts` | Upeo wa juu wa wafanyikazi RTK/Caveman wanaofanana; kazi za ziada subiri FIFO. |
| `OMNI_COMPRESSION_WORKER_TIMEOUT_MS` | `120000` | `open-sse/services/compression/compressionWorkerPool.ts` | Muda wa kila kazi umeisha katika milisekunde. Wafanyikazi waliopitwa na wakati wanakatishwa na ombi halifaulu kufunguliwa bila kubadilishwa. |
| `OMNI_COMPRESSION_WORKER_IDLE_MS` | `60000` | `open-sse/services/compression/compressionWorkerPool.ts` | Muda wa kuishi bila kufanya kitu katika milisekunde kabla ya kibarua cha kubana ambacho hakijatumiwa kusitishwa. |
| `OMNI_COMPRESSION_WORKER_MAX_OLD_MB` | `1024` | `open-sse/services/compression/compressionWorkerPool.ts` | Kofia ya lundo la kizazi cha V8 katika MB kwa kila mfanyakazi wa kukandamiza, aina zote (sakafu `128`). Kazi inayoizidi inashindwa kufunguka (isiyobanwa) badala ya kukuza lundo la lango. |
| `COMPRESSION_PIPELINE_BREAKER_ENABLED` | `false` | `open-sse/services/compression/pipelineEngineBreaker.ts` | swichi kuu ya kivunja mzunguko-bomba ya T02 kwa kila injini.** Jijumuishe (chaguo-msingi imezimwa)** — ikiwa imewashwa, injini inayorushwa mara kwa mara katika maombi kurukwa (kushindwa kufunguliwa) kwa kupoeza; mbali na tabia ya urithi inayofanana na =. |
| `COMPRESSION_PIPELINE_BREAKER_THRESHOLD` | `3` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Kushindwa kwa maombi mtambuka mfululizo kabla ya kivunja injini kufunguka. |
| `COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS` | `30000` | `open-sse/services/compression/pipelineEngineBreaker.ts` | Milisekunde injini iliyofunguliwa hukaa kurukwa kabla ya uchunguzi wa nusu wazi. |
| `COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR` | `2` | `open-sse/services/compression/engines/ccr/index.ts` | njia panda ya urejeshaji-maoni ya T08/H8 CCR : kila urejeshaji wa awali wa kizuizi kilichohifadhiwa huinua `minChars` yake madhubuti kwa mstari (maudhui yanayorudishwa mara kwa mara hubana kidogo; urejeshaji wa `>=3` = haujabanwa). `1` huzima njia panda (kuruka kwa njia mbili kwenye kizingiti pekee). |
| `COMPRESSION_CCR_DURABLE_STORE` | `true` | `open-sse/services/compression/engines/ccr/index.ts` | CCR durable block store (#9061). Backs the in-memory store with SQLite so a block survives LRU eviction, the TTL, a restart, or a retrieve landing on another instance. Set `false` to keep blocks in memory only. Blocks over 512KB and cloud runtimes stay memory-only regardless. |
| `COMPRESSION_PREFIX_FREEZE_ENABLED` | `false` | `open-sse/services/compression/prefixFreeze.ts` | T08/H5 kiambishi awali cha kufungia matumizi-kilichozingatiwa.** Jijumuishe (chaguo-msingi imezimwa)** — ikiwa imewashwa, arifa ya mfumo inayozingatiwa `>=` kizingiti huchukuliwa kama kiambishi awali kinachoweza kuakibishwa na kuhifadhiwa kutokana na mgandamizo hata kwa watoa huduma kache tuli hukosa (bandika _hifadhi_ pekee, kamwe usibadilike). |
| `COMPRESSION_PREFIX_FREEZE_THRESHOLD` | `3` | `open-sse/services/compression/prefixFreeze.ts` | Uchunguzi wa kidokezo cha mfumo kabla ya kutibiwa kama kiambishi awali kilichogandishwa. |
| `OMNIROUTE_BOOTSTRAPPED` | `false` | `src/app/(dashboard)/dashboard/page.tsx` | Weka `true` kwa hati ya bootstrap baada ya usanidi wa awali. Hudhibiti mwonekano wa mchawi wa kusanidi. |
| `OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE` | `0` | `open-sse/executors/antigravity.ts` | Escape hatch: ruhusu chombo cha ombi kubatilisha uga wa mradi wa Antigravity. |
| `ANTIGRAVITY_CREDITS` | `off` | `open-sse/services/antigravityCredits.ts` | Google Sera ya mikopo ya AI moja: `off` haiingizi mikopo kamwe, `retry` huingiza mara moja baada ya mgawo unaostahiki 429, na `always` huingiza kwa ombi la kwanza. |
| `OMNIROUTE_ANTIGRAVITY_TIMING_TELEMETRY` | `false` | `open-sse/executors/antigravity/executeAttempt.ts` | Muda wa kuingia uliosafishwa kwa kila mtu anapotuma: akaunti haina shughuli, maombi ya ndani ya ndege, muda wa kutumia vichwa na maudhui SSE kwanza. Hakuna vidokezo, kitambulisho, au URLs ya juu kwenye kumbukumbu. |
| `ANTIGRAVITY_MAX_429_ATTEMPTS` | `2` | `open-sse/services/antigravity429Guard.ts` | 429 za Mkondo wa Juu zinavumiliwa kwa kila Antigravity (`agy`/`antigravity`) ombi kwa wapangishi wote (1–12) kabla ya 429 kurudi kwa mpigaji simu. Shirika lililoitumia hujibiwa ndani ya nchi wakati wa kutuma tena (dakika 2, maradufu hadi dakika 30, au kidokezo cha kujaribu tena mkondo wa juu), na kidhibiti cha gumzo hakiwanzi tena ombi baada ya 429 hiyo. |
| `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | Ruhusu mtafsiri wa ombi la Antigravity aruke uthibitishaji wake mkali wa ombi CLI wakati mkondo wa juu unakataa saini halisi ( modi ya debug/antiquated-CLI ). Isiyo ya sifuri huwezesha bypass. |
| `AGY_TOKEN_FILE` | `~/.gemini/antigravity-cli/antigravity-oauth-token` | `src/app/api/providers/agy-auth/apply-local/route.ts` | Batilisha njia ya faili ya tokeni Antigravity CLI (agy) kwa uletaji wa kuingia ndani wa kugundua kiotomatiki. |
### OAuth CLI Bridge (Ndani)
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------- | -------------------- | ------------------------------- | ------------------------------------------ |
| `OMNIROUTE_SERVER` | kugundua kiotomatiki | `src/lib/oauth/config/index.ts` | Seva URL kwa CLI↔OmniRoute auth daraja. |
| `OMNIROUTE_TOKEN` | _(haijawekwa)_ | `src/lib/oauth/config/index.ts` | Ishara ya uthibitishaji kwa daraja la CLI. |
| `OMNIROUTE_USER_ID` | `cli` | `src/lib/oauth/config/index.ts` | Mtumiaji ID kwa vipindi vya daraja la CLI. |
| `SERVER_URL` | _(haijawekwa)_ | `src/lib/oauth/config/index.ts` | Lakabu ya urithi kwa `OMNIROUTE_SERVER`. |
| `CLI_TOKEN` | _(haijawekwa)_ | `src/lib/oauth/config/index.ts` | Lakabu ya urithi kwa `OMNIROUTE_TOKEN`. |
| `CLI_USER_ID` | _(haijawekwa)_ | `src/lib/oauth/config/index.ts` | Lakabu ya urithi kwa `OMNIROUTE_USER_ID`. |
---
## 11. OAuth Hati za Mtoa huduma
### Onyesha upya tokeni Codex
`OMNIROUTE_TOKEN_REFRESH_PASSIVE_PROVIDERS` iliyowekwa kuwa `codex` hufanya mfano huu kuwa mtumiaji wa vitambulisho Codex vilivyosawazishwa, sio mmiliki wa mzunguko wa kuonyesha upya. Chaguo-msingi tupu au isiyowekwa huhifadhi tabia ya kuonyesha upya kawaida. Thamani zilizotenganishwa kwa koma zimepunguzwa na hazijalishi; `cx` ni lakabu ya `codex`. Watoa huduma wasiotumika wameshindwa uthibitishaji wa kuanzisha. Watoa huduma wengine hawajabadilika.
Katika sehemu zilizopo za kuonyesha upya, mfano hupita akiba ya usomaji wa muunganisho na kuchukua tu tokeni tofauti ya ufikiaji ambayo haijaisha muda wake. Tokeni zilizokataliwa juu ya mkondo wakati wa ombi haziwezi kuhitimu tena baada ya usawazishaji kurejeshwa: stakabadhi za ombi hushikilia angalau alama za vidole nne SHA-256, kutupwa pamoja na ombi hilo. Sehemu za tokeni pekee ndizo zinazokubaliwa, kwa hivyo metadata ya ombi la mtoa huduma wa karibu inaendelea kuwepo. Hakuna kitambulisho kilichopitishwa kinachoendelea. Ikiwa hakuna kibadilishaji kilichopo, `refresh_disabled` si ya mwisho na haihesabiki kuelekea kivunja mzunguko wa ishara-onyesha upya. Majibu halisi 401/403 ya juu yanahifadhi uhasibu wa kawaida wa kutofaulu, upunguzaji wa hali ya juu na makosa ya mteja; mawimbi ya kuzima akaunti bado yamefungwa kabisa.
Kuonyesha upya dashboard/API kwa mikono kunarudisha `409` na msimbo `refresh_disabled` na maagizo ya kuonyesha upya mfano amilifu na kusawazisha. Viburudisho dhahili (sogoa, matumizi, ukaguzi wa afya na uthibitishaji wa uingizaji) havionyeshi hitilafu hiyo; urejeshaji unapohitajika 401 hujaribu tena mara moja kwa tokeni iliyopitishwa iliyosawazishwa. uagizaji wa Codex auth huhifadhi tokeni zilizotolewa bila kubadilishana ishara ya kuonyesha upya; OAuth mpya za kuingia hazijabadilishwa. Hakuna ulandanishi wa kutuma kabla unaoongezwa nje ya njia iliyopo ya kuonyesha upya upya.
Weka mmiliki mmoja wa mzunguko na upange usawazishaji wa tokeni kando, kabla ya muda wa tokeni za ufikiaji kuisha (mwongozo chaguomsingi wa uendeshaji: dakika tano). Chaguo hili si kufuli iliyosambazwa, uigaji wa hifadhidata au uwekaji wa SQLite ulioshirikiwa. Chanzo: `open-sse/services/tokenRefresh/passiveCodex.ts`.
Kitambulisho kilichojengwa kwa** maendeleo ya mwenyeji** . Kwa utumiaji wa mbali, sajili yako mwenyewe kwenye kila kiweko cha wasanidi programu.
| Inaweza kubadilika | Mtoa huduma | Vidokezo |
| ------------------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `CLAUDE_OAUTH_CLIENT_ID` | msimbo Claude (Anthropic) | Mteja wa umma — hakuna siri inayohitajika. |
| `CLAUDE_CODE_REDIRECT_URI` | nambari Claude | Batilisha uelekezaji kwingine URI. Chaguomsingi: `https://platform.claude.com/oauth/code/callback` |
| `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | Mteja wa umma. |
| `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | Inahitaji `_SECRET` inayolingana. |
| `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — |
| `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi Usimbaji (Moonshot) | Mteja wa umma. |
| `MUSE_CODE_OAUTH_CLIENT_ID` | Msimbo wa Makumbusho (Meta) | Kubatilisha kwa hiari kwa kitambulisho cha mteja cha mtiririko wa kifaa cha Muse CLI. Ondoka bila kuwekwa ili kutumia mteja wa umma aliyeokwa. |
| `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | Inahitaji `_SECRET` inayolingana. |
| `ANTIGRAVITY_OAUTH_CLIENT_SECRET` | Antigravity (Google) | — |
| `GITHUB_OAUTH_CLIENT_ID` | GitHub Copilot | Mteja wa umma. |
| `GHE_COPILOT_OAUTH_CLIENT_ID` | GHE Copilot | Kubatilisha kwa hiari kwa kitambulisho cha mteja cha GitHub Enterprise Copilot's OAuth. Hurudi kwa chaguomsingi la `GITHUB_OAUTH_CLIENT_ID` la umma lisipowekwa. |
| `COPILOT_INTEGRATION_ID` | GitHub Copilot | Kubatilisha kwa hiari kwa uunganishaji wa mteja wa GitHub Copilot ID iliyotumwa kwa vichwa vya `Copilot-Integration-Id` na `Editor-Plugin-Version`. Chaguomsingi kwa `copilot-developer-cli`. |
| `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | API ufunguo mbadala unaotumiwa na `open-sse/executors/devin-cli.ts` wakati hakuna kitambulisho cha kila muunganisho unaopatikana. Hiari. |
| `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Njia maalum ya Devin CLI binary (`devin`). Imetatuliwa na `open-sse/executors/devin-cli.ts`. |
| `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | OAuth mteja ID kwa GitLab Duo. Sajili programu katika `https://gitlab.com/-/profile/applications` na uelekeze upya URI `/callback` na upeo `api, read_user, openid, profile, email`. Inarudi kwa `GITLAB_OAUTH_CLIENT_ID`. |
| `GITLAB_DUO_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | OAuth siri ya mteja kwa GitLab Duo. Mtiririko wa hiari — PKCE hauhitaji siri. Huanguka nyuma hadi `GITLAB_OAUTH_CLIENT_SECRET`. |
| `GITLAB_DUO_BASE_URL` | GitLab Duo (v3.8) | Batilisha GitLab base URL (inayojiendesha yenyewe GitLab). Chaguomsingi hadi `https://gitlab.com`. Huanguka nyuma hadi `GITLAB_BASE_URL`. |
| `GITLAB_BASE_URL` | GitLab Duo (v3.8) | Marudio ya urithi kwa `GITLAB_DUO_BASE_URL`. Inatumika wakati lahaja `_DUO_` haijawekwa. |
| `GITLAB_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | Njia mbadala ya `GITLAB_DUO_OAUTH_CLIENT_ID` inayotumiwa na `src/lib/oauth/constants/oauth.ts`. |
| `GITLAB_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | Njia mbadala ya `GITLAB_DUO_OAUTH_CLIENT_SECRET` inayotumiwa na `src/lib/oauth/constants/oauth.ts`. |
| `QODER_OAUTH_CLIENT_SECRET` | Qoder | — |
| `QODER_OAUTH_AUTHORIZE_URL` | Qoder | Weka ili kuwezesha Qoder OAuth. |
| `QODER_OAUTH_TOKEN_URL` | Qoder | — |
| `QODER_OAUTH_USERINFO_URL` | Qoder | — |
| `QODER_OAUTH_CLIENT_ID` | Qoder | — |
| `QODER_PERSONAL_ACCESS_TOKEN` | Qoder | Njia mbadala ya ufunguo wa API moja kwa moja (njia za kupita OAuth). |
| `QODER_CLI_WORKSPACE` | Qoder | Nafasi ya kazi ID kwa Qoder CLI. |
| `OMNIROUTE_QODER_WORKSPACE` | Qoder | Lakabu ya `QODER_CLI_WORKSPACE`. |
| `QODER_CLI_CONFIG_DIR` | Qoder | Batilisha Qoder CLI config dir (kipindi cha PAT kilichotengwa, epuka kuficha kuingia kwa kivinjari). |
| `QODER_CLI_MAX_CONCURRENCY` | Qoder | Uendeshaji wa juu zaidi wa qodercli (vielelezo vya kuchapisha au vishawishi vya ACP ); foleni ya maombi ya ziada FIFO. Haijawekwa (chaguo-msingi) = hakuna kofia. |
| `QODER_CLI_QUEUE_TIMEOUT_MS` | Qoder | Muda gani ombi la Qoder linasubiri nafasi ya qodercli (tu yenye kofia) kabla ya kushindwa na 429 `qodercli_busy` + `Retry-After`. `120000` chaguomsingi . |
| `QODER_CLI_TRANSPORT` | Qoder | `print` (chaguo-msingi) huzaa `qodercli --print` kwa kila ombi; `acp` huweka mchakato mmoja wa `qodercli --acp` kwa kila PAT. |
| `QODER_CLI_ACP_IDLE_TIMEOUT_MS` | Qoder | ACP transport: kuua mchakato wa qodercli unaoendelea baada ya muda huu mwingi wa kutofanya kitu. `600000` chaguomsingi . |
| `QODER_CLI_ACP_STARTUP_TIMEOUT_MS` | Qoder | usafiri ACP : tarehe ya mwisho ya qodercli kujibu ACP `initialize`. `60000` chaguomsingi . |
| `QODER_CLI_ACP_MAX_SESSIONS_PER_PROCESS` | Qoder | ACP transport: rejeleza mchakato unaoendelea wa qodercli baada ya vipindi vingi hivi. `500` chaguomsingi . |
| `BLACKBOX_WEB_VALIDATED_TOKEN` | Blackbox Web | Tokeni `tk` ya eneo la mbele kutuma kama `validated` kwenye `/api/chat`. Inahitajika wakati Blackbox inatekeleza ulinganishaji wa tokeni; vinginevyo OmniRoute inarudi kwa nasibu UUID. Angalia suala #2252. |
| `VISION_BRIDGE_BASE_URL` | Vision Bridge guardrail | URL ya msingi inayolingana na OpenAI kwa simu zisizo za Anthropic vision-bridge. Chaguomsingi kwa OpenAI URL env au api.openai.com. Elekeza kwenye kitanzi cha `/v1` cha OmniRoute au sehemu yoyote ya mwisho ya OpenAI-compat (Gemini OpenAI-compat, OpenRouter). Suala #2232. Wakati URL ni `/v1` ya OmniRoute mwenyewe , ombi dogo la maelezo hutuma `x-omniroute-admission-bypass: internal` na kuthibitisha kwa kitambulisho cha kitanzi kilichosuluhishwa (`sk_omniroute` sentinel katika hali ya ndani, au `OMNIROUTE_API_KEY` / `ROUTER_API_KEY` — #1350) ili uwekaji wa `REQUIRE_API_KEY=true` ufanye kazi. |
| `VISION_BRIDGE_API_KEY` | Vision Bridge guardrail | API ufunguo wa URL hapo juu. Hubatilisha kila mtoa huduma OpenAI / Google env vars kwa simu zisizo za Anthropic vision-bridge. mifano Anthropic huweka njia yao muhimu ya Anthropic iliyojitolea. Tatizo #2232. |
| `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | Vision Bridge guardrail | Muda gani matokeo ya uelekezaji ya "hakuna mgombea anayeweza kutumika" yamehifadhiwa, katika ms (default `30000`). Thamani batili au hasi zinarudi kwa chaguo-msingi; `0` huzima kache hasi. Chanzo: `src/lib/guardrails/visionBridgeRouter.ts`. |
| `OMNIROUTE_IMAGE_NORMALIZATION` | Urekebishaji wa picha ya maono | Jijumuishe (ondoa =, mabadiliko ya tabia sifuri; `1`/`true`/`on` inawasha). Husawazisha kila picha iliyo ndani (base64 data URI / Claude `source.data`) katika miili ya ombi la gumzo kabla ya kutumwa: mwelekeo wa EXIF umetumika, RGB (alpha iliyobanwa na kuwa nyeupe), ukingo mrefu `<= 4096` px, jumla ya pikseli `<= ~4M`; picha zinazohitaji mabadiliko husimbwa tena kama JPEG ya msingi ( PNGs isiyo na alpha stayless PNG), RGB JPEG/PNG inayotii tayari hupita bila kuguswa. Bajeti zimewekwa. Inalenga mabomba ya kuona Qwen2-VL-style ambayo yanakataa picha za oversized/exotic zenye hitilafu 400 za uchanganuzi au kuning'inia kwa sifuri. URLs za http za mbali hazijapakuliwa; jozi ya `sharp` iliyokosekana au picha isiyoweza kuandikwa hupitia bila kuguswa (kushindwa kufunguliwa). Kubadilisha ukubwa wa picha kubwa huongeza muda wa ombi. Chanzo: `open-sse/utils/visionImageNormalization.ts`. |
> [!WARNING]
>
> 1. Nenda kwa [Google Cloud Console → Hati miliki](https://console.cloud.google.com/apis/credentials) 2. Unda OAuth 2.0 Mteja ID (aina: "Programu ya Wavuti") 3. Ongeza seva yako URL kama Imeidhinishwa kuelekeza upya URI 4. Badilisha thamani za kitambulisho katika `.env`.
---
## 12. Ubatilishaji wa Wakala wa Mtumiaji wa Mtoa Huduma
Batilisha kichwa cha `User-Agent` kilichotumwa kwa kila mtoa huduma wa juu. Hii inatatuliwa kwa nguvu wakati wa kukimbia na darasa la msingi la mtekelezaji:
```
process.env[`${PROVIDER_ID}_USER_AGENT`]
```
> **Chanzo:** `open-sse/executors/base.ts` → `buildHeaders()`
| Inaweza kubadilika | Thamani Chaguomsingi | Wakati wa Kusasisha |
| -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `CLAUDE_USER_AGENT` | `claude-cli/2.1.280 (external, cli)` | Wakati Anthropic ikitoa toleo jipya CLI |
| `CLAUDE_DISABLE_TOOL_NAME_CLOAK` | `false` | `executors/base.ts` + `executors/cliproxyapi.ts` | Set to `1`/`true` to forward third-party harness tool names verbatim to Anthropic on both Anthropic-bound paths (native OAuth and CLIProxyAPI). By default the executor deterministically aliases non-Claude-Code tool names (Claude Code canonical mapping where one exists, otherwise PascalCase) and reverses them on the response via `_toolNameMap`, so harnesses with snake_case tools are not refused as fingerprinted third-party clients. Debugging only. |
| `CODEX_USER_AGENT` | `codex-cli/0.155.0 (Windows 10.0.26200; x64)` | Wakati OpenAI inasasisha Codex CLI |
| `CODEX_CLIENT_VERSION` | `0.155.0` | Batilisha toleo la mteja Codex bila mfuatano kamili wa UA |
| `GROK_CLI_CLIENT_VERSION` | `1.0.41` | Batilisha `x-grok-client-version` kwa makisio, usawazishaji wa muundo, na msimbo wa kifaa OAuth, pamoja na Wakala wa Mtumiaji Grok CLI kwa makisio na usawazishaji wa muundo. Hukubali SemVer na metadata ya hiari prerelease/build, hadi herufi 128 baada ya kupunguza nafasi nyeupe inayozunguka. Nambari ambazo hazijawekwa, tupu, batili au zenye kuvunja mstari tumia pini iliyosafirishwa. Ubatilishaji kamili uliopo wa Wakala wa Mtumiaji unaendelea kuwa na kipaumbele. |
| `CLAUDE_CODE_CLIENT_VERSION` | `2.1.280` | Batilisha toleo la Msimbo wa Claude uliotangazwa bila `CLAUDE_USER_AGENT`. Anthropic huweka baadhi ya mifano kwenye thamani hii (#12417). |
| `CLAUDE_CODE_CLIENT_BUILD_REVISION` | `1e2` | Batilisha kiambishi tamati chenye herufi 3 OmniRoute kinachoambatanishwa hadi `cc_version=` katika kizuizi cha bili Claude. Bomba kando ya `CLAUDE_CODE_CLIENT_VERSION` — ukibandika toleo pekee hutangaza jozi ya `version.revision` hakuna utoaji halisi wa binary. |
| `GITHUB_COPILOT_CLI_VERSION` | `1.0.91` | Batilisha toleo la Copilot CLI lililotangazwa bila `GITHUB_USER_AGENT` |
| `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | Wakati GitHub Copilot Chat sasisho |
| `ANTIGRAVITY_CLI_CL` | _(haijawekwa)_ | Batilisha orodha ya Antigravity CLI (`agy`) Piper iliyoripotiwa kama `cl=` katika Wakala wa Mtumiaji wa CLI. Haitolewi kutoka kwa toleo wala kufichuliwa na maonyesho ya umma; iliyopandwa kwa kila toleo kutoka kwa kunasa moja kwa moja (1.4.4 → `1003595037`). Haijawekwa kwenye toleo lisilojulikana huacha `cl=` badala ya kutangaza orodha ya mabadiliko ya muundo mwingine. |
| `KIRO_USER_AGENT` | `AWS-SDK-JS/3.0.0 kiro-ide/1.0.0` | Wakati Kiro IDE inasasishwa |
| `KIRO_OAUTH_CLIENT_ID` | `kiro-cli` | Batilisha msimbo wa kifaa cha kijamii Kiro `clientId` (kitambulisho cha umma) |
| `KIRO_VERIFY_FULL_CRC` | `false` | Jijumuishe: uthibitisho kamili wa ujumbe CRC kila fremu kwenye mtiririko wa tukio Kiro (tatua mitiririko iliyoharibika) |
| `KIRO_CREDIT_PRICE_USD` | `0.02` | USD kwa mkopo wa Kiro ; hubadilisha salio la `meteringEvent` kuwa gharama halisi ya kila ombi |
| `KIRO_REQUIRE_CREDITS` | `false` | Imeshindwa jibu Kiro ambalo linaripoti kwamba hakuna kipimo cha mkopo badala ya kurekodi bila malipo |
| `QODER_USER_AGENT` | `Qoder-Cli` | Wakati Qoder CLI inasasishwa |
| `CURSOR_USER_AGENT` | `Cursor/3.3` | Wakati Cursor inasasishwa |
> [!TIP]
> Unaweza kuongeza ubatilishaji wa Wakala wa Mtumiaji kwa** yoyote** mtoa huduma kwa kutumia muundo `{PROVIDER_ID}_USER_AGENT`. Mtekelezaji huunda kwa nguvu jina la env var.
---
## 13. CLI Utangamano wa Alama za Kidole
Inapowashwa, OmniRoute hupanga upya vichwa vya HTTP na sehemu za mwili JSON ili kuendana na sahihi halisi ya zana rasmi CLI. Hii inapunguza hatari ya kuripoti akaunti huku ukihifadhi proksi yako IP.
**Chanzo:** `open-sse/config/cliFingerprints.ts`, `open-sse/executors/base.ts`
### Kwa Mtoa huduma
| Inaweza kubadilika | Uwezeshaji | Athari |
| ------------------------ | ---------- | ------------------------------------------ |
| `CLI_COMPAT_CODEX` | `=1` | Saini ya ombi la Mimics Codex CLI |
| `CLI_COMPAT_CLAUDE` | `=1` | Mimics Claude Sahihi ya ombi la Msimbo |
| `CLI_COMPAT_GITHUB` | `=1` | Saini ya ombi la Mimics GitHub Copilot |
| `CLI_COMPAT_ANTIGRAVITY` | `=1` | Sahihi ya ombi la Mimics Antigravity |
| `CLI_COMPAT_CURSOR` | `=1` | Sahihi ya ombi la Mimics Cursor |
| `CLI_COMPAT_KIMI_CODING` | `=1` | Mimics Kimi sahihi ya ombi la Usimbaji |
| `CLI_COMPAT_KILOCODE` | `=1` | Sahihi ya ombi la Msimbo wa Kilo wa Mimics |
| `CLI_COMPAT_CLINE` | `=1` | Sahihi ya ombi la Mimics Cline |
### Ulimwenguni
| Inaweza kubadilika | Uwezeshaji | Athari |
| ------------------ | ---------- | --------------------------------------------------------------------- |
| `CLI_COMPAT_ALL` | `=1` | Washa uoanifu wa alama za vidole kwa** zote** watoa huduma mara moja. |
### Kimi Coding CLI utambulisho hubatilisha
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------- | ---------------------------- | ---------------------------------------- | --------------------------------------------------------------------- |
| `KIMI_CLI_VERSION` | `1.36.0` | `src/lib/oauth/providers/kimi-coding.ts` | Batilisha toleo la Kimi CLI lililotumwa wakati wa simu OAuth/API. |
| `KIMI_CODING_DEVICE_ID` | _(chaguo-msingi iliyonaswa)_ | `src/lib/oauth/providers/kimi-coding.ts` | Batilisha kifaa cha Kimi ID kilichochukuliwa katika vichwa vya mteja. |
> [!NOTE]
> Kipengele hiki hufanya kazi pamoja na kubatilisha Wakala wa Mtumiaji (§12). Mfumo wa alama za vidole hushughulikia kuagiza vichwa na kuagiza sehemu ya mwili, huku Wakala wa Mtumiaji anabatilisha kushughulikia mfuatano mahususi UA. Zote mbili zinaweza kuwezeshwa kwa kujitegemea.
---
## 14. API Watoa Huduma Muhimu
API kwa watoa huduma wanaotumia uthibitishaji wa moja kwa moja.** Mpangilio unaopendekezwa:** Dashibodi → Watoa huduma → Ongeza Ufunguo wa API.
Kuweka kupitia vigezo vya mazingira ni mbadala wa Docker au upelekaji usio na kichwa.
Muundo unaotambulika: `{PROVIDER_ID}_API_KEY`
| Inaweza kubadilika | Mtoa huduma |
| ------------------ | --------------------------------------------------------- |
| `DEEPSEEK_API_KEY` | DeepSeek |
| `NVIDIA_API_KEY` | NVIDIA NIM |
| `JINA_AI_API_KEY` | Jina AI (Msingi API + Marudio ya Kisomaji) |
| `JINA_API_KEY` | Jina AI (pak kwa `JINA_AI_API_KEY`) |
| `GEMINI_API_KEY` | Gemini (Google AI Studio) inapachika + mazungumzo mbadala |
| `GOOGLE_API_KEY` | Gemini (pak kwa `GEMINI_API_KEY`) |
> [!NOTE]
> Maingizo tuli ya `${PROVIDER}_API_KEY` ya Groq, xAI, Mistral, Kushangaa, Together AI, Fireworks, Cerebras, Cohere, Nebius na Qianfan yaliondolewa katika v3.8.0 kwa sababu muda wa utekelezaji hauwasomei tena — watoa huduma hao wanatumia encrypted kwenye DB/ `data/provider-credentials.json`. Tazama sehemu ya _Audit: Removed / Dead Variables_ chini ya hati hii kwa njia ya uhamiaji.
> [!TIP]
> Vifunguo vilivyowekwa kupitia Dashibodi huhifadhiwa kwa njia fiche katika SQLite na huchukua nafasi ya kwanza kuliko viasili vya mazingira.
>
> **Jina:** `jina-ai/…` upachikaji, panga upya, ainisha, sehemu, na `jina-search` fanya** sivyo** toza kitufe cha cluster env wakati dashibodi `jina-ai` (au `jina-reader` iliyoshirikiwa) muunganisho upo — `getProviderCredentials` ni kujaza kwanza. `JINA_AI_API_KEY` / `JINA_API_KEY` hutumika tu wakati hakuna ufunguo wa dashibodi unaoweza kutumika. Rekodi za simu zinahusisha mrejesho wa env kama `connection_id=env:JINA_AI_API_KEY`. Kadi ya Kisomaji (`jina-reader`, `r.jina.ai`) haitumiki kamwe `/v1/embeddings` au `/v1/rerank`.
>
> **Gemini:** `gemini/gemini-embedding-2` (alias `google/gemini-embedding-2`) hutumia muunganisho wa dashibodi `gemini` kwanza. `GEMINI_API_KEY` / `GOOGLE_API_KEY` hutumika tu wakati hakuna ufunguo wa dashibodi unaotumika. Rekodi za simu zinahusisha mrejesho wa env kama `connection_id=env:GEMINI_API_KEY`. Trafiki asili ya modi nyingi hutumia `x-goog-api-key` dhidi ya `:embedContent` / `:batchEmbedContents` — N OpenAI `input` vipengee kuwa vekta N.
---
## 15. Mipangilio ya Muda wa Kuisha
Thamani zote ziko ndani** milisekunde** . Azimio la kati katika `src/shared/utils/runtimeTimeouts.ts`.
### Utawala wa Muda Umeisha
```
REQUEST_TIMEOUT_MS (global override)
├─→ FETCH_TIMEOUT_MS (upstream provider calls, default: 600000)
│ ├─→ FETCH_HEADERS_TIMEOUT_MS (inherits from FETCH_TIMEOUT_MS)
│ ├─→ FETCH_BODY_TIMEOUT_MS (inherits from FETCH_TIMEOUT_MS)
│ ├─→ TLS_CLIENT_TIMEOUT_MS (inherits from FETCH_TIMEOUT_MS)
│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (independent, default: 10000)
│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (independent, default: 15000)
│ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MS (independent, default: 0 = off, suggested: 30000)
│ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS (independent, default: 2)
│ ├── FETCH_CONNECT_TIMEOUT_MS (independent, default: 30000)
│ └── FETCH_KEEPALIVE_TIMEOUT_MS (independent, default: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (inherits from REQUEST_TIMEOUT_MS, default: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (independent; unset: 1260000, raised by declared budgets; set: hard cap; 0 disables)
├─→ STREAM_READINESS_TIMEOUT_MS (inherits from REQUEST_TIMEOUT_MS, default: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (caps adaptive readiness extensions, default: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (inherits from REQUEST_TIMEOUT_MS, default: 30000)
├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (derived, default: 300000)
├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (default: 60000)
├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (default: 5000)
└── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (default: 0 = disabled)
```
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| ------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | _(haijawekwa)_ | Njia ya mkato ya — hubatilisha chaguo-msingi za `FETCH_TIMEOUT_MS` na `STREAM_IDLE_TIMEOUT_MS`. |
| `FETCH_TIMEOUT_MS` | `600000` | Muda wa ombi la HTTP kuisha kwa simu za mtoaji wa mkondo. |
| `STREAM_IDLE_TIMEOUT_MS` | `600000` | Kimya cha juu zaidi kati ya baiti mbichi za juu kabla ya kuavya mimba. Miundo mirefu ya kufikiri mara chache husitisha > 90s. |
| `STREAM_ACTIVE_TIMEOUT_MS` | `1260000` | Upeo wa juu wa maisha ya mtiririko SSE ; haiweki upya kwenye baiti za juu na haitegemei `REQUEST_TIMEOUT_MS`. Isipowekwa, chaguo-msingi ni `timeoutMs` kubwa zaidi kwa kila modeli kwenye sajili (1200000, Codex) pamoja na ukingo 60000, na shabaha inayotangaza bajeti ndefu (muunganisho `timeoutMs`, kisha kwa modeli, kisha kiwango cha mtoa huduma, kwa mfano GLM ya 30000000 badala yake inapata bajeti hiyo 600). Thamani chanya ni kikomo kwa kila lengo ambalo bajeti iliyotangazwa haiwezi kuongeza. Weka `0` ili kuzima kwa kila lengo. |
| `OMNIROUTE_SSE_COMMENTS` | _(walemavu)_ | Iwapo OmniRoute inaweza kutoa mistari ya maoni ya `:` SSE km mapigo ya moyo `: keepalive` na trela za metadata `x-omniroute-*` ). Imezimwa kwa chaguo-msingi (#10524) kwa kuwa wateja madhubuti wanaooana na OpenAI JSON.changanua kila mstari SSE na uvuruge maoni `:` ; mapigo ya moyo `data:` hayaathiriwi. Weka `on`/`true`/`1`/`yes` ili kuchagua kuingia tena. Inatumiwa na `open-sse/utils/sseHeartbeat.ts`. |
| `SSE_COALESCE_MS` | `0` (zimezimwa) | Jijumuishe: unganisha matukio yanayofuatana Claude `content_block_delta` (kiashiria sawa cha kuzuia na aina ya delta) inayotumwa kwa wateja Claude, ikisafisha angalau kila N ms. Bila hasara; `signature_delta` na matukio ya mpaka hayajaunganishwa kamwe. Inatumika kwa kila aina ya delta isipokuwa kigezo cha kila aina hapa chini kimewekwa. Inatumiwa na `open-sse/utils/sseDeltaCoalesce.ts`. |
| `SSE_COALESCE_THINKING_MS` | `0` (zimezimwa) | Ubatilishaji wa kila aina wa `SSE_COALESCE_MS` kwa `thinking_delta`. |
| `SSE_COALESCE_TEXT_MS` | `0` (zimezimwa) | Ubatilishaji wa kila aina wa `SSE_COALESCE_MS` kwa `text_delta`. |
| `SSE_COALESCE_INPUT_JSON_MS` | `0` (zimezimwa) | Ubatilishaji wa kila aina wa `SSE_COALESCE_MS` kwa `input_json_delta`. |
| `SSE_FRAME_COALESCE_MS` | `0` (zimezimwa) | Jijumuishe: fremu za bechi SSE zinazosambazwa ndani ya N ms hadi maandishi moja kwa mteja. Fremu ya kwanza na fremu za mwisho (`[DONE]`, `message_stop`, `error`, `response.completed`/`failed`/`incomplete`) hazicheleweshwi kamwe; kwa kuunganishwa, ITL hupima mapengo ya kundi. Inatumiwa na `open-sse/utils/sseOutputSink.ts`. |
| `SSE_STALL_WATCHDOG` | `timer` | Utekelezaji wa uangalizi wa Byte-stall kwa majibu yaliyotiririshwa. `timer` huweka tena kipima saa kimoja kwa kila sehemu ya juu ya mto (moto unaowaka haswa katika bajeti ya duka); `interval` huweka hundi moja kwa kila mtiririko na kipindi `clamp(budget/4, 1s, 5s)`, kwa hivyo duka huwaka ndani ya kipindi cha + cha bajeti. Inatumiwa na `open-sse/utils/streamStallWatchdog.ts`. |
| `STREAM_READINESS_TIMEOUT_MS` | `80000` | Muda wa kupokea tukio la kwanza lisilo la ping SSE. Inarithi `REQUEST_TIMEOUT_MS` wakati imewekwa. |
| `STREAM_READINESS_MAX_TIMEOUT_MS` | `180000` | Dirisha la juu zaidi linaloweza kubadilika la utayari wa tukio la kwanza kwa maombi makubwa, mazito ya zana, au yenye sababu za juu za utiririshaji. |
| `OMNIROUTE_AGENT_GOAL_POLICY_ENABLED` | `true` | Kill-switch kwa `/goal` heuristic. Weka `false`/`0`/`off` ili kuzima kikamilifu muda wa utayari wa — na urejeshaji wa mtiririko haujainuliwa kamwe kwa ombi body/headers, kupunguza upanuzi wa muda unaodhibitiwa na mteja. |
| `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | Dirisha la juu zaidi la utayari wa tukio la kwanza kwa wakala wa `/goal` aliyegunduliwa huendeshwa au maombi yanayolazimishwa na `x-omniroute-agent-goal`. |
| `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | Washa urejeshaji wa mapema wa mtiririko kiotomatiki kwa utendakazi wa wakala `/goal` uliotambuliwa. Weka `false`/`0`/`off` ili kuzima kuchagua kuingia kwa lengo mahususi. Hii inaweza tu kurejesha ADD juu ya — chaguo-msingi ya opereta haiwahi kubatilisha chaguo dhahiri la kutoka kwa mipangilio ya `STREAM_RECOVERY_ENABLED`/DB. |
| `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | Futa matukio `responses.stream()` `codex.*` SSE `codex.rate_limits` SDKOpenAI ON (#11014). Weka `0`/`false`/`no`/`off` ili kuzisambaza. |
| `OMNIROUTE_CODEX_APPSERVER_WS` | _(haijawekwa)_ | Jijumuishe katika usafiri wa seva ya programu Codex. WebSocket mwisho (`ws://`/`wss://`) ya kando ya `codex app-server` ya ndani. Inapowekwa pamoja na tokeni, maombi Codex huelekezwa juu ya JSON-RPC hadi kwenye gari la kando badala ya HTTP Majibu API. Pia muunganisho unaoweza kutatuliwa kupitia `providerSpecificData.codexAppServerUrl`. Inatumiwa na `open-sse/executors/codex/appServerConfig.ts`. |
| `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(haijawekwa)_ | Tokeni capability/bearer ya ndani iliyowasilishwa kwa seva ya programu. Kubatilisha kwa muunganisho: `providerSpecificData.codexAppServerToken`. |
| `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(haijawekwa)_ | Njia ya faili iliyo na ishara ya uwezo wa seva ya programu (kutoka `codex app-server --ws-token-file`). Inatumika wakati `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` haijawekwa. Kubatilisha kwa muunganisho: `providerSpecificData.codexAppServerTokenFile`. |
| `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | Saraka ya kufanya kazi zamu ya seva ya programu huingia. Ubatizo wa kila muunganisho: `providerSpecificData.codexAppServerCwd`. |
| `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(haijawekwa)_ | Sera ya uidhinishaji iliyopitishwa kwa zamu ya seva ya programu (km `never`, `on-request`). Kubatilisha kwa muunganisho: `providerSpecificData.codexAppServerApprovalPolicy`. |
| `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(haijawekwa)_ | Sera ya Sandbox iliyopitishwa kwa zamu ya seva ya programu (km `read-only`, `workspace-write`, `danger-full-access`). Ukiondoa mpangilio chaguo-msingi wa mtekelezaji `workspace-write` (ugumu; hapo awali `danger-full-access`). Kubatilisha kwa muunganisho: `providerSpecificData.codexAppServerSandbox`. |
| `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | Idhinisha kiotomatiki vidokezo vya uidhinishaji vya seva ya programu ( Utekelezaji wa command/file/permission kwenye seva pangishi). Vidokezo vya — kwa chaguo-msingi vinakataliwa kiotomatiki; simu za zana za kuunganisha hazijaathiriwa (zinasafiri njia tofauti `item/tool/call` ). Inakubali `true`/`1`/`yes`. Kubatilisha kwa muunganisho: `providerSpecificData.codexAppServerAutoApprove`. |
| `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Muda wa kupokea vichwa vya majibu. |
| `OMNIROUTE_FETCH_START_TIMEOUT_CAP_MS` | `110000` | Upeo wa kusubiri vichwa vya majibu kwenye maombi ya kutiririsha (ms). `0` inalemaza kofia hii; mtoa huduma `fetchStartTimeoutCapMs` anachukua nafasi ya kwanza. |
| `OMNIROUTE_CODEX_IMAGE_RESPONSE_START_TIMEOUT_MS` | `600000` (dakika 10) | Tarehe ya mwisho ya kuanza kujibu (ms) kwa Codex image-generation/edit POSTs iliyolipwa, moja kwa moja na kupitia proksi ya HTTP(S)/SOCKS. Maombi haya huwa hayarudiwi tena baada ya muda usioeleweka wa kuisha au kushindwa kwa mtandao. Relay za kingo (`vercel`/`deno`/`cloudflare`) pia hufanya jaribio moja, lakini weka tarehe yao ya mwisho ya `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS`. |
| `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30s) | Upeo wa kusubiri wa kuanza kwa majibu (ms) kwa kila jaribio la moja kwa moja la bila seva mbadala. Muda wa kuisha hujaribu tena mara moja kwenye tundu jipya; weka `0` kuzima kifunga na kuhifadhi tabia ya hapo awali. |
| `OMNIROUTE_LOCAL_DIRECT_HEADERS_TIMEOUT_MS` | `300000` (dakika 5) | Sakafu ya kujibu (ms) kwa majaribio ya moja kwa moja ya bila seva mbadala ambayo mwenyeji wake lengwa ni private/LAN/loopback (kwa mfano `localhost`, `host.docker.internal`, `192.168.x.x`), kwa hivyo mwanzo baridi Ollama haukatizwi na chaguo-msingi la 30s hapo juu. Inafanya kazi kama sakafu: kusubiri kwa ufanisi ni kubwa zaidi ya thamani hii na `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS`; `0` au thamani batili huondoa sakafu ya ndani. Wapangishi wa mbali hawajaathiriwa. |
| `OMNIROUTE_DIRECT_HEADERS_VOLUME_ADAPTIVE` | `1` | Inua kidirisha cha kuanza kwa majibu ya moja kwa moja kwa kiwango cha upakiaji wa ombi: miili zaidi ya 512 KB pata × 2, zaidi ya 2 MB × 3, iliyofungwa kwa sekunde 180 na kamwe isishushe sakafu ambayo tayari iko juu zaidi (mendeshaji afute au sakafu local/LAN juu). Miktadha mikubwa hujaza mapema sawia na saizi ya ingizo bila kichagua kisababu cha dari ya kufikiria kuwasha, kwa hivyo kidirisha bapa kikata mitiririko yenye afya ya kujaza polepole kwenye sakafu haswa. Weka `0`/`false`/`off` kubandika tabia tambarare. |
| `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (dakika 10) | Dari (ms) kwa jaribio la RETRY -soketi mpya baada ya muda wa kuanza kwa majibu ya pamoja-jaribio la pamoja hapo juu (#13703). Inatumika tu wakati mpigaji simu tayari ameambatisha mawimbi yake ya makataa (muunganisho uliotatuliwa/muundo/mtoa huduma/`FETCH_TIMEOUT_MS` kuteleza); ishara hiyo ndiyo inayofungamana na kweli na huwaka kwanza katika njia iliyokusudiwa, kwa hivyo hii ni sehemu ya nyuma ya ukarimu badala ya kofia bapa — bila hiyo, jaribio lilitumia tena dirisha fupi fupi `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` kama jaribio la pamoja na mifano ya hoja ya polepole ya TTFB ya 504'd. Hairuhusiwi kamwe chini ya sakafu ya gorofa hapo juu; mpigaji simu anapotoa ishara ya tarehe ya mwisho kabisa, kujaribu tena huweka sakafu tambarare bila kubadilika. |
| `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | Wakati wa kupokea mwili wa majibu kamili. |
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Muda wa uanzishaji wa TCP umeisha. |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Muda wa kuisha kwa soketi bila kufanya kitu umeisha. |
| `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | muda wa proksi ya TLS (wreq-js) umeisha. |
| `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | Huweka muda-hadi-kwanza-baiti kwenye wreq-js TLS-fingerprint ya usafiri mahususi; `TLS_CLIENT_TIMEOUT_MS` pekee haiwezi kushika mwili uliokwama kwani hutatuliwa mara tu vichwa vinapofika (#12656). Muda wa kuisha hughairi kisomaji cha wreq na kurudi kwenye kisambazaji direct/proxy ; `0` inalemaza walinzi. |
| `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | OpenCode kitekelezaji pekee, na wakati tu bendera ya kipengele cha `OPENCODE_RESPONSES_STALL_ROTATION` imewashwa (chaguo-msingi imezimwa): huweka muda wa kusubiri kwa baiti ya kwanza ya jibu la Majibu yaliyotiririshwa baada ya vichwa vyake (#13484). Mtiririko wa Majibu hufungua kwa `response.created`, kwa hivyo ukimya kupita dirisha hili ni kiziwi: akaunti imepozwa na ombi huzungushwa hadi akaunti inayofuata mara moja; duka la pili linashindwa haraka. `0` huzima mlinzi hata ikiwa imewasha bendera. |
| `OPENCODE_RESPONSES_HEADERS_WAIT_MS` | `0` (zimezimwa = ) | OpenCode kitekelezaji pekee: huweka mipangilio ya kusubiri vichwa vya majibu vya juu kwenye simu ya Majibu iliyotiririshwa wakati akaunti nyingine bado inapatikana — ombi lililowekwa kwenye foleni huacha kusubiri na kuendelea badala ya kushikilia dirisha kamili la vichwa. Simu za Majibu zinazotiririshwa pekee ndizo zinazoathiriwa (mtiririko wa Majibu hufungua kwa `response.created`, kwa hivyo kimya kuna foleni, si kizazi); ukamilishaji wa gumzo na simu zisizotiririshwa hazijaguswa, na dirisha hufupisha tu dari madhubuti ya kuanza kuchota, kamwe haiioni. Thamani iliyopendekezwa wakati wa kuwezesha: `30000`. `0` inalemaza. |
| `OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS` | `2` | OpenCode kitekelezaji pekee: ni mara ngapi kwa kila ombi ambalo vichwa vya kusubiri vilivyofungwa hapo juu vinaweza kuhamia kwenye akaunti inayofuata. Akaunti ya mwisho iliyobaki huweka dirisha kamili la vichwa. |
| `OPENCODE_PARK_AND_RESUME` | `false` | OpenCode kitekelezaji pekee: simamisha ombi kwa mpigo wa moyo baada ya sekunde 429 zinazorudiwa (au alama mpya ya pool-strain), kisha cheza tena mguu mmoja uliofungwa wa hadi akaunti 3 mfululizo badala ya kupeperusha meli nzima (#13924). Imezimwa kwa chaguo-msingi: kila 429 huzungushwa hadi kwenye akaunti ifuatayo sawasawa na hapo awali. |
| `OPENCODE_PARK_REPLAY_SERVE_SETASIDE` | `false` | OpenCode kitekelezaji pekee: wakati kila akaunti iliyo tayari chini-tayari katika mguu wa kucheza-rudiwa-na-rejesha inawekwa kando na kumbukumbu ya kukataa seva mbadala, zihudumie hata hivyo badala ya kucheza tena chochote (#14851, ufuatiliaji hadi #14750). Imezimwa kwa chaguo-msingi: mguu wa kucheza tena hauna kitu katika hali hiyo, kama hapo awali #14750. |
| `STREAM_READINESS_STALL_RETRY` | `false` | Gumzo la kutiririsha pekee: wakati shirika la kwanza la mkondo linaposimama kabla ya kutoa tukio linaloweza kutumika, toa jaribio la pili lenye mipaka kupitia njia sawa ya uelekezaji kwa bajeti sawa ya utayari na bila adhabu ya akaunti. Imezimwa kwa chaguo-msingi: kikundi cha kwanza kilichokwama kinashindwa ombi bila kujaribu tena. |
| `OPENCODE_POOL_RESELECT` | `false` | OpenCode kitekelezaji pekee: baada ya 429 kutoka kwa mtoa huduma aliye na ndoo kwenye akaunti isiyo na seva mbadala chini ya muktadha wa bwawa la mazingira, uliza kundi la muunganisho kwa mshiriki mwingine kwa jaribio linalofuata badala ya kujaribu tena anwani sawa. Maagizo, kamwe hayajumuishi: bwawa lililochoka huhifadhi tabia ya sasa. Imezimwa kwa chaguo-msingi: kila 429 huzungushwa hadi kwenye akaunti ifuatayo sawasawa na hapo awali. |
| `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(haijawekwa)_ | OpenCode kitekelezaji pekee: kubatilisha njia ya alama ya pool-strain iliyosomwa kabla ya kuegesha (`{since, reason, ttl_s}`, chaguo-msingi `/tmp/opencode-pool-strain.json`, #13924). Viwanja vya alama mpya bila kusimulia tena; haipo au iliyochakaa huanguka nyuma kwenye kaunta iliyopasuka. |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | Muda wa kuruka wakala umekwisha kwa maombi ya daraja la `/v1`. |
| `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Elekeza kitekelezaji cha kuleta wavuti cha Firecrawl kwa mfano unaopangishwa mwenyewe (API key hiari off-cloud). |
| `FIRECRAWL_TIMEOUT_MS` | `30000` | Muda wa ombi umekwisha kwa mtekelezaji wa uchotaji wa mtandao wa Firecrawl. |
| `TAVILY_BASE_URL` | _(haijawekwa)_ | URL za msingi kwa mchota mgao wa Tavily `/usage` (Mipaka ya Mtoa huduma); kupuuzwa wakati inaelekeza `api.tavily.com`. Haijawekwa hurejea kwenye msingi wa muunganisho URL. |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `300000` | Muda wa ombi la seva kwa jumla umekwisha kwa daraja. |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Ni wakati wa kutuma vichwa vya majibu kupitia daraja. |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Muda wa kuisha bila kufanya kitu kwenye daraja umekwisha. |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Muda wa kuisha kwa tundu ghafi ( = 0 imezimwa). |
| `SHUTDOWN_TIMEOUT_MS` | `30000` | Kipindi cha neema kwenye SIGTERM/SIGINT kabla ya kuondoka kwa nguvu. |
| `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | Njia mbadala inayotumiwa na `src/shared/utils/fetchTimeout.ts` wakati `FETCH_TIMEOUT_MS` haijawekwa. |
| `OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS` | `8000` | Muda umeisha (ms) wa mipangilio ya awali ya `validationRead` na `modelsProbe` katika `src/shared/network/safeOutboundFetch.ts`. Inua kwa ncha za polepole (Cerebras, Cloudflare AI, Groq) ili kuzuia kugonga kati ya active/error kwenye dashibodi. Hurudi hadi 8000ms kwa thamani zisizo sahihi (< 1000) au zisizo za nambari. |
| `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | Muda mahususi wa kuleta urejeshaji umekwisha katika `open-sse/utils/proxyFetch.ts` (#9158). Relay iliyoning'inia lazima itashindwa kabla ya muda wa client/agent kuisha (~ 30s) ili wapigaji waone hitilafu maalum ya relay badala ya kuisha kwa muda wa kawaida wa mkondo wa juu. Imefungwa kwa `29000` kwa hivyo huwaka kwanza kila wakati. |
| `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | Urudiaji ulioshirikiwa wa kujaribu tena kwa direct/relay/proxy jaribu-mara moja njia katika `open-sse/utils/proxyFetch.ts` (#9158). `0` = jaribu tena mara moja. |
| `OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS` | `60000` | Muda wa ombi la asili la wreq-js umekwisha (`claudeTlsClient.ts`). |
| `OMNIROUTE_CLAUDE_TLS_GRACE_MS` | `10000` | Neema JS kabisa ya makataa iliyoongezwa juu ya muda wa kuisha asili. |
| `OMNIROUTE_PPLX_TLS_TIMEOUT_MS` | `30000` | Muda wa ombi la asili la wreq-js umekwisha (`perplexityTlsClient.ts`). |
| `OMNIROUTE_PPLX_TLS_GRACE_MS` | `10000` | Neema JS kabisa ya makataa iliyoongezwa juu ya muda wa kuisha asili. |
| `OMNIROUTE_PPLX_SEARCH_HINT` | `0` (zimezimwa) | Huongeza "Una utafutaji wa ndani wa wavuti. Jibu maswali moja kwa moja kwa kutumia matokeo ya utafutaji." kwa ujumbe wa mfumo wa mpigaji (`perplexity-web/protocol.ts`). Hutafuta kwa chaguo-msingi Utata wa —, na sentensi huvuja katika majibu kama maoni ya meta kwa wateja wa usimbaji. Weka `1`/`true`/`yes`/`on` kurejesha. |
| `OMNIROUTE_GROK_TLS_TIMEOUT_MS` | `60000` | Muda wa ombi la asili la wreq-js umekwisha (`grokTlsClient.ts`). |
| `OMNIROUTE_GROK_TLS_GRACE_MS` | `10000` | Neema JS kabisa ya makataa iliyoongezwa juu ya muda wa kuisha asili. |
| `OMNIROUTE_NOTION_TLS_TIMEOUT_MS` | `30000` | Muda wa ombi la asili la wreq-js umekwisha (`notionTlsClient.ts`); `notion-web` inainua kwa kila ombi kwa `180000` kwa vizazi virefu. |
| `OMNIROUTE_NOTION_TLS_GRACE_MS` | `10000` | Neema JS kabisa ya makataa iliyoongezwa juu ya muda wa kuisha asili. |
| `OMNIROUTE_BROWSER_POOL` | `on` | Dimbwi la kivinjari Playwright lililoshirikiwa kwa gumzo la vidakuzi vya wavuti linaloungwa mkono na kivinjari (`browserPool.ts`); weka `off` kuzima. |
| `OBSCURA_BIN` | `auto-detect` | Njia ya `obscura` binary inayotumiwa kama injini ya msingi ya kivinjari na kitekelezaji cha Cloudflare Playground (`open-sse/services/obscura.ts`); hugunduliwa kiotomatiki kutoka kwa mfumo PATH wakati haijawekwa. |
| `OBSCURA_CDP_ENDPOINT` | _(haijawekwa)_ | Elekeza kwenye Obscura (`http://host:port`) inayoendeshwa tayari badala ya kuibua; moduli haimiliki mchakato huo (`open-sse/services/obscura.ts`). |
| `OBSCURA_PORT` | `random free port` | Bandari ya wazi kwa `obscura serve` iliyozaa; bandari ya bure huchaguliwa kiotomatiki wakati haijawekwa (`open-sse/services/obscura.ts`). |
| `WEB_COOKIE_USE_BROWSER` | `0` | Chagua ombi la gumzo la vidakuzi vya wavuti kwenye njia inayoungwa mkono na kivinjari (`browserBackedChat.ts`); `1` kuwezesha. |
| `KIMI_WEB_BASE_URL` | `https://www.kimi.ai` | Msingi URL kwa Kimi Web (kimataifa kimi.ai Connect-RPC) wasii (`kimi-web.ts`); kubatilisha kwa ncha za mirror/proxy pekee. |
| `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Mwisho kamili wa gumzo kwa mtekelezaji wa Kimi Web (`kimi-web.ts`). |
| `OMNIROUTE_LOGIN_BROWSER_PATH` | _(imegunduliwa kiotomatiki)_ | Njia ya Chrome/Edge ya mfumo inayoweza kutekelezwa kwa ajili ya kuingia kwa kivinjari shirikishi cha Adobe Firefly (`adobeFireflyBrowserLogin.ts`); hubatilisha utambuzi wa kiotomatiki kwa kila OS. |
| `OMNIROUTE_STANDALONE_DIR` | _.jenga/ pato la pekee_ | Ubatizo wa muda wa mpangilio wa saraka ya pato inayotumiwa na hatua ya uwekaji wa baada ya kujenga (`scripts/build/colocate-standalone.mjs`); kujenga zana, sio wakati wa kukimbia. |
Majaribio ya shabaha ya mseto yanarithi muda uliotatuliwa wa ombi la juu (`FETCH_TIMEOUT_MS`, au `REQUEST_TIMEOUT_MS` inapotoa chaguomsingi la kuleta). Weka `targetTimeoutMs` katika mseto, chaguomsingi za kuchana, au ubatilishaji wa mtoa huduma ili tu kufanya urejesho wa mseto kwa haraka; thamani zilizo juu ya muda wa kuisha kwa mkondo wa sasa zimewekwa kwenye muda wa kuisha wa juu wa mkondo.
`comboTimeoutMs` ni bajeti tofauti ya saa ya ukutani ya mchanganyiko mzima katika malengo yaliyoshindwa. Iache ikiwa haijawekwa au `0` ili kuweka marudio bila kikomo (baridi yenye msimbo mgumu ya dakika 10 katika `comboPredicates.ts` bado inatumika). Thamani chanya inachukua nafasi ya wavu hiyo wa usalama kwa mchanganyiko. Weka `comboTimeoutMs` kwa muda mrefu kuliko `targetTimeoutMs` ili kushindwa bado kuna wakati baada ya lengo la polepole la kwanza.
### Vizingiti vya Kuvunja Mzunguko
Urekebishaji wa kivunja mzunguko wa mzunguko wa kiwango cha mtoaji. Chaguomsingi huonyesha thamani zilizopimwa zilizotumika tangu v3.6 kwa miunganisho + 500.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------------------------- | ------------ | ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD` | `8` | `open-sse/config/constants.ts` | Kiwango cha kutofaulu mfululizo kwa watoa huduma OAuth kabla ya mvunjaji safari. |
| `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS` | `60000` | `open-sse/config/constants.ts` | Weka upya dirisha (ms) la kivunja mtoa huduma wa OAuth. |
| `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD` | `12` | `open-sse/config/constants.ts` | Kiwango cha kutofaulu mfululizo kwa watoa huduma wa ufunguo wa API. |
| `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | Weka upya dirisha (ms) la kikatiza huduma cha ufunguo wa API. |
| `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Kiwango cha kutofaulu mfululizo kwa watoa huduma wa ndani (Ollama, LM Studio, ...). |
| `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS` | `15000` | `open-sse/config/constants.ts` | Weka upya dirisha (ms) kwa kivunja mtoa huduma wa ndani. |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD` | `10` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: hitilafu ndani ya dirisha kabla ya mtoa huduma mzima OAuth kuingia katika hali tulivu. |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS` | `900000` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: dirisha la kuhesabu kushindwa (ms) kwa watoa huduma OAuth. |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: kupoeza (ms) mara tu kizingiti cha mtoaji OAuth kinapofikiwa. |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD` | `5` | `open-sse/config/constants.ts` | mtoaji wa OAuth anaingia DEGRADED kwa kutofaulu kwa hii nyingi. |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER` | `8` | `open-sse/config/constants.ts` | mtoa huduma wa OAuth max resetTimeout kizidishi cha upanuzi. |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT` | `2` | `open-sse/config/constants.ts` | mtoaji wa OAuth anaongezeka baada ya mizunguko hii mingi iliyo wazi. |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD` | `15` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: hitilafu ndani ya dirisha kabla ya mtoa huduma mzima wa ufunguo wa API kuingia katika hali tulivu. |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: dirisha la kuhesabu kushindwa (ms) kwa watoa huduma wa vitufe vya API. |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: kupunguza (ms) mara tu kiwango cha juu cha mtoaji wa ufunguo wa API kinapofikiwa. |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | Mtoa huduma wa ufunguo wa API huingia DEGRADED kwa hitilafu hizi nyingi. |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | Mtoa huduma wa ufunguo wa API max resetTimeout kizidishi cha upanuzi. |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | Mtoa huduma wa ufunguo wa API huongezeka baada ya mizunguko hii mingi wazi. |
| `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD` | `2` | `open-sse/config/constants.ts` | Kikiukaji cha kiwango cha mtoa huduma: hitilafu kabla ya mtoa huduma mzima wa ndani kuingia kwenye hali tulivu. |
| `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS` | `300000` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: dirisha la kuhesabu kushindwa (ms) kwa watoa huduma wa ndani. |
| `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | Kivunja kiwango cha mtoa huduma: kupunguza (ms) mara tu kizingiti cha mtoa huduma wa ndani kinapofikiwa. |
| `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | Upunguzaji wa vitufe kwa kila kitufe (ms) hutumika kwa kuzungusha kwa vitufe vingi vya API wakati mkondo wa juu wa 429 hauna `Retry-After` (#14573). Thamani zisizo chanya au zisizo za nambari hurudi kwenye chaguo-msingi. |
| `OMNIROUTE_AVALANCHE_PROTECTION_ENABLED` | `false` | `open-sse/services/accountFallback/antiAvalanche.ts` | Jijumuishe katika ulinzi wa kuzuia maporomoko ya theluji: ni `true` tu inayowasha. Ukiwasha, 429 inayotaja kikomo cha tokeni kwa kila dakika (na muktadha-furika 400) husimamisha kushindwa kwa kasi kwenye funguo zilizosalia za mtoaji. Kiasi cha 429 kilichokamilika kinaendelea kutofaulu hata ingawa kidokezo ni kikubwa, na HTTP 413 haiathiriwi (huweka tabia ya #13350 ya kujaribu-kwenye-akaunti nyingine). |
| `OMNIROUTE_AVALANCHE_BURST_COOLDOWN_MS` | `60000` | `open-sse/services/accountFallback/antiAvalanche.ts` | Njia ya kupozea kifani ya kufunga nje (ms) inatumika wakati mlinzi anapowaka, badala ya kufuli kwa njia inayoongezeka. Uwekaji upya wa mkondo wa juu hushinda kila wakati. Thamani zisizo chanya au zisizo za nambari hurudi kwenye chaguo-msingi. |
| `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | Kina cha nyuma ambapo mtoaji wa pini ya akiba ya muktadha anachukuliwa kuwa mbaya kwa muda mrefu na pini hutupwa kwa kushindwa. |
| `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | Dirisha la kuzuia-flap (ms) linalostahimili hali baridi za muda mfupi kabla ya kudondosha pini ya akiba ya muktadha. |
### Matukio
| Mazingira | Usanidi |
| ------------------------------------------- | ---------------------------------------------------------- |
| **Uzalishaji wa msimbo wa muda mrefu** | `REQUEST_TIMEOUT_MS=900000` (dakika 15) |
| **Imefunga jumla ya maisha ya mtiririko** | `STREAM_ACTIVE_TIMEOUT_MS=1260000` (dakika 21) |
| **Kushindwa kwa haraka kwa uzalishaji API** | `API_BRIDGE_PROXY_TIMEOUT_MS=10000` |
| **Mifano ya kufikiri iliyopanuliwa** | `STREAM_IDLE_TIMEOUT_MS=300000` (dakika 5 kati ya vipande) |
---
## 16. Kukata miti
Mfumo wa ukataji miti huandika kwa faili za kumbukumbu za stdout na zilizozungushwa. Usanidi wote unasomwa na `src/lib/logEnv.ts`.
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| ----------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `APP_LOG_LEVEL` | `info` | Kiwango cha chini cha kumbukumbu: `debug`, `info`, `warn`, `error`. |
| `APP_LOG_FORMAT` | `text` | Umbizo la pato: `text` (inaweza kusomeka na binadamu) au `json` (iliyoundwa). |
| `APP_LOG_TO_FILE` | `true` | Andika kumbukumbu za faili pamoja na stdout. |
| `APP_LOG_FILE_PATH` | `logs/application/app.log` | Njia ya faili ya kumbukumbu (inayohusiana na mradi root au `DATA_DIR`). |
| `APP_LOG_MAX_FILE_SIZE` | `50M` | Ukubwa wa juu wa faili kabla ya kuzungushwa. Inakubali: `50M`, `1G`, `512K`, au baiti za kawaida. |
| `APP_LOG_RETENTION_DAYS` | `7` | Siku za kuweka faili za kumbukumbu za programu zilizozungushwa. |
| `APP_LOG_MAX_FILES` | `20` | Upeo wa hifadhi rudufu za faili za kumbukumbu zilizozungushwa. |
| `CALL_LOG_RETENTION_DAYS` | `7` | Siku za kuweka maingizo ya request/call kwenye hifadhidata. |
| `CALL_LOG_MAX_ENTRIES` | `10000` | Ingizo la kumbukumbu ya simu za juu zaidi katika bafa ya kumbukumbu. |
| `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | Safu za juu zaidi katika jedwali la `call_logs` SQLite kabla ya kupogoa. |
| `ENABLE_REQUEST_LOGS` | _(haijawekwa)_ | Lazimisha kuingia au kuzima ombi la kina, ukibatilisha mpangilio wa dashibodi. |
| `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (saa 1) | Umri wa juu zaidi wa maingizo ya kumbukumbu ya ombi la watoto yatima kabla ya kusafisha kumbukumbu. |
| `MAX_PENDING_DETAILS` | `5000` | Upeo wa maelezo yanayosubiri (nambari kamili); kuhesabu kofia: kufagia; byte/map kofia: ingiza. |
| `CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS` | `false` | Hifadhi vipande vya mtiririko kwenye vizalia vya programu vya bomba wakati `call_log_pipeline_enabled=true`. Jijumuishe (`true`) — imezimwa kwa chaguomsingi ili kuhifadhi diski. |
| `CALL_LOG_PIPELINE_MAX_SIZE_KB` | `512` | Upeo wa juu wa ukubwa wa vizalia vya programu katika KB wakati `call_log_pipeline_enabled=true`. |
| `PROXY_LOGS_TABLE_MAX_ROWS` | `100000` | Safu za juu zaidi katika jedwali la `proxy_logs` SQLite kabla ya kupogoa. |
| `PROXY_LOG_INCLUDE_IPS` | `false` | Jumuisha client/egress IPs na viambishi awali vya akaunti katika kumbukumbu za kiweko cha `[ProxyEgress]`. Rekodi za proksi dashboard/database huhifadhi maelezo kamili. |
| `PROXY_LOG_FIRST_CHUNK_TIMING` | `false` | Weka `"true"` au `"1"` ili kurekodi `first_chunk_ms` (tuma anza kwa byte muhimu ya kwanza) kwenye safu mlalo za kumbukumbu za proksi. Hukunja kila sehemu ya juu ya mkondo katika mkondo wa uvivu wa kupita na kuweka viraka safu mara baiti inapofika; imezimwa kwa chaguo-msingi ili majibu yapitie bila kuguswa. |
| `APP_LOG_ROTATION_CHECK_INTERVAL_MS` | `60000` (dakika 1) | Ni mara ngapi `src/lib/logRotation.ts` hukagua tena saizi inayotumika ya faili ya kumbukumbu. |
| `CHAT_LOG_TEXT_LIMIT` | `65536` | Urefu wa juu zaidi wa mfuatano umehifadhiwa katika vizalia vya kumbukumbu vya gumzo (chaguo-msingi 64 KB). |
| `CHAT_LOG_ARRAY_TAIL_ITEMS` | `128` | Idadi ya vipengee vya safu vilivyohifadhiwa kutoka kwenye mkia wakati wa kupunguza mizigo ya kumbukumbu ya gumzo. |
| `CHAT_LOG_MAX_DEPTH` | `6` | Kina cha juu zaidi cha kuweka kiota kabla ya upakiaji wa kumbukumbu ya gumzo kupunguzwa. |
| `CHAT_LOG_MAX_OBJECT_KEYS` | `80` | Vifunguo vya juu zaidi vya kipengee vimebakiwa katika mizigo ya kumbukumbu ya gumzo ( = 0 bila kikomo). |
| `CHAT_LOG_MAX_BODY_KB` | `1024` | Ukubwa wa request/response mzima wa mwili (KB) kabla ya kubadilishwa na muhtasari wazi badala ya kisanii kamili. Inua hii ikiwa mazungumzo marefu ya mawakala yanaonyesha kishikilia nafasi badala ya ujumbe halisi kwenye dashibodi. |
| `CHAT_DEBUG_FILE` | `false` | Wakati ni kweli, `serializeArtifactForStorage` huruka upunguzaji kulingana na ukubwa. Utatuzi pekee. |
---
## 17. Uboreshaji wa Kumbukumbu
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_HEAP_DIAGNOSTICS_ENABLED` | `0` (zimezimwa) | Weka `1` ili kuweka vipimo vya shinikizo la lundo la V8 kutoka `src/lib/healthzLag.ts`. Ukubwa wa kumbukumbu na hesabu ya inflight, usiwahi kuomba maudhui, ufuatiliaji au lundo la picha. Hufanya kazi ndani ya kinasa sauti cha kitanzi cha tukio, kwa hivyo `OMNIROUTE_EVENT_LOOP_STALL_THRESHOLD_MS=0` pia hukizima. |
| `OMNIROUTE_HEAP_DIAGNOSTICS_THRESHOLD_MB` | `900` | Kiwango chanya cha heapUsed (MiB) ambacho huanzisha kumbukumbu ya kujijumuisha. Thamani batili hutumia 900 MiB; ujumbe wa rundo la juu hupunguzwa hadi mara moja kwa sekunde 60. |
| `OMNIROUTE_MEMORY_MB` | _auto_ (chuma tupu);**`1024` kwenye picha Docker** | **Imependekezwa** Docker/standalone V8 kikomo cha lundo (MB). Wakati haijawekwa, imesawazishwa kwa nguvu (~ 35% ya mfumo RAM, imebanwa hadi `[512, 4096]`); `512` ni sakafu tu wakati kumbukumbu kamili haiwezi kusomeka. Kwenye `run-standalone.mjs` (Docker CMD), an** wazi** thamani imeongezwa kama `--max-old-space-size` na** mafanikio** juu ya bendera ya lundo la NODE_OPTIONS inayokinzana (bendera ya mwisho ya V8). `omniroute serve` bado inapendelea lundo la NODE_OPTIONS lililopo (#5238). Usiziweke zote kwa nambari tofauti — mchakato unaweka onyo kwa kutaja thamani zote mbili na mshindi.** Picha rasmi Docker daima huweka `1024`, kwa hivyo urekebishaji haufanyiki hapo.** Wakala wa usimbaji `/v1/responses` anahitaji `8192`-`12288` pamoja na chumba cha kichwa cha kikundi — tazama [Docker Mwongozo — wakati wa utekelezaji RAM](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents). |
| `OMNIROUTE_RSS_PRESSURE_MB` | _auto_ (`max(3072, 2 × OMNIROUTE_MEMORY_MB)`; imezimwa wakati `OMNIROUTE_MEMORY_MB` haijawekwa) | `open-sse/utils/resourcePressure.ts` | Mchakato kamili-RSS fuse (MB) kwa kumbukumbu native/external ambayo V8 `heapUsed` haiwezi kuona; juu yake maombi mapya pata 503 `resource_pressure`. RSS mara chache hushuka baada ya mwiba, kwa hivyo unganisha na `OMNIROUTE_PRESSURE_SELF_RESTART`. |
| `PROMPT_CACHE_MAX_SIZE` | `50` | Maingizo ya haraka ya mfumo yaliyoakibishwa. |
| `PROMPT_CACHE_MAX_BYTES` | `2097152` (2 MB) | Ukubwa wa juu wa akiba ya papo hapo. |
| `PROMPT_CACHE_TTL_MS` | `300000` (dakika 5) | Ingizo la akiba la haraka TTL. |
| `SEMANTIC_CACHE_MAX_SIZE` | `100` | Kiwango cha juu cha halijoto kilichohifadhiwa = 0 majibu. |
| `SEMANTIC_CACHE_MAX_BYTES` | `4194304` (4 MB) | Ukubwa wa juu wa akiba ya kisemantiki. |
| `SEMANTIC_CACHE_TTL_MS` | `1800000` (dakika 30) | Ingizo la akiba ya kisemantiki TTL. |
| `OMNIROUTE_SEMANTIC_CACHE_PRUNE_INTERVAL_MS` | `1800000` (dakika 30) | SQLite muda wa kupogoa. `0` inalemaza uanzishaji na uendeshaji wa mara kwa mara; maadili mengine chini ya `60000` yanarudi kwa chaguo-msingi. Thamani zilizo juu ya `2147483647` ms zinabana hadi ucheleweshaji wa juu zaidi wa kipima muda wa Node, kuepuka kufurika hadi upigaji kura wa 1ms. Kwanza kukimbia baada ya 1s; vipima muda hazijaonyeshwa na uendeshaji hauingiliani kamwe. |
| `OMNIROUTE_SEMANTIC_CACHE_PRUNE_BATCH_SIZE` | `2000` | Safu mlalo kwa SQLite kata DELETE, iliyobandikwa hadi `[100, 50000]`; huleta kitanzi cha tukio kati ya batches. |
| `OMNIROUTE_SEMANTIC_CACHE_PRUNE_MAX_BATCHES` | `50` | Bajeti ya kundi la DELETE iliyoshirikiwa kwa kila muda wa kuisha na pasi za hiari za safu mlalo, zikiwa zimebanwa kwa `[1, 10000]`. Ucheleweshaji unaendelea kwenye uendeshaji wa baadaye. |
| `OMNIROUTE_SEMANTIC_CACHE_MAX_ROWS` | `0` | Kofia ya safu mlalo ya hiari SQLite (`0` = hakuna). Baada ya kufuta `expires_at <=` muhuri wa wakati wa kuanza ISO, ondoa `created_at` kongwe zaidi, kisha `rowid`, ikijumuisha safu mlalo za moja kwa moja, kulingana na bajeti ya kundi iliyoshirikiwa. Hesabu zimepunguzwa hadi nambari kamili (hadi kikomo cha nambari kamili salama). Thamani tupu, zisizo za nambari, zisizo na kikomo au hasi kwa vigeu vyote vinne vya prune hurudi kwenye chaguo-msingi zao; sehemu kuzunguka chini. Kupogoa hakubadilishi TTL, kumbukumbu LRU au tabia ya kache ya vekta. |
| `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | Mizizi ya ndani-corpus ambayo huweka index ya kumbukumbu ya moja kwa moja mara moja (`src/lib/localCorpus/configured.ts`). LRU: kwa kikomo faharasa ya mizizi iliyotumiwa hivi karibuni zaidi huondolewa na kujengwa upya kwenye hoja yake inayofuata. Imefungwa kwa kiwango cha chini cha `1`; thamani isiyo ya nambari inarudi kwa chaguomsingi. |
| `STREAM_HISTORY_MAX` | `50` | Matukio ya juu zaidi ya mtiririko wa hivi majuzi katika bafa ya mwonekano wa moja kwa moja wa Dashibodi. |
| `CONTEXT_LENGTH_DEFAULT` | _(haijawekwa)_ | Ubatilishaji wa urefu wa muktadha wa kimataifa (ishara) kwa kila mtoa huduma ambaye hana mabadiliko ya `CONTEXT_LENGTH_`. Wakati wa kuweka, ni** inachukua nafasi** katalogi, ubatilishaji wa dashibodi na maadili ya usajili kwa watoa huduma hao; wakati haijawekwa, OmniRoute hutumia mnyororo wake uliojengwa ndani, ambao mwisho wake ni `128000`. Angalia [urefu wa muktadha wa kila mtoaji](#per-provider-context-length-context_length_provider). |
| `USAGE_TOKEN_BUFFER` | `100` | Kielelezo cha tokeni cha ziada kimehifadhiwa wakati wa kufuatilia viwango vya utumiaji. |
### Urefu wa muktadha wa kila mtoaji (`CONTEXT_LENGTH_`)
`open-sse/services/contextManager.ts` (`getEnvOverride()` / `resolveTokenLimit()`) pia inasomeka a** kwa kila mtoaji** fomu ambayo jina lake limejengwa kutoka kwa mtoa huduma ID wakati wa utekelezaji, kwa hivyo haiwezi kuorodheshwa safu kwa safu kwenye jedwali hapo juu au katika `.env.example`.
**Jina.** `CONTEXT_LENGTH_`, ambapo `` ni mtoa huduma ID yenye herufi kubwa, na kila herufi nje `A-Z` / `0-9` ikibadilishwa na `_`. Mtoa huduma ID ndiye wa kisheria baada ya azimio la lakabu (sehemu ya `provider` ya mfuatano wa `provider/model` mara lak fupi kutatuliwa). Nodi maalum za OpenAI- au Anthropic-patanifu hutumia nodi zao zinazozalishwa ID, kwa hivyo UUID ni sehemu ya jina la kutofautisha. Thamani ni nambari chanya kamili ya tokeni; kitu kingine chochote (empty, `0`, negative, non-numeric) hakizingatiwi na azimio linaendelea hadi hatua inayofuata.
| Mtoa huduma ID | Jina la kubadilika |
| ----------------------------------------------------------- | -------------------------------------------------------------------------- |
| wakala | CONTEXT_LENGTH_AGENTROUTER |
| openrouter | CONTEXT_LENGTH_OPENROUTER |
| openai-compatible-chat-0f8e2c1a-5b7d-4e3f-9a6c-2d1b8e4f7a90 | CONTEXT_LENGTH_OPENAI_COMPATIBLE_CHAT_0F8E2C1A_5B7D_4E3F_9A6C_2D1B8E4F7A90 |
**Utangulizi.** Kwa jozi ya `provider/model`, hatua ya kwanza inayotoa thamani inashinda:
1. `CONTEXT_LENGTH_` kwa mtoaji huyo.
2. `CONTEXT_LENGTH_DEFAULT` (mazingira ya kimataifa yanapita).
3. Dirisha la kila muundo: ubatilishaji wa muktadha unaoendelea (uliowekwa kwenye dashibodi, au umebandikwa kiotomatiki na kipatanishi cha ugunduzi, angalia `CONTEXT_WINDOW_RECONCILE_INTERVAL`), vinginevyo thamani ya katalogi / models.dev iliyosawazishwa.
4. Usajili wa mtoa huduma `defaultContextLength`.
5. Heuristics ya jina la mfano (`claude` 200000, `gemini` 1000000, `gpt` / `o1` / `o3` / `o4` / `codex` 400000).
6. Chaguo-msingi zilizojumuishwa kwa kila mtoaji, kisha `128000`.
Hatua zote mbili za mazingira zinatumika kwa** mtoa huduma mzima** : kila muundo wa mtoa huduma huyo hupata kikomo sawa, na wanashinda ubatilishaji wa dashibodi ya kila muundo. Wakati muundo mmoja pekee wa mtoa huduma unahitaji dirisha tofauti, tumia ubatilishaji wa kila muundo kwenye dashibodi badala yake.
**Upeo.** Msururu huu huendesha ukaguzi wa dirisha la muktadha wa wakati wa ombi ( `context_length_exceeded` / "Ingizo linazidi dirisha la muktadha" kukataliwa katika `open-sse/handlers/chatCore.ts`), bajeti ya mbano wa papo hapo na vikomo vya muktadha wa mchanganyiko. `context_length` iliyotangazwa na `GET /v1/models` bado inaweza kutoka kwa katalogi au metadata ya usajili na haijahakikishwa kuonyesha ubatilishaji wa mazingira.
**Mfano.** Mtoa huduma ambaye muundo wake unakubali dirisha la tokeni 1,050,000 huku katalogi ikiripoti 128,000:
```dotenv
CONTEXT_LENGTH_AGENTROUTER=1050000
```
Anzisha tena seva baada ya kuibadilisha: thamani inasomwa kutoka kwa mazingira ya mchakato wa seva. Juu ya** programu ya desktop** seva huendesha mchakato wa mtoto na haioni kigeu cha mfumo kilichowekwa baada ya programu kuzinduliwa; weka laini kwenye faili ya `.env` programu hupakia (utaratibu wa utafutaji katika [Mwongozo wa Electron : Tathmini ya faili ya mazingira](../guides/ELECTRON_GUIDE.md#environment-file-lookup) ), kisha uache kabisa na uzindue upya programu.
### Mfinyazo
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| ------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | haijawekwa | Amini mradi `.rtk/filters.json` bila `.rtk/trust.json` heshi. Tumia tu katika maendeleo ya ndani yaliyodhibitiwa. |
### Injini ya Kumbukumbu (mpango 21)
### Gharama ya kitanzi cha tukio ya kumbukumbu, ujuzi, na kuonyesha ishara upya (#10349)
OmniRoute ni** Mchakato wa Node moja** . Kumbukumbu extraction/retrieval, sindano ya ujuzi, na uonyeshaji upya wa tokeni ya mtoa huduma kwenye hilo** kitanzi sawa cha tukio** kama `GET /healthz` na dashibodi. Wao si thread ya mfanyakazi.
| Kazi | Kanuni | Chaguomsingi | Udhibiti wa waendeshaji |
| ------------------------------------ | ---------------------------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Uchimbaji wa kumbukumbu / urejeshaji | `src/lib/memory/` | Dashibodi**memoryEnabled** (chaguo-msingi) | Zima** Mipangilio → Kumbukumbu** . Hakuna swichi tofauti ya env kill zaidi ya kuzima kipengele katika mipangilio. |
| Sindano ya ujuzi | `src/lib/skills/injection.ts` | Dashibodi**skillsEnabled** (chaguo-msingi) | Zima** Mipangilio → Memory/Skills** (`skillsEnabled`). Vifundo vya kisanduku cha mchanga chini ya utekelezaji uliofungwa tu baada ya sindano kuwashwa tayari. |
| Onyesha upya ishara | `src/sse/services/tokenRefresh.ts` | Imewashwa kwa watoa huduma OAuth/web waliounganishwa | Kata muunganisho wa mtoaji au acha tokeni zibaki halali; hakuna `TOKEN_REFRESH=0` env leo. |
Ikiwa `/healthz` ni polepole kwenye kisanduku tulivu, zima ujuzi wa + wa kumbukumbu kwanza, kisha angalia mzigo catalog/compression (#10303, #9685). Vipengele hivi huzaa kwa alama za `await` lakini bado vinashindana kwa uzi mmoja.
Safu ya kupachika, hifadhi ya vekta na vifundo vya kupanga upya kwa mfumo mdogo wa kumbukumbu unaoendelea (`src/lib/memory/`).
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| ------------------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (dakika 5) | TTL kwa akiba ya upachikaji wa kumbukumbu (kwa saini ya source/model/dim ). |
| `MEMORY_EMBEDDING_CACHE_MAX` | `1000` | Maingizo LRU zaidi yamehifadhiwa kwenye akiba ya kupachika. |
| `MEMORY_TRANSFORMERS_MODEL` | `Xenova/all-MiniLM-L6-v2` | HF repo id kwa ajili ya kuchagua kuingia katika `@huggingface/transformers` ya ndani ya bomba la MiniLM (~ 23 MB int8, ~ 400 MB RAM). |
| `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | HF repo id kwa kipachikaji cha jedwali tuli cha potion/Model2Vec. Imepakuliwa kwa uvivu kwenye dir ya kache. |
| `MEMORY_STATIC_CACHE_DIR` | `/embeddings` | Saraka inayotumika kuweka akiba faili za muundo wa potion tuli. Chaguomsingi chini ya `DATA_DIR` wakati haijawekwa. |
| `HF_HUB_ENDPOINT` | `https://huggingface.co` | Batilisha Hugging Face Hub msingi URL unaotumiwa na `staticPotion.ts` (km. sehemu ya mwisho ya kioo kwa uwekaji nafasi za hewa). |
| `MEMORY_VEC_TOP_K` | `20` | Top-K chaguomsingi inayotumiwa na utafutaji wa vekta `sqlite-vec` brute-force ndani `src/lib/memory/vectorStore.ts`. |
| `MEMORY_RRF_K` | `60` | Rasilimali Nafasi Fusion `k` mara kwa mara kwa mseto FTS5 + vekta retrieval (sqlite-vec mapishi). |
| `VECTOR_STORE_DISABLE_VEC` | `false` | Test/diagnostic mshono katika `getVectorStore()` (`src/lib/memory/vectorStore.ts`): wakati `true`, hulazimisha duka la vekta kuwa `null` (huiga mazingira cloud/WASM bila `sqlite-vec`), kudhalilisha urejeshaji kumbukumbu kwa utafutaji wa neno kuu la FTS5. Ondoka bila kuwekwa katika uzalishaji. |
| `NOTION_API_KEY` | _(haijawekwa)_ | API ufunguo wa Notion backend (hutumiwa na `genericBackend.ts` inayojulikana kuweka awali mazingira). |
| `NOTION_API_URL` | `https://api.notion.com/v1` | URL ya msingi kwa Notion API (inaweza kubatilisha kwa mbadala wa Notion zinazojipangisha mwenyewe). |
| `OBSIDIAN_API_KEY` | _(haijawekwa)_ | API ufunguo wa Obsidian Vault backend (unaotumiwa na `genericBackend.ts` inayojulikana kuweka awali ya mazingira). |
| `OBSIDIAN_API_URL` | `http://localhost:27123` | URL ya msingi kwa Obsidian Vault API (inaweza kubatilisha kwa vault ya mbali). |
| `MEMORY_TYPED_DECAY_ENABLED` | `false` | swichi kuu ya uozo wa kumbukumbu iliyoandikwa TV6.** Jijumuishe (chaguo-msingi imezimwa)** — kufagia** hufuta** kumbukumbu zilizoharibika. Ikiwa imezimwa, `access_count`/`last_accessed_at` ni telemetry safi na hakuna chochote kinachofutwa. |
| `MEMORY_TYPED_DECAY_EPISODIC_DAYS` | `30` | TTL (siku) baada ya hapo kumbukumbu `episodic` isiyotumika huharibika. `0` hufanya kinga ya matukio pia. Aina za kudumu (`factual`/`procedural`/`semantic`) daima hazina kinga. Saa ya kuoza inategemea tena `last_accessed_at`. |
| `MEMORY_TYPED_DECAY_ACCESS_IMMUNITY` | `3` | Kumbukumbu iliyodungwa `>=` hii mara nyingi inakuwa kinga dhidi ya kuoza bila kujali aina. `0` inalemaza kinga ya ufikiaji. |
| `MEMORY_TYPED_DECAY_SWEEP_INTERVAL` | `0` (walemavu) | Muda (sekunde) kwa ajili ya kufagia kwa hiari mara kwa mara katika `src/lib/memory/typedDecay.ts`. `0`/unset = hakuna kufagia mara kwa mara. Kujijumuisha mara mbili: pia kunahitaji `MEMORY_TYPED_DECAY_ENABLED=true`. |
| `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(haijawekwa)_ | Vitambulisho vya mtoa huduma vilivyotenganishwa kwa koma (haijalishi) ambavyo vinakubali ujumbe `system`** tu kwa index 0** (`src/lib/memory/injection.ts`). Kwa hizi, sehemu ya kumbukumbu ya safu-salama ya kache-salama si salama katika mazungumzo ya zamu nyingi, kwa hivyo kumbukumbu ni merged/prepended kama ujumbe unaoongoza wa mfumo badala yake. Chaguomsingi hadi `xiaomi-mimo`/`mimo` pekee ; kupanua kwa vipengee vinavyooana na OpenAI vinavyojiendesha vyenyewe (km Qwen3.5 +/3.6) ambayo kiolezo chake cha gumzo kinatekeleza kikwazo sawa cha mfumo mmoja unaoongoza wa ujumbe. |
### Chini-RAM Docker Mfano
`128` ni dashibodi pekee. Maajenti wa usimbaji kwenye lundo hili `FATAL ERROR` wakati wa `/v1/responses` ndefu. Usitumie mfano huu kama lango la Claude/Codex/Grok.
```bash
OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288 # 512 KB
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MB
STREAM_HISTORY_MAX=10
```
---
## 18. Usawazishaji wa Bei
Usawazishaji wa data ya bei ya muundo otomatiki kutoka vyanzo vya nje.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------- | ---------------- | ------------------------ | -------------------------------------------- |
| `PRICING_SYNC_ENABLED` | `false` | `src/lib/pricingSync.ts` | Jijumuishe kusawazisha bei mara kwa mara. |
| `PRICING_SYNC_INTERVAL` | `86400` (saa 24) | `src/lib/pricingSync.ts` | Muda wa kusawazisha kwa sekunde. |
| `PRICING_SYNC_SOURCES` | `litellm` | `src/lib/pricingSync.ts` | Vyanzo vya data vilivyotenganishwa kwa koma. |
---
## Usawazishaji ELO uwanja
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------- | ---------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Usawazishaji wa Ubao wa AI Uwanja wa Mara kwa mara ELO, unaweza kusanidiwa kutoka kwa Alama za Kipengele cha Dashibodi au kwa `false` ili kuchagua kutoka. |
| `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | Fomu ya kiambishi awali inayotumika kwa vitambulisho vya modeli katika `GET /v1/models`. `dual` inatangaza kiambishi awali cha lakabu fupi na kiambishi awali cha mtoa huduma kwa kila modeli (upatanifu wa nyuma — takribani mara mbili ya katalogi); `alias` hutoa kitambulisho kimoja kwa kila modeli; `canonical` hutoa kiambishi awali kamili cha kitambulisho cha mtoa huduma (watoa huduma ambao lakabu yao tayari ni kitambulisho cha kisheria huweka ingizo lao moja). Wateja wanaweza kubatilisha kwa ombi `?prefix=alias`. Angalia [API_REFERENCE](API_REFERENCE.md#model-id-prefixes-prefix). |
| `ARENA_ELO_SYNC_INTERVAL` | `86400` (saa 24) | `src/lib/arenaEloSync.ts` | Muda wa kusawazisha kwa sekunde. |
---
## Mtoa Huduma wa Uwanja wa Michezo PromptQL (Unofficial/Experimental)
Daraja la kipindi la GraphQL lililobuniwa kinyume kwa prompt.ql.app (`src/shared/constants/providers/web-cookie.ts`). Chaguo-msingi zote za hiari za — huelekeza kwenye miisho ya uwanja wa michezo wa umma; kubatilisha tu kwa uwekaji wa self-hosted/alternate PromptQL.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| `PROMPTQL_GRAPHQL_ENDPOINT` | `https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql` | `open-sse/executors/promptql.ts` | GraphQL mwisho kutumika kwa ajili ya shughuli chat/session. |
| `PROMPTQL_CREDITS_ENDPOINT` | `https://data.pro.ql.app/v1/graphql` | `open-sse/executors/promptql.ts`, `open-sse/services/usage/promptql.ts` | GraphQL mwisho hutumika kuuliza salio balance/usage. |
| `PROMPTQL_TOKEN_REFRESH_URL` | `https://auth.pro.ql.app/ddn/project/token` | `open-sse/executors/promptql.ts` | Mwisho hutumika kwa uonyeshaji upya wa tokeni kwa juhudi bora zaidi. |
| `PROMPTQL_POLL_TIMEOUT_MS` | `180000` | `open-sse/executors/promptql.ts` | Muda wa juu zaidi (ms) wa kupiga kura `thread_events` kabla ya kuisha muda. |
---
## HyperAgent Mtoa Wavuti (Unofficial/Experimental)
Daraja la kikao lililobuniwa kinyume cha hyperagent.com (`src/shared/constants/providers/web-cookie.ts`). Hiari — pointi chaguo-msingi kwenye sehemu ya mwisho ya billing/usage ya umma; kubatilisha tu kwa uwekaji wa self-hosted/alternate HyperAgent.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------- | --------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------ |
| `HYPERAGENT_USAGE_URL` | `https://hyperagent.com/api/settings/billing/usage` | `open-sse/services/usage/hyperagent.ts` | Sehemu ya mwisho inayotumika kuleta billing/usage za mikopo. |
---
## Sera ya Bajeti ya Matumizi isiyo na bei
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------ | ------------------------------------------------------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `UNPRICED_USAGE_BUDGET_POLICY` | _(haijawekwa; itashindwa kufungwa isipokuwa chaguo la kutoka kwa boolean kumewashwa)_ | `src/shared/utils/featureFlags.ts` | Vikomo vya daily/weekly USD kwa ufunguo: `fail_closed` huzuia matumizi yasiyo na bei; `count_as_zero` inaihesabu kama $0 huku ikitekeleza matumizi ya bei. Enum (DB kabla ya env) hubatilisha opt-out ya boolean. Thamani batili na kushindwa kwa kuangalia bei kumeshindwa kufungwa. |
| `USAGE_LIMIT_IGNORE_UNPRICED` | `false` | `src/shared/utils/featureFlags.ts` | Chaguo la kutoka kwa uoanifu wa boolean juu: huhesabu matumizi yasiyo na bei kama $0 pekee wakati hakuna sera ya enum iliyo wazi iliyosanidiwa. Bei ya matumizi na utafutaji ambao haujafaulu unasalia kutekelezwa. |
## Viwango vya Matumizi ya Msimbo wa Kilo
Salio la USD la kibinafsi na utafutaji wa matumizi ya Kilo Pass kwa mtoaji wa Misimbo ya Kilo. Hiari — pointi chaguo-msingi kwa umma Kilo API; kubatilisha tu kwa muundo relay/test. Uthibitishaji hutumia tokeni ya ufikiaji ya OAuth iliyopo ya muunganisho.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------ | --------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------- |
| `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | Base URL ilitumika kuleta salio la kibinafsi la Msimbo wa Kilo na matumizi ya Pasi ya Kilo. |
---
## Mtoa Wavuti wa Adobe Firefly (Unofficial/Experimental)
Onyesha upya kipindi kinachoendeshwa na kivinjari kwa mtoa huduma wa wavuti wa Adobe Firefly (`open-sse/services/adobeFireflyBrowserLogin.ts`, `open-sse/services/adobeFireflySession.ts`, `open-sse/services/adobeFireflyClient.ts`). Chaguo-msingi la — la hiari hupangwa kwa usakinishaji wa kawaida wa eneo-kazi.
> **Imeondolewa katika #9255.** Muda wa uendeshaji wa Chrome ulioambatishwa na CDP (adobeFireflyChromeRuntime.ts) ulibadilishwa na huduma ya Playwright ya kuingia kwenye kivinjari, na vifundo vyake havipo tena. Vigeu vya ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, pamoja na ADOBE_FIREFLY_LOGIN_WAIT_MS na ADOBE_FIREFLY_FORTER_WAIT_MS, havisomwi popote katika mpangilio wa codebase — hakuna athari.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------ | -------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Weka kuwa `1` kwa Chrome isiyo na kichwa ya kweli (inayojulikana-iliyovunjika kwa kuzalisha; utatuzi pekee). |
| `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | Kivinjari tendaji chenye joto opt-in/out. `0` huzima joto tendaji (uokoaji wa 408 wa kati bado unatumika). |
| `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | Weka kuwa `0` ili kuzima kuendelea kwa kipindi cha Adobe Firefly kwenye diski. |
| `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(haijawekwa)_ | `open-sse/services/adobeFireflySession.ts` | Pengo la chini (ms) linalotekelezwa kati ya mawasilisho yanayofuatana, na kupuuza chaguo-msingi iliyojumuishwa. |
| `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | _(haijawekwa)_ | `open-sse/services/adobeFireflySession.ts` | Pengo la ziada (ms) limeongezwa baada ya bechi iliyofaulu, ikipita chaguo-msingi iliyojumuishwa. |
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(haijawekwa)_ | `open-sse/services/adobeFireflyClient.ts` | Ucheleweshaji wa msingi (ms) kabla ya kuwasilisha ombi la kizazi, na kubatilisha chaguo-msingi iliyojumuishwa. |
---
## 19. Usawazishaji wa Muundo (Dev)
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------------------- | ---------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MODELS_DEV_SYNC_ENABLED` | _(haijawekwa)_ | `src/lib/modelsDevSync.ts` | Kubatilisha kwa bidii kwa usawazishaji wa bei wa models.dev. Ondoa = honor Settings > AI (`modelsDevSyncEnabled`). `0`/`false`/`off`/`no`** inashinda DB** na kuruka usawazishaji wa mara kwa mara na `getModelsDevPricing()` SQL/JSON scanning (uokoaji wakati dashibodi imebanwa kwenye kitanzi sawa cha tukio). `1`/`true`/`on`/`yes` hulazimisha kusawazisha. Bei save/clear bado inaita `backupDbFile("pre-write")`, ambayo ni no-op chini ya throttle ya dakika 60 au `DISABLE_SQLITE_AUTO_BACKUP`. |
| `MODELS_DEV_SYNC_INTERVAL` | `86400` (saa 24) | `src/lib/modelsDevSync.ts` | Muda wa kusawazisha orodha ya muundo wa muda wa maendeleo kwa sekunde. |
| `CONTEXT_WINDOW_RECONCILE_INTERVAL` | `86400` (saa 24) | `src/lib/contextWindowResolver.ts` | Muda (sekunde) kwa kipatanishi cha dirisha-muktadha kinachojirekebisha (5004): hubandika madirisha yaliyotangazwa na mtoaji kutoka kwa ugunduzi wa `/models` kama `auto:discovery` inavyobatilisha yanapotofautiana kutoka kwa katalogi. Weka `0` ili kuzima. Hutumia tena data iliyosawazishwa (hakuna uchotaji mpya); kamwe haibadilishi ubatilishaji wa `manual`. |
---
## 20. Mipangilio Maalum ya Mtoa huduma
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (saa 24) | `src/lib/catalog/openrouterCatalog.ts` | kashe ya katalogi ya OpenRouter TTL. |
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Jumuisha sehemu za `name` zinazofaa kuonyesha katika majibu ya `/v1/models`. Zima kwa wateja wanaotarajia IDs pekee. |
| `OMNIROUTE_GEMINI_WEB_ARGON_ENABLED` | `0` (zimezimwa) | `open-sse/config/providers/registry/gemini/web/index.ts` | Jijumuishe (#16573). Weka `1` (au `true`/`yes`) kutangaza `gweb/gemini-4-argon` kwenye mtoaji wa Wavuti Gemini na umruhusu mtekelezaji wake achague hali hiyo. Imezimwa kwa chaguo-msingi kwa sababu viteuzi vya menyu ya modi ya Argon hazijaangaliwa dhidi ya akaunti ya Wavuti Gemini ya moja kwa moja; ukiwa mbali, modeli haijaorodheshwa na ombi lake limekataliwa kama kielelezo kisichojulikana, kama hapo awali. Soma mwanzoni, kwa hivyo mabadiliko yanahitaji kuanzishwa upya. |
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (sek 8) | `src/app/api/v1/models/catalogCache.ts` | Kungoja kwa njia baridi kwa ajili ya uundaji upya wa katalogi ya `GET /v1/models` iliyounganishwa (#12627). Baada ya muda kuisha, 200 ya mwisho hutolewa wakati mtu yupo. |
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (siku 30) | `src/lib/db/models/activeSyncedCatalog.ts` | Umri ambao baada ya hapo orodha ya miundo iliyosawazishwa ya muunganisho huacha kuwa na mamlaka ya kuelekeza na kushindwa kufunguliwa kwa sajili (#12849). Safu mlalo ambazo hazijawekwa muhuri mara kwa mara huhesabiwa kama zamani. |
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (miaka ya 60) | `src/lib/usage/analyticsResponseCache.ts` | Muda gani majibu ya polepole `GET /api/usage/analytics` yanatumika tena kwa mfuatano wa hoja sawa (#15629). `0` inalemaza kache. |
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (sek 1) | `src/lib/usage/analyticsResponseCache.ts` | Majibu ya uchanganuzi pekee ambayo yalichukua angalau muda mrefu kutengenezwa ndiyo yamehifadhiwa, kwa hivyo matukio madogo huona data mpya kila wakati. |
| `OMNIROUTE_CACHE_METRICS_MIN_COMPUTE_MS` | ondoa (kuzimwa) | `src/app/api/cache/route.ts` kupitia `src/lib/usage/analyticsResponseCache.ts` | Jijumuishe (#16361). Inapowekwa kuwa nambari kamili N isiyo hasi, sehemu ya historia ya utumiaji ya `GET /api/cache` (mwelekeo wa jumla wa akiba + papo hapo) hutolewa kutoka kwa akiba ya majibu ya uchanganuzi ulioshirikiwa wakati ilichukua angalau N ms kuunda, kwa kila dirisha lililobanwa `trendHours`, kwa `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` (historia inaweza kubaki hadi TTL hiyo ; `DELETE /api/cache` invalid). Historia ya = ambayo haijawekwa au batili inayosomwa moja kwa moja kwa kila ombi. |
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Max subiri ajira za kutengeneza picha NanoBanana. |
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana job frequency ya upigaji kura. |
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Ucheleweshaji wa kimsingi wa uwasilishaji wa kiwango cha juu cha Adobe Firefly jaribu tena kurudia kielelezo. |
| `AWS_REGION` | _(haijawekwa)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Mkoa uliotumika kujenga AWS Bedrock endpoints (Kiro, audio). |
| `AWS_DEFAULT_REGION` | _(haijawekwa)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Kurudi nyuma wakati `AWS_REGION` haijawekwa. |
| `CLOUDFLARE_ACCOUNT_ID` | _(haijawekwa)_ | `open-sse/executors/cloudflare-ai.ts` | Akaunti ID kwa Wafanyakazi wa Cloudflare AI. |
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(haijawekwa)_ | `open-sse/executors/cloudflare-playground.ts` | Eneo-kazi kamili Njia ya binary ya Chrome ya kitekelezaji cha Cloudflare AI ya Uwanja wa michezo, inayotumika wakati ukaguzi wa alama za vidole usio na kichwa huzuia Playwright zilizounganishwa za Chromium. |
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) — _unset = hakuna urefu wa kofia_ | `open-sse/executors/codebuddy/shared.ts` | Kikomo cha urefu cha hiari kwa vidokezo vya mfumo wa anayepiga hutumwa kwa CodeBuddy (CN na Kimataifa). Kwa chaguo-msingi, kidokezo pekee kilichobeba kialama cha utambulisho cha wakala wa usimbaji kinabadilishwa na kisichoegemea upande wowote ( kichujio cha maudhui ya Tencent kinakataa hizo); vidokezo virefu huhifadhiwa. Nambari kamili > 0 pia inachukua nafasi ya onyesho lolote la mfumo zaidi ya herufi nyingi; isiyowekwa, `0` au thamani isiyo kamili huzima kifuniko. Kila kumbukumbu badala ambayo sheria fired (alama ya utambulisho au urefu). |
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Batilisha msingi wa Cloudflare REST API unaotumiwa na kisambaza relay cha Workers pool (#4640 / 9router#1360). |
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Jina chaguo-msingi la mradi wa mfanyakazi linapendekezwa kwenye moduli ya "Tekeleza Relay". |
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Weka `false` ili kuficha chaguo la Cloudflare la relay ya Wafanyakazi kutoka kwa kichupo cha Dimbwi la Wakala. |
| `CLOUDFLARED_BIN` | kugundua kiotomatiki | `src/lib/cloudflaredTunnel.ts` | Njia maalum ya `cloudflared` binary. |
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Itifaki ya usafiri wa handaki: `http2` (chaguo-msingi), `quic`, au `auto`. |
| `CLOUDFLARED_CONFIG` | _(haijawekwa)_ | `src/lib/cloudflaredTunnel.ts` | Njia ya `config.yml` inayodhibitiwa na wingu (na `tunnel:`, `credentials-file:`, `ingress:`). Ikiwekwa, OmniRoute huendesha `tunnel --config run` (handaki iliyopewa jina) badala ya handaki ya haraka ya muda mfupi. |
| `CLOUDFLARED_HOSTNAME` | _(kutoka kwa ingress ya usanidi)_ | `src/lib/cloudflaredTunnel.ts` | Batilisha jina la mpangishi wa umma la handaki lililotajwa (kwa mfano `ai.example.com`), lililoripotiwa kama `publicUrl`/`apiUrl`. Wakati haijawekwa inasomwa kutoka kwa jina la mwenyeji wa `ingress` la kwanza. |
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Batilisha msingi wa Deno Deploy REST API unaotumiwa na kisambaza kisambaza data cha seva mbadala (#4643 / 9router#1437). |
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Jina chaguo-msingi la programu ya Deno Deploy linalopendekezwa kwenye moduli ya "Pekeza Relay". |
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Weka `false` ili kuficha chaguo la upeanaji wa Deno Deploy kutoka kwa kichupo cha Dimbwi la Wakala. |
| `SEARCH_CACHE_TTL_MS` | `300000` (dakika 5) | `open-sse/services/searchCache.ts` | TTL kwa utafutaji API (Utata, Jasiri, n.k.) akiba ya majibu. |
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Onyesha UI ya mtoa huduma inayooana na CC kwa relay za Msimbo pekee wa Claude. |
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Batilisha seva pangishi ambapo mfano uliopachikwa wa 9router husikiza. |
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Batilisha mlango ambapo mfano uliopachikwa wa 9router husikiza. |
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Funga seva pangishi kwa seva mbadala WebSocket iliyopachikwa (kurudisha nyuma kwa chaguomsingi pekee). |
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Mlango wa seva mbadala WebSocket ya huduma iliyopachikwa. |
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | mwenyeji wa daraja la CLIProxyAPI (muunganisho wa urithi). |
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | bandari ya daraja la CLIProxyAPI. |
| `CLIPROXYAPI_API_KEY` | _(tupu)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Njia mbadala ya ufunguo wa ndege-data wakati mpangilio wa `cliproxyapi_api_key` haupo. |
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tupu)_ | `src/lib/services/cliproxyAccountHealth.ts` | Ufunguo wa usimamizi wa usomaji wa afya ya akaunti kutoka kwa mfano wa CLIProxyAPI unaodhibitiwa na nje. |
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI saraka ya usanidi. |
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Kiolesura cha mpangishi cha docker-compose huchapisha `cliproxyapi` sidecar kwenye (#12578). Kiasi chake cha data kinashikilia vitambulisho vya mtoa huduma OAuth/API na picha iliyobandikwa haina ubatilishaji wa data-based `api-keys` unaotegemea env (zilizopachikwa tu `config.yaml`), kwa hivyo `0.0.0.0` hufichua huduma inayobeba sifa kwa LAN nzima. |
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Batilisha mlango ambapo Mux (coder/mux) wakala-orchestration daemon iliyopachikwa husikiliza (daima 127.0.0.1). |
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Batilisha mlango ambapo daemon iliyopachikwa ya open-wa (WhatsApp Web otomatiki) inasikiza (daima 127.0.0.1). |
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario embedded-service bind/connect host (loopback by default only). |
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Mlango wa huduma iliyopachikwa wa Dario. |
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario embedded-service bind/connect host (loopback by default only). |
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Mlango wa huduma iliyopachikwa wa Dario. |
| `LOCAL_HOSTNAMES` | _(tupu)_ | `open-sse/config/providerRegistry.ts` | Majina ya ziada yaliyotenganishwa kwa koma yanachukuliwa kuwa "ya karibu" (majina ya huduma Docker, n.k.). |
`ENABLE_CC_COMPATIBLE_PROVIDER` ni kwa upeanaji wa wahusika wengine ambao hukubali wateja wa Msimbo Claude pekee. OmniRoute huandika upya maombi ili relay hizo zikubali. Iwapo ungependa kutumia tu Claude Code CLI, au huna uhakika relay hizi ni nini, weka hii ikiwa imezimwa na uongeze mtoaji wa kawaida anayeoana na Anthropic badala yake.
---
## 21. Afya ya Wakala
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | `src/lib/proxyHealth.ts` | Muda wa ukaguzi wa afya ulioshindwa haraka. |
| `PROXY_LATENCY_WINDOW_HOURS` | `3` | `src/lib/db/proxies.ts` | Dirisha la muda (saa) la kukokotoa wastani wa muda wa kusubiri wa watahiniwa katika mkakati wa muda wa kusubiri ulioboreshwa. |
| `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | `src/lib/proxyHealth.ts` | Kache ya matokeo ya ukaguzi wa afya TTL. |
| `NONE_HONORED_WINDOW_HOURS` | `24` | `src/lib/db/reasoningEffortCompliance.ts` | Dirisha linalofuata kwa saa kwa msomaji wa reasoning_effort = none kwenye GET /v1/models/health. |
| `NONE_HONORED_CACHE_TTL_MS` | `20000` | `src/lib/db/reasoningEffortCompliance.ts` | Akiba TTL katika ms kwa muhtasari wa kutotii (miaka 15-30). |
| `NONE_HONORED_MIN_SAMPLE` | `3` | `src/lib/db/reasoningEffortCompliance.ts` | Kima cha chini kabisa hakuna maombi kabla ya mfano kusoma kuheshimiwa au kutoheshimiwa; chini ya hii mfano unasoma haijulikani. |
| `PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS` | `2000` | `src/lib/proxyHealth.ts` | Akiba TTL kwa ajili ya uchunguzi wa afya ya wakala ulioshindwa. Weka muda huu mfupi kuliko `PROXY_HEALTH_CACHE_TTL_MS` ili kuisha kwa seva mbadala kwa muda mfupi chini ya ulinganifu wa juu jaribu tena haraka bila kuzima kutofaulu kwa seva mbadala zilizokufa. |
| `PROXY_HEALTH_ENABLED` | `true` | `src/lib/proxyHealth/scheduler.ts` | Weka `false` ili kuzima kipanga ratiba cha usuli cha huduma ya seva mbadala ambacho huchunguza mara kwa mara proksi zilizosajiliwa. |
| `PROXY_HEALTH_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Muda wa kufagia usuli wa kiratibu afya katika ms (kiwango cha chini cha `60000`). |
| `PROXY_HEALTH_RELAY_INTERVAL_MS` | `21600000` | `src/lib/proxyHealth/relayCadence.ts` | Muda wa uchunguzi katika ms kwa seva mbadala za relay kingo (`deno`/`vercel`/`cloudflare`), ambazo uchunguzi wake huamsha kitenga kisicho na seva kinachotozwa (kiwango cha chini `60000`). |
| `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | Muda wa urejeshaji wa urejeshaji wa usuli katika ms: ni mara ngapi proksi zisizokuwa na afya huchunguzwa upya ili seva mbadala iliyorejeshwa irudi kwenye mzunguko bila kuwasha upya. Thamani zilizo chini ya `60000` zinarudi kwa chaguomsingi. |
| `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | Lengwa la uchunguzi wa ufikivu linalotumiwa na kiratibu na sehemu ya mwisho `/api/settings/proxies/auto-test`. Ielekeze kwa internal/self-hosted URL ili kuepusha chaguo-msingi la umma. |
| `PROXY_HEALTH_TEST_CONCURRENCY` | `10` | `src/lib/proxyHealth/probeTarget.ts` | Uchunguzi ulianza mara moja kwa kila kundi, unashirikiwa na kipanga ratiba na sehemu ya mwisho ya `/api/settings/proxies/auto-test`. Iliyowekwa sakafu kwa 1 na kupunguzwa hadi 50. |
| `PROXY_HEALTH_TEST_STAGGER_MS` | `100` | `src/lib/proxyHealth/probeTarget.ts` | Kuchelewa kwa ms kati ya kuondoka mbili za uchunguzi ndani ya kundi. Bila hivyo kundi zima huondoka kwa wakati mmoja na IP iliyoshirikiwa inaweza kuvuka lengo la kiwango kidogo. Weka kwa `0` ili kuzima nafasi; ilifikia 5000. |
| `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | Weka "false" ili kuacha kuchunguza mwenyeji halisi wa mtoaji aliyekabidhiwa wa seva mbadala (`GET /models`, no API key) na utumie `PROXY_HEALTH_TEST_URL` badala yake kila wakati. |
| `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | Wakati `false` (chaguo-msingi), uchunguzi wa ufikivu wa kiotomatiki (kipanga ratiba + kitufe cha `/api/settings/proxies/auto-test` "Jaribio Zote") ni** kusoma tu** na usiwahi kuandika hali ya proksi — tu opereta anaweka active/inactive, kwa hivyo uchunguzi hafifu hauwezi kubandika proksi iliyokabidhiwa (#6246). Weka `true` ili kurejesha tabia ya majaribio na kuweka. |
| `FLUSH_EMPTY_RETRY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele cha kujijumuisha (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kushinda). `true` (au `1`, `yes`) hujaribu tena utiririshaji tupu uliotafsiriwa kupitia njia ya kawaida ya kitambulisho (hadi `STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX` kujaribu tena) badala ya kufichua 200 tupu au maudhui tupu 502. |
| `EMPTY_STREAM_SIBLING_RECOVERY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele cha kujijumuisha (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kushinda). `true` (au `1`, `yes`) huweka uchunguzi wa maudhui ya mtiririko tupu Claude/Codex na hutumia jaribio lililopo tena lililo na mipaka kwenye muunganisho mwingine unaostahiki baada ya zamu ya `empty_content`, bila ubaridi au kufuli kwa mtindo. |
| `STREAM_LATE_OUTPUT_PROBE_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele cha kujijumuisha (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kushinda). `true` (au `1`, `yes`) huendelea kuchukua sampuli moja iliyosambazwa katika 16 baada ya 64 ya kwanza hivyo matokeo yanayoonekana kuchelewa bado huashiria mtiririko kuwa umetoa pato (tokeo pekee la baada ya 5xx hukaa kwa ombi badala ya kufuli kwa mfano pekee). |
| `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele cha kujijumuisha (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kushinda). `true` (au `1`, `yes`) inaonyesha uchunguzi wa dimbwi la kusoma tu chini ya dimbwi la wakala kwenye dashibodi ( egress tofauti IPs, miunganisho na inayoonekana zaidi nyuma ya IP moja katika saa 24 zilizopita, kutoka kwa kumbukumbu ya seva mbadala). Haijawahi kutumika kwa uelekezaji. |
| `PROXY_OPERATOR_EGRESS_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | Alama ya kipengele cha kujijumuisha (angalia [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ; dashibodi ya DB ya kushinda). `true` (au `1`, `yes`) inakubali anwani zilizotazamwa za tarehe zilizosukumwa na opereta na kuziunganisha na jarida lililosomwa kwa onyesho na mpangilio wa pamoja. |
| `PROXY_OPERATOR_EGRESS_WINDOW_HOURS` | `24` | `src/lib/db/proxyOperatorEgress.ts` | Dirisha la uchunguzi katika saa kwa safu mlalo za egress zilizosukumwa na waendeshaji (soma kila usomaji; hakuna kuanzisha upya inahitajika). Imefungwa kwa 1..168; nje ya anuwai, isiyo ya nambari, au tupu inarudi hadi 24 kwa onyo moja la mchakato mzima, kamwe kurusha. |
| `PROXY_AUTO_REMOVE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Weka `true` ili kuruhusu kipanga ratiba kuondoa proksi kiotomatiki baada ya kushindwa mara kwa mara mfululizo. |
| `PROXY_AUTO_REMOVE_AFTER` | `3` | `src/lib/proxyHealth/scheduler.ts` | Hitilafu mfululizo kabla ya kipanga ratiba kuondoa kiotomatiki proksi (wakati `PROXY_AUTO_REMOVE=true`). |
| `PROXY_AUTO_DISABLE` | `false` | `src/lib/proxyHealth/scheduler.ts` | Weka `true` ili kuruhusu kipanga ratiba kuzima (status `dead`, kamwe kufutwa) proksi baada ya kushindwa mara kwa mara mfululizo, badala ya kuiondoa. Mbadala isiyo ya uharibifu ya `PROXY_AUTO_REMOVE`: proksi hutoka kwenye azimio la pool/rotation mara moja (kichujio cha hali hai kinachotumiwa na azimio la bwawa la wigo tayari hakijumuishi) na huwashwa upya kiotomatiki pindi inapoanza kupitisha uchunguzi tena. Inashiriki kizingiti `PROXY_AUTO_REMOVE_AFTER`. Ikiwa bendera zote mbili ni `true`, `PROXY_AUTO_REMOVE` itashinda. |
| `PROXY_HEALTH_PASSIVE_SKIP` | `false` | `src/lib/proxyHealth/scheduler.ts` | Jijumuishe kuingia: wakati `true`, kipanga ratiba kinaruka uchunguzi wa moja kwa moja kwa sehemu ya mwisho ambayo trafiki ya hivi majuzi ya uzalishaji tayari imethibitisha (angalau mafanikio moja na hakuna seva mbadala inayohusishwa na hitilafu kwenye dirisha, mtoa huduma mmoja aliona). Imezimwa kwa chaguo-msingi: kila seva mbadala inachunguzwa. |
| `PROXY_PASSIVE_WINDOW_MS` | `300000` | `src/lib/proxyHealth/passiveVerdict.ts` | Dirisha katika ms ya trafiki ya uzalishaji ruka ruka hutazama ( bounded `60000..599999`). Muda mfupi kuliko kipindi cha kufagia kwa dakika 10 kwa hivyo kutofaulu kwa hivi majuzi kutatawala badala ya kupunguzwa. |
| `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | Ruhusu mtiririko OAuth na uthibitishaji wa mtoaji kukwepa seva mbadala iliyobandikwa na kuunganisha moja kwa moja wakati ukaguzi wa awali wa ufikivu wa seva unashindwa. Utangulizi unaofaa ni Bendera za Vipengele DB kubatilisha > env var > chaguomsingi. |
| `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30s) | `src/lib/resilience/settings.ts` | Chaguomsingi** foleni-ngoja** bajeti: muda gani ombi linaweza kusubiri eneo la mtoa huduma na kukaa kwenye foleni kabla ya kukataliwa, kamwe kufikia mkondo wa juu. Kipima saa kinafutwa mara tu kazi inapoanza kutekeleza — inafungwa kando na `RATE_LIMIT_EXECUTION_MAX_WAIT_MS`. Env huweka chaguo-msingi pekee: `resilienceSettings.requestQueue.maxWaitMs` inayoendelea, na kisha muunganisho wa kila mmoja `rateLimitOverrides.maxWaitMs`, kila moja itashinda. |
| `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (dakika 10) | `open-sse/services/rateLimitManager.ts` | Kuweka dari kwa muda ambao ombi lililokubaliwa linaweza kukaa katika utekelezaji kabla ya muda wake wa kuweka kikomo cha viwango kuisha kwa — kugawanywa kutoka kwa bajeti ya kusubiri kwa foleni hivyo basi kuleta polepole kwenye lango zisizo za nyongeza kusitishwe (#12027). |
| `RATE_LIMIT_MAX_QUEUE_DEPTH` | `0` (walemavu) | `open-sse/services/rateLimitManager.ts` | Kikomo cha uandikishaji kwenye foleni: kataa kwa `queue_full` 429 mara maombi haya mengi yanapokuwa tayari yamewekwa kwenye foleni. `0` = isiyo na mipaka (chaguo-msingi). |
| `RATE_LIMIT_AUTO_ENABLE` | _(haijawekwa)_ | `open-sse/services/rateLimitManager.ts` | Lazimisha wavu wa usalama wa kikomo cha kuwezesha kiotomatiki on/off bila kujali mpangilio unaoendelea wa Dashibodi (`resilienceSettings.requestQueue.autoEnableApiKeyProviders`). Inakubali `true`/`1`/`on` kulazimisha, `false`/`0`/`off` kuzima kwa nguvu. Inapotumika (chaguo-msingi), miunganisho inayotumika ya vitufe vya API inalindwa kiotomatiki. Kuweka `rateLimitProtection: false` kwa kila muunganisho huzima ulinzi dhalimu lakini haichagui wavu huu wa usalama; kuweka env var hii hadi `false` ni utaratibu wa kimataifa wa kuendesha miunganisho ya vitufe vya API bila foleni za kikomo cha viwango. |
| `PROVIDER_COOLDOWN_ENABLED` | _(ondoa → )_ | `open-sse/services/providerCooldownTracker.ts` | Jijumuishe katika ufuatiliaji wa ombi provider/connection la kimataifa. OFF kwa chaguo-msingi (huingiliana na Upunguzaji wa Muunganisho / Kivunja Mzunguko wa Mtoa huduma). Inakubali `true`/`1`/`on` ili kuwezesha. |
| `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | Kiwango cha chini cha kupoza (ms) kabla ya provider/connection iliyoshindwa kujaribiwa tena. Imeongezwa kwa kasi na kushindwa mfululizo. Inatumika tu wakati `PROVIDER_COOLDOWN_ENABLED`. |
| `PROVIDER_COOLDOWN_MAX_MS` | `300000` (dakika 5) | `open-sse/services/providerCooldownTracker.ts` | Kiwango cha juu zaidi cha kupozea (ms) kabla ya provider/connection iliyoshindwa kujaribiwa tena bila kujali. Inatumika tu wakati `PROVIDER_COOLDOWN_ENABLED`. |
| `STREAM_RECOVERY_ENABLED` | _(ondoa → )_ | `src/lib/resilience/settings.ts` (mbegu) → `open-sse/services/streamRecovery.ts` (mantiki) | **Nini:** urejeshaji wa uwazi wa mitiririko ya juu ya mto iliyopunguzwa (mlango wa msimbo wa klaude-isiyolipishwa). Hushikilia dirisha SSE linalofungua hadi `STREAM_RECOVERY.HOLDBACK_MS` (750 ms) ili _pre-commit_ cutoff — moja ambayo hufanyika kabla ya byte yoyote kumfikia mteja — inafunguliwa tena na kujaribiwa tena bila kuonekana.** Wakati wa kuwezesha:** flaky/upstreams ambayo mara kwa mara 0-byte-truncate mwanzoni mwa mtiririko; ondoka OFF ikiwa huwezi kumudu hadi ms 750 za ishara ya mara hadi ya kwanza kwenye kila mtiririko. Inakubali `true`/`1`/`on`. Mbegu mpangilio wa Ustahimilivu unaoendelea; mipangilio ya Dashibodi inashinda mara tu ikiwa imewekwa. |
| `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(ondoa → )_ | `src/lib/resilience/settings.ts` (mbegu) → `open-sse/services/streamRecovery.ts` (mantiki) | **Nini:** mwendelezo wa mtiririko wa kati (Msitari wa 4.4) — baada ya upunguzaji wa _post-commit_ (baiti tayari zimefikia kiteja), omba tena kwa sehemu ya maandishi kama kiambatisho kisaidizi na ushone kiambishi tamati kinachokosekana. Mitiririko ya maandishi-wazi ya OpenAI-patanifu pekee; haichomi kamwe kwa kutumia simu wakati wa kukimbia.** Wakati wa kuwezesha:** vizazi virefu ambavyo hukatwa katikati ya jibu na unakubali mkia uliopatikana ukifika kama mlipuko mmoja badala ya ishara-kwa-ishara. Kujitegemea kwa `STREAM_RECOVERY_ENABLED` (wasifu tofauti wa hatari). Inakubali `true`/`1`/`on`. |
| `STREAM_THROUGHPUT_WATCHDOG_ENABLED` | _(ondoa → )_ | `src/lib/resilience/settings.ts` → `open-sse/services/throughputWatchdog.ts` | Jijumuishe-amilisha-tiririsha pato muhimu. Hutambua mitiririko ambayo hutuma sehemu lakini kubaki chini ya kiwango cha utoaji cha msaidizi kilichosanidiwa; mapigo ya moyo, matukio ya matumizi, delta tupu, na awamu za tool/reasoning hazijifanyi kuwa maendeleo. Tenganisha na kukatika kwa muda na kwa makataa ya kutokuwa na kazi. Huweka chaguo-msingi pekee: boolean iliyohifadhiwa katika `resilienceSettings` (Dashibodi → Mipangilio → Ustahimilivu) inachukua nafasi ya kwanza. |
| `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Kipindi cha bila malipo kabla ya kutathmini matokeo, kimewekwa kwa 0-600000 ms. |
| `STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | Dirisha la pato linalozungusha, linalofungwa hadi 1000–600000 ms; dirisha moja kamili linahitajika kabla ya kutoa mimba. |
| `STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND` | `4` | `src/lib/resilience/settings/normalize.ts` | Kiwango cha chini kabisa cha pato la UTF-8 (proksi ya tokeni ya kihafidhina), inayolingana hadi 1–1000000. |
| `STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES` | `1` | `src/lib/resilience/settings/normalize.ts` | Sampuli ya pato la chini isiyo sifuri inachukuliwa kuwa ya kupimika, iliyo na baiti 1–1000000. |
| `HEALTHCHECK_STAGGER_MS` | `3000` | `src/lib/tokenHealthCheck.ts` | Muda wa mwendo (ms) kati ya ukaguzi wa afya wa tokeni ya mtoa huduma wakati wa kuanza. |
| `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | Kiwango cha chini cha jita isiyo na mpangilio (ms) imeongezwa juu ya `HEALTHCHECK_STAGGER_MS` kati ya ukaguzi wa tokeni wa mtoa huduma, ili kuzuia kupasuka (Toleo #1220). |
| `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | Kiwango cha juu cha jita isiyo na mpangilio (ms) imeongezwa juu ya `HEALTHCHECK_STAGGER_MS` kati ya ukaguzi wa tokeni wa mtoa huduma, ili kuzuia kupasuka (Toleo #1220). |
| `HEALTHCHECK_BATCH_SIZE` | `20` | `src/lib/tokenHealthCheck.ts` | angalia saizi ya bechi kwa wakati mmoja kwa ufagiaji wa ukaguzi wa kiafya wa ishara; maadili makubwa angalia miunganisho zaidi sambamba, maadili madogo hupunguza mzigo wa kupasuka (Toleo #7875, regression ya #7719). |
| `REQUEST_RETRY` | `2` | `src/sse/services/cooldownAwareRetry.ts` | Idadi ya majaribio ya kiotomatiki kwenye majibu ya upunguzaji wa sauti yaliyopangwa na muundo kabla ya kurudisha hitilafu kwa mteja. |
| `MAX_RETRY_INTERVAL_SEC` | `30` | `src/sse/services/cooldownAwareRetry.ts` | Muda wa juu zaidi wa kurudi nyuma (sekunde) kati ya majaribio ya kurudisha nyuma. Imefunikwa na thamani hii bila kujali mto `Retry-After`. |
| `HEADROOM_URL` | `http://localhost:8787` | `src/lib/headroom/detect.ts` | Wakala wa kiokoa tokeni ya chumba cha kulala URL. Mzunguko wa maisha wa dashibodi (`api/headroom/*`) hutoa `headroom-ai` CLI ya ndani kwenye loopback kwa chaguo-msingi; kubatilisha tu ili kuelekeza kwenye proksi ya nje ya kando Docker. |
### Vidhibiti vya urejeshaji wa mtiririko
Tabia ya urejeshaji nyuma inarekebishwa na vidhibiti vilivyo na msimbo ngumu katika `open-sse/config/constants.ts` (`STREAM_RECOVERY`), iliyoonyeshwa hapa kwa marejeleo — kuzibadilisha kunahitaji uhariri wa msimbo, sio env var:
- `STREAM_RECOVERY.HOLDBACK_MS = 750` — ni muda gani dirisha la SSE linalofunguliwa linashikiliwa ili upunguzaji wa mapema uweze kujaribiwa tena kabla ya byte yoyote kukabidhiwa kwa mteja.
- `STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536` — kofia ngumu kwenye dirisha lililofanyika; commit (flush + passthrough) mara tu ka hii nyingi itakapojilimbikiza, bila kujali kipima saa.
- `STREAM_RECOVERY.EARLY_RETRY_MAX = 4` — max transparent hufungua tena mkondo wa juu wakati kizuizi bado hakijatekelezwa.
> **Kikomo cha kiwango cha dirisha la kutelezesha kwa kila mtoaji (hakuna env var):** kikomo cha kiwango cha dirisha la kuteleza kwa kila mtoaji _fallback_ kilichowekwa na FCC kipo katika msimbo (`open-sse/services/providerDefaultRateLimit.ts`, inayounganishwa kupitia `open-sse/services/rateLimitManager.ts`) lakini meli zilizo na** ramani chaguo-msingi tupu** na ina** hakuna mwendeshaji env var** leo — imewezeshwa tu kupitia ndoano ya majaribio / hariri ya nambari. Haijaorodheshwa kwa makusudi kwenye jedwali hapo juu. Kikomo cha relay cha per-`(token, IP)` ambacho _does_ kina kisu ni `RELAY_IP_PER_MINUTE` (§3 Mtandao na Bandari).
---
## 22. Debugging
> [!CAUTION]
> Vigezo hivi huzalisha** pato la kitenzi** na inaweza kuvuja data nyeti.** Usiwahi kuwasha katika uzalishaji.**
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CURSOR_DEBUG` | _(haijawekwa)_ | `open-sse/executors/cursor.ts` | Weka `1` ili kuwezesha kumbukumbu za kutekeleza Cursor kitenzi (visehemu vya SSE vilivyowekwa, n.k.). |
| `CURSOR_STREAM_DEBUG` | _(haijawekwa)_ | `open-sse/executors/cursor.ts` | Lakabu inayolingana ya `CURSOR_DEBUG`. |
| `CURSOR_DUMP_FILE` | _(haijawekwa)_ | `open-sse/executors/cursor.ts` | Njia ya faili ya hiari ambayo hupokea vipande mbichi Cursor wakati `CURSOR_DEBUG=1`. |
| `CURSOR_STREAM_TIMEOUT_MS` | `300000` | `open-sse/executors/cursor.ts` | Tiririsha muda wa kutofanya kitu (ms) kwa kitekelezaji Cursor. |
| `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | Dirisha la neema (ms) baada ya kiondoa laini cha kv_after_text cha mtunzi wakati baiti zinasalia kuakibishwa — inatoa muda wa simu unaofuata wa exec_mcp kukamilisha fremu yake. |
| `CURSOR_TOOL_DIRECTIVE` | kuwezeshwa (`!== "0"`) | `open-sse/executors/cursor.ts` | Maagizo ya zana ambayo hufanya composer-2.5 kutoa simu za zana kwa uaminifu. Weka `0` ili kuzima. |
| `OMNIROUTE_SYSTEM_INSTRUCTION_APPEND` | _(haijawekwa)_ | `open-sse/translator/request/claude-to-openai.ts`, `open-sse/translator/response/openai-to-claude.ts` | Maandishi ya papo kwa papo ya mfumo uliobainishwa na opereta yameambatishwa kwa tafsiri ya AFTER ya ujumbe wa mfumo (sindano ya baada ya tafsiri), kufikia njia za codex/Responses na `/v1/messages`. Pia hutumika kama kiambishi awali cha maagizo kilichotolewa kutoka kwa vizuizi vya utangulizi vya mfumo vilivyounganika. Ondoka bila kuwekwa ili kuzima. |
| `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (zimezimwa) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | Weka kuwa `1` ili kuondoa vizuizi vya utangulizi vilivyo na mwangwi wa mfumo kutoka mwanzo wa mkondo wa openai → claude. Kwa chaguo-msingi — maandishi ya maandishi yana umbo la Kiingereza-nathari na hubadilisha mzigo wa majibu, kwa hivyo jibu linalofunguliwa kihalali na sehemu kama hiyo lingeweza kupoteza. |
| `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | Muda wa muda wa kuleta kwa kila picha (ms) kwa ingizo la maono `image_url` la mbali. |
| `CURSOR_STATE_DB_PATH` | _(imechunguzwa)_ | `open-sse/utils/cursorVersionDetector.ts` | Batilisha utafutaji wa hali ya Cursor IDE DB unaotumika kugundua toleo la IDE. |
| `CURSOR_AGENT_CLI_VERSION` | _(gundua / piga)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Ajenti CLI id kujenga (`YYYY.MM.DD-`) kwa `x-cursor-client-version: cli-…` kwenye Agent Run. |
| `CURSOR_AGENT_BIN` | _(haijawekwa)_ | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Njia ya binary ya Wakala wa Cursor inayotumika kutengeneza picha. Haijawekwa, kidhibiti hutumia `providerSpecificData.agentBin` kisha PATH. |
| `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Saa ya ukutani kwa kila picha (ms) kwa kazi za picha Cursor za Wakala. |
| `CURSOR_IMG_MAX_CONCURRENT` | `2` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Lango la ubadilishaji wa viti vya pamoja kwa kazi za picha za Cursor. |
| `CURSOR_IMG_MODEL` | ombi / `auto` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Batilisha Cursor CLI `--model` kwa kazi za picha. |
| `UC_IMAGE_POLL_INTERVAL_MS` | `2000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC (uncensored.com) picha-gen matokeo ya kura ya maoni (ms). |
| `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC image-gen result-poll saa ya ukutani (ms). |
| `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC (uncensored.com) mkondo wa matokeo ya kura ya maoni ya video-gen (ms). |
| `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC video-gen matokeo-ya kura ya maoni ya ukutani (ms). |
| `CURSOR_DATA_DIR` | _(imechunguzwa)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Batilisha Cursor Wakala CLI data dir (`…/versions/`); sawa var wakala rasmi anatumia. |
| `CURSOR_TOKEN` | _(haijawekwa)_ | `scripts/ad-hoc/cursor-tap.cjs` | Tokeni ya mtoaji wa Cursor ya moja kwa moja inayotumiwa na zana za msanidi programu. |
| `OMNIROUTE_LOG_REQUEST_SHAPE` | imezimwa (chagua kuingia kupitia `"1"`) | `src/app/api/v1/chat/completions/route.ts` | Weka alama za content-type/length kwa mizigo mikubwa ya gumzo wakati `"1"` imewekwa. Zima kwa chaguo-msingi ili kupunguza kelele ya kumbukumbu. |
| `DEBUG_RESPONSES_SSE_TO_JSON` | _(haijawekwa)_ | `open-sse/handlers/responseTranslator.ts` | Weka `true` ili kuweka Majibu API SSE→JSON maelezo ya tafsiri. |
| `DEBUG_CLAUDE_NONSTREAM` | _(haijawekwa)_ | `open-sse/handlers/responseTranslator.ts` | Weka `true` ili kutoa sehemu tupu textContent katika njia ya tafsiri ya majibu Claude (utatuzi pekee). |
| `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(haijawekwa)_ | E2E mtihani kuunganisha | Weka `true` ili kuwezesha hali ya majaribio E2E (auth iliyotulia, ndoano za majaribio). |
---
## 23. GitHub Integration
Ruhusu watumiaji kuripoti masuala moja kwa moja kutoka kwa Dashibodi.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| --------------------- | -------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GITHUB_ISSUES_REPO` | _(haijawekwa)_ | `src/app/api/v1/issues/report/route.ts` | Hifadhi katika umbizo `owner/repo`. |
| `GITHUB_ISSUES_TOKEN` | _(haijawekwa)_ | `src/app/api/v1/issues/report/route.ts` | GitHub Ishara ya Ufikiaji Binafsi yenye wigo wa `issues:write`. |
| `GITHUB_TOKEN` | _(haijawekwa)_ | suala la triage / wasaidizi wa wakala wa wingu | Tokeni ya jumla ya ufikiaji GitHub inayotumika kama njia mbadala ya `GITHUB_ISSUES_TOKEN` na hutumiwa na wasaidizi wa wakala wa wingu katika `src/lib/cloudAgent/*`. |
---
## Toa Kiwango cha Bure cha Keep-Hai
Utoaji husogeza huduma ya bure ya wavuti chini baada ya kama dakika 15 bila trafiki inayoingia. Kizinduzi cha pekee (`scripts/dev/run-standalone.mjs`, ambacho picha ya Docker inaendesha) kinaweza kubandika URL ya umma ya huduma ili kuzuia hilo. Haifanyi chochote isipokuwa URL ya umma inapatikana, na huingia tu wakati hali inabadilika.
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| ---------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `SELF_PING_ENABLED` | juu ya wakati URL imewekwa | `0`, `false`, `off` au `no` huzima pinger. Itumie kwenye mipango ya Utoaji inayolipishwa, ambapo hakuna kitu kinachozunguka. |
| `SELF_PING_URL` | `RENDER_EXTERNAL_URL` | Msingi URL kwa ping. Render huweka `RENDER_EXTERNAL_URL` yenyewe kwenye kila mpango, kwa hivyo pinger iko hapo kwa chaguo-msingi. |
| `SELF_PING_PATH` | `/api/monitoring/health` | Njia kwenye URL hiyo. Lazima kuanza na `/`; kitu kingine chochote huzima pinger kwa onyo. |
| `SELF_PING_INTERVAL_SECONDS` | `180` | Sekunde kati ya pings, baada ya ping ya kwanza sekunde 60 ndani. Thamani zilizo chini ya `30` zinarudi nyuma hadi `180`. |
Huduma inayowekwa macho kwa mwezi mzima hutumia takriban saa 744, kwa hivyo iangalie dhidi ya posho ya sasa ya kiwango cha bure cha Render.
## Matukio ya Usambazaji
Kwa mwongozo wa nyuma SRE ( tabia ya ts/bifrost/auto, uwekaji wa 9router dhidi ya CLIProxyAPI, na mbinu mbadala ya upitishaji wa juu), angalia [Mkakati wa Urejeshaji wa Nyuma](/docs/reference/RELAY_BACKEND_STRATEGY.md).
### Maendeleo Ndogo ya Mitaa
```bash
JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development
```
### Docker Uzalishaji
```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
```
### Hewa-Pengo / 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 iliyo na Wakala wa Reverse (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. Ujuzi Sandbox (v3.8.0 +)
Vikomo na vifungo vya usalama hutumika wakati mfumo wa Ujuzi (`src/lib/skills/`) unatekeleza otomatiki zilizobainishwa na mtumiaji katika mazingira ya sanduku la mchanga.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| -------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `SKILLS_SANDBOX_TIMEOUT_MS` | `10000` (sek 10) | `src/lib/skills/builtins.ts` | Muda wa kila utekelezaji wa saa ya ukutani umekwisha kwa msimbo wa ujuzi wa kisanduku cha mchanga. Kofia ngumu; chochote tena kinauawa. |
| `SKILLS_EXECUTION_TIMEOUT_MS` | _(inarudi kwa `SKILLS_SANDBOX_TIMEOUT_MS`)_ | `src/lib/skills/` | Muda wa ochestration wa hali ya juu umeisha. Weka juu zaidi ya `SKILLS_SANDBOX_TIMEOUT_MS` ili kuruhusu utiririshaji wa hatua nyingi. |
| `SKILLS_MAX_FILE_BYTES` | `1048576` (1 MB) | `src/lib/skills/builtins.ts` | Ujuzi wa juu unaweza kusoma kutoka kwa faili yoyote ya kisanduku cha mchanga. |
| `SKILLS_MAX_HTTP_RESPONSE_BYTES` | `256000` (250 KB) | `src/lib/skills/builtins.ts` | Upeo wa baiti zilizonaswa kutoka kwa jibu lolote HTTP ndani ya ujuzi. |
| `SKILLS_MAX_SANDBOX_OUTPUT_CHARS` | `100000` | `src/lib/skills/builtins.ts` | Kofia ngumu kwenye herufi stdout/stderr imerejeshwa kutoka kwa ombi la kisanduku cha mchanga. |
| `SKILLS_SANDBOX_NETWORK_ENABLED` | `false` | `src/lib/skills/builtins.ts` | Weka `1`/`true` ili kuruhusu mtandao wa nje kutoka ndani ya sandbox. Chaguomsingi kwa** kutengwa** kwa usalama. Imepuuzwa na muda wa utekelezaji wa `agent-sandbox` : kutengwa kwa mtandao, mfumo wa faili wa kusoma pekee na vikomo vya CPU/memory hutoka kwa opereta `SandboxTemplate`. |
| `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(tupu)_ | `src/lib/skills/builtins.ts` | Orodha ya ruhusa iliyotenganishwa kwa koma ya picha za kontena zinazoruhusiwa kwa utekelezaji wa kisanduku cha mchanga. Tupu inamaanisha chaguomsingi iliyojumuishwa pekee. |
| `SKILLS_SANDBOX_DOCKER_IMAGE` | _(chaguo-msingi iliyojengwa ndani)_ | `src/lib/skills/` | Picha ya chombo kilichotumiwa wakati wa kuunda kisanduku cha mchanga kinachoungwa mkono na Doka. Batilisha ili kubandika picha maalum ya msingi mgumu. |
| `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | Muda wa matumizi ya chombo kwa ustadi wa ndondi ya mchanga: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman` \| `agent-sandbox`. `auto` huchagua wakati bora zaidi wa kusakinisha kwa kila mpangishi OS (Apple Container/OrbStack kwenye macOS, WSL Container kwenye Windows, Podman kwenye Linux), ikirejea Docker. `agent-sandbox` (madimbwi ya joto ya Kubernetes ya mbali) ni chaguo la kuingia pekee na haitambuliwi kiotomatiki. |
| `SKILLS_AGENT_SANDBOX_POOLS` | _(tupu)_ | `src/lib/skills/agentSandboxProvider.ts` | `image=pool` jozi, zimetenganishwa kwa koma: ambayo `SandboxWarmPool` hutumikia kila picha ya kisanduku cha mchanga wakati `SKILLS_SANDBOX_RUNTIME=agent-sandbox`. |
| `SKILLS_AGENT_SANDBOX_POOL` | _(tupu)_ | `src/lib/skills/agentSandboxProvider.ts` | Dimbwi la maji baridi kwa picha ambazo hazijaorodheshwa katika `SKILLS_AGENT_SANDBOX_POOLS`. Uendeshaji haufaulu (hakuna njia mbadala kwa vyombo vya ndani) wakati hakuna suluhu. |
| `SKILLS_AGENT_SANDBOX_NAMESPACE` | `default` | `src/lib/skills/agentSandboxProvider.ts` | Nafasi ya majina iliyoshikilia mabwawa ya joto; `SandboxClaim` moja kwa kila kukimbia imeundwa na kufutwa hapa. |
| `SKILLS_AGENT_SANDBOX_KUBECONFIG` | _(kubectl chaguomsingi)_ | `src/lib/skills/agentSandboxProvider.ts` | Kubeconfig kwa muda wa utekelezaji wa kisanduku cha mchanga. Inahitaji tu madai ya sandbox create/get/list/watch/delete, ganda pata, pods/exec unda katika nafasi ya majina. |
| `SKILLS_AGENT_SANDBOX_KUBECTL` | `kubectl` | `src/lib/skills/agentSandboxProvider.ts` | kubectl binary inayotumiwa na wakati wa utekelezaji wa kisanduku cha mchanga. |
| `SKILLS_AGENT_SANDBOX_CONTAINER` | `main` | `src/lib/skills/agentSandboxProvider.ts` | Jina la chombo ndani ya ganda la kisanduku cha mchanga ambalo amri hutekelezwa ndani. |
| `SKILLS_AGENT_SANDBOX_CLAIM_TIMEOUT_S` | `60` | `src/lib/skills/agentSandboxProvider.ts` | Sekunde za kusubiri dai liwe Tayari (max 600). Dai litafutwa ikiwa halitawahi kufanya hivyo. |
> [!CAUTION]
> Kuwezesha `SKILLS_SANDBOX_NETWORK_ENABLED=true` hufungua njia ya kutoka kutoka kwa msimbo wa ujuzi wa kiholela. Oanisha na `OUTBOUND_SSRF_GUARD_ENABLED=true` na sera madhubuti ya `CORS_ORIGIN`/proksi katika uwekaji pamoja.
---
## 25. Kiwango cha Matumizi cha Mtoa Huduma, Tunneli, Nakala Rudufu na Mengine ya Uendeshaji
Ubatilishaji wa akiba ya ndani ya uhusishaji wa kikao wa Redis (huwezeshwa kwa hiari pekee; chaguo-msingi la SQLite halijabadilika):
Kila hifadhi ya uhusishaji ya Redis inakubali shughuli zisizozidi 8 zinazosubiri; inapofikia kikomo, simu hutumia SQLite mara moja, na nafasi hubaki zimeshikiliwa hadi kazi ya msingi ya Redis ikamilike, hata baada ya muda wa mwisho wa 100 ms wa mpigaji simu.
- R1. Jibu lolote la Redis linalowasilishwa kwa wakati kwa ajili ya operesheni ya kikao ndilo lenye mamlaka: mabadiliko yaliyokubaliwa, CAS zilizokataliwa/kupotea, funguo zinazokosekana, ufutaji wa funguo zisizokuwepo, na mafanikio au kushindwa kwa uondoaji wa kumbukumbu huondoa kwa usawazishaji safu mlalo ya akiba ya ndani ya kikao hicho, bila `await` kati ya jibu na uondoaji. Uondoaji ni salama (wakati mbaya zaidi huchaguliwa upya mara moja wakati wa hitilafu ya baadaye); safu mlalo iliyopitwa na wakati si salama.
- R2. Operesheni ambayo muda wake wa mwisho umefika au ambayo imekumbana na hitilafu na ikaandika akiba ya ndani huhifadhi hasa ilichoandika kama baiti zilizosanifiwa. Ikiwa amri yake ya Redis itakamilika kwa kuchelewa, ulinganishaji-na-ufutaji wa SQLite kwa usawazishaji huondoa safu mlalo hiyo inayolingana kabisa kwa baiti pekee, kamwe si kwa ulinganifu wa akaunti au muunganisho. Uandishi mpya zaidi wa hitilafu hubaki.
- R3. Uondoaji wa kumbukumbu huondoa kila mara pini ya ndani ya akaunti iliyoshindwa, ikiwa ni pamoja na wakati wa hitilafu; ushughulikiaji wa jibu lake hufuata R1/R2. Redis yenye afya haiandiki pini za ndani: hakuna kioo wala daftari la mpangilio, na matukio yanaweza kutofautiana wakati wa hitilafu.
Vituo vya mwisho vya viwango vya matumizi vya mtoa huduma, tunneli za mtandao (Tailscale, Ngrok, proksi ya utatuzi ya MITM), hifadhi ya egress ya 1Proxy, nakala rudufu za hifadhidata, na marekebisho madogo ya kila kipengele yanayotajwa na safu ya executor au hati.
| Kigezo | Chaguomsingi | Faili ya Chanzo | Maelezo |
| ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_SESSION_AFFINITY_STORE` | `sqlite` | `src/lib/db/sessionAffinity/storeFactory.ts` | Backend ya affinity ya kipindi kwa akaunti. Ni `redis` pekee pamoja na `REDIS_URL` iliyosanidiwa inayowezesha kushiriki; thamani ambazo hazijawekwa au hazijulikani, au usanidi wa Redis unaokosekana, hutumia SQLite. Inahitaji `sessionAffinityTtlMs` iwe chanya. Uelekezaji wa Redis huhifadhi utambulisho wa akaunti ya matumizi uliotiwa hash pamoja na kitambulisho cha muunganisho; uelekezaji chaguomsingi wa SQLite huhifadhi muundo wa JSON wa sehemu nne wa zamani. Hulinganisha utambulisho ndani ya kundi la ndani linalostahiki kabla ya kutumia ID. Hutumia `REDIS_KEY_PREFIX` ya mteja wa pamoja, thamani za JSON na TTL ya `PX`; mabadiliko hulinganisha thamani halisi iliyozingatiwa. Majibu yenye afya kutoka Redis hubatilisha hifadhi ya ndani ya hitilafu, na jibu linalochelewa linaweza kuondoa tu safu kamili ya hifadhi ya muda iliyosanifiwa iliyoandikwa na operesheni hiyo iliyoisha muda. Vigingi vilivyopakiwa mapema huthibitishwa tena vinapotumika. Hitilafu za Redis, muda kuisha au kujaa kwa uandikishaji hurudi kwenye SQLite kwa maonyo yanayodhibitiwa (kikomo cha ms 100 kwa kila mwito wa hifadhi); ukosefu wa mafanikio wa Redis haupitii shadow. Hashiriki ushikaji wa mchanganyiko, pini asilia za zamu za Codex, ulinganifu wa akaunti, vizuizi wala vikomo vya matumizi. |
| `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | Mfuatano wa muunganisho wa Redis kwa backend ya kikomo cha kasi. |
| `ALIBABA_CODING_PLAN_HOST` | _(mwenyeji wa uzalishaji)_ | `open-sse/services/bailianQuotaFetcher.ts` | Batilisha mwenyeji anayetumiwa kuchukua viwango vya mpango wa usimbaji wa Alibaba Bailian. |
| `ALIBABA_CODING_PLAN_QUOTA_URL` | iliyotokana na mwenyeji | `open-sse/services/bailianQuotaFetcher.ts` | Batilisha URL kamili ya viwango kwa Alibaba Bailian. |
| `QWEN_CLOUD_COOKIE` | _(haijawekwa)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Kuki ya kipindi cha dashibodi kwa lango la viwango vya Token Plan la kibinafsi la Qwen Cloud / Model Studio (ufunguo wa API wa inference hauwezi kuisoma). Nakili kichwa kizima cha ombi cha `Cookie` — kina `login_qwencloud_ticket` — kutoka kwa mwito wowote wa `api.json` kwenda `cs-data.qwencloud.com` kwenye home.qwencloud.com › Billing › Subscription (F12 › Network). Ni nyeti na imefungwa kwa kipindi; pendelea sehemu ya dashibodi ya `qwenCloudCookie` kwa kila muunganisho. |
| `QWEN_CLOUD_SEC_TOKEN` | _(haijawekwa)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Batilisha mwenyewe `sec_token` kwa lango la dashibodi la Token Plan. Ni nyeti; isipowekwa, fetcher huipata kutoka kwenye HTML ya dashibodi kwa kutumia kuki. |
| `QWEN_TOKEN_PLAN_HOST` | `https://cs-data.qwencloud.com` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Ubatilishaji wa mwenyeji wa gateway kwa kifaa cha kuleta kiasi cha Token Plan ya kibinafsi (kwa mfano, `bailian-singapore-cs.alibabacloud.com` kwa dashibodi ya Model Studio). |
| `QWEN_TOKEN_PLAN_DASHBOARD_URL` | `https://home.qwencloud.com/` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | URL ya dashibodi inayotumiwa kutatua `sec_token` kutoka kwenye HTML ya mtumiaji aliyeingia. |
| `XIAOMI_MIMO_CONSOLE_COOKIE` | _(haijawekwa)_ | `open-sse/services/usage/xiaomi-mimo.ts` | Cookie ya kipindi cha dashibodi kwa API ya kiasi cha Xiaomi MiMo Token Plan (`platform.xiaomimimo.com/api/v1/tokenPlan/usage` + `tokenPlan/detail` — ufunguo wa API wa inference hauwezi kuisoma). Nakili kichwa kizima cha ombi cha `Cookie` — kina `api-platform_serviceToken` na `userId` — kutoka kwenye ombi lolote linaloenda kwa `platform.xiaomimimo.com` kwenye ukurasa wa Token Plan (F12 › Mtandao). Ni nyeti na inahusishwa na kipindi; pendelea sehemu ya dashibodi ya muunganisho ya `xiaomiMimoConsoleCookie`. |
| `XIAOMI_MIMO_MONTHLY_TOKEN_LIMIT` | `4100000000` | `open-sse/services/usage/xiaomi-mimo.ts` | Bajeti ya kila mwezi (Credits) ya njia mbadala ya Xiaomi MiMo inayofuatiliwa na OmniRoute, inayotumiwa wakati hakuna cookie ya dashibodi iliyosanidiwa. Chaguo-msingi ni 4.1B ya kiwango cha Lite; iweke kuwa Credits za mpango husika (Standard 11B / Pro 38B / Max 82B). Ubatilishaji wa muunganisho mmoja wa `providerSpecificData.monthlyTokenLimit` huwa na kipaumbele kuliko kigezo hiki cha mazingira. |
| `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Ubatilishaji wa njia ya upande wa mbele wa dashibodi kwa ajili ya kuleta kiasi cha bure cha vision/media cha Alibaba Model Studio. |
| `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Ubatilishaji wa njia ya upande wa mbele wa dashibodi kwa ajili ya kuleta kiasi cha bure cha multimodal cha Alibaba Model Studio. |
| `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Ubatilishaji wa njia ya upande wa mbele wa dashibodi kwa ajili ya kuleta kiasi cha bure cha sauti cha Alibaba Model Studio. |
| `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(haijawekwa)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | Njia ya hiari ya ubatilishaji wa ndani ya JSON kwa orodha ya ndani ya kuruhusu miundo ya maandishi ya kiwango cha bure cha Alibaba. Hutumia `$DATA_DIR/alibaba-free-tier-allowlist.json`, kisha `config/alibaba-free-tier-allowlist.json` ikiwa hakuna. |
| `CONTEXT_RESERVE_TOKENS` | `1024` | `open-sse/services/contextManager.ts` | Tokeni zilizotengwa kwa matokeo ya ukamilishaji wakati wa kukokotoa bajeti za prompt. |
| `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | Idadi ya picha mpya zaidi za ndani zinazopaswa kuhifadhiwa wakati wa kuondoa za zamani ili kutoshea kwenye dirisha la muktadha (#8560). |
| `MODEL_ALIAS_COMPAT_ENABLED` | enabled | `open-sse/services/model.ts` | Washa au zima safu ya uoanifu wa lakabu za modeli za zamani inayotumiwa na wateja wakongwe. |
| `OMNIROUTE_EMERGENCY_FALLBACK` | enabled | `open-sse/services/emergencyFallback.ts` | Weka `false` (au `0`) ili kuzima njia ya dharura ya kuishiwa kwa bajeti, ambayo huelekeza upya maombi yaliyoshindwa kwenda kwenye modeli ya bure ya `nvidia`/`nvidia/nemotron-3.5-super-vl-120b-a12b`. Kipaumbele cha ufanisi ni ubatilishaji wa Feature Flags DB > env var > chaguo-msingi; ikiwa haipatikani, huduma hutumia thamani ghafi ya env. |
| `COMMAND_CODE_CALLBACK_PORT` | _(unset)_ | `src/app/api/providers/command-code/auth/shared.ts` | Porti ya ndani inayotumiwa kwa miito ya kurudi ya mtindo wa OAuth kutoka kwa msaidizi wa Command Code CLI. |
| `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Thamani inayotumwa kama kichwa cha `x-command-code-version` kwenda kwenye huduma ya juu ya Command Code. Binafsisha ili kuongeza toleo la CLI. |
| `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | URL ya msingi ya huduma ya juu ya matumizi/kikomo cha Command Code inayotumiwa na telemetry ya kiteua kikomo cha simu mahiri. Binafsisha kwa API ya Command Code inayojihudumia au mbadala. |
| `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | Porti ya ndani ya kufungia proksi ya utatuzi ya MITM. |
| `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | Weka `1` ili kuzima uthibitishaji wa TLS wa upande wa juu (kwa ajili ya usanidi pekee). |
| `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | Muda wa kuisha kwa soketi zisizotumika (ms) kwa miunganisho inayopitishwa; soketi zisizotumika zinazovuka muda huu huondolewa ili kuzuia kuvuja kwa vichuguu vilivyo wazi kwa nusu. |
| `BRIDGE_PORT` | `20129` | `bin/antigravity-bridge.mjs` | Poti ambayo daraja la MITM la Antigravity husikiliza. |
| `ROUTER_URL` | `http://127.0.0.1:20128/v1/antigravity` | `bin/antigravity-bridge.mjs` | Mwisho wa router ambao daraja hutuma trafiki ya Antigravity. |
| `CERT_DIR` | `/mitm` | `bin/antigravity-bridge.mjs` | Hubatilisha saraka ambayo daraja husoma nyenzo zake za TLS. Muundo wa cheti huchaguliwa kama seva ya AgentBridge inavyofanya: `server.crt`/`server.key` kwa usakinishaji wa leaf wa zamani, vinginevyo `ca.crt`/`ca.key` (CA ya msingi, leaf moja kwa kila hosti iliyonaswa; hulazimishwa na `MITM_ROOT_CA_ENABLED=true`). Daraja hutoka wakati wa kuanzisha ikiwa faili za muundo unaotumika hazipo. |
| `MITM_VERBOSE` | `1` | `src/mitm/server.cjs`, `src/mitm/_internal/bypass.cjs` | Kiwango cha maelezo cha kumbukumbu za maamuzi ya uelekezaji: `0` hunyamazisha, thamani za juu huweka kumbukumbu za maamuzi zaidi ya kupitisha/kuelekeza. |
| `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | Weka `true` ili kuchagua muundo wa CA ya msingi + cheti cha leaf kwa kila hosti (#6684). Usakinishaji mpya huupata kiotomatiki; usakinishaji ulio na leaf ya zamani inayoaminika huendelea kutumia cheti cha zamani chenye SAN isiyobadilika isipokuwa uchague muundo huu. |
| `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | Huwekwa NA msimamizi wa MITM kwa mchakato wa proksi ulioanzishwa (`root-ca` \| `legacy`) — huakisi uamuzi wa uhamishaji wa cheti; haikusudiwi kuwekwa mwenyewe. |
| `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | Weka `1` (yenye thamani ya kweli) ili kuondoa `sudo` ya mwanzo kwenye amri za kuamini vyeti vya MITM — kwa uwekaji usio na root / wenye nafasi za majina za mtumiaji ambapo mwendeshaji anaamini CA mwenyewe (kwa mfano, kupitia utaratibu wa Node wa vyeti vya ziada vya CA). |
| `SKIP_ANTIGRAVITY_DNS` | _(haijawekwa)_ | `src/mitm/dns/provision.ts` | Weka `true` ili kuruka kabisa uundaji wa maingizo ya DNS ya `/etc/hosts` kwa majina ya wapangishaji wa proksi ya Antigravity — kwa kontena ambazo hazina sudo/root. |
| `OMNIROUTE_SKIP_DNS_WRITE` | _(haijawekwa)_ | `src/mitm/dns/dnsConfig.ts` | Weka `1` ili kuruka uandishi kwenye faili la hosts wakati wa kuongeza/kuondoa maingizo ya DNS — kwa mazingira ya majaribio yaliyowekewa sandbox au ya kusoma pekee. |
| `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | Kizuizi cha majaribio/CI pekee: weka `1` ili kufanya usakinishaji/uondoaji wa uaminifu wa cheti usifanye chochote, ili seti ya majaribio isibadilishe kamwe hifadhi ya uaminifu ya mfumo wa uendeshaji. Hujiweka kiotomatiki na usanidi wa majaribio na mtiririko wa CI. |
| `CHANGELOG_BASE_REF` | _(kiotomatiki)_ | `scripts/check/check-changelog-integrity.mjs` | Rejeleo dhahiri la msingi kwa lango la kuzuia ulaji wa CHANGELOG (kwa chaguo-msingi hutumia tawi la msingi la PR katika CI, au `release/v*` ya juu zaidi). |
| `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | Weka `true` ili kuwezesha kipanga ratiba cha usawazishaji kiotomatiki wa hifadhi ya proksi za bure kinachofanya kazi chinichini. Ni cha kujichagulia; kimezimwa kwa chaguo-msingi. |
| `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | Muda wa kati wa usawazishaji kiotomatiki kwa milisekunde (chaguo-msingi dakika 30). |
| `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | Wezesha chanzo cha proksi za bure cha 1proxy. Weka `false` ili kukizima. |
| `FREE_PROXY_1PROXY_API_URL` | _(see oneproxy.ts)_ | `src/lib/freeProxyProviders/oneproxy.ts` | Ubatilishaji wa URL ya API ya 1proxy. |
| `FREE_PROXY_1PROXY_MAX` | `500` | `src/lib/freeProxyProviders/oneproxy.ts` | Idadi ya juu zaidi ya proksi zinazopatikana kwa kila usawazishaji kutoka 1proxy. |
| `FREE_PROXY_1PROXY_MIN_QUALITY` | `50` | `src/lib/freeProxyProviders/oneproxy.ts` | Kizingiti cha chini cha alama ya ubora kwa uingizaji wa 1proxy. |
| `FREE_PROXY_PROXIFLY_ENABLED` | `true` | `src/lib/freeProxyProviders/proxifly.ts` | Washa chanzo cha proksi zisizolipishwa cha Proxifly. Weka kuwa `false` ili kuzima. |
| `FREE_PROXY_PROXIFLY_QUANTITY` | `100` | `src/lib/freeProxyProviders/proxifly.ts` | Idadi ya proksi zinazopatikana kwa kila usawazishaji wa Proxifly. |
| `FREE_PROXY_PROXIFLY_ANONYMITY` | `elite` | `src/lib/freeProxyProviders/proxifly.ts` | Kichujio cha kiwango cha kutokujulikana kwa Proxifly (`elite`, `anonymous`, `transparent`). |
| `FREE_PROXY_IPLOCATE_ENABLED` | `false` | `src/lib/freeProxyProviders/iplocate.ts` | Washa chanzo cha proksi zisizolipishwa cha IPLocate. Ni kwa kujisajili pekee. |
| `FREE_PROXY_IPLOCATE_BASE_URL` | `https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols` | `src/lib/freeProxyProviders/iplocate.ts` | Ubatilishaji wa URL ya msingi ya orodha ya proksi ya IPLocate. |
| `FREE_PROXY_WEBSHARE_ENABLED` | `true` | `src/lib/freeProxyProviders/webshare.ts` | Washa chanzo cha dimbwi la proksi la Webshare. Weka `false` ili kuzima; pia inahitaji `FREE_PROXY_WEBSHARE_API_KEY` iwe imewekwa. |
| `FREE_PROXY_WEBSHARE_API_KEY` | _(none)_ | `src/lib/freeProxyProviders/webshare.ts` | Tokeni ya API ya akaunti ya Webshare (`Authorization: Token `). Inahitajika — mtoa huduma hubaki amezimwa bila tokeni hii. |
| `FREE_PROXY_WEBSHARE_API_URL` | `https://proxy.webshare.io/api/v2/proxy/list/` | `src/lib/freeProxyProviders/webshare.ts` | Ubatilishaji wa URL ya API ya orodha ya proksi ya Webshare. |
| `FREE_PROXY_WEBSHARE_MAX` | `500` | `src/lib/freeProxyProviders/webshare.ts` | Idadi ya juu zaidi ya proksi zinazoingizwa kwa kila ulandanishi wa Webshare. |
| `NEXT_PUBLIC_VERCEL_RELAY_ENABLED` | `true` | `src/app/(dashboard)/…/ProxyPoolTab.tsx` | Onyesha/ficha kitufe cha Deploy Vercel Relay katika kichupo cha Proxy Pool. |
| `VERCEL_API_BASE` | `https://api.vercel.com` | `src/app/api/settings/proxy/vercel-deploy/route.ts` | Ubatilishaji wa URL msingi ya API ya Vercel (kwa majaribio). |
| `NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/…/VercelRelayModal.tsx` | Jina chaguo-msingi la mradi linalojazwa awali katika modali ya kupeleka Vercel Relay. |
| `TAILSCALE_BIN` | _(auto-detect)_ | `src/lib/tailscaleTunnel.ts` | Njia mahususi ya faili ya binary ya `tailscale`. |
| `TAILSCALED_BIN` | _(tambua kiotomatiki)_ | `src/lib/tailscaleTunnel.ts` | Njia iliyo wazi ya kwenda kwenye binary ya daemon ya `tailscaled`. |
| `TAILSCALE_AUTHKEY` | _(haijawekwa)_ | `src/lib/tailscaleTunnel.ts` | Ufunguo wa uthibitishaji wa Tailscale ulioshirikiwa awali kwa `tailscale up` isiyohitaji mwingiliano / isiyo na kiolesura (hupitishwa kupitia `--auth-key=`). Isipowekwa, kuingia hutumia URL ya uthibitishaji wa kivinjari unaohitaji mwingiliano. |
| `NGROK_AUTHTOKEN` | _(haijawekwa)_ | `src/lib/ngrokTunnel.ts` | Huthibitisha tunnel za ngrok zinazotoka. |
| `DB_BACKUP_MAX_FILES` | `20` | `src/lib/db/backup.ts` | Idadi ya juu zaidi ya faili za hifadhi rudufu za SQLite zinazohifadhiwa na usafishaji wa hifadhi rudufu wa mikono/uliopangwa. Picha za hali za uhamishaji hutambuliwa kwa maudhui na kutumiwa tena kwa hali ya DB inayofanana; haziondolewi ndani ya dirisha la uhamishaji wa wakati mmoja. Hubatilisha thamani iliyohifadhiwa kutoka Settings → Database backup retention. |
| `DB_BACKUP_RETENTION_DAYS` | `0` | `src/lib/db/backup.ts` | Umri wa juu zaidi (siku) unaohifadhiwa na usafishaji wa hifadhi rudufu wa mikono/uliopangwa. `0` huzima uondoaji kulingana na umri. Picha za hali za uhamishaji haziondolewi ndani ya dirisha la uhamishaji wa wakati mmoja. Hubatilisha thamani iliyohifadhiwa kutoka Settings → Database backup retention. |
| `OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS` | `30000` | `src/lib/jobs/backupScheduleJob.ts` | Muda wa mpigo (ms) wa kazi ya upande wa seva inayotekeleza `backup-schedule.json`. Lazima ubaki chini sana ya kiwango cha cron cha dakika 1; thamani zilizo chini ya `5000` au zisizoweza kuchanganuliwa hurudi kwenye `30000`. |
| `CONTAINER_HOST` | `docker` | `scripts/check-permissions.sh` | Kidokezo cha runtime ya kontena kwa ukaguzi wa ruhusa wa entrypoint. Weka kuwa `podman` kwa topolojia yoyote ya Podman. Kwa kuwa kontena haiwezi kubaini ikiwa engine iko ndani ya mashine au inafikiwa kupitia Podman Machine, onyo hubaki bila kuhusisha topolojia mahususi na kuelekeza kwenye `contrib/podman/README.md`. |
| `QUOTA_STORE_DRIVER` | `sqlite` | `src/lib/quota/storeFactory.ts` | Backend ya hifadhi ya matumizi ya quota-share: `sqlite` (chaguo-msingi) au `redis`. |
| `QUOTA_STORE_REDIS_URL` | _(haijawekwa)_ | `src/lib/quota/storeFactory.ts` | Mfuatano wa muunganisho wa Redis unaotumika wakati `QUOTA_STORE_DRIVER=redis` (k.m. `redis://localhost:6379`). |
| `QUOTA_SATURATION_THRESHOLD` | `0.5` | `src/lib/quota/enforce.ts` | Uwiano wa msongamano wa kundi (0..1); ukifikia au kuzidi thamani hii, kundi huingia katika hali kali (hakuna ukopaji). |
| `QUOTA_SOFT_DEPRIORITIZE_FACTOR` | `0.7` | `open-sse/services/combo.ts` | Kizidishi cha alama (0..1) kinachotumika kwa lengwa wakati sera laini ya mgao inalipa kipaumbele kidogo kwake. |
| `STATUS_SOFT_DEPRIORITIZE_FACTOR` | `0.5` | `open-sse/services/combo/autoStrategy.ts` | Kizidishi cha alama (0..1) kinachotumika kwa mtoa huduma aliyeishiwa (`credits_exhausted`/`rate_limited`) katika ukadiriaji wa auto-combo wakati kikomo cha awali cha mgao kimezimwa (#4540). |
| `QUOTA_CONSUMPTION_RETENTION_DAYS` | `14` | `src/lib/db/quotaConsumption.ts` | Kipindi cha kuhifadhi (siku) kwa makundi ya `quota_consumption` kabla ya GC (`gcQuotaConsumption`). |
| `QUOTA_PREFLIGHT_CUTOFF_ENABLED` | `false` | `src/lib/resilience/settings.ts` | Kuwezesha kwa hiari (chaguo-msingi IMEZIMWA): huwezesha kikomo kikali cha mgao katika uelekezaji otomatiki, ambacho huondoa watahiniwa wenye mgao mdogo kabla ya upangaji alama. Huweka chaguo-msingi pekee: thamani ya boolean iliyohifadhiwa katika `resilienceSettings` (Dashibodi → Mipangilio → Ustahimilivu) hupewa kipaumbele. |
| `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | Kuwezesha kwa hiari (chaguo-msingi IMEZIMWA): kichujio cha `auto/:` kisipolingana na watahiniwa waliounganishwa, hurejesha tabia ya zamani ya kutumia kundi kamili (lisilochujwa) badala ya kurudisha kundi tupu. Chaguo-msingi ikiwa IMEZIMWA hufanya `:free` kumaanisha "daraja la bure pekee". |
| `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | Kikomo cha ukubwa wa paneli (kilichowekewa mipaka ya 1–10) kwa lahaja ya utangazaji ya `auto/*:chaos` — ombi moja husambazwa kwa hadi miundo hii ya watoa huduma mbalimbali. |
| `OMNIROUTE_CHAOS_MIN_PANEL` | _(chaguo-msingi ya injini)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Urekebishaji wa ukubwa wa chini wa paneli unaopitishwa kwa kidhibiti cha utangazaji wa chaos; kutowekwa huhifadhi chaguo-msingi ya injini. |
| `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(chaguo-msingi ya injini)_ | `open-sse/services/autoCombo/virtualFactory.ts` | Muda wa juu wa kusubiri (ms) kwa usambazaji mzima wa paneli ya chaos; kutowekwa huhifadhi chaguo-msingi ya injini. |
| `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | Njia ya `auth.json` ya Grok CLI inayotumiwa kupata mgao wa kila wiki wa grok-web; badilisha kwa majaribio au usakinishaji usio wa kawaida wa CLI. |
| `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(haijawekwa)_ | `src/mitm/manager.ts` | Cheti cha ziada cha CA (PEM) kinachoaminiwa kwa miunganisho ya TLS ya juu ya AgentBridge. |
| `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Idadi ya juu ya maombi yaliyokamatwa yanayohifadhiwa katika bafa ya pete ya Traffic Inspector. |
| `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | Ukubwa wa juu wa mwili wa ombi/jibu lililokamatwa (KB) kabla ya kupunguzwa. |
| `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Porti ya ndani ya proksi ya HTTP ya Traffic Inspector. |
| `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | Anzisha kiotomatiki proksi ya HTTP ya inspector wakati wa kuwasha. |
| `INSPECTOR_LLM_HOSTS_EXTRA` | _(unset)_ | `src/lib/inspector/captureState.ts` | Majina ya ziada ya wapangishaji (yaliyotenganishwa kwa koma) yanayochukuliwa kuwa ncha za LLM kwa ajili ya kunasa. |
| `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | Ficha siri (vichwa vya uthibitishaji / funguo za API) katika trafiki iliyonaswa. |
| `INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES` | `30` | `src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts` | Idadi ya dakika kabla ya ulinzi wa system-proxy kurejesha kiotomatiki mipangilio ya proksi ya mfumo wa uendeshaji. |
| `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(auto)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | Tokeni ya kuthibitisha uingizaji wa ndani wa data iliyonaswa kwenye mkaguzi. |
| `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Idadi ya juu zaidi ya safu zinazoonyeshwa kando kwa kando katika hali ya kulinganisha ya Playground. |
| `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(unset)_ | `src/app/(dashboard)/dashboard/playground/` | Modeli chaguomsingi ya kitendo cha 'kuboresha kidokezo' katika Playground (hutumia modeli amilifu ikiwa haijawekwa). |
| `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Swichi kuu ya kuzima proksi ya pembeni ya bifrost. Ikiwekwa kuwa `0`, njia hurejesha 503 ikiwa na kichwa cha `X-Bifrost-Killswitch`, na mwendeshaji huelekezwa kwenye njia ya TS. Tumia hii kuzima proksi ya pembeni bila kusambaza upya (tukio la kipanga njia cha tier-1, mzunguko wa funguo). |
| `BIFROST_BASE_URL` | _(unset)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Ikiwekwa, njia ya proksi ya pembeni ya Bifrost hupitisha trafiki ya `/v1/chat/completions` kwenye lango hili la Go badala ya kishughulikiaji cha relay cha TS. Ikiwa haijawekwa → 503-with-fallback. Mkwaju wa mwisho huondolewa. |
| `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | Port ambayo huduma iliyopachikwa ya Bifrost inayosimamiwa hufungamana nayo (`127.0.0.1:`) wakati OmniRoute inasimamia mzunguko wa maisha wa sidecar ya Bifrost. Chaguomsingi ni `8080`. |
| `SINGBOX_PORT` | `20140` | `src/lib/services/bootstrap.ts` | Port ambayo huduma iliyopachikwa ya sing-box inayosimamiwa hufungamana nayo (`127.0.0.1:`) wakati OmniRoute inasimamia mzunguko wa maisha wa sidecar ya sing-box. Chaguomsingi ni `20140`. |
| `LLMLINGUA_PORT` | `20135` | `src/lib/services/bootstrap.ts` | Port ambayo huduma ya kubana ya LLMLingua inayosimamiwa hufungamana nayo (`127.0.0.1:`). Chaguomsingi ni `20135`. |
| `LLMLINGUA_BASE_URL` | `http://127.0.0.1:20135` | `open-sse/services/compression/engines/llmlingua/index.ts` | URL msingi ya daemon ya huduma ndogo ya ndani ya HTTP ya kubana ya LLMLingua. Chaguomsingi ni `http://127.0.0.1:20135`. |
| `LLMLINGUA_MODEL` | `atjsh/llmlingua-2-js-tinybert-meetingbank` | `src/lib/services/installers/llmlingua.ts` | Kitambulisho cha modeli ya Hugging Face ambacho sidecar ya LLMLingua inayosimamiwa hupakia (hupitishwa kwenye mazingira ya mchakato mtoto). |
| `BIFROST_API_KEY` | _(haijawekwa)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Ufunguo wa API wa lango la Bifrost (hutumwa kama `Authorization: Bearer ...`). Ikiwa haujawekwa, njia inatarajia ombi libebe ufunguo halali wa API wa OmniRoute; ufunguo huu hutumika tu kwa uthibitishaji wa upande wa lango. |
| `BIFROST_STREAMING_ENABLED` | `true` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Ikiwa ni true, njia ya sidecar ya Bifrost hutiririsha majibu kupitia SSE kwa kutumia lango badala ya kitekelezaji cha utiririshaji cha TS. Weka `0` ili kulazimisha majibu ya JSON yasiyotiririshwa kupitia lango. |
| `BIFROST_TIMEOUT_MS` | `30000` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Muda wa kuisha kwa kila ombi wakati wa kutuma ombi kwa proksi ya lango la Bifrost (ms). Muda ukiisha, njia hurejesha njia ya relay ya TS kupitia kichwa cha `X-Bifrost-Fallback`. |
| `OMNIROUTE_BIFROST_KEY` | _(unset)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Jina la utani la `BIFROST_API_KEY` (hutumiwa na hati zinazosoma mazingira kupitia `OMNIROUTE_*`). `BIFROST_API_KEY` hutanguliwa inapowekwa pamoja na nyingine. |
| `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Backend ya relay ya `/api/v1/relay/chat/completions`: `ts \| bifrost \| auto`. `ts` = relay ya TypeScript (chaguo-msingi wakati Bifrost haijasanidiwa); `auto` huchagua Bifrost wakati `BIFROST_BASE_URL` imewekwa na `BIFROST_ENABLED` ≠ `0`, ikiwa na urejeshaji wa kiotomatiki kwa TS iwapo sidecar haipatikani; `bifrost` hulazimisha Bifrost (hali madhubuti, bila urejeshaji). Uthibitishaji, kikomo cha kasi, ulinzi dhidi ya sindano na orodha ya wanaoruhusiwa huendeshwa kila mara kwanza katika route ya Next. Majibu hubeba `X-Routing-Backend` / `X-Routing-Fallback` / `X-Routing-Fallback-Reason`. |
| `RELAY_ROUTING_BACKEND` | _(unset)_ | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | Jina la utani linalokubalika la `OMNIROUTE_RELAY_BACKEND` (thamani zilezile za `ts \| bifrost \| auto`). `OMNIROUTE_RELAY_BACKEND` hutanguliwa inapowekwa pamoja na nyingine. |
| `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | Muda wa kusubiri (ms) baada ya mchakato wa sidecar wa Bifrost kushindwa katika hali ya `auto`, kabla ya relay kujaribu tena sidecar; huelekeza moja kwa moja kwenye njia ya TS muda wa kusubiri unapodumu, kisha huchunguza tena. `0` huzima. Hutumika tu wakati `OMNIROUTE_RELAY_BACKEND=auto`. |
| `OMNIROUTE_TLS_CERT` | _(unset)_ | `bin/cli/commands/serve.mjs` | Njia ya cheti cha TLS cha PEM cha kuendeshea `omniroute serve` kupitia HTTPS (sawa na `--tls-cert`). Lazima iambatane na `OMNIROUTE_TLS_KEY`; seva huru hukomesha TLS kwenye msikilizaji huohuo (`wss://` hufanya kazi bila mabadiliko). Ikiwa haijawekwa → HTTP ya kawaida. Kutoa cert/key moja pekee, au njia isiyoweza kusomeka, huandika onyo na kubaki kwenye HTTP. |
| `OMNIROUTE_TLS_KEY` | _(unset)_ | `bin/cli/commands/serve.mjs` | Njia ya ufunguo binafsi wa TLS wa PEM kwa HTTPS ya `omniroute serve` (sawa na `--tls-key`). Lazima iambatane na `OMNIROUTE_TLS_CERT`. Tazama `OMNIROUTE_TLS_CERT`. |
| `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | Swichi kuu ya routes za `/api/local/*`. Ikiwa haijawekwa au ni `0`, routes zote za `/api/local/*` hurejesha 503 katika uzalishaji. Lazima iwe `1` katika deployments zisizo za loopback ili kuwezesha kizindua cha Redis na vianzisha huduma vingine vya ndani vya kubofya mara moja. Ni ulinzi wa ziada pamoja na uainishaji wa ulinzi wa route wa `isLocalOnlyPath()` (`LOCAL_ONLY_API_PREFIXES` katika `src/server/authz/routeGuard.ts`). |
| `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(unset)_ | `src/lib/security/localEndpoints.ts` | Tokeni ya Bearer kwa wapigaji wa `/api/local/*` ambao hawako kwenye loopback (kwa mfano, programu ya eneo-kazi). Ikiwekwa, maombi kutoka kwa anwani za IP zisizo za loopback lazima yabebe `Authorization: Bearer `. Inahitajika wakati `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1` katika deployments zisizo za loopback. |
| `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | Jina la kontena kwa kizindua Redis cha kubofya mara moja (`omniroute redis up`). Hutumiwa na CLI na GUI ya `RedisLauncherPanel`. |
| `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | Porti ya mwenyeji kwa kizindua Redis cha kubofya mara moja. Ongeza thamani ikiwa mwenyeji tayari anafunga 6379. Porti ya ndani ya kontena inabaki 6379. |
| `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | Kiolesura cha mwenyeji ambacho kizindua Redis cha kubofya mara moja huchapisha huduma hiyo. Kizindua huanzisha Redis BILA nenosiri, kwa hivyo kufunga kwenye `0.0.0.0` huwapa kila mwenyeji kwenye LAN yako Redis isiyohitaji uthibitishaji — panua hii tu ikiwa pia utaweka nenosiri kwenye instance hiyo mwenyewe. |
| `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Kiolesura cha mwenyeji ambacho docker-compose huchapisha Redis sidecar kwenye (#9286). Redis ya compose huendeshwa bila `requirepass`; kontena za programu huifikia kupitia mtandao wa compose (`redis:6379`) — porti iliyochapishwa ipo kwa ajili ya zana za upande wa mwenyeji pekee. `0.0.0.0` hufichua Redis isiyohitaji uthibitishaji kwa LAN nzima. |
| `REDIS_PORT` | `6379` | `docker-compose.yml` | Porti ya mwenyeji kwa Redis sidecar ya compose. |
| `APP_BIND_HOST` | `127.0.0.1` | `docker-compose.yml`, `docker-compose.prod.yml` | Kiolesura cha mwenyeji ambacho docker-compose huchapisha dashibodi/API/porti za live-WS za programu yenyewe kwenye (#12568). Kwa kuwa `REQUIRE_API_KEY=false` inatumwa kama thamani chaguo-msingi ya `.env.example`, `0.0.0.0` hufichua proksi ya LLM isiyohitaji utambulisho ya `/v1` kwa LAN/WAN nzima — panua hii tu baada ya `REQUIRE_API_KEY=true` kuwekwa au proksi ya kinyume iliyo mbele kutekeleza uthibitishaji wake yenyewe. |
| `QDRANT_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Kiolesura cha mwenyeji ambacho docker-compose huchapisha memory sidecar ya Qdrant kwenye (#12578). Sababu za kufichua kwa LAN ni sawa na za `REDIS_BIND_HOST`. |
| `BIFROST_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Kiolesura cha mwenyeji ambacho docker-compose huchapisha router sidecar ya Bifrost kwenye (#12578). Sababu za kufichua kwa LAN ni sawa na za `REDIS_BIND_HOST`. |
| `REDIS_KEY_PREFIX` | `omniroute:` | `src/shared/utils/rateLimiter.ts` | Kiambishi awali cha namespace kinachotumika kwa kila ufunguo wa OmniRoute wa Redis (kikomo cha kasi, akiba ya uthibitishaji, hifadhi ya quota, kikatiza mzunguko wa warmup). Huzuia migongano ya funguo wakati mfano wa Redis unashirikiwa na programu nyingine (#11042). |
| `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | _(haijawekwa — utaratibu umezimwa)_ | `src/lib/api/internalServiceAuth.ts` | Siri ya pamoja kwa miunganisho ya ndani ya REST inayohifadhi utambulisho (#9260): vipengele vya OmniRoute vinavyopiga simu kwenye njia nyingine za ndani za OmniRoute huituma kama `x-omniroute-internal-service-token` ili utambulisho wa mpigaji wa awali uhifadhiwe. Hulinganishwa kwa kutumia `timingSafeEqual`. |
| `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | _(haijawekwa)_ | `src/lib/api/internalServiceAuth.ts` | Tofauti ya faili ya siri ya tokeni ya huduma ya ndani: njia ya faili ambayo maudhui yake yaliyopunguzwa nafasi za pembeni ndiyo tokeni. Huangaliwa tu wakati kigezo cha ndani hakijawekwa. |
| `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | `src/lib/catalog/openrouterProviderStats.ts` | Huongeza orodha ya watoa huduma kwenye dashibodi kwa takwimu za viwango vya kila wiki za OpenRouter (#9324). Huwashwa kwa chaguo-msingi; weka `false` ili kuruka kabisa upakuaji wa chinichini (hauzuii operesheni, na kamwe hausababishi hitilafu ya kusitisha). |
| `OPENROUTER_PROVIDER_STATS_TTL_MS` | `86400000` (24h) | `src/lib/catalog/openrouterProviderStats.ts` | Muda wa TTL wa akiba ya muhtasari wa takwimu za watoa huduma wa OpenRouter, kwa milisekunde. |
| `OMNIROUTE_REDIS_IMAGE` | `redis:7-alpine` | `bin/cli/commands/redis.mjs` | Picha ya Redis inayotumiwa na kizindua cha Redis cha kubofya mara 1. Ibadilishe kuwa `redis:8-alpine` au kioo cha sajili binafsi inapohitajika. |
| `QDRANT_HOST` | `qdrant` | _(wasifu wa klasta wa hiari)_ | Jina la mpangishaji la sidecar ya Qdrant wakati `--profile memory` inatumika. Chaguo-msingi huelekeza kwenye jina la huduma ya qdrant ndani ya mtandao; libadilishe kwa utumaji wa nje. Hutumika tu wakati `qdrantEnabled` ni `true` kwenye msimbo (`src/lib/memory/vectorStore.ts:108`). |
| `QDRANT_PORT` | `6333` | _(wasifu wa klasta wa hiari)_ | Porti ya REST ya sidecar ya Qdrant. |
| `QDRANT_GRPC_PORT` | `6334` | _(wasifu wa klasta wa kujisajili)_ | Mlango wa gRPC wa sidecar ya Qdrant. Hutumiwa na maktaba za mteja zinazopendelea gRPC badala ya REST kwa shughuli za utiririshaji. |
| `QDRANT_API_KEY` | _(haijawekwa)_ | _(wasifu wa klasta wa kujisajili)_ | Ufunguo wa API wa hiari wa Qdrant Cloud au tukio la ndani lenye uthibitishaji. Tupu → hakuna kichwa cha `api-key` kinachotumwa. |
| `QDRANT_COLLECTION` | `omniroute-memory` | _(wasifu wa klasta wa kujisajili)_ | Jina la mkusanyiko wa uingizaji wa kumbukumbu ya mazungumzo wa OmniRoute. Huundwa wakati wa kwanza wa kuendesha kwa vipimo vya `QDRANT_VECTOR_SIZE`. |
| `QDRANT_EMBEDDING_MODEL` | `text-embedding-3-small` | _(wasifu wa klasta wa kujisajili)_ | Jina la msingi la modeli ya uingizaji lililorekodiwa katika metadata ya mkusanyiko wa Qdrant. Uingizaji halisi hutengenezwa na mtoa huduma yeyote ambaye sehemu ya `embeddingModel` katika mipangilio ya OmniRoute inaelekeza kwake. |
| `QDRANT_VECTOR_SIZE` | `1536` | _(wasifu wa klasta wa kujisajili)_ | Kipimo cha vekta ya uingizaji. Lazima kilingane na modeli unayotumia kuunda uingizaji (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768). |
| `QDRANT_HNSW_EF_CONSTRUCT` | `128` | _(wasifu wa klasta wa kujisajili)_ | Usahihi wa uundaji wa faharasa ya HNSW. Juu zaidi = uundaji wa polepole, utafutaji wa haraka. |
| `OMNIROUTE_ROTATION_ENABLED` | `true` | `open-sse/services/rotationConfig.ts` | Swichi kuu ya mzunguko wa akaunti unaoweza kusanidiwa na mwendeshaji. Ikiwa `false`, hakuna mojawapo ya madarasa ya `OMNIROUTE_ROTATE_*` yaliyo hapa chini itakayoanzisha kurejea kwenye akaunti nyingine (hali ya swichi kuu kuzimwa pia huzuia madarasa ya 429/500/502 yaliyowashwa kwa chaguomsingi). Huruhusu kiolesura cha mbele kinachosimamia (kwa mfano, programu ya eneo-kazi ya VibeProxy) kuakisi sheria zake za mzunguko kwenye injini ya nyuma ya kurejea kwenye akaunti. |
| `OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS` | `0` | `open-sse/services/rotationConfig.ts` | Muda wa kusubiri (sekunde) unaotumika kwa akaunti iliyowekewa kikomo cha kiwango wakati mfumo wa juu hautoi kidokezo dhahiri cha kuweka upya. `0` = tumia muda chaguomsingi wa kusubiri wa injini badala ya ubatilishaji maalum. |
| `OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET` | `true` | `open-sse/services/rotationConfig.ts` | Kioo cha upendeleo wa upande wa mbele wa "usiweke lebo ya kuzuiwa kwa kikomo cha matumizi bila muda wa kuweka upya". |
| `OMNIROUTE_ROTATE_ON_429` | `true` | `open-sse/services/rotationConfig.ts` | Uwezeshaji wa akiba kwa kila hali ya hitilafu kwa hitilafu za `429`. Wakati `false` (na `OMNIROUTE_ROTATION_ENABLED=true`), `429` haisababishi tena mzunguko wa akaunti na badala yake hurudishwa kwa mteja. |
| `OMNIROUTE_ROTATE_429_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Idadi ya hitilafu za `429` ndani ya `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` inayohitajika kabla ya akaunti kuzungushwa. `1` (chaguo-msingi) huzungusha mara moja, hivyo kudumisha tabia ya awali. |
| `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Kipindi kinachoteleza (sekunde) ambacho ndani yake hitilafu za `429` huhesabiwa kuelekea `OMNIROUTE_ROTATE_429_THRESHOLD`. |
| `OMNIROUTE_ROTATE_ON_500` | `true` | `open-sse/services/rotationConfig.ts` | Uwezeshaji wa akiba kwa kila hali ya hitilafu za seva za `5xx` (isipokuwa `502`, ambayo ina aina yake). Wakati `false`, hitilafu hizi hazisababishi tena mzunguko wa akaunti. |
| `OMNIROUTE_ROTATE_500_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Idadi ya hitilafu za `5xx` ndani ya `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` inayohitajika kabla ya akaunti kuzungushwa. `1` (chaguo-msingi) huzungusha mara moja. |
| `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Kipindi kinachoteleza (sekunde) ambacho ndani yake hitilafu za `5xx` huhesabiwa kuelekea `OMNIROUTE_ROTATE_500_THRESHOLD`. |
| `OMNIROUTE_ROTATE_ON_502` | `true` | `open-sse/services/rotationConfig.ts` | Uwezeshaji wa akiba kwa kila hali ya hitilafu za `502` (lango lisilo sahihi). Wakati `false`, `502`s hazisababishi tena mzunguko wa akaunti. |
| `OMNIROUTE_ROTATE_502_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Idadi ya makosa ya `502` ndani ya `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` inayohitajika kabla ya akaunti kuzungushwa. `1` (chaguo-msingi) huzungusha mara moja. |
| `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Kipindi kinachoteleza (sekunde) ambacho makosa ya `502` huhesabiwa kuelekea `OMNIROUTE_ROTATE_502_THRESHOLD`. |
| `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | Chaguo la kuamilisha (chaguo-msingi limezimwa): ikiwa `true`, `400` ya kawaida (ombi batili) pia husababisha akaunti kuzungushwa. Hii ni nyongeza pekee — haizuii kamwe tabia iliyopo ya injini ambapo `400` iliyo na maandishi ya kikomo cha kiwango/kvota bado husababisha kuanguka bila kujali alama hii. |
| `OMNIROUTE_ROTATE_400_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | Idadi ya makosa ya `400` ndani ya `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` inayohitajika kabla ya akaunti kuzungushwa (hushauriwa tu wakati `OMNIROUTE_ROTATE_ON_400=true`). |
| `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | Kipindi kinachoteleza (sekunde) ambacho makosa ya `400` huhesabiwa kuelekea `OMNIROUTE_ROTATE_400_THRESHOLD`. |
### Kipangaji cha Uanzishaji wa Claude
Uanzishaji unaoendeshwa na Cron kwa miunganisho ya Anthropic OAuth iliyochagua kujiunga, ili dirisha la kikomo cha kiwango la saa 5 lifunguliwe na ombi dogo lililopangwa badala ya ombi halisi la kwanza (#8848). Kipangaji kimezimwa isipokuwa `OMNIROUTE_WARMUP_ENABLED` iwe na thamani ya kweli **na** muunganisho uwe umewekwa alama katika `settings.claudeWarmup.connections`; orodha tupu ya miunganisho inamaanisha hakuna kitakachowashwa hata kama env var imewashwa.
| Variable | Default | Source File | Description |
| ------------------------------ | --------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_WARMUP_ENABLED` | _(unset → off)_ | `src/lib/warmupScheduler.ts` | Swichi kuu ya kipangaji cha uanzishaji. Inakubali `1`/`true`/`yes`/`on` (bila kujali herufi kubwa au ndogo, na nafasi za pembeni huondolewa). Thamani nyingine yoyote, au kutowekwa, huacha kipangaji kikiwa kimezimwa. |
| `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | Usemi wa Cron wenye sehemu tano kwa tukio la uanzishaji, unaotathminiwa katika `America/Los_Angeles` (saa za eneo za kuweka upya za Anthropic) bila kujali saa ya mashine mwenyeji. |
| `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | Idadi ya miunganisho inayowashwa kwa wakati mmoja katika kila tukio. Huwekwa ndani ya `1`-`10`; thamani isiyo ya nambari hurudi kuwa `3`. |
| `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | Modeli inayotumiwa kwa ombi la uanzishaji. Ibadilishe tu ikiwa chaguo-msingi haipatikani kwenye mpango wako; chagua modeli ya gharama ya chini zaidi ambayo bado hufungua dirisha. |
### Vipindi vya VNC vya Kuingia kwenye Kivinjari na Lakabu ya Data-Dir
Chromium+VNC iliyo ndani ya kontena inayotumiwa kunasa vitambulisho vya kuingia kwenye kivinjari kwa njia shirikishi (`/api/vnc-session`), pamoja na lakabu ya zamani ya `DATA_DIR`. Vyote ni vya hiari — chaguo-msingi za VNC hulenga picha iliyofungwa ya `omniroute-vnc-chromium:local` na hubadilishwa tu kwa picha maalum ya kontena, milango, au marekebisho ya mzunguko wa maisha.
| Kigezo | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Lebo la picha ya Docker kwa kontena la kuingia la Chromium+VNC. Jenga `docker/vnc-browser/chromium` au elekeza hii kwenye picha maalum. |
| `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Bainari ya runtime ya kontena inayotumika kuzindua kontena la VNC (kwa mfano, iweke kuwa `podman`). |
| `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | Mlango wa VNC/noVNC unaofichuliwa ndani ya kontena. |
| `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Mlango wa Chrome DevTools Protocol ndani ya kontena. |
| `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Njia ya saraka ya wasifu wa Chromium ndani ya kontena. |
| `OMNIROUTE_VNC_PROFILE_DIR` | `$HOME/.omniroute/browser-login-profiles` | `src/lib/vncSession/manifest.ts` | Saraka ya mwenyeji inayohifadhi wasifu wa kuingia wa kivinjari uliodumishwa. |
| `OMNIROUTE_VNC_IDLE_MS` | `600000` (dak. 10) | `src/lib/vncSession/manifest.ts` | Muda wa kuisha kwa kutotumika (ms) kabla ya kipindi cha VNC kisichotumika kuondolewa. |
| `OMNIROUTE_VNC_MAX_MS` | `1800000` (dak. 30) | `src/lib/vncSession/manifest.ts` | Kikomo cha juu (ms) cha muda wa kuishi wa kipindi kimoja cha VNC. |
| `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Idadi ya juu ya vipindi vya VNC vinavyoweza kutumika kwa wakati mmoja. |
| `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Muda wa kuisha (ms) wa kusubiri kivinjari kilichowekwa kwenye kontena kiwe tayari kwa CDP. |
| `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Muda wa kuisha (ms) wa kukusanya kipindi/kuki zilizonaswa baada ya kuingia kukamilika. |
| `OMNIROUTE_VNC_CHROMIUM_ARGS` | `--remote-debugging-port=9222 --no-first-run --no-default-browser-check` | `src/lib/vncSession/manifest.ts` | Bendera za ziada za mstari wa amri zinazopitishwa kwa Chromium iliyo kwenye kontena. |
| `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Mtandao maalum wa Docker ambao kontena la kuingia la VNC hujiunga nao (#12571) badala ya bridge chaguomsingi, ili kontena jirani zisiweze kufikia mlango wake wa daraja la CDP. |
| `VIBEPROXY_DATA_DIR` | _(haijawekwa)_ | `open-sse/services/notionThreadSessions.ts` | **Jina mbadala la zamani** la `DATA_DIR`, hukaguliwa tu baada ya `DATA_DIR` na `OMNIROUTE_DATA_DIR` zote kutowekwa. Hupata akiba ya vipindi vya nyuzi za wavuti za Notion (`/notion-web-thread-sessions.json`). |
---
## 26. Mtihani & E2E Harness
Inatumiwa na `scripts/dev/run-next-playwright.mjs`, `scripts/dev/smoke-electron-packaged.mjs`, `scripts/dev/run-ecosystem-tests.mjs`, na `scripts/build/uninstall.mjs`. Wacha kila thamani iliyo hapa chini ikiwa haijawekwa katika uwekaji wa matoleo ya umma.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| -------------------------------------- | ------------------------------ | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_E2E_BOOTSTRAP_MODE` | `auth` | `scripts/dev/run-next-playwright.mjs` | E2E bootstrap mode (`auth`, `fresh`, `reuse`) kwa kikimbiaji Playwright. |
| `OMNIROUTE_E2E_PASSWORD` | inarudi kwa `INITIAL_PASSWORD` | `scripts/dev/run-next-playwright.mjs` | Nenosiri la msimamizi limeingizwa kwenye mazingira Playwright. |
| `OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Zima kura ya ukaguzi wa afya ya eneo lako wakati wa utekelezaji wa Playwright. |
| `OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Zima kitanzi cha OAuth token healthcheck wakati wa majaribio. |
| `OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS` | _(haijawekwa)_ | `src/lib/tokenHealthCheck.ts` | Watoa huduma waliotenganishwa na koma hawajajumuishwa kwenye ufagiaji wa kuonyesha upya tokeni (km `codex,openai`). Njia mbadala inayolengwa ya kuzima kabisa watoa huduma wa — short-TTL wa cheki ya afya huendelea kuburudishwa huku watoa huduma wa mteremko wakiendelea kufanya kazi pekee. |
| `OMNIROUTE_HIDE_HEALTHCHECK_LOGS` | `true` | `scripts/dev/run-next-playwright.mjs` | Nyamazisha kelele za ukaguzi wa afya katika Playwright stdout. |
| `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Ruka muundo wa uzalishaji wa Next.js kabla ya Playwright kuanza ( uboreshaji wa CI ). |
| `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | Ruka ndoano ya kufuta OmniRoute (inayotumiwa na CI kuweka `node_modules` sawa). |
| `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | Muda wa kusubiri (ms) ili seva iwe na afya njema kabla ya kufanya majaribio ecosystem/protocol. |
| `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | URL chombo cha moshi Electron kinatarajia programu iliyopakiwa kutumika. |
| `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | Jumla ya muda umekwisha (ms) kabla kifaa cha moshi kukata tamaa. |
| `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | Tatua dirisha (ms) baada ya upakiaji wa ukurasa. |
| `ELECTRON_SMOKE_APP_EXECUTABLE` | _(otomatiki)_ | `scripts/dev/smoke-electron-packaged.mjs` | Njia ya wazi ya Electron iliyofungwa inayoweza kutekelezwa. |
| `ELECTRON_SMOKE_DATA_DIR` | _(tmpdir)_ | `scripts/dev/smoke-electron-packaged.mjs` | Saraka ya data ya Electron moshi kukimbia. |
| `ELECTRON_SMOKE_KEEP_DATA` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Weka `1` kuhifadhi saraka ya data ya moshi baada ya kukimbia. |
| `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | Weka `1` kutiririsha kumbukumbu za Electron ili stdout wakati wa kukimbia. |
| `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: zindua upya dhidi ya dir sawa ya data na udai kuwa uzinduzi wa pili utachagua kiendesha SQLite asili. |
| `CLI_DEVIN_BIN` | _(kuangalia PATH )_ | `open-sse/executors/devin-cli.ts` | Batilisha njia ya binary ya Devin CLI. |
### Bomba la kutafsiri hati
Inatumiwa na `scripts/i18n/run-translation.mjs` (amri ya `npm run i18n:run` ). Vigezo vyote sita havijawekwa kwa chaguo-msingi — huviweka katika `.env` pekee kwenye mashine ambazo zinafaa kuwa na uwezo wa kuendesha kitafsiri cha hati.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------ | -------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_TRANSLATION_API_URL` | _(haijawekwa)_ | `scripts/i18n/run-translation.mjs` | Msingi wa URL unaolingana na OpenAI kwa mandharinyuma ya tafsiri. |
| `OMNIROUTE_TRANSLATION_API_KEY` | _(haijawekwa)_ | `scripts/i18n/run-translation.mjs` | Tokeni ya mbebaji kwa mazingira ya nyuma ya tafsiri (haijaingia kamwe). |
| `OMNIROUTE_TRANSLATION_MODEL` | _(haijawekwa)_ | `scripts/i18n/run-translation.mjs` | Kitambulisho cha mfano, kwa mfano `gpt-4o-mini` au `cx/gpt-5.4-mini`. |
| `OMNIROUTE_TRANSLATION_FALLBACK_MODELS` | _(haijawekwa)_ | `scripts/i18n/lib/translate-backend.mjs` | Msururu wa kielelezo uliotenganishwa kwa hiari kwa koma ulijaribiwa kwa mpangilio wakati muundo msingi umeshindwa (mgawo wa 429, 401/402, 5xx, muda umeisha, mtandao); ombi mbovu (400/413/422) halijaribiwi tena mahali pengine. |
| `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | Muda wa ombi umekwisha katika milisekunde. |
| `OMNIROUTE_TRANSLATION_REASONING_EFFORT` | _(haijawekwa)_ | `scripts/i18n/lib/translate-backend.mjs` | Udhibiti wa hiari wa hoja, unaotumwa kama-ulivyo kwa mazingira ya nyuma wakati umewekwa. |
| `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | Maombi ya tafsiri sambamba wakati wa kutumia faili / lugha nyingi. |
| `OMNIROUTE_TRANSLATION_ENGINE` | `llm` | `scripts/i18n/run-translation.mjs` | `llm` hutumia backend hapo juu; `google` hutafsiri kupitia injini Google iliyo salama ya muundo na haihitaji vigeuzo vyovyote vya LLM. |
| `OMNIROUTE_TRANSLATION_GOOGLE_FALLBACK` | `1` | `scripts/i18n/run-translation.mjs` | Na injini ya `llm`, chunk ambayo mtindo haukuweza kutoa (mlinzi wa pato alishindwa kwa kila jaribio, au kosa la mfano) hutafsiriwa na Google badala ya kushindwa eneo. `0` inazima. |
| `OMNIROUTE_TRANSLATION_GOOGLE_API_KEY` | _(haijawekwa)_ | `scripts/i18n/lib/google-translate.mjs` | Kitufe cha Hiari cha Tafsiri ya Wingu v2. Isiyowekwa hutumia sehemu ya mwisho ya wavuti isiyo na ufunguo (kikomo cha bei, faini kwa mawimbi ya hapa na pale). |
| `OMNIROUTE_TRANSLATION_GOOGLE_CONCURRENCY` | `6` | `scripts/i18n/lib/google-translate.mjs` | Maombi ya Google sambamba yanayoshirikiwa na kila eneo la uendeshaji. |
| `OMNIROUTE_TRANSLATION_GOOGLE_TIMEOUT_MS` | `30000` | `scripts/i18n/lib/google-translate.mjs` | Muda wa ombi umeisha kwa injini Google, kwa milisekunde. |
| `UI_KIT_READ_TOKEN` | _(haijawekwa)_ | `scripts/check/check-ui-kit-upstream.mjs` | Tokeni ya kusoma pekee ya repo ya faragha UI kit repo, inayotumiwa na `npm run check:ui-kit-upstream` na mtiririko wa kazi wa kila wiki wa "UI Kit upstream watch". Ndani ya nchi cheki hutumia vitambulisho vyako vya git. |
---
## 27. Mlisho wa Rada (Kujihudumia)
Programu jalizi ya hiari iliyowekwa na bendera ya kipengele cha RADAR_ENABLED (chaguo-msingi imezimwa — bendera ya kipengele inayobadilishwa kupitia Settings/DB, si env var; ona [docs/frameworks/RADAR.md](../frameworks/RADAR.md#flag-radar_enabled-default-off) ). Vigezo vinne vya kwanza hapa chini ni ubatilishaji wa hiari wa mlisho unaojipangisha au uliogawanyika na mitiririko ya funguo tegemezi. Ya tano, `RADAR_ADMIN_URL`, ni kiungo tofauti kisicho na chaguo-msingi kwa paneli ya uendeshaji ya kibinafsi ya mmiliki. Tazama [docs/frameworks/RADAR.md](../frameworks/RADAR.md) kwa hati kamili ya moduli na [uanzishaji wake kutoka mwisho hadi mwisho na mlolongo wa usanidi wa mwongozo](../frameworks/RADAR.md#end-to-end-activation-and-guided-setup).
Kisomaji cha tangazo la jumla Home/Changelog hakijasanidiwa na tofauti ya mazingira na haitegemei alama ya kipengele cha RADAR_ENABLED. Inasoma hazina ya umma `news.json` URL iliyotangazwa katika `src/shared/utils/releaseNotes.ts` na GET pekee; kufukuzwa IDs kubaki katika hifadhi ya ndani ya kivinjari.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ----------------------------- | -------------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RADAR_FEED_URL` | `https://radar.omniroute.online` | `src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts` | URL msingi hushirikiwa na katalogi iliyotiwa saini tofauti, marejeleo, matoleo ya wafadhili na milisho ya Intel. Batilisha ili uelekeze kwenye huduma inayojiendesha yenyewe au iliyogawanyika. |
| `RADAR_FEED_PUBKEY` | _(ufunguo chaguomsingi umebandikwa)_ | `src/lib/radar/pinnedKeys.ts` | Ufunguo wa umma wa Ed25519 (base64-DER SPKI au PEM) ulitumika kuthibitisha saini za mipasho kutoka kwa mipasho maalum. |
| `RADAR_CONTRIBUTOR_CLAIM_URL` | `https://radar.omniroute.online/auth/github` | `src/lib/radar/links.ts` | URL kitufe cha dashibodi cha "Mimi ni mchangiaji" hufunguka ( mtiririko wa dai la ufunguo wa GitHub OAuth ). |
| `RADAR_SUPPORTER_PLANS_URL` | `https://radar.omniroute.online/planos` | `src/lib/radar/links.ts` | URL kitufe cha dashibodi cha "Saidia mradi" hufungua ( ukurasa wa payment/plans ). |
| `RADAR_ADMIN_URL` | _(haijawekwa)_ | `src/lib/radar/links.ts` | Kiungo cha paneli ya shughuli za kibinafsi za mmiliki pekee. HTTPS inahitajika isipokuwa kwa kitanzi cha nyuma SSH HTTP mbele; thamani ambazo hazijawekwa au batili haziunda kipengee cha kusogeza. |
---
## Ukaguzi: Vigezo Vilivyoondolewa / Vilivyokufa
Vigezo vifuatavyo vilionekana katika matoleo ya awali ya `.env.example` lakini yana** hakuna marejeleo ya wakati wa utekelezaji** katika codebase ya sasa. Wameondolewa:
| Inaweza kubadilika | Sababu |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `STORAGE_DRIVER=sqlite` | Kamwe usisome na faili yoyote ya chanzo. SQLite ndiye dereva pekee anayetumika — hakuna uteuzi unaohitajika. |
| `INSTANCE_NAME=omniroute` | Wasilisha violezo vya zamani docs/env lakini haitumiki wakati wa utekelezaji. Inaweza kurudi katika kipengele cha baadaye cha matukio mengi. |
| `SQLITE_MAX_SIZE_MB=2048` | Haijarejelewa katika msimbo wa chanzo. Ukubwa wa hifadhidata sio mdogo kwa njia bandia. |
| `SQLITE_CLEAN_LEGACY_FILES=true` | Haijarejelewa katika msimbo wa chanzo. Usafishaji wa urithi uliwezekana kuondolewa. |
| `CLI_ROO_BIN` | Haijasajiliwa katika `src/shared/services/cliRuntime.ts`. |
| `CLI_KIMI_CODING_BIN` | Haijasajiliwa katika `src/shared/services/cliRuntime.ts` (Kimi Coding hutumia OAuth, sio CLI binary). |
| `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | Haijarejelewa popote katika msimbo wa chanzo. |
| `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` | Imeondolewa katika v3.8.0. Muda wa utekelezaji hausomi tena vitambulisho hivi vya env vars — vinatoka kwa Dashibodi / `data/provider-credentials.json` / iliyosimbwa DB. |
| `CURSOR_PROTOBUF_DEBUG` | Imeondolewa katika v3.8.0. mtekelezaji Cursor hutumia `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` (ona §22). |
| `CLI_COMPAT_KIRO` | Imeondolewa katika v3.8.0. Kiro iko katika `CLI_COMPAT_OMITTED_PROVIDER_IDS` — kugeuza kwake hakuna athari. |
| `QIANFAN_API_KEY` | Imeondolewa pamoja na vibao vingine vya API vya mtoa huduma ambavyo havijatumika katika v3.8.0. |
### Marekebisho ya Thamani Chaguomsingi
| Inaweza kubadilika | Thamani ya zamani `.env.example` | Chaguomsingi ya Msimbo Halisi | Imerekebishwa |
| ------------------------- | -------------------------------- | ----------------------------- | ---------------------------------------------------------------------- |
| `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Imeondolewa thamani inayopotosha; kumbukumbu `7` kama chaguo-msingi |
| `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ Imeondolewa thamani inayopotosha; kumbukumbu `7` kama chaguo-msingi |
### uundaji upya wa usanidi OpenCode (zana za ad-hoc)
Inatumiwa na `scripts/ad-hoc/regen-opencode-config.ts` kutengeneza tena `opencode.json` yenye thamani sahihi za `limit.context` na `limit.output` kutoka kwa mfano wa OmniRoute unaoendelea. Hakuna kati ya hizi zinazohitajika kwa operesheni ya kawaida — hati ni zana ya msanidi pekee.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------ | ------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_URL` | `http://localhost:20128` | `scripts/ad-hoc/regen-opencode-config.ts` | Msingi wa URL wa mfano wa OmniRoute kuuliza `/v1/models`. |
| `OMNIROUTE_KEY` | _(haijawekwa)_ | `scripts/ad-hoc/regen-opencode-config.ts` | API ufunguo wa kuthibitisha dhidi ya mwisho wa OmniRoute `/v1/models`. Hurudi hadi `OPENCODE_API_KEY` wakati haijawekwa. |
| `OPENCODE_API_KEY` | _(haijawekwa)_ | `scripts/ad-hoc/regen-opencode-config.ts` | Kitufe cha API mtindo wa OpenCode (`sk-...`) kimeandikwa kwenye `opencode.json` iliyofanywa upya. Hurudi hadi `OMNIROUTE_KEY` wakati haijawekwa. |
### Mfinyazo nje ya mtandao-eval harness (zana za ad-hoc)
Inatumiwa na `scripts/compression-eval/index.ts`, tathmini ya mbano nje ya mtandao CLI. Haihitajiki kwa utumiaji wa kawaida wa zana za msanidi programu — pekee.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------- | ------------ | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (tupu) | `scripts/compression-eval/index.ts` | Vitambulisho vya JSON vinavyotolewa na opereta kwa mtoa huduma vinavyotekelezwa na mbano-eval CLI ya nje ya mtandao (ikichanganuliwa na `JSON.parse`). Acha bila kuweka kwa kukimbia kavu. |
### VNC Vikao vya Kivinjari
Inatumiwa na `src/lib/vncSession/manifest.ts` kusanidi vipindi vya Chromium visivyo na kichwa kulingana na Docker kwa watoa huduma wa otomatiki wa kivinjari. Chaguo-msingi zote za hiari — zilizoonyeshwa hapa chini.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------- | ------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | Njia ya Docker binary inayotumiwa kuibua vyombo vya VNC. |
| `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Docker picha ya chombo cha Chromium cha VNC. |
| `OMNIROUTE_VNC_CHROMIUM_ARGS` | _(bendera zilizojengwa ndani)_ | `src/lib/vncSession/manifest.ts` | Args za ziada za Chromium CLI hupitishwa kwa kivinjari ndani ya kontena. |
| `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | VNC bandari ndani ya kontena. |
| `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | Mlango wa Itifaki ya Chrome DevTools ndani ya kontena. |
| `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | Saraka ya wasifu ndani ya kontena. |
| `OMNIROUTE_VNC_PROFILE_DIR` | _(haijawekwa)_ | `src/lib/vncSession/manifest.ts` | Saraka ya upande wa mwenyeji kwa wasifu unaoendelea wa kivinjari. |
| `OMNIROUTE_VNC_IDLE_MS` | `600000` | `src/lib/vncSession/manifest.ts` | Muda wa kutofanya kitu (ms) kabla ya kipindi cha VNC kuvunwa. |
| `OMNIROUTE_VNC_MAX_MS` | `1800000` | `src/lib/vncSession/manifest.ts` | Muda wa juu zaidi wa kipindi (ms). |
| `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | Upeo wa vipindi VNC vinavyofanana. |
| `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | Muda wa utayari wa kivinjari umekwisha (ms). |
| `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Harvest/cleanup muda umeisha (ms). |
| `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | Mtandao wa Docker uliojitolea ambao kontena hujiunga (#12571), nje ya daraja chaguo-msingi. |
| `VIBEPROXY_DATA_DIR` | _(haijawekwa)_ | `open-sse/services/notionThreadSessions.ts` | Saraka ya uendelevu wa kipindi cha Notion. |
### Hati ya huduma ya ndani
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| --------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | – | Tokeni ya mstari wa uthibitishaji wa huduma kwa huduma ya usimamizi-ndege. |
| `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | – | Njia ya faili iliyo na tokeni ya huduma ya ndani (inayopendelewa katika vyombo; hubatilisha utofauti wa ndani). |
### takwimu za mtoa huduma OpenRouter
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| ----------------------------------- | ------------ | --------------------------------------------------------------------------------------------------- |
| `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | Weka kuwa `false` ili kuruka takwimu za OpenRouter kwa kila mtoa huduma kwa uboreshaji wa katalogi. |
| `OPENROUTER_PROVIDER_STATS_TTL_MS` | `3600000` | Akiba TTL (ms) kwa takwimu za mtoaji wa OpenRouter zilizoletwa. |
### Kufunga Redis iliyopachikwa
| Inaweza kubadilika | Chaguomsingi | Maelezo |
| --------------------------- | ------------ | -------------------------------------------------------------------- |
| `REDIS_BIND_HOST` | `127.0.0.1` | Unganisha anwani ya huduma iliyopachikwa Redis. |
| `REDIS_PORT` | `6379` | Bandari kwa huduma iliyopachikwa Redis. |
| `OMNIROUTE_REDIS_BIND_HOST` | – | Kubatilisha kwa upeo wa OmniRoute kwa anwani ya Redis iliyopachikwa. |
---
## 24. Toa nyongeza za v3.8.50
Mipangilio hii ilianzishwa baada ya muhtasari wa awali wa mkataba wa mazingira.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | Upeo wa kusubiri nafasi ya kuingia kwenye gumzo la uzani mzito kabla ya `503` inayoweza kujaribu tena; kusubiri kwa muda mfupi kunasawazisha milipuko ya wakala badala ya `503` ya papo hapo. `0` inarejesha kukataliwa mara moja. |
| `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | Bajeti ya baiti zilizowekwa kwenye foleni ya kusubiri kwa uandikishaji: huweka mipaka jumla ya baiti za mwili zilizoakibishwa zilizoegeshwa kwa mchakato mzima ili kusubiri kusiweze kukuza lundo (#4380). Kusubiri kwa bajeti kupita kiasi pokea `503` inayoweza kujaribu tena mara moja. |
| `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (sek 60) | `src/shared/middleware/chatBodyAdmission.ts` | Hakuna-op iliyoacha kutumika tangu #10110: njia za kiingilio kwa kila kikao ziliondolewa kwa ajili ya bajeti moja ya mchakato mzima. Imekubaliwa kwa utangamano wa usanidi; kupuuzwa. |
| `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | Hakuna-op iliyoacha kutumika tangu #10110: njia za kiingilio kwa kila kikao ziliondolewa kwa ajili ya bajeti moja ya mchakato mzima. Imekubaliwa kwa utangamano wa usanidi; kupuuzwa. |
| `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (zimezimwa) | `open-sse/services/admission/runtime.ts` | Njia dhabiti za uandikishaji za wakati wa utekelezaji (#9654): swichi kuu ya lango linalobadilika la kila mpangaji (mfumo wa 2). Tofauti na safu zilizoacha kutumika za kila muunganisho hapo juu (TTL_MS / MAX_SESSIONS, no-ops tangu #10110). Bendera ya kipengele cha dashibodi ya jina moja; env var inashinda juu ya ubatilishaji wa dashibodi; inahitaji kuanzisha upya. |
| `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | Huweka muda ambao simu ya kukimbia-sasa husubiri kazi ya ndani ya ndege kabla ya kuanza kukimbia kwa foleni. |
| `ADOBE_FIREFLY_BROWSER_REFRESH` | kuwezeshwa | `open-sse/services/adobeFireflySession.ts` | Huweka IMS na hali ya hatari ya kivinjari kuwa safi kupitia vipindi vya Chrome CDP vilivyo na akaunti; weka `0` kuzima. |
| `ADOBE_FIREFLY_SESSION_DISK` | kuwezeshwa | `open-sse/services/adobeFireflySession.ts` | Huendelea kukarabati vipindi vya Adobe chini ya `DATA_DIR`; weka `0` kwa hali ya kumbukumbu pekee. |
| `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Kiwango cha chini cha nafasi kati ya Adobe Firefly hutoa mawasilisho. |
| `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | Kipindi cha utulivu zaidi baada ya kila uwasilishaji wa tatu uliofaulu wa Adobe. |
| `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Debug-only-headless mode; Adobe colligo kawaida hukataa kipindi cha hatari kinachosababishwa. |
| `CHROME_PATH` | kugundua kiotomatiki | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | Chrome ya hiari inayoweza kutekelezeka inayotumiwa na watekelezaji wanaoendeshwa na kivinjari wakati ugunduzi wa kiotomatiki wa jukwaa hautoshi. |
| `TELEGRAM_BOT_TOKEN` | _(haijawekwa)_ | `src/lib/telegram/config.ts` | BotFather tokeni ambayo inawasha webhook inayoingia na kusaini Mini App `initData`. |
| `TELEGRAM_WEBHOOK_SECRET` | _(haijawekwa)_ | `src/lib/telegram/config.ts` | Siri iliyoshirikiwa iliyosajiliwa kupitia `setWebhook` na kuthibitishwa dhidi ya kichwa cha `X-Telegram-Bot-Api-Secret-Token` kwenye kila utoaji wa mtandao. Inahitajika kwa njia ya webhook; ambayo haijawekwa inamaanisha kuwa uwasilishaji wa mtandao unakataliwa na 503. |
| `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Muundo unaotumika kwa majibu ya gumzo Telegram. |
| `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | Bot API base URL hubatilisha seva mbadala au seva zinazojipangisha za Bot API. |
| `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | Muda umeisha kwa milisekunde kwa simu zinazotoka za Bot API. |
| `TELEGRAM_USER_ALLOWLIST_ENABLED` | `false` | `src/lib/telegram/config.ts` | Weka kuwa `true` ili kuhudumia watumiaji wa Telegram walioorodheshwa katika `TELEGRAM_ALLOWED_USER_IDS` pekee (wengine: Programu Ndogo 403, ujumbe wa webhook umeshuka). Imezimwa kwa chaguo-msingi: kila mtumiaji wa Telegram anahudumiwa na anapata kitufe cha API kilichochongwa ambacho kinatumia kiasi cha juu cha mkondo. |
| `TELEGRAM_ALLOWED_USER_IDS` | _(haijawekwa)_ | `src/lib/telegram/config.ts` | Vitambulisho vya mtumiaji vya Telegram vilivyotenganishwa kwa koma vinatolewa wakati `TELEGRAM_USER_ALLOWLIST_ENABLED=true`. Maingizo ambayo si nambari kamili chanya hupuuzwa kwa onyo la mara moja. Imepuuzwa wakati orodha ya walioidhinishwa imezimwa; tupu na orodha ya wanaoruhusiwa haitumikii mtu yeyote. |
| `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (imewezeshwa) | `scripts/build/optionalPackStaging.mjs` | Weka `0` iruke kutoa turubai `.tar.gz` huku ukiweka vifurushi vya hiari ML/browser kwa mti unaojitegemea Electron (saraka za pakiti na `optional-packs.index.json` bado zinatolewa). Inatumiwa na mtiririko wa toleo la eneo-kazi ili kupunguza ukubwa wa upakiaji wa vizalia vya programu. |
| `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | Huwasha usajili wa njia za picha za usajili wa xAI ; imezimwa kwa chaguo-msingi ili njia ya picha ya ufunguo wa API ibaki bila kubadilika. |
| `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | Upunguzaji wa ufunguo kwa milisekunde wakati jibu la `429` halina kidokezo `Retry-After` kinachoweza kutumika. |
| `OMNIROUTE_ESTIMATOR_CALIBRATION` | kuwezeshwa | `open-sse/services/estimatorCalibration.ts` | Weka kuwa `off`, `0`, au `false` ili kuzima uwekaji rekodi wa ukadiriaji wa kumbukumbu na utumaji. |
| `NEXT_MANUAL_SIG_HANDLE` | _(ndani)_ | `scripts/dev/standalone-server-ws.mjs` | ubatilishaji wa kidhibiti-kidhibiti cha seva ya ndani; kawaida huwekwa na kufutwa na kizindua badala ya kusanidiwa na waendeshaji. |
| `CHATGPT_WEB_TURN_TIMEOUT_MS` | `180000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Dari ya kila upande kwa zamu ya maandishi ya Mtandao ChatGPT (Chumba Safi); thamani zilizo chini ya `1000` hazizingatiwi. |
| `CHATGPT_WEB_TOOL_TURN_TIMEOUT_MS` | `180000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Dari ya kila upande kwa zamu ya Wavuti ChatGPT (Chumba Safi) ambayo hubeba zana za mteja (bahasha ya `` iliyoigwa); ishushe ili kurudisha udhibiti kwa mteja mapema. Thamani zilizo chini ya `1000` hazizingatiwi. |
| `CHATGPT_WEB_HEADLESS` | `1` (bila kichwa) | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Endesha kivinjari cha ChatGPT Web (Chumba Safi) bila kichwa. Weka `0` kwa akaunti pekee ambazo changamoto ya wahusika wa kwanza hukataa hali isiyo na kichwa (chaguo-msingi ilibadilika kutoka kichwa hadi isiyo na kichwa mnamo #14948). |
| `CHATGPT_WEB_BROWSER_ACQUIRE_TIMEOUT_MS` | `45000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | Dari ya kuzindua kivinjari cha ChatGPT Wavuti (Chumba Safi) na kuongeza joto chatgpt.com, kwa hivyo kivinjari au kipindi kilichokufa hakiwezi kutumia tarehe ya mwisho ya kupanga foleni. |
| `UI_KIT_CLONE` | `_references/cheaper-inference-ui-kit` | `scripts/check/check-ui-kit-snapshot.mjs` | Njia ya CI UI Kit ya kibinafsi inafananisha lango la snapshot iliyouzwa inatofautiana `packages/ui-kit/src` dhidi ya (KEA-7886); lango linaruka na onyo wakati clone haipo. |
### ChatGPT Mtandao (Codex)
Chaguomsingi za Globale kwa kutumia Kivinjari kisicho na kichwa na kugeuza Zana-Handaki. Im Dashibodi igeuze Connection-Werte haben Vorrang.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CHATGPT_WEB_CODEX_CHROME_PATH` | _(gundua kiotomatiki)_ | `open-sse/executors/chatgpt-web-codex.ts` | Expliziter Chrome-/Chromium-Pfad für npm-, systemd- und PM2-Betrieb. |
| `CHROME_PATH` | _(gundua kiotomatiki)_ | `open-sse/executors/chatgpt-web-codex.ts` | Gemeinsamer Fallback Chrome-/Chromium-Pfad. zaidi |
| `CHATGPT_WEB_CODEX_CDP_URL` | _(haijawekwa)_ | `open-sse/executors/chatgpt-web-codex.ts` | Ndani CDP-Endpunkt; Docker verwendet den Sidecar auf Port `9223`. |
| `CHATGPT_WEB_CODEX_USE_CDP_PROFILE` | _(ondoa — )_ | `open-sse/vendor/codex-chatgpt-web/persistent-cdp-context.ts` | Weka kwa `1` (na sehemu ya mwisho ya CDP iliyosanidiwa) ili kutumia tena ukurasa wa ChatGPT unaodhibitiwa na nje, ulioingia katika wasifu wa kivinjari badala ya muktadha uliojitenga kwa kila zamu; pia hufunika tabo za ChatGPT zinazofanana kwa 1. Zima kwa chaguo-msingi. Tazama [wasifu wa CDP unaoendelea](../guides/CHATGPT-WEB-PERSISTENT-CDP.md). |
| `CDP_PROXY_TOKEN` | _(haijawekwa)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | Wenn gesetzt, muss jede Anfrage an CDP-Proxy-Sidecar diesen Wert im Header `X-Omni-Cdp-Token` mitschicken (#13679). Ohne Wert leitet der Proxy unauthentifiziert weiter — dann schützt nur die Netzisolierung des Compose-Netzes `chatgpt-web-codex-net`. Erzeugen mit `openssl rand -hex 32`. |
| `CHATGPT_WEB_CODEX_TUNNEL_ID` | _(haijawekwa)_ | `open-sse/executors/chatgpt-web-codex.ts` | Globale OpenAI-Tunnel-ID kutoka kwa Codex-Tool-Runden ya lokale. |
| `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(haijawekwa)_ | `open-sse/executors/chatgpt-web-codex.ts` | Globaler Tunnel Runtime-Key; niemas katika Kumbukumbu ausgeben. |
| `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | Jina la Exakter des neu erstellten ChatGPT-Custom-Connectors kwa ajili ya MCP-Brücke. |
| `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | Dediziertes Verzeichnis für Browser-, Broker- und Tunnelzustand. |
| `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | Angalia `1` Browser-Diagnosebilder na Checkpoint moja kwa moja. |
| `CODEX_CHATGPT_WEB_LAUNCHER` | _(haijawekwa)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Optionaler absoluter Pfad zu einem dauerhaften Launcher-Binary. |
| `CODEX_CHATGPT_WEB_BUN` | _(gundua kiotomatiki)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Optionaler absoluter Pfad zum Bun-Runtime-Binary. |
| `CODEX_WEB_GPT_BUN` | _(haijawekwa)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Legacy-Fallback für `CODEX_CHATGPT_WEB_BUN`; neue Mipangilio verwenden den kanonischen Name. |
---
## OmniConductor Bridge
Mtumiaji wa SSE wa muda mrefu anayeakisi kazi za kitovu cha OmniConductor katika A2A TaskManager ya ndani (`src/lib/conductor/`). Jijumuishe — daraja linaanza tu wakati `CONDUCTOR_HUB_URL` imewekwa. Upande wa seva pekee: tokeni ya kitovu haipaswi kamwe kufikia kivinjari.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------ | ----------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `CONDUCTOR_HUB_URL` | _(tupu)_ | `src/lib/conductor/boot.ts` | Msingi URL wa kitovu cha OmniConductor (km `http://127.0.0.1:7910`). Daraja la = halijawekwa limezimwa. |
| `CONDUCTOR_HUB_TOKEN` | _(tupu)_ | `src/lib/conductor/boot.ts` | Kitambulisho cha kitovu cha mlisho wa SSE — hutoa rika `spokesperson` -kind kwenye kitovu (`POST /v1/peers`, admin). |
| `CONDUCTOR_ORCHESTRATOR_TOKEN` | _(tupu)_ | `src/lib/conductor/hubProxy.ts` | Kitambulisho cha ujumbe wa kazi ya kitovu cha A2A→(`POST /v1/tasks`); inarudi kwa `CONDUCTOR_HUB_TOKEN` wakati haijawekwa. |
| `CONDUCTOR_SPOKESPERSON_URL` | `http://127.0.0.1:7920` | `src/lib/conductor/faroProxy.ts` | URL ya msingi ya huduma ya msemaji (Faro) nyuma ya seva mbadala ya gumzo ya dashibodi (`/api/conductor/ask`). |
### Ratiba inayofahamu kiasi
Inatumiwa na `open-sse/services/combo.ts` na `src/lib/quota/quotaScheduler.ts` kwa ukaguzi wa bajeti ya ombi la mapema. Tabia ya uelekezaji chaguo-msingi ya — haibadilishwa ikiwa haijawekwa.
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ---------------------------------- | ------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_QUOTA_AWARE_ROUTING` | `0` | `open-sse/services/combo.ts` | Wakati `1`, ruka miunganisho ambayo bajeti ya tokeni kwa kila dirisha (`rateLimitOverrides.tpm`, jedwali `provider_quota_state`) haiwezi kumudu makadirio ya gharama ya ombi kabla ya kutumwa. Imeshindwa kufungua wakati hakuna bajeti iliyosanidiwa. |
| `OMNIROUTE_ESTIMATOR_CALIBRATION` | _(imewashwa)_ | `open-sse/services/estimatorCalibration.ts` | Urekebishaji wa maoni ya mkadiriaji wa tokeni ya mlinzi wa muktadha (#14931): kwa (mtoa huduma, modeli, zana zilizopo) EMA ya `usage.prompt_tokens` / kadirio, iliyobanwa hadi 0.15–2.0, katika kumbukumbu pekee. `off`, `0` au `false` hulemaza kurekodi na utumaji. |
| `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | Husajili njia za picha `xai-oauth` (`xao`) na `grok-cli`. Bendera ya kipengele cha dashibodi ya jina moja; ubatilishaji wa DB unashinda thamani hii. |
## Uchunguzi wa ulandanishi wa mfano
| Inaweza kubadilika | Chaguomsingi | Faili Chanzo | Maelezo |
| ------------------------------ | ------------ | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_MODEL_SYNC_TIMINGS` | `0` | `src/lib/providerModels/modelSyncTimings.ts` | Weka `1` ili kuweka muda wa awamu, ombi lililozalishwa ID na matokeo ya awamu ya success/error wakati wa ulandanishi wa muundo. Imezimwa kwa thamani zingine zote. Kumbukumbu huacha ombi, akaunti, katalogi na upakiaji wa makosa. |
## Zana la uchanganuzi wa media la OpenCode la ndani
Linatumika na `scripts/cli/omniroute-media-mcp.mjs`. Weka hizi katika mazingira ya mchakato wa zana ya ndani.
| Kigezo | Chaguo-msingi | Maelezo |
| -------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_MEDIA_CONFIG` | `$XDG_CONFIG_HOME/opencode/opencode.json` (au `~/.config/opencode/opencode.json`) | Usanidi wa OpenCode unaosomwa na zana ya media na kisakinishi. |
| `OMNIROUTE_MEDIA_PROVIDER` | `omniroute` | Ingizo la mtoa huduma linalosomwa kutoka kwa usanidi wa OpenCode na zana ya media. |
| `OMNIROUTE_MEDIA_MODEL` | `auto` | Muundo unaotumwa na zana ya media. Mtoa huduma wake lazima atumie aina za media zilizoombwa. |
| `OMNIROUTE_MEDIA_API_KEY` | Ufunguo wa API wa mtoa huduma uliosanidiwa au marejeleo yake ya mazingira | Kitambulisho cha hiari cha kubatilisha. Kiweke katika mazingira ya mchakato wa ndani; usiwahi kukiweka kwenye hazina. |