# Environment Variables Reference (മലയാളം) 🌐 **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) · 🇮🇳 [mr](../../../mr/docs/reference/ENVIRONMENT.md) · 🇲🇾 [ms](../../../ms/docs/reference/ENVIRONMENT.md) · 🇲🇹 [mt](../../../mt/docs/reference/ENVIRONMENT.md) · 🇲🇲 [my](../../../my/docs/reference/ENVIRONMENT.md) · 🇳🇵 [ne](../../../ne/docs/reference/ENVIRONMENT.md) · 🇳🇱 [nl](../../../nl/docs/reference/ENVIRONMENT.md) · 🇳🇴 [no](../../../no/docs/reference/ENVIRONMENT.md) · 🇮🇳 [or](../../../or/docs/reference/ENVIRONMENT.md) · 🇮🇳 [pa](../../../pa/docs/reference/ENVIRONMENT.md) · 🇵🇭 [phi](../../../phi/docs/reference/ENVIRONMENT.md) · 🇵🇱 [pl](../../../pl/docs/reference/ENVIRONMENT.md) · 🇵🇹 [pt](../../../pt/docs/reference/ENVIRONMENT.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/ENVIRONMENT.md) · 🇷🇴 [ro](../../../ro/docs/reference/ENVIRONMENT.md) · 🇷🇺 [ru](../../../ru/docs/reference/ENVIRONMENT.md) · 🇱🇰 [si](../../../si/docs/reference/ENVIRONMENT.md) · 🇸🇰 [sk](../../../sk/docs/reference/ENVIRONMENT.md) · 🇸🇮 [sl](../../../sl/docs/reference/ENVIRONMENT.md) · 🇷🇸 [sr](../../../sr/docs/reference/ENVIRONMENT.md) · 🇸🇪 [sv](../../../sv/docs/reference/ENVIRONMENT.md) · 🇰🇪 [sw](../../../sw/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ta](../../../ta/docs/reference/ENVIRONMENT.md) · 🇮🇳 [te](../../../te/docs/reference/ENVIRONMENT.md) · 🇹🇭 [th](../../../th/docs/reference/ENVIRONMENT.md) · 🇹🇷 [tr](../../../tr/docs/reference/ENVIRONMENT.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/ENVIRONMENT.md) · 🇵🇰 [ur](../../../ur/docs/reference/ENVIRONMENT.md) · 🇺🇿 [uz](../../../uz/docs/reference/ENVIRONMENT.md) · 🇻🇳 [vi](../../../vi/docs/reference/ENVIRONMENT.md) · 🇳🇬 [yo](../../../yo/docs/reference/ENVIRONMENT.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/ENVIRONMENT.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/ENVIRONMENT.md) --- > OmniRoute അംഗീകരിച്ച എല്ലാ പരിസ്ഥിതി വേരിയബിളിനുമുള്ള പൂർണ്ണമായ റഫറൻസ്. ദ്രുത-ആരംഭ ടെംപ്ലേറ്റിനായി, [`.env.example`](../../.env.example) കാണുക. > [!IMPORTANT] > ഇവിടെ ഡോക്യുമെൻ്റ് ചെയ്തിരിക്കുന്ന എല്ലാ വേരിയബിളും `.env.example` യിലും ദൃശ്യമാകണം, കൂടാതെ `.env.example` യിലെ എല്ലാ വേരിയബിളും ഇവിടെ ദൃശ്യമാകണം. `npm run check:env-doc-sync` ഇത് പ്രതിബദ്ധതയിലും CI ലും നടപ്പിലാക്കുന്നു. ഉദ്ദേശ്യത്തോടെ ഒരു വേരിയബിൾ ഒഴിവാക്കുന്നതിന്, `scripts/check/check-env-doc-sync.mjs` എന്നതിനുള്ളിലെ അനുവദനീയ പട്ടികയിലേക്ക് ചേർക്കുക. --- ## ഉള്ളടക്ക പട്ടിക - [1. ആവശ്യമായ രഹസ്യങ്ങൾ](#1-required-secrets) - [2. സംഭരണവും ഡാറ്റാബേസും](#2-storage--database) - [3. നെറ്റ്വർക്ക് & പോർട്ടുകൾ](#3-network--ports) - [4. സുരക്ഷയും പ്രാമാണീകരണവും](#4-security--authentication) - [5. ഇൻപുട്ട് സാനിറ്റൈസേഷൻ & PII സംരക്ഷണം](#5-input-sanitization--pii-protection) - [6. ടൂൾ & റൂട്ടിംഗ് നയങ്ങൾ](#6-tool--routing-policies) - [7. URLs & ക്ലൗഡ് സമന്വയം](#7-urls--cloud-sync) - [8. ഔട്ട്ബൗണ്ട് പ്രോക്സി](#8-outbound-proxy) - [9. CLI ടൂൾ ഇൻ്റഗ്രേഷൻ](#9-cli-tool-integration) - [10. ആന്തരിക ഏജൻ്റ് & MCP സംയോജനങ്ങൾ](#10-internal-agent--mcp-integrations) - [11. OAuth പ്രൊവൈഡർ ക്രെഡൻഷ്യലുകൾ](#11-oauth-provider-credentials) - [12. പ്രൊവൈഡർ യൂസർ-ഏജൻ്റ് അസാധുവാക്കുന്നു](#12-provider-user-agent-overrides) - [13. CLI ഫിംഗർപ്രിൻ്റ് അനുയോജ്യത](#13-cli-fingerprint-compatibility) - [14. API കീ ദാതാക്കൾ](#14-api-key-providers) - [15. കാലഹരണപ്പെടൽ ക്രമീകരണങ്ങൾ](#15-timeout-settings) - [16. ലോഗിംഗ്](#16-logging) - [17. മെമ്മറി ഒപ്റ്റിമൈസേഷൻ](#17-memory-optimization) - [18. വിലനിർണ്ണയ സമന്വയം](#18-pricing-sync) - [19. മോഡൽ സമന്വയം (ദേവ്)](#19-model-sync-dev) - [20. പ്രൊവൈഡർ-നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ](#20-provider-specific-settings) - [21. പ്രോക്സി ഹെൽത്ത്](#21-proxy-health) - [22. ഡീബഗ്ഗിംഗ്](#22-debugging) - [23. GitHub ഇൻ്റഗ്രേഷൻ](#23-github-integration) - [24. സ്കിൽസ് സാൻഡ്ബോക്സ് (v3.8.0 +)](#24-skills-sandbox-v380) - [27. റഡാർ ഫീഡ് (സ്വയം-ഹോസ്റ്റിംഗ്)](#27-radar-feed-self-hosting) - [വിന്യാസ സാഹചര്യങ്ങൾ](#deployment-scenarios) - [ഓഡിറ്റ്: നീക്കം ചെയ്ത / ഡെഡ് വേരിയബിളുകൾ](#audit-removed--dead-variables) --- ## 1. ആവശ്യമായ രഹസ്യങ്ങൾ Unset secrets marked **Yes** are auto-generated on the first run (`JWT_SECRET`, `API_KEY_SECRET`) and persisted to `server.env` in the data directory — set them explicitly when that directory is ephemeral. The exception is `OMNIROUTE_WS_BRIDGE_SECRET`: it is not persisted to `server.env` — the server entrypoints mint an ephemeral per-boot value only the in-process bridge can use, so external bridge clients need it set explicitly. | വേരിയബിൾ | ആവശ്യമാണ് | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------- | ----------------- | ----------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `JWT_SECRET` | **അതെ** | _(ഒന്നുമില്ല)_ | `src/lib/auth` | Signs/verifies എല്ലാ ഡാഷ്ബോർഡ് സെഷൻ കുക്കികളും (JWT). `openssl rand -base64 48` ഉപയോഗിച്ച് സൃഷ്ടിക്കുക. | | `API_KEY_SECRET` | **അതെ** | _(ഒന്നുമില്ല)_ | `src/lib/db/apiKeys.ts` | API കീ മൂല്യങ്ങൾക്കുള്ള AES എൻക്രിപ്ഷൻ കീ SQLite ൽ വിശ്രമത്തിലാണ്. `openssl rand -hex 32` ഉപയോഗിച്ച് സൃഷ്ടിക്കുക. | | `INITIAL_PASSWORD` | ഇല്ല | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/auth/managementPassword.ts` | ഇതുവരെ ഒന്നും സംരക്ഷിച്ചിട്ടില്ലെങ്കിലും സ്റ്റാർട്ടപ്പിൽ ഡാഷ്ബോർഡ് പാസ്വേഡ് സജ്ജീകരിക്കുന്നു; ഒരു പാസ്വേഡ് സേവ് ചെയ്തുകഴിഞ്ഞാൽ അവഗണിച്ചു. npm ഉം സോഴ്സും `.env.example` `.env` പകർത്തുന്നു, അതിനാൽ അവർ അതിൻ്റെ പൊതുവായി അറിയപ്പെടുന്ന പ്ലെയ്സ്ഹോൾഡർ `CHANGEME` ഉപയോഗിച്ച് ആരംഭിക്കുന്നു: ആദ്യ ബൂട്ടിന് മുമ്പ് അത് മാറ്റിസ്ഥാപിക്കുക, അല്ലെങ്കിൽ ആദ്യ സന്ദർശനത്തിൽ തന്നെ ഓൺബോർഡിംഗ് വിസാർഡിൽ പാസ്വേഡ് സൃഷ്ടിക്കാൻ ആ `INITIAL_PASSWORD=` (ശൂന്യമായി `.env` സജ്ജമാക്കുക, ഒരു അൺസെറ്റ് മൂല്യം ( Docker ഇമേജിൻ്റെ സ്ഥിരസ്ഥിതി) ചെയ്യുന്നതുപോലെ. ഡാഷ്ബോർഡ് → ക്രമീകരണങ്ങൾ → സെക്യൂരിറ്റിയിൽ സംരക്ഷിച്ച പാസ്വേഡ് മാറ്റുക, അല്ലെങ്കിൽ സെർവറിൻ്റെ ഡാറ്റ ഡയറക്ടറിയിൽ `DATA_DIR` സജ്ജീകരിച്ച് `omniroute reset-password` (ഒരു സോഴ്സ് ചെക്ക്ഔട്ടിൽ `node bin/reset-password.mjs` ) പ്രവർത്തിപ്പിക്കുക. | | `OMNIROUTE_WS_BRIDGE_SECRET` | **അതെ** (ഉൽപാദനം) | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/internal/codex-responses-ws/route.ts` | ആന്തരിക Codex പ്രതികരണങ്ങൾ WebSocket ബ്രിഡ്ജിനായി പങ്കിട്ട രഹസ്യം. Electron/browser WS റിലേയ്ക്കും OmniRoute യ്ക്കും ഇടയിലുള്ള ബ്രിഡ്ജ് അഭ്യർത്ഥനകൾ പ്രാമാണീകരിക്കുന്നു. ⚠️**REQUIRED പ്രൊഡക്ഷൻ — ൽ സജ്ജീകരിക്കാത്തപ്പോൾ, എല്ലാ WS ബ്രിഡ്ജ് അഭ്യർത്ഥനകളും നിരസിക്കപ്പെടും.** `openssl rand -base64 32` ഉപയോഗിച്ച് സൃഷ്ടിക്കുക. | | `OMNIROUTE_SW_BUILD_ID` | ഇല്ല | _(git SHA)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | PWA ഷെല്ലിനുള്ള വ്യക്തമായ സർവീസ് വർക്കർ കാഷെ-ബസ്റ്റിംഗ് ഐഡി (#11779); റെസല്യൂഷൻ ചെയിനിൽ ആദ്യം. | | `SOURCE_VERSION` | ഇല്ല | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `next.config.mjs`, `scripts/build/assembleStandalone.mjs` | വിന്യസിച്ച പ്രതിബദ്ധത പോലെ PaaS ബിൽഡർമാർ (ഉദാ: Heroku-ശൈലി) സെറ്റ് ചെയ്ത ചെയിൻ — യിൽ രണ്ടാമത്. | | `NEXT_PUBLIC_SW_BUILD_ID` | ഇല്ല | _(ഉത്ഭവിച്ചത്)_ | `src/shared/components/PwaRegister.tsx` | `/sw.js?v=…` രജിസ്റ്റർ ചെയ്യാൻ ക്ലയൻ്റ് ഉപയോഗിക്കുന്ന ബിൽഡ്-ടൈം പൊതു മൂല്യം ; മുകളിലുള്ള രണ്ടിൽ നിന്നും ഉരുത്തിരിഞ്ഞത്, തുടർന്ന് git SHA. | | `OMNIROUTE_PEER_STAMP_TOKEN` | ഇല്ല (ഓട്ടോ) | _(ഓട്ടോ ബൂട്ട്)_ | `src/server/authz/policies/management.ts` | OmniRoute യുടെ സ്വന്തം HTTP സെർവറിൽ (`scripts/dev/peer-stamp.mjs`) നിന്നാണ് വിശ്വസനീയമായ പിയർ-IP സ്റ്റാമ്പ് വന്നതെന്ന് തെളിയിക്കുന്ന ഓരോ പ്രക്രിയ രഹസ്യവും. സ്റ്റാമ്പിൽ ഈ ടോക്കൺ ഉണ്ടായിരിക്കുമ്പോൾ മാത്രമേ authz മിഡിൽവെയർ ട്രസ്റ്റുകൾ പ്രദേശം ( LOCAL_ONLY റൂട്ടുകളുടെloopback/LAN ഗേറ്റിംഗ്) അഭ്യർത്ഥിക്കുന്നു. ഓരോ ബൂട്ട് — ലീവ് സെറ്റ് ചെയ്യാതെയും സ്വയമേവ ജനറേറ്റ് ചെയ്തു; സ്റ്റാമ്പ് പങ്കിടേണ്ട മൾട്ടി-പ്രോസസ് സജ്ജീകരണങ്ങൾക്കായി മാത്രം ഇത് പിൻ ചെയ്യുക. | | `OMNIROUTE_TRUSTED_PROXIES` | ഇല്ല | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/dev/peer-stamp.mjs` | Comma-separated IPs or CIDR ranges of reverse proxies whose `X-Forwarded-For` / `X-Real-IP` the IP allow/deny list may believe, on top of loopback, private-network addresses and Cloudflare edges, which are always trusted. Needed only for a proxy on any other public address; otherwise that proxy's own address is what the filter judges. The relay's per-client throttle (`/api/v1/relay/chat/completions`) keys on the same resolved client address, never on forwarding headers alone. | ### ജനറേഷൻ കമാൻഡുകൾ ```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] > യഥാർത്ഥ രഹസ്യങ്ങളുള്ള `.env` ഫയലുകൾ പതിപ്പ് നിയന്ത്രണത്തിലേക്ക് ഒരിക്കലും സമർപ്പിക്കരുത്. `.gitignore` ഇതിനകം `.env` ഒഴിവാക്കിയിട്ടുണ്ട്, പക്ഷേ പുഷ് ചെയ്യുന്നതിന് മുമ്പ് പരിശോധിക്കുക. --- ## 2. സംഭരണവും ഡാറ്റാബേസും OmniRoute ഉപയോഗിക്കുന്നു**SQLite** ( `better-sqlite3` വഴി) എല്ലാ സ്ഥിരതയ്ക്കും. ഈ വേരിയബിളുകൾ ഡാറ്റ ലൊക്കേഷൻ, എൻക്രിപ്ഷൻ, ലൈഫ് സൈക്കിൾ എന്നിവ നിയന്ത്രിക്കുന്നു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------ | ---------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `DATA_DIR` | `~/.omniroute/` | `src/lib/db/core.ts` | SQLite DB, ബാക്കപ്പുകൾ, ഡാറ്റ ഫയലുകൾ എന്നിവയ്ക്കുള്ള റൂട്ട് ഡയറക്ടറി. Docker വോള്യങ്ങൾ അല്ലെങ്കിൽ ഇഷ്ടാനുസൃത പാതകൾക്കായി അസാധുവാക്കുക. | | `OMNIROUTE_ALLOW_DEFAULT_DATA_DIR` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/dataPaths.ts` | test/eval DATA_DIR ഗാർഡിനുള്ള എസ്കേപ്പ് ഹാച്ച് (#10428). `DATA_DIR` ഇല്ലാത്ത ടെസ്റ്റുകളും നോഡ് eval/print പ്രോബുകളും (`-e`/`--eval`/`-p`/`--print`, `--eval=`/`--print=` ഫോമുകൾ ഉൾപ്പെടെ) ഒരു ത്രോവേ ടെംപ് ഡിയറിലേക്ക് റീഡയറക്ടുചെയ്യുന്നതിനാൽ അവയ്ക്ക് ഓപ്പറേറ്ററുടെ യഥാർത്ഥ ഡാറ്റാബേസ് തുറക്കാൻ കഴിയില്ല; യഥാർത്ഥ ഡയറക്ടറിയിലേക്ക് തിരികെ തിരഞ്ഞെടുക്കുന്നതിന് `1` ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_BUILD_SHA` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/monitoring/buildSha.ts` | ഓടുന്ന പുരാവസ്തുവിൻ്റെ Git SHA. `npm run build:release` ഉപയോഗിച്ച് സ്റ്റാമ്പ് ചെയ്തു; `dist/BUILD_SHA` സെൻ്റിനൽ ഇല്ലാതെ അയയ്ക്കുന്ന കണ്ടെയ്നറുകളിൽ കുത്തിവയ്ക്കാൻ കഴിയും. `/api/monitoring/health` ൽ `system.buildSha` ആയി ഉപരിതലം. | | `OMNIROUTE_RELEASE_REF` | `origin/main` | `scripts/build/buildProvenance.ts` | പാക്ക്-ആർട്ടിഫാക്റ്റ് പ്രൊവെനൻസ് ഗേറ്റ്, ബിൽഡ് SHA നെ പരിശോധിക്കുന്നു (#10427). | | `OMNIROUTE_ALLOW_CANARY_BUILD` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/build/buildProvenance.ts` | റിലീസ് ലൈനിൽ SHA ഇല്ലാത്ത ഒരു ബിൽഡ് പാക്ക് ചെയ്യാൻ അനുവദിക്കുന്നതിന് `1` ആയി സജ്ജീകരിക്കുക, ഗേറ്റ് പരാജയപ്പെടുന്നതിന് പകരം അത് ഒരു ബോധപൂർവമായ കാനറിയായി രേഖപ്പെടുത്തുന്നു (#10427). | | `OMNIROUTE_SMOKE_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/ops/deploy-canary.mjs` | കാനറി-ഡിപ്ലോയ് സ്മോക്ക് പ്രോബിനുള്ള API കീ, `/v1/chat/completions` ൽ `Authorization: Bearer` ആയി അയച്ചു. ഡിപ്ലോയ് സ്ക്രിപ്റ്റ് (#10429) മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ, ഒരിക്കലും സെർവർ ഉപയോഗിക്കുന്നില്ല. ഓപ്റ്റ്-ഇൻ CLI സ്മോക്ക് ഹാർനെസിൻ്റെ `OMNIROUTE_SMOKE_*` വേരിയബിളുകളുമായി ബന്ധപ്പെട്ടതല്ല (`RUN_CLI_SMOKE=1`, `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS` in `tests/integration/upstream-cli-smoke.int.test.ts`) — കാണുക [CLI ഇൻ്റഗ്രേഷനുകൾ → യഥാർത്ഥ സ്മോക്ക് സ്വീപ്പ്](../guides/CLI-INTEGRATIONS.md). | | `OMNIROUTE_BUILDING` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/buildPhase.ts` | ബിൽഡ്-ഫേസ് സിഗ്നൽ (#10060): `scripts/build/build-next-isolated.mjs` പ്രകാരം `1` ആയി സജ്ജീകരിച്ച്, സ്പോൺ ചെയ്ത ഓരോ ബിൽഡ് വർക്കർക്കും പാരമ്പര്യമായി ലഭിക്കുന്നു, അതിനാൽ നേറ്റീവ് better-sqlite3 ആഡോൺ ലോഡുചെയ്യുന്നതിന് പകരം DB ലെയർ ഒരു നോ-ഓപ് സ്റ്റബ് നൽകുന്നു (ഇത് തൊഴിലാളിയെ എക്സിറ്റിൽ നിർത്തുന്നു). പ്രവർത്തിക്കുന്ന സെർവറിനായി ഒരിക്കലും സജ്ജമാക്കരുത്. | | `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | എക്സോട്ടിക് വെണ്ടർഡ് ട്രീകൾക്കായുള്ള ഓപ്ഷണൽ നേറ്റീവ് ഡിപൻഡൻസി പ്രീബിൽഡ് പരിശോധന ഒഴിവാക്കാൻ `1` ആയി സജ്ജീകരിക്കുക. ഇത് കാണാതായ ഡിപൻഡൻസി ബിൽഡബിൾ ആക്കുന്നില്ല; നേറ്റീവ് ഡിപൻഡൻസികൾ ബാൻഡിൽ നിന്ന് വിതരണം ചെയ്യുമ്പോൾ മാത്രം ഉപയോഗിക്കുക. | | `OMNIROUTE_DATA_DIR` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/promptql/threadSticky.ts` | **ഫാൾബാക്ക് അപരനാമം** `DATA_DIR` എന്നതിനായി, `DATA_DIR` സജ്ജീകരിക്കാത്തപ്പോൾ മാത്രം പരിശോധിക്കും. PromptQL എക്സിക്യൂട്ടറുടെ ഓൺ-ഡിസ്ക് ത്രെഡ്-സ്റ്റിക്കി സെഷൻ കാഷെ (`/promptql-thread-sessions.json`) കണ്ടെത്താൻ ഉപയോഗിക്കുന്നു; var ഒന്നും സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, കാഷെ മെമ്മറിയിൽ മാത്രം നിലനിൽക്കും (പുനരാരംഭിക്കുന്നതിലുടനീളം നിലനിൽക്കില്ല). | | `OMNIROUTE_PLUGINS_DIR` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/plugins/scanner.ts` | ഡയറക്ടറി** റൺടൈം പ്ലഗിൻ സ്കാനർ** — വായിക്കുകയും പ്ലഗിൻ മാനേജർ — ലേക്ക് ഇൻസ്റ്റാൾ ചെയ്യുന്ന റൂട്ട് ഹോം-ഡൈരൈവ്ഡ് ഡിഫോൾട്ട് (#11827) മറികടക്കുകയും ചെയ്യുന്നു. സ്കാൻ പാത്ത് മാറ്റിസ്ഥാപിക്കുന്നതിന് HOME നീക്കുന്നതിന് പകരം Docker/K8s യിലെ ബൈൻഡ്-മൗണ്ടഡ് പ്ലഗിൻ ട്രീയിലേക്ക് അത് പോയിൻ്റ് ചെയ്യുക (HOME മറ്റെല്ലാ ഹോം-ആപേക്ഷിക സ്വഭാവങ്ങളെയും നിയന്ത്രിക്കുന്നു). ഈ വേരിയബിൾ നീക്കം ചെയ്യുന്ന സൈലൻ്റ് നോൺ-ഡിസ്കവറി — പ്രോസസ്സ് ഹോം എക്സ്പോർട്ട് ചെയ്യാത്തപ്പോൾ = `~/.omniroute/plugins`, അല്ലെങ്കിൽ `/tmp/.omniroute/plugins` സജ്ജീകരിക്കരുത്. പരിഹരിക്കപ്പെട്ട ഡയറക്ടറി, വിജയിച്ച ഇൻപുട്ട് ഉപയോഗിച്ച് `scanner.dir_resolved` ആയി സ്റ്റാർട്ടപ്പിൽ ഒരിക്കൽ ലോഗ് ചെയ്തിരിക്കുന്നു. സെർവർ വശം മാത്രം: CLI കമാൻഡ് പ്ലഗിനുകൾ അവരുടേതായ `OMNIROUTE_PLUGIN_PATH` സൂക്ഷിക്കുന്നു (വിഭാഗം 9). | | `STORAGE_ENCRYPTION_KEY` | _(ശൂന്യമായ = പ്രവർത്തനരഹിതമാക്കി)_ | `src/lib/db/encryption.ts` | മുഴുവൻ SQLite ഡാറ്റാബേസ് എൻക്രിപ്ഷനുള്ള AES കീ വിശ്രമത്തിൽ. `openssl rand -hex 32` ഉപയോഗിച്ച് സൃഷ്ടിക്കുക. | | `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | എൻക്രിപ്ഷൻ കീയുടെ പതിപ്പ് ലേബൽ. പഴയ ബാക്കപ്പുകളുടെ ഡീക്രിപ്ഷൻ പിന്തുണയ്ക്കുന്നതിനായി കീ റൊട്ടേഷൻ നടത്തുമ്പോൾ വർദ്ധനവ്. | | `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | `true`, routine/pre-write SQLite ഫയൽ ബാക്കപ്പുകൾ ഒഴിവാക്കുമ്പോൾ (models.dev വിലനിർണ്ണയം save/clear, ക്രമീകരണങ്ങൾ എഴുതുന്നു). മാനുവൽ, പ്രീ-റിസ്റ്റോർ ബാക്കപ്പുകൾ ഇപ്പോഴും പ്രവർത്തിക്കുന്നു. അത് ചെയ്യുന്നു** അല്ല** മൈഗ്രേഷൻ റണ്ണറുടെ നിർബന്ധിത ഡ്യൂറബിൾ സേഫ്റ്റി സ്നാപ്പ്ഷോട്ട് അല്ലെങ്കിൽ നിലവിലുള്ള സ്ഥിരമായ DB നായി മാസ് മൈഗ്രേഷൻ ഗാർഡ് പ്രവർത്തനരഹിതമാക്കുക. മാനുവൽ അല്ലാത്ത ബാക്കപ്പുകൾ 60 മിനിറ്റിൽ ഒരു തവണയെങ്കിലും ത്രോട്ടിൽ ചെയ്യപ്പെടും. ഡാഷ്ബോർഡ്** ക്രമീകരണങ്ങൾ → സംഭരണം** സ്വതന്ത്രമായി പതിവ് യാന്ത്രിക ബാക്കപ്പ് പ്രവർത്തനരഹിതമാക്കാൻ കഴിയും. | | `OMNIROUTE_SQLITE_SLOW_MS` | _(unset/off)_ | `src/lib/db/adapters/slowDiagnostics.ts` | മില്ലിസെക്കൻഡ്; 1-ന് താഴെയുള്ള മൂല്യങ്ങൾ അല്ലെങ്കിൽ നോൺ-നമ്പറിക് സ്റ്റേ ഓഫ്; 10 സെക്കൻഡിൽ ഒരു തവണയെങ്കിലും മുന്നറിയിപ്പ് നൽകുന്നു; ലോഗ് ലൈനിൽ ഡ്രൈവർ, ഓപ്പറേഷൻ, elapsedMs എന്നിവ മാത്രമാണുള്ളത്. | | `OMNIROUTE_SQLITE_OPTIMIZE_ENABLED` | `true` | `src/lib/db/sqlitePlannerStats.ts` | ബാക്ക്ഗ്രൗണ്ട് പ്ലാനർ സ്റ്റാറ്റിസ്റ്റിക്സ് മെയിൻ്റനൻസ്, നിലനിർത്തൽ ക്ലീനപ്പിൽ നിന്ന് സ്വതന്ത്രമായി: ആദ്യം പ്രവർത്തനക്ഷമമാക്കിയ ക്ലീനപ്പ് പാസ് (സാധാരണയായി സ്റ്റാർട്ടപ്പിന് ശേഷം, മൈഗ്രേഷനുകൾക്ക് ശേഷം) `PRAGMA optimize=0x10002` പ്രവർത്തിക്കുന്നു; തുടർന്നുള്ള ഓരോ 6h റൺ `PRAGMA optimize` (അല്ലെങ്കിൽ പരിധിയില്ലാത്ത വിശകലനത്തിനായി `PRAGMA optimize=0x00002` ) കടന്നുപോകുന്നു. `false` അല്ലെങ്കിൽ `0` എല്ലാ അറ്റകുറ്റപ്പണികളും പ്രവർത്തനരഹിതമാക്കുന്നു (കേസ്-ഇൻസെൻസിറ്റീവ്, വൈറ്റ്സ്പേസ് ട്രിം ചെയ്തു). മെമ്മറി ഡാറ്റാബേസുകളും റീഡ്-ഒൺലി ബാക്കപ്പ് പാതകളും ബാധിക്കില്ല. പരാജയങ്ങൾ രേഖപ്പെടുത്തി, എറിയില്ല. | | `OMNIROUTE_SQLITE_ANALYSIS_LIMIT` | `400` | `src/lib/db/sqlitePlannerStats.ts` | ഒപ്റ്റിമൈസേഷന് മുമ്പ് `PRAGMA analysis_limit` സജ്ജമാക്കുന്നു. ദശാംശ പൂർണ്ണസംഖ്യകൾ [0, 100000] ആയി ഉറപ്പിച്ചിരിക്കുന്നു; malformed/empty മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതിയായി 400 ആയി. `0` അഭ്യർത്ഥനകൾ പരിധിയില്ലാത്ത, ഒപ്റ്റിമൈസേഷൻ വഴി തിരഞ്ഞെടുത്ത പട്ടികകളുടെ കൃത്യമായ വിശകലനം; പീരിയോഡിക് പാസ് SQLite ൻ്റെ ഒപ്റ്റിമൈസ് സാംപ്ലിംഗ്-ക്യാപ് ബിറ്റ് മായ്ക്കുന്നു. ഒറ്റപ്പെട്ട SQL വിശകലന പ്രസ്താവനകളൊന്നും റൺ ചെയ്തിട്ടില്ല. | | `OMNIROUTE_CRYPT_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/db/encryption.ts` | **ലെഗസി അപരനാമം** `STORAGE_ENCRYPTION_KEY` വേണ്ടി. പ്രൈമറി വേരിയബിൾ ഇല്ലാത്തപ്പോൾ ഒരു ഫാൾബാക്ക് ആയി അംഗീകരിക്കപ്പെടും. | | `OMNIROUTE_API_KEY_BASE64` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/db/encryption.ts` | **ലെഗസി അപരനാമം** (Base64-encoded ഫോം) ഒരു ഫാൾബാക്ക് ആയി സ്വീകരിച്ചു. ഉപയോഗിക്കുന്നതിന് മുമ്പ് സ്വയമേവ ഡീകോഡ് ചെയ്തു. | | `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/db/core.ts` | ആനുകാലിക SQLite ആരോഗ്യ പരിശോധന ഇടവേള (മിസെ) അസാധുവാക്കുക. സജ്ജീകരിക്കാത്തപ്പോൾ, ഡിഫോൾട്ടുകൾ `NODE_ENV` ൽ നിന്ന് ഉരുത്തിരിഞ്ഞതാണ്. | | `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(നീക്കം ചെയ്തു)_ | `src/lib/db/walMaintenance.ts` | **നീക്കം ചെയ്തു.** ഒരു ആനുകാലിക തത്സമയ `wal_checkpoint(TRUNCATE)` പങ്കിട്ട വാൽ-ഇൻഡക്സ് മാപ്പിംഗ് അസാധുവാക്കാനും SIGBUS (#13973) ഉപയോഗിച്ച് പ്രോസസ്സ് ക്രാഷ് ചെയ്യാനും കഴിയും, അതിനാൽ ഷെഡ്യൂളർ ഇനി നിലവിലില്ല. വേരിയബിൾ നിഷ്ക്രിയമാണ്: ഒരു പോസിറ്റീവ് മൂല്യം ഒറ്റത്തവണ ഒഴിവാക്കൽ മുന്നറിയിപ്പ് ലോഗ് ചെയ്യുന്നു, അതേസമയം `0` അല്ലെങ്കിൽ സജ്ജീകരിക്കാത്തത് നിശബ്ദമായിരിക്കും. WAL പരിപാലിക്കുന്നത് PASSIVE ചെക്ക്പോസ്റ്റുകളിലൂടെയാണ് (ചുവടെയുള്ളത്) കൂടാതെ ഷട്ട്ഡൗൺ ചെക്ക്പോസ്റ്റിലൂടെ വെട്ടിച്ചുരുക്കുന്നു. | | `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5m) | `src/lib/db/walMaintenance.ts` | പതിവ് `wal_checkpoint(PASSIVE)` ഇടവേള (മി.സെ.) അസാധുവാക്കുക. തീർപ്പുകൽപ്പിക്കാത്ത WAL ഫ്രെയിമുകൾ ചെറുതാക്കി നിലനിർത്തുന്നു, അതിനാൽ ചെക്ക്പോസ്റ്റുകൾ വേഗത്തിൽ നിലനിൽക്കുകയും WAL ഫയൽ ഷട്ട്ഡൗൺ വെട്ടിച്ചുരുക്കലുകളുടെ ഇടയിൽ പരിമിതപ്പെടുത്തുകയും ചെയ്യുന്നു. `0` പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | ഒരു PASSIVE ടിക്ക് ഈ വലുപ്പത്തിന് മുകളിലുള്ള WAL ഫയൽ കണ്ടെത്തുമ്പോൾ, `wal_checkpoint(RESTART)` പ്രവർത്തിപ്പിക്കുക, അങ്ങനെ മാപ്പ് ചെയ്ത wal-index വീണ്ടും എഴുതാതെ WAL ആരംഭിക്കുന്നു. തത്സമയ വെട്ടിച്ചുരുക്കൽ മോഡ് ചെക്ക്പോസ്റ്റുകൾ നീക്കം ചെയ്തു ( `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` വരി കാണുക). | | `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` യുടെ നിർണ്ണായകമായ റിസോഴ്സ് മർദ്ദം നിലനിർത്തിയ ശേഷം പ്രക്രിയയിൽ നിന്ന് പുറത്തുകടക്കാൻ `1`/`true`/`yes`/`on` ആയി സജ്ജീകരിക്കുക, 503s അനിശ്ചിതമായി നൽകുന്നതിന് പകരം ഒരു വൃത്തിയുള്ള പ്രക്രിയ തിരികെ കൊണ്ടുവരാൻ ഒരു സൂപ്പർവൈസറെ (സിസ്റ്റം `Restart=always`, Docker പുനരാരംഭിക്കുന്നതിനുള്ള നയം) അനുവദിക്കുന്നു. | | `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` | `120000` (2m) | `open-sse/utils/resourcePressure.ts` | സെൽഫ് റീസ്റ്റാർട്ട് എക്സിറ്റ് ഫയർ ആകുന്നതിന് മുമ്പ് എത്രത്തോളം ഗുരുതരമായ സമ്മർദ്ദം നിലനിൽക്കണം. | | `OMNIROUTE_PRESSURE_PSI_DISABLED` | `false` | `open-sse/utils/resourcePressurePolicy.ts` | ഈ പ്രക്രിയ ശരിയായിരിക്കുമ്പോൾ, ശബ്ദമുണ്ടാക്കുന്ന അയൽക്കാരൻ 503സെക്കൻഡ് യാത്ര ചെയ്യുമ്പോൾ ഹോസ്റ്റ്-വൈഡ് `/proc/pressure/memory` (`psi_some` / `psi_full`) അവഗണിക്കാൻ `1`/`true`/`yes`/`on` ആയി സജ്ജീകരിക്കുക (#13124). Cgroup, V8 ഹീപ്പ് ഗാർഡുകൾ തുടരുന്നു. `cgroup_high` നുള്ള കേർണൽ ത്രോട്ടിൽ പ്രൂഫ് ആയി കണക്കാക്കുന്നത് PSI നിർത്തുന്നു: `memory.high` മുകളിലുള്ള ഒരു cgroup ടോട്ടൽ പിന്നീട് `memory.events` `high`/`max` വർദ്ധനവിൽ മാത്രം ക്രിട്ടിക്കൽ ആയി മാറുന്നു. `memory.events` ഇല്ലാതെ അസംസ്കൃത അനുപാതം നിലനിർത്തുന്നു. | | `OMNIROUTE_SQLJS_WASM_PATH` | _(യാന്ത്രികമായി കണ്ടുപിടിക്കുക)_ | `src/lib/db/adapters/sqljsAdapter.ts` | `sql.js` WASM ഫാൾബാക്ക് അഡാപ്റ്റർ ഉപയോഗിക്കുമ്പോൾ `sql-wasm.wasm` ലേക്കുള്ള വ്യക്തമായ പാത (സമ്പൂർണമായ അല്ലെങ്കിൽ cwd-ന് ആപേക്ഷികം). സജ്ജീകരിക്കാത്തപ്പോൾ പാക്കേജ് ഡിപൻഡൻസികളും കാൻഡിഡേറ്റ് ലേഔട്ടുകളും വഴി സ്വയമേവ കണ്ടെത്തി. | | `OMNIROUTE_BATCH_RETENTION_DAYS` | `30` | `src/lib/db/cleanup.ts` | ഡെയ്സ് എ ടെർമിനൽ (completed/failed/cancelled/expired) ബാച്ച് API ജോലിയുടെ ചെക്ക്പോസ്റ്റുകൾ, റഫറൻസ് ചെയ്ത input/output/error ഫയലുകൾ, വരി എന്നിവ ഇല്ലാതാക്കുന്നതിന് മുമ്പ് സ്വയമേവയുള്ള ക്ലീനപ്പ് സ്വീപ്പ് സൂക്ഷിക്കുന്നു. `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` ഓണാക്കിയാൽ മാത്രമേ പ്രാബല്യത്തിൽ വരികയുള്ളൂ; OpenAI യുടെ സ്വന്തം ബാച്ച് API ഔട്ട്പുട്ട് നിലനിർത്തൽ വിൻഡോയുമായി പൊരുത്തപ്പെടുന്നു. ഡിസൈൻ പ്രകാരം നിരുപാധികം (പ്രായം ഫിൽട്ടർ ഇല്ല) നിലകൊള്ളുന്ന ഓപ്പറേറ്റർ-ട്രിഗർ ചെയ്ത `DELETE /api/v1/batches/delete-completed` റൂട്ടിനെ ബാധിക്കില്ല. | | `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | `true` ആകുമ്പോൾ, `OMNIROUTE_BATCH_RETENTION_DAYS` കഴിഞ്ഞ ടെർമിനൽ ബാച്ച് API ജോലികൾ (അവരുടെ ചെക്ക്പോസ്റ്റുകളും) ഇല്ലാതാക്കാനും, സ്വന്തം `expires_at` കഴിഞ്ഞ അപ്ലോഡ് ചെയ്ത ഫയലുകളുടെ BLOB ഉള്ളടക്കം മായ്ക്കാനും ഓട്ടോമാറ്റിക് ക്ലീനപ്പ് സ്വീപ്പിനെ അനുവദിക്കുക. ഡിഫോൾട്ടായി ഓഫ്: ഒരു ഓപ്പറേറ്റർ തിരഞ്ഞെടുക്കുന്നത് വരെ നിലവിലുള്ള എല്ലാ ഇൻസ്റ്റാളും ഈ ഡാറ്റ കൃത്യമായി സൂക്ഷിക്കുന്നു. കൂടാതെ ഒരു ഡാഷ്ബോർഡ്-എഡിറ്റുചെയ്യാവുന്ന സവിശേഷത ഫ്ലാഗ് — `docs/reference/FEATURE_FLAGS.md` → റൺടൈം കാണുക. | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts`, `src/lib/db/healthCheck.ts` | സ്റ്റാർട്ടപ്പിൽ DB ആരോഗ്യ പരിശോധന പൂർണ്ണമായും ഒഴിവാക്കുന്നതിന് `1` ആയി സജ്ജീകരിക്കുക. ഹ്രസ്വകാല ടാസ്ക്കുകൾക്കും ഇൻ്റഗ്രേഷൻ ടെസ്റ്റുകൾക്കും ഉപയോഗപ്രദമാണ്. | | `OMNIROUTE_FORCE_DB_HEALTHCHECK` | `0` | `src/lib/db/core.ts` | DB ഹെൽത്ത് ചെക്ക് ലൂപ്പ് നിർബന്ധിതമായി ഓണാക്കാൻ `1` ആയി സജ്ജീകരിക്കുക, അത് സാധാരണയായി ഒഴിവാക്കപ്പെടുമ്പോൾ പോലും (ഉദാ, ഹ്രസ്വകാല ജോലികൾ). | | `OMNIROUTE_SKIP_POSTINSTALL` | `0` | `scripts/postinstall.mjs` | `npm install` സമയത്ത് നേറ്റീവ്-റൺടൈം വാം-അപ്പ് ഒഴിവാക്കാൻ `1` ആയി സജ്ജീകരിക്കുക. sqlite ഇതിനകം നിർമ്മിച്ചിരിക്കുന്ന CI/headless ഇൻസ്റ്റാളുകളിൽ ഉപയോഗപ്രദമാണ്. | | `OMNIROUTE_MIGRATIONS_DIR` | _(യാന്ത്രികമായി കണ്ടുപിടിക്കുക)_ | `src/lib/db/migrationRunner.ts` | മൈഗ്രേഷൻ റണ്ണർ സ്കാൻ ചെയ്യുന്ന ഡയറക്ടറി അസാധുവാക്കുക. ഇഷ്ടാനുസൃത ബിൽഡുകളിൽ ബണ്ടിൽ ചെയ്ത മൈഗ്രേഷനുകൾ ഷിപ്പുചെയ്യുമ്പോൾ ഉപയോഗപ്രദമാണ്. | | `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/db/migrationRunner/extraDirs.ts` | പ്ലാറ്റ്ഫോം പാത്ത് ഡിലിമിറ്റർ (ഉദാ `ee=/opt/app/enterprise/db/migrations`) കൊണ്ട് വേർതിരിച്ച `namespace=dir` എൻട്രികളായി അധിക മൈഗ്രേഷൻ ഡയറക്ടറികൾ. അവിടെ കണ്ടെത്തിയ ഫയലുകൾ `-` ആയി രേഖപ്പെടുത്തിയിട്ടുണ്ട്, അതിനാൽ ഒരു വിതരണ ഷിപ്പിംഗ് അതിൻ്റെ സ്വന്തം മൈഗ്രേഷനുകൾ അപ്സ്ട്രീം ന്യൂമറിക് സ്ലോട്ടുകളുമായി കൂട്ടിയിടിക്കില്ല. വികലമായ എൻട്രി, അസാധുവായ നെയിംസ്പെയ്സ് അല്ലെങ്കിൽ നഷ്ടമായ ഡയറക്ടറി എന്നിവ സ്കീമ നിശബ്ദമായി ഒഴിവാക്കുന്നതിന് പകരം സ്റ്റാർട്ടപ്പിലേക്ക് എറിയുന്നു. | | `OMNIROUTE_MAX_PENDING_MIGRATIONS` | `50` | `src/lib/db/migrationRunner.ts` | വൻതോതിലുള്ള-തീർച്ചപ്പെടുത്താത്ത-മൈഗ്രേഷൻ സുരക്ഷാ പരിധി (#3416). നിലവിലുള്ള ഒരു DB യിൽ (തുടച്ച ട്രാക്കിംഗ് ടേബിളിൽ നിന്ന് കാവൽ നിൽക്കുന്നത്) ഇതിൽ കൂടുതൽ മൈഗ്രേഷനുകൾ തീർപ്പുകൽപ്പിക്കാത്ത പക്ഷം സ്റ്റാർട്ടപ്പ് നിർത്തലാക്കും. പഴയ ബാക്കപ്പ് പുനഃസ്ഥാപിക്കാൻ ഇത് ഉയർത്തുക; പരിശോധന പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_INSTALL_UPGRADE_WORKDIR` | _(`/.install-upgrade`)_ | `scripts/check/check-install-upgrade.mjs` | `check:install-upgrade` റിലീസ് ഗേറ്റിനുള്ള വർക്കിംഗ് ഡയറക്ടറി. ഇതിന് ഏകദേശം 12 GB (രണ്ട് ~ 3 GB ഇൻസ്റ്റോൾ ട്രീകളും ടാർബോളും) ആവശ്യമാണ്, അതിനാൽ ഇത് സ്വയം ഹോസ്റ്റ് ചെയ്ത റണ്ണർ `/tmp` ൽ ഒരു ചെറിയ tmpfs — ൽ പ്രവർത്തിക്കാൻ പാടില്ല, 12 GB RAM- പിന്തുണയുള്ള tmpfs ആണ്, ഗേറ്റ് അതിനെ വെട്ടിച്ചുരുക്കി, പാക്കേജ് തീർന്നു. | | `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(കോഡിൽ സ്ഥിരസ്ഥിതി)_ | `src/lib/spend/batchWriter.ts` | ബാച്ച് ചെയ്ത spend/cost റൈറ്ററിന് ഫ്ലഷ് ഇടവേള (മി.സെ.). താഴ്ന്ന മൂല്യങ്ങൾ റൈറ്റ് കോൾസിംഗ് കുറയ്ക്കുന്നു; ഉയർന്ന മൂല്യങ്ങൾ DB തർക്കം കുറയ്ക്കുന്നു. | | `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(കോഡിൽ സ്ഥിരസ്ഥിതി)_ | `src/lib/spend/batchWriter.ts` | നിർബന്ധിത ഫ്ലഷിന് മുമ്പ് പരമാവധി ബഫർ ചെയ്ത എൻട്രികൾ. ഉയർന്ന ക്യുപിഎസ് വിന്യാസങ്ങൾ വർദ്ധിപ്പിക്കുക; ബൗണ്ടഡ് മെമ്മറി പ്രാധാന്യമുള്ളപ്പോൾ താഴ്ന്നതാണ്. | | `OMNIROUTE_PROXY_FETCH_DEBUG` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/utils/proxyFetch.ts` | Vercel റിലേ പാതയിൽ `[ProxyFetch]` ഡീബഗ് ലോഗുകൾ പുറപ്പെടുവിക്കാൻ `"true"` ആയി സജ്ജമാക്കുക. റൂട്ടിംഗ് സൂചനകൾ ചോരാതിരിക്കാൻ ഡിഫോൾട്ടായി ഓഫ് ചെയ്യുക. | | `OMNIROUTE_PROXY_CORE_BINARY_PATH` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/proxySubscription/coreConfig/sync.ts` | ലോക്കൽ പ്രോക്സി കോർ ബൈനറിയുടെ ( `sing-box` / `mihomo` എന്ന് പേരുള്ള ഒരു ഫയൽ) സമ്പൂർണ്ണ പാത, അത് സ്വീകരിച്ച ഫയലിനെ മാറ്റിസ്ഥാപിക്കുന്നതിന് മുമ്പ് ജനറേറ്റഡ് കോർ കോൺഫിഗറേഷൻ പരിശോധിക്കുന്നു. സജ്ജീകരിക്കാത്തത് സ്വീകരിച്ച ഫയലിൻ്റെ അരികിൽ മാത്രം `.generated` എഴുതുന്നു. ഹോസ്റ്റ് എൻവയോൺമെൻ്റ് മാത്രം: ഡാറ്റാബേസിൽ ഒരിക്കലും സംഭരിക്കുകയോ മാനേജ്മെൻ്റ് API വഴി സ്വീകരിക്കുകയോ ചെയ്യില്ല, കാരണം ബൈനറി എക്സിക്യൂട്ട് ചെയ്തിരിക്കുന്നു. | | `OMNIROUTE_PROXY_CORE_RELOAD_COMMAND` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/proxySubscription/coreConfig/reload.ts` | പരിശോധിച്ച കോൺഫിഗറേഷൻ മാറ്റിസ്ഥാപിക്കലിനുശേഷം ലോക്കൽ പ്രോക്സി കോർ എങ്ങനെ റീലോഡ് ചെയ്യുന്നു: ഒരു ഷെൽ ഇല്ലാതെ ഒരു JSON ആർഗ്യുമെൻ്റ് അറേ പ്രവർത്തിക്കുന്നു, അല്ലെങ്കിൽ ഒരു ബാഹ്യ നിരീക്ഷകൻ ഫയൽ പ്രയോഗിക്കുമ്പോൾ കൃത്യമായി `external`. ഡാറ്റാബേസിൽ ഒരിക്കലും സംഭരിക്കുകയോ API വഴി വെളിപ്പെടുത്തുകയോ ചെയ്യരുത്. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `src/lib/proxyLogger.ts` | വെർബോസ് `[ProxyEgress]` പ്രോസസ്സ്-ലോഗ് ലൈനിൽ client/egress IPs ഉം അക്കൗണ്ട് പ്രിഫിക്സും ഉൾപ്പെടുത്താൻ `"true"` അല്ലെങ്കിൽ `"1"` ആയി സജ്ജമാക്കുക. സ്ഥിരസ്ഥിതിയായി OFF സൂക്ഷിക്കുന്നു, അതിനാൽ പ്രോസസ്സ് ലോഗ് IPs അല്ലെങ്കിൽ അക്കൗണ്ട് പ്രിഫിക്സ് ചോർത്തില്ല. | | `OMNIROUTE_DEBUG` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/commands/quota.mjs` | CLI ക്വാട്ട കമാൻഡുകളിൽ നിന്ന് stderr-ലേക്കുള്ള ഓരോ അഭ്യർത്ഥന ടൈമിംഗ് ഡയഗ്നോസ്റ്റിക്സ് (`[omniroute] GET completed in Nms`) പ്രിൻ്റ് ചെയ്യുന്നതിന് `1` ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_HEALTHCHECK_PATH` | _(ഓട്ടോ)_ | `scripts/dev/healthcheck.mjs` | കണ്ടെയ്നർ ഹെൽത്ത് ചെക്ക് വഴി വ്യക്തമായ പാത പരിശോധിച്ചു. സജ്ജീകരിച്ചിട്ടില്ല, അന്വേഷണം `OMNIROUTE_BASE_PATH` യിൽ നിന്ന് ഉരുത്തിരിഞ്ഞു; അത് ഡീപ് മോണിറ്ററിംഗ് എൻഡ് പോയിൻ്റിലേക്ക് തിരികെ തിരഞ്ഞെടുക്കുന്നു. | | `OMNIROUTE_DEBUG_COMPLETION` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/commands/completion.mjs` | CLI ഷെൽ-കംപ്ലീഷൻ കാഷെ പാഥുകളിൽ (read/refresh/write) നിന്ന് `[omniroute completion]` ഡയഗ്നോസ്റ്റിക്സ് പുറപ്പെടുവിക്കാൻ ശൂന്യമല്ലാത്ത ഏതെങ്കിലും മൂല്യത്തിലേക്ക് സജ്ജമാക്കുക. സ്ഥിരസ്ഥിതിയായി — ഓഫ് ആ കാഷെകൾ നിശബ്ദമായി പരാജയപ്പെടുന്നു, അതിനാൽ ഒരു missing/corrupt കാഷെ ഒരിക്കലും ടാബ് പൂർത്തീകരണം തകർക്കില്ല. | | `BATCH_RETRY_DURATION_MS` | `86400000` (24 മണിക്കൂർ) | `open-sse/services/batchProcessor.ts` | വ്യക്തിഗത ബാച്ച് ഇനങ്ങൾക്ക് (മി.സെ.) പരമാവധി വീണ്ടും ശ്രമിക്കാനുള്ള വിൻഡോ. ഈ കാലയളവ് കവിയുന്ന ഇനങ്ങൾ പരാജയപ്പെട്ടതായി അടയാളപ്പെടുത്തി. | | `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | ബാച്ച് ഇനം വീണ്ടും ശ്രമിക്കുമ്പോൾ എക്സ്പോണൻഷ്യൽ ബാക്ക്ഓഫിനുള്ള അടിസ്ഥാന കാലതാമസം (മി.എസ്). | | `BATCH_BACKOFF_MAX_MS` | `3600000` (1h) | `open-sse/services/batchProcessor.ts` | ബാച്ച് ഇനം വീണ്ടും ശ്രമിക്കുന്നതിന് ഇടയിലുള്ള എക്സ്പോണൻഷ്യൽ ബാക്ക്ഓഫിന് ക്യാപ് (മിസെ). | | `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | ഒരേസമയം പ്രോസസ്സ് ചെയ്ത പരമാവധി എണ്ണം ബാച്ചുകൾ. ത്രൂപുട്ട് വർദ്ധിപ്പിക്കാൻ ഉയർത്തുക; നിരക്ക്-പരിധി കൊടുങ്കാറ്റുകൾ ഒഴിവാക്കാൻ താഴ്ത്തുക. | > [!IMPORTANT] > നിലവിലുള്ള ഒരു സ്ഥിരമായ ഡാറ്റാബേസ് മാറ്റുന്നതിന് മുമ്പ്, മൈഗ്രേഷൻ റണ്ണർ `DATA_DIR/db_backups/` കീഴിൽ ഒരു പൂർണ്ണമായ, ഉള്ളടക്ക വിലാസമുള്ള സ്നാപ്പ്ഷോട്ട് പ്രസിദ്ധീകരിക്കുന്നു. പ്രസിദ്ധീകരണത്തിന് ഒരേ ഫയൽസിസ്റ്റം പിന്തുണയ്ക്കുന്ന ഒരു ഫയൽസിസ്റ്റം ആവശ്യമാണ്, ഹാർഡ് ലിങ്കുകൾ പുനരാലേഖനം ചെയ്യരുത്, ഒപ്പം ഡ്യൂറബിൾ ഫയൽ സമന്വയവും. POSIX ഹോസ്റ്റുകൾക്കും ഡയറക്ടറി സമന്വയം ആവശ്യമാണ്; Windows ൽ, നോഡ് ഡയറക്ടറി ഹാൻഡിലുകൾ നിരസിച്ചേക്കാം, അതിനാൽ OmniRoute പ്രസിദ്ധീകരിച്ച ഫയൽ ഫ്ലഷ് ചെയ്യുകയും ഡയറക്ടറി-എൻട്രി സമന്വയത്തെ മികച്ച ശ്രമമായി കണക്കാക്കുകയും ചെയ്യുന്നു. മൌണ്ട് ചെയ്ത `DATA_DIR` ആ ഗ്യാരൻ്റി നൽകാൻ കഴിയുന്നില്ലെങ്കിൽ, ഒരു മൈഗ്രേഷൻ പ്രയോഗിക്കുന്നതിന് മുമ്പ് സ്റ്റാർട്ടപ്പ് പരാജയപ്പെടും. ആ പ്രിമിറ്റീവുകളുള്ള ഒരു വോള്യത്തിലേക്ക് `DATA_DIR` നീക്കുക; മൈഗ്രേഷൻ സുരക്ഷയെ മറികടക്കാൻ `DISABLE_SQLITE_AUTO_BACKUP` ഉപയോഗിക്കരുത്. ### രംഗങ്ങൾ | രംഗം | കോൺഫിഗറേഷൻ | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | | **പ്രാദേശിക വികസനം** | എല്ലാ ഡിഫോൾട്ടുകളും വിടുക. DB `~/.omniroute/omniroute.db` ൽ താമസിക്കുന്നു. | | **Docker** | `DATA_DIR=/data` + `/data` ൽ ഒരു വോള്യം മൌണ്ട് ചെയ്യുക. | | **വിശ്രമവേളയിൽ എൻക്രിപ്റ്റ് ചെയ്തു** | കീയുടെ ബാക്കപ്പുകൾ സൂക്ഷിക്കുക `STORAGE_ENCRYPTION_KEY` + സജ്ജമാക്കുക! ഇത് നഷ്ടപ്പെടുമ്പോൾ = ഡാറ്റ നഷ്ടപ്പെടുന്നു. | | **CI/Testing** | `DATA_DIR=/tmp/omniroute-test` — എഫെമെറൽ, എൻക്രിപ്ഷൻ ആവശ്യമില്ല. | --- ## 3. നെറ്റ്വർക്ക് & പോർട്ടുകൾ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PORT` | `20128` | `src/lib/runtime/ports.ts` | ഡാഷ്ബോർഡ് UI, API എൻഡ്പോയിൻ്റുകൾ (സിംഗിൾ പോർട്ട് മോഡ്) എന്നിവയ്ക്കുള്ള പ്രാഥമിക പോർട്ട്. | | `OMNIROUTE_BASE_PATH` | _(ശൂന്യമായ = റൂട്ട്)_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | ഒരു റിവേഴ്സ് പ്രോക്സിക്ക് പിന്നിൽ OmniRoute നൽകുന്നതിനുള്ള URL സബ്പാത്ത് ( Next.js `basePath`; auth റീഡയറക്ടുകൾ ബേസ്പാത്ത്-അവേർ ആണ്). ഉദാ `/omniroute`. Docker ൽ മൂല്യം `docker build` (`ARG OMNIROUTE_BASE_PATH`) സമയത്ത് ചുട്ടെടുക്കുന്നു; പ്രീ-ബിൽറ്റ് റൂട്ട് ഇമേജുകൾക്ക് Next.js ബൂട്ട് ചെയ്യുന്നതിന് മുമ്പ് കണ്ടെയ്നർ ആരംഭത്തിൽ ഒരിക്കൽ മറ്റൊരു റൺടൈം മൂല്യം പ്രയോഗിക്കാൻ കഴിയും. ഒരേ ഉപപാത ഉൾപ്പെടെ പൊതു ഉത്ഭവത്തിലേക്ക് `NEXT_PUBLIC_BASE_URL` സജ്ജമാക്കുക. | | `NEXT_PUBLIC_OMNIROUTE_BASE_PATH` | _(ശൂന്യമായ = റൂട്ട്)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | `OMNIROUTE_BASE_PATH` യുടെ ബ്രൗസർ-ദൃശ്യമായ മിറർ, ബിൽഡ് സമയത്ത് ഇൻലൈൻ ചെയ്തിരിക്കുന്നതിനാൽ ഡാഷ്ബോർഡ് എൻഡ്പോയിൻ്റ് ഡിസ്പ്ലേ `https://host/v1` ന് പകരം `https://host/omniroute/v1` കാണിക്കുന്നു. സജ്ജീകരിക്കാത്തപ്പോൾ `OMNIROUTE_BASE_PATH` ലേക്ക് മടങ്ങുന്നു. മാറിയതിനുശേഷം പുനർനിർമ്മിക്കുക (അടുത്ത `basePath` ബിൽഡ്-ടൈം ആണ്). | | `DASHBOARD_ALLOW_EMBED` | _(അൺസെറ്റ് = ഒരിക്കലും ഫ്രെയിമബിൾ അല്ല)_ | `next.config.mjs`, `scripts/build/dashboardEmbed.mjs` | HTML പേജുകളുടെ iframe ഉൾച്ചേർക്കൽ ഓപ്റ്റ്-ഇൻ ചെയ്യുക. സജ്ജീകരിച്ചിട്ടില്ല, എല്ലാ റൂട്ടുകളും `frame-ancestors 'none'` + `X-Frame-Options: DENY` ഷിപ്പ് ചെയ്യുന്നു. പേജുകൾ (ഡാഷ്ബോർഡ്, ലോഗിൻ, ഡോക്സ്, ലാൻഡിംഗ്) `frame-ancestors 'self' vscode-webview:` ഉപയോഗിച്ച് സെർവ് ചെയ്യാൻ `vscode` ആയി സജ്ജീകരിക്കുകയും `X-Frame-Options` ഇല്ല, അതിനാൽ VS കോഡ് സിമ്പിൾ ബ്രൗസറിന് അവ റെൻഡർ ചെയ്യാൻ കഴിയും (OmniCopilot യുടെ `dashboardOpen: "editor"` മോഡ്). API ഉപരിതലം (`/api`, `/v1`, `/v1beta`, `/a2a`, `/healthz`, റൂട്ട്-ലെവൽ അപരനാമങ്ങൾ) കർശനമായ തലക്കെട്ടുകൾ ഒന്നുകിൽ നിലനിർത്തുന്നു. `vscode` മാത്രമേ അംഗീകരിക്കപ്പെട്ടിട്ടുള്ളൂ — `1`/`true` അത് പ്രവർത്തനക്ഷമമാക്കരുത്. ബിൽഡ്-ടൈം: മാറ്റിയതിന് ശേഷം പുനർനിർമ്മിക്കുക (ചിത്രങ്ങൾക്കായുള്ള `docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode` ; ഒരു പ്രീബിൽറ്റ് ഇൻസ്റ്റാളിൽ ഇത് സജ്ജീകരിക്കുന്നതിന് ഫലമില്ല). | | `API_PORT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/runtime/ports.ts` | സജ്ജീകരിക്കുമ്പോൾ, ഈ പ്രത്യേക പോർട്ടിൽ `/v1/*` പ്രോക്സി API (കൂടാതെ ജെമിനി-നേറ്റീവ് `/v1beta/*`) നൽകുന്നു. | | `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | API പോർട്ടിനുള്ള വിലാസം ബന്ധിപ്പിക്കുക. | | `DASHBOARD_PORT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/runtime/ports.ts` | സജ്ജമാക്കുമ്പോൾ, ഈ പ്രത്യേക പോർട്ടിൽ ഡാഷ്ബോർഡ് UI നൽകുന്നു. | | `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(അപ്രാപ്തമാക്കി)_ | `src/sse/utils/backpressure.ts` | ക്യാപ്സ് കൺകറൻ്റ് ഇൻ-ഫ്ലൈറ്റ് ചാറ്റ് കണക്ഷനുകൾ; തൊപ്പിയിലെ അഭ്യർത്ഥനകൾ `Retry-After` ഉപയോഗിച്ച് `503` നേടുക. പോസിറ്റീവ് പൂർണ്ണസംഖ്യ ഗാർഡിനെ പ്രാപ്തമാക്കുന്നു; unset/`0` അത് പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OMNIROUTE_INSTANCE_ID` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/shared/resilience/peerRouting.ts` | OmniRoute ഇൻസ്റ്റൻസുകൾ ചെയിൻ ചെയ്യുമ്പോൾ ഈ ഗേറ്റ്വേയ്ക്കായി സുസ്ഥിരവും അതുല്യവുമായ ID. ഇൻബൗണ്ട് പിയർ-ലൂപ്പ് പരിശോധനകൾ പ്രവർത്തനക്ഷമമാക്കുന്നു. അനുവദനീയമായ പ്രതീകങ്ങൾ: അക്ഷരങ്ങൾ, അക്കങ്ങൾ, `.`, `_`, `:`, `-`; പരമാവധി 64 പ്രതീകങ്ങൾ. | | `OMNIROUTE_PEER_URLS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/shared/resilience/peerRouting.ts`, `open-sse/executors/base.ts` | `X-OmniRoute-Peer-Trace` ലഭിച്ചേക്കാവുന്ന കോമ കൊണ്ട് വേർതിരിച്ച OmniRoute ബേസ് URLs. വ്യക്തമായി അനുവദനീയമായ അപ്സ്ട്രീം URLs മാത്രമേ പിയർ മെറ്റാഡാറ്റ ലഭിക്കൂ; മറ്റെല്ലാ ദാതാക്കളും തൊട്ടുകൂടാത്തവരാണ്. | | `OMNIROUTE_PEER_MAX_HOPS` | `4` | `src/shared/resilience/peerRouting.ts` | മുമ്പ് സന്ദർശിച്ച OmniRoute സംഭവങ്ങളുടെ പരമാവധി എണ്ണം ഒരു ചങ്ങലയുള്ള അഭ്യർത്ഥനയിൽ സ്വീകരിച്ചു (`1`-`32`). ആവർത്തിച്ചുള്ള സന്ദർഭങ്ങൾ അല്ലെങ്കിൽ തീർന്നുപോയ ബജറ്റ് റിട്ടേൺ HTTP `508 Loop Detected`. | | `PROD_DASHBOARD_PORT` | `20130` | `docker-compose.prod.yml` | Docker പ്രൊഡക്ഷൻ മോഡിൽ ഡാഷ്ബോർഡിനായി ഹോസ്റ്റ് സൈഡ് പ്രസിദ്ധീകരിച്ച പോർട്ട്. | | `PROD_API_PORT` | `20131` | `docker-compose.prod.yml` | Docker പ്രൊഡക്ഷൻ മോഡിൽ API യ്ക്കായി ഹോസ്റ്റ് സൈഡ് പ്രസിദ്ധീകരിച്ച പോർട്ട്. | | `OMNIROUTE_PORT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/runtime/ports.ts` | Electron അല്ലെങ്കിൽ മറ്റ് റാപ്പറുകൾക്കുള്ളിൽ പ്രവർത്തിക്കുമ്പോൾ `PORT` യെക്കാൾ മുൻഗണന നൽകുന്നു. | | `LIVE_WS_PORT` | `20129` | `src/server/ws/liveServer.ts` | തത്സമയ WebSocket ലൈവ് മോണിറ്ററിംഗ് സെർവറിനായുള്ള പോർട്ട്. | | `LIVE_WS_HOST` | `127.0.0.1` | `src/server/ws/liveServer.ts` | തത്സമയ WebSocket സെർവറിനായുള്ള വിലാസം ബന്ധിപ്പിക്കുക. LAN ൽ തുറന്നുകാട്ടാൻ `0.0.0.0` ആയി സജ്ജമാക്കുക ( `LIVE_WS_ALLOWED_ORIGINS` യും കോൺഫിഗർ ചെയ്യുക). ഡാഷ്ബോർഡ് സെഷൻ കുക്കി അല്ലെങ്കിൽ ഒരു മാനേജ്മെൻ്റ് സ്കോപ്പ് (`manage`/`admin`) കൈവശമുള്ള ഒരു ബെയറർ API കീ ഉപയോഗിച്ച് കണക്ഷനുകൾ പ്രാമാണീകരിക്കുന്നു. | | `LIVE_WS_ALLOWED_ORIGINS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/server/ws/liveServer.ts` | ഒരു തത്സമയ WebSocket തുറക്കാൻ കോമയാൽ വേർതിരിച്ച അധിക ഉറവിടങ്ങൾ അനുവദിച്ചിരിക്കുന്നു . ലൂപ്പ്ബാക്ക് ഡാഷ്ബോർഡ് ഉത്ഭവം ഡിഫോൾട്ടായി ഇതിനകം അനുവദനീയമാണ്. | | `LIVE_WS_ALLOWED_HOSTS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/server/ws/liveServerAllowList.ts` | തത്സമയ WebSocket ഉത്ഭവത്തിന് കോമയാൽ വേർതിരിച്ച അധിക ഹോസ്റ്റ് നാമങ്ങൾ അനുവദിച്ചിരിക്കുന്നു. `LIVE_WS_ALLOWED_ORIGINS` (പൂർണ്ണ ഉത്ഭവം URLs) പോലെയല്ല, LAN/Tailscale സജ്ജീകരണങ്ങൾക്ക് ഉപയോഗപ്രദമായ — ഹോസ്റ്റ് ഭാഗം മാത്രം പൊരുത്തപ്പെടുന്നു. | | `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/hooks/useLiveDashboard.ts` | തത്സമയ ഡാഷ്ബോർഡ് WebSocket (ബ്രൗസർ-വശം) എന്നതിനായുള്ള പൊതു URL. ഒരു റിവേഴ്സ് പ്രോക്സി അല്ലെങ്കിൽ Cloudflare ടണൽ (ഉദാ `wss://ws.my-ai.com/live-ws`) ഉപയോഗിച്ച് WS സെർവറിനെ മുൻവശത്താക്കുമ്പോൾ സജ്ജമാക്കുക; `ws://hostname:20132` ന് പകരം ബ്രൗസർ അവിടെ കണക്ട് ചെയ്യുന്നു. പാത്ത്നെയിം ഭാഗം WebSocket നവീകരണ പാതയായും ഉപയോഗിക്കുന്നു (സ്ഥിരസ്ഥിതി: `/live-ws`). | | `OMNIROUTE_ENABLE_LIVE_WS` | `true` | `src/server/ws/liveServer.ts`, `scripts/start-ws-server.mjs` | തൽസമയ WebSocket സെർവർ പ്രവർത്തനരഹിതമാക്കാൻ `0` അല്ലെങ്കിൽ `false` ആയി സജ്ജമാക്കുക (സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കി, ലൂപ്പ്ബാക്ക്-ബൗണ്ട്). ഒറ്റപ്പെട്ട തത്സമയ WebSocket സഹായ സ്ക്രിപ്റ്റ് പ്രവർത്തനരഹിതമാക്കുന്ന CI/harness ടോഗിൾ. | | `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | ഓരോ-(ടോക്കൺ, IP) റിലേ നിരക്ക് പരിധി, requests/minute. ഇൻ-മെമ്മറി, ഓരോ ഉദാഹരണത്തിനും. `0` അല്ലെങ്കിൽ നെഗറ്റീവ് ഐപി-ഡൈമൻഷൻ ഗേറ്റ് പ്രവർത്തനരഹിതമാക്കുന്നു (ഓരോ ടോക്കൺ DB പരിധി ഇപ്പോഴും ബാധകമാണ്). | | `NODE_ENV` | `production` | Next.js കോർ | ലോഗിംഗ് വെർബോസിറ്റി, കാഷിംഗ്, പിശക് വിശദാംശങ്ങൾ എക്സ്പോഷർ, Next.js ഒപ്റ്റിമൈസേഷനുകൾ എന്നിവ നിയന്ത്രിക്കുന്നു. | | `OMNIROUTE_USE_TURBOPACK` | _(സജ്ജീകരിക്കാത്തത്)_ (ഓട്ടോമാറ്റിക് ബിൽഡ് സെലക്ഷൻ) | `scripts/build/build-next-isolated.mjs` | `npm run build`, ഫലപ്രദമായ മെമ്മറി പരിധി (ഫിസിക്കൽ RAM അല്ലെങ്കിൽ താഴ്ന്ന cgroup/process ക്വാട്ട) പരമാവധി ആയിരിക്കുമ്പോൾ വെബ്പാക്ക് സജ്ജമാക്കാതിരിക്കുകയോ ശൂന്യമാക്കുകയോ ചെയ്യുന്നു** 16 GiB** അല്ലെങ്കിൽ സുരക്ഷിതമായി നിർണ്ണയിക്കാൻ കഴിയില്ല; 16 GiB ന് മുകളിൽ, Turbopack തിരഞ്ഞെടുത്തു. വ്യക്തമായ `0` നിർബന്ധിത വെബ്പാക്ക്; വ്യക്തമായ `1` ഉം മറ്റ് ശൂന്യമല്ലാത്ത പൂജ്യമല്ലാത്ത മൂല്യങ്ങളും Turbopack നിർബന്ധിക്കുന്നു. കമ്പോസ് ഫോർവേഡ് ചെയ്യുന്ന ഒരു ശൂന്യമായ പരിസ്ഥിതി മൂല്യം ചെയ്യുന്നു** അല്ല** ബലം Turbopack. ഈ പരിധി വരുന്നത് 15.6 GiB ബിൽഡ്-മെമ്മറി റിഗ്രഷനിൽ നിന്നാണ് (#18184); 24/32 GiB ഉള്ള ഹോസ്റ്റ് ബിൽഡുകൾ ബെഞ്ച്മാർക്ക് ചെയ്തിട്ടില്ല. പ്രൊഡക്ഷൻ വെബ്പാക്ക് അതിൻ്റെ സ്ഥിരമായ കാഷെ ഡിഫോൾട്ടായി സ്വയമേവ ഒഴിവാക്കുന്നു (താഴെ `OMNIROUTE_WEBPACK_BUILD_CACHE` കാണുക; #18141) കൂടാതെ നിലവിലെ Turbopack പാതയേക്കാൾ ഗണ്യമായ കുറഞ്ഞ പീക്ക് RSS ഉപയോഗിച്ച് നിർമ്മിക്കുന്നു. വികസനം അതിൻ്റെ നിലവിലുള്ള ബണ്ടർ സ്വഭാവം നിലനിർത്തുന്നു.**Docker ഇതിനകം `0` (വെബ്പാക്ക്) ലേക്ക് സ്ഥിരസ്ഥിതിയായി നിർമ്മിക്കുന്നു** ; തിരഞ്ഞെടുക്കാൻ `--build-arg OMNIROUTE_USE_TURBOPACK=1` ഉപയോഗിക്കുക. `docs/guides/DOCKER_GUIDE.md` കാണുക. | | `OMNIROUTE_WEBPACK_BUILD_CACHE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `next.config.mjs` | വെബ്പാക്ക് പ്രൊഡക്ഷൻ ബിൽഡുകൾ (`OMNIROUTE_USE_TURBOPACK=0`) ഇത് `1` അല്ലാത്തപക്ഷം വെബ്പാക്ക് പെർസിസ്റ്റൻ്റ് ഫയൽസിസ്റ്റം കാഷെ ഒഴിവാക്കുക. കാഷെ എഴുതുന്നത് 6144 MB ഹീപ്പ് ക്യാപ്പിൽ ഏകദേശം 2.5 GB പീക്ക് ബിൽഡ് മെമ്മറി ചേർക്കുന്നു, കൂടാതെ ക്ലീൻ ബിൽഡുകൾ ഒരിക്കലും അത് തിരികെ വായിക്കില്ല. RAM ബാക്കിയുള്ള ഒരു മെഷീനിൽ വേഗത്തിൽ ആവർത്തിച്ചുള്ള ബിൽഡുകൾക്കായി `.build/next/cache/webpack` നിലനിർത്താൻ `1` ആയി സജ്ജീകരിക്കുക; Docker ബിൽഡുകൾ അതിനെ `--build-arg OMNIROUTE_WEBPACK_BUILD_CACHE=1` ആയി എടുക്കുന്നു (`Dockerfile`, `Dockerfile.bun` ബിൽഡർ ഘട്ടങ്ങൾ). | | `OMNIROUTE_SKIP_DB_HEALTHCHECK` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/db/core.ts` / `src/lib/db/healthCheck.ts` | സ്റ്റാർട്ടപ്പിലെ SQLite സമഗ്രത ആരോഗ്യ പരിശോധന ഒഴിവാക്കാൻ `1` ആയി സജ്ജീകരിക്കുക. വലിയ ഡാറ്റാബേസുകളിൽ വേഗത്തിലുള്ള ബൂട്ടിന് ഉപയോഗപ്രദമാണ്. | | `NOTIFY_SOCKET` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | systemd (sd_notify പ്രോട്ടോക്കോൾ) | sd_notify ഇൻ്റഗ്രേഷൻ ഉള്ള ഒരു സേവന യൂണിറ്റിന് കീഴിൽ പ്രോസസ്സ് പ്രവർത്തിക്കുമ്പോൾ systemd ഉപയോഗിച്ച് സജ്ജീകരിക്കുക; READY/WATCHDOG അറിയിപ്പുകൾ അയയ്ക്കുന്നതിന് OmniRoute അത് വായിക്കുന്നു ( `OMNIROUTE_DISABLE_SD_NOTIFY` കാണുക). ഉപയോക്താവ് ഒരിക്കലും സജ്ജീകരിക്കരുത്. | | `OMNIROUTE_DISABLE_SD_NOTIFY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/dev/systemd-notify.mjs` | systemd യൂണിറ്റിന് കീഴിൽ പ്രവർത്തിക്കുമ്പോൾ പോലും systemd sd_notify (ടൈപ്പ്= notify / WatchdogSec=) പ്രവർത്തനരഹിതമാക്കാൻ `1` ആയി സജ്ജമാക്കുക. നോട്ടിഫയർ ഒരു നോ-ഓപ് ഔട്ട് ഔട്ട് സിസ്റ്റമാണ്. | | `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `3600000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | പശ്ചാത്തല ക്രെഡൻഷ്യൽ ഹെൽത്ത് ചെക്ക് ഷെഡ്യൂളർക്കുള്ള ഇടവേള (മി.സെ.). കുറഞ്ഞത്: 10000 (10സെ). | | `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | കാഷെ ചെയ്ത ക്രെഡൻഷ്യൽ ആരോഗ്യ നിലയ്ക്ക്TTL (മി.സെ.). | | `OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK` | `false` | `src/lib/credentialHealth/scheduler.ts` | പ്രൊവൈഡർ കണക്ഷനുകളുടെ പശ്ചാത്തല ആനുകാലിക പരിശോധന പ്രവർത്തനരഹിതമാക്കാൻ `1` അല്ലെങ്കിൽ `true` ആയി സജ്ജീകരിക്കുക. തിരയൽ ദാതാക്കളെ ( `src/lib/providers/validation/searchProviders.ts` ലെSEARCH_VALIDATOR_CONFIGS, ഉദാ `tavily-search`) സ്വീപ്പ് — ൽ നിന്ന് എല്ലായ്പ്പോഴും ഒഴിവാക്കിയിരിക്കുന്നു അവരുടെ "സാധുത" എന്നത് ഒരു യഥാർത്ഥ ബിൽഡ് അപ്സ്ട്രീം അന്വേഷണമാണ്, അതിനാൽ അവർ ഒരിക്കലും ഒരു ടൈമറിൽ ആരോഗ്യം പരിശോധിക്കില്ല (#9970). | | `DEEP_HEALTH_CHECK_ENABLED` | `0` | `src/app/api/monitoring/health/route.ts` | `/api/monitoring/health?deep=1` അഭ്യർത്ഥിക്കാൻ ഒരു ആധികാരിക കോളർ അനുവദിക്കുന്നതിന് `1` ആയി സജ്ജീകരിക്കുക, ഓരോ TTL യിലും ഒരിക്കൽ പൂർത്തിയാക്കിയതിൻ്റെ സാമ്പിൾ എടുക്കുന്നു. അജ്ഞാത വിളിക്കുന്നവർ ഒരിക്കലും അന്വേഷണം ആരംഭിക്കില്ല. | | `OMNIROUTE_EVENT_LOOP_STALL_THRESHOLD_MS` | `5000` | `src/lib/healthzLag.ts` | ബൂട്ട് ഇവൻ്റ്-ലൂപ്പ് റെക്കോർഡറിനായുള്ള സ്റ്റാൾ ത്രെഷോൾഡ് (മി.എസ്.): ഇതിലും ദൈർഘ്യമേറിയ ഫ്രീസ്, മെമ്മറിയും ഇൻ-ഫ്ലൈറ്റിൻ്റെ എണ്ണവും ഉപയോഗിച്ച് റെസ്യൂമെയിൽ ഒരു `event loop stalled` ലൈൻ ലോഗ് ചെയ്യുന്നു, കൂടാതെ `/api/monitoring/health` ൽ `eventLoopStall` counter/maximum ബമ്പ് ചെയ്യുന്നു. പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജമാക്കുക; വായിക്കാൻ കഴിയാത്ത അല്ലെങ്കിൽ നെഗറ്റീവ് മൂല്യം `5000` ലേക്ക് തിരികെ വരുന്നു. | | `HOST` | `0.0.0.0` | `scripts/dev/run-next.mjs` | Next.js dev/start സെർവറിനായുള്ള വിലാസം ബന്ധിപ്പിക്കുക. സജ്ജമാക്കുമ്പോൾ ഡിഫോൾട്ട് `0.0.0.0` അസാധുവാക്കുന്നു. | | `HOSTNAME` | `127.0.0.1` | `scripts/dev/run-next-playwright.mjs` | Next.js സമാരംഭിക്കുമ്പോൾ Playwright റണ്ണർ ഉപയോഗിക്കുന്ന വിലാസം ബന്ധിപ്പിക്കുക. ഹെർമെറ്റിക് ടെസ്റ്റുകൾക്കായി `127.0.0.1` യിലേക്ക് ഡിഫോൾട്ടുകൾ.** `omniroute serve` ന് ഉപയോഗിക്കരുത്** — പകരം `OMNIROUTE_SERVER_HOST` ഉപയോഗിക്കുക (POSIX ഷെല്ലുകൾ മെഷീൻ നാമത്തിലേക്ക് `HOSTNAME` സ്വയമേവ സജ്ജീകരിക്കുന്നു; `.env` അത് അസാധുവാക്കാൻ കഴിയില്ല). | | `OMNIROUTE_SERVER_HOST` | `0.0.0.0` | `bin/cli/commands/serve.mjs` | `omniroute serve` യുടെ വിലാസം ബന്ധിപ്പിക്കുക. POSIX ഷെൽ `HOSTNAME` വേരിയബിളുമായി കൂട്ടിയിടിക്കുന്നത് ഒഴിവാക്കുന്നു (എല്ലായ്പ്പോഴും മെഷീൻ നാമം bash/zsh ആയി സജ്ജീകരിക്കുക). സജ്ജീകരിക്കാത്തപ്പോൾ `0.0.0.0` ലേക്ക് മടങ്ങുന്നു. (#6194) | ### പോർട്ട് മോഡുകൾ ``` ┌─────────────────────────── 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. സുരക്ഷയും പ്രാമാണീകരണവും | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `MACHINE_ID_SALT` | `endpoint-proxy-salt` | `src/lib/auth` | മെഷീൻ ഫിംഗർപ്രിൻ്റിംഗിനായി ഹാർഡ്വെയർ ഐഡൻ്റിഫയറുകളുമായി സംയോജിപ്പിച്ച ഉപ്പ്. ഒറ്റപ്പെടലിനായി ഓരോ വിന്യാസവും മാറ്റുക. | | `OMNIROUTE_CLI_SALT` | _(അൺസെറ്റ് = റാൻഡം പെർ-ഇൻസ്റ്റാൾ ഉപ്പ് `/cli-token-salt.json` ൽ നിലനിന്നിരുന്നു)_ | `src/lib/machineToken.ts` | പ്രാദേശിക CLI ഓത്ത് ടോക്കൺ ലഭിക്കുന്നതിനുള്ള HMAC ഉപ്പ്. ഈ മൂല്യം സജ്ജീകരിക്കുന്നത് മെഷീനിലെ എല്ലാ CLI ടോക്കണുകളും തിരിക്കുന്നു കൂടാതെ എപ്പോഴും നിലനിൽക്കുന്ന ഉപ്പിനേക്കാൾ മുൻഗണന നൽകുന്നു. `docs/security/CLI_TOKEN.md` കാണുക. | | `AUTH_COOKIE_SECURE` | `false` | `src/lib/auth` | സെഷൻ കുക്കികളിൽ `Secure` ഫ്ലാഗ് സജ്ജീകരിക്കുന്നു.** `true` ആയിരിക്കണം** HTTPS പിന്നിൽ ഓടുമ്പോൾ. | | `REQUIRE_API_KEY` | `false` | API മിഡിൽവെയർ | `true` ആയിരിക്കുമ്പോൾ, എല്ലാ `/v1/*` പ്രോക്സി അഭ്യർത്ഥനകളിലും സാധുതയുള്ള ഒരു API കീ ഉണ്ടായിരിക്കണം.** ഈ പതാക ഗേറ്റ് `GET /v1/models` അല്ല** , ഇത് ഡാഷ്ബോർഡ് ലോഗിൻ പോസ്ചർ (`requireAuthForModels`) പിന്തുടരുന്നു, പകരം —, അതിനാൽ `/v1/models` നിന്നുള്ള ഒരു `401` NOT സംരക്ഷിക്കപ്പെടുന്നു എന്നാണ് അർത്ഥമാക്കുന്നത്. `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695) കാണുക. `true`, `1` അല്ലെങ്കിൽ `yes` സ്വീകരിക്കുന്നു, കേസും ചുറ്റുമുള്ള ഇടങ്ങളും അവഗണിക്കുന്നു; മറ്റേതെങ്കിലും മൂല്യം ( `on` ഉൾപ്പെടെ) ഓഫാണ്. | | `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ഡാഷ്ബോർഡ് UI ൽ മുഴുവൻ API കീ മൂല്യങ്ങൾ വെളിപ്പെടുത്താൻ അനുവദിക്കുന്നു. ഡാഷ്ബോർഡ് ഫീച്ചർ ഫ്ലാഗുകളിൽ നിന്ന് ക്രമീകരിക്കാവുന്നതാണ്; പങ്കിട്ട സംഭവങ്ങളിലെ സുരക്ഷാ അപകടസാധ്യത. | | `NO_LOG_API_KEY_IDS` | _(ശൂന്യം)_ | `src/lib/compliance/index.ts` | കോമയാൽ വേർതിരിച്ച API കീ IDs അത് അഭ്യർത്ഥന ലോഗിംഗിനെ മറികടക്കുന്നു (GDPR പാലിക്കൽ). | | `DEFAULT_RATE_LIMIT_PER_DAY` | _(അൺസെറ്റ് = അൺലിമിറ്റഡ്)_ | `src/shared/utils/apiKeyPolicy.ts` | `rate_limits` കോളം ശൂന്യമായ API കീകളിൽ ഫാൾബാക്ക് പ്രതിദിന അഭ്യർത്ഥന ബജറ്റ് ബാധകമാണ്. സജ്ജീകരിക്കാത്തതോ ശൂന്യമായതോ: ഇംപ്ലിസിറ്റ് ക്യാപ് ഇല്ല (#2289, #11017). `0` സമാനമാണ് (അൺലിമിറ്റഡ്). പോസിറ്റീവ് പൂർണ്ണസംഖ്യ N N/day, 5N/week, 20N/month. പ്രവർത്തനക്ഷമമാക്കുന്നു തെറ്റായ നോൺ-ശൂന്യമായ മൂല്യങ്ങൾ ലെഗസി 1000/day, 5000/week, 20000/month വിൻഡോകളിലേക്ക് മടങ്ങുന്നു. | | `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | ദൃശ്യമായ `maxBodySizeMb` ക്രമീകരണത്തിനുള്ള ഡിഫോൾട്ട്; സംരക്ഷിച്ച ക്രമീകരണം മുൻഗണന നൽകുന്നു. `/api/v1/chat/completions`, `/api/v1/responses` ഒരു പരിധി സംരക്ഷിക്കുന്നത് വരെ 50 MB ഡിഫോൾട്ടായി നിലനിർത്തുന്നു; ഒരു സംരക്ഷിച്ച പരിധി പിന്നീട്, ഹെഡർ ഗാർഡിനും യഥാർത്ഥ-ബൈറ്റ് ചാറ്റ് പ്രവേശനത്തിനും ഒരുപോലെ മുകളിലേക്കോ താഴേക്കോ മാറ്റിസ്ഥാപിക്കുന്നു. | | `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | ഈ പരിധിയിലോ അതിനു മുകളിലോ ഉള്ള യഥാർത്ഥ അഭ്യർത്ഥന ബോഡികൾ JSON പാഴ്സിംഗിന് മുമ്പായി ആറ്റോമിക് പ്രോസസ്സ്-ലോക്കൽ ഹെവിവെയ്റ്റ് അഡ്മിഷൻ ലീസ് എടുക്കുന്നു (BYTE പാത്ത്, `POST /v1/responses` ഉൾപ്പെടെ). ഘടന-ഭാരമുള്ള അതേ [#10437](https://github.com/diegosouzapw/OmniRoute/pull/10437) ഹെൽത്തി-ഹെഡ്റൂം എസ്കേപ്പ്; ഇപ്പോഴും `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / [#10110](https://github.com/diegosouzapw/OmniRoute/issues/10110) കൊണ്ട് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു അതിനാൽ [#7849](https://github.com/diegosouzapw/OmniRoute/issues/7849) തിരികെ വരുന്നില്ല. | | `OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES` | `52428800` (50 MB) | `src/shared/middleware/chatBodyAdmission.ts` | വിട്ടുപോയതോ അസാധുവായതോ സത്യസന്ധമല്ലാത്തതോ ആയ `Content-Length` ഉള്ള അഭ്യർത്ഥനകൾ ഉൾപ്പെടെ, ബൗണ്ടഡ് ഇൻസെഷൻ സമയത്ത് വായിക്കുന്ന ബൈറ്റുകൾക്കെതിരെ ചാറ്റ്-റൂട്ട് ഹാർഡ് ക്യാപ് നടപ്പിലാക്കുന്നു; അധികമായാൽ `413` ലഭിക്കുന്നു. ഒരു സംരക്ഷിച്ച `maxBodySizeMb` 50 MB ഡിഫോൾട്ടിനെ മാറ്റിസ്ഥാപിക്കുന്നു; ഈ വേരിയബിൾ സജ്ജീകരിക്കുമ്പോൾ, അത് സംരക്ഷിച്ച മൂല്യവും ക്യാപ് ചെയ്യുന്നു. | | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(അൺസെറ്റ് — നോ റിക്വസ്റ്റ്-കൗണ്ട് ക്യാപ്)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-ആരാധകൻ:** ഈ ലെഗസി അഭ്യർത്ഥന-COUNT തൊപ്പി ഇപ്പോൾ വ്യക്തമായി സജ്ജീകരിക്കുമ്പോൾ മാത്രം ബന്ധിപ്പിക്കുന്നു. സജ്ജീകരിക്കാത്തത് (സ്ഥിരസ്ഥിതി), ഹെവിവെയ്റ്റ് ചാറ്റ് പ്രവേശനം `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` — വഴി ഗേറ്റ് ചെയ്തിരിക്കുന്നു, പ്രക്രിയയുടെ യഥാർത്ഥ മെമ്മറി പരിധിയിൽ നിന്ന് സ്വയമേവയുള്ള BYTE ബജറ്റ് വലുപ്പം** ഒരു പ്രക്രിയ** (ഒരു V8 കൂമ്പാരം). രണ്ട് ഓവർലാപ്പിംഗ് ~ 750k-ടോക്കൺ `/v1/responses` അബോർട്ട് ~ 12 Gi ഹീപ്പുകൾ (#7849) — a** മെമ്മറി-ബജറ്റ്** മുന്നറിയിപ്പ്, ഒരു ഹാർഡ് ഉൽപ്പന്നം പരമാവധി 2 അല്ല. ആരോഗ്യകരമായ ഒരു പ്രക്രിയ (ഷെഡ് അനുപാതത്തിന് താഴെയുള്ള കൂമ്പാരം) MAY `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` വഴി കൂടുതൽ ഒരേസമയം നീണ്ട `/v1/responses` അംഗീകരിക്കുന്നു. നീണ്ട SSE ക്ലയൻ്റുകളുടെ (40–50) ഹീപ്പ് + `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110 ആണ്, "പരമാവധി 2" അല്ല. "ഹോസ്റ്റ് ഉപയോഗിക്കുന്നതിന്" ഇത് അന്ധമായി ഉയർത്തുന്നത് #7849 വീണ്ടും അവതരിപ്പിക്കുന്നു. ഗുണിക്കുക** കൂമ്പാരങ്ങൾ** കൂടെ** N സ്വതന്ത്ര `DATA_DIR` s** (#11024); ഒരു SQLite ഫയലിൽ ഒരിക്കലും `replicas>1`. | | `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(യാന്ത്രികമായി ഉരുത്തിരിഞ്ഞത്)_ | `src/shared/middleware/admissionBudget.ts` | **#503-ആരാധകൻ:** സ്വയമേവയുള്ള ഇൻജസ്റ്റ് ബൈറ്റ് ബഡ്ജറ്റിന് അസാധുവാക്കുക (ഇറുകിയ V8/cgroup മെമ്മറി സീലിംഗിൻ്റെ 25% 8x താൽക്കാലിക ആംപ്ലിഫിക്കേഷൻ കൊണ്ട് ഹരിക്കുക). ഉരുത്തിരിഞ്ഞതും വ്യക്തവുമായ മൂല്യങ്ങൾ 8 MiB–2 GiB ലേക്ക് ഉറപ്പിക്കുന്നു. ഫലപ്രദമായ ബജറ്റിനേക്കാൾ വലിയ ഒരു ബോഡി `413 body_exceeds_budget` ഉപയോഗിച്ച് ഉടൻ പരാജയപ്പെടുന്നു; വ്യക്തിഗതമായി സേവനയോഗ്യമായ സ്ഥാപനങ്ങൾ തമ്മിലുള്ള തർക്കം വീണ്ടും ശ്രമിക്കാവുന്ന `503` ആയി തുടരുന്നു. 40-50 സമകാലിക ദൈർഘ്യമുള്ള SSE ക്ലയൻ്റുകൾ ഈ ബജറ്റ് + കൂമ്പാരമാണ്, കഠിനമായ "പരമാവധി 2" അല്ല. ട്യൂൺ ചെയ്യുന്നതിന് മുമ്പ് `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity` `/api/monitoring/health` ൽ വായിക്കുക. | | `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | BYTE, STRUCTURE ഹെവിവെയ്റ്റ് പ്രവേശനത്തിനുള്ള (#10183, #10268, #10437) ഹീപ്പ്-പ്രഷർ ഷെഡ് അനുപാതം (`heapUsed / heap_size_limit`). ഈ അനുപാതത്തിലോ അതിനു മുകളിലോ കൂമ്പാരം ALSO ആയിരിക്കുമ്പോൾ, `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` കഴിഞ്ഞ ഒരു കൺകറൻ്റ് ഹെവിവെയ്റ്റ് അഭ്യർത്ഥന വീണ്ടും ശ്രമിക്കാവുന്ന `503` ഉപയോഗിച്ച് മാത്രമേ ഷെഡ് ചെയ്യപ്പെടുകയുള്ളൂ; ആരോഗ്യകരമായ ഒരു കൂമ്പാരത്തിൽ പകരം ഹെൽത്തി-ഹെഡ്റൂം വഴി പ്രവേശിപ്പിക്കപ്പെടുന്നു. | | `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` (ഡിഫോൾട്ട് `1`) | `src/shared/middleware/chatBodyAdmission.ts` | ഹെൽത്തി-ഹീപ്പ് ഫാസ്റ്റ് പാത്ത് (#10437) ന് അധിക ശേഷി** രണ്ടും** STRUCTURE, BYTE (`admitChatRequest`, ബോഡികൾ ഉൾപ്പെടെ ≥ `OMNIROUTE_CHAT_LARGE_BODY_BYTES`). ഈ പരിധിയില്ലാതെ, തിരക്കുള്ള-എന്നാൽ-ആരോഗ്യകരമായ-കൂമ്പാരമായ എല്ലാ അഭ്യർത്ഥനകളും പരിധിയില്ലാതെ പ്രവേശനത്തെ മറികടന്നു. ആരോഗ്യകരമായ-കൂമ്പാര പാതയിലൂടെ ഈ നിരവധി കൺകറൻ്റ് ലീസുകൾ സജീവമായാൽ, കൂടുതൽ തിരക്കുള്ള അഭ്യർത്ഥനകൾ യഥാർത്ഥ ഹീപ്പ് മർദ്ദത്തിൽ ഉപയോഗിക്കുന്ന SAME bounded-wait/shed പാതയിലേക്ക് വരുന്നു. `0` ബൈപാസ് പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT` | `200` | `src/shared/middleware/chatBodyAdmission.ts` | ചാറ്റ് അഭ്യർത്ഥനയെ അതിൻ്റെ ബോഡി ബൈറ്റ് ത്രെഷോൾഡിന് താഴെയാണെങ്കിൽപ്പോലും ഹെവിവെയ്റ്റ് ആയി വർഗ്ഗീകരിക്കുന്ന സന്ദേശങ്ങളുടെ എണ്ണം. | | `OMNIROUTE_CHAT_HEAVY_TOOL_COUNT` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | ചാറ്റ് അഭ്യർത്ഥനയെ അതിൻ്റെ ബോഡി ബൈറ്റ് ത്രെഷോൾഡിന് താഴെയാണെങ്കിൽപ്പോലും ഹെവിവെയ്റ്റ് ആയി വർഗ്ഗീകരിക്കുന്ന ഉപകരണങ്ങളുടെ എണ്ണം. | | `OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS` | `32000` | `src/shared/middleware/chatBodyAdmission.ts` | ഒരു അഭ്യർത്ഥനയെ ഹെവിവെയ്റ്റ് ആയി തരംതിരിക്കുന്ന കൺസർവേറ്റീവ് സ്ട്രിംഗ്-സൈസ് ടോക്കൺ എസ്റ്റിമേറ്റ്; ഇതൊരു അഡ്മിഷൻ കോസ്റ്റ് പ്രോക്സിയാണ്, ദാതാവിൻ്റെ ബില്ലിംഗ് ടോക്കണൈസേഷനല്ല. | | `OMNIROUTE_CHAT_HARD_MAX_MESSAGES` | `0` (അപ്രാപ്തമാക്കിയത്) | `src/shared/middleware/chatBodyAdmission.ts` | ഓപ്ഷണൽ ഓപ്റ്റ്-ഇൻ ചാറ്റ് ഹിസ്റ്ററി ക്യാപ്. ഡിഫോൾട്ടായി അപ്രാപ്തമാക്കി: ഒരു സന്ദേശങ്ങളുടെ എണ്ണം വിന്യാസ നയമാണ്, ഒരു അഭ്യർത്ഥനയുടെ സാർവത്രിക സ്വത്തല്ല, കൂടാതെ കംപ്രഷൻ പൈപ്പ്ലൈനിന് അവയെ സേവിക്കാവുന്നതാക്കി മാറ്റുന്നതിന് മുമ്പായി ഒരു ടെർമിനൽ `413` ഉള്ള സംഭാഷണങ്ങൾ ഇവിടെ ക്യാപ്പിംഗ് നിരസിക്കുന്നു. ഹീപ്പ് വളർച്ചയെ `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT`, ഹീപ്പ്-പ്രഷർ ഷെഡ് എന്നിവയാൽ ബന്ധിപ്പിച്ചിരിക്കുന്നു. ഹാർഡ് സീലിംഗ് ആവശ്യമുള്ള മെമ്മറി-നിയന്ത്രിത വിന്യാസങ്ങളിൽ പോസിറ്റീവ് മൂല്യം സജ്ജമാക്കുക; അധികമായാൽ ഘടനാപരമായ കോംപാക്റ്റ്-ആവശ്യമായ `413` ലഭിക്കുന്നു. | | `OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES` | `67108864` (64 MB) | `open-sse/handlers/chatCore/nonStreamingResponseBody.ts` | സ്ട്രീമിംഗ് അല്ലാത്ത അപ്സ്ട്രീം പ്രതികരണത്തിനായുള്ള ഹാർഡ് ക്യാപ് മെമ്മറിയിലേക്ക് പൂർണ്ണമായി ബഫർ ചെയ്തു. ഇത് കഴിഞ്ഞാൽ അപ്സ്ട്രീം റീഡർ റദ്ദാക്കി, കൂമ്പാരം തീരുന്നത് വരെ ഒരു പരിധിയില്ലാത്ത സ്ട്രിംഗ് വളർത്തുന്നതിന് പകരം അഭ്യർത്ഥന വേഗത്തിൽ പരാജയപ്പെടുന്നു. | | `OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES` | `768` | `open-sse/handlers/chatCore/responseHeaders.ts` | അപ്സ്ട്രീം പ്രതികരണ തലക്കെട്ടുകളിൽ നിന്ന് ഫോർവേഡ് ചെയ്ത പരമാവധി വയർ ബൈറ്റുകൾ. ബജറ്റ് കവിയുമ്പോൾ, സാധാരണ റിവേഴ്സ്-പ്രോക്സി ഹെഡർ പരിധിക്കുള്ളിൽ തുടരുന്നതിന് താഴ്ന്ന മുൻഗണനയുള്ള തലക്കെട്ടുകൾ (ഉദാ, ഇഷ്ടാനുസൃത `x-codex-*`, `x-oai-request-id`) ഒഴിവാക്കപ്പെടും. വലിയ പ്രതികരണ തലക്കെട്ടിൻ്റെ വിലയിൽ കൂടുതൽ അപ്സ്ട്രീം മെറ്റാഡാറ്റ ഫോർവേഡ് ചെയ്യാൻ ഉയർന്നത് സജ്ജമാക്കുക. | | `OMNIROUTE_QUOTA_RECOVERY_MAX_PER_KEY` | `64` | `src/lib/quota/quotaSessionRecovery.ts` | മിക്ക ക്വാട്ട-റിക്കവറി ടിക്കറ്റുകളിലും (തീർച്ചപ്പെടുത്താത്തതോ പ്രവർത്തിപ്പിക്കുന്നതോ സ്ഥിരീകരണത്തിനായി കാത്തിരിക്കുന്നതോ) ഒരു API കീ കൈവശം വച്ചേക്കാം. ഒരു കീ പരിധിയിൽ എത്തിക്കഴിഞ്ഞാൽ, ഒരു പുതിയ ടേണിന് `202` ടിക്കറ്റിന് പകരം യഥാർത്ഥ ക്വാട്ട പിശക് ലഭിക്കും; ഇതിനകം പാർക്ക് ചെയ്ത ടേണിൽ വീണ്ടും ശ്രമിച്ചാൽ അതിൻ്റെ ടിക്കറ്റ് തിരികെ ലഭിക്കും. അസാധുവായ അല്ലെങ്കിൽ പോസിറ്റീവ് അല്ലാത്ത മൂല്യങ്ങൾ ഡിഫോൾട്ട് ഉപയോഗിക്കുന്നു. | | `CORS_ORIGIN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/server/cors/origins.ts` | ലെഗസി സിംഗിൾ ഒറിജിൻ CORS അനുവദനീയ പട്ടിക. പുതിയ വിന്യാസങ്ങൾക്കായി `CORS_ALLOWED_ORIGINS` തിരഞ്ഞെടുക്കുക. CORS ക്രോസ് ഒറിജിൻ ബ്രൗസർ API ക്ലയൻ്റുകൾക്ക് മാത്രമുള്ളതാണ്; ആധികാരികതയുള്ള ഡാഷ്ബോർഡ് റൈറ്റുകൾക്ക് പകരം ഒരേ ഒറിജിൻ അഭ്യർത്ഥനകളും സെഷൻ-ബൗണ്ട് CSRF പരിരക്ഷയും ഉപയോഗിക്കുക. | | `CORS_ALLOWED_ORIGINS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/server/cors/origins.ts` | കോമയാൽ വേർതിരിച്ച CORS അനുവദനീയ പട്ടിക. `CORS_ALLOW_ALL=true` വ്യക്തമായി കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിൽ വൈൽഡ്കാർഡുകളൊന്നും അയയ്ക്കില്ല. | | `CORS_ALLOW_ALL` | `false` | `src/server/cors/origins.ts` | ഏതെങ്കിലും ബ്രൗസർ `Origin` പ്രതിധ്വനിക്കാൻ വികസനം-മാത്രം എസ്കേപ്പ് ഹാച്ച്. പങ്കിട്ടതോ പ്രൊഡക്ഷൻ വിന്യാസമോ പ്രവർത്തനക്ഷമമാക്കരുത്. | | `OUTBOUND_SSRF_GUARD_ENABLED` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | ലെഗസി അപരനാമം. ഇതിൻ്റെ ഡാഷ്ബോർഡ് ടോഗിൾ (ഒരു DB ഓവർറൈഡ്) ഈ പരിസ്ഥിതി മൂല്യത്തിന് മുമ്പ് വായിക്കുന്നു; `false`, `0`, `no`, അല്ലെങ്കിൽ `off` എന്നിവയിൽ ഒന്നുകിൽ, ആ ഫ്ലാഗിൻ്റെ ഡാഷ്ബോർഡ് ടോഗിൾ സംരക്ഷിച്ചിരിക്കുമ്പോൾ പോലും, ഹോസ്റ്റ് `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` ചെയ്യുന്ന വഴി പരിശോധിക്കുന്നത് ഓഫാക്കി മാറ്റുന്നു; മറ്റ് മൂല്യങ്ങൾ താഴെയുള്ള രണ്ട് പതാകകളിലേക്ക് ഗാർഡ് വിടുന്നു. | | `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS` | `false` | `src/shared/network/outboundUrlGuardPolicy.ts` | ഗാർഡ് മോഡ് പിന്തുടരുന്ന പ്രൊവൈഡർ പാഥുകളിൽ ഔട്ട്ബൗണ്ട് URL ഗാർഡിൻ്റെ ഹോസ്റ്റ് ചെക്കുകൾ, ക്ലൗഡ്-മെറ്റാഡാറ്റ ബ്ലോക്ക് ഉൾപ്പെടുത്തിയിരിക്കുന്ന ( 169.254.0.0/16, metadata.google.internal എന്നതിലെല്ലാം) ഓഫാക്കുന്നു: URL മൂല്യനിർണ്ണയം, മോഡൽ കണ്ടെത്തൽ, പ്രൊവൈഡർ-നോഡ് ബേസ് URLs (റിമോട്ട് റീറാങ്ക് നോഡുകൾ ഉൾപ്പെടെ), കൂടാതെ മറ്റ് പ്രോക്സി-പ്രൊവൈഡർ ഔട്ട്ബാക്ക് പാത്ത് image/media കൊണ്ടുവരിക. ഈ ഫ്ലാഗ് ഓണായിരിക്കുമ്പോൾ പോലും ബ്ലോക്ക് ചെയ്തിരിക്കുന്ന cloud-metadata/link-local എൻഡ് പോയിൻ്റുകൾ ഒഴികെയുള്ള സ്വകാര്യ വെബ്ഹുക്ക് ടാർഗെറ്റുകളും ഇത് അനുവദിക്കുന്നു. `BaseExecutor.execute()` വഴി അയച്ച ചാറ്റ് അഭ്യർത്ഥനകൾ അവയുടെ ക്ലൗഡ്-മെറ്റാഡാറ്റ പരിശോധന നിലനിർത്തുന്നു. പ്രാദേശിക ദാതാക്കൾ ഡിഫോൾട്ടുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു: `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` (സ്ഥിരസ്ഥിതി `true`) സാധൂകരണം, കണ്ടെത്തൽ, ദാതാവ്-നോഡ് പാതകളിൽ ലോക്കൽ, LAN URLs എന്നിവയെ ഇതിനകം അനുവദിക്കുന്നു; പ്രോക്സി-ഫാൾബാക്ക് ടെസ്റ്റും സ്വകാര്യ വെബ്ഹുക്ക് ടാർഗെറ്റുകളും ഈ ഫ്ലാഗ് മാത്രം പരിശോധിച്ച് അത് ഓഫായിരിക്കുമ്പോൾ local/LAN ഹോസ്റ്റുകളെ തടയുക. `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` അസാധുവാക്കുന്നു. ഡാഷ്ബോർഡ് ടോഗിളിൽ നിന്ന് സംരക്ഷിച്ച ഒരു മൂല്യം ഈ വേരിയബിളിനെക്കാൾ മുൻഗണന നൽകുന്നു. | | `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | ദാതാവിൻ്റെ മൂല്യനിർണ്ണയം, മോഡൽ കണ്ടെത്തൽ, ചാറ്റ്, ഗാർഡ് മോഡ് നിയന്ത്രിക്കുന്ന മറ്റ് പ്രൊവൈഡർ-അടുത്തുള്ള ഔട്ട്ബൗണ്ട് പാഥുകൾ എന്നിവയ്ക്കായി local/private വിലാസങ്ങളിൽ (127.0.0.1, ലോക്കൽഹോസ്റ്റ്, LAN, സ്വകാര്യ ശ്രേണികൾ) ദാതാവിൻ്റെ URLs അനുവദിക്കുക.** ഡിഫോൾട്ട് `true`** (ലോക്കൽ-ഫസ്റ്റ്): ഗാർഡ് പിന്നീട് ക്ലൗഡ്-മെറ്റാഡാറ്റ എൻഡ്പോയിൻ്റുകൾ — എല്ലാ 169.254.0.0/16 ലും അറിയപ്പെടുന്ന മെറ്റാഡാറ്റ ഹോസ്റ്റ്നാമങ്ങളും (metadata.google.internal, metadata.goog, Alibaba/Azure/Oracle IMDS, fd00:ec2::254) തടയുന്നു. സ്വകാര്യ, ലൂപ്പ്ബാക്ക് ഹോസ്റ്റുകളെയും തടയുന്ന പൊതു-മാത്രം മോഡിനായി `false` സജ്ജമാക്കുക. ഏതെങ്കിലും DNS തിരയലിന് മുമ്പ് ഗാർഡ് ഹോസ്റ്റ്നാമം അല്ലെങ്കിൽ IP അക്ഷരാർത്ഥത്തിൽ എഴുതിയത് പരിശോധിക്കുന്നു; പബ്ലിക്-ഒൺലി മോഡിൽ, സേഫ്-ഫെച്ച് റാപ്പർ അധികമായി ഹോസ്റ്റ്നാമം പരിഹരിക്കുകയും ഏതെങ്കിലും സ്വകാര്യ ഉത്തരം നിരസിക്കുകയും ചെയ്യുന്നു. `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` അതിൻ്റെ വരി ലിസ്റ്റ് ചെയ്യുന്ന പാതകളിൽ ഈ ചെക്കുകൾ ഓഫ് ചെയ്യുന്നു. LM Studio, Ollama, vLLM, Lamafile, Triton എന്നിവ പോലെയുള്ള ബിൽറ്റ്-ഇൻ പ്രാദേശിക ദാതാക്കൾ, കീ മൂല്യനിർണ്ണയത്തിനും ചാറ്റിനും വേണ്ടി എല്ലാ ഹോസ്റ്റ് പരിശോധനകളും ഒഴിവാക്കുന്നു. ഡാഷ്ബോർഡ് ടോഗിളിൽ നിന്ന് സംരക്ഷിച്ച ഒരു മൂല്യം ഈ വേരിയബിളിനെക്കാൾ മുൻഗണന നൽകുന്നു. (#5066) | | `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | ലോക്കൽ ഹോസ്റ്റിന് പുറത്ത് ഹോസ്റ്റ് ചെയ്തിരിക്കുന്ന OpenAI-അനുയോജ്യമായ പ്രൊവൈഡർ നോഡ് ഉപയോഗിക്കാൻ `/v1/audio/*` റൂട്ടുകളെ (ട്രാൻസ്ക്രിപ്ഷനുകൾ, സംഭാഷണം, വിവർത്തനങ്ങൾ) അനുവദിക്കുക. ഡിഫോൾട്ടായി ഓഫാക്കി — റൗട്ടിംഗ് ഓഡിയോ ഒരു റിമോട്ട് ഹോസ്റ്റിലേക്ക് മാറ്റുന്നത് എഗ്രസ് ഐഡൻ്റിറ്റി മാറ്റുകയും അത് വ്യക്തമായ ഒരു ഓപ്പറേറ്റർ തീരുമാനമായിരിക്കണം. Loopback/private നോഡുകൾ (ലോക്കൽഹോസ്റ്റ്, 127.0.0.1, 172.16-31.x) എപ്പോഴും അനുവദനീയവും ബാധിക്കപ്പെടാത്തതുമാണ്. (#3963) | | `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | `POST /v1/rerank` (കൂടാതെ മെമ്മറി എഞ്ചിൻ്റെ ലൂപ്പ്ബാക്ക് റീറാങ്ക് സ്റ്റെപ്പ്) ഒരു OpenAI-അനുയോജ്യമായ പ്രൊവൈഡർ നോഡ് ഉപയോഗിക്കാൻ അനുവദിക്കുക ലോക്കൽ ഹോസ്റ്റ് — ഒരു LAN ബോക്സിന് പുറത്ത് ഹോസ്റ്റ് ചെയ്തിരിക്കുന്ന അല്ലെങ്കിൽ Tailscale പിയർ റണ്ണിംഗ് TEI, ഇൻഫിനിറ്റി, vLLM മുതലായവ. ഡിഫോൾട്ടായി ഓഫാക്കി — റൂട്ടിംഗ് ഒരു റിമോട്ട് ഹോസ്റ്റിക്ക് മാറ്റുകയും അത് എക്സ്പെക്സ് ഐഡൻ്റിറ്റി മാറ്റുകയും വേണം. ലൂപ്പ്ബാക്ക് നോഡുകൾ (ലോക്കൽഹോസ്റ്റ്, 127.0.0.1, 172.16-31.x) എപ്പോഴും അനുവദനീയവും ബാധിക്കപ്പെടാത്തതുമാണ്. ഒരു റിമോട്ട് നോഡിൻ്റെ അടിസ്ഥാന URL പ്രൊവൈഡർ ഔട്ട്ബൗണ്ട് URL പോളിസിയും (`OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` / `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS`) കടന്നുപോകണം. | | `OMNIROUTE_LOCAL_PROVIDER_NODE_HOSTS` | _(ശൂന്യം)_ | `src/shared/network/localNodeHosts.ts` | പ്രൊവൈഡർ-നോഡ് റൂട്ടിംഗ് പ്രാദേശിക — ആയി കണക്കാക്കുന്ന ഹോസ്റ്റ്നാമങ്ങൾ (കോമ അല്ലെങ്കിൽ വൈറ്റ്സ്പെയ്സ് വേർതിരിച്ചത്) സാധാരണ OmniRoute ൻ്റെ സ്വന്തം Docker നെറ്റ്വർക്കിലെ (`http://reranker:8080/v1`) ഒരു റീറാങ്കറിൻ്റെ Docker/Compose സേവന നാമം, TEI അല്ലെങ്കിൽ ഓഡിയോ സൈഡ്കാർ, അതിനാൽ നോഡിന് ഹാർഡ്-കോഡുചെയ്ത കണ്ടെയ്നർ IP ആവശ്യമില്ല. ഓരോ വിദൂര നോഡിനും `RERANK_REMOTE_PROVIDER_NODES` / `AUDIO_REMOTE_PROVIDER_NODES` ഓണാക്കാതെ തന്നെ `/v1/rerank`, `/v1/audio/*`, പ്രാദേശിക ആരോഗ്യ പരിശോധന എന്നിവയ്ക്ക് ലിസ്റ്റ് ചെയ്ത ഹോസ്റ്റുകൾ യോഗ്യരാണ്, `HTTP(S)_PROXY` വഴിയോ ഒരു കണക്ഷൻ്റെ പിൻ ചെയ്ത പ്രോക്സി വഴിയോ നേരിട്ട് — എന്ന് വിളിക്കപ്പെടുന്നു. അവർ ഇപ്പോഴും കണക്ഷൻ്റെ API കീ അയയ്ക്കുന്നു. ഒറ്റ-ലേബൽ പേരുകളും `.internal`/`.local` പേരുകളും മാത്രമേ സ്വീകരിക്കുകയുള്ളൂ; പൊതു FQDNs, IP ലിറ്ററലുകൾ, ക്ലൗഡ്-മെറ്റാഡാറ്റ പേരുകൾ എന്നിവ ഒരു മുന്നറിയിപ്പിനൊപ്പം അവഗണിക്കപ്പെടുന്നു. (#14635) | | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | OIDC പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ, പാസ്വേഡ് ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുക, അതുവഴി ഉപയോക്താക്കൾക്ക് OIDC സിംഗിൾ സൈൻ-ഓൺ വഴി മാത്രമേ പ്രാമാണീകരിക്കാൻ കഴിയൂ. `OIDC_DISABLE_PASSWORD_LOGIN` എന്ന അപരനാമവും അംഗീകരിക്കപ്പെട്ടിരിക്കുന്നു; അതേ കീയുടെ ഡാഷ്ബോർഡ് ഫീച്ചർ ഫ്ലാഗിന് മുൻഗണനയുണ്ട്. (#10889) | | `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` (#10889) യുടെ അപരനാമം. | | `OMNIROUTE_DISABLE_MFA` | `false` | `src/server/auth/dashboardMfa.ts` | ഓപ്റ്റ്-ഇൻ ഡാഷ്ബോർഡ് TOTP ടു-ഫാക്ടർ ലോഗിൻ ചെയ്യാനുള്ള ഉപകരണത്തിൻ്റെ നഷ്ടമായ വീണ്ടെടുക്കൽ. `true` ആയിരിക്കുമ്പോൾ, രണ്ടാമത്തെ ഘടകം ഹോസ്റ്റിൽ നിന്നുള്ള ഒരു സൈൻ-ഇൻ വേണ്ടി മാത്രം ഒഴിവാക്കപ്പെടും (ലൂപ്പ്ബാക്ക് പിയർ, ലൂപ്പ്ബാക്ക് `Host`); വിദൂര സൈൻ-ഇന്നുകൾക്കും മറ്റ് ഉറവിടങ്ങളിൽ നിന്നുള്ള `POST /api/cli/connect` ഇപ്പോഴും കോഡ് ആവശ്യമാണ്. പ്രാദേശികമായി സൈൻ ഇൻ ചെയ്യുക, ക്രമീകരണങ്ങൾ → സെക്യൂരിറ്റിക്ക് കീഴിൽ രണ്ട്-ഘടകം പ്രവർത്തനരഹിതമാക്കുക (ഇത് സജ്ജീകരിച്ചിരിക്കുമ്പോൾ കോഡ് ശൂന്യമായിരിക്കാം, അതിനാൽ ഇനി പരിശോധിക്കാത്ത ഒരു ഘടകം നീക്കംചെയ്യാൻ കഴിയും; പാസ്വേഡ് ഇപ്പോഴും ആവശ്യമാണ്), തുടർന്ന് അത് അൺസെറ്റ് ചെയ്യുക. TOTP പാസ്വേഡ് ലോഗിൻ ഉൾക്കൊള്ളുന്നു, കൂടാതെ `omniroute connect` മാത്രം — OIDC/SSO സൈൻ-ഇൻ ഐഡൻ്റിറ്റി ദാതാവിൻ്റെ സ്വന്തം രണ്ടാമത്തെ ഘടകത്തെ ആശ്രയിച്ചിരിക്കുന്നു. [AUTHZ_GUIDE](../architecture/AUTHZ_GUIDE.md#optional-totp-two-factor-login-16619) കാണുക. | ### ഹാർഡനിംഗ് ചെക്ക്ലിസ്റ്റ് ```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. ഇൻപുട്ട് സാനിറ്റൈസേഷൻ & PII സംരക്ഷണം OmniRoute രണ്ട്-പാളി പ്രതിരോധം നൽകുന്നു: അഭ്യർത്ഥന-വശം കുത്തിവയ്പ്പ് സ്കാനിംഗും പ്രതികരണ-വശം PII സ്ട്രിപ്പിംഗും. > **⚠️ പരിമിതികൾ:** ഈ ഗാർഡ്റെയിലുകൾ _ബെസ്റ്റ്-എഫർട്ട് ഹ്യൂറിസ്റ്റിക്_ ഡിറ്റക്ഷനുകളാണ്, പൂർണ്ണമായ പ്രോംപ്റ്റ്-ഇഞ്ചക്ഷൻ ഫയർവാളോ PII DLP സിസ്റ്റമോ അല്ല. അവർക്ക് തെറ്റായ പോസിറ്റീവുകളും (ബെനിൻ persona/RPG നിർദ്ദേശങ്ങൾ ഫ്ലാഗുചെയ്തു) തെറ്റായ നെഗറ്റീവുകളും (leetspeak, spacing, non-English പാറ്റേണുകൾ) സൃഷ്ടിക്കാൻ കഴിയും. അവ പാലിക്കാൻ മാത്രം പര്യാപ്തമല്ല. മോഡുകൾ ട്യൂൺ ചെയ്ത് അവയിൽ ആശ്രയിക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ ട്രാഫിക്കിനെതിരെ പരീക്ഷിക്കുക. ### അഭ്യർത്ഥന-വശം: പ്രോംപ്റ്റ് ഇൻജക്ഷൻ ഗാർഡ് | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | --------------------------------- | ----------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `INPUT_SANITIZER_ENABLED` | `true` | `src/middleware/promptInjectionGuard.ts` | പ്രോംപ്റ്റ് ഇഞ്ചക്ഷൻ പാറ്റേണുകൾക്കായി ഇൻകമിംഗ് സന്ദേശങ്ങൾ സ്കാൻ ചെയ്യുന്നത് പ്രവർത്തനക്ഷമമാക്കുക. | | `INPUT_SANITIZER_MODE` | `warn` | `src/middleware/promptInjectionGuard.ts` | കുത്തിവയ്പ്പ് നയം: `warn` = ലോഗ് മാത്രം, `block` = 400 ഉപയോഗിച്ച് അഭ്യർത്ഥന നിരസിക്കുക. ലെഗസി `redact` ചെയ്യുന്നു** അല്ല** സ്ട്രിപ്പ് കുത്തിവയ്പ്പ് വാചകം; PII മാറ്റിയെഴുതാനുള്ള അഭ്യർത്ഥനയ്ക്കായി `PII_REDACTION_ENABLED` ഉപയോഗിക്കുക. | | `INJECTION_GUARD_MODE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/middleware/promptInjectionGuard.ts` | `INPUT_SANITIZER_MODE` — സമാന സ്വഭാവത്തിന് ലെഗസി അപരനാമം. | | `INPUT_SANITIZER_BLOCK_THRESHOLD` | `high` | `src/shared/utils/injectionSeverity.ts` | `MODE=block` നിരസിക്കുന്ന ഏറ്റവും കുറഞ്ഞ തീവ്രത: `high` (സ്ഥിരസ്ഥിതി), `medium`, അല്ലെങ്കിൽ `low`. ഇടത്തരം പാറ്റേണുകൾ നിരീക്ഷിക്കാൻ-മാത്രം താഴ്ത്തിയില്ലെങ്കിൽ. | | `INJECTION_GUARD_BLOCK_THRESHOLD` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/shared/utils/injectionSeverity.ts` | `INPUT_SANITIZER_BLOCK_THRESHOLD` — സമാന സ്വഭാവത്തിന് ലെഗസി അപരനാമം. | | `PII_REDACTION_ENABLED` | `false` | `src/lib/guardrails/piiMasker.ts` | എപ്പോൾ `true`, ഇൻകമിംഗ് അഭ്യർത്ഥനകളിൽ PII തിരുത്തുക (ഇഞ്ചക്ഷൻ മോഡിൽ നിന്ന് സ്വതന്ത്രമായി). | | `CREDENTIAL_REDACTION_ENABLED` | `false` | `src/lib/guardrails/credentialMasker.ts` | request/response പേലോഡുകളിൽ നിന്ന് അറിയപ്പെടുന്ന API-കീ / രഹസ്യ-ടോക്കൺ പാറ്റേണുകൾ തിരുത്തുക. തിരഞ്ഞെടുക്കൽ; കണ്ണാടികൾ `PII_REDACTION_ENABLED`. | ### പ്രതികരണം-വശം: PII സാനിറ്റൈസർ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | -------------------------------- | ----------- | ------------------------- | ------------------------------------------------------------------------------------------- | | `PII_RESPONSE_SANITIZATION` | `false` | `src/lib/piiSanitizer.ts` | ക്ലയൻ്റിലേക്ക് മടങ്ങുന്നതിന് മുമ്പ് ചോർന്ന PII ക്കായി LLM പ്രതികരണങ്ങൾ സ്കാൻ ചെയ്യുക. | | `PII_RESPONSE_SANITIZATION_MODE` | `redact` | `src/lib/piiSanitizer.ts` | `redact` = മാസ്ക് PII, `warn` = ലോഗ് മാത്രം, `block` = മുഴുവൻ പ്രതികരണവും ഡ്രോപ്പ് ചെയ്യുക. | ### VS കോഡ് ടോക്കണൈസ്ഡ്-റൂട്ട് സന്ദർഭ സാനിറ്റൈസർ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------------------- | ----------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_VSCODE_SANITIZE_CONTEXT` | `1` | `src/app/api/v1/vscode/contextSanitizer.ts` | `/v1/vscode/[token]/*` അഭ്യർത്ഥനകളിൽ നിന്നുള്ള സജീവ-എഡിറ്റർ സന്ദർഭം (`editorContext`, `activeEditor`, `currentFile`, `selection`, `openTabs`...) സ്ട്രിപ്പുകൾ വ്യക്തമായി ഘടിപ്പിച്ചിട്ടുള്ള സെൻസിറ്റീവ് ഫയലുകളുടെ ഉള്ളടക്കം തിരുത്തുന്നു. സ്ഥിരസ്ഥിതിയായി സുരക്ഷിതം; പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജീകരിച്ചു. | ### രംഗങ്ങൾ | രംഗം | കോൺഫിഗറേഷൻ | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **എൻ്റർപ്രൈസ് പാലിക്കൽ** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=block`, `PII_REDACTION_ENABLED=true`, `PII_RESPONSE_SANITIZATION=true` (ഇഞ്ചക്ഷൻ ബ്ലോക്കുകൾ + request/response PII റിഡക്ഷൻ; മോഡുകൾ സ്വതന്ത്രമാണ്) | | **നിരീക്ഷണം മാത്രം** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — ലോഗുകൾ എന്നാൽ ഒരിക്കലും തടയില്ല | | **വ്യക്തിഗത ഉപയോഗം** | എല്ലാ അപ്രാപ്തമാക്കിയ — പൂജ്യം ഓവർഹെഡ് വിടുക | --- ## 6. ടൂൾ & റൂട്ടിംഗ് നയങ്ങൾ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------------------------------------------- | --------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | LLM tool/function-calling ആക്സസ് നിയന്ത്രിക്കുന്നു. `allowlist` = ലിസ്റ്റുചെയ്ത ഉപകരണങ്ങൾ മാത്രം, `denylist` = എല്ലാം ലിസ്റ്റ് ചെയ്തത് ഒഴികെ, `disabled` = നിയന്ത്രണങ്ങളൊന്നുമില്ല. | | `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | പേലോഡ് കൃത്രിമത്വ നിയമങ്ങളിലേക്കുള്ള പാത JSON ഫയൽ (per-model/protocol അപ്സ്ട്രീം ട്വീക്കുകൾ). | | `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | പേലോഡ് റൂൾസ് ഫയൽ ഹോട്ട്-റീലോഡ് ചെയ്യുന്നതിനുള്ള ഇടവേള (മി.സെ) റീലോഡ് ചെയ്യുക. ഏറ്റവും കുറഞ്ഞ `1000`. | | `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | ഓപ്റ്റ്-ഇൻ: ഒരു പ്രൊവൈഡർ പ്രിഫിക്സ് ആവശ്യപ്പെടുന്നതിനുപകരം Claude കോഡ് OAuth അക്കൗണ്ട് വഴി Claude കോഡ് ക്ലയൻ്റുകളിൽ നിന്ന് ബെയർ `claude-*` മോഡൽ IDs റൂട്ട് ചെയ്യുക. വ്യക്തമായ ദാതാവിൻ്റെ പ്രിഫിക്സുകൾ ഇപ്പോഴും വിജയിക്കുന്നു. Claude പ്രൊവൈഡർ പേജിൽ ഒരു ഡാഷ്ബോർഡ് ടോഗിൾ വഴിയും ക്രമീകരിക്കാവുന്നതാണ്. | | `OMNIROUTE_REDACT_THINKING` | `true` | `open-sse/executors/base/redactThinkingBeta.ts` | `redact-thinking-2026-02-12` Anthropic ബീറ്റ തന്നെ ചേർക്കുന്നത് OmniRoute നിർത്താൻ `false` സജ്ജമാക്കുക (ശൂന്യമായ ഒപ്പ് മാത്രമുള്ള ചിന്താ ബ്ലോക്കുകൾ). `thinking.display: "summarized"` ഉള്ള അഭ്യർത്ഥനകൾ പരിഗണിക്കാതെ അത് ഒഴിവാക്കുക; ഒരു ക്ലയൻ്റ്-നെഗോഷ്യേറ്റഡ് റെഡാക്റ്റ് ബീറ്റ അല്ലെങ്കിൽ ഒരു CC-അനുയോജ്യമായ `requestDefaults.redactThinking` ഓപ്റ്റ്-ഇൻ അത് നിലനിർത്തുന്നു. ഡിഫോൾട്ട് ഓഫ് `CLAUDE_OAUTH_SUMMARIZED_THINKING_UNREDACTED` ഫീച്ചർ ഫ്ലാഗ് ഓണല്ലെങ്കിൽ Claude OAuth അഭ്യർത്ഥനകൾ ബീറ്റ നിലനിർത്തുന്നു (ഇത് Claude കോഡ് OAuth ഫിംഗർപ്രിൻ്റിൻ്റെ ഭാഗമാണ്). | | `BARE_MODEL_DEFAULT_OVERRIDE_LEGACY` | `false` | `open-sse/services/model.ts` | ലെഗസി `resolveBareModelToConnectionDefault` സ്വഭാവം (#4825): തിരഞ്ഞെടുത്ത കണക്ഷൻ്റെ `defaultModel` ഉപയോഗിച്ച് ഏതെങ്കിലും വെറും മോഡൽ പേര് മാറ്റിസ്ഥാപിക്കുക. ഡിഫോൾട്ടായി ഓഫ്, `auto` അല്ലെങ്കിൽ ഒരു ശൂന്യമായ മോഡൽ മാത്രം മാറ്റിസ്ഥാപിക്കപ്പെടുന്നു; ഓണായിരിക്കുമ്പോൾ ഓരോ ജോഡിക്കും ഒരു മുന്നറിയിപ്പ് ലോഗ് ചെയ്യുന്നു. | | `COMBO_CONCURRENCY_PER_MODEL` | `3` | `open-sse/services/comboConfig.ts` | റൗണ്ട്-റോബിൻ കോമ്പോസിനായി (#9100) ഓരോ മോഡൽ കൺകറൻസി ക്യാപ്. റൌണ്ട്-റോബിൻ കോംബോ സെമാഫോർ ഒരു മോഡലിന് 3 കൺകറൻ്റ് അഭ്യർത്ഥനകളിൽ അസാധുവാക്കാതെ ഹാർഡ്-ക്യാപ്പ് ചെയ്തു, ആ ക്യാപ്പിന് പിന്നിൽ ഉയർന്ന കൺകറൻസി ട്രാഫിക്കിനെ സീരിയലൈസ് ചെയ്തു. `>= 1` ലേക്ക് സാധൂകരിച്ച്, `<= 32` ലേക്ക് ഉറപ്പിച്ചു. | | `OMNIROUTE_AGENTIC_STALL_FAILOVER` | `false` | `open-sse/services/combo/agenticStallFailover.ts` | ഓപ്റ്റ്-ഇൻ: `1` (അല്ലെങ്കിൽ `true`) ആയി സജ്ജീകരിക്കുക, അങ്ങനെ `finish: stop` + ആഖ്യാനം + സീറോ ടൂൾ കോളുകൾ ഉപയോഗിച്ച് ടൂൾ റിസൾട്ട് ടേണിന് ഉത്തരം നൽകുന്ന ഒരു കോംബോ അംഗം അടുത്ത ലക്ഷ്യത്തിലേക്ക് പരാജയപ്പെടുന്നു (മുൻഗണന-ലൂപ്പ് തന്ത്രങ്ങൾ, റൗണ്ട്-റോബിൻ, പിൻ ചെയ്ത സെഷനുകൾ). ഒരു ലക്ഷ്യവും മെച്ചമായില്ലെങ്കിൽ, ഒരു പിശകിനേക്കാൾ സ്റ്റാൾഡ് ഉത്തരം നൽകുന്നു, ദാതാവിൻ്റെ ബ്രേക്കറോ മോഡൽ ലോക്കൗട്ടോ ഈടാക്കില്ല. വിധി തീർപ്പാക്കുന്നതുവരെ സ്ട്രീം ചെയ്ത തിരിവുകൾ ക്ലയൻ്റിൽ നിന്ന് തടഞ്ഞിരിക്കുന്നു. പ്രതികരണങ്ങൾ API `input` ആകൃതി ഉപയോഗിക്കുന്ന അഭ്യർത്ഥനകൾ തരംതിരിച്ചിട്ടില്ല. സ്ഥിരസ്ഥിതി OFF. | | `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | നേരിട്ടുള്ള സിംഗിൾ മോഡൽ അഭ്യർത്ഥനകൾക്കായി OmniRoute യുടെ ലോക്കൽ കോൺടെക്സ്റ്റ്-വിൻഡോ / മാക്സ്-ഇൻപുട്ട്-ടോക്കൺ പരിശോധന ഒഴിവാക്കുന്ന അപകടകരമായ ഓപ്റ്റ്-ഇൻ. അപ്സ്ട്രീം ദാതാക്കൾ ഇപ്പോഴും അവരുടെ യഥാർത്ഥ പരിധികൾ നടപ്പിലാക്കുന്നു; പ്രോംപ്റ്റ് കംപ്രഷനും മോഡലിൻ്റെ സ്വന്തം ഔട്ട്പുട്ട്-ടോക്കൺ ക്യാപ്പും സജീവമായി തുടരുന്നു. ഫീച്ചർ ഫ്ലാഗുകൾ DB അസാധുവാക്കൽ > എൻവയോൺമെൻ്റ് വേരിയബിൾ > ഡിഫോൾട്ട് ആണ്; പുനരാരംഭിക്കേണ്ടതില്ല. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/selfHostedEntry.ts` | ഇൻലൈൻ YAML `providers:` പ്രമാണം (RIC-738, D4). സജ്ജീകരിക്കുമ്പോൾ (ഒരു `strategy:` ബ്ലോക്ക് ഉപയോഗിച്ചോ അല്ലാതെയോ), `/v1/chat/completions` ക്ലൗഡ് പൈപ്പ്ലൈനിന് പകരം സ്വയം ഹോസ്റ്റ് ചെയ്ത ഏകീകൃത OpenAI-അനുയോജ്യമായ എൻട്രിയിലേക്ക് വഴിതിരിച്ചുവിടുന്നു. സജ്ജീകരിക്കാത്തത് (സ്ഥിരസ്ഥിതി): നിലവിലുള്ള ക്ലൗഡ് പൈപ്പ്ലൈനിലേക്ക് റൂട്ട് നേരിട്ട് പതിക്കുന്നു. `docs/routing/SELF_HOSTED_OPENAI_ENTRY.md` കാണുക. | | `OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/selfHostedEntry.ts` | ഇൻലൈൻ env var-നേക്കാൾ ഒരു ഫയൽ തിരഞ്ഞെടുക്കുന്ന വിന്യാസങ്ങൾക്കായി, `OMNIROUTE_SELF_HOSTED_PROVIDERS` യുടെ അതേ `providers:` പ്രമാണം കൈവശമുള്ള ഒരു YAML ഫയലിലേക്കുള്ള പാത. ഒന്നുകിൽ സ്വയം ഹോസ്റ്റ് ചെയ്ത എൻട്രി സജീവമാക്കുന്നു. | | `OMNIROUTE_SELF_HOSTED_API_KEY` | _( — ഓപ്പൺ റൂട്ട് സജ്ജമാക്കിയിട്ടില്ല)_ | `open-sse/services/selfHostedEntry.ts` | ഏകീകൃത സ്വയം-ഹോസ്റ്റഡ് എൻട്രിയ്ക്കായി ഓപ്ഷണൽ പങ്കിട്ട API കീ (D5 സ്കാഫോൾഡ്, ഓരോ കീ ക്വാട്ട സിസ്റ്റത്തിനായി റിസർവ് ചെയ്തിരിക്കുന്നു). സജ്ജമാക്കുമ്പോൾ, അഭ്യർത്ഥനകളിൽ `Authorization: Bearer ` ഉണ്ടായിരിക്കണം. സജ്ജീകരിക്കാത്തത്: റൂട്ട് തുറന്നിരിക്കുന്നു, നിലവിലുള്ള സ്വയം-ഹോസ്റ്റഡ് ലോക്കൽ പ്രൊവൈഡർ പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നു (loopback/trusted-network വിന്യാസം). | | `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/routingStrategies.ts` | ഡിറ്റർമിനിസ്റ്റിക് റൂട്ടിംഗ് എഞ്ചിനിനായുള്ള ഇൻലൈൻ YAML `strategy:` ഡോക്യുമെൻ്റ് (M2/RIC-740, D3) — blacklist/whitelist, കൂൾഡൗൺ ബ്രേക്കർ, ചെലവ്-മുൻഗണന, ലേറ്റൻസി-അവെയർ, ഫാൾബാക്ക് ചെയിൻ. `OMNIROUTE_SELF_HOSTED_PROVIDERS`, ഓരോ കീയിലും ഉള്ള ഒരു ഇൻലൈൻ `strategy:` ബ്ലോക്ക് അസാധുവാക്കുന്നു. `docs/routing/DETERMINISTIC_ROUTING.md` കാണുക. | | `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/routingStrategies.ts` | ഇൻലൈൻ env var-നേക്കാൾ ഒരു ഫയൽ തിരഞ്ഞെടുക്കുന്ന വിന്യാസങ്ങൾക്കായി `OMNIROUTE_SELF_HOSTED_STRATEGY` യുടെ അതേ `strategy:` പ്രമാണം കൈവശമുള്ള ഒരു YAML ഫയലിലേക്കുള്ള പാത. | | `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/conversationTracker.ts` | സംഭാഷണ ചരിത്രം ശേഖരിക്കുന്നത് നിർത്താൻ `1` സജ്ജമാക്കുക. `resolveConversationId()` അത് SQLite വായിക്കുന്നതിനോ സന്ദേശ ചരിത്രം പാഴ്സുചെയ്യുന്നതിനോ മുമ്പ് ട്രാക്ക് ചെയ്യാത്ത ഒരു ഫലം നൽകുന്നു, കൂടാതെ ക്ലയൻ്റ് വിതരണം ചെയ്യുന്ന സെഷൻ IDs എന്നിവയും പരിരക്ഷിക്കപ്പെടുന്നു. റൂട്ടിംഗ്-സെഷൻ കൈകാര്യം ചെയ്യലിന് മാറ്റമില്ല, നിലവിലുള്ള റെക്കോർഡുകൾ ഇല്ലാതാക്കില്ല. ഡാഷ്ബോർഡിൻ്റെ സംഭാഷണ കാഴ്ച ഉപയോഗിക്കാത്തതും ടേൺ ടേബിൾ വളരുന്നത് നിർത്താൻ ആഗ്രഹിക്കുന്നതുമായ വിന്യാസങ്ങൾക്കായി. | | `OMNIROUTE_NADIR_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/autoCombo/nadirStrategy.ts` | ഓപ്റ്റ്-ഇൻ `nadir` ഓട്ടോ-കോംബോ റൂട്ടർ തന്ത്രത്തിനായുള്ള API കീ, കോംബോയുടെ സ്വന്തം `config.nadir.apiKey` സജ്ജീകരിക്കാത്തപ്പോൾ ഉപയോഗിക്കുന്നു. ഓപ്ഷണൽ: കീലെസ് കോളുകൾ നാദിറിൻ്റെ അജ്ഞാത ശ്രേണിയിൽ എത്തുന്നു, അത് ഒരു IP നിരക്കിൽ പരിമിതപ്പെടുത്തിയിരിക്കുന്നു, അതിനാൽ പങ്കിട്ട ഗേറ്റ്വേയ്ക്ക് പിന്നിൽ ഉപയോഗിക്കാൻ കഴിയില്ല. സെൻസിറ്റീവ്; കോമ്പോകൾ വ്യത്യസ്ത അക്കൗണ്ടുകൾ ഉപയോഗിക്കുമ്പോൾ ഓരോ കോംബോ ഫീൽഡ് തിരഞ്ഞെടുക്കുക. | | `OMNIROUTE_NADIR_BASE_URL` | `https://api.getnadir.com` | `open-sse/services/autoCombo/nadirStrategy.ts` | നാദിർ തീരുമാനത്തിൻ്റെ അടിസ്ഥാന ഉത്ഭവം API, കോമ്പോയുടെ സ്വന്തം `config.nadir.baseUrl` സജ്ജീകരിക്കാത്തപ്പോൾ ഉപയോഗിക്കുന്നു. നിങ്ങളുടെ സ്വന്തം നെറ്റ്വർക്കിനുള്ളിൽ പ്രോംപ്റ്റ് ഹെഡ്സ് സൂക്ഷിക്കുന്ന ഒരു സ്വയം-ഹോസ്റ്റഡ് നാദിറിന് മാത്രമേ ആവശ്യമുള്ളൂ. ഒരു പിന്നിലുള്ള `/v1` സഹിക്കുകയും സ്ട്രിപ്പ് ചെയ്യുകയും ചെയ്യുന്നു. | | `OMNIROUTE_API_KEY_WEEKLY_WINDOW` | `provider` | `src/lib/usage/apiKeyUsageLimits.ts` | ഓരോ API-കീ USD ഉപയോഗ പരിധിക്കുള്ള പ്രതിവാര വിൻഡോ (അഭ്യർത്ഥന നടപ്പിലാക്കൽ, `GET /api/keys/{id}/usage-limits`, `@@om-usage`). `provider`: കീ എത്താൻ കഴിയുന്ന അപ്സ്ട്രീം കണക്ഷനുകളിൽ ആഴ്ചയിലെ ആദ്യ പ്രതിവാര പുനഃസജ്ജീകരണത്തിൽ അവസാനിക്കുന്നു, അല്ലെങ്കിൽ ഒന്നുമറിയാത്ത 7 ദിവസമാണ്. `calendar`: പ്രാദേശിക ആഴ്ച തിങ്കൾ 00:00 മുതൽ അടുത്ത തിങ്കൾ 00:00 വരെ, എല്ലാ കീകൾക്കും സമാനമായി. വ്യക്തിഗതമായി ബജറ്റ് ചെയ്ത നിരവധി കീകൾ അപ്സ്ട്രീം അക്കൗണ്ടുകളുടെ ഒരു പൂൾ പങ്കിടുമ്പോൾ `calendar` ശുപാർശ ചെയ്യുന്നു. അസാധുവായ മൂല്യങ്ങൾ `provider` ലേക്ക് മടങ്ങുന്നു. | | `OMNIROUTE_API_KEY_WEEKLY_WINDOW_TIMEZONE` | _(പ്രോസസ്സ് സമയമേഖല)_ | `src/lib/usage/apiKeyUsageLimits.ts` | IANA സമയമേഖല (ഉദാഹരണത്തിന് `Asia/Shanghai`) `calendar` പ്രതിവാര വിൻഡോയ്ക്കായി തിങ്കളാഴ്ച 00:00 നിർവചിക്കുന്നു. സജ്ജീകരിക്കാത്തതോ അസാധുവായതോ: OmniRoute പ്രക്രിയയുടെ സമയമേഖല (പലപ്പോഴും സജ്ജീകരിക്കാത്ത ഹോസ്റ്റിൻ്റെ അല്ലെങ്കിൽ കണ്ടെയ്നറിൻ്റെ `TZ`, അതായത് കോർഡിനേറ്റഡ് യൂണിവേഴ്സൽ സമയം, കണ്ടെയ്നർ ചിത്രങ്ങളിൽ). `provider` മോഡിൽ അവഗണിച്ചു. | | `OMNIROUTE_MAX_TOOLS_LIMIT` | `128` | `open-sse/config/constants.ts` | ഒരു അഭ്യർത്ഥനയിൽ അനുവദനീയമായ പരമാവധി ടൂളുകളുടെ ഡിഫോൾട്ട് (OpenAI ഡിഫോൾട്ട്). പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾ മാത്രം; സജ്ജീകരിക്കാത്തതോ അസാധുവായതോ ആയ മൂല്യങ്ങൾ `128` നിലനിർത്തുക. known/proactive പരിധിയുള്ള ഒരു ദാതാവ് (`grok-cli` 200, `nvidia` 1536) ഇപ്പോഴും സ്വന്തം ക്യാപ് — പ്രയോഗിക്കുന്നു, ഇത് സ്ഥിരസ്ഥിതി പരിധി നീക്കുന്നു. ക്ലോഡ് ഫോർമാറ്റ് ടാർഗെറ്റുകൾക്ക് ഡിഫോൾട്ട് ക്യാപ് ഇല്ല (Messages API ന് ഒന്നുമില്ല); പഠിച്ച പരിധി ഇപ്പോഴും ബാധകമാണ്. | | `OMNIROUTE_TOOL_OUTPUT_IMAGE_MAX_COUNT` | `16` | `open-sse/translator/request/openai-responses.ts` | ചാറ്റ് വിവർത്തനത്തിനുള്ള പ്രതികരണങ്ങൾ: ഓരോ അഭ്യർത്ഥനയിലും എത്ര ടൂൾ-ഔട്ട്പുട്ട് ഇമേജുകൾ (`function_call_output`, `custom_tool_call_output`, റോൾ `tool`) ഉപയോക്തൃ ഇമേജ് ഭാഗങ്ങളായി വീണ്ടും അയയ്ക്കുന്നു. ഏറ്റവും പുതിയത് സൂക്ഷിക്കുകയും പഴയ ഓരോന്നും അതിൻ്റെ `tool_call_id` ഉള്ള ഒരു ടെക്സ്റ്റ് പ്ലെയ്സ്ഹോൾഡറായി മാറുകയും ചെയ്യുന്നു. പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾ മാത്രം; സജ്ജീകരിക്കാത്തതോ അസാധുവായതോ ആയ മൂല്യങ്ങൾ `16` നിലനിർത്തുക. | | `OMNIROUTE_TOOL_OUTPUT_IMAGE_MAX_BYTES` | `20971520` (20 MB) | `open-sse/translator/request/openai-responses.ts` | ടൂൾ-ഔട്ട്പുട്ട് ഇമേജിൻ്റെ ആകെ വലുപ്പം URLs അതേ വിവർത്തനത്തിൽ ഓരോ അഭ്യർത്ഥനയ്ക്കും വീണ്ടും അയച്ചു. ഓരോ അഭ്യർത്ഥനയ്ക്കും ഒരു മുന്നറിയിപ്പ് നൽകിക്കൊണ്ട്, ബജറ്റ് കഴിഞ്ഞ ചിത്രങ്ങൾ ആദ്യം ഉപേക്ഷിക്കപ്പെടും. പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾ മാത്രം; സജ്ജീകരിക്കാത്തതോ അസാധുവായതോ ആയ മൂല്യങ്ങൾ `20971520` നിലനിർത്തുക. | | `OMNIROUTE_RESPONSES_STRICT_TOOL_HISTORY` | `false` | `open-sse/translator/helpers/responsesToolHistory.ts` | പൊരുത്തമില്ലാത്ത പ്രതികരണങ്ങളുടെ ടൂൾ ചരിത്രം എങ്ങനെ കൈകാര്യം ചെയ്യുന്നു: കോളില്ലാത്ത ഒരു ഔട്ട്പുട്ട്, ഔട്ട്പുട്ട് ഇല്ലാത്ത ഒരു കോൾ, കാണാതായ, ഓവർലോംഗ് അല്ലെങ്കിൽ അസാധുവായ `call_id`, അല്ലെങ്കിൽ തെറ്റായ ചരിത്രപരമായ ആർഗ്യുമെൻ്റുകൾ. ഓഫാണ്, OmniRoute ചരിത്രം നന്നാക്കി അത് അയയ്ക്കുന്നു (അനാഥ ഔട്ട്പുട്ടുകൾ ഉപേക്ഷിക്കപ്പെടുന്നു, ഉത്തരം ലഭിക്കാത്ത കോളുകൾക്ക് ശൂന്യമായ ഔട്ട്പുട്ട് ലഭിക്കുന്നു, ഐഡികൾ അച്ചടിക്കുകയോ ക്ലാമ്പ് ചെയ്യുകയോ ചെയ്യുന്നു, തെറ്റായ ആർഗ്യുമെൻ്റുകൾ `{}` ആയി മാറുന്നു). ഓൺ, അഭ്യർത്ഥന അയയ്ക്കുന്നതിന് മുമ്പ് ഒരു `400` ലഭിക്കും; ഒരു സാധുവായ ചരിത്രം അതിൻ്റെ കോൾ ഐഡികളും JSON ആർഗ്യുമെൻ്റുകളും അയച്ചുതരുന്നു. `true` അല്ലെങ്കിൽ `1` സ്വീകരിക്കുന്നു; മറ്റേതെങ്കിലും മൂല്യം സ്ഥിരസ്ഥിതി നിലനിർത്തുന്നു. | | `OMNIROUTE_PROMPT_EMULATE_TOOLS` | _(ഓൺ)_ | `open-sse/executors/syntxChat.ts` | SYNTX.ai പ്രോംപ്റ്റ്-എമുലേറ്റഡ് ടൂൾ കോളിംഗ്: സജ്ജമാക്കാത്തത് അല്ലെങ്കിൽ `1`/`true`/`on`/`yes` പ്രോംപ്റ്റിലേക്ക് ലോക്കൽ ടൂൾ കാറ്റലോഗ് കുത്തിവയ്ക്കുന്നു; മറ്റേതെങ്കിലും മൂല്യം (ഉദാ. `0`) ആ കുത്തിവയ്പ്പ് ഒഴിവാക്കുന്നു. | --- ## 7. URLs & ക്ലൗഡ് സമന്വയം | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `BASE_URL` | `http://localhost:20128` | `src/lib/cloudSync.ts` | സെർവർ സൈഡ് URL ആന്തരിക സമന്വയ ജോലികൾക്കായി `/api/sync/cloud` ലേക്ക് വിളിക്കുക. ആപ്പ് പൊതുവായി പ്രോക്സി ചെയ്യപ്പെടുമ്പോൾ പോലും ഇത് ഒരു loopback/container URL ആയി സൂക്ഷിക്കുക. A2A നൈപുണ്യവും ഇത് ഉപയോഗിക്കുന്നു ( `OMNIROUTE_BASE_URL` കാണുക) കൂടാതെ ഒരു API കീ ഒരു പൊതു പ്ലെയിൻ-http URL ലേക്ക് അയയ്ക്കുന്നതിനുപകരം പരാജയപ്പെടുന്നു. | | `CLOUD_URL` | _(ശൂന്യം)_ | `src/lib/cloudSync.ts` | ക്ലൗഡ് റിലേ എൻഡ്പോയിൻ്റ് URL (പ്രീമിയം ഫീച്ചർ). | | `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | ക്ലൗഡ് സമന്വയ അഭ്യർത്ഥനകൾക്കായിHTTP കാലഹരണപ്പെട്ടു. | | `OMNIROUTE_BUILD_PROFILE` | `full` | വെബ്പാക്ക് ബിൽഡ് കോൺഫിഗറേഷൻ | ബിൽഡ്-ടൈം പ്രൊഫൈൽ (ബണ്ടിലിൽ നിന്ന് പ്രിവിലേജ്ഡ് മൊഡ്യൂളുകളെ ഭൗതികമായി ഒഴിവാക്കുന്നതിന് `minimal` ആയി സജ്ജീകരിച്ചിരിക്കുന്നു). | | `OMNIROUTE_STANDALONE_DIR` | _.build/ ഒറ്റപ്പെട്ട ഔട്ട്പുട്ട്_ | `scripts/build/colocate-standalone.mjs` | പോസ്റ്റ്-ബിൽഡ് കളോക്കേഷൻ ഘട്ടം ഉപയോഗിച്ചുള്ള സ്റ്റാൻഡേലോൺ ഔട്ട്പുട്ട് ഡയറക്ടറിയുടെ ബിൽഡ്-ടൈം ഓവർറൈഡ്. റൺടൈം ക്രമീകരണമല്ല. | | `OMNIROUTE_DIST_DIR` | `dist/` (റിപ്പോ റൂട്ട്) | `scripts/build/prepublish.ts` | ഡയറക്ടറിയുടെ ബിൽഡ്-ടൈം അസാധുവാക്കൽ റിപ്പോ റൂട്ടിന് കീഴിലുള്ള `dist/` പകരം പ്രസിദ്ധീകരിക്കുന്ന ഘട്ടം (`prepublish.ts`) CLI ബണ്ടിൽ എഴുതുന്നു. നിർമ്മാണത്തിന് മുമ്പ് ഡയറക്ടറി തുടച്ചുനീക്കുന്നു. റൺടൈം ക്രമീകരണമല്ല. | | `OMNIROUTE_CLOUD_SYNC_SECRET` | _(ശൂന്യം)_ | `src/lib/cloudSync.ts` | ക്ലൗഡ് സമന്വയ പ്രതികരണങ്ങളുടെ HMAC-SHA256 ഒപ്പ് പരിശോധിക്കാൻ ഉപയോഗിക്കുന്ന രഹസ്യ രഹസ്യം. | | `OMNIROUTE_CLOUD_SYNC_SECRETS` | `false` | `src/lib/cloudSync.ts` | പ്രാദേശിക ക്രെഡൻഷ്യലുകൾ തിരുത്തിയെഴുതാൻ ക്ലൗഡ് സമന്വയ എൻഡ്പോയിൻ്റിനെ അനുവദിക്കുന്നതിന് `true` ആയി സജ്ജമാക്കുക. സ്ഥിരസ്ഥിതി `false` ആണ്. | | `OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE` | `false` | `src/lib/cloudSync.ts` | പ്രാദേശിക രഹസ്യങ്ങളൊന്നും കോൺഫിഗർ ചെയ്യാത്തപ്പോൾ ഒപ്പിടാത്ത ക്ലൗഡ് സമന്വയ പ്രതികരണം നിരസിക്കാൻ `true` ആയി സജ്ജീകരിക്കുക (#13679). നിലവിലുള്ള ഒരു ഒപ്പ് എല്ലായ്പ്പോഴും — പരിശോധിച്ചുറപ്പിക്കുകയും ഈ ഫ്ലാഗ് പരിഗണിക്കാതെ `OMNIROUTE_CLOUD_SYNC_SECRET` — സജ്ജീകരിക്കാത്തപ്പോൾ നിരസിക്കുകയും ചെയ്യും. v3.9-ൽ എൻഫോഴ്സ് ചെയ്തതിലേക്ക് ഡിഫോൾട്ട് ഫ്ലിപ്പുചെയ്യുന്നു. | | `OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP` | `false` | `src/app/api/providers/zed/import/route.ts` | ഉപയോക്തൃ സ്ഥിരീകരണമില്ലാതെ v3.8.5 ഒറ്റ-ഘട്ട "എല്ലാം ഇറക്കുമതി ചെയ്യുക" സ്വഭാവത്തിലേക്ക് മടങ്ങുന്നതിന് `true` ആയി സജ്ജീകരിക്കുക. | | `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | OAuth, ഡാഷ്ബോർഡ്, സമന്വയം | OAuth redirect_uri, ഡാഷ്ബോർഡ് ലിങ്കുകൾ, ജനറേറ്റഡ് പബ്ലിക് URLs എന്നിവയ്ക്കായുള്ള പൊതു അഭിമുഖമായ URL. OAuth കോൾബാക്കുകൾ അല്ലെങ്കിൽ ജനറേറ്റഡ് ബ്രൗസർ ലിങ്കുകൾ ഒരു കാനോനിക്കൽ റിവേഴ്സ്-പ്രോക്സി ഹോസ്റ്റ് ഉപയോഗിക്കേണ്ടിവരുമ്പോൾ ഇത് സ്ഥിരതയുള്ള പൊതു URL ആയി സജ്ജമാക്കുക. | | `NEXT_PUBLIC_CLOUD_URL` | _(ശൂന്യം)_ | ക്ലയൻ്റ് സൈഡ് | `CLOUD_URL` യുടെ ക്ലയൻ്റ് സൈഡ് മിറർ. | | `NEXT_PUBLIC_APP_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/shared/services/cloudSyncScheduler.ts` | `NEXT_PUBLIC_BASE_URL` യുടെ ലെഗസി ഫാൾബാക്ക്. | | `NEXT_PUBLIC_PORT` | _(സജ്ജീകരിക്കാത്ത — `PORT` ലേക്ക് മടങ്ങുന്നു)_ | `src/shared/hooks/useDisplayBaseUrl.ts` | ഉത്ഭവം അറിയാത്തപ്പോൾ ഡിസ്പ്ലേ URLs യ്ക്കുള്ള ക്ലയൻ്റ്-സൈഡ് ഫാൾബാക്ക് പോർട്ട് (SSR/tests); `PORT` മുമ്പ് വായിക്കുക. | | `OMNIROUTE_PUBLIC_BASE_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | പബ്ലിക് ഒറിജിൻ റിസോൾവർ, ഇമേജ് URLs | പൊതു URL ജനറേഷനും നോൺ-ഡാഷ്ബോർഡ് ബ്രൗസർ-ഒറിജിൻ മൂല്യനിർണ്ണയത്തിനും ഉപയോഗിക്കുന്ന ഉയർന്ന മുൻഗണനയുള്ള ബ്രൗസർ അഭിമുഖീകരിക്കുന്ന OmniRoute ഉത്ഭവം. ഒരു ആന്തരിക URL വഴി OpenWebUI അല്ലെങ്കിൽ മറ്റൊരു റിലേ OmniRoute എത്തുമ്പോൾ ഇത് സജ്ജീകരിക്കുക, എന്നാൽ ഉപയോക്താവിൻ്റെ ബ്രൗസർ ഒരു LAN, ടണൽ അല്ലെങ്കിൽ പൊതു ഉത്ഭവം എന്നിവയിൽ നിന്ന് ജനറേറ്റഡ് മീഡിയ ലഭ്യമാക്കണം. ചെയ്യുക** അല്ല** `/v1` ഉൾപ്പെടുന്നു. | | `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/config/providerPluginManifestUrl.ts` | സൈഡ്കാർ ക്ലയൻ്റുകൾക്ക് പരസ്യം ചെയ്ത സമ്പൂർണ്ണ ദാതാവിൻ്റെ പ്ലഗിൻ മാനിഫെസ്റ്റ് URL. സജ്ജീകരിക്കാത്തപ്പോൾ, OmniRoute അഭ്യർത്ഥന ഉത്ഭവത്തിൽ നിന്നോ HOST/PORT. നിന്നോ `/api/v1/provider-plugin-manifest` ലഭിക്കുന്നു | | `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | അഭ്യർത്ഥന ഉത്ഭവമില്ലാതെ HOST/PORT ൽ നിന്ന് പ്രൊവൈഡർ പ്ലഗിൻ മാനിഫെസ്റ്റ് URL എടുക്കുമ്പോൾ ഉപയോഗിക്കുന്ന പ്രോട്ടോക്കോൾ. വ്യക്തമായ `OMNIROUTE_PROVIDER_MANIFEST_URL` സജ്ജീകരിക്കാത്തപ്പോൾ TLS-ടെർമിനേറ്റിംഗ് പബ്ലിക് പ്രോക്സിക്ക് പിന്നിൽ `https` ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_TRUST_PROXY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/server/origin/publicOrigin.ts` | ഫോർവേഡ് ചെയ്ത പബ്ലിക് ഒറിജിൻ ഹെഡറുകൾക്കുള്ള ഓപ്ഷണൽ ട്രസ്റ്റ് മോഡ്. അൺസെറ്റ് = സുരക്ഷാ തീരുമാനങ്ങൾക്കായി `Forwarded` / `X-Forwarded-*` വിശ്വസിക്കരുത്. `true` / `loopback` ഒരു ടോക്കൺ-സ്റ്റാമ്പ് ചെയ്ത ലൂപ്പ്ബാക്ക് പ്രോക്സിയിൽ നിന്ന് മാത്രം ഫോർവേഡ് ചെയ്ത host/proto. `private` / `lan` പ്രൈവറ്റ്-ലാൻ പ്രോക്സി പിയർമാരെയും വിശ്വസിക്കുന്നു, `API_PORT` ബ്രിഡ്ജിനെ അത്തരം ഒരു പിയേഴ്സ് `X-Forwarded-For` നിലനിർത്താൻ അനുവദിക്കുന്നു, കൂടാതെ അത്തരം ഒരു പ്രോക്സി റിപ്പോർട്ട് ചെയ്യുന്ന ഒരു സ്വകാര്യ-നെറ്റ്വർക്ക് ക്ലയൻ്റിനെ അംഗീകരിക്കാൻ LOCAL_ONLY റൂട്ടുകളെ അനുവദിക്കുന്നു (ഒരിക്കലും ഒരു Cloudflare-ടണൽ അഭ്യർത്ഥന, ഒരു ലൂപ്പ്ബാക്ക്-ഒൺലി ചെയിൻ, അല്ലെങ്കിൽ CLIate-only chain-glyate). നിർമ്മാണത്തിൽ വ്യക്തമായ `NEXT_PUBLIC_BASE_URL` തിരഞ്ഞെടുക്കുക. | | `KIE_CALLBACK_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/utils/kieTask.ts` | asynchronous kie.ai ജോലികൾക്കായി പൊതു കോൾബാക്ക് URL. `OMNIROUTE_KIE_CALLBACK_URL`, `OMNIROUTE_PUBLIC_URL` എന്നിവയ്ക്ക് മുമ്പുള്ള ഉയർന്ന മുൻഗണന അസാധുവാക്കൽ. | | `OMNIROUTE_KIE_CALLBACK_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/utils/kieTask.ts` | `KIE_CALLBACK_URL` യുടെ ഇതര അക്ഷരവിന്യാസം. പ്രൈമറി വേരിയബിൾ സജ്ജീകരിക്കാത്തപ്പോൾ തിരികെ വീഴുന്നു. | | `OMNIROUTE_PUBLIC_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/utils/kieTask.ts` | അസിൻക് കോൾബാക്ക് URLs രചിക്കാൻ പൊതു ഉത്ഭവം ഉപയോഗിക്കുന്നു. kie.ai കോൾബാക്കുകൾക്ക് ഏറ്റവും കുറഞ്ഞ മുൻഗണനയുള്ള ഫാൾബാക്ക്; മറ്റ് റിലേകൾക്കായി ഒരു പൊതു URL ആയി ഉപയോഗിക്കുന്നു. | | `OMNIROUTE_CROF_USAGE_URL` | `https://crof.ai/usage_api/` | `open-sse/services/usage.ts` | ഉപയോഗ പേജ് ഉപയോഗിക്കുന്ന CrofAI ക്വാട്ട ലുക്ക്അപ്പ് എൻഡ്പോയിൻ്റ്. റിലേകൾ / ടെസ്റ്റ് ഫിക്ചറുകൾക്ക് അസാധുവാക്കുക. | | `OMNIROUTE_CLINEPASS_USAGE_URL` | `https://api.cline.bot/api/v1/users/me/plan/usage-limits` | `open-sse/services/usage/clinepass.ts` | ClinePass 5-മണിക്കൂർ / പ്രതിവാര / പ്രതിമാസ ക്വാട്ട എൻഡ്പോയിൻ്റ് ഉപയോഗ പേജ് ഉപയോഗിക്കുന്നു. റിലേകൾ / ടെസ്റ്റ് ഫിക്ചറുകൾക്ക് അസാധുവാക്കുക. | | `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | ഉപയോഗ പേജ് ഉപയോഗിക്കുന്ന ഔദ്യോഗിക API-കീ-ആധികാരിക OpenCode Go ഉപയോഗ എൻഡ്പോയിൻ്റ്. റിലേകൾ / ടെസ്റ്റ് ഫിക്ചറുകൾക്ക് അസാധുവാക്കുക. | | `OPENCODE_SYNTHESIZE_CLI_HEADERS` | `true` | `open-sse/executors/opencode.ts` | ക്ലയൻ്റ് അയച്ചിട്ടില്ലാത്ത opencode-go/zen അപ്സ്ട്രീം അഭ്യർത്ഥനകളിൽ OpenCode CLI ഐഡൻ്റിറ്റി ഹെഡറുകൾ (ഉപയോക്തൃ-ഏജൻറ്, x-opencode-client/project, request/session UUIDs) സമന്വയിപ്പിക്കുക, അതിനാൽ VPS egress-ൽ Cloudflare അവ സ്വീകരിക്കുന്നു (#6210/#5997). #10571 മുതൽ സ്ഥിരസ്ഥിതിയായി ഓണാണ്; `false`/`0`/`no`/`off` ഉപയോഗിച്ച് ഒഴിവാക്കുക. | | `OPENCODE_USER_AGENT` | `opencode/1.18.31` | `open-sse/utils/opencodeHeaders.ts` | `OPENCODE_SYNTHESIZE_CLI_HEADERS` ഓണായിരിക്കുമ്പോഴും ഓരോ പ്രൊവൈഡർ `_USER_AGENT` അസാധുവാക്കലും സജ്ജീകരിച്ചിട്ടില്ലാത്തപ്പോഴും ഡിഫോൾട്ട് യൂസർ-ഏജൻ്റ് ഉപയോഗിക്കുന്നു. ഓപ്പൺകോഡ് എക്സിക്യൂട്ടറുകൾക്ക് മാത്രം ബാധകമാണ്. ഒരു കീലെസ്സ് അഭ്യർത്ഥനയിൽ അപ്സ്ട്രീം ഗേറ്റുകൾ, `opencode/= 1.17>` വഹിക്കാത്ത ഒരു കോൺഫിഗർ ചെയ്ത മൂല്യം നിരസിച്ചതിന് പകരം ഈ ഡിഫോൾട്ട് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. | | `OMNIROUTE_FORWARD_ATTRIBUTION` | `1` (ഓൺ) | `open-sse/utils/opencodeHeaders.ts` | ക്ലയൻ്റ് ആപ്പ്-ആട്രിബ്യൂഷൻ ഹെഡറുകൾ (`x-session-id`, `x-title`, `http-referer`) അപ്സ്ട്രീം ദാതാക്കളിലേക്ക് ഫോർവേഡ് ചെയ്യുക, അതിനാൽ ഒരു ലിസ്റ്റ് ചെയ്ത ഹാർനെസിനുള്ളിൽ ആരംഭിക്കുന്ന ഒരു അഭ്യർത്ഥന റൂട്ടറിലൂടെ അതിൻ്റെ ഐഡൻ്റിറ്റി നിലനിർത്തുന്നു (ഇവയിൽ OpenRouter പ്രസാധക ഗേറ്റ്സ് കീ). `0`/`false`/`no`/`off` registry/operator ഐഡൻ്റിറ്റി നിലനിർത്തുകയും ക്ലയൻ്റ് വിതരണം ചെയ്യുന്ന മൂല്യങ്ങൾ കുറയ്ക്കുകയും ചെയ്യുന്നു. ഓപ്പറേറ്റർ കോൺഫിഗർ ചെയ്ത ഇഷ്ടാനുസൃത തലക്കെട്ടുകൾ എല്ലായ്പ്പോഴും ക്ലയൻ്റ് മൂല്യങ്ങളിൽ വിജയിക്കുന്നു. | | `OPENCODE_CLIENT` | `desktop` | `open-sse/executors/opencode.ts` | `OPENCODE_SYNTHESIZE_CLI_HEADERS` ഓണായിരിക്കുമ്പോൾ സിന്തസൈസ് ചെയ്ത `x-opencode-client` തലക്കെട്ടിനുള്ള മൂല്യം. | | `OPENCODE_PROJECT` | `global` | `open-sse/executors/opencode.ts` | `OPENCODE_SYNTHESIZE_CLI_HEADERS` ഓണായിരിക്കുമ്പോൾ സിന്തസൈസ് ചെയ്ത `x-opencode-project` തലക്കെട്ടിനുള്ള മൂല്യം. | | `OMNIROUTE_EGRESS_IP_LOCK_PROVIDERS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/config/providerErrorRules.ts` | egress IP (ഒരു 429 പാർക്കുകൾ എല്ലാ സഹോദരങ്ങളുടെ കണക്ഷനും IP പങ്കിടുന്നു) അപ്സ്ട്രീം പരാജയങ്ങൾ ബക്കറ്റ് ചെയ്ത ദാതാക്കളുടെ ഫലപ്രദമായ സെറ്റ്. സജ്ജമാക്കാത്തത് ഫ്രീ-ടയർ ഡിഫോൾട്ട് `opencode,opencode-go,opencode-cli` ഉപയോഗിക്കുന്നു; `none`/`off`/`false`/`0` കാസ്കേഡ് പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കുന്നു; ഒരു കോമ കൊണ്ട് വേർതിരിച്ച ലിസ്റ്റ് സെറ്റിനെ മാറ്റിസ്ഥാപിക്കുന്നു. പണമടച്ചുള്ള പ്ലാനുകൾ അക്കൗണ്ട്-ബക്കറ്റ് അപ്സ്ട്രീം ആണ്, അത് സുരക്ഷിതമായി പ്രവർത്തനരഹിതമാക്കാം (#9611). | | `OMNIROUTE_EGRESS_QUOTA_ROTATION_PROVIDERS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/config/providerErrorRules.ts` | ക്വോട്ട-റിസസൽ എക്സ് റൊട്ടേഷൻ സ്കോപ്പ്. അൺസെറ്റ് ഒരു പൂൾ അംഗത്തെ 429-ൽ IP-ബക്കറ്റുള്ള കുടുംബത്തിനായി മാത്രം മാറ്റിവെക്കുന്നു; `all` എല്ലാ ദാതാവിനും എഴുതുന്നു, അതിനാൽ ഒരു അംഗം മുഖേന ലഭിക്കുന്ന നിരക്ക് പരിധി മറ്റെവിടെയെങ്കിലും അടുത്ത പിക്ക് എക്ഗ്രസ് ഉണ്ടാക്കുന്നു. `all` ഒഴികെയുള്ള ഏതൊരു മൂല്യവും അവഗണിക്കപ്പെടും. `PROXY_SKIP_RECENTLY_FAILED` ആവശ്യമാണ് (സ്ഥിരസ്ഥിതിയായി ഓൺ). എക്സ്സ് വിലാസം അനുസരിച്ചല്ല, (ദാതാവ്, വിലാസം) പ്രകാരമാണ് സ്റ്റോറിൻ്റെ താക്കോൽ നൽകിയിരിക്കുന്നത്, അതിനാൽ കാലാവധി കഴിയുന്നതുവരെ ഓരോ ദാതാവിനും അംഗമാകുന്ന 429 പാർക്കുകൾ വിപുലീകരിച്ചു (5 മിനിറ്റ്, 15 ആയി ഇരട്ടിയാക്കുന്നു). ഓരോ പ്രതികരണ ഫലവും വായിക്കുക, അതിനാൽ പുനരാരംഭിക്കാതെ തന്നെ ഒരു മാറ്റം ബാധകമാകും. | | `OPENCODE_FREE_TIER_REQUEST_CONTRACT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/opencodeFreeTierContract.ts` | കീലെസ്സ് OpenCode അഭ്യർത്ഥനകളുടെ ബോഡി ക്രമീകരിക്കുന്നത് നിർത്താൻ `off` ആയി സജ്ജീകരിക്കുക (സ്ട്രീമിംഗ് ഫ്ലാഗും ടൂൾ ലിസ്റ്റും). തലക്കെട്ടുകൾ ഇപ്പോഴും പ്രയോഗിക്കുന്നു. ഓരോ അഭ്യർത്ഥനയും വായിക്കുക, അതിനാൽ മാറ്റം ഉടനടി പ്രാബല്യത്തിൽ വരും. | | `OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/opencodeFreeTierContract.ts` | ആ മോഡലിനായി ഇതുവരെ ഒന്നും നിരീക്ഷിച്ചിട്ടില്ലാത്തപ്പോൾ, ഒന്നും വഹിക്കാത്ത ഒരു കീലെസ്സ് OpenCode അഭ്യർത്ഥനയിൽ പ്രഖ്യാപിക്കാനുള്ള കോമ കൊണ്ട് വേർതിരിച്ച ടൂൾ പേരുകൾ. മോഡൽ വിളിക്കരുതെന്ന് പറഞ്ഞിരിക്കുന്ന ഒരൊറ്റ പ്ലെയ്സ്ഹോൾഡറിലേക്ക് ശൂന്യമായി വീഴുന്നു. പരമാവധി 32 എൻട്രികൾ, `[A-Za-z_][A-Za-z0-9_-]{0,63}`; അസാധുവായ എൻട്രികൾ അവഗണിക്കപ്പെടുന്നു. | | `OPENCODE_FREE_TIER_CREDENTIAL` | `public` | `open-sse/executors/opencodeFreeTierContract.ts` | ഗേറ്റഡ് ഫ്രീ-ടയർ ലെയ്നിൽ (`https://opencode.ai/inference/v1`) അയച്ച ക്രെഡൻഷ്യൽ. 2026-10-21 മുതൽ, ആ പാത ഒരു യഥാർത്ഥ API കീയിലേക്ക് 403 `Model access is disabled` ന് ഉത്തരം നൽകുകയും പകരം അജ്ഞാത അക്ഷരങ്ങൾ നൽകുകയും ചെയ്യുന്നു. `key` ഓപ്പറേറ്ററുടെ API കീ സൂക്ഷിക്കുന്നു, `none`/`off` ക്രെഡൻഷ്യൽ ഹെഡർ അയയ്ക്കുന്നില്ല, മറ്റേതെങ്കിലും അക്ഷരാർത്ഥം ബെയറർ ടോക്കണായി അയയ്ക്കും. അഭ്യർത്ഥന പ്രകാരം വായിക്കുക. | | `OPENCODE_FREE_TIER_RELAY_URL` | സജ്ജീകരിക്കാത്തത് | `src/lib/opencodeFreeRelay.ts` | ഗേറ്റഡ് ഫ്രീ-ടയർ OpenCode അഭ്യർത്ഥനകൾക്കുള്ള Bun റിലേയുടെ അടിസ്ഥാന URL. സജ്ജീകരിക്കുമ്പോൾ, ആ അഭ്യർത്ഥനകൾ OpenCode CLI സിസ്റ്റം പ്രോംപ്റ്റും ടൂൾ സെറ്റും വഹിക്കുകയും റിലേ (`scripts/ops/opencode-free-relay.ts`) വഴി അയയ്ക്കുകയും ചെയ്യുന്നു, കാരണം അപ്സ്ട്രീം 429 നോൺ-ബൺ HTTP ക്ലയൻ്റുകൾക്ക് ഉത്തരം നൽകുന്നു. `bun` PATH ൽ ആയിരിക്കുമ്പോൾ സെർവറിൽ ലൂപ്പ്ബാക്ക് URLs ആരംഭിക്കുന്നു; URL ലെ ഒരു പാത അവഗണിക്കപ്പെട്ടിരിക്കുന്നു. ലൂപ്പ്ബാക്ക് ഹോസ്റ്റുകൾക്ക് (`localhost`, `127.0.0.0/8`, `::1`) മാത്രമേ പ്ലെയിൻ `http://` സ്വീകരിക്കുകയുള്ളൂ; മറ്റേതെങ്കിലും ഹോസ്റ്റ് `https://` ഉപയോഗിക്കണം, അല്ലാത്തപക്ഷം അഭ്യർത്ഥനകൾ ഒരു വ്യക്തമായ പിശക് കൊണ്ട് പരാജയപ്പെടും. ചാറ്റ് പൂർത്തിയാക്കലുകൾ മാത്രം. അഭ്യർത്ഥന പ്രകാരം വായിക്കുക. | | `OPENCODE_FREE_RELAY_BUN` | `bun` ൽ PATH | `src/lib/opencodeFreeRelay.ts` | Bun ബൈനറി റിലേ ആരംഭിക്കാൻ ഉപയോഗിക്കുന്നു. | | `OPENCODE_FREE_RELAY_SCRIPT` | പാക്കേജ് റൂട്ടിന് കീഴിൽ `scripts/ops/opencode-free-relay.ts` | `src/lib/opencodeFreeRelay.ts` | റിലേ സ്ക്രിപ്റ്റിൻ്റെ പാത. ഇൻസ്റ്റോൾ ചെയ്ത പാക്കേജ് റൂട്ടിൽ നിന്നും തുടർന്ന് വർക്കിംഗ് ഡയറക്ടറിയിൽ നിന്നും ഡിഫോൾട്ട് പരിഹരിച്ചിരിക്കുന്നു. | | `OPENCODE_FREE_RELAY_HOST` | `127.0.0.1` | `scripts/ops/opencode-free-relay.ts` | റിലേ കേൾക്കുന്ന ഹോസ്റ്റ്. | | `OPENCODE_FREE_RELAY_PORT` | `20199` | `scripts/ops/opencode-free-relay.ts` | റിലേ ലിസൻ പോർട്ട്. | | `OPENCODE_FREE_RELAY_UPSTREAM` | `https://opencode.ai` | `scripts/ops/opencode-free-relay.ts` | റിലേ ഫോർവേഡിലേക്ക് ഉത്ഭവിക്കുക. `https://` ആയിരിക്കണം (ഒരു ലൂപ്പ്ബാക്ക് ടെസ്റ്റ് ഉത്ഭവത്തിന് മാത്രം`http://` ); മറ്റുവിധത്തിൽ ആരംഭിക്കാൻ റിലേ വിസമ്മതിക്കുന്നു. | | `OPENCODE_FREE_RELAY_TOKEN` | സജ്ജീകരിക്കാത്തത് | `scripts/ops/opencode-free-relay.ts`, `open-sse/executors/opencodeRelay.ts` | പങ്കുവെച്ച രഹസ്യം. OmniRoute അത് `x-opencode-relay-auth` ൽ അയയ്ക്കുന്നു; റിലേ അത് കൂടാതെ 401 ഉത്തരം നൽകുന്നു. ആവശ്യമാണ്: നോൺ-ലൂപ്പ്ബാക്ക് `OPENCODE_FREE_RELAY_HOST` ഉള്ള ഒരു റിലേ അത് കൂടാതെ ആരംഭിക്കാൻ വിസമ്മതിക്കുന്നു. | | `OPENCODE_FREE_RELAY_PROXY_ALLOWLIST` | സജ്ജീകരിക്കാത്തത് | `scripts/ops/opencode-free-relay.ts` | കോമയാൽ വേർതിരിച്ച `host` അല്ലെങ്കിൽ `host:port` എഗ്രസ് പ്രോക്സികൾ ഒരു നോൺ-ലൂപ്പ്ബാക്ക് റിലേ കോളർമാരിൽ നിന്ന് സ്വീകരിക്കുന്നു (`x-opencode-relay-proxy`); മറ്റേതെങ്കിലും പ്രോക്സി ഉത്തരങ്ങൾ 403. ഒരു ലൂപ്പ്ബാക്ക് ബൈൻഡിൽ അവഗണിച്ചു. | | `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | Ollama ക്ലൗഡ് ക്രമീകരണങ്ങൾ URL ക്വാട്ട സ്ക്രാപ്പിംഗിനായി ഉപയോഗിക്കുന്നു. റിലേകൾ / ടെസ്റ്റ് ഫിക്ചറുകൾക്ക് അസാധുവാക്കുക. | | `OMNIROUTE_OLLAMA_CLOUD_BALANCE_URL` | `https://ollama.com/api/balance` | `open-sse/services/ollamaCloudBalance.ts` | Ollama ക്ലൗഡ് അപ്സ്ട്രീം ബാലൻസ് എൻഡ്പോയിൻ്റ് രേഖപ്പെടുത്തി (`GET https://ollama.com/api/balance`, `Authorization: Bearer `). മൊഡ്യൂൾ ലോഡിൽ ഒരിക്കൽ വായിക്കുക. കണക്ഷന് ഒരു API കീ ഉള്ളപ്പോൾ Ollama ക്ലൗഡ് ക്വാട്ടയ്ക്കായി ആദ്യം ഉപയോഗിച്ചു; ക്രമീകരണങ്ങൾ-പേജ് കുക്കി സ്ക്രാപ്പർ ഫോൾബാക്ക് ആയി തുടരുന്നു. റിലേകൾ / ടെസ്റ്റ് ഫിക്ചറുകൾക്ക് അസാധുവാക്കുക. | | `OLLAMA_USAGE_COOKIE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/usage.ts` | Ollama ക്ലൗഡ് `__Secure-session` കുക്കി ക്രമീകരണങ്ങൾ-പേജ് ക്വാട്ട സ്ക്രാപ്പിംഗിനായി ഉപയോഗിക്കുന്നു. സെൻസിറ്റീവ്; ഒന്നിലധികം അക്കൗണ്ടുകൾ കോൺഫിഗർ ചെയ്യുമ്പോൾ ഓരോ കണക്ഷനും ഡാഷ്ബോർഡ് ഫീൽഡ് തിരഞ്ഞെടുക്കുക. | | `OLLAMA_CLOUD_USAGE_COOKIE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/usage.ts` | ഇതര Ollama ക്ലൗഡ് `__Secure-session` കുക്കി env var. സെൻസിറ്റീവ്; ഒന്നിലധികം അക്കൗണ്ടുകൾ കോൺഫിഗർ ചെയ്യുമ്പോൾ ഓരോ കണക്ഷനും ഡാഷ്ബോർഡ് ഫീൽഡ് തിരഞ്ഞെടുക്കുക. | | `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/usage.ts` | ചെറിയ അപരനാമങ്ങൾക്ക് മുമ്പ് ഇതര Ollama ക്ലൗഡ് `__Secure-session` കുക്കി env var ഉപയോഗിച്ചു. സെൻസിറ്റീവ്; ഒന്നിലധികം അക്കൗണ്ടുകൾ കോൺഫിഗർ ചെയ്യുമ്പോൾ ഓരോ കണക്ഷനും ഡാഷ്ബോർഡ് ഫീൽഡ് തിരഞ്ഞെടുക്കുക. | | `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | CodeWhisperer (AWS Kiro) ഉപയോഗം അവസാന പോയിൻ്റ് പരിമിതപ്പെടുത്തുന്നു. റിലേകൾ / ടെസ്റ്റ് ഫിക്ചറുകൾക്ക് അസാധുവാക്കുക. | > [!IMPORTANT] > ഒരു റിവേഴ്സ് പ്രോക്സിക്ക് (nginx, Caddy) പിന്നിൽ വിന്യസിക്കുമ്പോൾ, OAuth കോൾബാക്കുകളോ ജനറേറ്റഡ് പൊതു ലിങ്കുകളോ ആ ഹോസ്റ്റ്നാമം ഉപയോഗിക്കുമ്പോൾ, നിങ്ങളുടെ സ്ഥിരതയുള്ള പൊതു URL (ഉദാ, `https://omniroute.example.com`) ആയി `NEXT_PUBLIC_BASE_URL` സജ്ജമാക്കുക. ഇത് കൂടാതെ, redirect_uri പൊരുത്തപ്പെടാത്തതിനാൽ OAuth കോൾബാക്കുകൾ പരാജയപ്പെടാം, കൂടാതെ ജനറേറ്റുചെയ്ത പൊതു ലിങ്കുകൾ ആന്തരിക കണ്ടെയ്നർ ഉത്ഭവത്തിലേക്ക് പോയിൻ്റ് ചെയ്യാം. > > സെർവർ-ടു-സെർവർ ജോലികൾക്കായി `BASE_URL` ഒരു ആന്തരിക loopback/container URL ആയി സൂക്ഷിക്കുക. ക്രെഡൻഷ്യൽ-ബെയറിംഗ് ഇൻ്റേണൽ സെൽഫ്-ഫെച്ചുകൾക്കായി ഒരു ബ്രൗസർ `Origin` അല്ലെങ്കിൽ പൊതു ഹോസ്റ്റ് നാമം ഉപയോഗിക്കരുത്. > > ആധികാരികമായ ഡാഷ്ബോർഡ് റൈറ്റുകൾക്ക് ഒരു സ്റ്റാറ്റിക് പബ്ലിക് ബേസ് URL ആവശ്യമില്ല : ഡാഷ്ബോർഡ് സെഷൻ-ബൗണ്ട് CSRF ടോക്കൺ ഉപയോഗിച്ച് ഒരേ ഉത്ഭവമുള്ള സുരക്ഷിതമല്ലാത്ത അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നു. OmniRoute ഇപ്പോഴും ഡാഷ്ബോർഡ് ഇതര ബ്രൗസർ സംയോജനങ്ങൾക്കായി പബ്ലിക് ഒറിജിൻ മൂല്യനിർണ്ണയം കേന്ദ്രീകരിക്കുന്നു: വ്യക്തമായ പൊതു URL env vars ആദ്യം വിശ്വസനീയമാണ്; `OMNIROUTE_TRUST_PROXY` പ്രവർത്തനക്ഷമമാക്കുകയും ഉടനടി പ്രോക്സി പിയർ വിശ്വസനീയമെന്ന് ടോക്കൺ-സ്റ്റാമ്പ് ചെയ്യുകയും ചെയ്തില്ലെങ്കിൽ റോ `Forwarded` / `X-Forwarded-*` തലക്കെട്ടുകൾ അവഗണിക്കപ്പെടും. ഒരേ ഒറിജിൻ ഡാഷ്ബോർഡ് അഭ്യർത്ഥനകൾ പരിഹരിക്കാൻ CORS ക്രമീകരണങ്ങൾ ഉപയോഗിക്കരുത്; CORS ക്രോസ്-ഒറിജിൻ ബ്രൗസർ ക്ലയൻ്റുകൾക്ക് മാത്രമുള്ളതാണ്. --- ## 8. ഔട്ട്ബൗണ്ട് പ്രോക്സി റൂട്ട് അപ്സ്ട്രീം LLM ദാതാവ് ഒരു HTTP അല്ലെങ്കിൽ SOCKS5 പ്രോക്സി മുഖേന എക്സ്സ് കൺട്രോൾ, ജിയോ റൂട്ടിംഗ് അല്ലെങ്കിൽ IP മാസ്കിംഗ് എന്നിവയ്ക്കായി വിളിക്കുന്നു. `OMNIROUTE_UPSTREAM_HTTP2_ENABLED` സ്ഥിരസ്ഥിതിയായി `true` ലേക്ക് . `open-sse/utils/proxyDispatcher.ts`, `open-sse/utils/proxyFetch.ts` എന്നിവയിലെ Undici ഡിസ്പാച്ചറുകളിൽ HTTP/1.1 നിർബന്ധിതമാക്കാൻ `false`, `0`, `no`, അല്ലെങ്കിൽ `off` ആയി സജ്ജമാക്കുക: ഡയറക്ട് എഗ്രെസ്സ്, HTTP(S)/SOCKS പ്രോക്സികൾ, റിലേകൾ, അവയുടെ ഫ്രഷ്-സോക്കറ്റ് റീട്രീസ്. ഇത് TLS സർട്ടിഫിക്കറ്റ് വെരിഫിക്കേഷൻ, പ്രോക്സി പ്രാമാണീകരണം, കണക്ഷൻ പരിധികൾ, കീപ്-ലൈവ് ക്രമീകരണങ്ങൾ എന്നിവ സംരക്ഷിക്കുന്നു. ഡിസ്പാച്ചറുകൾ കാഷെ ചെയ്തിരിക്കുന്നതിനാലും സ്റ്റാർട്ടപ്പിൽ റിലേ ഏജൻ്റുകൾ സൃഷ്ടിക്കപ്പെട്ടതിനാലും OmniRoute മാറ്റിയ ശേഷം പുനരാരംഭിക്കുക. സ്വിച്ച് wreq TLS വിരലടയാളം അല്ലെങ്കിൽ ദാതാവ്-നിർദ്ദിഷ്ട ട്രാൻസ്പോർട്ടുകൾ നിയന്ത്രിക്കുന്നില്ല. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------------------- | ----------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | അപ്സ്ട്രീം കോളുകൾക്കായി SOCKS5 പ്രോക്സി ഏജൻ്റ് പ്രവർത്തനക്ഷമമാക്കുക. `false` ഉപയോഗിച്ച് ഒഴിവാക്കുക. | | `OMNIROUTE_GZIP_REQUEST_BODIES` | `true` | `open-sse/executors/base/gzipRequestBody.ts` | ഔദ്യോഗിക `api.anthropic.com` ലേക്ക് അയച്ച അഭ്യർത്ഥന ബോഡി Gzip ചെയ്യുക (4096 + പ്രതീകങ്ങൾ, നേരിട്ടുള്ള കണക്ഷനുകൾ മാത്രം; ഒരു പ്രോക്സി, TLS ആൾമാറാട്ടം അല്ലെങ്കിൽ `NODE_EXTRA_CA_CERTS` പിന്നിൽ ഒഴിവാക്കി). Anthropic gzip മാത്രം സ്വീകരിക്കുന്നു. നിരസിച്ച എൻകോഡിംഗ് (415, ഒരു നോൺ-ആന്ത്രോപിക് 400/403, അല്ലെങ്കിൽ ഒരു ഉത്ഭവം JSON-parse 400) ഒരിക്കൽ കംപ്രസ് ചെയ്യാതെ റീസെൻ്റ് ചെയ്യുകയും ഒറിജിൻ ഒരു മണിക്കൂറോളം കംപ്രസ്സ് ചെയ്യാതെ തുടരുകയും ചെയ്യുന്നു. `0`, `false`, `off` അല്ലെങ്കിൽ `no` ഉപയോഗിച്ച് ഒഴിവാക്കുക. | | `NEXT_PUBLIC_ENABLE_SOCKS5_PROXY` | `true` | ക്ലയൻ്റ് സൈഡ് | SOCKS5 ലഭ്യതയെക്കുറിച്ചുള്ള ഉപഭോക്തൃ അവബോധം. | | `PROXY_SKIP_RECENTLY_FAILED` | `true` | `src/shared/utils/featureFlags.ts` | ഓൺ-ബൈ-ഡിഫോൾട്ട് ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). പ്രോക്സി പൂളുകളും ഓരോ അക്കൗണ്ട് റൊട്ടേഷനും ഇപ്പോൾ പരാജയപ്പെട്ട ( TCP പ്രോബ് നിരസിച്ച അല്ലെങ്കിൽ അതിലൂടെ ഒരു 429) ഒരു അംഗത്തിന് വീണ്ടും സേവനം നൽകുന്നത് നിർത്തുന്നു, ഓരോ ആവർത്തനത്തിലും ഒരു പരിധി വരെ ഇരട്ടിയാകുന്നു. `false` പ്ലെയിൻ സെലക്ഷൻ പുനഃസ്ഥാപിക്കുന്നു. | | `SELECTOR_CONTROL_ALLOWLIST` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/proxySubscription/selectorGuard.ts` | ലോക്കൽ-കോർ സെലക്ടർ-നിയന്ത്രണ ലക്ഷ്യങ്ങൾക്കായി ലൂപ്പ്ബാക്കിന് അപ്പുറം അനുവദിക്കുക (comma/space വേർതിരിച്ച ഹോസ്റ്റുകൾ അല്ലെങ്കിൽ IPs, `*` LAN/private തുറക്കുന്നു, പക്ഷേ ഒരിക്കലും metadata/link-local). സ്ഥിരസ്ഥിതിയായി http/https ൽ ലൂപ്പ്ബാക്ക് അനുവദനീയമാണ്. ഒരു ഡാഷ്ബോർഡ് DB മൂല്യം സജ്ജീകരിക്കുമ്പോഴും ശൂന്യമല്ലാതാകുമ്പോഴും ഈ വേരിയബിളിന് മുകളിൽ വിജയിക്കുന്നു. | | `PROXY_QUOTA_429_BASE_MS` | `300000` | `open-sse/utils/proxyRefusalMemory.ts` | 429 സെറ്റിൻ്റെ അടിസ്ഥാന കാലയളവ് (മി.സെ.), ഓരോ ആവർത്തനത്തിലും ഇരട്ടിയായി. സ്റ്റാർട്ടപ്പിൽ ഒരിക്കൽ വായിക്കുക. `1000..3600000` ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു; പരിധിക്ക് പുറത്തുള്ളതോ വായിക്കാൻ കഴിയാത്തതോ ആയവ ഒരു മുന്നറിയിപ്പിനൊപ്പം ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. | | `PROXY_QUOTA_429_MAX_MS` | `900000` | `open-sse/utils/proxyRefusalMemory.ts` | 429 സെറ്റ്-സൈഡിൻറെ ക്യാപ് (മി.സെ.). സ്റ്റാർട്ടപ്പിൽ ഒരിക്കൽ വായിക്കുക. `1000..3600000` ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു; പരിധിക്ക് പുറത്തുള്ളതോ വായിക്കാൻ കഴിയാത്തതോ ആയവ ഒരു മുന്നറിയിപ്പിനൊപ്പം ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. തൊപ്പി അടിത്തറയ്ക്ക് താഴെയായിരിക്കുമ്പോൾ, അത് സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. തൊപ്പി താഴ്ത്തുന്നത് സ്ട്രീക്ക് മറക്കുന്നതിനെ ചെറുതാക്കുന്നു: എൻട്രികൾ കാലഹരണപ്പെട്ടതിന് ശേഷം `2 x max` ശുദ്ധീകരിക്കുന്നു. | | `PROXY_POOL_SHARED_EGRESS_ORDER` | `false` | `src/shared/utils/featureFlags.ts` | ഓപ്റ്റ്-ഇൻ ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). എഗ്രസ് വിലാസത്താൽ ബക്കറ്റ് ചെയ്തിരിക്കുന്ന ദാതാക്കൾക്കായി, അടുത്തിടെ നിരസിച്ച അംഗത്തിൻ്റെ നിരീക്ഷിച്ച എക്സ് വിലാസം പങ്കിടുന്ന പൂൾ അംഗത്തെ ആരോഗ്യമുള്ള അംഗങ്ങൾക്ക് തൊട്ടുതാഴെയായി റാങ്ക് ചെയ്യുക. ഓർഡർ മാത്രം, ഒരിക്കലും ഒഴിവാക്കിയിട്ടില്ല. `PROXY_SKIP_RECENTLY_FAILED` ആവശ്യമാണ്, അത് വായിക്കുന്ന നിരസിക്കൽ സിഗ്നൽ സൃഷ്ടിക്കുന്നു. | | `PROXY_WEBHOOK_REBOUND_MS` | `300000` | `src/lib/proxyEvents/proxyTransitionBridge.ts` | ഓരോ പൂൾ അംഗത്തിനും റീബൗണ്ട് വിൻഡോ (മിസെ) ക്യാപ്പിംഗ് `proxy.set_aside` വെബ്ഹൂക്ക് അലേർട്ടുകൾ ആവർത്തിക്കുന്നു, അങ്ങനെ നിരസിക്കുന്നവരുടെ ഒരു പൊട്ടിത്തെറി ഒരു ഇവൻ്റ് അയയ്ക്കുന്നു. ഓരോ എമിറ്റിലും വായിക്കുക. `1000..3600000` ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു; പരിധിക്ക് പുറത്തുള്ളതോ വായിക്കാൻ കഴിയാത്തതോ ആയവ നിശബ്ദമായി ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. | | `HTTP_PROXY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | Node.js സ്റ്റാൻഡേർഡ് | അപ്സ്ട്രീം കോളുകൾക്കായിHTTP പ്രോക്സി. | | `HTTPS_PROXY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | Node.js സ്റ്റാൻഡേർഡ് | അപ്സ്ട്രീം കോളുകൾക്കായിHTTPS പ്രോക്സി. | | `ALL_PROXY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | Node.js സ്റ്റാൻഡേർഡ് | യൂണിവേഴ്സൽ പ്രോക്സി ( `socks5://` പിന്തുണയ്ക്കുന്നു). | | `OMNIROUTE_PROXY_ECHO_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/proxyEchoTarget.ts` | പ്രോക്സി എഗ്രസ് പ്രോബുകൾ ഉപയോഗിക്കുന്ന എക്കോ-ഐപി ടാർഗെറ്റ് ഒരൊറ്റ URL ലേക്ക് പിൻ ചെയ്യുന്നു. സജ്ജീകരിച്ചിട്ടില്ല, അന്വേഷണം `api64.ipify.org` തുടർന്ന് `api4.ipify.org` ശ്രമിക്കുന്നതിനാൽ IPv4-only തുരങ്കങ്ങൾ മരിച്ചതായി റിപ്പോർട്ടില്ല (#9694). | | `NO_PROXY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | Node.js സ്റ്റാൻഡേർഡ് | പ്രോക്സിയെ മറികടക്കാൻ കോമ കൊണ്ട് വേർതിരിച്ച hostnames/IPs. | | `OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS` | `32` | `open-sse/utils/proxyDispatcher.ts` | കാഷെ ചെയ്ത HTTP/SOCKS പ്രോക്സി ഡിസ്പാച്ചറിന് പരമാവധി കൺകറൻ്റ് സോക്കറ്റുകൾ. നിരവധി അഭ്യർത്ഥനകൾ ഒരേ അക്കൗണ്ട്-ലെവൽ പ്രോക്സി പങ്കിടുമ്പോൾ Codex `/v1/responses` പോലുള്ള ദീർഘകാല SSE സ്ട്രീമുകൾക്ക് ഒന്നിലധികം കണക്ഷനുകൾ ആവശ്യമാണ്. `256` മുകളിലുള്ള മൂല്യങ്ങൾ പരിധിയിലാണ്. | | `SOCKS_HANDSHAKE_TIMEOUT_MS` | `10000` | `open-sse/utils/socksConnectorWithFamily.ts` | SOCKS5 ഹാൻഡ്ഷേക്ക് (കണക്റ്റ്) ms-ൽ കാലഹരണപ്പെട്ടു. ഒരു റസിഡൻഷ്യൽ ഗേറ്റ്വേ ഹോസ്റ്റിൽ ഉയർന്ന കൺകറൻസി (ഉദാ. 100 ഒരേസമയം അഭ്യർത്ഥനകൾ) — അടിക്കുമ്പോൾ അത് ഉയർത്തുക, പ്രോക്സിയിൽ എത്തിച്ചേരാനാകുമെങ്കിലും, ഒരു പൂരിത പൂളിന് കീഴിൽ യഥാർത്ഥ ഹാൻഡ്ഷേക്ക് 10സെക്കൻറ് കവിഞ്ഞേക്കാം, അല്ലാത്തപക്ഷം അത് തെറ്റായ `[Proxy Fast-Fail] Proxy unreachable` ആയി പ്രത്യക്ഷപ്പെടും. `120000` യിൽ പരിധി. | | `PROXY_FAIL_OPEN` | `false` | `src/sse/handlers/chatHelpers.ts` | `false` (സ്ഥിരസ്ഥിതി) ആയിരിക്കുമ്പോൾ, നിയുക്ത പ്രോക്സി പരിഹരിക്കുന്നതിൽ പരാജയപ്പെടുന്ന ഒരു അഭ്യർത്ഥനയാണ്** നിരസിച്ചു (പരാജയപ്പെട്ടു-അടച്ചത്)** നേരിട്ടുള്ള കണക്ഷനിലേക്ക് മടങ്ങുന്നതിന് പകരം — യഥാർത്ഥ-IP ചോർച്ച തടയുന്നു. ലെഗസി DIRECT ഫാൾബാക്ക് പുനഃസ്ഥാപിക്കാൻ `true` സജ്ജമാക്കുക. | | `ENABLE_TLS_FINGERPRINT` | `false` | `open-sse/executors` | wreq-js ഉപയോഗിച്ച് TLS ഫിംഗർപ്രിൻ്റ് സ്പൂഫ് ചെയ്യുക (Chrome 124 അനുകരിക്കുന്നു). കൗണ്ടറുകൾ JA3/JA4 തടയൽ. | | `TLS_FINGERPRINT_PROVIDERS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/utils/proxyFetch.ts` | പുതിയ പ്രോക്സിഡ് TLS റൂട്ടിംഗിനായുള്ള (`open-sse/utils/proxyFetch.ts`) കോമയാൽ വേർതിരിച്ച ദാതാവിൻ്റെ അനുവദനീയ പട്ടിക. സജ്ജീകരിക്കാത്തപ്പോൾ ഡയറക്ട് TLS അതിൻ്റെ ലെഗസി സ്വഭാവം നിലനിർത്തുന്നു; ഈ ദാതാക്കൾ മാത്രമാണ് Chrome-124 ഫിംഗർപ്രിൻ്റ് ബ്രിഡ്ജിലൂടെ സഞ്ചരിക്കുന്നത്. അനുവദനീയമായ പട്ടിക സജ്ജീകരിക്കാത്തപ്പോൾ പോലും Groq (`api.groq.com`) ഒഴിവാക്കപ്പെടും, കാരണം പ്രാദേശിക undici API യിൽ എത്തുമ്പോൾ Chrome JA3 Cloudflare 1010 ട്രിഗർ ചെയ്യുന്നു. | | `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | HTTPS സർട്ടിഫിക്കറ്റ് പിശകുകൾ അവഗണിക്കാൻ Claude Turnstile Playwright ബ്രൗസർ സന്ദർഭത്തെ അനുവദിക്കുക. | ### രംഗങ്ങൾ | രംഗം | കോൺഫിഗറേഷൻ | | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | **SSH ടണലിലൂടെSOCKS5** | `ALL_PROXY=socks5://127.0.0.1:7890`, `ENABLE_SOCKS5_PROXY=true` | | **കോർപ്പറേറ്റ് HTTP പ്രോക്സി** | `HTTP_PROXY=http://proxy.corp.com:3128`, `HTTPS_PROXY=http://proxy.corp.com:3128`, `NO_PROXY=localhost,internal.corp.com` | | **ആൻ്റി ഫിംഗർപ്രിൻ്റ്** | `ENABLE_TLS_FINGERPRINT=true` — `wreq-js` ആവശ്യമാണ് (ഉൾപ്പെട്ടിരിക്കുന്നു) | | **എക്സ്-നിയന്ത്രിത / നേരിട്ടുള്ള പ്രവേശനമില്ല** | `PROXY_FAIL_OPEN=false` വിടുക (സ്ഥിരസ്ഥിതി). നേരിട്ടുള്ള വഴി ചോരുന്നതിന് പകരം പ്രോക്സി ലഭ്യമല്ലാത്തപ്പോൾ അഭ്യർത്ഥനകൾ പരാജയപ്പെടുന്നു. | | **ലെഗസി / dev — നേരിട്ട് ഫാൾബാക്ക് അനുവദിക്കുന്നു** | `PROXY_FAIL_OPEN=true`. പ്രീ-ഹാർഡനിംഗ് പെരുമാറ്റം പുനഃസ്ഥാപിക്കുന്നു: പ്രോക്സി റെസല്യൂഷൻ പരാജയപ്പെടുമ്പോൾ നേരിട്ട് കണക്ഷൻ ഉപയോഗിക്കുന്നു. | > **കുറിപ്പ് (NVIDIA മൂല്യനിർണ്ണയം ബൈപാസ് — #3226):** ആഗോള proxy/TLS-patched ഫെച്ചിലൂടെ (undici dispatcher → 504) റൂട്ട് ചെയ്യുമ്പോൾ NVIDIA ൻ്റെ API-കീ മൂല്യനിർണ്ണയം എൻഡ്പോയിൻ്റ് സ്റ്റാളുകൾ. `src/lib/providers/validation.ts::directHttpsRequest()` മനപ്പൂർവ്വം `safeOutboundFetch({ bypassProxyPatch: true })` ഉപയോഗിച്ച് ആ ഒരു മൂല്യനിർണ്ണയ കോളിനായി പ്രോക്സി പാച്ച് മറികടക്കുന്നു. ഇത് ഡോക്യുമെൻ്റഡ്, സ്കോപ്പ്ഡ് എക്സപ്ഷൻ — ആണ്** അല്ല** chat/usage മുന്നേറ്റത്തെ ബാധിക്കും. ബൈപാസ് സ്കോപ്പ് പിൻ ചെയ്തിരിക്കുന്നത് `tests/unit/proxy-bypass-scope-guard-3226.test.ts` ആണ്. --- ## 9. CLI ടൂൾ ഇൻ്റഗ്രേഷൻ OmniRoute എങ്ങനെയാണ് CLI സൈഡ്കാറുകൾ (Claude കോഡ്, Codex മുതലായവ) കണ്ടെത്തുന്നതും സമാരംഭിക്കുന്നതും എന്നത് നിയന്ത്രിക്കുന്നു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | --------------------------------- | ------------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLI_MODE` | `auto` | `src/shared/services/cliRuntime.ts` | `auto` = തിരയൽ സിസ്റ്റം PATH; `manual` = വ്യക്തമായ പാതകൾ മാത്രം ഉപയോഗിക്കുക. | | `CLI_EXTRA_PATHS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/shared/services/cliRuntime.ts` | CLI ബൈനറി കണ്ടെത്തലിനുള്ള അധിക PATH എൻട്രികൾ (കോൺ-വേർതിരിക്കപ്പെട്ടത്). | | `CLI_CONFIG_HOME` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/shared/services/cliRuntime.ts` | CLI configs (`~/.claude`, `~/.codex`) വായിക്കുന്നതിനായി ഹോം ഡയറക്ടറി അസാധുവാക്കുക. സമ്പൂർണ്ണവും പ്രോസസ് ഹോം — ഉള്ളിലുമായിരിക്കണം** അല്ലെങ്കിൽ** , ഒരു കണ്ടെയ്നറിൽ, ഒരു ബൈൻഡ് മൗണ്ടഡ് പാത്ത് ( `/host-home` പ്രവർത്തിക്കുന്നത് ഇങ്ങനെയാണ്). മറ്റെന്തെങ്കിലും വീട്ടിലേക്ക് മടങ്ങുന്നു. | | `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | CLI കോൺഫിഗറേഷൻ ഫയലുകൾ എഴുതാൻ OmniRoute അനുവദിക്കുക (ടോക്കൺ പുതുക്കൽ, സെഷൻ ഡാറ്റ). എല്ലാ CLI കോൺഫിഗറേഷനും ഒരു വ്യക്തമായ "റൈറ്റ്സ് ഡിസേബിൾഡ്" പിശക് ഉപയോഗിച്ച് പരാജയപ്പെടുത്താൻ `false` ആയി സജ്ജമാക്കുക. | | `CLI_CLAUDE_BIN` | `claude` | `src/shared/services/cliRuntime.ts` | Claude CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_CODEX_BIN` | `codex` | `src/shared/services/cliRuntime.ts` | Codex CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_DROID_BIN` | `droid` | `src/shared/services/cliRuntime.ts` | Droid CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_OPENCLAW_BIN` | `openclaw` | `src/shared/services/cliRuntime.ts` | OpenClaw CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_CURSOR_BIN` | `agent`, പിന്നെ `cursor` | `src/shared/services/cliRuntime.ts` | Cursor ഏജൻ്റ് ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. ഇത് കൂടാതെ, കണ്ടെത്തൽ ആദ്യം `agent` പരീക്ഷിക്കുകയും `cursor` ലേക്ക് മടങ്ങുകയും ചെയ്യുന്നു. | | `CLI_CLINE_BIN` | `cline` | `src/shared/services/cliRuntime.ts` | Cline CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_5DIVE_BIN` | `5dive` | `src/shared/services/cliRuntime.ts` | 5dive CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_5DIVE_STATE_DIR` | `/var/lib/5dive` | `src/shared/services/cliRuntime.ts` | 5dive ൻ്റെ സിസ്റ്റം സ്റ്റേറ്റ് ദിർ (റൂട്ട് ഉടമസ്ഥതയിലുള്ള ഓത്ത് പ്രൊഫൈലുകൾ); 5dive-ൻ്റെ സ്വന്തം STATE_DIR ഡിഫോൾട്ട് മിറർ ചെയ്യുന്നു. | | `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | CLI ബൈനറി തുടരുന്നതിനുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_QODER_BIN` | `qodercli` | `src/shared/services/cliRuntime.ts` | Qoder CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_QWEN_BIN` | `qwen` | `src/shared/services/cliRuntime.ts` | Qwen കോഡ് CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_AIDER_BIN` | `aider` | `src/shared/services/cliRuntime.ts` | Aider CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_GOOSE_BIN` | `goose` | `src/shared/services/cliRuntime.ts` | Goose CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_WHYCODES_BIN` | `whycodes` | `src/shared/services/cliRuntime.ts` | WhyCodes CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Google Gemini CLI ബൈനറി — സെർവർ-സൈഡ് detection/health പരിശോധിക്കുന്നതിനുള്ള ഇഷ്ടാനുസൃത പാത; `omniroute run gemini` സിസ്റ്റത്തിൽ നിന്ന് `gemini` ബൈനറി പരിഹരിക്കുന്നു PATH | | `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | കിലോ കോഡ് CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_OPENCODE_BIN` | `opencode` | `src/shared/services/cliRuntime.ts` | OpenCode CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_HERMES_BIN` | `hermes` | `src/shared/services/cliRuntime.ts` | ഹെർമിസ് ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. രണ്ട് കാറ്റലോഗ് എൻട്രികളും പങ്കിട്ടു (`hermes`, `hermes-agent`). | | `CLI_FORGE_BIN` | `forge` | `src/shared/services/cliRuntime.ts` | ForgeCode CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_JCODE_BIN` | `jcode` | `src/shared/services/cliRuntime.ts` | jcode CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_DEEPSEEK_TUI_BIN` | `deepseek-tui` | `src/shared/services/cliRuntime.ts` | DeepSeek TUI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_CODEWHALE_BIN` | `codewhale` | `src/shared/services/cliRuntime.ts` | CodeWhale CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_SMELT_BIN` | `smelt` | `src/shared/services/cliRuntime.ts` | Smelt CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_PI_BIN` | `pi` | `src/shared/services/cliRuntime.ts` | പൈ (പൈ-കോഡിംഗ്-ഏജൻറ്) ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Crush CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | ഓ മൈ പൈ (`omp`) ഏജൻ്റ് ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Letta CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_PRIME_AGENT_BIN` | `prime-agent` | `src/shared/services/cliRuntime.ts` | പ്രൈം ഏജൻ്റ് (പ്രൈം ഇൻ്റലക്റ്റ്) ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLI_WINDSURF_BIN` | _(ഒന്നുമില്ല)_ | `src/shared/services/cliRuntime.ts` | Windsurf ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. Windsurf കപ്പലുകൾ** സ്ഥിരസ്ഥിതി കമാൻഡ് ഇല്ല** ഇത് സജ്ജീകരിക്കുന്നത് വരെ — ബൈനറി കണ്ടെത്തൽ പ്രവർത്തനരഹിതമായിരിക്കും. | | `CLI_DEVIN_BIN` | `devin` | `open-sse/executors/devin-cli.ts` | Devin CLI ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത (v3.8.0). Windsurf/Devin എക്സിക്യൂട്ടർ ഉപയോഗിക്കുന്നു. | | `DEVIN_DESKTOP_VERSION` | `3.6.27` | `open-sse/executors/devin-desktop.ts` | Devin ഡെസ്ക്ടോപ്പ് `ide_version`. ഓവർറൈഡുകൾ `x.y.z` ഫോർമാറ്റ് ഉപയോഗിക്കണം; അസാധുവായ മൂല്യങ്ങൾ പരിശോധിച്ച സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. | | `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | ബണ്ടിൽ ചെയ്ത Codeium/language-server `extension_version`, ഡെസ്ക്ടോപ്പ് `ide_version` ൽ നിന്ന് വ്യത്യസ്തമാണ്. അസാധുവാക്കലുകൾ `x.y.z` ഉപയോഗിക്കണം; അസാധുവായ മൂല്യങ്ങൾ ബണ്ടിൽ ചെയ്ത ഡിഫോൾട്ട് ഉപയോഗിക്കുന്നു. | | `CLI_DEVIN_AGENTIC_BIN` | `devin` | `open-sse/executors/devin-cli-agentic.ts` | ഏജൻ്റ് ബ്രിഡ്ജ്-മാത്രം Devin CLI ഓവർറൈഡ്. എക്സിക്യൂട്ടർ അപ്സ്ട്രീമിലെ ലോക്കൽ ACP stdio മാത്രമേ സ്വീകരിക്കുകയുള്ളൂ. | | `DEVIN_AGENTIC_HOME` | _(ആവശ്യമാണ്)_ | `open-sse/executors/devin-cli-agentic.ts` | agentic Devin ഉപപ്രോസസ്സിനുള്ള സമ്പൂർണ്ണ ഒറ്റപ്പെട്ട വീട്; അംഗീകൃത ബ്രിഡ്ജ് പാതകൾ `/home/bridge` ഉം ടാസ്ക്-ലോക്കൽ `.sandbox` പാതകളുമാണ് ( Windows, `C:\...\.sandbox\...` യിൽ). | | `DEVIN_AGENTIC_ACP_TIMEOUT_MS` | `120000` | `open-sse/executors/devin-cli-agentic.ts` | ഒരു Devin ACP ടേണിൻ്റെ പരമാവധി ദൈർഘ്യം പാലം കുട്ടിയെ അവസാനിപ്പിക്കുകയും വ്യക്തമായ സമയപരിധി നൽകുകയും ചെയ്യും. | | `DEVIN_BRIDGE_MODEL` | `devin-cli-agentic/swe-1-7` | `docker/devin-bridge/compose.yml` | ഒറ്റപ്പെട്ട പാലത്തിൻ്റെ പ്രധാന Claude കോഡ് മോഡൽ അപരനാമം. തത്സമയ ഹാർനെസ്, നിലവിലെ Devin അക്കൗണ്ട് നൽകുന്ന ഒരു മോഡൽ ഉപയോഗിച്ച് ഉദാഹരണത്തിന് പകരം വയ്ക്കുന്നു. | | `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude കോഡ് അതിൻ്റെ സോണറ്റ് ഡിഫോൾട്ട് ആവശ്യപ്പെടുമ്പോൾ ഉപയോഗിക്കപ്പെടുന്ന ഒറ്റപ്പെട്ട ബ്രിഡ്ജ് അപരനാമം. | | `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude കോഡ് ഓപസ് ഡിഫോൾട്ട് ആവശ്യപ്പെടുമ്പോൾ ഉപയോഗിക്കപ്പെടുന്ന ഒറ്റപ്പെട്ട ബ്രിഡ്ജ് അപരനാമം. | | `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude കോഡ് ഹൈക്കു ഡിഫോൾട്ട് ആവശ്യപ്പെടുമ്പോൾ ഉപയോഗിക്കപ്പെടുന്ന ഒറ്റപ്പെട്ട പാലം അപരനാമം. | | `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude കോഡ് ഉപഘടകങ്ങൾക്കായി ഉപയോഗിക്കുന്ന ഒറ്റപ്പെട്ട പാലം അപരനാമം. | | `DEVIN_SEAT_API_URL` | `https://server.codeium.com` | `open-sse/services/usage/devinCli.ts` | Devin CLI ക്വോട്ട (`GetUserStatus`) ഉപയോഗിക്കുന്ന Codeium സീറ്റ് മാനേജ്മെൻ്റ് API യ്ക്കുള്ള ഓപ്ഷണൽ ഓവർറൈഡ്. | | `AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | പ്രാദേശിക `auggie` ദാതാവ് ഉപയോഗിക്കുന്ന ഓഗ്മെൻ്റ് (Auggie) CLI ബൈനറിക്കുള്ള സമ്പൂർണ്ണ-പാത്ത് അസാധുവാക്കൽ. `CLI_AUGGIE_BIN` ലേക്ക് മടങ്ങുന്നു, തുടർന്ന് ഒരു PATH ലുക്ക്അപ്പ്. | | `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | ഓഗ്മെൻ്റ് (Auggie) CLI ബൈനറി പാതയുടെ അപരനാമം അസാധുവാക്കുന്നു ( `AUGGIE_BIN` ശേഷം പരിശോധിച്ചത്). | | `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | പ്രാദേശിക `zcode` ദാതാവിൻ്റെ stdio ക്ലയൻ്റിനായി ബൈനറി ഉപയോഗിക്കുന്നു. PATH യിൽ `zcode` യിലേക്ക് മടങ്ങുന്നു. | | `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | `cliTools` വഴി സമാരംഭിക്കുമ്പോൾ അധിക ആർഗ്യുമെൻ്റുകളുടെJSON അറേ (≤ 16 സ്ട്രിംഗുകൾ) `zcode` ബൈനറിയിലേക്ക് കൈമാറുന്നു. | | `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | ZCode ആപ്പ്-സെർവർ ഉപപ്രോസസിനായുള്ള വർക്കിംഗ് ഡയറക്ടറി. | | `ZCODE_TRANSPORT` | `app-server` | `open-sse/executors/zcode.ts` | `app-server` (സ്ഥിരസ്ഥിതി) അല്ലെങ്കിൽ `gateway`.** പരീക്ഷണാത്മകം / പിന്തുണയ്ക്കാത്തത്:** `gateway` നേരിട്ട് Z.AI കോഡിംഗ് പ്ലാൻ HTTP അഭ്യർത്ഥനകൾ ZCode ക്ലയൻ്റ് പ്രോട്ടോക്കോൾ പുനർനിർമ്മിച്ചുകൊണ്ട് അയയ്ക്കുന്നു (ക്ലയൻ്റ് 0.16.9-ൻ്റെ ഹാൻഡ്ഷേക്ക്, പ്രൂഫ്-ഓഫ്-വർക്ക് ഹെഡർ ഒപ്പിടൽ) കൂടാതെ ZCode അപ്ഡേറ്റുകൾ ചെയ്യുമ്പോൾ അത് തകരാറിലായേക്കാം. ഇത് വ്യക്തിഗത കോഡിംഗ് പ്ലാൻ പ്രൊഫൈൽ മാത്രമേ സ്വീകരിക്കുകയുള്ളൂ. | | `ZCODE_PROVIDER_ID` | `account:zai-individual-coding-plan` | `open-sse/executors/zcode.ts` | മോഡൽ തിരഞ്ഞെടുക്കുന്നതിനുള്ള കൃത്യമായ നേറ്റീവ് പ്രൊവൈഡർ പ്രൊഫൈൽ. സജ്ജീകരിക്കാത്തപ്പോൾ, വ്യക്തിഗത പ്ലാൻ അക്കൗണ്ട് പ്രൊഫൈൽ ഉപയോഗിക്കുന്നു, അത് `builtin:zai-coding-plan` ലേക്ക് (വ്യക്തിഗത കോഡിംഗ് പ്ലാൻ കീ കൈവശമുള്ള കോൺഫിഗറേഷൻ എൻട്രി) തിരികെ വരും. ആ പ്രൊഫൈൽ പിൻ ചെയ്യാൻ `account:zai-start-plan` പോലെ ഒരു കൃത്യമായ ID സജ്ജമാക്കുക; പിൻ ചെയ്ത പ്രൊഫൈൽ ഒരിക്കലും തിരികെ വരില്ല. | | `ZCODE_SERVER_RUNTIME_ROOT` | `~/.zcode/server` | `open-sse/executors/zcode.ts` | ZCode ആപ്പ്-സെർവർ റൺടൈമിൻ്റെ റൂട്ട് (ബണ്ടിൽ ചെയ്ത `node`, `zcode-server.cjs` എന്നിവ താമസിക്കുന്നിടത്ത്). | | `ZCODE_SERVER_NODE` | `/node` | `open-sse/executors/zcode.ts` | ZCode ആപ്പ്-സെർവർ ഹോസ്റ്റുചെയ്യാൻ നോഡ് എക്സിക്യൂട്ടബിൾ ഉപയോഗിക്കുന്നു. | | `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | ZCode സെർവർ ഹോസ്റ്റുചെയ്യാൻ ഉപയോഗിക്കുന്ന ആപ്പ്-സെർവർ എൻട്രി സ്ക്രിപ്റ്റ്. | | `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | ഒരു ZCode ആപ്പ്-സെർവർ സമാരംഭിക്കുന്നതിന് മുമ്പുള്ള സ്റ്റാർട്ടപ്പ് ടൈംഔട്ട് (മി.സെ) പരാജയപ്പെട്ടതായി കണക്കാക്കുന്നു. | | `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | ഒരു ZCode ആപ്പ്-സെർവർ കോളിനായി ഓരോ അഭ്യർത്ഥനയും RPC ടൈംഔട്ട് (മി.എസ്). | | `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | സൂപ്പർവൈസർ സമയത്തിന് മുമ്പ് ഒരു ZCode ടേണിൻ്റെ പരമാവധി ദൈർഘ്യം (മി.സെ.). | | `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | ZCode ടേൺ പൂർത്തിയാക്കുന്നതിനുള്ള പോളിംഗ് ഇടവേള (മി.സെ.). | | `MINIMAX_CODE_GATEWAY_URL` | `https://agent.minimax.io/mavis/api/v1/llm/v1/messages` | `open-sse/executors/minimaxCodeGateway.ts` | നേറ്റീവ് ടൂൾ കോളുകൾ ഉപയോഗിച്ച് ഉത്തരം നൽകുന്ന നിയന്ത്രിത MiniMax ഗേറ്റ്വേയുടെ അവസാന പോയിൻ്റ്. ഇത് MiniMax കോഡ് ആപ്പിൻ്റെ ആന്തരിക എൻഡ്പോയിൻ്റാണ്, ഒരു ഡോക്യുമെൻ്റഡ് പബ്ലിക് API അല്ല: ഇത് അറിയിപ്പ് കൂടാതെ മാറ്റാൻ കഴിയും, തുടർന്ന് ഗതാഗതത്തിന് പേരിടുന്ന 502 ഉപയോഗിച്ച് അഭ്യർത്ഥന പരാജയപ്പെടുന്നു. | | `MINIMAX_CODE_GATEWAY_TIMEOUT_MS` | `60000` | `open-sse/executors/minimax-code.ts` | ഒരു നിയന്ത്രിത ഗേറ്റ്വേ ശ്രമത്തിൻ്റെ പരമാവധി ദൈർഘ്യം (മി.സെ.). മുഴുവൻ കോളും (ശ്രമം, ബാക്ക്ഓഫ്, ഒരു വീണ്ടും ശ്രമം) ഏകദേശം രണ്ട് മിനിറ്റ് നിലനിൽക്കും, അതിനാൽ എത്തിച്ചേരാനാകാത്ത ഒരു ഗേറ്റ്വേയ്ക്ക് ഒരു മോഡൽ സ്ലോട്ട് ദീർഘനേരം നിലനിർത്താൻ കഴിയില്ല. | | `MINIMAX_CODE_GATEWAY_RETRIES` | `1` | `open-sse/executors/minimaxCodeGateway.ts` | ഒരു ക്ഷണികമായ പിശക് (429, 5xx, ഡ്രോപ്പ് ചെയ്ത കണക്ഷൻ) പരാജയപ്പെടുന്ന നിയന്ത്രിത ഗേറ്റ്വേ കോളിൻ്റെ വീണ്ടും ശ്രമങ്ങൾ. | | `MINIMAX_CODE_CONTEXT_WINDOW` | `1000000` | `open-sse/executors/minimaxCodeGateway.ts` | നിയന്ത്രിത MiniMax ഗേറ്റ്വേ കോൺടെക്സ്റ്റ് വിൻഡോ ആവശ്യപ്പെടുന്നു. MiniMax കോഡ് ഉൽപ്പന്നത്തിൻ്റെ മോഡൽ കാറ്റലോഗ് MiniMax-M3, MiniMax-M3.1-Flash എന്നിവയുടെ സ്ഥിരസ്ഥിതി വിൻഡോയായി 512000 പ്രഖ്യാപിക്കുകയും രണ്ടാമത്തേത് 1000000 നൽകുകയും ചെയ്യുന്നു; വലിയ വിൻഡോയിൽ ഗേറ്റ്വേ ഉത്തരം നൽകുന്നു (1024056 ഇൻപുട്ട് ടോക്കണുകളുടെ അഭ്യർത്ഥന 2026-10-23-ന് 200 ഉപയോഗിച്ച് ഉത്തരം നൽകി). അഭ്യർത്ഥന — കുറയ്ക്കുന്നതിന് ഇത് 512000 ആയി സജ്ജീകരിക്കുക. മറ്റെല്ലാ മൂല്യങ്ങളും അവഗണിക്കപ്പെടുന്നു, അതിനാൽ ഒരു അക്ഷരത്തെറ്റിന് മോഡലിന് ഇല്ലാത്ത വിൻഡോ ആവശ്യപ്പെടാൻ കഴിയില്ല. | | `MINIMAX_CODE_MAX_INPUT_TOKENS` | `1000000` | `open-sse/executors/minimaxCodeGateway.ts` | നിയന്ത്രിത MiniMax ഗേറ്റ്വേയിലേക്ക് അയച്ച ഒരു അഭ്യർത്ഥനയുടെ സീലിംഗ് (ഇൻപുട്ട് ടോക്കണുകളിൽ). ഫോർവേഡ് ചെയ്യുന്നതിനുപകരം 413 ഉപയോഗിച്ച് പ്രാദേശികമായി ഒരു വലിയ അഭ്യർത്ഥന നിരസിക്കപ്പെട്ടു, കാരണം ഗേറ്റ്വേ നിരസിക്കുന്നത് മോഡലിനെ ഫാൾബാക്കുകളിൽ നിന്ന് പൂട്ടുന്നു. ഗേറ്റ്വേയുടെ സന്ദർഭ വിൻഡോയാണ് സ്ഥിരസ്ഥിതി (1000000); ഈ മൂല്യത്തിന് ആ പരിധി താഴ്ത്താൻ കഴിയും, അത് ഒരിക്കലും വിൻഡോയ്ക്ക് മുകളിൽ ഉയർത്തരുത്. | | `MINIMAX_CODE_MAX_TOKENS` | `8192` | `open-sse/executors/minimaxCodeGateway.ts` | നിയന്ത്രിത ഗേറ്റ്വേ ഉത്തരം നൽകിയേക്കാവുന്ന പരമാവധി എണ്ണം ടോക്കണുകൾ. | | `MINIMAX_CODE_AUTH_FILE` | `~/.minimax/auth/prod//mcode-public/auth.json` | `open-sse/executors/minimaxCodeGateway.ts` | പ്രവേശനവും പുതുക്കിയ ടോക്കണും കൈവശം വച്ചിരിക്കുന്ന MiniMax കോഡ് ഓത്ത് പ്രൊഫൈലിൻ്റെ പാത. | | `MINIMAX_CODE_PROFILE_DIR` | `~/.minimax` | `open-sse/executors/minimaxCodeGateway.ts` | ഓത്ത് പ്രൊഫൈൽ കൈവശമുള്ള MiniMax കോഡ് പ്രൊഫൈലിൻ്റെ ഡയറക്ടറി. | | `MINIMAX_CODE_AUTH_RECORD` | _(പുതിയ തലമുറ)_ | `open-sse/executors/minimaxCodeGateway.ts` | നിരവധി അക്കൗണ്ടുകൾ ഉള്ളപ്പോൾ ഉപയോഗിക്കേണ്ട പ്രൊഫൈലിൻ്റെ റെക്കോർഡ്. Empty ഏറ്റവും പുതിയ തലമുറയെ തിരഞ്ഞെടുക്കുന്നു, അത് CLI തന്നെ പുതുക്കുന്നു. | | `MINIMAX_CODE_REGION` | `en` | `open-sse/executors/minimaxCodeGateway.ts` | MiniMax അക്കൗണ്ടിൻ്റെ പ്രദേശം. ഇത് ടോക്കണും ക്രെഡൻഷ്യൽ വായിച്ച പ്രൊഫൈൽ ഡയറക്ടറിയും പുതുക്കുന്ന അക്കൗണ്ട് എൻഡ്പോയിൻ്റ് തീരുമാനിക്കുന്നു. | | `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | OmniRoute reads/writes the Hermes CLI കോൺഫിഗറായ ഹെർമിസ് ഏജൻ്റ് ഹോം ഡയറക്ടറി. Windows (`%LOCALAPPDATA%\hermes`)-ലെ env var the Hermes PowerShell ഇൻസ്റ്റാളർ സെറ്റുകളുമായി പൊരുത്തപ്പെടുന്നു. | | `WHYCODES_HOME` | `~/.whycodes` | `src/lib/cli-helper/config-generator/whycodesHome.ts` | WhyCodes ഉദാഹരണ റൂട്ട് എവിടെ OmniRoute reads/writes `config.toml`. അതേ env var WhyCodes വായിക്കുന്നു; `~/.whycodes` ലേക്കുള്ള ഡിഫോൾട്ടുകൾ (`%USERPROFILE%\.whycodes` ൽ Windows). | ### CLI പ്രൊഫൈൽ യാന്ത്രിക സമന്വയം ഈ ഫീച്ചർ ഫ്ലാഗുകൾ ഓപ്റ്റ്-ഇൻ, ഡിഫോൾട്ട് ഓഫ് ആണ്. അവ CLI കോഡ് ഡാഷ്ബോർഡിൽ നിന്നും ടോഗിൾ ചെയ്യാനും കഴിയും. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------- | ----------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ഒരു പ്രൊവൈഡർ മോഡൽ സമന്വയത്തിന് ശേഷം, തത്സമയ കാറ്റലോഗിൽ നിന്ന് സ്വയമേവ `~/.codex/*.config.toml` പ്രൊഫൈൽ ഫയലുകൾ മാറ്റിയെഴുതുന്നു. `CLI_ALLOW_CONFIG_WRITES` ആവശ്യമാണ്; active/default Codex config, auth, Codex-lb ക്രമീകരണങ്ങൾ, അല്ലെങ്കിൽ ദാതാവിൻ്റെ തിരഞ്ഞെടുപ്പ് എന്നിവ ഒരിക്കലും മാറ്റരുത്. | | `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ഒരു പ്രൊവൈഡർ മോഡൽ സമന്വയത്തിന് ശേഷം, തത്സമയ കാറ്റലോഗിൽ നിന്ന് സ്വയമേവ `~/.claude/profiles//settings.json` Claude കോഡ് പ്രൊഫൈൽ ഫയലുകൾ മാറ്റിയെഴുതുന്നു. `CLI_ALLOW_CONFIG_WRITES` ആവശ്യമാണ്; active/default Claude കോൺഫിഗേഷനോ ഓത്ത് അല്ലെങ്കിൽ പ്രൊവൈഡർ ചോയിസോ ഒരിക്കലും മാറ്റരുത്. | ### Docker ഉദാഹരണം ```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` only takes effect when the path is actually bind-mounted from the host — pair it with mounts like `~/.codex:/host-home/.codex:rw` (see the `host` profile in `docker-compose.yml`). A path that is neither inside the container user's home nor a bind mount is ignored, because writing there would be discarded when the container is recreated. ചിത്രം `USER node` ആയി പ്രവർത്തിക്കുന്നു, അതിനാൽ ഒരു unmounted `/root` ആണ്** അല്ല** സാധുവായ ഒരു അസാധുവാക്കൽ. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------------------- | ----------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CONTAINER` | _(ഓട്ടോ)_ | `src/shared/utils/containerEnv.ts` | കണ്ടെയ്നർ കണ്ടെത്തൽ നിർബന്ധമാക്കുക (`1`/`true`) അല്ലെങ്കിൽ ഓഫ് (`0`/`false`). റൺടൈമിൽ മാത്രം ആവശ്യമാണ് യാന്ത്രിക-കണ്ടെത്തൽ നഷ്ടപ്പെടുന്നത്. | | `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | എന്തായാലും ഒരു അൺമൗണ്ട് ചെയ്ത കണ്ടെയ്നർ പാതയിലേക്ക് CLI-ടൂൾ കോൺഫിഗറേഷൻ റൈറ്റുകളെ അനുവദിക്കുക. CLI തുല്യമായത് `--allow-container-write` ആണ്. | | `DOCKER_UPDATE_TRIGGER_FILE` | സജ്ജീകരിക്കാത്തത് | `src/lib/system/autoUpdate.ts` | Docker ചിത്രം മാത്രം: ഡാഷ്ബോർഡ്** ഇപ്പോൾ അപ്ഡേറ്റ് ചെയ്യുക** കണ്ടെയ്നർ വലിക്കാനും പുനഃസൃഷ്ടിക്കാനും ഒരു ഹോസ്റ്റ്-സൈഡ് വാച്ചർക്കായി ഈ ഫയലിലേക്ക് ( `DATA_DIR` ഉള്ളിലായിരിക്കണം) ഒരു JSON അഭ്യർത്ഥന എഴുതുന്നു. [Docker ഗൈഡ്](../guides/DOCKER_GUIDE.md#dashboard-updates-in-docker) കാണുക. | ### CLI ബൈനറി (`omniroute`) സഹായികൾ ഈ വേരിയബിളുകൾ `omniroute` CLI ബൈനറിയുടെ സ്വന്തം പെരുമാറ്റം ട്യൂൺ ചെയ്യുന്നു (മുകളിലുള്ള സൈഡ്കാർ ഡിറ്റക്ഷൻ അല്ല). | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_LANG` | _(സിസ്റ്റം)_ | `bin/cli/i18n.mjs` | CLI ഔട്ട്പുട്ട് ഭാഷ നിർബന്ധമാക്കുക. BCP-47 ലൊക്കേൽ (ഉദാ `en`, `pt-BR`). സിസ്റ്റം ലോക്കേൽ env vars (LC_ALL, LC_MESSAGES) അസാധുവാക്കുന്നു. | | `OMNIROUTE_SHOW_LOG` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/runtime/processSupervisor.mjs` | സൂപ്പർവൈസ് ചെയ്ത മോഡിൽ സെർവർ stdout/stderr ടെർമിനലിലേക്ക് കൈമാറാൻ `1` ആയി സജ്ജീകരിക്കുക. `omniroute serve` യിലെ `--log` ഫ്ലാഗിന് തുല്യമാണ്. | | `OMNIROUTE_CLI_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/api.mjs` | മെഷീൻ-ഓത്ത് ടോക്കൺ `x-omniroute-cli-token` ഹെഡറായി കുത്തിവച്ചു. ടാസ്ക് 8.12-ൽ സ്വയമേവ സൃഷ്ടിച്ചത്. | | `GEMINI_CLI_HOME` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/commands/setup-gemini.mjs` | സ്ഥിരമായ Gemini ഹോം റൂട്ട്; ഒറ്റത്തവണ ഓട്ടം ഒരു താൽക്കാലിക ഒറ്റപ്പെട്ട വീട് ഉപയോഗിക്കുന്നു. | | `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | സിഗ്നൽ നൽകിയ CLI കുട്ടിയെ ബലപ്രയോഗത്തിലൂടെ കൊല്ലുന്നതിന് മുമ്പ് മില്ലിസെക്കൻഡിൽ ഗ്രേസ് പിരീഡ്. | | `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/omniroute.mjs` | സ്ഥിരസ്ഥിതി ഉപയോക്താവിൻ്റെ ഡാറ്റ-ഡയറക്ടറി എൻവയോൺമെൻ്റ് ഫയൽ ഒഴിവാക്കുന്നതിന് വ്യക്തമായ DATA_DIR ഉപയോഗിച്ച് 1 ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_SYNC_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/commands/sync.mjs` | `omniroute sync bundle` സമന്വയ ടോക്കൺ (`GET /api/sync/bundle` ഒരു സമന്വയ ടോക്കൺ മാത്രമേ സ്വീകരിക്കൂ, ഒരു API കീ അല്ല). `--token` ന് തുല്യമാണ്. | | `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → സെർവർ അഭ്യർത്ഥനകൾക്കായുള്ള ഓരോ ശ്രമത്തിനും HTTP കാലഹരണപ്പെടൽ (മി.എസ്). | | `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | പരമാവധി സമയം (മി.സെ.) ടൈംഔട്ട് മുന്നറിയിപ്പ് അച്ചടിക്കുന്നതിന് മുമ്പ് സെർവർ ഹെൽത്ത് എൻഡ് പോയിൻ്റിനായി CLI കാത്തിരിക്കുന്നു. സാവധാനത്തിലുള്ള തണുപ്പ് ആരംഭിക്കുന്നതിന് ഉപയോഗപ്രദമാണ് (ഉദാ Windows). `--ready-timeout` വഴിയും സെറ്റിൽ ചെയ്യാവുന്നതാണ്. | | `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI കമാൻഡുകൾ സമയത്ത് stderr-ലേക്ക് retry/backoff ഡയഗ്നോസ്റ്റിക്സ് പ്രിൻ്റ് ചെയ്യാൻ `1` ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_PLUGIN_PATH` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/plugins.mjs` | CLI പ്ലഗിൻ കണ്ടെത്തലിനുള്ള ഇഷ്ടാനുസൃത ഡയറക്ടറി (`omniroute-cmd-*` പാക്കേജുകൾ). സജ്ജീകരിക്കാത്തപ്പോൾ `~/.omniroute/plugins/` യിലേക്ക് ഡിഫോൾട്ടുകൾ. CLI-മാത്രം — ഇത് ഒരിക്കലും സെർവർ സൈഡ് പ്ലഗിൻ സ്കാനറിൽ എത്തില്ല, അത് `OMNIROUTE_PLUGINS_DIR` (വിഭാഗം 2) ചൂണ്ടിക്കാണിക്കുന്നു. | | `OMNIROUTE_NO_UPDATE_NOTIFIER` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/omniroute.mjs` | ശൂന്യമല്ലാത്ത ഏതെങ്കിലും മൂല്യത്തിലേക്ക് സജ്ജീകരിക്കുമ്പോൾ അപ്ഡേറ്റ് പരിശോധനകൾ അടിച്ചമർത്തുക: പ്രോസസ്സ് എക്സിറ്റിലെ CLI അറിയിപ്പും ഡാഷ്ബോർഡ് "അപ്ഡേറ്റ് ലഭ്യം" ബാനറും (`GET /api/system/version` തുടർന്ന് npm, GitHub, വാർത്താ ലുക്കപ്പുകൾ എന്നിവ ഒഴിവാക്കുന്നു). CI, നിശബ്ദ മോഡ്, നോൺ-ടെക്സ്റ്റ് ഔട്ട്പുട്ട് എന്നിവയിലും CLI അറിയിപ്പ് ഓഫായിരിക്കും. | | `OMNIROUTE_DOCTOR_LIVENESS_URL` | _(ഉത്ഭവിച്ചത്)_ | `bin/cli/commands/doctor.mjs` | ലൈവ്നെസ് URL `omniroute doctor` പരിശോധിച്ചു. ഒരു പ്രോഗ്രമാറ്റിക് `livenessUrl` ഓപ്ഷൻ മുൻഗണന നൽകുന്നു; അല്ലെങ്കിൽ ഈ മൂല്യം പദാനുപദമായി ഉപയോഗിക്കുന്നു. സജ്ജീകരിച്ചിട്ടില്ല, CLI പ്രാദേശിക ഡാഷ്ബോർഡിൻ്റെ `/api/health/degradation` എൻഡ്പോയിൻ്റ് ലഭിക്കുന്നു. | | `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | CLI പ്രൊവൈഡർ കമാൻഡുകൾ ഉപയോഗിക്കുന്ന പ്രൊവൈഡർ കാറ്റലോഗ് പാത്ത്. ഒരു പ്രോഗ്രമാറ്റിക് `catalogPath` ഓപ്ഷൻ മുൻഗണന നൽകുന്നു. സമ്പൂർണ്ണ പാതകൾ അതേപടി ഉപയോഗിക്കുന്നു; ആപേക്ഷിക പാതകൾ പ്രോജക്റ്റ് റൂട്ടിൽ നിന്ന് പരിഹരിക്കുന്നു. സജ്ജീകരിച്ചിട്ടില്ലാത്തതിനാൽ, ലെഗസി `providers.ts` ഫയൽ ഫാൾബാക്ക് ആയി CLI പ്രൊവൈഡർ കോൺസ്റ്റൻ്റ്സ് ഡയറക്ടറി ഉപയോഗിക്കുന്നു. | | `OMNIROUTE_PROVIDER_TEST_MODEL` | _(ദാതാവിൻ്റെ സ്ഥിരസ്ഥിതി)_ | `bin/cli/provider-test.mjs` | CLI പ്രൊവൈഡർ കണക്ഷൻ ടെസ്റ്റുകൾക്കായുള്ള ഗ്ലോബൽ ഫാൾബാക്ക് മോഡൽ. കോൺഫിഗർ ചെയ്ത കണക്ഷൻ മോഡൽ, പ്രൊവൈഡർ-നിർദ്ദിഷ്ട മോഡൽ അസാധുവാക്കൽ, ഈ മൂല്യം, തുടർന്ന് ദാതാവിൻ്റെ ബിൽറ്റ്-ഇൻ ടെസ്റ്റ് മോഡൽ എന്നിവയാണ് മുൻഗണന. | --- ## 10. ആന്തരിക ഏജൻ്റ് & MCP സംയോജനങ്ങൾ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_BASE_URL` | യാന്ത്രികമായി കണ്ടുപിടിക്കുക | `open-sse/mcp-server/server.ts` | OmniRoute എത്താൻ MCP/A2A ടൂളുകൾക്കുള്ള വ്യക്തമായ URL. ലോക്കൽഹോസ്റ്റ് സ്വയമേവ കണ്ടെത്തൽ അസാധുവാക്കുന്നു. ഒരു പൊതു വിലാസത്തിലേക്കോ ഡോട്ട് ഇട്ട പൊതു ഹോസ്റ്റ്നാമത്തിലേക്കോ ക്ലൗഡ്-മെറ്റാഡാറ്റ ഹോസ്റ്റിലേക്കോ ക്രെഡൻഷ്യലുകൾ കൈവശം വച്ചിരിക്കുമ്പോഴോ ഈ URL ലേക്ക് (അല്ലെങ്കിൽ അത് തിരികെ വരുന്ന `BASE_URL` ) ഒരു API കീ അയയ്ക്കുന്നതിന് പകരം A2A കഴിവുകൾ പരാജയപ്പെടുന്നു: https, അല്ലെങ്കിൽ http ലൂപ്പ്ബാക്ക്, ഒരു കണ്ടെയ്നർ അല്ലെങ്കിൽ സേവന നാമം, അല്ലെങ്കിൽ ഒരു സ്വകാര്യ വിലാസം എന്നിവ ഉപയോഗിക്കുക. | | `OMNIROUTE_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | MCP/A2A മൊഡ്യൂളുകൾ | ആന്തരിക MCP ടൂൾ കോളുകൾക്കുള്ള API കീ. A2A വൈദഗ്ദ്ധ്യം ഒരു API കീ (ഡാഷ്ബോർഡ് സെഷൻ) ഇല്ലാതെ ഒരു കോളർക്കായി മാത്രം അയയ്ക്കുന്നു; ഒരു താക്കോലുള്ള ഒരു കോളർ സ്വന്തമായി പ്രവർത്തിക്കുന്നു. | | `OMNIROUTE_API_KEY_ID` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/mcp-server/audit.ts` | MCP ഓഡിറ്റ് ലോഗ് ആട്രിബ്യൂഷനുള്ള കീ ID. | | `ROUTER_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | പാരമ്പര്യം | `OMNIROUTE_API_KEY` യുടെ ലെഗസി അപരനാമം. | | `OMNIROUTE_A2A_HISTORY_RETENTION_DAYS` | `30` | `src/lib/a2a/taskManager.ts` | ദിവസേനയുള്ള ശുദ്ധീകരണം ഒരു വരി ഇല്ലാതാക്കുന്നതിന് മുമ്പ് പ്രാദേശിക ഡാറ്റാബേസിൽ സൂക്ഷിച്ചിരിക്കുന്ന A2A ടാസ്ക് ചരിത്രത്തിൻ്റെ ദിവസങ്ങൾ. സജ്ജീകരിക്കാത്തതോ, അക്കമില്ലാത്തതോ, അല്ലെങ്കിൽ `<= 0` `30` ലേക്ക് മടങ്ങുന്നു. | | `OMNIROUTE_A2A_MEMORY_HITS` | `1` | `src/lib/a2a/taskExecution.ts` | A2A മെമ്മറി ഹിറ്റ്സ് ഒബ്സർബിലിറ്റി ഫീച്ചറിനായുള്ള കിൽ-സ്വിച്ച്. ഒരു ടാസ്ക്കിനായി മെമ്മറി റീകോൾ ലുക്ക്അപ്പ് പൂർണ്ണമായും ഒഴിവാക്കുന്നതിന് `0` ആയി സജ്ജമാക്കുക; മറ്റേതെങ്കിലും മൂല്യം (സജ്ജീകരിക്കാത്തത് ഉൾപ്പെടെ) അത് പ്രവർത്തനക്ഷമമാക്കി നിലനിർത്തുന്നു. | | `OMNIROUTE_ISSUE_AGENT_ENABLED` | `false` | `src/app/api/issue-agent/runs/route.ts` | offline/local ഇഷ്യൂ ഏജൻ്റ് റെക്കോർഡ് ചെയ്ത ട്രയേജ് എൻഡ്പോയിൻ്റ് പ്രവർത്തനക്ഷമമാക്കുന്നു. പ്രാദേശിക റെക്കോർഡ് ചെയ്ത ട്രയേജ് വർക്ക്ഫ്ലോകൾ വ്യക്തമായി പ്രവർത്തിപ്പിക്കുന്നില്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കുക. | | `OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/issueAgent/execution.ts` | ഒരൊറ്റ ഇഷ്യൂ ഏജൻ്റ് റെക്കോർഡ് ചെയ്ത ട്രയേജ് റണ്ണിനുള്ള സമയപരിധി (മി.സെ.). ആന്തരിക മാക്സിമം മുറുകെപ്പിടിക്കുന്നു; സജ്ജീകരിക്കാതിരിക്കുമ്പോഴോ അസാധുവാകുമ്പോഴോ ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. | | `OMNIROUTE_CONTEXT` | _(സജീവ സന്ദർഭം)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | `omniroute` കമാൻഡുകൾക്കായിCLI റിമോട്ട് മോഡ് context/profile ; പ്രാദേശിക സന്ദർഭ സ്റ്റോറിലെ സജീവ സന്ദർഭത്തെ അസാധുവാക്കുന്നു. `--context ` ന് തുല്യമാണ്. | | `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | CLI സന്ദർഭ ക്രെഡൻഷ്യലുകൾക്കായി ഓപ്ഷണൽ `keytar` OS-കീചെയിൻ ബാക്കെൻഡ് പ്രവർത്തനരഹിതമാക്കുക. പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ, ക്രെഡൻഷ്യലുകൾ `config.json` മോഡ് `0600` ൽ നിലനിൽക്കുകയും CLI ഒറ്റത്തവണ ഫോൾബാക്ക് മുന്നറിയിപ്പ് പുറപ്പെടുവിക്കുകയും ചെയ്യുന്നു; ബോധപൂർവമായ headless/container പ്രവർത്തനത്തിന് ഉദ്ദേശിച്ചുള്ളതാണ്. | | `OMNIROUTE_MCP_ENFORCE_SCOPES` | `false` | `open-sse/mcp-server/server.ts` | MCP ടൂൾ കോളുകളിൽ സ്കോപ്പ് അധിഷ്ഠിത ആക്സസ് നിയന്ത്രണം നടപ്പിലാക്കുക. | | `OMNIROUTE_MCP_SCOPES` | _(എല്ലാം)_ | `open-sse/mcp-server/server.ts` | കോമയാൽ വേർതിരിച്ച സ്കോപ്പുകൾ: `admin`, `combos`, `health`, `models`, `routing`, `budget`, `metrics`, `pricing`, `memory`, `skills`. | | `OMNIROUTE_PPLX_RESEARCH_ENABLED` | `0` | `open-sse/mcp-server/tools/perplexityResearch.ts` | Perplexity Deep Research MCP ടൂൾ രജിസ്റ്റർ ചെയ്യുക. `1` മാത്രമേ ഇത് രജിസ്റ്റർ ചെയ്യുന്നുള്ളൂ; മറ്റെന്തെങ്കിലും അത് ഉപേക്ഷിക്കുന്നു. | | `OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS` | `false` | `open-sse/mcp-server/descriptionCompressor.ts` | മാനിഫെസ്റ്റ് പരമ്പരയാക്കുന്നതിന് മുമ്പ് MCP ടൂൾ വിവരണങ്ങൾ കംപ്രസ് ചെയ്യുക. മൂല്യങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുക: `1`, `true`, `on`. | | `OMNIROUTE_MCP_DESCRIPTION_COMPRESSION` | `rtk` | `open-sse/mcp-server/descriptionCompressor.ts` | കംപ്രഷൻ algorithm/profile. മൂല്യങ്ങൾ പ്രവർത്തനരഹിതമാക്കുക: `0`, `false`, `off`. | | `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | MCP-സെർവർ ഇൻ്റേണൽ മാനേജ്മെൻ്റ് റീഡുകളുടെ (ആരോഗ്യം, പ്രതിരോധശേഷി, കോമ്പോസ്, ക്വാട്ട, ഉപയോഗം) ബജറ്റ് (മിഎസ്) ഉപേക്ഷിക്കുക. | | `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | ഒരു ദാതാവിൽ (`route_request`, `web_search`, `web_fetch`) കാത്തിരിക്കുന്ന MCP ഹോപ്സിനായുള്ള ബജറ്റ് (മി.സെ) ഉപേക്ഷിക്കുക. | | `OMNIROUTE_MCP_SESSION_IDLE_MS` | `300000` | `open-sse/mcp-server/httpTransport.ts` | സ്വീപ്പിന് മുമ്പുള്ള നിഷ്ക്രിയ TTL (മി.സെ) നിഷ്ക്രിയമായ MCP സ്ട്രീം ചെയ്യാവുന്ന സെഷൻ കൊയ്യുന്നു. ഒരു ഓപ്പൺ സ്ട്രീം അല്ലെങ്കിൽ ഇൻ-ഫ്ലൈറ്റ് അഭ്യർത്ഥനയുള്ള ഒരു സെഷൻ ഒരിക്കലും കൊയ്യില്ല. സജ്ജീകരിക്കാത്തതോ പൂർണ്ണസംഖ്യ അല്ലാത്തതോ പോസിറ്റീവ് അല്ലാത്തതോ ആയ മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | `src/lib/localCorpus/configured.ts` | മെമ്മറിയിൽ കാഷെ ചെയ്ത ലോക്കൽ-കോർപ്പസ് ഇൻഡക്സ് ഇൻസ്റ്റൻസുകളുടെ പരമാവധി എണ്ണം (LRU, ഓരോ ഇൻഡക്സ് ചെയ്ത റൂട്ട് ഡയറക്ടറിയിലും ഒന്ന്). ഏറ്റവും കുറഞ്ഞത് `1` വരെ ഉറപ്പിച്ചു. | | `MODEL_SYNC_INTERVAL_HOURS` | `6` | `src/shared/services/modelSyncScheduler.ts` | മണിക്കൂറുകൾക്കുള്ളിൽ മോഡൽ കാറ്റലോഗ് സമന്വയ ഇടവേള. | | `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | `src/lib/usage/providerLimits.ts` | ദാതാവിൻ്റെ നിരക്ക്-പരിധിയും ക്വാട്ട പോളിംഗ് ഇടവേളയും. | | `PROVIDER_LIMITS_SYNC_SPACING_MS` | `1500` | `src/lib/usage/providerLimits.ts` | തുടർച്ചയായ OAuth ക്വാട്ടയ്ക്കിടയിലുള്ള വിടവ് (മിസെ) ഒരു ബൾക്ക് സമന്വയത്തിൽ ലഭിക്കും; ഒരു അപ്സ്ട്രീം പൊട്ടിത്തെറിക്കാതിരിക്കാൻ OAuth കണക്ഷനുകൾ ഓരോന്നായി ലഭ്യമാക്കുന്നു. `0` ഒഴിവാക്കുന്നു (ഒരേസമയം). | | `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | ഓരോ-അഭ്യർത്ഥന preflight/monitor പാതയിൽ തുടർച്ചയായ അപ്സ്ട്രീം ക്വാട്ട ലഭ്യമാക്കുന്നതിനുള്ള കുറഞ്ഞ ഇടവേള (മി.സെ.); സ്പെയ്സ് കൺകറൻ്റ് നെറ്റ്വർക്ക് കോളുകൾ ഒരു IP ലെ നിരവധി അക്കൗണ്ടുകൾ അപ്സ്ട്രീമിൽ പൊട്ടിത്തെറിക്കരുത്. Codex (`/wham/usage`), DeepSeek, Bailian (രണ്ടും ലഭ്യമാക്കുന്ന സൈറ്റുകൾ), OpenCode, ക്രോഫ് ക്വാട്ട ഫെച്ചറുകൾ (#6009, #6911) എന്നിവയിലേക്ക് വയർ ചെയ്തു. പൊതുവായ `usage.ts::getUsageForProvider` ഡിസ്പാച്ച് പാത്ത് (github/glm/minimax/nanogpt/xai/etc.) ഇതുവരെ — പ്രത്യേകമായി ട്രാക്ക് ചെയ്തിട്ടില്ല. കാഷെ ഹിറ്റുകൾ ബാധിക്കില്ല. `0` പ്രവർത്തനരഹിതമാക്കുന്നു; ഇറുകിയ `0..60000`. | | `OMNIROUTE_QUOTA_FETCH_JITTER_MS` | `120` | `open-sse/services/quotaFetchThrottle.ts` | ഓരോ അഭ്യർത്ഥനയ്ക്കും കൂടുതൽ റാൻഡം സ്പെയ്സിംഗ് (മി.എസ്), റിസർവ് ചെയ്ത അപ്സ്ട്രീം ക്വാട്ടയിൽ സാമ്പിൾ ചെയ്തിരിക്കുന്നു. ഡിഫോൾട്ടുകൾ 120 വരെ; മുറുകെപ്പിടിച്ച `0..60000`; `0` ഇളക്കം മാത്രം നീക്കം ചെയ്യുന്നു. മുഴുവൻ ത്രോട്ടിലും പ്രവർത്തനരഹിതമാക്കാൻ `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS=0` സജ്ജമാക്കുക. അപ്സ്ട്രീം നിരോധനങ്ങൾ തടയുന്നതിന് ജിറ്റർ ഉറപ്പുനൽകുന്നില്ല. | | `CODEX_QUOTA_FETCH_TIMEOUT_MS` | `8000` | `open-sse/services/codexQuotaFetcher.ts` | ഒരൊറ്റ Codex ക്വാട്ട ലഭ്യമാക്കുന്നതിനുള്ള സമയപരിധി (മി.സെ.) (`chatgpt.com/backend-api/wham/usage`). അഭ്യർത്ഥന അയയ്ക്കുന്നതിന് മുമ്പ് പ്രീഫ്ലൈറ്റ് ഈ കണ്ടെത്തലിനായി കാത്തിരിക്കുന്നു. കാലഹരണപ്പെടൽ അല്ലെങ്കിൽ ഗതാഗത പിശകിന് ശേഷം, കഴിഞ്ഞ 15 മിനിറ്റിലെ അവസാന സ്നാപ്പ്ഷോട്ട് അതിൻ്റെ ജാലകം തീരുകയോ പുനഃസജ്ജമാക്കുകയോ ചെയ്തില്ലെങ്കിൽ വീണ്ടും ഉപയോഗിക്കും; ആരുമില്ലാതെ, ക്വാട്ട അജ്ഞാതമാണ്, അതിനാൽ ആ അഭ്യർത്ഥനയ്ക്കായി ഒരു പണമടച്ചുള്ള ക്രെഡിറ്റ് അക്കൗണ്ട് ഒഴിവാക്കുകയും കൂൾഡൗൺ നിലനിൽക്കുകയും ചെയ്യുന്നില്ല. `2147483647` വരെയുള്ള പോസിറ്റീവ് പൂർണ്ണസംഖ്യ സ്വീകരിക്കുന്നു; മറ്റേതെങ്കിലും മൂല്യം സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. | | `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | ഒരു യഥാർത്ഥ ഉപയോഗ ഇവൻ്റിന് ശേഷം പ്രൊവൈഡർ പരിധികൾ പുതുക്കുന്നതിന് മുമ്പ് കാലതാമസം (മിസെ), ഉപഭോഗം രജിസ്റ്റർ ചെയ്യുന്നതിന് അപ്സ്ട്രീം ക്വാട്ട API സമയം നൽകുന്നു. | | `OMNIROUTE_LOGIN_BROWSER_PATH` | യാന്ത്രികമായി കണ്ടുപിടിക്കുക | `open-sse/services/adobeFireflyBrowserLogin.ts` | സംവേദനാത്മക Adobe Firefly സൈൻ ഇൻ ചെയ്യുന്നതിനും ഓഫ് സ്ക്രീൻ പുതുക്കലിനും ഉപയോഗിക്കുന്ന ഒരു സിസ്റ്റം Chrome അല്ലെങ്കിൽ Edge എക്സിക്യൂട്ടബിളിലേക്കുള്ള സമ്പൂർണ്ണ പാത. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/adobeFireflySession.ts` | അക്കൗണ്ട് സ്കോപ്പ് ചെയ്ത Chrome CDP സെഷനുകൾ ഉപയോഗിച്ച് IMS, ബ്രൗസർ-റിസ്ക് അവസ്ഥ എന്നിവ പുതുതായി നിലനിർത്തുന്നു. ബ്രൗസർ പുതുക്കൽ പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജീകരിക്കുക. | | `ADOBE_FIREFLY_SESSION_DISK` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/adobeFireflySession.ts` | പ്രോസസ്സ് പുനരാരംഭിക്കുന്നതിലുടനീളം `DATA_DIR` കീഴിലുള്ള റിപ്പയർ ചെയ്ത Adobe സെഷനുകൾ തുടരുന്നു. സെഷനുകൾ മെമ്മറി മാത്രമായി നിലനിർത്താൻ `0` ആയി സജ്ജീകരിക്കുക. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | അഡോബ് ഫയർഫ്ലൈയ്ക്കിടയിലുള്ള മിനിമം സ്പെയ്സിംഗ് മില്ലിസെക്കൻഡ് സമർപ്പിക്കലുകൾ സൃഷ്ടിക്കുന്നു; `0` സ്പെയ്സിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നു. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | ഓരോ മൂന്നാമത്തെ വിജയകരമായ Adobe സമർപ്പണത്തിനു ശേഷവും മില്ലിസെക്കൻഡിൽ അധിക നിശ്ശബ്ദ കാലയളവ്. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyClient.ts` | ക്ഷണികമായ അഡോബ് 408 പ്രതികരണങ്ങൾക്ക് ശേഷം മില്ലിസെക്കൻഡിൽ ബേസ് ബാക്ക്ഓഫ്; പരമാവധി അഞ്ച് ശ്രമങ്ങളിലുടനീളം സമർപ്പണ സ്പെയ്സിംഗ് സംയോജിപ്പിച്ച്. | | `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | എല്ലാ പശ്ചാത്തല സേവനങ്ങളും പ്രവർത്തനരഹിതമാക്കുക: ക്വാട്ട പുതുക്കൽ, ദാതാവ്-പരിധി സമന്വയം, കണക്ഷൻ വീണ്ടെടുക്കൽ, ക്രെഡൻഷ്യൽ ആരോഗ്യം, cloud/model/free-proxy/proxy-health സമന്വയം, നിലനിർത്തൽ ക്ലീനപ്പ്, ഷെഡ്യൂൾ ചെയ്ത VACUUM, ക്രമീകരണങ്ങൾ ഹോട്ട്-റീലോഡ് വോട്ടെടുപ്പ്. CI/test ന് ഉപയോഗപ്രദമാണ്; ദീർഘനേരം പ്രവർത്തിക്കുന്ന ഇൻസ്റ്റാളിൽ, കണക്ഷനുകൾ സ്വയമേവ വീണ്ടെടുക്കില്ല, ഡാറ്റാബേസ് വളരുന്നു. | | `OMNIROUTE_HEADLESS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/system/headless.ts` | പ്രോക്സി എഞ്ചിൻ മാത്രമുള്ള ബൂട്ട്: ഓപ്ഷണൽ സബ്സിസ്റ്റം ഒഴിവാക്കുന്നു, `/dashboard` → 404. `omniroute serve --headless` പോലെ തന്നെ. [HEADLESS.md](../guides/HEADLESS.md) കാണുക. | | `OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/config/runtimeSettings.ts` | ഓട്ടോമേറ്റഡ് ടെസ്റ്റ് ഡിറ്റക്ഷന് കീഴിൽ പശ്ചാത്തല ടാസ്ക്കുകൾ നിർബന്ധമാക്കുക. ടെസ്റ്റ് ഹ്യൂറിസ്റ്റിക് അസാധുവാക്കാൻ `1` സജ്ജമാക്കുക. | | `OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS` | `600000` | `src/lib/jobs/budgetResetJob.ts` | ബജറ്റ് റീസെറ്റ് ചെക്ക് കാഡൻസ് (മി.സെ.). ഫ്ലോർ `10000`. | | `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | സജീവമായ കണക്ഷൻ-കൂൾഡൗൺ റിക്കവറി കാഡൻസ് (മിഎസ്): അഭ്യർത്ഥന ഹോട്ട് പാത്തിൽ നിന്ന് ക്ഷണികമായ `rate_limited_until` കാലഹരണപ്പെട്ട കണക്ഷനുകളെ വീണ്ടും സാധൂകരിക്കുന്നു. ഫ്ലോർ `5000`. | | `OMNIROUTE_DISABLE_CONNECTION_RECOVERY` | `false` | `src/lib/quota/connectionRecovery.ts` | സജീവമായ കണക്ഷൻ-കൂൾഡൗൺ വീണ്ടെടുക്കൽ ഷെഡ്യൂളർ പ്രവർത്തനരഹിതമാക്കുക ( `getProviderCredentials` ൽ അലസമായ വീണ്ടെടുക്കൽ ഇപ്പോഴും ബാധകമാണ്). | | `OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS` | `1800000` | `src/lib/jobs/reasoningCacheCleanupJob.ts` | ന്യായവാദം കാഷെ ക്ലീനപ്പ് കാഡൻസ് (മി.എസ്). ഫ്ലോർ `60000`. | | `OMNIROUTE_REASONING_MIN_BUDGET` | _അൺസെറ്റ്_ (അപ്രാപ്തമാക്കി) | `open-sse/services/reasoningTokenBuffer.ts` | ചിന്താ മോഡൽ ഔട്ട്പുട്ട് ബജറ്റുകൾക്കായി ഓപ്റ്റ്-ഇൻ ഫ്ലോർ: `[256, floor)` യിലെ കോളർ `max_tokens` ഫ്ലോറിലേക്ക് ഉയർത്തിയിരിക്കുന്നു (മോഡൽ ഔട്ട്പുട്ട് ക്യാപ് കൊണ്ട് മൂടിയിരിക്കുന്നു). സജ്ജീകരിക്കാത്ത = ക്ലയൻ്റ് ബജറ്റുകൾ ഒരിക്കലും വലുതാക്കിയിട്ടില്ല (#9507). | | `OMNIROUTE_REASONING_EFFORT_PROBE_PROVIDERS` | _അൺസെറ്റ്_ (അപ്രാപ്തമാക്കി) | `open-sse/services/learnedReasoningEffortCaps.ts` | ഓപ്റ്റ്-ഇൻ, കോമയാൽ വേർതിരിച്ച പ്രൊവൈഡർ ഐഡികൾ (അല്ലെങ്കിൽ `*`): ഒരു `reasoning_effort` 400/422 സ്വീകാര്യമായ സെറ്റുകളൊന്നും നൽകാത്തപ്പോൾ, ഒരിക്കൽ ഒരു ടയർ താഴ്ത്തി ( `low` താഴെയല്ല) വീണ്ടും ശ്രമിക്കുക, അന്വേഷണത്തിന് ഉത്തരം ലഭിച്ചാൽ മാത്രം ആ ടയർ പഠിക്കുക (#14895). | | `OMNIROUTE_LOG_EXPORT_CRON` | `0 * * * *` | `src/lib/jobs/logExportJob.ts` | പ്രവർത്തനക്ഷമമാക്കിയ എല്ലാ ലോഗ് എക്സ്പോർട്ട് ഡെസ്റ്റിനേഷനും ഇല്ലാതാക്കുന്ന കോൾ-ലോഗ് എക്സ്പോർട്ട് ജോലിക്കുള്ള ക്രോൺ എക്സ്പ്രഷൻ (UTC). ബോഡികൾ കയറ്റുമതി ചെയ്യുമ്പോൾ `*/5 * * * *` തിരഞ്ഞെടുക്കുക. | | `OMNIROUTE_LOG_EXPORT_RUN_TIMEOUT_MS` | `900000` | `src/lib/logExport/childRunner.ts` | ഓരോ ഡെസ്റ്റിനേഷൻ ചൈൽഡ് വാൾ-ക്ലോക്ക് സമയപരിധി മില്ലിസെക്കൻഡിൽ. ടൈംഔട്ട് പരാജയം രേഖപ്പെടുത്തുകയും അംഗീകരിക്കപ്പെടാത്ത ബാച്ച് മുന്നോട്ട് കൊണ്ടുപോകാതെ പ്രക്രിയയെ ഇല്ലാതാക്കുകയും ചെയ്യുന്നു. Invalid/non-positive/non-integer മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതി ഉപയോഗിക്കുന്നു. | | `OMNIROUTE_LOG_EXPORT_CHILD_MAX_OLD_SPACE_MB` | `1024` | `src/lib/logExport/childRunner.ts` | നോഡ് എക്സ്പോർട്ട് ചൈൽഡ് V8 ഓൾഡ് സ്പെയ്സ് ലിമിറ്റ് MB (മൊത്തം RSS അല്ല). ബോഡികളുള്ള 500 നിരകളുള്ള തൊപ്പി പുരാവസ്തുക്കൾക്കായി ഡിഫോൾട്ട് ഹെഡ്റൂം നൽകുന്നു; വലിപ്പം കൂടിയ ബാച്ചുകൾ ഇപ്പോഴും കുട്ടികളുടെ കൂമ്പാരത്തെ ക്ഷീണിപ്പിച്ചേക്കാം. പരാജയം ബാച്ച് വലുപ്പം കുറയ്ക്കാനോ ഈ പരിധി ഉയർത്താനോ ഉപദേശിക്കുന്നു. Invalid/non-positive/non-integer മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതി ഉപയോഗിക്കുന്നു. ഈ പരിധിയില്ലാതെ Bun കയറ്റുമതി പ്രക്രിയയിൽ വീണ്ടും കുറയുന്നു. | | `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | കോൺഫിഗറേഷൻ ഹോട്ട്-റീലോഡിനുള്ള പോളിംഗ് ഇടവേള (മി.സെ.). `1000` നേക്കാൾ താഴ്ന്നത് നിരസിക്കപ്പെട്ടു. | | `OMNIROUTE_DISABLE_REDIS_AUTH_CACHE` | _(പ്രാപ്തമാക്കി)_ | `src/lib/db/apiKeys.ts` | Redis പിന്തുണയുള്ള API-കീ ഓത്ത് കാഷെ മറികടക്കാൻ `1` സജ്ജമാക്കുക ( DB റീഡുകൾ നിർബന്ധമാക്കുന്നു). | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | `0` | `open-sse/services/compression/engines/rtk/filterLoader.ts` | കർശനമായ ഒപ്പ് പരിശോധനകളില്ലാതെ ഉപയോക്താവ് നിയന്ത്രിക്കുന്ന RTK പ്രോജക്റ്റ് ഫിൽട്ടർ നിയമങ്ങൾ വിശ്വസിക്കുക. | | `OMNIROUTE_LITE_MAX_TOOL_LENGTH` | `2000` | `open-sse/services/compression/lite.ts` | `lite.maxToolLength` സജ്ജീകരിക്കാത്തപ്പോൾ ലൈറ്റ് പ്രോആക്റ്റീവ് ടൂൾ-ഫലം വെട്ടിച്ചുരുക്കുന്നതിനുള്ള പ്രതീക തൊപ്പി. പരിധി 256–1000000. ഡാഷ്ബോർഡ് ക്രമീകരണം ഈ എൻവിയെ മറികടക്കുന്നു. | | `OMNI_COMPRESSION_WORKERS` | `2` | `open-sse/services/compression/compressionWorkerPool.ts` | പരമാവധി കൺകറൻ്റ് സിൻക്രണസ് RTK/Caveman തൊഴിലാളികൾ; അധിക ജോലികൾ FIFO കാത്തിരിക്കുക. | | `OMNI_COMPRESSION_WORKER_TIMEOUT_MS` | `120000` | `open-sse/services/compression/compressionWorkerPool.ts` | ഓരോ ജോലിക്കും മില്ലിസെക്കൻഡിൽ ടൈംഔട്ട്. സമയപരിധി കഴിഞ്ഞ തൊഴിലാളികളെ പിരിച്ചുവിടുകയും അഭ്യർത്ഥന മാറ്റമില്ലാതെ തുറക്കുകയും ചെയ്യുന്നു. | | `OMNI_COMPRESSION_WORKER_IDLE_MS` | `60000` | `open-sse/services/compression/compressionWorkerPool.ts` | ഉപയോഗിക്കാത്ത കംപ്രഷൻ തൊഴിലാളിയെ പിരിച്ചുവിടുന്നതിന് മുമ്പ് മില്ലിസെക്കൻഡിൽ നിഷ്ക്രിയ ആയുസ്സ്. | | `OMNI_COMPRESSION_WORKER_MAX_OLD_MB` | `1024` | `open-sse/services/compression/compressionWorkerPool.ts` | ഓരോ കംപ്രഷൻ തൊഴിലാളിക്കും MB യിൽ V8 പഴയ തലമുറ ഹീപ്പ് ക്യാപ്, എല്ലാ മോഡുകളും (ഫ്ലോർ `128`). അതിനെ കവിയുന്ന ഒരു ജോലി ഗേറ്റ്വേ കൂമ്പാരം വളർത്തുന്നതിനുപകരം തുറന്ന് (അൺകംപ്രസ് ചെയ്യപ്പെടാതെ) പരാജയപ്പെടുന്നു. | | `COMPRESSION_PIPELINE_BREAKER_ENABLED` | `false` | `open-sse/services/compression/pipelineEngineBreaker.ts` | T02 സ്റ്റാക്ക് ചെയ്ത പൈപ്പ്ലൈൻ പെർ എഞ്ചിൻ സർക്യൂട്ട് ബ്രേക്കർ മാസ്റ്റർ സ്വിച്ച്.** ഓപ്റ്റ്-ഇൻ (ഡിഫോൾട്ട് ഓഫ്)** — ഓണായിരിക്കുമ്പോൾ, അഭ്യർത്ഥനകളിലുടനീളം ആവർത്തിച്ച് എറിയുന്ന ഒരു എഞ്ചിൻ ഒരു കൂൾഡൗണിനായി ഒഴിവാക്കപ്പെടുന്നു (പരാജയം-ഓപ്പൺ); ഓഫ് = ബൈറ്റ്-സമാനമായ ലെഗസി പെരുമാറ്റം. | | `COMPRESSION_PIPELINE_BREAKER_THRESHOLD` | `3` | `open-sse/services/compression/pipelineEngineBreaker.ts` | എഞ്ചിൻ്റെ ബ്രേക്കർ തുറക്കുന്നതിന് മുമ്പ് തുടർച്ചയായ ക്രോസ്-അഭ്യർത്ഥന പരാജയങ്ങൾ. | | `COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS` | `30000` | `open-sse/services/compression/pipelineEngineBreaker.ts` | പകുതി തുറന്ന അന്വേഷണത്തിന് മുമ്പ് തുറന്ന എഞ്ചിൻ മില്ലിസെക്കൻഡ് ഒഴിവാക്കി തുടരുന്നു. | | `COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR` | `2` | `open-sse/services/compression/engines/ccr/index.ts` | T08/H8 CCR വീണ്ടെടുക്കൽ-ഫീഡ്ബാക്ക് റാംപ്: സംഭരിച്ച ബ്ലോക്കിൻ്റെ ഓരോ മുൻകൂർ വീണ്ടെടുക്കലും അതിൻ്റെ ഫലപ്രദമായ `minChars` രേഖീയമായി ഉയർത്തുന്നു (പതിവ്-വീണ്ടെടുക്കുന്ന ഉള്ളടക്കം കുറച്ച് കംപ്രസ്സുചെയ്യുന്നു; `>=3` വീണ്ടെടുക്കലുകൾ = ഒരിക്കലും കംപ്രസ്സുചെയ്യുന്നില്ല). `1` റാംപ് അപ്രാപ്തമാക്കുന്നു (ബൈനറി സ്കിപ്പ് ത്രെഷോൾഡിൽ മാത്രം). | | `COMPRESSION_CCR_DURABLE_STORE` | `true` | `open-sse/services/compression/engines/ccr/index.ts` | CCR ഡ്യൂറബിൾ ബ്ലോക്ക് സ്റ്റോർ (#9061). ഇൻ-മെമ്മറി സ്റ്റോറിനെ SQLite ഉപയോഗിച്ച് പിന്തുണയ്ക്കുന്നു, അങ്ങനെ ഒരു ബ്ലോക്ക് LRU കുടിയൊഴിപ്പിക്കൽ, TTL, പുനരാരംഭിക്കുക, അല്ലെങ്കിൽ മറ്റൊരു സന്ദർഭത്തിൽ ലാൻഡിംഗ് എന്നിവയെ അതിജീവിക്കുന്നു. ബ്ലോക്കുകൾ മെമ്മറിയിൽ മാത്രം സൂക്ഷിക്കാൻ `false` സജ്ജമാക്കുക. 512KB-യിൽ കൂടുതലുള്ള ബ്ലോക്കുകളും ക്ലൗഡ് റൺടൈമുകളും മെമ്മറി മാത്രമായി നിലനിൽക്കും. | | `COMPRESSION_PREFIX_FREEZE_ENABLED` | `false` | `open-sse/services/compression/prefixFreeze.ts` | T08/H5 ഉപയോഗം-നിരീക്ഷിച്ച പ്രിഫിക്സ് ഫ്രീസ് മാസ്റ്റർ സ്വിച്ച്.** ഓപ്റ്റ്-ഇൻ (ഡിഫോൾട്ട് ഓഫ്)** — ഓണായിരിക്കുമ്പോൾ, ഒരു സിസ്റ്റം പ്രോംപ്റ്റ് `>=` നിരീക്ഷിച്ചാൽ, ത്രെഷോൾഡ് സ്ഥിരമായ കാഷെ ചെയ്യാവുന്ന പ്രിഫിക്സായി കണക്കാക്കുകയും ദാതാക്കൾക്കായി പോലും കംപ്രഷനിൽ നിന്ന് സംരക്ഷിക്കുകയും ചെയ്യുന്നു സ്റ്റാറ്റിക് കാഷെ ഹ്യൂറിസ്റ്റിക് മിസ് (_പ്രിസർവ്സ്_ മാത്രം ഫ്രീസ് ചെയ്യുക, ഒരിക്കലും മ്യൂട്ടേറ്റ് ചെയ്യരുത്). | | `COMPRESSION_PREFIX_FREEZE_THRESHOLD` | `3` | `open-sse/services/compression/prefixFreeze.ts` | ഒരു ശീതീകരിച്ച സ്ഥിരതയുള്ള പ്രിഫിക്സായി കണക്കാക്കുന്നതിന് മുമ്പ് ഒരു സിസ്റ്റം പ്രോംപ്റ്റിൻ്റെ നിരീക്ഷണങ്ങൾ. | | `OMNIROUTE_BOOTSTRAPPED` | `false` | `src/app/(dashboard)/dashboard/page.tsx` | പ്രാരംഭ സജ്ജീകരണത്തിന് ശേഷം ബൂട്ട്സ്ട്രാപ്പ് സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് `true` സജ്ജമാക്കുക. സജ്ജീകരണ വിസാർഡ് ദൃശ്യപരത നിയന്ത്രിക്കുന്നു. | | `OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE` | `0` | `open-sse/executors/antigravity.ts` | എസ്കേപ്പ് ഹാച്ച്: Antigravity പ്രോജക്റ്റ് ഫീൽഡ് അസാധുവാക്കാൻ അഭ്യർത്ഥന ബോഡിയെ അനുവദിക്കുക. | | `ANTIGRAVITY_CREDITS` | `off` | `open-sse/services/antigravityCredits.ts` | Google One AI ക്രെഡിറ്റ് പോളിസി: `off` ഒരിക്കലും ക്രെഡിറ്റുകൾ കുത്തിവയ്ക്കില്ല, 429 യോഗ്യതയുള്ള ക്വാട്ടയ്ക്ക് ശേഷം `retry` ഒരിക്കൽ കുത്തിവയ്ക്കുന്നു, ആദ്യ അഭ്യർത്ഥനയിൽ `always` കുത്തിവയ്ക്കുന്നു. | | `OMNIROUTE_ANTIGRAVITY_TIMING_TELEMETRY` | `false` | `open-sse/executors/antigravity/executeAttempt.ts` | ഓപ്റ്റ്-ഇൻ സാനിറ്റൈസ്ഡ് പെർ-ഫിസിക്കൽ-സെൻഡ് ടൈമിംഗ്: അക്കൗണ്ട് നിഷ്ക്രിയം, ഇൻ-ഫ്ലൈറ്റ് അഭ്യർത്ഥനകൾ, തലക്കെട്ടുകളിലേക്കുള്ള സമയം, ആദ്യത്തെ അർത്ഥവത്തായ SSE ഉള്ളടക്കം. ലോഗുകളിൽ നിർദ്ദേശങ്ങളോ ക്രെഡൻഷ്യലുകളോ അപ്സ്ട്രീം URLs യോ ഇല്ല. | | `ANTIGRAVITY_MAX_429_ATTEMPTS` | `2` | `open-sse/services/antigravity429Guard.ts` | ഒരു Antigravity (`agy`/`antigravity`) അഭ്യർത്ഥനയിൽ അപ്സ്ട്രീം 429-കൾ സഹിഷ്ണുതയോടെ എല്ലാ ഹോസ്റ്റുകളിലും (1–12) 429 വിളിക്കുന്നയാളിലേക്ക് മടങ്ങും. അത് ചെലവഴിച്ച ഒരു ബോഡിക്ക് വീണ്ടും അയയ്ക്കുമ്പോൾ പ്രാദേശികമായി ഉത്തരം ലഭിക്കും (2 മിനിറ്റ്, 30 മിനിറ്റായി ഇരട്ടിയാക്കൽ, അല്ലെങ്കിൽ അപ്സ്ട്രീം വീണ്ടും ശ്രമിക്കാനുള്ള സൂചന), ആ 429-ന് ശേഷം ചാറ്റ് ഹാൻഡ്ലർ അഭ്യർത്ഥന പുനരാരംഭിക്കുന്നില്ല. | | `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | അപ്സ്ട്രീം യഥാർത്ഥ ഒപ്പുകൾ (debug/antiquated-CLI മോഡ്) നിരസിക്കുമ്പോൾ അതിൻ്റെ കർശനമായ CLI അഭ്യർത്ഥന-സിഗ്നേച്ചർ മൂല്യനിർണ്ണയം ഒഴിവാക്കാൻ Antigravity അഭ്യർത്ഥന വിവർത്തകനെ അനുവദിക്കുക. നോൺ-സീറോ ബൈപാസ് പ്രവർത്തനക്ഷമമാക്കുന്നു. | | `AGY_TOKEN_FILE` | `~/.gemini/antigravity-cli/antigravity-oauth-token` | `src/app/api/providers/agy-auth/apply-local/route.ts` | പ്രാദേശിക ലോഗിൻ ഇറക്കുമതി സ്വയമേവ കണ്ടെത്തുന്നതിന് Antigravity CLI (agy) ടോക്കൺ-ഫയൽ പാത അസാധുവാക്കുക. | ### OAuth CLI പാലം (ആന്തരികം) | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------- | ---------------------------- | ------------------------------- | ------------------------------------------- | | `OMNIROUTE_SERVER` | യാന്ത്രികമായി കണ്ടുപിടിക്കുക | `src/lib/oauth/config/index.ts` | CLI↔OmniRoute auth ബ്രിഡ്ജിനുള്ള സെർവർ URL. | | `OMNIROUTE_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/oauth/config/index.ts` | CLI ബ്രിഡ്ജിനുള്ള ഓത്ത് ടോക്കൺ. | | `OMNIROUTE_USER_ID` | `cli` | `src/lib/oauth/config/index.ts` | CLI ബ്രിഡ്ജ് സെഷനുകൾക്കുള്ള ഉപയോക്തൃ ID. | | `SERVER_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/oauth/config/index.ts` | `OMNIROUTE_SERVER` യുടെ ലെഗസി അപരനാമം. | | `CLI_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/oauth/config/index.ts` | `OMNIROUTE_TOKEN` യുടെ ലെഗസി അപരനാമം. | | `CLI_USER_ID` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/oauth/config/index.ts` | `OMNIROUTE_USER_ID` യുടെ ലെഗസി അപരനാമം. | --- ## 11. OAuth പ്രൊവൈഡർ ക്രെഡൻഷ്യലുകൾ ### നിഷ്ക്രിയ Codex ടോക്കൺ പുതുക്കൽ `OMNIROUTE_TOKEN_REFRESH_PASSIVE_PROVIDERS` `codex` ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, ഈ സംഭവത്തെ സമന്വയിപ്പിച്ച Codex ക്രെഡൻഷ്യലുകളുടെ ഉപഭോക്താവാക്കി മാറ്റുന്നു, ഒരു പുതുക്കൽ-ടോക്കൺ റൊട്ടേഷൻ ഉടമയല്ല. ശൂന്യമായതോ സജ്ജീകരിക്കാത്തതോ ആയ ഡിഫോൾട്ട് സാധാരണ പുതുക്കൽ പെരുമാറ്റത്തെ സംരക്ഷിക്കുന്നു. കോമ-വേർതിരിക്കപ്പെട്ട മൂല്യങ്ങൾ ട്രിം ചെയ്തതും കേസ്-ഇൻസെൻസിറ്റീവില്ലാത്തതുമാണ്; `cx` എന്നത് `codex` യുടെ അപരനാമമാണ്. പിന്തുണയ്ക്കാത്ത ദാതാക്കൾ സ്റ്റാർട്ടപ്പ് മൂല്യനിർണ്ണയം പരാജയപ്പെടുന്നു. മറ്റ് ദാതാക്കൾ മാറ്റമില്ല. നിലവിലുള്ള റിഫ്രഷ് പോയിൻ്റുകളിൽ, ഇൻസ്റ്റൻസ് കണക്ഷൻ റീഡ് കാഷെ മറികടന്ന് വ്യത്യസ്തവും കാലഹരണപ്പെടാത്തതുമായ ആക്സസ് ടോക്കൺ മാത്രം സ്വീകരിക്കുന്നു. അഭ്യർത്ഥനയ്ക്കിടെ അപ്സ്ട്രീമിൽ നിരസിച്ച ടോക്കണുകൾക്ക് സമന്വയം തിരികെ വന്നതിന് ശേഷം വീണ്ടും യോഗ്യത നേടാനാവില്ല: അഭ്യർത്ഥന ക്രെഡൻഷ്യലുകൾ പരമാവധി നാല് SHA-256 വിരലടയാളങ്ങൾ കൈവശം വയ്ക്കുന്നു, ആ അഭ്യർത്ഥനയ്ക്കൊപ്പം നിരസിച്ചു. ടോക്കൺ ഫീൽഡുകൾ മാത്രമേ സ്വീകരിക്കുകയുള്ളൂ, അതിനാൽ അഭ്യർത്ഥന-പ്രാദേശിക ദാതാവിൻ്റെ മെറ്റാഡാറ്റ നിലനിൽക്കുന്നു. സ്വീകരിച്ച യോഗ്യതാപത്രങ്ങളൊന്നും നിലനിൽക്കില്ല. പകരം വയ്ക്കൽ നിലവിലില്ലെങ്കിൽ, `refresh_disabled` നോൺ-ടെർമിനൽ ആണ് കൂടാതെ ടോക്കൺ-റിഫ്രഷ് സർക്യൂട്ട് ബ്രേക്കറിലേക്ക് കണക്കാക്കില്ല. യഥാർത്ഥ അപ്സ്ട്രീം 401/403 പ്രതികരണങ്ങൾ സാധാരണ പരാജയ അക്കൗണ്ടിംഗ്, എക്സ്പോണൻഷ്യൽ കൂൾഡൗൺ, ക്ലയൻ്റ് പിശകുകൾ എന്നിവ നിലനിർത്തുന്നു; അക്കൗണ്ട് നിർജ്ജീവമാക്കൽ സിഗ്നലുകൾ ഇപ്പോഴും ശാശ്വതമായി ലോക്ക് ചെയ്യുന്നു. സ്വമേധയാലുള്ള dashboard/API പുതുക്കൽ, `refresh_disabled` കോഡ് ഉപയോഗിച്ച് `409` നൽകുന്നു, കൂടാതെ സജീവമായ സന്ദർഭത്തിൽ പുതുക്കാനും സമന്വയിപ്പിക്കാനുമുള്ള നിർദ്ദേശവും. അവ്യക്തമായ പുതുക്കലുകൾ (ചാറ്റ്, ഉപയോഗം, ആരോഗ്യ പരിശോധനകൾ, ഇറക്കുമതി മൂല്യനിർണ്ണയം) ആ പിശക് കാണിക്കുന്നില്ല; ഓൺ-ഡിമാൻഡ് ഉപയോഗം 401 വീണ്ടെടുക്കൽ ഒരിക്കൽ സ്വീകരിച്ച സിൻക്രൊണൈസ്ഡ് ടോക്കൺ ഉപയോഗിച്ച് വീണ്ടും ശ്രമിക്കുന്നു. Codex auth ഇറക്കുമതികൾ ഒരു പുതുക്കൽ-ടോക്കൺ എക്സ്ചേഞ്ച് ഇല്ലാതെ വിതരണം ചെയ്ത ടോക്കണുകൾ സംഭരിക്കുന്നു; പുതിയ OAuth ലോഗിനുകൾക്ക് മാറ്റമില്ല. നിലവിലുള്ള സജീവമായ പുതുക്കൽ പാതയ്ക്ക് പുറത്ത് പ്രീ-ഡിസ്പാച്ച് സിൻക്രൊണൈസേഷനൊന്നും ചേർത്തിട്ടില്ല. ആക്സസ് ടോക്കണുകൾ കാലഹരണപ്പെടുന്നതിന് മുമ്പ് കൃത്യമായി ഒരു റൊട്ടേഷൻ ഉടമയെ നിലനിർത്തി ടോക്കൺ സിൻക്രൊണൈസേഷൻ പ്രത്യേകം ക്രമീകരിക്കുക (ഡിഫോൾട്ട് പ്രോആക്റ്റീവ് ലീഡ്: അഞ്ച് മിനിറ്റ്). ഈ ഓപ്ഷൻ വിതരണം ചെയ്ത ലോക്കോ ഡാറ്റാബേസ് റെപ്ലിക്കേഷനോ പങ്കിട്ട SQLite വിന്യാസമോ അല്ല. ഉറവിടം: `open-sse/services/tokenRefresh/passiveCodex.ts`. ഇതിനായി അന്തർനിർമ്മിത ക്രെഡൻഷ്യലുകൾ** പ്രാദേശിക ഹോസ്റ്റ് വികസനം** . വിദൂര വിന്യാസങ്ങൾക്കായി, ഓരോ ദാതാവിൻ്റെയും ഡെവലപ്പർ കൺസോളിൽ നിങ്ങളുടേത് രജിസ്റ്റർ ചെയ്യുക. | വേരിയബിൾ | ദാതാവ് | കുറിപ്പുകൾ | | ------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CLAUDE_OAUTH_CLIENT_ID` | Claude കോഡ് (Anthropic) | പൊതു ക്ലയൻ്റ് — രഹസ്യം ആവശ്യമില്ല. | | `CLAUDE_CODE_REDIRECT_URI` | Claude കോഡ് | റീഡയറക്ട് URI അസാധുവാക്കുക. സ്ഥിരസ്ഥിതി: `https://platform.claude.com/oauth/code/callback` | | `CODEX_OAUTH_CLIENT_ID` | Codex / OpenAI | പൊതു ഉപഭോക്താവ്. | | `GEMINI_OAUTH_CLIENT_ID` | Gemini (Google) | പൊരുത്തപ്പെടുന്ന `_SECRET` ആവശ്യമാണ്. | | `GEMINI_OAUTH_CLIENT_SECRET` | Gemini (Google) | — | | `KIMI_CODING_OAUTH_CLIENT_ID` | Kimi കോഡിംഗ് (Moonshot) | പൊതു ഉപഭോക്താവ്. | | `MUSE_CODE_OAUTH_CLIENT_ID` | മ്യൂസ് കോഡ് (മെറ്റാ) | പബ്ലിക് മ്യൂസ് CLI ഡിവൈസ്-ഫ്ലോ ക്ലയൻ്റ് ഐഡിക്കായി ഓപ്ഷണൽ ഓവർറൈഡ്. ബേക്ക്-ഇൻ പൊതു ക്ലയൻ്റ് ഉപയോഗിക്കാൻ സജ്ജമാക്കാതെ വിടുക. | | `ANTIGRAVITY_OAUTH_CLIENT_ID` | Antigravity (Google) | പൊരുത്തപ്പെടുന്ന `_SECRET` ആവശ്യമാണ്. | | `ANTIGRAVITY_OAUTH_CLIENT_SECRET` | Antigravity (Google) | — | | `GITHUB_OAUTH_CLIENT_ID` | GitHub Copilot | പൊതു ഉപഭോക്താവ്. | | `GHE_COPILOT_OAUTH_CLIENT_ID` | GHE Copilot | GitHub എൻ്റർപ്രൈസ് Copilot യുടെ OAuth ക്ലയൻ്റ് ഐഡിയ്ക്കായുള്ള ഓപ്ഷണൽ ഓവർറൈഡ്. സജ്ജീകരിക്കാത്തപ്പോൾ `GITHUB_OAUTH_CLIENT_ID` ൻ്റെ പൊതു ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. | | `COPILOT_INTEGRATION_ID` | GitHub Copilot | `Copilot-Integration-Id`, `Editor-Plugin-Version` തലക്കെട്ടുകളിൽ അയച്ച GitHub Copilot ക്ലയൻ്റ് ഇൻ്റഗ്രേഷൻ ID യ്ക്കുള്ള ഓപ്ഷണൽ ഓവർറൈഡ്. `copilot-developer-cli` ലേക്കുള്ള ഡിഫോൾട്ടുകൾ. | | `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | ഓരോ കണക്ഷനും ക്രെഡൻഷ്യൽ ലഭ്യമല്ലാത്തപ്പോൾ API കീ ഫാൾബാക്ക് `open-sse/executors/devin-cli.ts` ഉപയോഗിക്കുന്നു. ഓപ്ഷണൽ. | | `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Devin CLI ബൈനറി (`devin`) യിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. `open-sse/executors/devin-cli.ts` വഴി പരിഹരിച്ചു. | | `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | GitLab Duo-യ്ക്കുള്ള OAuth ക്ലയൻ്റ് ID. റീഡയറക്ട് URI `/callback`, സ്കോപ്പുകൾ `api, read_user, openid, profile, email` എന്നിവ ഉപയോഗിച്ച് `https://gitlab.com/-/profile/applications` ൽ ഒരു ആപ്പ് രജിസ്റ്റർ ചെയ്യുക. `GITLAB_OAUTH_CLIENT_ID` ലേക്ക് തിരികെ വീഴുന്നു. | | `GITLAB_DUO_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | GitLab Duo-നുള്ള OAuth ക്ലയൻ്റ് രഹസ്യം. ഓപ്ഷണൽ — PKCE ഫ്ലോയ്ക്ക് ഒരു രഹസ്യം ആവശ്യമില്ല. `GITLAB_OAUTH_CLIENT_SECRET` ലേക്ക് തിരികെ വീഴുന്നു. | | `GITLAB_DUO_BASE_URL` | GitLab Duo (v3.8) | GitLab ബേസ് URL (സ്വയം ഹോസ്റ്റ് ചെയ്ത GitLab) അസാധുവാക്കുക. `https://gitlab.com` ലേക്ക് ഡിഫോൾട്ടുകൾ. `GITLAB_BASE_URL` ലേക്ക് തിരികെ വീഴുന്നു. | | `GITLAB_BASE_URL` | GitLab Duo (v3.8) | `GITLAB_DUO_BASE_URL` യുടെ ലെഗസി ഫാൾബാക്ക്. `_DUO_` വേരിയൻ്റ് സജ്ജീകരിക്കാത്തപ്പോൾ ഉപയോഗിക്കുന്നു. | | `GITLAB_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | `src/lib/oauth/constants/oauth.ts` ഉപയോഗിക്കുന്ന `GITLAB_DUO_OAUTH_CLIENT_ID` യുടെ ലെഗസി ഫാൾബാക്ക്. | | `GITLAB_OAUTH_CLIENT_SECRET` | GitLab Duo (v3.8) | `src/lib/oauth/constants/oauth.ts` ഉപയോഗിക്കുന്ന `GITLAB_DUO_OAUTH_CLIENT_SECRET` യുടെ ലെഗസി ഫാൾബാക്ക്. | | `QODER_OAUTH_CLIENT_SECRET` | Qoder | — | | `QODER_OAUTH_AUTHORIZE_URL` | Qoder | Qoder OAuth പ്രവർത്തനക്ഷമമാക്കാൻ സജ്ജമാക്കുക. | | `QODER_OAUTH_TOKEN_URL` | Qoder | — | | `QODER_OAUTH_USERINFO_URL` | Qoder | — | | `QODER_OAUTH_CLIENT_ID` | Qoder | — | | `QODER_PERSONAL_ACCESS_TOKEN` | Qoder | നേരിട്ടുള്ള API കീ ഫാൾബാക്ക് ( OAuth ബൈപാസ് ചെയ്യുന്നു). | | `QODER_CLI_WORKSPACE` | Qoder | Qoder CLI യ്ക്കുള്ള വർക്ക്സ്പെയ്സ് ID. | | `OMNIROUTE_QODER_WORKSPACE` | Qoder | `QODER_CLI_WORKSPACE` എന്നതിൻ്റെ അപരനാമം. | | `QODER_CLI_CONFIG_DIR` | Qoder | Qoder CLI config dir അസാധുവാക്കുക (ഒറ്റപ്പെട്ട PAT സെഷൻ, ഒരു ബ്രൗസർ ലോഗിൻ തടസ്സപ്പെടുത്തുന്നത് ഒഴിവാക്കുന്നു). | | `QODER_CLI_MAX_CONCURRENCY` | Qoder | മാക്സ് കൺകറൻ്റ് qodercli റൺസ് (പ്രിൻ്റ് സ്പോൺസ് അല്ലെങ്കിൽ ACP പ്രോംപ്റ്റുകൾ); അധിക അഭ്യർത്ഥനകളുടെ ക്യൂ FIFO. അൺസെറ്റ് (ഡിഫോൾട്ട്) = ക്യാപ് ഇല്ല. | | `QODER_CLI_QUEUE_TIMEOUT_MS` | Qoder | 429 `qodercli_busy` + `Retry-After` ഉപയോഗിച്ച് പരാജയപ്പെടുന്നതിന് മുമ്പ് ഒരു Qoder അഭ്യർത്ഥന ഒരു qodercli സ്ലോട്ടിനായി (ഒരു ക്യാപ് സെറ്റിനൊപ്പം മാത്രം) എത്ര സമയം കാത്തിരിക്കുന്നു. സ്ഥിരസ്ഥിതി `120000`. | | `QODER_CLI_TRANSPORT` | Qoder | `print` (സ്ഥിരസ്ഥിതി) ഓരോ അഭ്യർത്ഥനയ്ക്കും `qodercli --print` നൽകുന്നു; `acp` ഓരോ PAT യിലും ഒരു സ്ഥിരമായ `qodercli --acp` പ്രക്രിയ നിലനിർത്തുന്നു. | | `QODER_CLI_ACP_IDLE_TIMEOUT_MS` | Qoder | ACP ഗതാഗതം: ഇത്രയും നിഷ്ക്രിയ സമയത്തിന് ശേഷം സ്ഥിരമായ qodercli പ്രക്രിയ ഇല്ലാതാക്കുക. സ്ഥിരസ്ഥിതി `600000`. | | `QODER_CLI_ACP_STARTUP_TIMEOUT_MS` | Qoder | ACP ഗതാഗതം: ACP `initialize` ന് ഉത്തരം നൽകാനുള്ള സമയപരിധി qodercli. സ്ഥിരസ്ഥിതി `60000`. | | `QODER_CLI_ACP_MAX_SESSIONS_PER_PROCESS` | Qoder | ACP ഗതാഗതം: ഇത്രയും സെഷനുകൾക്ക് ശേഷം സ്ഥിരമായ qodercli പ്രക്രിയ റീസൈക്കിൾ ചെയ്യുക. സ്ഥിരസ്ഥിതി `500`. | | `BLACKBOX_WEB_VALIDATED_TOKEN` | ബ്ലാക്ക്ബോക്സ് വെബ് | `/api/chat` യിൽ `validated` ആയി അയയ്ക്കാൻ ഫ്രണ്ട്ൻഡ് `tk` ടോക്കൺ. ബ്ലാക്ക്ബോക്സ് ടോക്കൺ പൊരുത്തപ്പെടുത്തൽ നടപ്പിലാക്കുമ്പോൾ ആവശ്യമാണ്; അല്ലാത്തപക്ഷം OmniRoute ഒരു ക്രമരഹിതമായ UUID ലേക്ക് മടങ്ങുന്നു. പ്രശ്നം #2252 കാണുക. | | `VISION_BRIDGE_BASE_URL` | വിഷൻ ബ്രിഡ്ജ് ഗാർഡ്റെയിൽ | നോൺ-ആന്ത്രോപിക് വിഷൻ-ബ്രിഡ്ജ് കോളുകൾക്കായി OpenAI-അനുയോജ്യമായ അടിസ്ഥാന URL. ലെഗസി OpenAI URL env അല്ലെങ്കിൽ api.openai.com ലേക്കുള്ള ഡിഫോൾട്ടുകൾ. OmniRoute ൻ്റെ `/v1` സെൽഫ്-ലൂപ്പ് അല്ലെങ്കിൽ ഏതെങ്കിലും OpenAI-compat എൻഡ്പോയിൻ്റിൽ പോയിൻ്റ് ചെയ്യുക (Gemini OpenAI-compat, OpenRouter). ഇഷ്യൂ #2232. URL OmniRoute ൻ്റെ സ്വന്തം `/v1` ആണെങ്കിൽ, വിവരിക്കുന്ന ഉപ-അഭ്യർത്ഥന `x-omniroute-admission-bypass: internal` അയയ്ക്കുകയും പരിഹരിച്ച സെൽഫ്-ലൂപ്പ് ക്രെഡൻഷ്യൽ (ലോക്കൽ മോഡിൽ `sk_omniroute` സെൻ്റിനൽ അല്ലെങ്കിൽ `OMNIROUTE_API_KEY` / `ROUTER_API_KEY` — #1350) ഉപയോഗിച്ച് പ്രാമാണീകരിക്കുകയും ചെയ്യുന്നു, അതിനാൽ `REQUIRE_API_KEY=true` വിന്യാസങ്ങൾ പ്രവർത്തിക്കുന്നു. | | `VISION_BRIDGE_API_KEY` | വിഷൻ ബ്രിഡ്ജ് ഗാർഡ്റെയിൽ | മുകളിലുള്ള URL യുടെAPI കീ. നോൺ-ആന്ത്രോപിക് വിഷൻ-ബ്രിഡ്ജ് കോളുകൾക്കായി ഓരോ ദാതാവിനും OpenAI / Google env vars അസാധുവാക്കുന്നു. Anthropic മോഡലുകൾ അവരുടെ സമർപ്പിത Anthropic കീ പാത നിലനിർത്തുന്നു. ഇഷ്യൂ #2232. | | `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | വിഷൻ ബ്രിഡ്ജ് ഗാർഡ്റെയിൽ | "ഉപയോഗിക്കാവുന്ന കാൻഡിഡേറ്റ് ഇല്ല" എന്ന റൂട്ടിംഗ് ഫലം ms-ൽ (ഡിഫോൾട്ട് `30000`) എത്രത്തോളം കാഷെ ചെയ്തിരിക്കുന്നു. അസാധുവായ അല്ലെങ്കിൽ നെഗറ്റീവ് മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു; `0` നെഗറ്റീവ് കാഷെ പ്രവർത്തനരഹിതമാക്കുന്നു. ഉറവിടം: `src/lib/guardrails/visionBridgeRouter.ts`. | | `OMNIROUTE_IMAGE_NORMALIZATION` | വിഷൻ ഇമേജ് നോർമലൈസേഷൻ | ഓപ്റ്റ്-ഇൻ ( = ഓഫ് സജ്ജീകരിക്കാത്തത്, പൂജ്യം പെരുമാറ്റ മാറ്റം; `1`/`true`/`on` പ്രവർത്തനക്ഷമമാക്കുന്നു). അയയ്ക്കുന്നതിന് മുമ്പ് ചാറ്റ് അഭ്യർത്ഥന ബോഡികളിലെ എല്ലാ ഇൻലൈൻ (base64 ഡാറ്റ URI / Claude `source.data`) ചിത്രവും സാധാരണമാക്കുന്നു: EXIF ഓറിയൻ്റേഷൻ പ്രയോഗിച്ചു, RGB (ആൽഫ വെള്ളയിലേക്ക് പരന്നിരിക്കുന്നു), നീളമുള്ള എഡ്ജ് `<= 4096` px, മൊത്തം പിക്സലുകൾ `<= ~4M`; മാറ്റം ആവശ്യമുള്ള ചിത്രങ്ങൾ ബേസ്ലൈൻ JPEG ആയി വീണ്ടും എൻകോഡ് ചെയ്തിരിക്കുന്നു (ആൽഫ-ഫ്രീ PNGs സ്റ്റേ ലോസ്ലെസ് PNG), ഇതിനകം കംപ്ലയിൻ്റ് ആയ RGB JPEG/PNG അൺടച്ച്ഡ് ത്രൂ. ബജറ്റുകൾ നിശ്ചയിച്ചിരിക്കുന്നു. 400 പാഴ്സ് പിശകുകളോ സീറോ ഔട്ട്പുട്ട് ഹാങ്ങുകളോ ഉള്ള oversized/exotic ഇമേജുകൾ നിരസിക്കുന്ന Qwen2-VL-style വിഷൻ പൈപ്പ്ലൈനുകൾ ലക്ഷ്യമിടുന്നു. റിമോട്ട് http(കൾ) URLs ഡൗൺലോഡ് ചെയ്തിട്ടില്ല; ഒരു കാണാതായ `sharp` ബൈനറി അല്ലെങ്കിൽ ഒരു അൺകോഡ് ചെയ്യാനാവാത്ത ചിത്രം അൺടച്ച്ഡ് (ഫെയിൽ-ഓപ്പൺ) വഴി കടന്നുപോകുന്നു. ഒരു വലിയ ചിത്രത്തിൻ്റെ വലുപ്പം മാറ്റുന്നത് അഭ്യർത്ഥന ലേറ്റൻസി ചേർക്കുന്നു. ഉറവിടം: `open-sse/utils/visionImageNormalization.ts`. | > [!WARNING] > > 1. [Google ക്ലൗഡ് കൺസോൾ → ക്രെഡൻഷ്യലുകളിലേക്ക്](https://console.cloud.google.com/apis/credentials) പോകുക 2. ഒരു OAuth 2.0 ക്ലയൻ്റ് ID സൃഷ്ടിക്കുക (തരം: "വെബ് ആപ്ലിക്കേഷൻ") 3. അംഗീകൃത റീഡയറക്ട് URI ആയി നിങ്ങളുടെ സെർവർ URL ചേർക്കുക 4. `.env` ലെ ക്രെഡൻഷ്യൽ മൂല്യങ്ങൾ മാറ്റിസ്ഥാപിക്കുക. --- ## 12. പ്രൊവൈഡർ യൂസർ-ഏജൻ്റ് അസാധുവാക്കുന്നു ഓരോ അപ്സ്ട്രീം ദാതാവിനും അയച്ച `User-Agent` തലക്കെട്ട് അസാധുവാക്കുക. എക്സിക്യൂട്ടർ ബേസ് ക്ലാസ് റൺടൈമിൽ ഇത് ചലനാത്മകമായി പരിഹരിക്കുന്നു: ``` process.env[`${PROVIDER_ID}_USER_AGENT`] ``` > **ഉറവിടം:** `open-sse/executors/base.ts` → `buildHeaders()` | വേരിയബിൾ | ഡിഫോൾട്ട് മൂല്യം | എപ്പോൾ അപ്ഡേറ്റ് ചെയ്യണം | | -------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `CLAUDE_USER_AGENT` | `claude-cli/2.1.280 (external, cli)` | Anthropic ഒരു പുതിയ CLI പതിപ്പ് പുറത്തിറക്കുമ്പോൾ | | `CLAUDE_DISABLE_TOOL_NAME_CLOAK` | `false` | `executors/base.ts` + `executors/cliproxyapi.ts` | ആന്ത്രോപിക്-ബൗണ്ട് പാതകളിൽ (നേറ്റീവ് OAuth, CLIProxyAPI) മൂന്നാം കക്ഷി ഹാർനെസ് ടൂൾ പേരുകൾ പദാനുപദമായി Anthropic ലേക്ക് കൈമാറാൻ `1`/`true` ആയി സജ്ജമാക്കുക. സ്ഥിരസ്ഥിതിയായി, എക്സിക്യൂട്ടർ നോൺ-ക്ലോഡ്-കോഡ് ടൂൾ പേരുകൾ (ഒന്ന് നിലവിലിരിക്കുന്ന Claude കോഡ് കാനോനിക്കൽ മാപ്പിംഗ്, അല്ലാത്തപക്ഷം PascalCase) നിർണ്ണായകമായി അപരനാമമാക്കുകയും `_toolNameMap` വഴിയുള്ള പ്രതികരണത്തിൽ അവയെ വിപരീതമാക്കുകയും ചെയ്യുന്നു, അതിനാൽ വിരലടയാളമുള്ള മൂന്നാം കക്ഷി ക്ലയൻ്റുകളായി പാമ്പ്_കേസ് ടൂളുകളുള്ള ഹാർനെസ് നിരസിക്കപ്പെടില്ല. ഡീബഗ്ഗിംഗ് മാത്രം. | | `CODEX_USER_AGENT` | `codex-cli/0.155.0 (Windows 10.0.26200; x64)` | OpenAI CLICodex ചെയ്യുമ്പോൾ | | `CODEX_CLIENT_VERSION` | `0.155.0` | പൂർണ്ണ UA സ്ട്രിംഗിൽ നിന്ന് സ്വതന്ത്രമായി Codex ക്ലയൻ്റ് പതിപ്പ് അസാധുവാക്കുക | | `GROK_CLI_CLIENT_VERSION` | `1.0.41` | അനുമാനം, മോഡൽ സമന്വയം, ഉപകരണ-കോഡ് OAuth എന്നിവയ്ക്കായി `x-grok-client-version` അസാധുവാക്കുക, കൂടാതെ അനുമാനത്തിനും മോഡൽ സമന്വയത്തിനുമായി സ്ഥിരസ്ഥിതി Grok CLI ഉപയോക്തൃ-ഏജൻ്റ്. ചുറ്റുമുള്ള വൈറ്റ്സ്പെയ്സ് ട്രിം ചെയ്തതിന് ശേഷം 128 പ്രതീകങ്ങൾ വരെ ഓപ്ഷണൽ prerelease/build മെറ്റാഡാറ്റ ഉപയോഗിച്ച് SemVer സ്വീകരിക്കുന്നു. സജ്ജീകരിക്കാത്തതോ ശൂന്യമായതോ അസാധുവായതോ ലൈൻ ബ്രേക്ക് അടങ്ങിയതോ ആയ മൂല്യങ്ങൾ ഷിപ്പ് ചെയ്ത പിൻ ഉപയോഗിക്കുന്നു. നിലവിലുള്ള പൂർണ്ണമായ അനുമാനം ഉപയോക്തൃ-ഏജൻറ് അസാധുവാക്കൽ മുൻഗണന നിലനിർത്തുന്നു. | | `CLAUDE_CODE_CLIENT_VERSION` | `2.1.280` | `CLAUDE_USER_AGENT` ൽ നിന്ന് സ്വതന്ത്രമായി പരസ്യപ്പെടുത്തിയ Claude കോഡ് പതിപ്പ് അസാധുവാക്കുക. Anthropic ഈ മൂല്യത്തിൽ ചില മോഡലുകൾ ഗേറ്റ് ചെയ്യുന്നു (#12417). | | `CLAUDE_CODE_CLIENT_BUILD_REVISION` | `1e2` | Claude ബില്ലിംഗ് ബ്ലോക്കിലെ `cc_version=` 3-അക്ഷര സഫിക്സ് OmniRoute അനുബന്ധങ്ങൾ അസാധുവാക്കുക. `CLAUDE_CODE_CLIENT_VERSION` — പിൻ ചെയ്യുന്നതിനൊപ്പം ബമ്പ് ചെയ്യുക പതിപ്പ് മാത്രം ഒരു `version.revision` ജോഡിയെ പരസ്യപ്പെടുത്തുന്നു, യഥാർത്ഥ ബൈനറി പുറത്തുവിടുന്നില്ല. | | `GITHUB_COPILOT_CLI_VERSION` | `1.0.91` | പരസ്യപ്പെടുത്തിയ Copilot CLI പതിപ്പ് `GITHUB_USER_AGENT` ൽ നിന്ന് സ്വതന്ത്രമായി അസാധുവാക്കുക | | `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | GitHub Copilot ചാറ്റ് അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ | | `ANTIGRAVITY_CLI_CL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | CLI യൂസർ-ഏജൻറിൽ `cl=` ആയി റിപ്പോർട്ട് ചെയ്ത Antigravity CLI (`agy`) പൈപ്പർ ചേഞ്ച്ലിസ്റ്റ് അസാധുവാക്കുക. പതിപ്പിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതല്ല അല്ലെങ്കിൽ പൊതു മാനിഫെസ്റ്റുകൾ വെളിപ്പെടുത്തിയതല്ല; ഒരു ലൈവ് ക്യാപ്ചറിൽ നിന്ന് ഓരോ പതിപ്പിനും സീഡ് ചെയ്തു (1.4.4 → `1003595037`). ഒരു അജ്ഞാത പതിപ്പിൽ സജ്ജീകരിക്കാത്തത് മറ്റൊരു ബിൽഡിൻ്റെ ചേഞ്ച്ലിസ്റ്റ് പരസ്യം ചെയ്യുന്നതിനുപകരം `cl=` ഒഴിവാക്കുന്നു. | | `KIRO_USER_AGENT` | `AWS-SDK-JS/3.0.0 kiro-ide/1.0.0` | Kiro IDE അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ | | `KIRO_OAUTH_CLIENT_ID` | `kiro-cli` | Kiro സോഷ്യൽ ഡിവൈസ്-കോഡ് `clientId` (പൊതു ഐഡി) അസാധുവാക്കുക | | `KIRO_VERIFY_FULL_CRC` | `false` | ഓപ്റ്റ്-ഇൻ: Kiro ഇവൻ്റ് സ്ട്രീമിലെ പൂർണ്ണ പെർ-ഫ്രെയിം സന്ദേശം CRC മൂല്യനിർണ്ണയം (കേടായ സ്ട്രീമുകൾ ഡീബഗ് ചെയ്യുക) | | `KIRO_CREDIT_PRICE_USD` | `0.02` | ഓരോ Kiro ക്രെഡിറ്റിനുംUSD ; `meteringEvent` ക്രെഡിറ്റുകളെ കൃത്യമായ ഓരോ അഭ്യർത്ഥന ചെലവാക്കി മാറ്റുന്നു | | `KIRO_REQUIRE_CREDITS` | `false` | ഒരു Kiro പ്രതികരണം പരാജയപ്പെടുത്തുക, അത് ബിൽ ചെയ്യാതെ റെക്കോർഡ് ചെയ്യുന്നതിനുപകരം ക്രെഡിറ്റ് മീറ്ററിംഗ് റിപ്പോർട്ട് ചെയ്യുന്നില്ല | | `QODER_USER_AGENT` | `Qoder-Cli` | Qoder CLI അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ | | `CURSOR_USER_AGENT` | `Cursor/3.3` | Cursor അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ | > [!TIP] > ഇതിനായി നിങ്ങൾക്ക് ഉപയോക്തൃ-ഏജൻറ് അസാധുവാക്കലുകൾ ചേർക്കാൻ കഴിയും** ഏതെങ്കിലും** `{PROVIDER_ID}_USER_AGENT` പാറ്റേൺ ഉപയോഗിക്കുന്ന ദാതാവ്. എക്സിക്യൂട്ടർ ചലനാത്മകമായി env var നാമം നിർമ്മിക്കുന്നു. --- ## 13. CLI ഫിംഗർപ്രിൻ്റ് അനുയോജ്യത പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ, ഔദ്യോഗിക CLI ടൂളുകളുടെ കൃത്യമായ ഒപ്പുമായി പൊരുത്തപ്പെടുന്നതിന് OmniRoute HTTP തലക്കെട്ടുകളും JSON ബോഡി ഫീൽഡുകളും പുനഃക്രമീകരിക്കുന്നു. ഇത് നിങ്ങളുടെ പ്രോക്സി IP സംരക്ഷിക്കുമ്പോൾ അക്കൗണ്ട് ഫ്ലാഗിംഗിൻ്റെ അപകടസാധ്യത കുറയ്ക്കുന്നു. **ഉറവിടം:** `open-sse/config/cliFingerprints.ts`, `open-sse/executors/base.ts` ### ഓരോ ദാതാവിനും | വേരിയബിൾ | സജീവമാക്കൽ | പ്രഭാവം | | ------------------------ | ---------- | --------------------------------------------- | | `CLI_COMPAT_CODEX` | `=1` | Codex CLI അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | | `CLI_COMPAT_CLAUDE` | `=1` | Claude കോഡ് അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | | `CLI_COMPAT_GITHUB` | `=1` | GitHub Copilot അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | | `CLI_COMPAT_ANTIGRAVITY` | `=1` | Antigravity അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | | `CLI_COMPAT_CURSOR` | `=1` | Cursor അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | | `CLI_COMPAT_KIMI_CODING` | `=1` | Kimi കോഡിംഗ് അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | | `CLI_COMPAT_KILOCODE` | `=1` | മിമിക്സ് കിലോ കോഡ് അഭ്യർത്ഥന ഒപ്പ് | | `CLI_COMPAT_CLINE` | `=1` | Cline അഭ്യർത്ഥന ഒപ്പ് അനുകരിക്കുന്നു | ### ആഗോള | വേരിയബിൾ | സജീവമാക്കൽ | പ്രഭാവം | | ---------------- | ---------- | --------------------------------------------------------------------------------- | | `CLI_COMPAT_ALL` | `=1` | ഇതിനായി ഫിംഗർപ്രിൻ്റ് അനുയോജ്യത പ്രവർത്തനക്ഷമമാക്കുക** എല്ലാം** ഒരേസമയം ദാതാക്കൾ. | ### Kimi കോഡിംഗ് CLI ഐഡൻ്റിറ്റി അസാധുവാക്കുന്നു | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------- | ---------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------- | | `KIMI_CLI_VERSION` | `1.36.0` | `src/lib/oauth/providers/kimi-coding.ts` | OAuth/API കോളുകൾക്കിടയിൽ അയച്ച Kimi CLI പതിപ്പ് അസാധുവാക്കുക. | | `KIMI_CODING_DEVICE_ID` | _(സ്ഥിരമായി പിടിച്ചെടുത്തു)_ | `src/lib/oauth/providers/kimi-coding.ts` | ക്ലയൻ്റ് തലക്കെട്ടുകളിൽ ഉപയോഗിച്ച ക്യാപ്ചർ ചെയ്ത Kimi ഉപകരണം ID അസാധുവാക്കുക. | > [!NOTE] > ഈ സവിശേഷത ഉപയോക്തൃ-ഏജൻ്റ് അസാധുവാക്കലുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു (§12). ഫിംഗർപ്രിൻ്റ് സിസ്റ്റം ഹെഡർ ഓർഡറിംഗും ബോഡി ഫീൽഡ് ഓർഡറിംഗും കൈകാര്യം ചെയ്യുന്നു, അതേസമയം യൂസർ-ഏജൻ്റ് നിർദ്ദിഷ്ട UA സ്ട്രിംഗ് കൈകാര്യം ചെയ്യുന്നു. രണ്ടും സ്വതന്ത്രമായി പ്രവർത്തനക്ഷമമാക്കാം. --- ## 14. API കീ ദാതാക്കൾ നേരിട്ടുള്ള പ്രാമാണീകരണം ഉപയോഗിക്കുന്ന ദാതാക്കൾക്കുള്ള API കീകൾ.** തിരഞ്ഞെടുത്ത സജ്ജീകരണം:** ഡാഷ്ബോർഡ് → ദാതാക്കൾ → API കീ ചേർക്കുക. എൻവയോൺമെൻ്റ് വേരിയബിളുകൾ വഴി സജ്ജീകരിക്കുന്നത് Docker അല്ലെങ്കിൽ ഹെഡ്ലെസ് ഡിപ്ലോയ്മെൻ്റുകൾക്കുള്ള ഒരു ബദലാണ്. അംഗീകൃത പാറ്റേൺ: `{PROVIDER_ID}_API_KEY` | വേരിയബിൾ | ദാതാവ് | | ------------------ | ------------------------------------------------------------ | | `DEEPSEEK_API_KEY` | DeepSeek | | `NVIDIA_API_KEY` | NVIDIA NIM | | `JINA_AI_API_KEY` | Jina AI (ഫൗണ്ടേഷൻ API + റീഡർ ഫാൾബാക്ക്) | | `JINA_API_KEY` | ജിന AI ( `JINA_AI_API_KEY` എന്നതിൻ്റെ അപരനാമം) | | `GEMINI_API_KEY` | Gemini (Google AI സ്റ്റുഡിയോ) ഉൾച്ചേർക്കൽ + ചാറ്റ് ഫാൾബാക്ക് | | `GOOGLE_API_KEY` | Gemini ( `GEMINI_API_KEY` എന്നതിൻ്റെ അപരനാമം) | > [!NOTE] > Groq, xAI `data/provider-credentials.json` Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius, Qianfan DB സ്റ്റാറ്റിക് `${PROVIDER}_API_KEY` എൻട്രികൾ v3.8.0-ൽ നീക്കം ചെയ്തു —. മൈഗ്രേഷൻ പാതയ്ക്കായി ഈ ഡോക്യുമെൻ്റിൻ്റെ ചുവടെയുള്ള _Audit: Removed / Dead Variables_ വിഭാഗം കാണുക. > [!TIP] > ഡാഷ്ബോർഡ് വഴി സജ്ജീകരിച്ച കീകൾ SQLite യിൽ എൻക്രിപ്റ്റ് ചെയ്ത് സംഭരിക്കുകയും പരിസ്ഥിതി വേരിയബിളുകൾക്ക് മുൻഗണന നൽകുകയും ചെയ്യുന്നു. > > **ജിന:** `jina-ai/…` ഉൾച്ചേർക്കലുകൾ, റീറാങ്ക് ചെയ്യുക, തരംതിരിക്കുക, സെഗ്മെൻ്റ്, `jina-search` ചെയ്യുക** അല്ല** ഒരു ഡാഷ്ബോർഡ് `jina-ai` (അല്ലെങ്കിൽ പങ്കിട്ട `jina-reader`) കണക്ഷൻ നിലവിലിരിക്കുമ്പോൾ ഒരു ക്ലസ്റ്റർ env കീ ബിൽ ചെയ്യുക — `getProviderCredentials` ആദ്യം പൂരിപ്പിക്കുക. ഉപയോഗിക്കാവുന്ന ഡാഷ്ബോർഡ് കീ നിലവിലില്ലെങ്കിൽ മാത്രമേ `JINA_AI_API_KEY` / `JINA_API_KEY` ഉപയോഗിക്കൂ. കോൾ ലോഗുകൾ env ഫാൾബാക്ക് `connection_id=env:JINA_AI_API_KEY` ആയി ആട്രിബ്യൂട്ട് ചെയ്യുന്നു. റീഡർ കാർഡ് (`jina-reader`, `r.jina.ai`) ഒരിക്കലും `/v1/embeddings` അല്ലെങ്കിൽ `/v1/rerank` സേവിക്കുന്നില്ല. > > **Gemini:** `gemini/gemini-embedding-2` (alias `google/gemini-embedding-2`) uses the dashboard `gemini` connection first. `GEMINI_API_KEY` / `GOOGLE_API_KEY` are used only when no usable dashboard key exists. Call logs attribute the env fallback as `connection_id=env:GEMINI_API_KEY`. Native multimodal traffic uses `x-goog-api-key` against `:embedContent` / `:batchEmbedContents` — N OpenAI `input` items become N vectors. --- ## 15. കാലഹരണപ്പെടൽ ക്രമീകരണങ്ങൾ എല്ലാ മൂല്യങ്ങളും ഉണ്ട്** മില്ലിസെക്കൻഡ്** . `src/shared/utils/runtimeTimeouts.ts` യിൽ കേന്ദ്രീകൃത റെസലൂഷൻ. ### കാലഹരണപ്പെട്ട ശ്രേണി ``` 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) ``` | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | ------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REQUEST_TIMEOUT_MS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ഗ്ലോബൽ കുറുക്കുവഴി — `FETCH_TIMEOUT_MS`, `STREAM_IDLE_TIMEOUT_MS` ഡിഫോൾട്ടുകളെ മറികടക്കുന്നു. | | `FETCH_TIMEOUT_MS` | `600000` | അപ്സ്ട്രീം പ്രൊവൈഡർ കോളുകൾക്കായുള്ള മൊത്തം HTTP അഭ്യർത്ഥന കാലഹരണപ്പെട്ടു. | | `STREAM_IDLE_TIMEOUT_MS` | `600000` | നിർത്തലാക്കുന്നതിന് മുമ്പ് അസംസ്കൃത അപ്സ്ട്രീം ബൈറ്റുകൾക്കിടയിൽ പരമാവധി നിശബ്ദത. വിപുലീകൃത-ചിന്ത മോഡലുകൾ അപൂർവ്വമായി > 90s താൽക്കാലികമായി നിർത്തുന്നു. | | `STREAM_ACTIVE_TIMEOUT_MS` | `1260000` | പരമാവധി ആകെ സജീവമായ SSE സ്ട്രീം ആയുസ്സ്; അപ്സ്ട്രീം ബൈറ്റുകളിൽ ഒരിക്കലും പുനഃസജ്ജമാക്കരുത് കൂടാതെ `REQUEST_TIMEOUT_MS` ൽ നിന്ന് സ്വതന്ത്രവുമാണ്. സജ്ജീകരിക്കാത്തപ്പോൾ, ഡിഫോൾട്ട് രജിസ്ട്രിയിലെ ഏറ്റവും വലിയ ഓരോ മോഡൽ `timeoutMs` ആണ് (1200000, Codex) കൂടാതെ 60000 മാർജിനും ഒരു ദൈർഘ്യമേറിയ ബജറ്റ് പ്രഖ്യാപിക്കുന്ന ഒരു ടാർഗെറ്റും (കണക്ഷൻ `timeoutMs`, പിന്നെ ഓരോ മോഡലിനും, പിന്നെ പ്രൊവൈഡർ-ലെവൽ, ഉദാ. GLM 300-ന് പകരം ബജറ്റ് 600000 300) പ്രഖ്യാപിത ബജറ്റുകൾ ഉയർത്താൻ കഴിയാത്ത എല്ലാ ലക്ഷ്യങ്ങൾക്കും ഒരു പോസിറ്റീവ് മൂല്യം ഒരു ഹാർഡ് ക്യാപ് ആണ്. ഓരോ ലക്ഷ്യത്തിനും പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജമാക്കുക. | | `OMNIROUTE_SSE_COMMENTS` | _(അപ്രാപ്തമാക്കി)_ | OmniRoute SSE `:` കമൻ്റ് ലൈനുകൾ പുറപ്പെടുവിച്ചേക്കുമോ (ഉദാ: `: keepalive` ഹൃദയമിടിപ്പ്, `x-omniroute-*` മെറ്റാഡാറ്റ ട്രെയിലറുകൾ). കർശനമായ OpenAI-അനുയോജ്യമായ ക്ലയൻ്റുകൾ JSON.ഓരോ SSE വരിയും പാഴ്സ് ചെയ്യുകയും `:` അഭിപ്രായങ്ങളിൽ ക്രാഷ് ചെയ്യുകയും ചെയ്യുന്നതിനാൽ സ്ഥിരസ്ഥിതിയായി (#10524) പ്രവർത്തനരഹിതമാക്കി; `data:` ഹൃദയമിടിപ്പുകളെ ബാധിക്കില്ല. തിരികെ തിരഞ്ഞെടുക്കാൻ `on`/`true`/`1`/`yes` സജ്ജമാക്കുക. `open-sse/utils/sseHeartbeat.ts` ഉപയോഗിക്കുന്നു. | | `SSE_COALESCE_MS` | `0` (ഓഫ്) | ഓപ്റ്റ്-ഇൻ: Claude ക്ലയൻ്റുകളിലേക്ക് അയച്ച തുടർച്ചയായ Claude `content_block_delta` ഇവൻ്റുകൾ (അതേ ബ്ലോക്ക് സൂചികയും ഡെൽറ്റ തരവും) ലയിപ്പിക്കുക, കുറഞ്ഞത് എല്ലാ N ms-ലും ഫ്ലഷ് ചെയ്യുന്നു. നഷ്ടമില്ലാത്തത്; `signature_delta`, അതിർത്തി ഇവൻ്റുകൾ ഒരിക്കലും ലയിപ്പിക്കില്ല. ചുവടെയുള്ള ഓരോ തരം വേരിയബിൾ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ എല്ലാ ഡെൽറ്റ തരത്തിനും ബാധകമാണ്. `open-sse/utils/sseDeltaCoalesce.ts` ഉപയോഗിക്കുന്നു. | | `SSE_COALESCE_THINKING_MS` | `0` (ഓഫ്) | `thinking_delta` യ്ക്കായി `SSE_COALESCE_MS` യുടെ ഓരോ-തരം അസാധുവാക്കൽ. | | `SSE_COALESCE_TEXT_MS` | `0` (ഓഫ്) | `text_delta` യ്ക്കായി `SSE_COALESCE_MS` യുടെ ഓരോ-തരം അസാധുവാക്കൽ. | | `SSE_COALESCE_INPUT_JSON_MS` | `0` (ഓഫ്) | `input_json_delta` യ്ക്കായി `SSE_COALESCE_MS` യുടെ ഓരോ-തരം അസാധുവാക്കൽ. | | `SSE_FRAME_COALESCE_MS` | `0` (ഓഫ്) | ഓപ്റ്റ്-ഇൻ: ബാച്ച് SSE ഫ്രെയിമുകൾ N ms-നുള്ളിൽ ക്ലയൻ്റിലേക്ക് ഒരു റൈറ്റിലേക്ക് കൈമാറുന്നു. ആദ്യത്തെ ഫ്രെയിമും ടെർമിനൽ ഫ്രെയിമുകളും (`[DONE]`, `message_stop`, `error`, `response.completed`/`failed`/`incomplete`) ഒരിക്കലും വൈകില്ല; ബാച്ചിംഗ് ഓൺ ഉപയോഗിച്ച്, ITL ബാച്ച് വിടവുകൾ അളക്കുന്നു. `open-sse/utils/sseOutputSink.ts` ഉപയോഗിക്കുന്നു. | | `SSE_STALL_WATCHDOG` | `timer` | സ്ട്രീം ചെയ്ത പ്രതികരണങ്ങൾക്കായി ബൈറ്റ്-സ്റ്റാൾ വാച്ച്ഡോഗ് നടപ്പിലാക്കൽ. `timer` ഒരു അപ്സ്ട്രീം ചങ്കിന് ഒരു ടൈമർ റീ-ആംസ് ചെയ്യുന്നു (കൃത്യമായി സ്റ്റാൾ ബജറ്റിൽ വെടിവയ്ക്കുന്നു); `interval` കാലയളവിൽ `clamp(budget/4, 1s, 5s)` ഓരോ സ്ട്രീമിലും ഒരു ചെക്ക് സൂക്ഷിക്കുന്നു, അതിനാൽ ബജറ്റ് + കാലയളവിനുള്ളിൽ ഒരു സ്റ്റാൾ തീപിടിക്കുന്നു. `open-sse/utils/streamStallWatchdog.ts` ഉപയോഗിക്കുന്നു. | | `STREAM_READINESS_TIMEOUT_MS` | `80000` | ആദ്യത്തെ നോൺ-പിംഗ് SSE ഇവൻ്റ് ലഭിക്കാനുള്ള സമയം. സജ്ജീകരിക്കുമ്പോൾ `REQUEST_TIMEOUT_MS` അവകാശമാക്കുന്നു. | | `STREAM_READINESS_MAX_TIMEOUT_MS` | `180000` | വലിയ, ടൂൾ-ഹെവി അല്ലെങ്കിൽ ഉയർന്ന യുക്തിസഹമായ സ്ട്രീമിംഗ് അഭ്യർത്ഥനകൾക്കായുള്ള പരമാവധി അഡാപ്റ്റീവ് ഫസ്റ്റ് ഇവൻ്റ് റെഡിനെസ് വിൻഡോ. | | `OMNIROUTE_AGENT_GOAL_POLICY_ENABLED` | `true` | `/goal` ഹ്യൂറിസ്റ്റിക് വേണ്ടി കിൽ-സ്വിച്ച്. കണ്ടെത്തൽ — റെഡിനസ് ടൈംഔട്ടുകളും സ്ട്രീം വീണ്ടെടുക്കലും പൂർണ്ണമായി അപ്രാപ്തമാക്കുന്നതിന് `false`/`0`/`off` സജ്ജമാക്കുക, ക്ലയൻ്റ് നിയന്ത്രിത സമയപരിധി വർദ്ധിപ്പിക്കൽ ലഘൂകരിക്കുന്നത് body/headers അഭ്യർത്ഥന വഴി ഒരിക്കലും ഉയർത്തില്ല. | | `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | കണ്ടെത്തിയ `/goal` ഏജൻ്റ് റൺ അല്ലെങ്കിൽ `x-omniroute-agent-goal` ഉപയോഗിച്ച് നിർബന്ധിതമാക്കുന്ന അഭ്യർത്ഥനകൾക്കായുള്ള പരമാവധി ആദ്യ ഇവൻ്റ് റെഡിനെസ് വിൻഡോ. | | `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | കണ്ടെത്തിയ `/goal` ഏജൻ്റ് റണ്ണുകൾക്കായി നേരത്തെയുള്ള സ്ട്രീം വീണ്ടെടുക്കൽ സ്വയമേവ പ്രാപ്തമാക്കുക. ലക്ഷ്യം-നിർദ്ദിഷ്ട ഓപ്റ്റ്-ഇൻ പ്രവർത്തനരഹിതമാക്കാൻ `false`/`0`/`off` സജ്ജമാക്കുക. ഇതിന് ഓപ്പറേറ്റർ ഡിഫോൾട്ട് — ന് മുകളിലുള്ള ADD വീണ്ടെടുക്കൽ മാത്രമേ സാധ്യമാകൂ, ഇത് ഒരിക്കലും വ്യക്തമായ `STREAM_RECOVERY_ENABLED`/DB ക്രമീകരണങ്ങൾ ഒഴിവാക്കില്ല. | | `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | 502. ഡിഫോൾട്ട് ON (#11014) ഉപയോഗിച്ച് OpenAI SDK യുടെ `responses.stream()` തകർക്കുന്ന നിലവാരമില്ലാത്ത `codex.*` SSE ഇവൻ്റുകൾ (ഉദാ: `codex.rate_limits`) സ്ട്രിപ്പ് ചെയ്യുക. അവ കൈമാറാൻ `0`/`false`/`no`/`off` സജ്ജമാക്കുക. | | `OMNIROUTE_CODEX_APPSERVER_WS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ഓപ്റ്റ്-ഇൻ Codex ആപ്പ്-സെർവർ ഗതാഗതം. ഒരു പ്രാദേശിക `codex app-server` സൈഡ്കാറിൻ്റെ WebSocket എൻഡ്പോയിൻ്റ് (`ws://`/`wss://`). ഒരു ടോക്കൺ ഉപയോഗിച്ച് സജ്ജീകരിക്കുമ്പോൾ, HTTP പ്രതികരണങ്ങൾ API പകരം Codex അഭ്യർത്ഥനകൾ JSON-RPC വഴി സൈഡ്കാറിലേക്ക് റൂട്ട് ചെയ്യപ്പെടും. `providerSpecificData.codexAppServerUrl` വഴിയുള്ള ഓരോ കണക്ഷനും ക്രമീകരിക്കാവുന്നതാണ്. `open-sse/executors/codex/appServerConfig.ts` ഉപയോഗിക്കുന്നു. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ആപ്പ്-സെർവറിലേക്ക് ഇൻലൈൻ capability/bearer ടോക്കൺ അവതരിപ്പിച്ചു. ഓരോ കണക്ഷനും അസാധുവാക്കൽ: `providerSpecificData.codexAppServerToken`. | | `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ആപ്പ്-സെർവർ ശേഷി ടോക്കൺ കൈവശമുള്ള ഒരു ഫയലിലേക്കുള്ള പാത ( `codex app-server --ws-token-file` യിൽ നിന്ന്). `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` സജ്ജീകരിക്കാത്തപ്പോൾ ഉപയോഗിക്കുന്നു. ഓരോ കണക്ഷനും അസാധുവാക്കൽ: `providerSpecificData.codexAppServerTokenFile`. | | `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | വർക്കിംഗ് ഡയറക്ടറി ആപ്പ്-സെർവർ ടേൺ പ്രവർത്തിക്കുന്നു. ഓരോ കണക്ഷനും അസാധുവാക്കുന്നു: `providerSpecificData.codexAppServerCwd`. | | `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ആപ്പ്-സെർവർ ടേണിലേക്ക് (ഉദാ `never`, `on-request`) അംഗീകാര നയം കൈമാറി. ഓരോ കണക്ഷനും അസാധുവാക്കൽ: `providerSpecificData.codexAppServerApprovalPolicy`. | | `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | സാൻഡ്ബോക്സ് നയം ആപ്പ്-സെർവർ ടേണിലേക്ക് കൈമാറി (ഉദാ `read-only`, `workspace-write`, `danger-full-access`). സജ്ജീകരിക്കാത്തപ്പോൾ, എക്സിക്യൂട്ടർ സ്ഥിരസ്ഥിതിയായി `workspace-write` (കഠിനമാക്കിയത്; മുമ്പ് `danger-full-access`) ആയി മാറുന്നു. ഓരോ കണക്ഷനും അസാധുവാക്കൽ: `providerSpecificData.codexAppServerSandbox`. | | `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | ആപ്പ്-സെർവറിൻ്റെ സ്വന്തം അംഗീകാര നിർദ്ദേശങ്ങൾ സ്വയമേവ അംഗീകരിക്കുക ( ഹോസ്റ്റിലെcommand/file/permission എക്സിക്യൂഷൻ). ഡിഫോൾട്ട് ഓഫ് — പ്രോംപ്റ്റുകൾ സ്വയമേവ നിരസിക്കപ്പെട്ടു; ഹാർനെസ് ടൂൾ കോളുകളെ ബാധിക്കില്ല (അവ പ്രത്യേക `item/tool/call` പാസ്ത്രൂയിലൂടെ സഞ്ചരിക്കുന്നു). `true`/`1`/`yes` സ്വീകരിക്കുന്നു. ഓരോ കണക്ഷനും അസാധുവാക്കൽ: `providerSpecificData.codexAppServerAutoApprove`. | | `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | പ്രതികരണ തലക്കെട്ടുകൾ സ്വീകരിക്കാനുള്ള സമയം. | | `OMNIROUTE_FETCH_START_TIMEOUT_CAP_MS` | `110000` | സ്ട്രീമിംഗ് അഭ്യർത്ഥനകളിൽ (മി.സെ.) പ്രതികരണ തലക്കെട്ടുകൾക്കായി പരമാവധി കാത്തിരിപ്പ്. `0` ഈ തൊപ്പി പ്രവർത്തനരഹിതമാക്കുന്നു; ഒരു വ്യക്തമായ ദാതാവ് `fetchStartTimeoutCapMs` മുൻഗണന നൽകുന്നു. | | `OMNIROUTE_CODEX_IMAGE_RESPONSE_START_TIMEOUT_MS` | `600000` (10 മിനിറ്റ്) | നേരിട്ടും ഒരു HTTP(S)/SOCKS പ്രോക്സി മുഖേനയും പണമടച്ചുള്ള Codex image-generation/edit POSTs യ്ക്കുള്ള ആദ്യ പ്രതികരണം-ആരംഭ സമയപരിധി (മി.എസ്). അവ്യക്തമായ കാലഹരണപ്പെടലിനോ നെറ്റ്വർക്ക് പരാജയത്തിനോ ശേഷം ഈ അഭ്യർത്ഥനകൾ ഒരിക്കലും വീണ്ടും പ്ലേ ചെയ്യില്ല. എഡ്ജ് റിലേകളും (`vercel`/`deno`/`cloudflare`) ഒരു ശ്രമം നടത്തുന്നു, പക്ഷേ അവരുടെ സ്വന്തം `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` ഡെഡ്ലൈൻ നിലനിർത്തുക. | | `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30സെ) | ഓരോ നേരിട്ടുള്ള നോ-പ്രോക്സി ശ്രമത്തിനും പരമാവധി പ്രതികരണം-ആരംഭ കാത്തിരിപ്പ് (മി.സെ.). കാലഹരണപ്പെട്ട ഒരു പുതിയ സോക്കറ്റിൽ ഒരിക്കൽ വീണ്ടും ശ്രമിക്കുന്നു; ബൗണ്ട് പ്രവർത്തനരഹിതമാക്കാനും മുമ്പത്തെ സ്വഭാവം നിലനിർത്താനും `0` സജ്ജമാക്കുക. | | `OMNIROUTE_LOCAL_DIRECT_HEADERS_TIMEOUT_MS` | `300000` (5 മിനിറ്റ്) | private/LAN/loopback (ഉദാഹരണത്തിന് `localhost`, `host.docker.internal`, `192.168.x.x`) ടാർഗെറ്റ് ഹോസ്റ്റായ ഡയറക്ട് നോ-പ്രോക്സി ശ്രമങ്ങൾക്കുള്ള പ്രതികരണം-ആരംഭ ഫ്ലോർ (മിഎസ്), അതിനാൽ ഒരു നേറ്റീവ് Ollama കോൾഡ് സ്റ്റാർട്ട് മുകളിലെ 30-കളുടെ ഡിഫോൾട്ട് വഴി ഛേദിക്കപ്പെടില്ല. ഒരു ഫ്ലോർ ആയി പ്രവർത്തിക്കുന്നു: ഫലപ്രദമായ കാത്തിരിപ്പ് ഈ മൂല്യത്തേക്കാൾ വലുതാണ് `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS`; `0` അല്ലെങ്കിൽ അസാധുവായ മൂല്യം ലോക്കൽ ഫ്ലോർ നീക്കം ചെയ്യുന്നു. റിമോട്ട് ഹോസ്റ്റുകളെ ബാധിക്കില്ല. | | `OMNIROUTE_DIRECT_HEADERS_VOLUME_ADAPTIVE` | `1` | അഭ്യർത്ഥന പേലോഡ് ടയർ പ്രകാരം നേരിട്ടുള്ള പ്രതികരണ-ആരംഭ വിൻഡോ ഉയർത്തുക: 512 KB യിൽ കൂടുതലുള്ള ബോഡികൾക്ക് × 2 ലഭിക്കും, 2 MB × 3-ന് മുകളിൽ, 180 സെക്കൻഡിൽ ക്യാപ് ചെയ്തിരിക്കുന്നു, ഒരിക്കലും ഉയർന്ന നില താഴ്ത്തരുത് (ഓപ്പറേറ്റർ അസാധുവാക്കുകയോ മുകളിലുള്ള local/LAN ഫ്ലോർ). വലിയ സന്ദർഭങ്ങൾ ഇൻപുട്ട് വലുപ്പത്തിന് ആനുപാതികമായി പ്രീഫിൽ ചെയ്യുന്നു, കാരണം റീസണിംഗ് സീലിംഗ് കീ ഓണാക്കുന്നതിന് റീസണിംഗ് സെലക്ടർ ഇല്ല, അതിനാൽ ഫ്ലാറ്റ് വിൻഡോ ആരോഗ്യകരമായ സ്ലോ പ്രീഫിൽ അപ്സ്ട്രീമുകൾ കൃത്യമായി തറയിൽ മുറിക്കുന്നു. പരന്ന സ്വഭാവം പിൻ ചെയ്യാൻ `0`/`false`/`off` സജ്ജമാക്കുക. | | `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 മിനിറ്റ്) | മുകളിലുള്ള ഒരു പൂൾഡ്-അറ്റംപ്റ്റ് റെസ്പോൺസ്-സ്റ്റാർട്ട് ടൈംഔട്ടിനുശേഷം ഫ്രഷ്-സോക്കറ്റ് RETRY ശ്രമത്തിനുള്ള സീലിംഗ് (#13703). കോളർ ഇതിനകം സ്വന്തം ഡെഡ്ലൈൻ സിഗ്നൽ അറ്റാച്ചുചെയ്യുമ്പോൾ മാത്രമേ ബാധകമാകൂ (പരിഹരിച്ച കണക്ഷൻ/മോഡൽ/ദാതാവ്/`FETCH_TIMEOUT_MS` കാസ്കേഡ്); സിഗ്നലാണ് യഥാർത്ഥ ബന്ധിതവും ഉദ്ദേശിച്ച പാതയിൽ ആദ്യം തീയിടുന്നതും, അതിനാൽ ഇത് ഒരു ഫ്ലാറ്റ് ക്യാപ് — എന്നതിലുപരി ഉദാരമായ ഒരു ബാക്ക്സ്റ്റോപ്പാണ്, വീണ്ടും ശ്രമിക്കുമ്പോൾ ഒരേപോലെയുള്ള ഷോർട്ട് `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` ജാലകം പൂൾ ചെയ്ത ശ്രമമായും 504'd ആരോഗ്യകരമായ സ്ലോ-ടിടിഎഫ്ബി റീസണിംഗ് മോഡലുകളായും വീണ്ടും ഉപയോഗിച്ചു. മുകളിലെ പരന്ന നിലയ്ക്ക് താഴെ ഒരിക്കലും അനുവദിക്കരുത്; വിളിക്കുന്നയാൾ ഡെഡ്ലൈൻ സിഗ്നലൊന്നും നൽകാത്തപ്പോൾ, വീണ്ടും ശ്രമിക്കുമ്പോൾ ഫ്ലാറ്റ് ഫ്ലോർ മാറ്റമില്ലാതെ നിലനിർത്തുന്നു. | | `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | മുഴുവൻ പ്രതികരണ ബോഡിയും സ്വീകരിക്കാനുള്ള സമയം. | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | TCP കണക്ഷൻ സ്ഥാപിക്കൽ കാലഹരണപ്പെട്ടു. | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Keep-alive സോക്കറ്റ് നിഷ്ക്രിയ സമയപരിധി. | | `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | TLS ഫിംഗർപ്രിൻ്റ് പ്രോക്സി (wreq-js) കാലഹരണപ്പെട്ടു. | | `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | പ്രത്യേകമായി wreq-js TLS-ഫിംഗർപ്രിൻ്റ് ട്രാൻസ്പോർട്ടിൻ്റെ ബോഡിയിൽ ടൈം-ടു-ഫസ്റ്റ്-ബൈറ്റ് ബൗണ്ട് ചെയ്യുന്നു; തലക്കെട്ടുകൾ വന്നാലുടൻ അത് പരിഹരിക്കപ്പെടുമെന്നതിനാൽ `TLS_CLIENT_TIMEOUT_MS` മാത്രം സ്തംഭിച്ച ഒരു ശരീരം പിടിക്കാൻ കഴിയില്ല (#12656). ഒരു കാലഹരണപ്പെടൽ റെക്ക് റീഡറിനെ റദ്ദാക്കുകയും direct/proxy ഡിസ്പാച്ചറിലേക്ക് മടങ്ങുകയും ചെയ്യുന്നു; `0` വാച്ച്ഡോഗിനെ പ്രവർത്തനരഹിതമാക്കുന്നു. | | `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | OpenCode എക്സിക്യൂട്ടർ മാത്രം, `OPENCODE_RESPONSES_STALL_ROTATION` ഫീച്ചർ ഫ്ലാഗ് ഓണായിരിക്കുമ്പോൾ മാത്രം (ഡിഫോൾട്ട് ഓഫ്): സ്ട്രീം ചെയ്ത പ്രതികരണങ്ങളുടെ ആദ്യ ബോഡി ബൈറ്റിനായുള്ള കാത്തിരിപ്പ് അതിൻ്റെ തലക്കെട്ടുകൾക്ക് ശേഷം (#13484) പരിധിയാക്കുന്നു. `response.created` ഉപയോഗിച്ച് ഒരു പ്രതികരണ സ്ട്രീം തുറക്കുന്നു, അതിനാൽ ഈ വിൻഡോ കഴിഞ്ഞുള്ള നിശബ്ദത ഒരു സ്റ്റാളാണ്: അക്കൗണ്ട് തണുത്തു, അഭ്യർത്ഥന ഒരിക്കൽ അടുത്ത അക്കൗണ്ടിലേക്ക് തിരിയുന്നു; രണ്ടാമത്തെ സ്റ്റാൾ പെട്ടെന്ന് പരാജയപ്പെടുന്നു. ഫ്ലാഗ് ഓണാക്കിയാലും `0` ഗാർഡ് പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OPENCODE_RESPONSES_HEADERS_WAIT_MS` | `0` (= ഓഫ്) | OpenCode എക്സിക്യൂട്ടർ മാത്രം: സ്ട്രീം ചെയ്ത പ്രതികരണ കോളിൽ അപ്സ്ട്രീം പ്രതികരണ തലക്കെട്ടുകൾക്കായുള്ള കാത്തിരിപ്പ് പരിമിതപ്പെടുത്തുന്നു, മറ്റൊരു അക്കൗണ്ട് ഇപ്പോഴും ലഭ്യമാകുമ്പോൾ — ഒരു ക്യൂഡ് അഭ്യർത്ഥന കാത്തിരിപ്പ് നിർത്തി, പൂർണ്ണ തലക്കെട്ട് വിൻഡോ പിടിക്കുന്നതിനുപകരം നീങ്ങുന്നു. സ്ട്രീം ചെയ്ത പ്രതികരണ കോളുകളെ മാത്രമേ ബാധിക്കുകയുള്ളൂ (പ്രതികരണ സ്ട്രീം `response.created` ഉപയോഗിച്ച് തുറക്കുന്നു, അതിനാൽ നിശബ്ദത ഒരു ക്യൂവാണ്, ജനറേഷൻ അല്ല); ചാറ്റ് പൂർത്തീകരണങ്ങളും സ്ട്രീം ചെയ്യാത്ത കോളുകളും സ്പർശിക്കാത്തവയാണ്, കൂടാതെ വിൻഡോ ഫലപ്രദമായ ഫെച്ച്-സ്റ്റാർട്ട് സീലിംഗിനെ ചുരുക്കുന്നു, ഒരിക്കലും അത് നീട്ടുന്നില്ല. പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ നിർദ്ദേശിച്ച മൂല്യം: `30000`. `0` പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS` | `2` | OpenCode എക്സിക്യൂട്ടർ മാത്രം: ഒരു അഭ്യർത്ഥനയ്ക്ക് എത്ര തവണ മുകളിലുള്ള തലക്കെട്ടുകൾ-കാത്തിരിപ്പ് അടുത്ത അക്കൗണ്ടിലേക്ക് നീങ്ങിയേക്കാം. അവസാനമായി ശേഷിക്കുന്ന അക്കൗണ്ട് എല്ലായ്പ്പോഴും പൂർണ്ണ തലക്കെട്ട് വിൻഡോ സൂക്ഷിക്കുന്നു. | | `OPENCODE_PARK_AND_RESUME` | `false` | OpenCode എക്സിക്യൂട്ടർ മാത്രം: ആവർത്തിച്ചുള്ള ക്ഷണികമായ 429 സെക്കൻഡുകൾക്ക് ശേഷം (അല്ലെങ്കിൽ ഒരു പുതിയ പൂൾ-സ്ട്രെയിൻ മാർക്കർ) ഹൃദയമിടിപ്പോടെ അഭ്യർത്ഥന പാർക്ക് ചെയ്യുക, തുടർന്ന് മുഴുവൻ ഫ്ലീറ്റിനെയും ഫാൻ ചെയ്യുന്നതിനുപകരം 3 സീക്വൻഷ്യൽ അക്കൗണ്ടുകളുടെ ഒരു ക്യാപ്ഡ് ലെഗ് റീപ്ലേ ചെയ്യുക (#13924). ഡിഫോൾട്ടായി ഓഫ്: ഓരോ 429-ഉം മുമ്പത്തെപ്പോലെ തന്നെ അടുത്ത അക്കൗണ്ടിലേക്ക് തിരിക്കുന്നു. | | `OPENCODE_PARK_REPLAY_SERVE_SETASIDE` | `false` | OpenCode എക്സിക്യൂട്ടർ മാത്രം: പാർക്ക്-ആൻഡ്-റെസ്യൂം റീപ്ലേ ലെഗിലെ ഓരോ കൂൾഡൗൺ-റെഡി അക്കൗണ്ടും പ്രോക്സി-റിഫ്യൂസൽ മെമ്മറി മാറ്റിവെക്കുമ്പോൾ, ഒന്നും റീപ്ലേ ചെയ്യുന്നതിനുപകരം എങ്ങനെയും അവ സേവിക്കുക (#14851, #14750 ലേക്ക് ഫോളോ-അപ്പ്). ഡിഫോൾട്ടായി ഓഫ്: #14750 മുമ്പുള്ളതുപോലെ, ആ സാഹചര്യത്തിൽ റീപ്ലേ ലെഗ് ശൂന്യമാണ്. | | `STREAM_READINESS_STALL_RETRY` | `false` | സ്ട്രീമിംഗ് ചാറ്റ് മാത്രം: ഉപയോഗയോഗ്യമായ ഒരു ഇവൻ്റ് നിർമ്മിക്കുന്നതിന് മുമ്പ് ആദ്യത്തെ അപ്സ്ട്രീം ബോഡി സ്റ്റാൾ ചെയ്യപ്പെടുമ്പോൾ, അതേ തയ്യാറെടുപ്പ് ബജറ്റും അക്കൗണ്ട് പിഴയും കൂടാതെ അതേ റൂട്ടിംഗ് പാതയിലൂടെ ഒരു ബൗണ്ടഡ് രണ്ടാമത്തെ ശ്രമം നൽകുക. ഡിഫോൾട്ടായി ഓഫ്: സ്തംഭിച്ച ആദ്യ ബോഡി വീണ്ടും ശ്രമിക്കാതെ അഭ്യർത്ഥന പരാജയപ്പെടുത്തുന്നു. | | `OPENCODE_POOL_RESELECT` | `false` | OpenCode എക്സിക്യൂട്ടർ മാത്രം: ഒരു ആംബിയൻ്റ് പൂൾ സന്ദർഭത്തിന് കീഴിലുള്ള ഒരു പ്രോക്സി-ലെസ് അക്കൗണ്ടിലെ ഒരു എക്സ്-ബക്കറ്റ് പ്രൊവൈഡറിൽ നിന്ന് 429-ന് ശേഷം, അതേ എഗ്രസ് വിലാസം വീണ്ടും ശ്രമിക്കുന്നതിന് പകരം മറ്റൊരു അംഗത്തിന് അടുത്ത ശ്രമത്തിനായി കണക്ഷൻ പൂളിനോട് ആവശ്യപ്പെടുക. ഓർഡറുകൾ, ഒരിക്കലും ഒഴിവാക്കില്ല: ഒരു ക്ഷീണിച്ച കുളം നിലവിലെ പെരുമാറ്റം നിലനിർത്തുന്നു. ഡിഫോൾട്ടായി ഓഫ്: ഓരോ 429-ഉം മുമ്പത്തെപ്പോലെ തന്നെ അടുത്ത അക്കൗണ്ടിലേക്ക് തിരിക്കുന്നു. | | `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | OpenCode എക്സിക്യൂട്ടർ മാത്രം: പാർക്കിംഗിന് മുമ്പ് പൂൾ-സ്ട്രെയിൻ മാർക്കറിൻ്റെ പാത്ത് അസാധുവാക്കുക (`{since, reason, ttl_s}`, ഡിഫോൾട്ട് `/tmp/opencode-pool-strain.json`, #13924). ഒരു പുതിയ മാർക്കർ വീണ്ടും എണ്ണാതെ പാർക്ക് ചെയ്യുന്നു; ഇല്ലാത്തതോ പഴകിയതോ ആയത് വീണ്ടും ബർസ്റ്റ് കൗണ്ടറിലേക്ക് വീഴുന്നു. | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | `/v1` ബ്രിഡ്ജ് അഭ്യർത്ഥനകൾക്കുള്ള പ്രോക്സി ഹോപ്പ് സമയപരിധി. | | `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | സ്വയം-ഹോസ്റ്റ് ചെയ്ത സന്ദർഭത്തിൽ Firecrawl വെബ്-ഫെച്ച് എക്സിക്യൂട്ടറിനെ പോയിൻ്റ് ചെയ്യുക (API കീ ഓപ്ഷണൽ ഓഫ്-ക്ലൗഡ്). | | `FIRECRAWL_TIMEOUT_MS` | `30000` | ഫയർക്രാൾ വെബ്-ഫെച്ച് എക്സിക്യൂട്ടറിനായുള്ള ഓരോ അഭ്യർത്ഥന സമയപരിധി. | | `TAVILY_BASE_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | താവിലി `/usage` ക്വാട്ട ലഭ്യമാക്കുന്നതിനുള്ള അടിസ്ഥാന URL (ദാതാവിൻ്റെ പരിധികൾ); അത് `api.tavily.com` ൽ പോയിൻ്റ് ചെയ്യുമ്പോൾ അവഗണിച്ചു. സജ്ജീകരിക്കാത്തത് കണക്ഷൻ്റെ ബേസ് URL ലേക്ക് മടങ്ങുന്നു. | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `300000` | പാലത്തിനായുള്ള മൊത്തത്തിലുള്ള സെർവർ അഭ്യർത്ഥന കാലഹരണപ്പെട്ടു. | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | പാലത്തിലൂടെ പ്രതികരണ തലക്കെട്ടുകൾ അയയ്ക്കാനുള്ള സമയം. | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | ബ്രിഡ്ജ് കീപ്-ലൈവ് ഐഡൽ ടൈംഔട്ട്. | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | റോ സോക്കറ്റ് കാലഹരണപ്പെട്ടു (0 = പ്രവർത്തനരഹിതമാക്കി). | | `SHUTDOWN_TIMEOUT_MS` | `30000` | ഫോഴ്സ് എക്സിറ്റിന് മുമ്പുള്ള SIGTERM/SIGINT യുടെ ഗ്രേസ് പിരീഡ്. | | `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | `FETCH_TIMEOUT_MS` സജ്ജീകരിക്കാത്തപ്പോൾ `src/shared/utils/fetchTimeout.ts` ഉപയോഗിക്കുന്ന ഫാൾബാക്ക്. | | `OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS` | `8000` | `src/shared/network/safeOutboundFetch.ts` ലെ `validationRead`, `modelsProbe` പ്രീസെറ്റുകൾക്കുള്ള സമയപരിധി (മി.സെ.). ഡാഷ്ബോർഡിൽ active/error ഇടയിൽ ഫ്ളാപ്പുചെയ്യുന്നത് തടയാൻ സ്ലോ എൻഡ് പോയിൻ്റുകൾക്കായി ഉയർത്തുക (Cerebras, Cloudflare AI, Groq). അസാധുവായ (< 1000) അല്ലെങ്കിൽ നോൺ-ന്യൂമറിക് മൂല്യങ്ങൾക്കായി 8000മി.എസ്. | | `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | `open-sse/utils/proxyFetch.ts` (#9158)-ൽ റിലേ-നിർദ്ദിഷ്ട ലഭ്യമാക്കൽ കാലഹരണപ്പെട്ടു. client/agent ടൈംഔട്ടിന് മുമ്പ് (~ 30s) ഒരു ഹംഗ് റിലേ പരാജയപ്പെടണം, അതിനാൽ വിളിക്കുന്നവർ ഒരു സാധാരണ അപ്സ്ട്രീം ടൈംഔട്ടിന് പകരം ഒരു റിലേ-നിർദ്ദിഷ്ട പരാജയം കാണുന്നു. `29000` ൽ ക്യാപ് ചെയ്തിരിക്കുന്നതിനാൽ അത് എപ്പോഴും ആദ്യം തീപിടിക്കും. | | `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | `open-sse/utils/proxyFetch.ts` (#9158) ലെ direct/relay/proxy വീണ്ടും ശ്രമിക്കൂ-ഒരിക്കൽ പാതകൾക്കായി പങ്കിട്ട റീട്രി ബാക്ക്ഓഫ്. `0` = ഉടൻ വീണ്ടും ശ്രമിക്കുക. | | `OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS` | `60000` | നേറ്റീവ് wreq-js അഭ്യർത്ഥന സമയപരിധി (`claudeTlsClient.ts`). | | `OMNIROUTE_CLAUDE_TLS_GRACE_MS` | `10000` | നേറ്റീവ് ടൈംഔട്ടിന് മുകളിൽ സമ്പൂർണ്ണ JS ഹാർഡ്-ഡെഡ്ലൈൻ ഗ്രേസ് ചേർത്തു. | | `OMNIROUTE_PPLX_TLS_TIMEOUT_MS` | `30000` | നേറ്റീവ് wreq-js അഭ്യർത്ഥന സമയപരിധി (`perplexityTlsClient.ts`). | | `OMNIROUTE_PPLX_TLS_GRACE_MS` | `10000` | നേറ്റീവ് ടൈംഔട്ടിന് മുകളിൽ സമ്പൂർണ്ണ JS ഹാർഡ്-ഡെഡ്ലൈൻ ഗ്രേസ് ചേർത്തു. | | `OMNIROUTE_PPLX_SEARCH_HINT` | `0` (ഓഫ്) | "നിങ്ങൾക്ക് അന്തർനിർമ്മിത വെബ് തിരയൽ ഉണ്ട്. തിരയൽ ഫലങ്ങൾ ഉപയോഗിച്ച് ചോദ്യങ്ങൾക്ക് നേരിട്ട് ഉത്തരം നൽകുക." വിളിക്കുന്നയാളുടെ സിസ്റ്റം സന്ദേശത്തിലേക്ക് (`perplexity-web/protocol.ts`). ഡിഫോൾട്ടായി — ഓഫാകും, എന്തായാലും ക്ലയൻ്റുകളെ കോഡിംഗ് ചെയ്യുന്നതിനുള്ള മെറ്റാ-കമൻററിയായി വാചകം മറുപടികളിലേക്ക് ലീക്ക് ചെയ്യുന്നു. പുനഃസ്ഥാപിക്കാൻ `1`/`true`/`yes`/`on` സജ്ജമാക്കുക. | | `OMNIROUTE_GROK_TLS_TIMEOUT_MS` | `60000` | നേറ്റീവ് wreq-js അഭ്യർത്ഥന സമയപരിധി (`grokTlsClient.ts`). | | `OMNIROUTE_GROK_TLS_GRACE_MS` | `10000` | നേറ്റീവ് ടൈംഔട്ടിന് മുകളിൽ സമ്പൂർണ്ണ JS ഹാർഡ്-ഡെഡ്ലൈൻ ഗ്രേസ് ചേർത്തു. | | `OMNIROUTE_NOTION_TLS_TIMEOUT_MS` | `30000` | നേറ്റീവ് wreq-js അഭ്യർത്ഥന സമയപരിധി (`notionTlsClient.ts`); `notion-web` ദീർഘകാല തലമുറകൾക്കായി `180000` ലേക്കുള്ള അഭ്യർത്ഥന പ്രകാരം ഇത് ഉയർത്തുന്നു. | | `OMNIROUTE_NOTION_TLS_GRACE_MS` | `10000` | നേറ്റീവ് ടൈംഔട്ടിന് മുകളിൽ സമ്പൂർണ്ണ JS ഹാർഡ്-ഡെഡ്ലൈൻ ഗ്രേസ് ചേർത്തു. | | `OMNIROUTE_BROWSER_POOL` | `on` | ബ്രൗസർ പിന്തുണയുള്ള വെബ്-കുക്കി ചാറ്റിനായി പങ്കിട്ട Playwright ബ്രൗസർ പൂൾ (`browserPool.ts`); പ്രവർത്തനരഹിതമാക്കാൻ `off` സജ്ജമാക്കുക. | | `OBSCURA_BIN` | `auto-detect` | ബ്രൗസർ പൂളും Cloudflare പ്ലേഗ്രൗണ്ട് എക്സിക്യൂട്ടറും (`open-sse/services/obscura.ts`) പ്രാഥമിക എഞ്ചിനായി ഉപയോഗിക്കുന്ന `obscura` ബൈനറിയിലേക്കുള്ള പാത; സജ്ജീകരിക്കാത്തപ്പോൾ സിസ്റ്റം PATH ൽ നിന്ന് സ്വയം കണ്ടെത്തി. | | `OBSCURA_CDP_ENDPOINT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | സ്പോൺ ചെയ്യുന്നതിനുപകരം ഇതിനകം പ്രവർത്തിക്കുന്ന ഒബ്സ്ക്യൂറയിലേക്ക് (`http://host:port`) പോയിൻ്റ് ചെയ്യുക; മൊഡ്യൂളിന് ആ പ്രക്രിയ സ്വന്തമല്ല (`open-sse/services/obscura.ts`). | | `OBSCURA_PORT` | `random free port` | സ്പോൺഡ് `obscura serve` വ്യക്തമായ പോർട്ട്; സജ്ജീകരിക്കാത്തപ്പോൾ ഒരു സ്വതന്ത്ര പോർട്ട് സ്വയമേവ തിരഞ്ഞെടുക്കപ്പെടും (`open-sse/services/obscura.ts`). | | `WEB_COOKIE_USE_BROWSER` | `0` | ബ്രൗസർ പിന്തുണയുള്ള പാതയിലേക്ക് ഒരു വെബ്-കുക്കി ചാറ്റ് അഭ്യർത്ഥന തിരഞ്ഞെടുക്കുക (`browserBackedChat.ts`); പ്രവർത്തനക്ഷമമാക്കാൻ `1`. | | `KIMI_WEB_BASE_URL` | `https://www.kimi.ai` | Kimi വെബ് (ഇൻ്റർനാഷണൽ kimi.ai Connect-RPC) എക്സിക്യൂട്ടർ (`kimi-web.ts`) എന്നതിനായുള്ള അടിസ്ഥാന URL ; mirror/proxy അവസാന പോയിൻ്റുകൾക്കായി മാത്രം അസാധുവാക്കുക. | | `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Kimi വെബ് എക്സിക്യൂട്ടറിനായുള്ള പൂർണ്ണ ചാറ്റ് എൻഡ് പോയിൻ്റ് (`kimi-web.ts`). | | `OMNIROUTE_LOGIN_BROWSER_PATH` | _(യാന്ത്രികമായി കണ്ടെത്തി)_ | Adobe Firefly ഇൻ്ററാക്ടീവ് ബ്രൗസർ സൈൻ-ഇൻ (`adobeFireflyBrowserLogin.ts`)-ന് വേണ്ടി എക്സിക്യൂട്ടബിൾ ചെയ്യാവുന്ന ഒരു സിസ്റ്റം Chrome/Edge ലേക്കുള്ള പാത; ഓരോ OS ഓട്ടോ-ഡിറ്റക്ഷനും അസാധുവാക്കുന്നു. | | `OMNIROUTE_STANDALONE_DIR` | _.build/ ഒറ്റപ്പെട്ട ഔട്ട്പുട്ട്_ | പോസ്റ്റ്-ബിൽഡ് കളോക്കേഷൻ സ്റ്റെപ്പ് (`scripts/build/colocate-standalone.mjs`) ഉപയോഗിക്കുന്ന സ്റ്റാൻഡേലോൺ ഔട്ട്പുട്ട് ഡയറക്ടറിയുടെ ബിൽഡ്-ടൈം ഓവർറൈഡ്; പണിയുന്നതിനുള്ള ടൂളിംഗ്, റൺടൈം അല്ല. | കോംബോ ടാർഗെറ്റ് ശ്രമങ്ങൾ പരിഹരിച്ച അപ്സ്ട്രീം അഭ്യർത്ഥന കാലഹരണപ്പെടൽ അവകാശമാക്കുന്നു (`FETCH_TIMEOUT_MS`, അല്ലെങ്കിൽ `REQUEST_TIMEOUT_MS` അത് ലഭ്യമാക്കുമ്പോൾ സ്ഥിരസ്ഥിതി നൽകുമ്പോൾ). കോംബോ ഫാൾബാക്ക് വേഗത്തിലാക്കാൻ മാത്രം കോമ്പോ, കോംബോ ഡിഫോൾട്ടുകൾ അല്ലെങ്കിൽ പ്രൊവൈഡർ അസാധുവാക്കൽ എന്നിവയിൽ `targetTimeoutMs` സജ്ജമാക്കുക; നിലവിലെ അപ്സ്ട്രീം ടൈംഔട്ടിന് മുകളിലുള്ള മൂല്യങ്ങൾ അപ്സ്ട്രീം ടൈംഔട്ടിലേക്ക് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. `comboTimeoutMs` പരാജയ ലക്ഷ്യങ്ങളിലുടനീളം ഒരു പ്രത്യേക പൂർണ്ണ-കോംബോ വാൾ-ക്ലോക്ക് ബജറ്റാണ്. അൺലിമിറ്റഡ് `comboPredicates.ts` നിലനിർത്താൻ ഇത് സജ്ജീകരിക്കാതിരിക്കുക അല്ലെങ്കിൽ `0` വിടുക. ഒരു പോസിറ്റീവ് മൂല്യം കോംബോയ്ക്കുള്ള ആ സുരക്ഷാവലയെ മാറ്റിസ്ഥാപിക്കുന്നു. `targetTimeoutMs` നേക്കാൾ `comboTimeoutMs` നീളത്തിൽ സൂക്ഷിക്കുക, അതിനാൽ ആദ്യ ലക്ഷ്യത്തിന് ശേഷവും പരാജയത്തിന് സമയമുണ്ട്. ### സർക്യൂട്ട് ബ്രേക്കർ ത്രെഷോൾഡുകൾ പ്രൊവൈഡർ-ലെവൽ സർക്യൂട്ട് ബ്രേക്കർ ട്യൂണിംഗ്. 500 + കണക്ഷനുകൾക്കായി v3.6 മുതൽ ഉപയോഗിച്ച സ്കെയിൽ ചെയ്ത മൂല്യങ്ങൾ ഡിഫോൾട്ടുകൾ പ്രതിഫലിപ്പിക്കുന്നു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------------------------- | ----------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD` | `8` | `open-sse/config/constants.ts` | ബ്രേക്കർ ട്രിപ്പുകൾക്ക് മുമ്പ് OAuth ദാതാക്കളുടെ തുടർച്ചയായ പരാജയ പരിധി. | | `OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS` | `60000` | `open-sse/config/constants.ts` | OAuth പ്രൊവൈഡർ ബ്രേക്കറിനായി വിൻഡോ (മിഎസ്) പുനഃസജ്ജമാക്കുക. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD` | `12` | `open-sse/config/constants.ts` | API-കീ ദാതാക്കൾക്കുള്ള തുടർച്ചയായ പരാജയ പരിധി. | | `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | API-കീ പ്രൊവൈഡർ ബ്രേക്കറിനായുള്ള വിൻഡോ (മിസെ) പുനഃസജ്ജമാക്കുക. | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD` | `2` | `open-sse/config/constants.ts` | പ്രാദേശിക ദാതാക്കൾക്കുള്ള തുടർച്ചയായ പരാജയ ത്രെഷോൾഡ് (Ollama, LM Studio, ...). | | `OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS` | `15000` | `open-sse/config/constants.ts` | ലോക്കൽ പ്രൊവൈഡർ ബ്രേക്കറിനായി വിൻഡോ (മിഎസ്) പുനഃസജ്ജമാക്കുക. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD` | `10` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: മുഴുവൻ OAuth ദാതാവും കൂൾഡൗണിലേക്ക് പ്രവേശിക്കുന്നതിന് മുമ്പ് വിൻഡോയ്ക്കുള്ളിലെ പരാജയങ്ങൾ. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS` | `900000` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: OAuth ദാതാക്കൾക്കുള്ള റോളിംഗ് പരാജയം-കൌണ്ട് വിൻഡോ (മിഎസ്). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: OAuth പ്രൊവൈഡർ ത്രെഷോൾഡ് എത്തിക്കഴിഞ്ഞാൽ കൂൾഡൗൺ (മിഎസ്). | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD` | `5` | `open-sse/config/constants.ts` | OAuth ദാതാവ് DEGRADED യിൽ പ്രവേശിക്കുന്നത് ഇത്രയധികം പരാജയങ്ങളിൽ. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER` | `8` | `open-sse/config/constants.ts` | OAuth പ്രൊവൈഡർ max resetTimeout എസ്കലേഷൻ മൾട്ടിപ്ലയർ. | | `OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT` | `2` | `open-sse/config/constants.ts` | ഇത്രയും ഓപ്പൺ സൈക്കിളുകൾക്ക് ശേഷംOAuth പ്രൊവൈഡർ വർദ്ധിക്കുന്നു. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD` | `15` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: മുഴുവൻ API-കീ ദാതാവും കൂൾഡൗണിലേക്ക് പ്രവേശിക്കുന്നതിന് മുമ്പ് വിൻഡോയ്ക്കുള്ളിലെ പരാജയങ്ങൾ. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: എപിഐ-കീ ദാതാക്കൾക്കുള്ള റോളിംഗ് പരാജയം-കൌണ്ട് വിൻഡോ (മിഎസ്). | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: API-കീ പ്രൊവൈഡർ ത്രെഷോൾഡ് എത്തിക്കഴിഞ്ഞാൽ കൂൾഡൗൺ (മിഎസ്). | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | API-കീ ദാതാവ് DEGRADED പ്രവേശിക്കുന്നത് ഇത്രയധികം പരാജയങ്ങളിൽ. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | API-കീ ദാതാവ് max resetTimeout എസ്കലേഷൻ മൾട്ടിപ്ലയർ. | | `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | ഇത്രയും ഓപ്പൺ സൈക്കിളുകൾക്ക് ശേഷം API-കീ ദാതാവ് വർദ്ധിക്കുന്നു. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD` | `2` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: മുഴുവൻ പ്രാദേശിക ദാതാക്കളും കൂൾഡൗണിലേക്ക് പ്രവേശിക്കുന്നതിന് മുമ്പുള്ള പരാജയങ്ങൾ. | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS` | `300000` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ-ലെവൽ ബ്രേക്കർ: പ്രാദേശിക ദാതാക്കൾക്കുള്ള റോളിംഗ് പരാജയം-കൌണ്ട് വിൻഡോ (മി.എസ്). | | `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | പ്രൊവൈഡർ ലെവൽ ബ്രേക്കർ: ലോക്കൽ പ്രൊവൈഡർ ത്രെഷോൾഡിൽ എത്തിക്കഴിഞ്ഞാൽ കൂൾഡൗൺ (മിഎസ്). | | `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | ഒരു അപ്സ്ട്രീം 429-ൽ `Retry-After` (#14573) ഇല്ലാതിരിക്കുമ്പോൾ മൾട്ടി-കീ API-കീ റൊട്ടേഷൻ മുഖേന ഓരോ കീ കൂൾഡൗൺ (മിഎസ്) പ്രയോഗിക്കുന്നു. നോൺ-പോസിറ്റീവ് അല്ലെങ്കിൽ നോൺ-ന്യൂമറിക് മൂല്യങ്ങൾ ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. | | `OMNIROUTE_AVALANCHE_PROTECTION_ENABLED` | `false` | `open-sse/services/accountFallback/antiAvalanche.ts` | ഓപ്റ്റ്-ഇൻ ആൻ്റി അവലാഞ്ച് ഗാർഡ്: ഒരു വ്യക്തമായ `true` മാത്രമേ അത് പ്രവർത്തനക്ഷമമാക്കൂ. ഓണായിരിക്കുമ്പോൾ, ഒരു മിനിറ്റിന് ടോക്കണുകളുടെ പരിധി (ഒപ്പം സന്ദർഭ-ഓവർഫ്ലോ 400) പേരുനൽകുന്ന 429 ദാതാവിൻ്റെ ശേഷിക്കുന്ന കീകളിലുടനീളം കാസ്കേഡിംഗ് പരാജയം നിർത്തുന്നു. ഒരു ക്വാട്ട-തീർന്നുപോയ 429 പ്രോംപ്റ്റ് എത്ര വലുതാണെങ്കിലും പരാജയപ്പെടുന്നു, കൂടാതെ HTTP 413-നെ ബാധിക്കില്ല (ഇത് മറ്റൊരു അക്കൗണ്ടിൽ വീണ്ടും ശ്രമിക്കാൻ #13350 നിലനിർത്തുന്നു). | | `OMNIROUTE_AVALANCHE_BURST_COOLDOWN_MS` | `60000` | `open-sse/services/accountFallback/antiAvalanche.ts` | ഗാർഡ് വെടിവയ്ക്കുമ്പോൾ, വർദ്ധിച്ചുവരുന്ന ലോക്കൗട്ടിന് പകരം മോഡൽ ലോക്കൗട്ട് കൂൾഡൗൺ (മിഎസ്) പ്രയോഗിക്കുന്നു. ദൈർഘ്യമേറിയ അപ്സ്ട്രീം റീസെറ്റ് എപ്പോഴും വിജയിക്കും. നോൺ-പോസിറ്റീവ് അല്ലെങ്കിൽ നോൺ-ന്യൂമറിക് മൂല്യങ്ങൾ ഡിഫോൾട്ടിലേക്ക് മടങ്ങുന്നു. | | `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | ഒരു കോൺടെക്സ്റ്റ്-കാഷെ പിൻ ദാതാവ് അനാരോഗ്യകരമാണെന്ന് കണക്കാക്കുകയും പരാജയത്തിന് പിൻ ഉപേക്ഷിക്കുകയും ചെയ്യുന്ന ബാക്ക്ഓഫ് ഡെപ്ത്. | | `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | ഒരു കോൺടെക്സ്റ്റ്-കാഷെ പിൻ ഡ്രോപ്പ് ചെയ്യുന്നതിനുമുമ്പ് ഹ്രസ്വമായ താൽക്കാലിക കൂൾഡൗണുകൾ സഹിച്ചുനിൽക്കുന്ന ആൻ്റി-ഫ്ലാപ്പ് വിൻഡോ (എംഎസ്). | ### രംഗങ്ങൾ | രംഗം | കോൺഫിഗറേഷൻ | | ------------------------------------------ | ------------------------------------------------------------- | | **ദീർഘകാല കോഡ് സൃഷ്ടിക്കൽ** | `REQUEST_TIMEOUT_MS=900000` (15 മിനിറ്റ്) | | **ബൗണ്ട് ചെയ്ത മൊത്തം സ്ട്രീം ആയുസ്സ്** | `STREAM_ACTIVE_TIMEOUT_MS=1260000` (21 മിനിറ്റ്) | | **API ഉൽപ്പാദനം വേഗത്തിൽ പരാജയപ്പെടുന്നു** | `API_BRIDGE_PROXY_TIMEOUT_MS=10000` | | **വിപുലീകരിച്ച ചിന്താ മാതൃകകൾ** | `STREAM_IDLE_TIMEOUT_MS=300000` (കഷ്ണങ്ങൾക്കിടയിൽ 5 മിനിറ്റ്) | --- ## 16. ലോഗിംഗ് ലോഗിംഗ് സിസ്റ്റം stdout, റൊട്ടേറ്റഡ് ലോഗ് ഫയലുകളിലേക്ക് എഴുതുന്നു. എല്ലാ കോൺഫിഗറേഷനും `src/lib/logEnv.ts` ആണ് വായിക്കുന്നത്. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | ----------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `APP_LOG_LEVEL` | `info` | ഏറ്റവും കുറഞ്ഞ ലോഗ് ലെവൽ: `debug`, `info`, `warn`, `error`. | | `APP_LOG_FORMAT` | `text` | ഔട്ട്പുട്ട് ഫോർമാറ്റ്: `text` (മനുഷ്യർക്ക് വായിക്കാൻ കഴിയുന്നത്) അല്ലെങ്കിൽ `json` (ഘടനാപരമായത്). | | `APP_LOG_TO_FILE` | `true` | stdout-നൊപ്പം ഫയൽ ചെയ്യാൻ ലോഗുകൾ എഴുതുക. | | `APP_LOG_FILE_PATH` | `logs/application/app.log` | ഫയൽ പാത്ത് ലോഗ് ചെയ്യുക (പ്രോജക്റ്റ് റൂട്ട് അല്ലെങ്കിൽ `DATA_DIR` യുമായി ബന്ധപ്പെട്ടത്). | | `APP_LOG_MAX_FILE_SIZE` | `50M` | റൊട്ടേഷന് മുമ്പുള്ള പരമാവധി ഫയൽ വലുപ്പം. സ്വീകരിക്കുന്നു: `50M`, `1G`, `512K`, അല്ലെങ്കിൽ പ്ലെയിൻ ബൈറ്റുകൾ. | | `APP_LOG_RETENTION_DAYS` | `7` | റൊട്ടേറ്റഡ് ആപ്ലിക്കേഷൻ ലോഗ് ഫയലുകൾ സൂക്ഷിക്കാനുള്ള ദിവസങ്ങൾ. | | `APP_LOG_MAX_FILES` | `20` | പരമാവധി റൊട്ടേറ്റഡ് ലോഗ് ഫയൽ ബാക്കപ്പുകൾ. | | `CALL_LOG_RETENTION_DAYS` | `7` | ഡാറ്റാബേസിൽ request/call ലോഗ് എൻട്രികൾ സൂക്ഷിക്കാനുള്ള ദിവസങ്ങൾ. | | `CALL_LOG_MAX_ENTRIES` | `10000` | ഇൻ-മെമ്മറി ബഫറിൽ പരമാവധി കോൾ ലോഗ് എൻട്രികൾ. | | `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | അരിവാൾകൊണ്ടുവരുന്നതിന് മുമ്പ് `call_logs` SQLite പട്ടികയിലെ പരമാവധി വരികൾ. | | `ENABLE_REQUEST_LOGS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ഡാഷ്ബോർഡ് ക്രമീകരണം അസാധുവാക്കിക്കൊണ്ട് വിശദമായ അഭ്യർത്ഥന ലോഗിൻ ചെയ്യുകയോ ഓഫാക്കുകയോ ചെയ്യുക. | | `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (1 മണിക്കൂർ) | ഇൻ-മെമ്മറി ക്ലീനപ്പിന് മുമ്പുള്ള അനാഥ സജീവ അഭ്യർത്ഥന ലോഗ് എൻട്രികൾക്കുള്ള പരമാവധി പ്രായം. | | `MAX_PENDING_DETAILS` | `5000` | തീർച്ചപ്പെടുത്താത്ത പരമാവധി വിശദാംശങ്ങൾ (പോസിറ്റീവ് പൂർണ്ണസംഖ്യ); എണ്ണം തൊപ്പി: സ്വീപ്പ്; byte/map ക്യാപ്സ്: തിരുകുക. | | `CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS` | `false` | `call_log_pipeline_enabled=true` ആയിരിക്കുമ്പോൾ സ്ട്രീം കഷണങ്ങൾ പൈപ്പ്ലൈൻ ആർട്ടിഫാക്റ്റുകളിൽ സംഭരിക്കുക. ഡിസ്ക് സേവ് ചെയ്യുന്നതിന് ഡിഫോൾട്ടായി ഓപ്റ്റ്-ഇൻ (`true`) — ഓഫ് ചെയ്യുക. | | `CALL_LOG_PIPELINE_MAX_SIZE_KB` | `512` | `call_log_pipeline_enabled=true` ആയിരിക്കുമ്പോൾ KB യിൽ പരമാവധി പൈപ്പ്ലൈൻ കോൾ ലോഗ് ആർട്ടിഫാക്റ്റ് വലുപ്പം. | | `PROXY_LOGS_TABLE_MAX_ROWS` | `100000` | അരിവാൾകൊണ്ടുവരുന്നതിന് മുമ്പ് `proxy_logs` SQLite പട്ടികയിലെ പരമാവധി വരികൾ. | | `PROXY_LOG_INCLUDE_IPS` | `false` | `[ProxyEgress]` കൺസോൾ ലോഗുകളിൽ client/egress IPs, അക്കൗണ്ട് പ്രിഫിക്സുകൾ എന്നിവ ഉൾപ്പെടുത്തുക. dashboard/database പ്രോക്സി-ലോഗ് റെക്കോർഡുകൾ മുഴുവൻ വിശദാംശങ്ങളും നിലനിർത്തുന്നു. | | `PROXY_LOG_FIRST_CHUNK_TIMING` | `false` | പ്രോക്സി-ലോഗ് വരികളിൽ `first_chunk_ms` (ആദ്യ ഉപയോഗപ്രദമായ ബോഡി ബൈറ്റിലേക്ക് ആരംഭിക്കുക) രേഖപ്പെടുത്താൻ `"true"` അല്ലെങ്കിൽ `"1"` ആയി സജ്ജമാക്കുക. ഓരോ അപ്സ്ട്രീം ബോഡിയും അലസമായ പാസ്ത്രൂ സ്ട്രീമിൽ പൊതിഞ്ഞ്, ബൈറ്റ് വന്നാൽ വരി പാച്ച് ചെയ്യുന്നു; ഡിഫോൾട്ടായി ഓഫ് ആയതിനാൽ പ്രതികരണങ്ങൾ സ്പർശിക്കാതെ കടന്നുപോകുന്നു. | | `APP_LOG_ROTATION_CHECK_INTERVAL_MS` | `60000` (1 മിനിറ്റ്) | എത്ര തവണ `src/lib/logRotation.ts` സജീവ ലോഗ് ഫയൽ വലുപ്പം വീണ്ടും പരിശോധിക്കുന്നു. | | `CHAT_LOG_TEXT_LIMIT` | `65536` | ചാറ്റ് ലോഗ് ആർട്ടിഫാക്റ്റുകളിൽ പരമാവധി സ്ട്രിംഗ് ദൈർഘ്യം നിലനിർത്തുന്നു (സ്ഥിരസ്ഥിതി 64 KB). | | `CHAT_LOG_ARRAY_TAIL_ITEMS` | `128` | ചാറ്റ് ലോഗ് പേലോഡുകൾ വെട്ടിച്ചുരുക്കുമ്പോൾ വാലിൽ നിന്ന് നിലനിർത്തുന്ന അറേ ഇനങ്ങളുടെ എണ്ണം. | | `CHAT_LOG_MAX_DEPTH` | `6` | ചാറ്റ് ലോഗ് പേലോഡുകൾ വെട്ടിച്ചുരുക്കുന്നതിന് മുമ്പുള്ള പരമാവധി നെസ്റ്റിംഗ് ഡെപ്ത്. | | `CHAT_LOG_MAX_OBJECT_KEYS` | `80` | ചാറ്റ് ലോഗ് പേലോഡുകളിൽ (0 = അൺലിമിറ്റഡ്) നിലനിർത്തിയിരിക്കുന്ന പരമാവധി ഒബ്ജക്റ്റ് കീകൾ. | | `CHAT_LOG_MAX_BODY_KB` | `1024` | പൂർണ്ണ ക്ലോണിന് പകരം ഒരു വെറും സംഗ്രഹം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നതിന് മുമ്പ് മുഴുവൻ request/response ശരീര വലുപ്പം (KB). ദൈർഘ്യമേറിയ ഏജൻ്റ് സംഭാഷണങ്ങൾ ഡാഷ്ബോർഡിലെ യഥാർത്ഥ സന്ദേശങ്ങൾക്ക് പകരം ഒരു പ്ലെയ്സ്ഹോൾഡർ കാണിക്കുകയാണെങ്കിൽ ഇത് ഉയർത്തുക. | | `CHAT_DEBUG_FILE` | `false` | ശരിയാകുമ്പോൾ, `serializeArtifactForStorage` വലുപ്പം അടിസ്ഥാനമാക്കിയുള്ള വെട്ടിച്ചുരുക്കൽ ഒഴിവാക്കുന്നു. ഡീബഗ് മാത്രം. | --- ## 17. മെമ്മറി ഒപ്റ്റിമൈസേഷൻ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | -------------------------------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_HEAP_DIAGNOSTICS_ENABLED` | `0` (ഓഫ്) | `src/lib/healthzLag.ts` ൽ നിന്ന് V8 ഹീപ്പ് പ്രഷർ മെട്രിക്സ് ലോഗ് ചെയ്യാൻ `1` സജ്ജമാക്കുക. ലോഗുകളുടെ വലുപ്പങ്ങളും വിമാനങ്ങളുടെ എണ്ണവും, ഒരിക്കലും ഉള്ളടക്കമോ ട്രെയ്സുകളോ സ്നാപ്പ്ഷോട്ടുകളോ അഭ്യർത്ഥിക്കരുത്. ഇവൻ്റ്-ലൂപ്പ് സ്റ്റാൾ റെക്കോർഡറിനുള്ളിൽ പ്രവർത്തിക്കുന്നു, അതിനാൽ `OMNIROUTE_EVENT_LOOP_STALL_THRESHOLD_MS=0` അത് ഓഫാക്കുന്നു. | | `OMNIROUTE_HEAP_DIAGNOSTICS_THRESHOLD_MB` | `900` | ഒരു ഓപ്റ്റ്-ഇൻ ഡയഗ്നോസ്റ്റിക് ലോഗ് പ്രവർത്തനക്ഷമമാക്കുന്ന heapUsed (MiB) യ്ക്കുള്ള പോസിറ്റീവ് ത്രെഷോൾഡ്. അസാധുവായ മൂല്യങ്ങൾ 900 MiB ഉപയോഗിക്കുന്നു; ഹൈ-ഹീപ്പ് സന്ദേശങ്ങൾ 60 സെക്കൻഡിൽ ഒരു തവണയായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. | | `OMNIROUTE_MEMORY_MB` | _auto_ (നഗ്നമായ ലോഹം);** Docker ചിത്രത്തിൽ `1024`** | **ശുപാർശ ചെയ്തത്** Docker/standalone V8 ഹീപ്പ് പരിധി (MB). സജ്ജീകരിക്കാത്തപ്പോൾ, ചലനാത്മകമായി കാലിബ്രേറ്റ് ചെയ്യുന്നു (സിസ്റ്റം RAM ൻ്റെ~ 35% , `[512, 4096]` ലേക്ക് ക്ലാമ്പ് ചെയ്തിരിക്കുന്നു); മൊത്തം മെമ്മറി വായിക്കാൻ കഴിയാത്തപ്പോൾ `512` തറ മാത്രമാണ്. `run-standalone.mjs` (Docker CMD), an** വ്യക്തമായ** മൂല്യം `--max-old-space-size` ഒപ്പം ചേർത്തിരിക്കുന്നു** വിജയിക്കുന്നു** ഒരു വൈരുദ്ധ്യമുള്ള NODE_OPTIONS ഹീപ്പ് ഫ്ലാഗിന് മുകളിൽ (V8 ലാസ്റ്റ് ഫ്ലാഗ്). `omniroute serve` ഇപ്പോഴും നിലവിലുള്ള NODE_OPTIONS ഹീപ്പാണ് (#5238) ഇഷ്ടപ്പെടുന്നത്. രണ്ടും വ്യത്യസ്ത സംഖ്യകളായി സജ്ജീകരിക്കരുത് — മൂല്യങ്ങളെയും വിജയിയെയും നാമകരണം ചെയ്യുന്ന ഒരു മുന്നറിയിപ്പ് പ്രക്രിയ ലോഗ് ചെയ്യുന്നു.** ഔദ്യോഗിക Docker ഇമേജ് എപ്പോഴും `1024` സജ്ജീകരിക്കുന്നു, അതിനാൽ കാലിബ്രേഷൻ ഒരിക്കലും അവിടെ പ്രവർത്തിക്കില്ല.** കോഡിംഗ്-ഏജൻ്റ് `/v1/responses` `8192` ആവശ്യമാണ് -`12288` പ്ലസ് cgroup ഹെഡ്റൂം — [Docker ഗൈഡ് — റൺടൈം RAM](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents) കാണുക. | | `OMNIROUTE_RSS_PRESSURE_MB` | _auto_ (`max(3072, 2 × OMNIROUTE_MEMORY_MB)`; `OMNIROUTE_MEMORY_MB` സജ്ജീകരിക്കാത്തപ്പോൾ ഓഫ്) | `open-sse/utils/resourcePressure.ts` | V8 `heapUsed` കാണാൻ കഴിയാത്ത native/external മെമ്മറിയ്ക്കുള്ള സമ്പൂർണ്ണ പ്രോസസ്സ്-RSS ഫ്യൂസ് (MB); അതിനു മുകളിലുള്ള പുതിയ അഭ്യർത്ഥനകൾക്ക് 503 `resource_pressure` ലഭിക്കും. ഒരു സ്പൈക്കിന് ശേഷം RSS അപൂർവ്വമായി കുറയുന്നു, അതിനാൽ ഇത് `OMNIROUTE_PRESSURE_SELF_RESTART` മായി ജോടിയാക്കുക. | | `PROMPT_CACHE_MAX_SIZE` | `50` | പരമാവധി കാഷെ ചെയ്ത സിസ്റ്റം പ്രോംപ്റ്റ് എൻട്രികൾ. | | `PROMPT_CACHE_MAX_BYTES` | `2097152` (2 MB) | പരമാവധി മൊത്തം പ്രോംപ്റ്റ് കാഷെ വലുപ്പം. | | `PROMPT_CACHE_TTL_MS` | `300000` (5 മിനിറ്റ്) | പ്രോംപ്റ്റ് കാഷെ എൻട്രി TTL. | | `SEMANTIC_CACHE_MAX_SIZE` | `100` | പരമാവധി കാഷെ ചെയ്ത താപനില = 0 പ്രതികരണങ്ങൾ. | | `SEMANTIC_CACHE_MAX_BYTES` | `4194304` (4 MB) | പരമാവധി മൊത്തം സെമാൻ്റിക് കാഷെ വലുപ്പം. | | `SEMANTIC_CACHE_TTL_MS` | `1800000` (30 മിനിറ്റ്) | സെമാൻ്റിക് കാഷെ എൻട്രി TTL. | | `OMNIROUTE_SEMANTIC_CACHE_PRUNE_INTERVAL_MS` | `1800000` (30 മിനിറ്റ്) | SQLite പ്രൂൺ ഇടവേള. `0` സ്റ്റാർട്ടപ്പും ആനുകാലിക റണ്ണുകളും പ്രവർത്തനരഹിതമാക്കുന്നു; `60000` ന് താഴെയുള്ള മറ്റ് മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. `2147483647` ms-ന് മുകളിലുള്ള മൂല്യങ്ങൾ നോഡിൻ്റെ പരമാവധി ടൈമർ കാലതാമസത്തിലേക്ക് ക്ലാമ്പ് ചെയ്യുന്നു, 1ms പോളിംഗിലേക്കുള്ള ഓവർഫ്ലോ ഒഴിവാക്കുന്നു. 1 സെക്കൻ്റിന് ശേഷം ആദ്യ ഓട്ടം; ടൈമറുകൾ പരിശോധിച്ചിട്ടില്ല, റണ്ണുകൾ ഒരിക്കലും ഓവർലാപ്പ് ചെയ്യാറില്ല. | | `OMNIROUTE_SEMANTIC_CACHE_PRUNE_BATCH_SIZE` | `2000` | ഓരോ SQLite പ്രൂൺ DELETE വരികൾ, `[100, 50000]` ലേക്ക് ഘടിപ്പിച്ചിരിക്കുന്നു; ബാച്ചുകൾക്കിടയിലുള്ള ഇവൻ്റ് ലൂപ്പിലേക്ക് വഴങ്ങുന്നു. | | `OMNIROUTE_SEMANTIC_CACHE_PRUNE_MAX_BATCHES` | `50` | `[1, 10000]` ലേക്ക് ക്ലാംപ് ചെയ്തിരിക്കുന്ന, കാലഹരണപ്പെടുന്നതും ഓപ്ഷണൽ റോ-ക്യാപ് പാസുകളിലുടനീളം ഓരോ റണ്ണിനും പങ്കിട്ട DELETE ബാച്ച് ബജറ്റ്. പിന്നീടുള്ള റണ്ണുകളിൽ ബാക്ക്ലോഗുകൾ തുടരുന്നു. | | `OMNIROUTE_SEMANTIC_CACHE_MAX_ROWS` | `0` | ഓപ്ഷണൽ SQLite വരി തൊപ്പി (`0` = ഒന്നുമില്ല). `expires_at <=` ഇല്ലാതാക്കിയ ശേഷം റൺ-സ്റ്റാർട്ട് ISO ടൈംസ്റ്റാമ്പ്, ഏറ്റവും പഴയ `created_at` ഒഴിപ്പിക്കുക, തുടർന്ന് `rowid`, ലൈവ് വരികൾ ഉൾപ്പെടെ, പങ്കിട്ട ബാച്ച് ബജറ്റിന് വിധേയമായി. സംഖ്യകൾ പൂർണ്ണസംഖ്യകളായി ചുരുക്കിയിരിക്കുന്നു (സുരക്ഷിത-പൂർണ്ണസംഖ്യ പരിധി വരെ). നാല് പ്രൂൺ വേരിയബിളുകൾക്കുമുള്ള ശൂന്യമായ, നോൺ-ന്യൂമറിക്, നോൺ-ഫിനിറ്റ് അല്ലെങ്കിൽ നെഗറ്റീവ് മൂല്യങ്ങൾ അവയുടെ ഡിഫോൾട്ടുകളിലേക്ക് മടങ്ങുന്നു; അംശങ്ങൾ വൃത്താകൃതിയിലാണ്. പ്രൂണിംഗ് TTL, മെമ്മറി LRU അല്ലെങ്കിൽ വെക്റ്റർ-കാഷെ സ്വഭാവം മാറ്റില്ല. | | `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | ഒരേസമയം ഒരു ലൈവ് ഇൻ-മെമ്മറി സൂചിക നിലനിർത്തുന്ന ലോക്കൽ-കോർപ്പസ് റൂട്ടുകൾ (`src/lib/localCorpus/configured.ts`). LRU: പരിധിയിൽ, ഏറ്റവും കുറച്ച് അടുത്ത കാലത്ത് ഉപയോഗിച്ച റൂട്ടിൻ്റെ സൂചിക പുറത്താക്കപ്പെടുകയും അതിൻ്റെ അടുത്ത അന്വേഷണത്തിൽ പുനർനിർമ്മിക്കുകയും ചെയ്യുന്നു. ഏറ്റവും കുറഞ്ഞത് `1` വരെ ഉറപ്പിച്ചിരിക്കുന്നു; ഒരു നോൺ-നമ്പറിക് മൂല്യം സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. | | `STREAM_HISTORY_MAX` | `50` | ഡാഷ്ബോർഡ് ലൈവ് വ്യൂ ബഫറിലെ ഏറ്റവും പുതിയ സ്ട്രീം ഇവൻ്റുകൾ. | | `CONTEXT_LENGTH_DEFAULT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `CONTEXT_LENGTH_` വേരിയബിൾ ഇല്ലാത്ത എല്ലാ ദാതാവിനും ആഗോള സന്ദർഭ-ദൈർഘ്യം അസാധുവാക്കൽ (ടോക്കണുകൾ). സജ്ജമാക്കുമ്പോൾ, അത്** മാറ്റിസ്ഥാപിക്കുന്നു** ആ ദാതാക്കൾക്കുള്ള കാറ്റലോഗ്, ഡാഷ്ബോർഡ് അസാധുവാക്കൽ, രജിസ്ട്രി മൂല്യങ്ങൾ; സജ്ജീകരിക്കാത്തപ്പോൾ, OmniRoute അതിൻ്റെ ബിൽറ്റ്-ഇൻ ചെയിൻ ഉപയോഗിക്കുന്നു, അതിൻ്റെ അവസാന ആശ്രയം `128000` ആണ്. [ഓരോ ദാതാവിനും സന്ദർഭ ദൈർഘ്യം](#per-provider-context-length-context_length_provider) കാണുക. | | `USAGE_TOKEN_BUFFER` | `100` | ഉപയോഗ ക്വാട്ടകൾ ട്രാക്ക് ചെയ്യുമ്പോൾ അധിക ടോക്കൺ ഹെഡ്റൂം റിസർവ് ചെയ്തു. | ### ഓരോ ദാതാവിനും സന്ദർഭ ദൈർഘ്യം (`CONTEXT_LENGTH_`) `open-sse/services/contextManager.ts` (`getEnvOverride()` / `resolveTokenLimit()`) എന്നും വായിക്കുന്നു a** ഓരോ ദാതാവിനും** റൺടൈമിൽ പ്രൊവൈഡർ ID ൽ നിന്ന് നിർമ്മിച്ചിരിക്കുന്ന ഫോം, അതിനാൽ മുകളിലുള്ള പട്ടികയിലോ `.env.example` യിലോ ഇത് വരി വരിയായി ലിസ്റ്റ് ചെയ്യാൻ കഴിയില്ല. **പേര്.** `CONTEXT_LENGTH_`, ഇവിടെ `` എന്നത് ദാതാവാണ് ID അപ്പർ-കേസ്, `A-Z` / `0-9` പുറത്തുള്ള എല്ലാ പ്രതീകങ്ങളും `_` ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. പ്രൊവൈഡർ ID അപരനാമ റെസല്യൂഷനു ശേഷമുള്ള കാനോനിക്കൽ ആണ് (ഒരു ചെറിയ അപരനാമം പരിഹരിച്ചുകഴിഞ്ഞാൽ ഒരു `provider/model` സ്ട്രിംഗിൻ്റെ `provider` ഭാഗം). ഇഷ്ടാനുസൃത OpenAI- അല്ലെങ്കിൽ ആന്ത്രോപിക്-അനുയോജ്യമായ നോഡുകൾ അവയുടെ ജനറേറ്റഡ് നോഡ് ID ഉപയോഗിക്കുന്നു, അതിനാൽ UUID എന്നത് വേരിയബിൾ നാമത്തിൻ്റെ ഭാഗമാണ്. മൂല്യം ടോക്കണുകളുടെ പോസിറ്റീവ് പൂർണ്ണസംഖ്യയാണ്; മറ്റെന്തെങ്കിലും (ശൂന്യമായ, `0`, നെഗറ്റീവ്, നോൺ-ന്യൂമറിക്) അവഗണിക്കപ്പെടുകയും റെസല്യൂഷൻ അടുത്ത ഘട്ടത്തിലേക്ക് നീങ്ങുകയും ചെയ്യുന്നു. | ദാതാവ് ID | വേരിയബിൾ നാമം | | ----------------------------------------------------------- | -------------------------------------------------------------------------- | | ഏജൻ്റ്റൂട്ടർ | CONTEXT_LENGTH_AGENTROUTER | | ഓപ്പൺ റൂട്ടർ | CONTEXT_LENGTH_OPENROUTER | | openai-compatible-chat-0f8e2c1a-5b7d-4e3f-9a6c-2d1b8e4f7a90 | CONTEXT_LENGTH_OPENAI_COMPATIBLE_CHAT_0F8E2C1A_5B7D_4E3F_9A6C_2D1B8E4F7A90 | **മുൻഗണന.** ഒരു `provider/model` ജോഡിക്ക്, ഒരു മൂല്യം നൽകുന്ന ആദ്യ ഘട്ടം വിജയിക്കുന്നു: 1. ആ ദാതാവിന്`CONTEXT_LENGTH_`. 2. `CONTEXT_LENGTH_DEFAULT` (ആഗോള പരിസ്ഥിതി അസാധുവാക്കൽ). 3. ഓരോ മോഡൽ വിൻഡോ: ഒരു സ്ഥായിയായ സന്ദർഭ അസാധുവാക്കൽ (ഡാഷ്ബോർഡിൽ സജ്ജീകരിച്ചിരിക്കുന്നു, അല്ലെങ്കിൽ ഡിസ്കവറി റീകൺസൈലർ സ്വയമേ പിൻ ചെയ്തത്, `CONTEXT_WINDOW_RECONCILE_INTERVAL` കാണുക), അല്ലാത്തപക്ഷം സമന്വയിപ്പിച്ച കാറ്റലോഗ് / models.dev മൂല്യം. 4. ദാതാവിൻ്റെ രജിസ്ട്രി `defaultContextLength`. 5. മോഡൽ-നെയിം ഹ്യൂറിസ്റ്റിക്സ് (`claude` 200000, `gemini` 1000000, `gpt` / `o1` / `o3` / `o4` / `codex` 400000). 6. ബിൽറ്റ്-ഇൻ പെർ-പ്രൊവൈഡർ ഡിഫോൾട്ടുകൾ, തുടർന്ന് `128000`. രണ്ട് പാരിസ്ഥിതിക ഘട്ടങ്ങളും ബാധകമാണ്** മുഴുവൻ ദാതാവ്** : ആ ദാതാവിൻ്റെ ഓരോ മോഡലിനും ഒരേ പരിധി ലഭിക്കുന്നു, കൂടാതെ ഓരോ മോഡൽ ഡാഷ്ബോർഡ് അസാധുവാക്കലിലും അവർ വിജയിക്കുന്നു. ഒരു ദാതാവിൻ്റെ ഒരു മോഡലിന് മാത്രം മറ്റൊരു വിൻഡോ ആവശ്യമായി വരുമ്പോൾ, പകരം ഡാഷ്ബോർഡിൽ ഒരു മോഡൽ ഓവർറൈഡ് ഉപയോഗിക്കുക. **വ്യാപ്തി.** ഈ ശൃംഖല അഭ്യർത്ഥന-സമയ സന്ദർഭ-വിൻഡോ പരിശോധന നടത്തുന്നു ( `context_length_exceeded` / "ഇൻപുട്ട് സന്ദർഭ വിൻഡോയെ കവിയുന്നു" `open-sse/handlers/chatCore.ts` ലെ നിരസിക്കൽ ), പ്രോംപ്റ്റ് കംപ്രഷൻ ബജറ്റുകളും കോംബോ സന്ദർഭ പരിധികളും. `GET /v1/models` പരസ്യം ചെയ്യുന്ന `context_length` ഇപ്പോഴും കാറ്റലോഗിൽ നിന്നോ രജിസ്ട്രി മെറ്റാഡാറ്റയിൽ നിന്നോ വരാം, പരിസ്ഥിതി അസാധുവാക്കൽ പ്രതിഫലിപ്പിക്കുമെന്ന് ഉറപ്പില്ല. **ഉദാഹരണം.** കാറ്റലോഗ് 128,000 റിപ്പോർട്ട് ചെയ്യുമ്പോൾ 1,050,000-ടോക്കൺ വിൻഡോ സ്വീകരിക്കുന്ന ഒരു ദാതാവ്: ```dotenv CONTEXT_LENGTH_AGENTROUTER=1050000 ``` സെർവർ മാറ്റിയതിന് ശേഷം അത് പുനരാരംഭിക്കുക: സെർവർ പ്രോസസ്സ് പരിതസ്ഥിതിയിൽ നിന്ന് മൂല്യം വായിക്കുന്നു. ന്** ഡെസ്ക്ടോപ്പ് അപ്ലിക്കേഷൻ** സെർവർ ഒരു ചൈൽഡ് പ്രോസസായി പ്രവർത്തിക്കുന്നു, ആപ്ലിക്കേഷൻ സമാരംഭിച്ചതിന് ശേഷം ഒരു സിസ്റ്റം വേരിയബിൾ സെറ്റ് കാണുന്നില്ല; ആപ്പ് ലോഡ് ചെയ്യുന്ന `.env` ഫയലിൽ ലൈൻ ഇടുക ( [Electron ഗൈഡിലെ ലുക്ക്അപ്പ് ഓർഡർ: എൻവയോൺമെൻ്റ് ഫയൽ ലുക്ക്അപ്പ്](../guides/ELECTRON_GUIDE.md#environment-file-lookup) ), തുടർന്ന് പൂർണ്ണമായും ഉപേക്ഷിച്ച് ആപ്പ് വീണ്ടും സമാരംഭിക്കുക. ### കംപ്രഷൻ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | ------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_RTK_TRUST_PROJECT_FILTERS` | സജ്ജീകരിക്കാത്തത് | `.rtk/trust.json` ഹാഷ് ഇല്ലാതെ പ്രോജക്റ്റ് `.rtk/filters.json` വിശ്വസിക്കുക. നിയന്ത്രിത പ്രാദേശിക വികസനത്തിൽ മാത്രം ഉപയോഗിക്കുക. | ### മെമ്മറി എഞ്ചിൻ (പ്ലാൻ 21) ### മെമ്മറി, കഴിവുകൾ, ടോക്കൺ പുതുക്കൽ എന്നിവയുടെ ഇവൻ്റ്-ലൂപ്പ് ചെലവ് (#10349) OmniRoute a ആണ്** ഒറ്റ നോഡ് പ്രക്രിയ** . മെമ്മറി extraction/retrieval, സ്കിൽസ് ഇഞ്ചക്ഷൻ, പ്രൊവൈഡർ ടോക്കൺ പുതുക്കൽ എന്നിവ ഇതിൽ പ്രവർത്തിക്കുന്നു** ഒരേ ഇവൻ്റ് ലൂപ്പ്** `GET /healthz` ആയും ഡാഷ്ബോർഡായും. അവർ ഒരു തൊഴിലാളി ത്രെഡ് അല്ല. | ജോലി | കോഡ് | സ്ഥിരസ്ഥിതി | ഓപ്പറേറ്റർ നിയന്ത്രണം | | ------------------------------------ | ---------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | മെമ്മറി എക്സ്ട്രാക്ഷൻ / വീണ്ടെടുക്കൽ | `src/lib/memory/` | ഡാഷ്ബോർഡ്**memoryEnabled** (ഡിഫോൾട്ട് ഓൺ) | ഓഫ് ചെയ്യുക** ക്രമീകരണങ്ങൾ → മെമ്മറി** . ക്രമീകരണങ്ങളിൽ ഫീച്ചർ പ്രവർത്തനരഹിതമാക്കുന്നതിന് അപ്പുറം പ്രത്യേക എൻവി കിൽ സ്വിച്ച് ഇല്ല. | | നൈപുണ്യ കുത്തിവയ്പ്പ് | `src/lib/skills/injection.ts` | ഡാഷ്ബോർഡ്**skillsEnabled** (ഡിഫോൾട്ട് ഓൺ) | ഓഫ് ചെയ്യുക** ക്രമീകരണങ്ങൾ → Memory/Skills** (`skillsEnabled`). താഴെയുള്ള സാൻഡ്ബോക്സ് നോബുകൾ ഇൻജക്ഷൻ ഓണാക്കിയതിന് ശേഷമുള്ള ബൗണ്ട് എക്സിക്യൂഷൻ മാത്രം. | | ടോക്കൺ പുതുക്കൽ | `src/sse/services/tokenRefresh.ts` | ബന്ധിപ്പിച്ച OAuth/web ദാതാക്കൾക്കായി ഓണാണ് | ദാതാവിനെ വിച്ഛേദിക്കുക അല്ലെങ്കിൽ ടോക്കണുകൾ സാധുവായി തുടരാൻ അനുവദിക്കുക; ഇന്ന് `TOKEN_REFRESH=0` env ഇല്ല. | ശാന്തമായ ബോക്സിൽ `/healthz` മന്ദഗതിയിലാണെങ്കിൽ, ആദ്യം മെമ്മറി + കഴിവുകൾ പ്രവർത്തനരഹിതമാക്കുക, തുടർന്ന് catalog/compression ലോഡ് പരിശോധിക്കുക (#10303, #9685). ഈ സവിശേഷതകൾ `await` പോയിൻ്റുകളിൽ ഫലം നൽകുന്നു, പക്ഷേ ഇപ്പോഴും ഒരു ത്രെഡിനായി മത്സരിക്കുന്നു. പെർസിസ്റ്റൻ്റ് മെമ്മറി സബ്സിസ്റ്റത്തിനായി (`src/lib/memory/`) ലെയർ, വെക്റ്റർ സ്റ്റോർ, റീറാങ്കിംഗ് നോബുകൾ എന്നിവ ഉൾച്ചേർക്കുന്നു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | ------------------------------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (5 മിനിറ്റ്) | ഇൻ-മെമ്മറി ഉൾച്ചേർക്കൽ കാഷെക്കായിTTL (ഓരോ source/model/dim ഒപ്പിനും). | | `MEMORY_EMBEDDING_CACHE_MAX` | `1000` | എംബെഡിംഗ് കാഷെയിൽ സൂക്ഷിച്ചിരിക്കുന്ന പരമാവധി LRU എൻട്രികൾ. | | `MEMORY_TRANSFORMERS_MODEL` | `Xenova/all-MiniLM-L6-v2` | ഓപ്റ്റ്-ഇൻ `@huggingface/transformers` ലോക്കൽ MiniLM പൈപ്പ്ലൈനിനായുള്ള HF റിപ്പോ ഐഡി (~ 23 MB int8, ~ 400 MB RAM). | | `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | സ്റ്റാറ്റിക് potion/Model2Vec ലുക്ക്അപ്പ്-ടേബിൾ എംബെഡറിനായിHF റിപ്പോ ഐഡി. കാഷെ ഡിറിലേക്ക് അലസമായി ഡൗൺലോഡ് ചെയ്തു. | | `MEMORY_STATIC_CACHE_DIR` | `/embeddings` | സ്റ്റാറ്റിക് പോഷൻ മോഡൽ ഫയലുകൾ കാഷെ ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഡയറക്ടറി. സജ്ജീകരിക്കാത്തപ്പോൾ `DATA_DIR` യുടെ കീഴിലുള്ള ഡിഫോൾട്ടുകൾ. | | `HF_HUB_ENDPOINT` | `https://huggingface.co` | `staticPotion.ts` ഉപയോഗിക്കുന്ന ഹഗ്ഗിംഗ് ഫേസ് ഹബ് ബേസ് URL അസാധുവാക്കുക (ഉദാഹരണത്തിന് വായു വിടവുള്ള സജ്ജീകരണങ്ങൾക്കുള്ള മിറർ എൻഡ്പോയിൻ്റ്). | | `MEMORY_VEC_TOP_K` | `20` | `src/lib/memory/vectorStore.ts` നുള്ളിലെ `sqlite-vec` ബ്രൂട്ട്-ഫോഴ്സ് വെക്റ്റർ തിരയൽ ഉപയോഗിക്കുന്ന ഡിഫോൾട്ട് ടോപ്പ്-കെ. | | `MEMORY_RRF_K` | `60` | ഹൈബ്രിഡ് FTS5 + വെക്ടർ വീണ്ടെടുക്കലിനായി (sqlite-vec റെസിപ്പി) റെസിപ്രോക്കൽ റാങ്ക് ഫ്യൂഷൻ കോൺസ്റ്റൻ്റ് `k`. | | `VECTOR_STORE_DISABLE_VEC` | `false` | `getVectorStore()` ലെTest/diagnostic സീം (`src/lib/memory/vectorStore.ts`): `true`, വെക്ടർ സ്റ്റോറിനെ `null` ലേക്ക് നിർബന്ധിക്കുന്നു ( `sqlite-vec` ഇല്ലാതെ ഒരു cloud/WASM പരിസ്ഥിതിയെ അനുകരിക്കുന്നു), മെമ്മറി വീണ്ടെടുക്കൽ FTS5 കീവേഡ് തിരയലിലേക്ക് തരംതാഴ്ത്തുന്നു. ഉൽപ്പാദനത്തിൽ സജ്ജമാക്കാതെ വിടുക. | | `NOTION_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | Notion ബാക്കെൻഡിനുള്ള API കീ ( `genericBackend.ts` അറിയപ്പെടുന്ന ബാക്കെൻഡ് പ്രീസെറ്റ് ഉപയോഗിക്കുന്നു). | | `NOTION_API_URL` | `https://api.notion.com/v1` | Notion API യ്ക്കുള്ള അടിസ്ഥാന URL (സ്വയം-ഹോസ്റ്റ് ചെയ്ത Notion ഇതരമാർഗ്ഗങ്ങൾക്കായി അസാധുവാക്കാനാകും). | | `OBSIDIAN_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | Obsidian വോൾട്ട് ബാക്കെൻഡിനുള്ള API കീ ( `genericBackend.ts` അറിയപ്പെടുന്ന ബാക്കെൻഡ് പ്രീസെറ്റ് ഉപയോഗിക്കുന്നു). | | `OBSIDIAN_API_URL` | `http://localhost:27123` | Obsidian Vault API യ്ക്കുള്ള അടിസ്ഥാന URL (റിമോട്ട് വോൾട്ടിനായി അസാധുവാക്കാനാകും). | | `MEMORY_TYPED_DECAY_ENABLED` | `false` | TV6 ടൈപ്പ് ചെയ്ത മെമ്മറി ഡീകേ മാസ്റ്റർ സ്വിച്ച്.** ഓപ്റ്റ്-ഇൻ (ഡിഫോൾട്ട് ഓഫ്)** — സ്വീപ്പ്** ഇല്ലാതാക്കുന്നു** ദ്രവിച്ച ഓർമ്മകൾ. ഇത് ഓഫാക്കിയാൽ, `access_count`/`last_accessed_at` ശുദ്ധമായ ടെലിമെട്രിയാണ്, ഒന്നും ഒരിക്കലും ഇല്ലാതാക്കില്ല. | | `MEMORY_TYPED_DECAY_EPISODIC_DAYS` | `30` | TTL (ദിവസങ്ങൾ) അതിനുശേഷം ഉപയോഗിക്കാത്ത `episodic` മെമ്മറി നശിക്കുന്നു. `0` എപ്പിസോഡിക് പ്രതിരോധശേഷി ഉണ്ടാക്കുന്നു. നീണ്ടുനിൽക്കുന്ന തരങ്ങൾ (`factual`/`procedural`/`semantic`) എല്ലായ്പ്പോഴും പ്രതിരോധശേഷിയുള്ളവയാണ്. ജീർണിക്കുന്ന ക്ലോക്ക് വീണ്ടും `last_accessed_at` യെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. | | `MEMORY_TYPED_DECAY_ACCESS_IMMUNITY` | `3` | ഒരു മെമ്മറി കുത്തിവച്ച `>=` തരം പരിഗണിക്കാതെ തന്നെ ജീർണ്ണതയിൽ നിന്ന് പ്രതിരോധിക്കും. `0` ആക്സസ് പ്രതിരോധശേഷി പ്രവർത്തനരഹിതമാക്കുന്നു. | | `MEMORY_TYPED_DECAY_SWEEP_INTERVAL` | `0` (അപ്രാപ്തമാക്കിയത്) | `src/lib/memory/typedDecay.ts` ലെ ഓപ്ഷണൽ ആനുകാലിക ശോഷണ സ്വീപ്പിനുള്ള ഇടവേള (സെക്കൻഡ്). `0`/ unset = ആനുകാലിക സ്വീപ്പ് ഇല്ല. ഇരട്ടി ഓപ്റ്റ്-ഇൻ: കൂടാതെ `MEMORY_TYPED_DECAY_ENABLED=true` ആവശ്യമാണ്. | | `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ഒരു `system` സന്ദേശം സ്വീകരിക്കുന്ന കോമയാൽ വേർതിരിച്ച ദാതാവിൻ്റെ ഐഡികൾ (കേസ്-ഇൻസെൻസിറ്റീവ്)** സൂചിക 0-ൽ മാത്രം** (`src/lib/memory/injection.ts`). ഇവയ്ക്കായി, മൾട്ടി-ടേൺ സംഭാഷണങ്ങളിൽ കാഷെ-സേഫ് മിഡ്-അറേ മെമ്മറി സ്പ്ലൈസ് സുരക്ഷിതമല്ല, അതിനാൽ മെമ്മറി merged/prepended ആണ് പ്രധാന സിസ്റ്റം സന്ദേശം. സ്ഥിരസ്ഥിതികൾ `xiaomi-mimo`/`mimo` ലേക്ക് മാത്രം; സ്വയം-ഹോസ്റ്റ് ചെയ്ത OpenAI-അനുയോജ്യമായ എൻഡ്പോയിൻ്റുകൾക്കായി വിപുലീകരിക്കുക (ഉദാ. Qwen3.5 +/3.6) അതിൻ്റെ ചാറ്റ് ടെംപ്ലേറ്റ് ഒരേ സിംഗിൾ-ലീഡിംഗ്-സിസ്റ്റം-മെസേജ് നിയന്ത്രണങ്ങൾ നടപ്പിലാക്കുന്നു. | ### ലോ-റാം Docker ഉദാഹരണം `128` ഡാഷ്ബോർഡ്-മാത്രം. നീണ്ട `/v1/responses` സമയത്ത് ഈ കൂമ്പാരം `FATAL ERROR` ലെ കോഡിംഗ് ഏജൻ്റുകൾ. ഈ ഉദാഹരണം ഒരു 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. വിലനിർണ്ണയ സമന്വയം ബാഹ്യ ഉറവിടങ്ങളിൽ നിന്നുള്ള ഓട്ടോമാറ്റിക് മോഡൽ വിലനിർണ്ണയ ഡാറ്റ സമന്വയം. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------- | --------------------- | ------------------------ | ------------------------------------------ | | `PRICING_SYNC_ENABLED` | `false` | `src/lib/pricingSync.ts` | ഓപ്റ്റ്-ഇൻ ആനുകാലിക വിലനിർണ്ണയ സമന്വയം. | | `PRICING_SYNC_INTERVAL` | `86400` (24 മണിക്കൂർ) | `src/lib/pricingSync.ts` | നിമിഷങ്ങൾക്കുള്ളിൽ ഇടവേള സമന്വയിപ്പിക്കുക. | | `PRICING_SYNC_SOURCES` | `litellm` | `src/lib/pricingSync.ts` | കോമയാൽ വേർതിരിച്ച ഡാറ്റ ഉറവിടങ്ങൾ. | --- ## അരീന ELO സമന്വയം | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------- | --------------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | ആനുകാലിക അരീന AI ലീഡർബോർഡ് ELO സമന്വയം, ഡാഷ്ബോർഡ് ഫീച്ചർ ഫ്ലാഗുകളിൽ നിന്നോ `false` ഉപയോഗിച്ചോ കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. | | `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | `GET /v1/models` യിലെ മോഡൽ ഐഡികൾക്കായി ഉപയോഗിക്കുന്ന പ്രിഫിക്സ് ഫോം. `dual` എല്ലാ മോഡലുകൾക്കും ഹ്രസ്വ അപരനാമ പ്രിഫിക്സും കാനോനിക്കൽ പ്രൊവൈഡർ പ്രിഫിക്സും പരസ്യം ചെയ്യുന്നു (ബാക്ക്വേർഡ് കോംപാറ്റിബിളിറ്റി — കാറ്റലോഗിനെ ഏകദേശം ഇരട്ടിയാക്കുന്നു); `alias` ഓരോ മോഡലിനും ഒരു ഐഡി പുറപ്പെടുവിക്കുന്നു; `canonical` പൂർണ്ണമായ ദാതാവ്-ഐഡി പ്രിഫിക്സ് മാത്രമേ പുറപ്പെടുവിക്കുന്നുള്ളൂ (ഇതിനകം തന്നെ കാനോനിക്കൽ ഐഡി എന്ന അപരനാമമുള്ള ദാതാക്കൾ അവരുടെ ഒറ്റ എൻട്രി നിലനിർത്തുന്നു). `?prefix=alias` ഉപയോഗിച്ച് ഓരോ അഭ്യർത്ഥനയിലും ഉപഭോക്താക്കൾക്ക് അസാധുവാക്കാനാകും. [API_REFERENCE](API_REFERENCE.md#model-id-prefixes-prefix) കാണുക. | | `ARENA_ELO_SYNC_INTERVAL` | `86400` (24 മണിക്കൂർ) | `src/lib/arenaEloSync.ts` | നിമിഷങ്ങൾക്കുള്ളിൽ ഇടവേള സമന്വയിപ്പിക്കുക. | --- ## PromptQL കളിസ്ഥല ദാതാവ് (Unofficial/Experimental) prompt.ql.app (`src/shared/constants/providers/web-cookie.ts`) എന്നതിനായുള്ള റിവേഴ്സ്-എൻജിനീയർഡ് GraphQL സെഷൻ ബ്രിഡ്ജ്. എല്ലാ ഓപ്ഷണൽ — ഡിഫോൾട്ടുകളും പബ്ലിക് പ്ലേഗ്രൗണ്ട് എൻഡ് പോയിൻ്റുകളിൽ പോയിൻ്റ് ചെയ്യുന്നു; ഒരു self-hosted/alternate PromptQL വിന്യാസത്തിനായി മാത്രം അസാധുവാക്കുക. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | `PROMPTQL_GRAPHQL_ENDPOINT` | `https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql` | `open-sse/executors/promptql.ts` | chat/session പ്രവർത്തനങ്ങൾക്ക് ഉപയോഗിക്കുന്ന GraphQL എൻഡ്പോയിൻ്റ്. | | `PROMPTQL_CREDITS_ENDPOINT` | `https://data.pro.ql.app/v1/graphql` | `open-sse/executors/promptql.ts`, `open-sse/services/usage/promptql.ts` | ക്രെഡിറ്റ് balance/usage. അന്വേഷിക്കാൻ ഉപയോഗിക്കുന്ന GraphQL എൻഡ്പോയിൻ്റ് | | `PROMPTQL_TOKEN_REFRESH_URL` | `https://auth.pro.ql.app/ddn/project/token` | `open-sse/executors/promptql.ts` | ഏറ്റവും മികച്ച ടോക്കൺ പുതുക്കലിനായി എൻഡ്പോയിൻ്റ് ഉപയോഗിക്കുന്നു. | | `PROMPTQL_POLL_TIMEOUT_MS` | `180000` | `open-sse/executors/promptql.ts` | സമയപരിധിക്ക് മുമ്പ് `thread_events` വോട്ടെടുപ്പ് നടത്താനുള്ള പരമാവധി സമയം (മി.സെ.). | --- ## HyperAgent വെബ് പ്രൊവൈഡർ (Unofficial/Experimental) hyperagent.com (`src/shared/constants/providers/web-cookie.ts`) എന്നതിനായുള്ള റിവേഴ്സ് എഞ്ചിനീയറിംഗ് സെഷൻ ബ്രിഡ്ജ്. ഓപ്ഷണൽ — പൊതു billing/usage എൻഡ് പോയിൻ്റിലെ ഡിഫോൾട്ട് പോയിൻ്റുകൾ; ഒരു self-hosted/alternate HyperAgent വിന്യാസത്തിനായി മാത്രം അസാധുവാക്കുക. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------- | --------------------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------- | | `HYPERAGENT_USAGE_URL` | `https://hyperagent.com/api/settings/billing/usage` | `open-sse/services/usage/hyperagent.ts` | billing/usage ക്രെഡിറ്റ് ബ്ലോക്കുകൾ ലഭ്യമാക്കാൻ ഉപയോഗിക്കുന്ന അവസാന പോയിൻ്റ്. | --- ## വിലയില്ലാത്ത ഉപയോഗ ബജറ്റ് നയം | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------ | -------------------------------------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `UNPRICED_USAGE_BUDGET_POLICY` | _(സജ്ജീകരിച്ചിട്ടില്ല; ബൂളിയൻ ഒഴിവാക്കൽ പ്രവർത്തനക്ഷമമാക്കിയില്ലെങ്കിൽ പരാജയം അടച്ചു)_ | `src/shared/utils/featureFlags.ts` | ഓരോ കീ daily/weekly USD പരിധികൾ: `fail_closed` യഥാർത്ഥമായി വിലയില്ലാത്ത ഉപയോഗം തടയുന്നു; വിലയുള്ള ചെലവ് നടപ്പിലാക്കുമ്പോൾ `count_as_zero` ഇത് $0 ആയി കണക്കാക്കുന്നു. ഒരു വ്യക്തമായ enum ( env ന് മുമ്പുള്ള DB ) ബൂളിയൻ ഒഴിവാക്കലിനെ അസാധുവാക്കുന്നു. അസാധുവായ മൂല്യങ്ങളും വിലനിർണ്ണയ പരാജയങ്ങളും പരാജയപ്പെട്ടു. | | `USAGE_LIMIT_IGNORE_UNPRICED` | `false` | `src/shared/utils/featureFlags.ts` | അപ്സ്ട്രീം ബൂളിയൻ അനുയോജ്യത ഒഴിവാക്കൽ: വ്യക്തമായ enum നയങ്ങളൊന്നും കോൺഫിഗർ ചെയ്യാത്തപ്പോൾ മാത്രം യഥാർത്ഥ വിലയില്ലാത്ത ഉപയോഗം $0 ആയി കണക്കാക്കുന്നു. വിലയുള്ള ചെലവുകളും പരാജയപ്പെട്ട ലുക്കപ്പുകളും നിർബന്ധിതമായി തുടരും. | ## കിലോ കോഡ് ഉപയോഗ ക്വാട്ടകൾ കിലോ കോഡ് ദാതാവിനായുള്ള വ്യക്തിഗത USD ബാലൻസും കിലോ പാസ് ഉപയോഗ ലുക്കപ്പും. ഓപ്ഷണൽ — പബ്ലിക് കിലോ API ൽ ഡിഫോൾട്ട് പോയിൻ്റുകൾ; ഒരു relay/test ഫിക്ചറിനായി മാത്രം അസാധുവാക്കുക. പ്രാമാണീകരണം കണക്ഷൻ്റെ നിലവിലുള്ള OAuth ആക്സസ് ടോക്കൺ ഉപയോഗിക്കുന്നു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | -------------- | --------------------- | ------------------------------------- | --------------------------------------------------------------------------------------- | | `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | വ്യക്തിഗത കിലോ കോഡ് ബാലൻസും കിലോ പാസ് ഉപയോഗവും ലഭ്യമാക്കാൻ അടിസ്ഥാന URL ഉപയോഗിക്കുന്നു. | --- ## Adobe Firefly വെബ് പ്രൊവൈഡർ (Unofficial/Experimental) Adobe Firefly വെബ് പ്രൊവൈഡറിനായുള്ള ബ്രൗസർ പ്രവർത്തിപ്പിക്കുന്ന സെഷൻ പുതുക്കൽ (`open-sse/services/adobeFireflyBrowserLogin.ts`, `open-sse/services/adobeFireflySession.ts`, `open-sse/services/adobeFireflyClient.ts`). ഓപ്ഷണൽ — എല്ലാ ഡിഫോൾട്ടുകളും ഒരു സാധാരണ ഡെസ്ക്ടോപ്പ് ഇൻസ്റ്റാളിനായി ട്യൂൺ ചെയ്തിരിക്കുന്നു. > **#9255-ൽ നീക്കം ചെയ്തു.** പഴയ CDP-അറ്റാച്ച് ചെയ്ത Chrome റൺടൈം (adobeFireflyChromeRuntime.ts) ഒരു Playwright ബ്രൗസർ-ലോഗിൻ സേവനം ഉപയോഗിച്ച് മാറ്റി, അതിൻ്റെ നോബുകൾ നിലവിലില്ല. ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART വേരിയബിളുകൾ, കൂടാതെ ADOBE_FIREFLY_LOGIN_WAIT_MS, ADOBE_FIREFLY_FORTER_WAIT_MS എന്നിവ കോഡ്ബേസ് — ക്രമീകരണത്തിൽ ഒരിടത്തും വായിച്ചിട്ടില്ല, അവയ്ക്ക് ഫലമില്ല. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------ | ----------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | യഥാർത്ഥ തലയില്ലാത്ത ക്രോമിനായി `1` ആയി സജ്ജീകരിക്കുക (ജനറേറ്റ് ചെയ്യുന്നതിനായി അറിയപ്പെടുന്നത് - ഡീബഗ് മാത്രം). | | `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | പ്രോആക്റ്റീവ് ബ്രൗസർ warm opt-in/out. `0` പ്രോആക്ടീവ് വാം പ്രവർത്തനരഹിതമാക്കുന്നു (മിഡ്-ബാച്ച് 408 വീണ്ടെടുക്കൽ ഇപ്പോഴും ബാധകമാണ്). | | `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | ഡിസ്കിലേക്ക് അഡോബ് ഫയർഫ്ലൈ സെഷൻ തുടരുന്നത് പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജമാക്കുക. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/adobeFireflySession.ts` | ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ടിനെ അസാധുവാക്കിക്കൊണ്ട് തുടർച്ചയായ സമർപ്പിക്കലുകൾക്കിടയിൽ ഏറ്റവും കുറഞ്ഞ വിടവ് (മി.സെ.) നിർബന്ധമാക്കിയിരിക്കുന്നു. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/adobeFireflySession.ts` | ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ട് അസാധുവാക്കിക്കൊണ്ട് വിജയകരമായ ഒരു ബാച്ചിന് ശേഷം അധിക വിടവ് (മി.സെ) ചേർത്തു. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/adobeFireflyClient.ts` | ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ട് അസാധുവാക്കിക്കൊണ്ട് ഒരു ജനറേഷൻ അഭ്യർത്ഥന സമർപ്പിക്കുന്നതിന് മുമ്പ് അടിസ്ഥാന കാലതാമസം (മി.സെ.). | --- ## 19. മോഡൽ സമന്വയം (ദേവ്) | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------------------- | ----------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `MODELS_DEV_SYNC_ENABLED` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/modelsDevSync.ts` | models.dev വിലനിർണ്ണയ സമന്വയത്തിനായി ഹാർഡ് ഓവർറൈഡ്. = ഹോണർ ക്രമീകരണങ്ങൾ അൺസെറ്റ് ചെയ്യുക > AI (`modelsDevSyncEnabled`). `0`/`false`/`off`/`no`** DB യെ ജയിക്കുന്നു** ഒപ്പം ആനുകാലിക സമന്വയവും `getModelsDevPricing()` SQL/JSON സ്കാനുകളും ഒഴിവാക്കുന്നു (ഡാഷ്ബോർഡ് ഒരേ ഇവൻ്റ് ലൂപ്പിൽ വെഡ്ജ് ചെയ്യുമ്പോൾ വീണ്ടെടുക്കൽ). `1`/`true`/`on`/`yes` ഫോഴ്സുകൾ സമന്വയിപ്പിക്കുന്നു. വിലനിർണ്ണയം save/clear ഇപ്പോഴും `backupDbFile("pre-write")` എന്ന് വിളിക്കുന്നു, ഇത് 60 മിനിറ്റ് ത്രോട്ടിൽ അല്ലെങ്കിൽ `DISABLE_SQLITE_AUTO_BACKUP` കീഴിൽ നോ-ഓപ് ആണ്. | | `MODELS_DEV_SYNC_INTERVAL` | `86400` (24 മണിക്കൂർ) | `src/lib/modelsDevSync.ts` | സെക്കൻ്റുകൾക്കുള്ളിൽ വികസന സമയ മോഡൽ കാറ്റലോഗ് സമന്വയ ഇടവേള. | | `CONTEXT_WINDOW_RECONCILE_INTERVAL` | `86400` (24 മണിക്കൂർ) | `src/lib/contextWindowResolver.ts` | സ്വയം തിരുത്തുന്ന സന്ദർഭ-ജാലക അനുരഞ്ജനത്തിനുള്ള (5004) ഇടവേള (സെക്കൻഡ്): കാറ്റലോഗിൽ നിന്ന് വ്യതിചലിക്കുമ്പോൾ `auto:discovery` അസാധുവാക്കുന്നതായി `/models` കണ്ടെത്തലിൽ നിന്നുള്ള പിൻ പ്രൊവൈഡർ പ്രഖ്യാപിച്ച വിൻഡോകൾ. പ്രവർത്തനരഹിതമാക്കാൻ `0` ആയി സജ്ജമാക്കുക. ഇതിനകം സമന്വയിപ്പിച്ച ഡാറ്റ വീണ്ടും ഉപയോഗിക്കുന്നു (പുതിയ കണ്ടെത്തലുകളൊന്നുമില്ല); ഒരിക്കലും `manual` ഓവർറൈഡുകൾ തിരുത്തിയെഴുതില്ല. | --- ## 20. പ്രൊവൈഡർ-നിർദ്ദിഷ്ട ക്രമീകരണങ്ങൾ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 മണിക്കൂർ) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter മോഡൽ കാറ്റലോഗ് കാഷെ TTL. | | `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | `/v1/models` പ്രതികരണങ്ങളിൽ ഡിസ്പ്ലേ-ഫ്രണ്ട്ലി `name` ഫീൽഡുകൾ ഉൾപ്പെടുത്തുക. IDs മാത്രം പ്രതീക്ഷിക്കുന്ന ക്ലയൻ്റുകൾക്ക് പ്രവർത്തനരഹിതമാക്കുക. | | `OMNIROUTE_GEMINI_WEB_ARGON_ENABLED` | `0` (ഓഫ്) | `open-sse/config/providers/registry/gemini/web/index.ts` | ഓപ്റ്റ്-ഇൻ (#16573). Gemini വെബ് പ്രൊവൈഡറിൽ `gweb/gemini-4-argon` പരസ്യം ചെയ്യുന്നതിനായി `1` (അല്ലെങ്കിൽ `true`/`yes`) സജ്ജീകരിക്കുകയും അതിൻ്റെ എക്സിക്യൂട്ടറെ ആ മോഡ് തിരഞ്ഞെടുക്കാൻ അനുവദിക്കുകയും ചെയ്യുക. ഒരു തത്സമയ Gemini വെബ് അക്കൌണ്ടിൽ ആർഗോൺ മോഡ്-മെനു സെലക്ടറുകൾ പരിശോധിച്ചിട്ടില്ലാത്തതിനാൽ ഡിഫോൾട്ടായി ഓഫ്; ഓഫായിരിക്കുമ്പോൾ, മോഡൽ ലിസ്റ്റ് ചെയ്തിട്ടില്ല, അതിനുള്ള അഭ്യർത്ഥന മുമ്പത്തെപ്പോലെ ഒരു അജ്ഞാത മോഡലായി നിരസിക്കപ്പെട്ടു. സ്റ്റാർട്ടപ്പിൽ വായിക്കുക, അതിനാൽ ഒരു മാറ്റത്തിന് പുനരാരംഭിക്കേണ്ടതുണ്ട്. | | `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8സെ) | `src/app/api/v1/models/catalogCache.ts` | കോൾസ്ഡ് `GET /v1/models` കാറ്റലോഗ് പുനർനിർമ്മാണത്തിനായി കോൾഡ്-പാത്ത് കാത്തിരിക്കുന്നു (#12627). കാലഹരണപ്പെടുമ്പോൾ, ഒരു അവസാനത്തെ-നല്ല 200 നിലവിലിരിക്കുമ്പോൾ നൽകും. | | `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 ദിവസം) | `src/lib/db/models/activeSyncedCatalog.ts` | ഒരു കണക്ഷൻ്റെ സമന്വയിപ്പിച്ച മോഡൽ ലിസ്റ്റ് റൂട്ടിംഗിന് ആധികാരികമാകുന്നത് നിർത്തുകയും രജിസ്ട്രിയിൽ തുറക്കാൻ പരാജയപ്പെടുകയും ചെയ്യുന്ന പ്രായം (#12849). ഒരിക്കലും ടൈംസ്റ്റാമ്പ് ചെയ്യാത്ത വരികൾ പഴയതായി കണക്കാക്കുന്നു. | | `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60സെ) | `src/lib/usage/analyticsResponseCache.ts` | അതേ ചോദ്യ സ്ട്രിങ്ങിന് (#15629) എത്ര സമയം സ്ലോ `GET /api/usage/analytics` പ്രതികരണം വീണ്ടും ഉപയോഗിക്കുന്നു. `0` കാഷെ പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1സെ) | `src/lib/usage/analyticsResponseCache.ts` | ബിൽഡ് ചെയ്യാൻ ഇത്രയും സമയമെങ്കിലും എടുത്ത അനലിറ്റിക്സ് പ്രതികരണങ്ങൾ മാത്രമേ കാഷെ ചെയ്തിട്ടുള്ളൂ, അതിനാൽ ചെറിയ സംഭവങ്ങൾ എപ്പോഴും പുതിയ ഡാറ്റ കാണും. | | `OMNIROUTE_CACHE_METRICS_MIN_COMPUTE_MS` | അൺസെറ്റ് (ഓഫ്) | `src/app/api/cache/route.ts` വഴി `src/lib/usage/analyticsResponseCache.ts` | ഓപ്റ്റ്-ഇൻ (#16361). ഒരു നോൺ-നെഗറ്റീവ് ഇൻ്റിജർ N ആയി സജ്ജീകരിക്കുമ്പോൾ, `OMNIROUTE_ANALYTICS_CACHE_TTL_MS`, ഓരോ ക്ലാമ്പ് ചെയ്ത `trendHours` വിൻഡോയിലും, നിർമ്മിക്കാൻ കുറഞ്ഞത് N ms എടുക്കുമ്പോൾ, പങ്കിട്ട അനലിറ്റിക്സ് പ്രതികരണ കാഷെയിൽ നിന്ന് `GET /api/cache` യുടെ ഉപയോഗ-ചരിത്ര ഭാഗം (പ്രോംപ്റ്റ്-കാഷെ ടോട്ടൽസ് + ട്രെൻഡ്) നൽകുന്നു (ചരിത്രം `DELETE /api/cache` ൽ ആ TTL വരെ പിന്നിലായിരിക്കാം). സജ്ജീകരിക്കാത്തതോ അസാധുവായതോ ആയ = ചരിത്രം ഓരോ അഭ്യർത്ഥനയിലും തത്സമയം വായിക്കുക. | | `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana ഇമേജ് ജനറേഷൻ ജോലികൾക്കായി പരമാവധി കാത്തിരിക്കുക. | | `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana ജോലി പോളിംഗ് ആവൃത്തി. | | `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly ഉയർന്ന നിലവാരത്തിലുള്ള സബ്മിറ്റ്-റിട്രി എക്സ്പോണൻഷ്യൽ ബാക്ക്ഓഫിനുള്ള അടിസ്ഥാന കാലതാമസം. | | `AWS_REGION` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS ബെഡ്റോക്ക് എൻഡ്പോയിൻ്റുകൾ നിർമ്മിക്കാൻ ഉപയോഗിക്കുന്ന പ്രദേശം (Kiro, ഓഡിയോ). | | `AWS_DEFAULT_REGION` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | `AWS_REGION` സജ്ജീകരിക്കാത്തപ്പോൾ ഫാൾബാക്ക്. | | `CLOUDFLARE_ACCOUNT_ID` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare വർക്കേഴ്സ് AI എന്നതിനുള്ള അക്കൗണ്ട് ID. | | `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/cloudflare-playground.ts` | Cloudflare AI പ്ലേഗ്രൗണ്ട് എക്സിക്യൂട്ടറിനായുള്ള പൂർണ്ണ ഡെസ്ക്ടോപ്പ് Chrome ബൈനറി പാത്ത്, ഹെഡ്ലെസ്സ് ഫിംഗർപ്രിൻ്റ് പരിശോധന Playwright ൻ്റെ ബണ്ടിൽ ചെയ്ത Chromium-നെ തടയുമ്പോൾ ഉപയോഗിക്കുന്നു. | | `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) — _അൺസെറ്റ് = നീളമുള്ള തൊപ്പി_ | `open-sse/executors/codebuddy/shared.ts` | കോളർ സിസ്റ്റത്തിനായുള്ള ഓപ്ഷണൽ ലെങ്ത് ക്യാപ് CodeBuddy ലേക്ക് അയച്ചു (CN, ഇൻ്റർനാഷണൽ). സ്ഥിരസ്ഥിതിയായി, ഒരു കോഡിംഗ്-ഏജൻ്റ് ഐഡൻ്റിറ്റി മാർക്കർ വഹിക്കുന്ന ഒരു പ്രോംപ്റ്റിന് പകരം ഒരു ന്യൂട്രൽ ഒന്ന് (Tencent യുടെ ഉള്ളടക്ക ഫിൽട്ടർ നിരസിക്കുന്നു); നീണ്ട നിർദ്ദേശങ്ങൾ സൂക്ഷിക്കുന്നു. ഒരു പൂർണ്ണസംഖ്യ > 0 ഏത് സിസ്റ്റത്തിൻ്റെ പ്രോംപ്റ്റിനെയും മാറ്റിസ്ഥാപിക്കുന്നു; സജ്ജീകരിക്കാത്തത്, `0` അല്ലെങ്കിൽ ഒരു പൂർണ്ണസംഖ്യയല്ലാത്ത മൂല്യം തൊപ്പി പ്രവർത്തനരഹിതമാക്കുന്നു. ഓരോ റീപ്ലേസ്മെൻ്റ് ലോഗുകളും ഏത് റൂൾ ഫയർ ചെയ്യുന്നു (ഐഡൻ്റിറ്റി മാർക്കർ അല്ലെങ്കിൽ നീളം). | | `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | പ്രോക്സി-പൂൾ വർക്കേഴ്സ് റിലേ ഡിപ്ലോയർ (#4640 / 9router#1360) ഉപയോഗിക്കുന്ന Cloudflare REST API ബേസ് അസാധുവാക്കുക. | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | പ്രോക്സി പൂൾ "ഡിപ്ലോ റിലേ" മോഡലിൽ ഡിഫോൾട്ട് വർക്കർ പ്രോജക്റ്റ് പേര് നിർദ്ദേശിച്ചു. | | `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | പ്രോക്സി പൂൾ ടാബിൽ നിന്ന് Cloudflare വർക്കേഴ്സ് റിലേ ഓപ്ഷൻ മറയ്ക്കാൻ `false` ആയി സജ്ജീകരിക്കുക. | | `CLOUDFLARED_BIN` | യാന്ത്രികമായി കണ്ടുപിടിക്കുക | `src/lib/cloudflaredTunnel.ts` | `cloudflared` ബൈനറിയിലേക്കുള്ള ഇഷ്ടാനുസൃത പാത. | | `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | ടണൽ ട്രാൻസ്പോർട്ട് പ്രോട്ടോക്കോൾ: `http2` (സ്ഥിരസ്ഥിതി), `quic`, അല്ലെങ്കിൽ `auto`. | | `CLOUDFLARED_CONFIG` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/cloudflaredTunnel.ts` | പ്രാദേശികമായി നിയന്ത്രിത ക്ലൗഡ്ഫ്ലേർഡ് `config.yml` യിലേക്കുള്ള പാത ( `tunnel:`, `credentials-file:`, `ingress:` എന്നിവയോടൊപ്പം). സജ്ജീകരിക്കുമ്പോൾ, OmniRoute ഒരു എഫെമെറൽ ക്വിക്ക് ടണലിന് പകരം `tunnel --config run` (ടണൽ എന്ന് പേരിട്ടിരിക്കുന്നു) പ്രവർത്തിപ്പിക്കുന്നു. | | `CLOUDFLARED_HOSTNAME` | _(കോൺഫിഗറേഷനിൽ നിന്ന്)_ | `src/lib/cloudflaredTunnel.ts` | `publicUrl`/`apiUrl` എന്ന് റിപ്പോർട്ടുചെയ്ത ടണലിൻ്റെ പൊതു ഹോസ്റ്റ് നാമം (ഉദാ: `ai.example.com`) അസാധുവാക്കുക. സജ്ജീകരിക്കാത്തപ്പോൾ അത് കോൺഫിഗറിൻറെ ആദ്യ `ingress` ഹോസ്റ്റ്നാമത്തിൽ നിന്ന് വായിക്കുന്നു. | | `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | പ്രോക്സി-പൂൾ റിലേ ഡിപ്ലോയർ (#4643 / 9router#1437) ഉപയോഗിക്കുന്ന Deno Deploy REST API ബേസ് അസാധുവാക്കുക. | | `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | ഡിഫോൾട്ട് ഡെനോ ഡിപ്ലോയ് ആപ്പ് പേര് പ്രോക്സി പൂൾ "ഡിപ്ലോ റിലേ" മോഡൽ നിർദ്ദേശിച്ചിരിക്കുന്നു. | | `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | പ്രോക്സി പൂൾ ടാബിൽ നിന്ന് ഡെനോ ഡിപ്ലോയ് റിലേ ഓപ്ഷൻ മറയ്ക്കാൻ `false` ആയി സജ്ജമാക്കുക. | | `SEARCH_CACHE_TTL_MS` | `300000` (5 മിനിറ്റ്) | `open-sse/services/searchCache.ts` | TTL തിരയലിനായി API (ആശങ്ക, ധൈര്യം, മുതലായവ) പ്രതികരണ കാഷിംഗ്. | | `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Claude കോഡ്-മാത്രം റിലേകൾക്കായി പരീക്ഷണാത്മക CC-അനുയോജ്യ ദാതാവ് UI വെളിപ്പെടുത്തുക. | | `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | ഉൾച്ചേർത്ത 9 റൂട്ടർ ഇൻസ്റ്റൻസ് കേൾക്കുന്ന ഹോസ്റ്റിനെ അസാധുവാക്കുക. | | `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | ഉൾച്ചേർത്ത 9 റൂട്ടർ ഇൻസ്റ്റൻസ് കേൾക്കുന്ന പോർട്ട് അസാധുവാക്കുക. | | `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | എംബഡഡ്-സർവീസ് WebSocket പ്രോക്സിക്കായി ബൈൻഡ് ഹോസ്റ്റ് (സ്ഥിരസ്ഥിതിയായി മാത്രം ലൂപ്പ്ബാക്ക്). | | `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | എംബഡഡ്-സർവീസ് WebSocket പ്രോക്സി സെർവറിനായുള്ള പോർട്ട്. | | `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI ബ്രിഡ്ജ് ഹോസ്റ്റ് (ലെഗസി ഇൻ്റഗ്രേഷൻ). | | `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI പാലം തുറമുഖം. | | `CLIPROXYAPI_API_KEY` | _(ശൂന്യം)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | `cliproxyapi_api_key` ക്രമീകരണം ഇല്ലെങ്കിൽ ഡാറ്റ-പ്ലെയ്ൻ കീ ഫോൾബാക്ക്. | | `CLIPROXYAPI_MANAGEMENT_KEY` | _(ശൂന്യം)_ | `src/lib/services/cliproxyAccountHealth.ts` | അക്കൗണ്ട്-ഹെൽത്തിനായുള്ള മാനേജ്മെൻ്റ് കീ ബാഹ്യമായി കൈകാര്യം ചെയ്യുന്ന CLIProxyAPI ഉദാഹരണത്തിൽ നിന്ന് വായിക്കുന്നു. | | `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI കോൺഫിഗറേഷൻ ഡയറക്ടറി. | | `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | ഹോസ്റ്റ് ഇൻ്റർഫേസ് ഡോക്കർ-കമ്പോസ് (#12578) ൽ `cliproxyapi` സൈഡ്കാർ പ്രസിദ്ധീകരിക്കുന്നു. അതിൻ്റെ ഡാറ്റാ വോള്യത്തിൽ ദാതാവിൻ്റെ OAuth/API ക്രെഡൻഷ്യലുകൾ അടങ്ങിയിരിക്കുന്നു, കൂടാതെ പിൻ ചെയ്ത ചിത്രത്തിന് env-അധിഷ്ഠിത ഡാറ്റാ-പ്ലെയ്ൻ `api-keys` അസാധുവാക്കൽ ഇല്ല (മൗണ്ട് ചെയ്ത `config.yaml` മാത്രം), അതിനാൽ `0.0.0.0` ഒരു ക്രെഡൻഷ്യൽ-ബെയറിംഗ് സേവനത്തെ മുഴുവൻ LAN ലേക്ക് തുറന്നുകാട്ടുന്നു. | | `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | ഉൾച്ചേർത്ത Mux (coder/mux) ഏജൻ്റ്-ഓർക്കസ്ട്രേഷൻ ഡെമൺ കേൾക്കുന്ന പോർട്ട് അസാധുവാക്കുക (എല്ലായ്പ്പോഴും 127.0.0.1). | | `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | ഉൾച്ചേർത്ത ഓപ്പൺ-വാ (WhatsApp വെബ് ഓട്ടോമേഷൻ) ഡെമൺ കേൾക്കുന്ന പോർട്ട് അസാധുവാക്കുക (എല്ലായ്പ്പോഴും 127.0.0.1). | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | ഡാരിയോ എംബഡഡ്-സർവീസ് bind/connect ഹോസ്റ്റ് (സ്വതവേയുള്ള ലൂപ്പ്ബാക്ക് മാത്രം). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | ഡാരിയോ ഉൾച്ചേർത്ത സേവന തുറമുഖം. | | `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | ഡാരിയോ എംബഡഡ്-സർവീസ് bind/connect ഹോസ്റ്റ് (സ്വതവേയുള്ള ലൂപ്പ്ബാക്ക് മാത്രം). | | `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | ഡാരിയോ ഉൾച്ചേർത്ത സേവന തുറമുഖം. | | `LOCAL_HOSTNAMES` | _(ശൂന്യം)_ | `open-sse/config/providerRegistry.ts` | കോമയാൽ വേർതിരിച്ച അധിക ഹോസ്റ്റ്നാമങ്ങൾ "ലോക്കൽ" (Docker സേവന നാമങ്ങൾ മുതലായവ) ആയി കണക്കാക്കുന്നു. | `ENABLE_CC_COMPATIBLE_PROVIDER` എന്നത് Claude കോഡ് ക്ലയൻ്റുകളെ പ്രത്യേകമായി സ്വീകരിക്കുന്ന മൂന്നാം കക്ഷി റിലേകൾക്ക് മാത്രമുള്ളതാണ്. OmniRoute അഭ്യർത്ഥനകൾ വീണ്ടും എഴുതുന്നു, അതിനാൽ ആ റിലേകൾ അവ സ്വീകരിക്കുന്നു. നിങ്ങൾക്ക് Claude കോഡ് CLI ഉപയോഗിക്കണമെന്നുണ്ടെങ്കിൽ, അല്ലെങ്കിൽ ഈ റിലേകൾ എന്താണെന്ന് നിങ്ങൾക്ക് ഉറപ്പില്ലെങ്കിൽ, ഇത് പ്രവർത്തനരഹിതമാക്കി നിലനിർത്തുക, പകരം ഒരു സാധാരണ ആന്ത്രോപിക്-അനുയോജ്യ ദാതാവിനെ ചേർക്കുക. --- ## 21. പ്രോക്സി ഹെൽത്ത് | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | `src/lib/proxyHealth.ts` | വേഗത്തിലുള്ള പരാജയ ആരോഗ്യ പരിശോധന സമയപരിധി. | | `PROXY_LATENCY_WINDOW_HOURS` | `3` | `src/lib/db/proxies.ts` | ലേറ്റൻസി ഒപ്റ്റിമൈസ് ചെയ്ത പൂൾ സ്ട്രാറ്റജിയിൽ കാൻഡിഡേറ്റ് പ്രോക്സികളുടെ ശരാശരി ലേറ്റൻസി കണക്കാക്കുന്നതിനുള്ള സമയ വിൻഡോ (മണിക്കൂറുകൾ). | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | `src/lib/proxyHealth.ts` | ആരോഗ്യ പരിശോധന ഫലം കാഷെ TTL. | | `NONE_HONORED_WINDOW_HOURS` | `24` | `src/lib/db/reasoningEffortCompliance.ts` | GET /v1/models/health എന്നതിലെ ന്യായവാദം_പ്രയത്നം= നോൺ കംപ്ലയൻസ് റീഡറിനായി മണിക്കൂറുകൾക്കുള്ളിൽ ട്രെയിലിംഗ് വിൻഡോ. | | `NONE_HONORED_CACHE_TTL_MS` | `20000` | `src/lib/db/reasoningEffortCompliance.ts` | നോൺ-കംപ്ലയൻസ് സ്നാപ്പ്ഷോട്ടിനായി (15-30 സെക്കൻഡ്) ms-ൽ TTL കാഷെ ചെയ്യുക. | | `NONE_HONORED_MIN_SAMPLE` | `3` | `src/lib/db/reasoningEffortCompliance.ts` | ഒരു മോഡൽ ബഹുമാനിക്കപ്പെട്ടതോ ബഹുമാനിക്കപ്പെടാത്തതോ വായിക്കുന്നതിന് മുമ്പ് കുറഞ്ഞത് ആരും അഭ്യർത്ഥിക്കുന്നില്ല; ഇതിന് താഴെ മോഡൽ അജ്ഞാതമായി വായിക്കുന്നു. | | `PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS` | `2000` | `src/lib/proxyHealth.ts` | പരാജയപ്പെട്ട പ്രോക്സി ഹെൽത്ത് പ്രോബുകൾക്കുള്ള കാഷെ TTL. ഇത് `PROXY_HEALTH_CACHE_TTL_MS` നേക്കാൾ ചെറുതാക്കി നിലനിർത്തുക, അതിനാൽ ഉയർന്ന കൺകറൻസിയിൽ ക്ഷണികമായ പ്രോക്സി ടൈംഔട്ടുകൾ യഥാർത്ഥത്തിൽ മരിച്ച പ്രോക്സികൾക്കായി ഫാസ്റ്റ്-ഫെയിൽ പ്രവർത്തനരഹിതമാക്കാതെ വേഗത്തിൽ വീണ്ടും ശ്രമിക്കുക. | | `PROXY_HEALTH_ENABLED` | `true` | `src/lib/proxyHealth/scheduler.ts` | രജിസ്റ്റർ ചെയ്ത പ്രോക്സികൾ ഇടയ്ക്കിടെ അന്വേഷിക്കുന്ന പശ്ചാത്തല പ്രോക്സി ഹെൽത്ത് ഷെഡ്യൂളർ പ്രവർത്തനരഹിതമാക്കാൻ `false` സജ്ജമാക്കുക. | | `PROXY_HEALTH_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | പശ്ചാത്തല ആരോഗ്യ-ഷെഡ്യൂളർ സ്വീപ്പ് ഇടവേള ms-ൽ (മിനിമം `60000`). | | `PROXY_HEALTH_RELAY_INTERVAL_MS` | `21600000` | `src/lib/proxyHealth/relayCadence.ts` | എഡ്ജ്-റിലേ പ്രോക്സികൾക്കുള്ള (`deno`/`vercel`/`cloudflare`) ms-ലെ പ്രോബ് ഇടവേള, അതിൻ്റെ പ്രോബുകൾ ഒരു ബില്ല് ചെയ്ത സെർവർലെസ് ഐസൊലേറ്റിനെ ഉണർത്തുന്നു (മിനിമം `60000`). | | `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | പശ്ചാത്തല വീണ്ടെടുക്കൽ-പാസ് ഇടവേള ms-ൽ: എത്ര തവണ മുമ്പ് അനാരോഗ്യകരമായ പ്രോക്സികൾ വീണ്ടും പരിശോധിക്കപ്പെടുന്നു, അതിനാൽ വീണ്ടെടുക്കപ്പെട്ട പ്രോക്സി പുനരാരംഭിക്കാതെ തന്നെ റൊട്ടേഷനിലേക്ക് മടങ്ങുന്നു. `60000` താഴെയുള്ള മൂല്യങ്ങൾ സ്ഥിരസ്ഥിതിയിലേക്ക് മടങ്ങുന്നു. | | `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | ഷെഡ്യൂളറും `/api/settings/proxies/auto-test` എൻഡ് പോയിൻ്റും ഉപയോഗിക്കുന്ന റീച്ചബിലിറ്റി പ്രോബ് ടാർഗെറ്റ്. പബ്ലിക് ഡിഫോൾട്ട് ഒഴിവാക്കാൻ ഇത് ഒരു internal/self-hosted URL ലേക്ക് പോയിൻ്റ് ചെയ്യുക. | | `PROXY_HEALTH_TEST_CONCURRENCY` | `10` | `src/lib/proxyHealth/probeTarget.ts` | ഓരോ ബാച്ചിലും ഒരേസമയം പ്രോബുകൾ ആരംഭിച്ചു, ഷെഡ്യൂളറും `/api/settings/proxies/auto-test` എൻഡ് പോയിൻ്റും പങ്കിടുന്നു. 1-ന് നിലയുറപ്പിക്കുകയും 50-ൽ തൊപ്പി. | | `PROXY_HEALTH_TEST_STAGGER_MS` | `100` | `src/lib/proxyHealth/probeTarget.ts` | ഒരു ബാച്ചിനുള്ളിലെ രണ്ട് പ്രോബ് പുറപ്പെടലുകൾക്കിടയിലുള്ള കാലതാമസം. ഇത് കൂടാതെ, മുഴുവൻ ബാച്ചും ഒരേ നിമിഷം പുറപ്പെടും, ഒരു പങ്കിട്ട എക്സ്സ് IP നിരക്ക്-പരിമിതമായ ടാർഗെറ്റ് ട്രിപ്പ് ചെയ്യാൻ കഴിയും. സ്പെയ്സിംഗ് പ്രവർത്തനരഹിതമാക്കാൻ `0` ലേക്ക് സജ്ജമാക്കുക; 5000 ആയി പരിധി നിശ്ചയിച്ചു. | | `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | ഒരു പ്രോക്സി അസൈൻ ചെയ്ത ദാതാവിൻ്റെ (`GET /models`, API കീ ഇല്ല) യഥാർത്ഥ ഹോസ്റ്റ് അന്വേഷിക്കുന്നത് നിർത്താൻ "false" സജ്ജമാക്കുക, പകരം എപ്പോഴും `PROXY_HEALTH_TEST_URL` ഉപയോഗിക്കുക. | | `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | `false` (ഡിഫോൾട്ട്) ചെയ്യുമ്പോൾ, ഓട്ടോമേറ്റഡ് റീച്ചബിലിറ്റി പ്രോബുകൾ (ഷെഡ്യൂളർ + `/api/settings/proxies/auto-test` "എല്ലാം പരീക്ഷിക്കുക" ബട്ടൺ)** വായിക്കാൻ മാത്രം** ഒരു പ്രോക്സിയുടെ സ്റ്റാറ്റസ് — ഒരിക്കലും എഴുതരുത്, ഓപ്പറേറ്റർ active/inactive സജ്ജീകരിക്കുന്നു, അതിനാൽ ഒരു ഫ്ലാക്കി പ്രോബിന് അസൈൻ ചെയ്ത പ്രോക്സിയെ സ്ട്രാൻഡ് ചെയ്യാൻ കഴിയില്ല (#6246). ലെഗസി ടെസ്റ്റ് ആൻഡ് സെറ്റ് ബിഹേവിയർ പുനഃസ്ഥാപിക്കാൻ `true` സജ്ജമാക്കുക. | | `FLUSH_EMPTY_RETRY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | ഓപ്റ്റ്-ഇൻ ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). `true` (അല്ലെങ്കിൽ `1`, `yes`) ശൂന്യമായ 200 അല്ലെങ്കിൽ ശൂന്യമായ ഉള്ളടക്കം 502 വെളിപ്പെടുത്തുന്നതിന് പകരം സാധാരണ ക്രെഡൻഷ്യൽ പാതയിലൂടെ ( `STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX` വീണ്ടും ശ്രമിക്കുന്നത് വരെ) ശൂന്യമായ വിവർത്തനം ചെയ്ത സ്ട്രീമിംഗ് തിരിവുകൾ വീണ്ടും ശ്രമിക്കുന്നു. | | `EMPTY_STREAM_SIBLING_RECOVERY_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | ഓപ്റ്റ്-ഇൻ ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). `true` (അല്ലെങ്കിൽ `1`, `yes`) Claude/Codex ശൂന്യ-സ്ട്രീം ഉള്ളടക്ക അന്വേഷണത്തെ ആയുധമാക്കുകയും ഒരു `empty_content` ടേണിന് ശേഷം, കൂൾഡൗണും മോഡൽ ലോക്കൗട്ടും കൂടാതെ, മറ്റൊരു യോഗ്യതയുള്ള കണക്ഷനിൽ നിലവിലുള്ള ബൗണ്ടഡ് റീട്രൈ ചെലവഴിക്കുകയും ചെയ്യുന്നു. | | `STREAM_LATE_OUTPUT_PROBE_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | ഓപ്റ്റ്-ഇൻ ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). `true` (അല്ലെങ്കിൽ `1`, `yes`) ആദ്യത്തെ 64 ന് ശേഷം 16-ൽ ഫോർവേഡ് ചെയ്ത ഒരു ചങ്ക് സാമ്പിൾ ചെയ്യുന്നത് തുടരുന്നു, അതിനാൽ വൈകി ദൃശ്യമാകുന്ന ഔട്ട്പുട്ട് ഇപ്പോഴും സ്ട്രീമിനെ പുറത്തുവിടുന്ന ഔട്ട്പുട്ടായി അടയാളപ്പെടുത്തുന്നു (മോഡൽ മാത്രമുള്ള ലോക്കൗട്ടിന് പകരം ഒരു ലോൺ പോസ്റ്റ്-ഔട്ട്പുട്ട് 5xx അഭ്യർത്ഥന-സ്കോപ്പായി തുടരും). | | `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | ഓപ്റ്റ്-ഇൻ ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). `true` (അല്ലെങ്കിൽ `1`, `yes`) ഡാഷ്ബോർഡിലെ ഒരു പ്രോക്സി പൂളിന് കീഴിലുള്ള റീഡ്-ഒൺലി പൂൾ എക്സ് നിരീക്ഷണം കാണിക്കുന്നു (വ്യത്യസ്തമായ എഗ്രസ് IPs, കണക്ഷനുകളും കഴിഞ്ഞ 24 മണിക്കൂറിൽ ഒരു IP ന് പിന്നിൽ ഏറ്റവും കൂടുതൽ കണ്ടതും, പ്രോക്സി ലോഗിൽ നിന്ന്). റൂട്ടിംഗിന് ഒരിക്കലും ഉപയോഗിച്ചിട്ടില്ല. | | `PROXY_OPERATOR_EGRESS_ENABLED` | `false` | `src/shared/utils/featureFlags.ts` | ഓപ്റ്റ്-ഇൻ ഫീച്ചർ ഫ്ലാഗ് ( [FEATURE_FLAGS.md](./FEATURE_FLAGS.md) കാണുക; ഒരു ഡാഷ്ബോർഡ് DB ഓവർറൈഡ് വിജയിക്കുന്നു). `true` (അല്ലെങ്കിൽ `1`, `yes`) ഓരോ പൂൾ അംഗത്തിനും ഓപ്പറേറ്റർ പുഷ് ചെയ്ത തീയതിയുള്ള നിരീക്ഷിച്ച വിലാസങ്ങൾ സ്വീകരിക്കുകയും ഡിസ്പ്ലേയ്ക്കും പൂൾ ഓർഡറിനും വേണ്ടി വായിക്കുന്ന ജേണലുമായി അവയെ ലയിപ്പിക്കുകയും ചെയ്യുന്നു. | | `PROXY_OPERATOR_EGRESS_WINDOW_HOURS` | `24` | `src/lib/db/proxyOperatorEgress.ts` | ഓപ്പറേറ്റർ-പുഷ്ഡ് എഗ്രസ് വരികൾക്കായി മണിക്കൂറുകൾക്കുള്ളിൽ നിരീക്ഷണ വിൻഡോ (ഓരോ വായനയിലും വായിക്കുക; പുനരാരംഭിക്കേണ്ടതില്ല). 1..168 ലേക്ക് ബന്ധിപ്പിച്ചിരിക്കുന്നു; പരിധിക്ക് പുറത്തുള്ളതോ, അക്കമില്ലാത്തതോ, അല്ലെങ്കിൽ ശൂന്യമായതോ ആയ ഫാൾസ് 24-ലേക്ക് തിരിച്ച് ഒരു പ്രോസസ്-വൈഡ് മുന്നറിയിപ്പ്, ഒരിക്കലും എറിയരുത്. | | `PROXY_AUTO_REMOVE` | `false` | `src/lib/proxyHealth/scheduler.ts` | തുടർച്ചയായ തുടർച്ചയായ പരാജയങ്ങൾക്ക് ശേഷം പ്രോക്സികൾ സ്വയമേവ നീക്കംചെയ്യാൻ ഷെഡ്യൂളറെ അനുവദിക്കുന്നതിന് `true` സജ്ജമാക്കുക. | | `PROXY_AUTO_REMOVE_AFTER` | `3` | `src/lib/proxyHealth/scheduler.ts` | ഷെഡ്യൂളർ ഒരു പ്രോക്സി സ്വയമേവ നീക്കംചെയ്യുന്നതിന് മുമ്പുള്ള തുടർച്ചയായ പരാജയങ്ങൾ ( `PROXY_AUTO_REMOVE=true` ആയിരിക്കുമ്പോൾ). | | `PROXY_AUTO_DISABLE` | `false` | `src/lib/proxyHealth/scheduler.ts` | തുടർച്ചയായ പരാജയങ്ങൾക്ക് ശേഷം ഒരു പ്രോക്സി നീക്കം ചെയ്യുന്നതിനുപകരം ഷെഡ്യൂളർ സോഫ്റ്റ്-ഡിസേബിൾ ചെയ്യാൻ അനുവദിക്കുന്നതിന് `true` സജ്ജമാക്കുക (സ്റ്റാറ്റസ് `dead`, ഒരിക്കലും ഇല്ലാതാക്കില്ല). `PROXY_AUTO_REMOVE` നുള്ള നോൺ-ഡിസ്ട്രക്റ്റീവ് ബദൽ : പ്രോക്സി pool/rotation റെസല്യൂഷനിൽ നിന്ന് ഉടനടി ഡ്രോപ്പ് ചെയ്യുന്നു (സ്കോപ്പ്-പൂൾ റെസല്യൂഷൻ ഉപയോഗിക്കുന്ന അലൈവ്-സ്റ്റാറ്റസ് ഫിൽട്ടർ ഇതിനകം തന്നെ ഇത് ഒഴിവാക്കിയിരിക്കുന്നു) അത് വീണ്ടും പ്രോബുകൾ കടന്നുപോകാൻ തുടങ്ങിയാൽ അത് യാന്ത്രികമായി വീണ്ടും സജീവമാകും. `PROXY_AUTO_REMOVE_AFTER` ത്രെഷോൾഡ് പങ്കിടുന്നു. രണ്ട് ഫ്ലാഗുകളും `true` ആണെങ്കിൽ, `PROXY_AUTO_REMOVE` വിജയിക്കും. | | `PROXY_HEALTH_PASSIVE_SKIP` | `false` | `src/lib/proxyHealth/scheduler.ts` | ഓപ്റ്റ്-ഇൻ പാസീവ് സ്കിപ്പ്: `true` ചെയ്യുമ്പോൾ, സമീപകാല പ്രൊഡക്ഷൻ ട്രാഫിക് ഇതിനകം തെളിയിക്കുന്ന ഒരു എൻഡ്പോയിൻ്റിനായുള്ള തത്സമയ അന്വേഷണം ഷെഡ്യൂളർ ഒഴിവാക്കുന്നു (കുറഞ്ഞത് ഒരു വിജയമെങ്കിലും വിൻഡോയിൽ പ്രോക്സി പരാജയം ആട്രിബ്യൂട്ട് ചെയ്തിട്ടില്ല, കൃത്യമായി ഒരു ദാതാവ് നിരീക്ഷിച്ചു). ഡിഫോൾട്ടായി ഓഫ്: ഓരോ പ്രോക്സിയും പ്രോബ് ചെയ്തു. | | `PROXY_PASSIVE_WINDOW_MS` | `300000` | `src/lib/proxyHealth/passiveVerdict.ts` | പ്രൊഡക്ഷൻ ട്രാഫിക്കിൻ്റെ എംഎസ് വിൻഡോയിൽ നിഷ്ക്രിയമായ ഒഴിവാക്കൽ നോക്കുന്നു (ബൗണ്ടഡ് `60000..599999`). 10 മിനിറ്റ് സ്വീപ്പ് ഇടവേളയേക്കാൾ ചെറുതാണ്, അതിനാൽ നേർപ്പിക്കുന്നതിനുപകരം സമീപകാല പരാജയം ആധിപത്യം സ്ഥാപിക്കുന്നു. | | `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | പിൻ ചെയ്ത പ്രോക്സിയെ മറികടക്കാൻ OAuth യെയും ദാതാവിൻ്റെ മൂല്യനിർണ്ണയ ഫ്ലോകളെയും അനുവദിക്കുകയും പ്രോക്സി എത്തിച്ചേരാനുള്ള മുൻകൂർ പരിശോധനകൾ പരാജയപ്പെടുമ്പോൾ നേരിട്ട് കണക്റ്റ് ചെയ്യുകയും ചെയ്യുക. ഫീച്ചർ ഫ്ലാഗുകൾ DB ഓവർറൈഡ് > env var > ഡിഫോൾട്ടാണ് ഫലപ്രദമായ മുൻഗണന. | | `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30സെ) | `src/lib/resilience/settings.ts` | സ്ഥിരസ്ഥിതി** ക്യൂ-കാത്തിരിപ്പ്** ബജറ്റ്: ഒരു അഭ്യർത്ഥന ഒരു പ്രൊവൈഡർ സ്ലോട്ടിനായി എത്ര സമയം കാത്തിരിക്കുകയും നിരസിക്കപ്പെടുന്നതിന് മുമ്പ് ക്യൂവിൽ ഇരിക്കുകയും ചെയ്യാം, ഒരിക്കലും അപ്സ്ട്രീമിൽ എത്തില്ല. — എക്സിക്യൂഷൻ `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` കൊണ്ട് പ്രത്യേകമായി പരിമിതപ്പെടുത്തിയിരിക്കുന്ന ജോലി എക്സിക്യൂട്ട് ചെയ്യാൻ തുടങ്ങിയാൽ ടൈമർ മായ്ക്കുന്നു. എൻവി ഡിഫോൾട്ട് മാത്രം സജ്ജീകരിക്കുന്നു: ഒരു പെർസിസ്റ്റഡ് `resilienceSettings.requestQueue.maxWaitMs`, തുടർന്ന് ഓരോ കണക്ഷൻ `rateLimitOverrides.maxWaitMs`, ഓരോന്നും അതിൽ വിജയിക്കുന്നു. | | `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (10 മിനിറ്റ്) | `open-sse/services/rateLimitManager.ts` | ക്യൂ-വെയ്റ്റ് ബജറ്റിൽ നിന്ന് — വേർപെടുത്തിയ നിരക്ക്-പരിധി റിസർവേഷൻ കാലഹരണപ്പെടുന്നതിന് മുമ്പ് ഒരു അംഗീകൃത അഭ്യർത്ഥന എക്സിക്യൂഷനിൽ എത്രകാലം നിലനിൽക്കും, അതിനാൽ ഇൻക്രിമെൻ്റൽ അല്ലാത്ത ഗേറ്റ്വേകളിൽ സാവധാനത്തിലുള്ള ലഭ്യമാക്കൽ ആരംഭിക്കുന്നു (#12027). | | `RATE_LIMIT_MAX_QUEUE_DEPTH` | `0` (അപ്രാപ്തമാക്കിയത്) | `open-sse/services/rateLimitManager.ts` | ക്യൂ പ്രവേശന പരിധി: ഇത്രയധികം അഭ്യർത്ഥനകൾ ഇതിനകം ക്യൂവായിക്കഴിഞ്ഞാൽ 429 `queue_full` ഉപയോഗിച്ച് നിരസിക്കുക. `0` = പരിധിയില്ലാത്തത് (സ്ഥിരസ്ഥിതി). | | `RATE_LIMIT_AUTO_ENABLE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/rateLimitManager.ts` | സ്ഥിരമായ ഡാഷ്ബോർഡ് ക്രമീകരണം (`resilienceSettings.requestQueue.autoEnableApiKeyProviders`) പരിഗണിക്കാതെ തന്നെ സ്വയമേവ പ്രവർത്തനക്ഷമമാക്കുന്ന നിരക്ക് പരിധി സുരക്ഷാ നെറ്റ് on/off നിർബന്ധമാക്കുക. നിർബന്ധിതമാക്കാൻ `true`/`1`/`on`, നിർബന്ധിതമായി ഓഫ് ചെയ്യാൻ `false`/`0`/`off` എന്നിവ സ്വീകരിക്കുന്നു. സജീവമായിരിക്കുമ്പോൾ (ഡിഫോൾട്ട്), സജീവമായ API-കീ കണക്ഷനുകൾ യാന്ത്രികമായി നിരക്ക്-പരിധി പരിരക്ഷിക്കപ്പെടും. ഓരോ കണക്ഷനും `rateLimitProtection: false` സജ്ജീകരിക്കുന്നത് വ്യക്തമായ സംരക്ഷണം പ്രവർത്തനരഹിതമാക്കുന്നു, എന്നാൽ ഈ സുരക്ഷാ വലയിൽ നിന്ന് ഒഴിവാക്കില്ല; നിരക്ക്-പരിധി ക്യൂകളില്ലാതെ API-കീ കണക്ഷനുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ആഗോള സംവിധാനമാണ് ഈ env var `false` ആയി സജ്ജീകരിക്കുന്നത്. | | `PROVIDER_COOLDOWN_ENABLED` | _(അൺസെറ്റ് → ഓഫ്)_ | `open-sse/services/providerCooldownTracker.ts` | ആഗോള ക്രോസ്-അഭ്യർത്ഥന provider/connection കൂൾഡൗൺ ട്രാക്കിംഗ് ഓപ്റ്റ്-ഇൻ ചെയ്യുക. സ്ഥിരസ്ഥിതിയായി OFF (കണക്ഷൻ കൂൾഡൗൺ / പ്രൊവൈഡർ സർക്യൂട്ട് ബ്രേക്കർ ഓവർലാപ് ചെയ്യുന്നു). പ്രവർത്തനക്ഷമമാക്കാൻ `true`/`1`/`on` സ്വീകരിക്കുന്നു. | | `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | പരാജയപ്പെട്ട provider/connection വീണ്ടും ശ്രമിക്കുന്നതിന് മുമ്പുള്ള ഏറ്റവും കുറഞ്ഞ കൂൾഡൗൺ (മി.സെ.). തുടർച്ചയായ പരാജയങ്ങൾക്കൊപ്പം വൻതോതിലുള്ള സ്കെയിൽ. `PROVIDER_COOLDOWN_ENABLED` ആയിരിക്കുമ്പോൾ മാത്രം ഉപയോഗിക്കുന്നു. | | `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 മിനിറ്റ്) | `open-sse/services/providerCooldownTracker.ts` | പരാജയപ്പെട്ട provider/connection പരിഗണിക്കാതെ വീണ്ടും ശ്രമിക്കുന്നതിന് മുമ്പുള്ള പരമാവധി കൂൾഡൗൺ (മി.സെ.) പരിധി. `PROVIDER_COOLDOWN_ENABLED` ആയിരിക്കുമ്പോൾ മാത്രം ഉപയോഗിക്കുന്നു. | | `STREAM_RECOVERY_ENABLED` | _(അൺസെറ്റ് → ഓഫ്)_ | `src/lib/resilience/settings.ts` (വിത്ത്) → `open-sse/services/streamRecovery.ts` (യുക്തി) | **എന്ത്:** വെട്ടിച്ചുരുക്കിയ അപ്സ്ട്രീം സ്ട്രീമുകളുടെ സുതാര്യമായ വീണ്ടെടുക്കൽ (ഫ്രീ-ക്ലോഡ്-കോഡ് പോർട്ട്). തുറക്കുന്ന SSE വിൻഡോ `STREAM_RECOVERY.HOLDBACK_MS` (750 ms) വരെ പിടിക്കുന്നു, അതിനാൽ ഏതെങ്കിലും ബൈറ്റ് ക്ലയൻ്റ് — എത്തുന്നതിന് മുമ്പ് സംഭവിക്കുന്ന ഒരു _pre-commit_ cutoff — ഒന്ന് വീണ്ടും തുറക്കുകയും അദൃശ്യമായി വീണ്ടും ശ്രമിക്കുകയും ചെയ്യുന്നു.** എപ്പോൾ പ്രവർത്തനക്ഷമമാക്കണം:** സ്ട്രീം ആരംഭത്തിൽ പതിവായി 0-ബൈറ്റ് വെട്ടിച്ചുരുക്കുന്ന flaky/upstreams ; ഓരോ സ്ട്രീമിലും 750 ms വരെ ചേർത്ത സമയം മുതൽ ആദ്യ ടോക്കൺ വരെ നിങ്ങൾക്ക് താങ്ങാനാവുന്നില്ലെങ്കിൽ OFF ഉപേക്ഷിക്കുക. `true`/`1`/`on` സ്വീകരിക്കുന്നു. സ്ഥായിയായ പ്രതിരോധശേഷി ക്രമീകരണം വിത്തുകൾ; ഡാഷ്ബോർഡ് ക്രമീകരണം ഒരിക്കൽ സജ്ജീകരിച്ചു വിജയിക്കുന്നു. | | `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(അൺസെറ്റ് → ഓഫ്)_ | `src/lib/resilience/settings.ts` (വിത്ത്) → `open-sse/services/streamRecovery.ts` (യുക്തി) | **എന്ത്:** മിഡ്-സ്ട്രീം തുടർച്ച (Fase 4.4) — ഒരു _post-commit_ വെട്ടിച്ചുരുക്കലിനു ശേഷം (ബൈറ്റുകൾ ഇതിനകം തന്നെ ക്ലയൻ്റിലേക്ക് എത്തി), ഒരു അസിസ്റ്റൻ്റ് പ്രിഫിൽ ആയി ഭാഗിക ടെക്സ്റ്റ് ഉപയോഗിച്ച് വീണ്ടും അഭ്യർത്ഥിക്കുകയും നഷ്ടമായ പ്രത്യയം തുന്നുകയും ചെയ്യുക. പ്ലെയിൻ-ടെക്സ്റ്റ് OpenAI-അനുയോജ്യമായ സ്ട്രീമുകൾ മാത്രം; ഫ്ലൈറ്റിൽ ടൂൾ കോൾ ഉപയോഗിച്ച് ഒരിക്കലും വെടിവയ്ക്കില്ല.** എപ്പോൾ പ്രവർത്തനക്ഷമമാക്കണം:** നീണ്ട തലമുറകൾ ഉത്തരമധ്യത്തിൽ വെട്ടിക്കുറയ്ക്കുകയും, വീണ്ടെടുക്കപ്പെട്ട വാൽ ടോക്കൺ-ബൈ-ടോക്കൺ എന്നതിലുപരി ഒരു പൊട്ടിത്തെറിയായി നിങ്ങൾ സ്വീകരിക്കുകയും ചെയ്യുന്നു. `STREAM_RECOVERY_ENABLED` ൽ നിന്ന് സ്വതന്ത്രം (വ്യത്യസ്ത റിസ്ക് പ്രൊഫൈൽ). `true`/`1`/`on` സ്വീകരിക്കുന്നു. | | `STREAM_THROUGHPUT_WATCHDOG_ENABLED` | _(അൺസെറ്റ് → ഓഫ്)_ | `src/lib/resilience/settings.ts` → `open-sse/services/throughputWatchdog.ts` | ഓപ്റ്റ്-ഇൻ സജീവ-സ്ട്രീം ഉപയോഗപ്രദമായ-ഔട്ട്പുട്ട് വാച്ച്ഡോഗ്. കോൺഫിഗർ ചെയ്ത അസിസ്റ്റൻ്റ്-ഔട്ട്പുട്ട് റേറ്റിന് താഴെയായി തുടരുന്ന എന്നാൽ ചങ്കുകൾ അയച്ചുകൊണ്ടിരിക്കുന്ന സ്ട്രീമുകൾ കണ്ടെത്തുന്നു; ഹൃദയമിടിപ്പുകൾ, ഉപയോഗ സംഭവങ്ങൾ, ശൂന്യമായ ഡെൽറ്റകൾ, tool/reasoning ഘട്ടങ്ങൾ എന്നിവ പുരോഗതിയായി മാറുന്നില്ല. നിഷ്ക്രിയവും കഠിനമായ ഡെഡ്ലൈൻ ടൈംഔട്ടുകളിൽ നിന്നും വേർതിരിക്കുക. ഡിഫോൾട്ട് വിത്ത് മാത്രം: `resilienceSettings` ൽ സംരക്ഷിച്ചിരിക്കുന്ന ഒരു ബൂളിയൻ (ഡാഷ്ബോർഡ് → ക്രമീകരണങ്ങൾ → റെസിലിയൻസ്) മുൻഗണന നൽകുന്നു. | | `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | ത്രൂപുട്ട് മൂല്യനിർണ്ണയത്തിന് മുമ്പുള്ള ഗ്രേസ് പിരീഡ്, 0–600000 മി.എസ്. | | `STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | റോളിംഗ് ഉപയോഗപ്രദമായ ഔട്ട്പുട്ട് വിൻഡോ, 1000-600000 ms വരെ പരിമിതപ്പെടുത്തിയിരിക്കുന്നു; നിർത്തുന്നതിന് മുമ്പ് ഒരു സമ്പൂർണ്ണ വിൻഡോ ആവശ്യമാണ്. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND` | `4` | `src/lib/resilience/settings/normalize.ts` | ഏറ്റവും കുറഞ്ഞ UTF-8 അസിസ്റ്റൻ്റ്-ഔട്ട്പുട്ട് ബൈറ്റ് നിരക്ക് (യാഥാസ്ഥിതിക ടോക്കൺ പ്രോക്സി), 1–1000000 വരെ പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. | | `STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES` | `1` | `src/lib/resilience/settings/normalize.ts` | കുറഞ്ഞ പൂജ്യമല്ലാത്ത ഉപയോഗപ്രദമായ ഔട്ട്പുട്ട് സാമ്പിൾ അളക്കാൻ കഴിയുന്നതായി കണക്കാക്കുന്നു, 1–1000000 ബൈറ്റുകളായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. | | `HEALTHCHECK_STAGGER_MS` | `3000` | `src/lib/tokenHealthCheck.ts` | സ്റ്റാർട്ടപ്പിലെ ദാതാവിൻ്റെ ടോക്കൺ ഹെൽത്ത് ചെക്കുകൾക്കിടയിലുള്ള സ്റ്റാഗർ ഇടവേള (മി.എസ്). | | `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | പൊട്ടുന്നത് തടയാൻ പ്രൊവൈഡർ ടോക്കൺ ഹെൽത്ത് ചെക്കുകൾക്കിടയിൽ `HEALTHCHECK_STAGGER_MS` യുടെ മുകളിൽ മിനിമം റാൻഡമൈസ്ഡ് ജിറ്റർ (എംഎസ്) ചേർത്തു (ഇഷ്യൂ #1220). | | `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | പൊട്ടുന്നത് തടയാൻ പ്രൊവൈഡർ ടോക്കൺ ഹെൽത്ത് ചെക്കുകൾക്കിടയിൽ `HEALTHCHECK_STAGGER_MS` യുടെ മുകളിൽ പരമാവധി ക്രമരഹിതമായ ജിറ്റർ (മി.എസ്) ചേർത്തു (ഇഷ്യൂ #1220). | | `HEALTHCHECK_BATCH_SIZE` | `20` | `src/lib/tokenHealthCheck.ts` | സ്റ്റാർട്ടപ്പ് ടോക്കൺ-ഹെൽത്ത് ചെക്ക് സ്വീപ്പിനായുള്ള കൺകറൻ്റ്-ചെക്ക് ബാച്ച് സൈസ്; വലിയ മൂല്യങ്ങൾ സമാന്തരമായി കൂടുതൽ കണക്ഷനുകൾ പരിശോധിക്കുന്നു, ചെറിയ മൂല്യങ്ങൾ ബർസ്റ്റ് ലോഡ് കുറയ്ക്കുന്നു (ഇഷ്യൂ #7875, #7719 ൻ്റെ റിഗ്രഷൻ). | | `REQUEST_RETRY` | `2` | `src/sse/services/cooldownAwareRetry.ts` | ക്ലയൻ്റിലേക്ക് പിശക് തിരികെ നൽകുന്നതിന് മുമ്പ് മോഡൽ-സ്കോപ്പ്ഡ് കൂൾഡൗൺ പ്രതികരണങ്ങളിൽ സ്വയമേവ വീണ്ടും ശ്രമിച്ചതിൻ്റെ എണ്ണം. | | `MAX_RETRY_INTERVAL_SEC` | `30` | `src/sse/services/cooldownAwareRetry.ts` | കൂൾഡൗൺ ശ്രമങ്ങൾക്കിടയിലുള്ള പരമാവധി ബാക്ക്ഓഫ് ഇടവേള (സെക്കൻഡ്). അപ്സ്ട്രീം `Retry-After` പരിഗണിക്കാതെ ഈ മൂല്യം കൊണ്ട് ക്യാപ് ചെയ്തിരിക്കുന്നു. | | `HEADROOM_URL` | `http://localhost:8787` | `src/lib/headroom/detect.ts` | ഹെഡ്റൂം ടോക്കൺ-സേവർ പ്രോക്സി URL. ഡാഷ്ബോർഡ് ലൈഫ് സൈക്കിൾ (`api/headroom/*`) സ്ഥിരസ്ഥിതിയായി ലൂപ്പ്ബാക്കിൽ ഒരു ലോക്കൽ `headroom-ai` CLI രൂപപ്പെടുത്തുന്നു; ഒരു ബാഹ്യ Docker സൈഡ്കാർ പ്രോക്സിയിൽ പോയിൻ്റ് ചെയ്യാൻ മാത്രം അസാധുവാക്കുക. | ### സ്ട്രീം-റിക്കവറി ട്യൂണിംഗ് സ്ഥിരാങ്കങ്ങൾ റിക്കവറി ഹോൾഡ്ബാക്ക് സ്വഭാവം ട്യൂൺ ചെയ്യുന്നത് `open-sse/config/constants.ts` (`STREAM_RECOVERY`) ലെ ഹാർഡ്കോഡഡ് കോൺസ്റ്റൻ്റുകൾ ഉപയോഗിച്ചാണ്, റഫറൻസിനായി ഇവിടെ കാണിച്ചിരിക്കുന്നു — അവ മാറ്റുന്നതിന് ഒരു കോഡ് എഡിറ്റ് ആവശ്യമാണ്, ഒരു env var അല്ല: - `STREAM_RECOVERY.HOLDBACK_MS = 750` — തുറക്കുന്ന SSE ജാലകം എത്രത്തോളം നീണ്ടുനിൽക്കുന്നു, അതിനാൽ ഏതെങ്കിലും ബൈറ്റ് ക്ലയൻ്റിനോട് പ്രതിജ്ഞാബദ്ധമാകുന്നതിന് മുമ്പ് ഒരു നേരത്തെയുള്ള വെട്ടിച്ചുരുക്കൽ വീണ്ടും ശ്രമിക്കാവുന്നതാണ്. - ഹോൾഡ് വിൻഡോയിൽ `STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536` — ഹാർഡ് ക്യാപ്; ടൈമർ പരിഗണിക്കാതെ തന്നെ, ഇത്രയും ബൈറ്റുകൾ കുമിഞ്ഞുകൂടുമ്പോൾ തന്നെ കമ്മിറ്റ് ചെയ്യുക ( + പാസ്ത്രൂ ഫ്ലഷ് ചെയ്യുക). - `STREAM_RECOVERY.EARLY_RETRY_MAX = 4` — പരമാവധി സുതാര്യമായി അപ്സ്ട്രീം സ്ട്രീം വീണ്ടും തുറക്കുന്നു, ഹോൾഡ്ബാക്ക് ഇപ്പോഴും പ്രതിജ്ഞാബദ്ധമല്ല. > **ഓരോ ദാതാവിനും സ്ലൈഡിംഗ് വിൻഡോ നിരക്ക് പരിധി (എൻവി വാർ ഇല്ല):** FCC-ported per-provider sliding-window rate-limit _fallback_ കോഡിൽ നിലവിലുണ്ട് (`open-sse/services/providerDefaultRateLimit.ts`, `open-sse/services/rateLimitManager.ts` വഴി വയർ ചെയ്തത്) എന്നാൽ ഷിപ്പുചെയ്യുന്നു** ശൂന്യമായ സ്ഥിരസ്ഥിതി മാപ്പ്** കൂടാതെ ഉണ്ട്** ഓപ്പറേറ്റർ ഇല്ല env var** ഇന്ന് — ഇത് ഒരു ടെസ്റ്റ് ഹുക്ക് / കോഡ് എഡിറ്റ് വഴി മാത്രമേ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുള്ളൂ. മുകളിലുള്ള പട്ടികയിൽ ഇത് മനഃപൂർവ്വം പട്ടികപ്പെടുത്തിയിട്ടില്ല. _does_-ന് ഒരു നോബ് ഉള്ള per-`(token, IP)` റിലേ ലിമിറ്റർ `RELAY_IP_PER_MINUTE` ആണ് (§3 നെറ്റ്വർക്ക് & പോർട്ടുകൾ). --- ## 22. ഡീബഗ്ഗിംഗ് > [!CAUTION] > ഈ വേരിയബിളുകൾ ഉത്പാദിപ്പിക്കുന്നു** വാചാലമായ ഔട്ട്പുട്ട്** കൂടാതെ സെൻസിറ്റീവ് ഡാറ്റ ചോർന്നേക്കാം.** ഉൽപ്പാദനത്തിൽ ഒരിക്കലും പ്രവർത്തനക്ഷമമാക്കരുത്.** | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CURSOR_DEBUG` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/cursor.ts` | വെർബോസ് Cursor എക്സിക്യൂട്ടർ ലോഗുകൾ (ഡീകോഡ് ചെയ്ത SSE ചങ്കുകൾ മുതലായവ) പ്രവർത്തനക്ഷമമാക്കാൻ `1` സജ്ജമാക്കുക. | | `CURSOR_STREAM_DEBUG` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/cursor.ts` | `CURSOR_DEBUG` യുടെ പിന്നാക്ക-അനുയോജ്യ അപരനാമം. | | `CURSOR_DUMP_FILE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/cursor.ts` | `CURSOR_DEBUG=1` ആകുമ്പോൾ റോ ഡീകോഡ് ചെയ്ത Cursor ചങ്കുകൾ സ്വീകരിക്കുന്ന ഓപ്ഷണൽ ഫയൽ പാത്ത്. | | `CURSOR_STREAM_TIMEOUT_MS` | `300000` | `open-sse/executors/cursor.ts` | Cursor എക്സിക്യൂട്ടറിനായുള്ള നിഷ്ക്രിയ സമയപരിധി (മിസെ) സ്ട്രീം ചെയ്യുക. | | `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | ഒരു കമ്പോസർ kv_after_text സോഫ്റ്റ് ടെർമിനേറ്ററിന് ശേഷമുള്ള ഗ്രേസ് വിൻഡോ (ms) ബൈറ്റുകൾ ബഫർ ആയി തുടരുമ്പോൾ — അതിൻ്റെ ഫ്രെയിം പൂർത്തിയാക്കാൻ ഒരു ട്രെയിലിംഗ് exec_mcp ടൂൾ കോൾ സമയം നൽകുന്നു. | | `CURSOR_TOOL_DIRECTIVE` | പ്രവർത്തനക്ഷമമാക്കി (`!== "0"`) | `open-sse/executors/cursor.ts` | composer-2.5 വിശ്വസനീയമായി ടൂൾ കോളുകൾ നൽകുന്ന ടൂൾ-കമ്മിറ്റ് നിർദ്ദേശം. പ്രവർത്തനരഹിതമാക്കാൻ `0` സജ്ജമാക്കുക. | | `OMNIROUTE_SYSTEM_INSTRUCTION_APPEND` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/translator/request/claude-to-openai.ts`, `open-sse/translator/response/openai-to-claude.ts` | ഓപ്പറേറ്റർ-നിർവചിച്ച സിസ്റ്റം പ്രോംപ്റ്റ് ടെക്സ്റ്റ് സിസ്റ്റം സന്ദേശമായ AFTER പരിഭാഷയിൽ ചേർത്തു (വിവർത്തനത്തിനു ശേഷമുള്ള കുത്തിവയ്പ്പ്), codex/Responses, `/v1/messages` പാഥുകളിൽ എത്തുന്നു. പ്രതിധ്വനിച്ച സിസ്റ്റം ആമുഖ ബ്ലോക്കുകളിൽ നിന്ന് നീക്കം ചെയ്ത ഡയറക്റ്റീവ് പ്രിഫിക്സായും ഉപയോഗിക്കുന്നു. പ്രവർത്തനരഹിതമാക്കാൻ സജ്ജമാക്കാതെ വിടുക. | | `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (ഓഫ്) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | ഓപ്പണായി→ ക്ലോഡ് സ്ട്രീമിൻ്റെ ആരംഭത്തിൽ നിന്ന് എക്കോഡ് സിസ്റ്റം-പ്രോംപ്റ്റ് ആമുഖ ബ്ലോക്കുകൾ നീക്കം ചെയ്യാൻ `1` ആയി സജ്ജീകരിക്കുക. ഡിഫോൾട്ടായി — ഓഫ് ഹ്യൂറിസ്റ്റിക്സ് ഇംഗ്ലീഷ്-പ്രോസ് ആകൃതിയിലുള്ളതും പ്രതികരണ പേലോഡിനെ മ്യൂട്ടേറ്റ് ചെയ്യുന്നതുമാണ്, അതിനാൽ അത്തരമൊരു വിഭാഗത്തിൽ നിയമാനുസൃതമായി തുറക്കുന്ന ഒരു മറുപടിക്ക് അത് നഷ്ടമാകും. | | `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | റിമോട്ട് `image_url` ദർശന ഇൻപുട്ടിനായി ഓരോ ചിത്രത്തിനും ലഭിക്കാനുള്ള സമയപരിധി (മി.സെ.). | | `CURSOR_STATE_DB_PATH` | _(അന്വേഷണം)_ | `open-sse/utils/cursorVersionDetector.ts` | IDE പതിപ്പ് കണ്ടെത്തുന്നതിന് ഉപയോഗിക്കുന്ന Cursor IDE സ്റ്റേറ്റ് DB ലുക്ക്അപ്പ് അസാധുവാക്കുക. | | `CURSOR_AGENT_CLI_VERSION` | _(കണ്ടെത്തുക / പിൻ)_ | `open-sse/utils/cursorAgentCliVersion.ts` | ഏജൻ്റ് റണ്ണിൽ `x-cursor-client-version: cli-…` നുള്ള ഏജൻ്റ് CLI ബിൽഡ് ഐഡി (`YYYY.MM.DD-`). | | `CURSOR_AGENT_BIN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | ഇമേജ് സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്ന Cursor ഏജൻ്റ് ബൈനറിയിലേക്കുള്ള പാത. സജ്ജീകരിച്ചിട്ടില്ല, ഹാൻഡ്ലർ `providerSpecificData.agentBin` ഉപയോഗിക്കുന്നു, തുടർന്ന് PATH. | | `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Cursor ഏജൻ്റ് ഇമേജ് ജോലികൾക്കുള്ള ഓരോ ഇമേജ് വാൾ ക്ലോക്ക് (മി.സെ.). | | `CURSOR_IMG_MAX_CONCURRENT` | `2` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Cursor ഇമേജ് ജോലികൾക്കായി പങ്കിട്ട സീറ്റ് കൺകറൻസി ഗേറ്റ്. | | `CURSOR_IMG_MODEL` | അഭ്യർത്ഥന / `auto` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | ഇമേജ് ജോലികൾക്കായി Cursor CLI `--model` അസാധുവാക്കുക. | | `UC_IMAGE_POLL_INTERVAL_MS` | `2000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC (uncensored.com) image-gen result-poll cadence (ms). | | `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC ഇമേജ്-ജെൻ ഫലം-പോൾ വാൾ ക്ലോക്ക് (മിസെ). | | `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC (uncensored.com) video-gen result-poll cadence (ms). | | `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC വീഡിയോ-ജെൻ ഫലം-പോൾ വാൾ ക്ലോക്ക് (മി.സെ.). | | `CURSOR_DATA_DIR` | _(അന്വേഷണം)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Cursor ഏജൻ്റ് CLI ഡാറ്റ dir (`…/versions/`) അസാധുവാക്കുക; അതേ var ഔദ്യോഗിക ഏജൻ്റ് ഉപയോഗിക്കുന്നു. | | `CURSOR_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/ad-hoc/cursor-tap.cjs` | ഡെവലപ്പർ ടൂളിംഗ് ഉപയോഗിക്കുന്ന നേരിട്ടുള്ള Cursor ബെയറർ ടോക്കൺ. | | `OMNIROUTE_LOG_REQUEST_SHAPE` | അപ്രാപ്തമാക്കി ( `"1"` വഴി തിരഞ്ഞെടുക്കൽ) | `src/app/api/v1/chat/completions/route.ts` | `"1"` സജ്ജമാക്കുമ്പോൾ വലിയ ചാറ്റ് പേലോഡുകൾക്കായി content-type/length മാർക്കറുകൾ ലോഗ് ചെയ്യുക. ലോഗ് നോയിസ് കുറയ്ക്കാൻ ഡിഫോൾട്ടായി ഓഫ് ചെയ്യുക. | | `DEBUG_RESPONSES_SSE_TO_JSON` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/handlers/responseTranslator.ts` | പ്രതികരണങ്ങൾ ലോഗ് ചെയ്യാൻ `true` സജ്ജമാക്കുക API SSE→JSON വിവർത്തന വിശദാംശങ്ങൾ. | | `DEBUG_CLAUDE_NONSTREAM` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/handlers/responseTranslator.ts` | Claude പ്രതികരണ വിവർത്തന പാതയിൽ (ഡീബഗ് മാത്രം) ശൂന്യമായ textContent ചങ്കുകളുടെ ഉപരിതലത്തിലേക്ക് `true` സജ്ജമാക്കുക. | | `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | E2E ടെസ്റ്റ് ഹാർനെസ് | E2E ടെസ്റ്റ് മോഡ് പ്രവർത്തനക്ഷമമാക്കാൻ `true` സജ്ജമാക്കുക (റിലാക്സ്ഡ് ഓത്ത്, ടെസ്റ്റ് ഹുക്കുകൾ). | --- ## 23. GitHub ഇൻ്റഗ്രേഷൻ ഡാഷ്ബോർഡിൽ നിന്ന് നേരിട്ട് പ്രശ്നങ്ങൾ റിപ്പോർട്ട് ചെയ്യാൻ ഉപയോക്താക്കളെ അനുവദിക്കുക. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | --------------------- | ----------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | `GITHUB_ISSUES_REPO` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/v1/issues/report/route.ts` | `owner/repo` ഫോർമാറ്റിലുള്ള ശേഖരം. | | `GITHUB_ISSUES_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/v1/issues/report/route.ts` | GitHub വ്യക്തിഗത ആക്സസ് ടോക്കൺ, `issues:write` സ്കോപ്പ്. | | `GITHUB_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | ഇഷ്യൂ ട്രയേജ് / ക്ലൗഡ് ഏജൻ്റ് സഹായികൾ | `GITHUB_ISSUES_TOKEN` യുടെ ഫാൾബാക്ക് ആയി ഉപയോഗിക്കുന്ന ജനറിക് GitHub ആക്സസ് ടോക്കൺ, `src/lib/cloudAgent/*` ലെ ക്ലൗഡ് ഏജൻ്റ് സഹായികൾ ഉപയോഗിക്കുന്നു. | --- ## റെൻഡർ ഫ്രീ-ടയർ കീപ്പ്-എലൈവ് ഇൻബൗണ്ട് ട്രാഫിക്കില്ലാതെ ഏകദേശം 15 മിനിറ്റിന് ശേഷം റെൻഡർ ഒരു സൗജന്യ വെബ് സേവനം സ്പിന്നുചെയ്യുന്നു. അത് തടയുന്നതിന്, ഒറ്റപ്പെട്ട ലോഞ്ചറിന് (`scripts/dev/run-standalone.mjs`, Docker ഇമേജ് പ്രവർത്തിപ്പിക്കുന്ന) സേവനത്തിൻ്റെ സ്വന്തം പൊതു URL പിംഗ് ചെയ്യാൻ കഴിയും. ഒരു പൊതു URL ലഭ്യമല്ലാത്തിടത്തോളം ഇത് ഒന്നും ചെയ്യുന്നില്ല, സ്റ്റാറ്റസ് മാറുമ്പോൾ മാത്രമേ അത് ലോഗിൻ ചെയ്യുകയുള്ളൂ. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | ---------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | `SELF_PING_ENABLED` | ഒരു URL സജ്ജമാക്കുമ്പോൾ | `0`, `false`, `off` അല്ലെങ്കിൽ `no` പിംഗർ ഓഫ് ചെയ്യുന്നു. പണമടച്ചുള്ള റെൻഡർ പ്ലാനുകളിൽ ഇത് ഉപയോഗിക്കുക, അവിടെ ഒന്നും കറങ്ങുന്നില്ല. | | `SELF_PING_URL` | `RENDER_EXTERNAL_URL` | URL മുതൽ ping വരെയുള്ള അടിസ്ഥാനം. റെൻഡർ എല്ലാ പ്ലാനിലും `RENDER_EXTERNAL_URL` തന്നെ സജ്ജമാക്കുന്നു, അതിനാൽ പിംഗർ ഡിഫോൾട്ടായി അവിടെ ഓണാണ്. | | `SELF_PING_PATH` | `/api/monitoring/health` | ആ URL യിലെ പാത. `/` ൽ തുടങ്ങണം; മറ്റെന്തെങ്കിലും മുന്നറിയിപ്പ് ഉപയോഗിച്ച് പിംഗറിനെ പ്രവർത്തനരഹിതമാക്കുന്നു. | | `SELF_PING_INTERVAL_SECONDS` | `180` | പിങ്ങുകൾക്കിടയിലുള്ള സെക്കൻഡുകൾ, ആദ്യ പിംഗ് 60 സെക്കൻഡിന് ശേഷം. `30` ന് താഴെയുള്ള മൂല്യങ്ങൾ `180` ലേക്ക് മടങ്ങുന്നു. | ഒരു മാസം മുഴുവൻ ഉണർന്നിരിക്കുന്ന ഒരു സേവനം ഏകദേശം 744 ഇൻസ്റ്റൻസ് മണിക്കൂർ ഉപയോഗിക്കുന്നു, അതിനാൽ ഇത് റെൻഡറിൻ്റെ നിലവിലെ ഫ്രീ-ടയർ അലവൻസിനെതിരെ പരിശോധിക്കുക. ## വിന്യാസ സാഹചര്യങ്ങൾ റിലേ ബാക്കെൻഡ് SRE മാർഗ്ഗനിർദ്ദേശത്തിനായി (ts/bifrost/auto സ്വഭാവം, 9 റൂട്ടർ vs CLIProxyAPI പ്ലേസ്മെൻ്റ്, ഹൈ-ത്രൂപുട്ട് ഫാൾബാക്ക് സ്ട്രാറ്റജി), [റിലേ ബാക്കെൻഡ് സ്ട്രാറ്റജി](/docs/reference/RELAY_BACKEND_STRATEGY.md) കാണുക. ### കുറഞ്ഞ പ്രാദേശിക വികസനം ```bash JWT_SECRET=$(openssl rand -base64 48) API_KEY_SECRET=$(openssl rand -hex 32) INITIAL_PASSWORD=dev123 PORT=20128 NODE_ENV=development ``` ### Docker ഉത്പാദനം ```bash JWT_SECRET= API_KEY_SECRET= INITIAL_PASSWORD= STORAGE_ENCRYPTION_KEY= DATA_DIR=/data PORT=20128 API_PORT=20129 NODE_ENV=production AUTH_COOKIE_SECURE=true REQUIRE_API_KEY=true NEXT_PUBLIC_BASE_URL=https://omniroute.example.com BASE_URL=http://localhost:20128 OMNIROUTE_MEMORY_MB=8192 CORS_ORIGIN=https://your-frontend.example.com ``` ### എയർ-ഗാപ്പ്ഡ് / 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 (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. സ്കിൽസ് സാൻഡ്ബോക്സ് (v3.8.0 +) സ്കിൽസ് ഫ്രെയിംവർക്ക് (`src/lib/skills/`) സാൻഡ്ബോക്സ് ചെയ്ത പരിതസ്ഥിതിയിൽ ഉപയോക്തൃ-നിർവചിച്ച ഓട്ടോമേഷനുകൾ എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ ബാധകമാകുന്ന പരിധികളും സുരക്ഷാ നോബുകളും. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | -------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `SKILLS_SANDBOX_TIMEOUT_MS` | `10000` (10 സെ) | `src/lib/skills/builtins.ts` | സാൻഡ്ബോക്സ് ചെയ്ത സ്കിൽ കോഡിനായി ഓരോ എക്സിക്യൂഷൻ വാൾ-ക്ലോക്ക് ടൈംഔട്ട്. ഹാർഡ് ക്യാപ്; ഇനി എന്തും കൊല്ലപ്പെടും. | | `SKILLS_EXECUTION_TIMEOUT_MS` | _( `SKILLS_SANDBOX_TIMEOUT_MS` ലേക്ക് മടങ്ങുന്നു)_ | `src/lib/skills/` | ഉയർന്ന തലത്തിലുള്ള സ്കിൽ ഓർക്കസ്ട്രേഷൻ കാലഹരണപ്പെട്ടു. മൾട്ടി-സ്റ്റെപ്പ് വർക്ക്ഫ്ലോകൾ അനുവദിക്കുന്നതിന് `SKILLS_SANDBOX_TIMEOUT_MS` നേക്കാൾ ഉയർന്നത് സജ്ജമാക്കുക. | | `SKILLS_MAX_FILE_BYTES` | `1048576` (1 MB) | `src/lib/skills/builtins.ts` | ഏതെങ്കിലും ഒരു സാൻഡ്ബോക്സ് ഫയലിൽ നിന്നും ഒരു വൈദഗ്ദ്ധ്യം വായിച്ചേക്കാവുന്ന പരമാവധി ബൈറ്റുകൾ. | | `SKILLS_MAX_HTTP_RESPONSE_BYTES` | `256000` (250 KB) | `src/lib/skills/builtins.ts` | ഒരു നൈപുണ്യത്തിനുള്ളിലെ ഏതെങ്കിലും HTTP പ്രതികരണത്തിൽ നിന്ന് ക്യാപ്ചർ ചെയ്ത പരമാവധി ബൈറ്റുകൾ. | | `SKILLS_MAX_SANDBOX_OUTPUT_CHARS` | `100000` | `src/lib/skills/builtins.ts` | ഒരു സാൻഡ്ബോക്സ് ഇൻവോക്കേഷനിൽ നിന്ന് ലഭിച്ച stdout/stderr പ്രതീകങ്ങളുടെ ഹാർഡ് ക്യാപ്. | | `SKILLS_SANDBOX_NETWORK_ENABLED` | `false` | `src/lib/skills/builtins.ts` | സാൻഡ്ബോക്സിനുള്ളിൽ നിന്ന് പുറത്തേക്കുള്ള നെറ്റ്വർക്ക് അനുവദിക്കുന്നതിന് `1`/`true` സജ്ജമാക്കുക. സ്ഥിരസ്ഥിതികൾ** ഒറ്റപ്പെട്ടു** സുരക്ഷയ്ക്കായി. `agent-sandbox` റൺടൈം അവഗണിച്ചു: നെറ്റ്വർക്ക് ഐസൊലേഷൻ, റീഡ്-ഒൺലി റൂട്ട് ഫയൽസിസ്റ്റം, CPU/memory പരിധികൾ എന്നിവ ഓപ്പറേറ്ററുടെ `SandboxTemplate` ൽ നിന്നാണ്. | | `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(ശൂന്യം)_ | `src/lib/skills/builtins.ts` | സാൻഡ്ബോക്സ് നിർവ്വഹണത്തിനായി അനുവദനീയമായ കണ്ടെയ്നർ ചിത്രങ്ങളുടെ കോമയാൽ വേർതിരിച്ച അനുവദനീയ പട്ടിക. ശൂന്യമെന്നാൽ ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ട് മാത്രം. | | `SKILLS_SANDBOX_DOCKER_IMAGE` | _(ബിൽറ്റ്-ഇൻ ഡിഫോൾട്ട്)_ | `src/lib/skills/` | ഡോക്കർ പിന്തുണയുള്ള സാൻഡ്ബോക്സ് മുട്ടയിടുമ്പോൾ ഉപയോഗിക്കുന്ന കണ്ടെയ്നർ ചിത്രം. ഒരു ഇഷ്ടാനുസൃത കാഠിന്യമുള്ള അടിസ്ഥാന ചിത്രം പിൻ ചെയ്യാൻ അസാധുവാക്കുക. | | `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | നൈപുണ്യ സാൻഡ്ബോക്സിംഗിനായുള്ള കണ്ടെയ്നർ റൺടൈം: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman` \| `agent-sandbox`. `auto` ഓരോ ഹോസ്റ്റിലും ഇൻസ്റ്റാൾ ചെയ്ത മികച്ച റൺടൈം തിരഞ്ഞെടുക്കുന്നു OS ( macOS ൽ ആപ്പിൾ Container/OrbStack, Windows ൽ WSL കണ്ടെയ്നർ, Linux ൽ Podman), Docker ലേക്ക് മടങ്ങുന്നു. `agent-sandbox` (റിമോട്ട് കുബർനെറ്റസ് വാം പൂളുകൾ) ഓപ്റ്റ്-ഇൻ മാത്രമാണ്, ഒരിക്കലും സ്വയമേവ കണ്ടെത്തില്ല. | | `SKILLS_AGENT_SANDBOX_POOLS` | _(ശൂന്യം)_ | `src/lib/skills/agentSandboxProvider.ts` | `image=pool` ജോഡികൾ, കോമയാൽ വേർതിരിച്ചത്: `SKILLS_SANDBOX_RUNTIME=agent-sandbox` ആയിരിക്കുമ്പോൾ ഏത് `SandboxWarmPool` ഓരോ സാൻഡ്ബോക്സ് ഇമേജും നൽകുന്നു. | | `SKILLS_AGENT_SANDBOX_POOL` | _(ശൂന്യം)_ | `src/lib/skills/agentSandboxProvider.ts` | `SKILLS_AGENT_SANDBOX_POOLS` യിൽ ലിസ്റ്റുചെയ്തിട്ടില്ലാത്ത ചിത്രങ്ങൾക്കുള്ള ഫാൾബാക്ക് വാം പൂൾ. ഒരു റൺ പരാജയപ്പെടുന്നു (പ്രാദേശിക കണ്ടെയ്നറുകളിലേക്കുള്ള തിരിച്ചുവരവ് ഇല്ല) രണ്ടും പരിഹരിക്കപ്പെടാത്തപ്പോൾ. | | `SKILLS_AGENT_SANDBOX_NAMESPACE` | `default` | `src/lib/skills/agentSandboxProvider.ts` | ചൂടുള്ള കുളങ്ങൾ ഉൾക്കൊള്ളുന്ന നെയിംസ്പേസ്; ഒരു റണ്ണിന് ഒരു `SandboxClaim` ഇവിടെ സൃഷ്ടിക്കുകയും ഇല്ലാതാക്കുകയും ചെയ്യുന്നു. | | `SKILLS_AGENT_SANDBOX_KUBECONFIG` | _(kubectl ഡിഫോൾട്ട്)_ | `src/lib/skills/agentSandboxProvider.ts` | ഏജൻ്റ്-സാൻഡ്ബോക്സ് റൺടൈമിനായുള്ള Kubeconfig. നെയിംസ്പെയ്സിൽ സാൻഡ്ബോക്സ് ക്ലെയിമുകൾ create/get/list/watch/delete, പോഡ്സ് ഗെറ്റ്, pods/exec സൃഷ്ടിക്കുക എന്നിവ മാത്രം ആവശ്യമാണ്. | | `SKILLS_AGENT_SANDBOX_KUBECTL` | `kubectl` | `src/lib/skills/agentSandboxProvider.ts` | ഏജൻ്റ്-സാൻഡ്ബോക്സ് റൺടൈം ഉപയോഗിക്കുന്ന kubectl ബൈനറി. | | `SKILLS_AGENT_SANDBOX_CONTAINER` | `main` | `src/lib/skills/agentSandboxProvider.ts` | കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യുന്ന സാൻഡ്ബോക്സ് പോഡിനുള്ളിലെ കണ്ടെയ്നറിൻ്റെ പേര്. | | `SKILLS_AGENT_SANDBOX_CLAIM_TIMEOUT_S` | `60` | `src/lib/skills/agentSandboxProvider.ts` | ഒരു ക്ലെയിം തയ്യാറാവാൻ നിമിഷങ്ങൾ കാത്തിരിക്കുക (പരമാവധി 600). ക്ലെയിം ഒരിക്കലും ഇല്ലാതാക്കിയില്ലെങ്കിൽ അത് ഇല്ലാതാക്കപ്പെടും. | > [!CAUTION] > `SKILLS_SANDBOX_NETWORK_ENABLED=true` പ്രവർത്തനക്ഷമമാക്കുന്നത് അനിയന്ത്രിതമായ നൈപുണ്യ കോഡിൽ നിന്ന് ഒരു എഗ്രസ് പാത്ത് തുറക്കുന്നു. `OUTBOUND_SSRF_GUARD_ENABLED=true` മായി ജോടിയാക്കുക, പങ്കിട്ട വിന്യാസങ്ങളിൽ കർശനമായ `CORS_ORIGIN`/proxy നയം. --- ## 25. പ്രൊവൈഡർ ക്വോട്ടകൾ, ടണലുകൾ, ബാക്കപ്പുകൾ & മറ്റ് റൺടൈം കാര്യങ്ങൾ Redis സെഷൻ-അഫിനിറ്റി ഫാൾബാക്ക് അസാധുവാക്കൽ (ഓപ്റ്റ്-ഇൻ മാത്രം; SQLite ഡിഫോൾട്ട് മാറ്റമില്ലാതെ തുടരും): ഓരോ Redis അഫിനിറ്റി സ്റ്റോറും ഒരേസമയം പരമാവധി 8 പൂർത്തിയാകാത്ത ഓപ്പറേഷനുകൾ മാത്രമേ സ്വീകരിക്കൂ; ശേഷി നിറഞ്ഞാൽ, കോളുകൾ ഉടൻ SQLite ഉപയോഗിക്കും, കൂടാതെ 100 ms കോളർ ഡെഡ്ലൈൻ കഴിഞ്ഞ ശേഷവും അടിസ്ഥാനം ചെയ്യുന്ന Redis പ്രവർത്തനം പൂർത്തിയാകുന്നതുവരെ സ്ലോട്ടുകൾ കൈവശം തുടരും. - R1. ഒരു സെഷൻ ഓപ്പറേഷനായി സമയത്തിനുള്ളിൽ ലഭിക്കുന്ന ഏതൊരു Redis മറുപടിയും അധികാരപരമാണ്: സ്വീകരിച്ച മ്യൂട്ടേഷനുകൾ, നിരസിക്കപ്പെട്ട/നഷ്ടപ്പെട്ട CAS, കാണാതായ കീകൾ, നിലവിലില്ലാത്ത കീകളുടെ ഡിലീറ്റുകൾ, എവിക്ഷൻ ഹിറ്റുകൾ അല്ലെങ്കിൽ മിസ്സുകൾ എന്നിവ ആ സെഷന്റെ ലോക്കൽ ഫാൾബാക്ക് വരി സമകാലികമായി മായ്ക്കും; മറുപടിയും മായ്ക്കലും തമ്മിൽ await ഒന്നുമുണ്ടാകില്ല. മായ്ക്കുന്നത് സുരക്ഷിതമാണ് (ഏറ്റവും മോശം സാഹചര്യത്തിൽ, പിന്നീട് ഉണ്ടാകുന്ന ഒരു തടസ്സസമയത്ത് ഒരു അധിക റീ-സെലക്ഷൻ സംഭവിക്കാം); പഴകിയ വരി സുരക്ഷിതമല്ല. - R2. ടൈംഔട്ട് സംഭവിക്കുകയോ പിശക് ഉണ്ടാകുകയോ ചെയ്ത് ലോക്കൽ ഫാൾബാക്ക് എഴുതുന്ന ഒരു ഓപ്പറേഷൻ, സീരിയലൈസ് ചെയ്ത ബൈറ്റുകളായി താൻ എഴുതിയതെന്തോ അതുതന്നെ രേഖപ്പെടുത്തും. അതിന്റെ Redis കമാൻഡ് വൈകി പൂർത്തിയായാൽ, സമകാലികമായ SQLite compare-and-delete വഴി അതേ ബൈറ്റുകളോട് കൃത്യമായി ഒത്തുവരുന്ന വരി മാത്രമേ മായ്ക്കൂ; അക്കൗണ്ട് അല്ലെങ്കിൽ കണക്ഷൻ പൊരുത്തം ഉപയോഗിച്ച് ഒരിക്കലും മായ്ക്കില്ല. തടസ്സകാലത്തെ പുതിയ എഴുത്ത് നിലനിൽക്കും. - R3. ഒരു തടസ്സത്തിനിടയിലും എവിക്ഷൻ പരാജയപ്പെട്ട അക്കൗണ്ടിന്റെ ലോക്കൽ പിൻ എല്ലായ്പ്പോഴും നീക്കം ചെയ്യും; തുടർന്ന് അതിന്റെ മറുപടി കൈകാര്യം ചെയ്യൽ R1/R2 പിന്തുടരും. ആരോഗ്യകരമായ Redis ഒരിക്കലും ലോക്കൽ പിനുകൾ എഴുതില്ല: മിററോ ഓർഡറിംഗ് ലെഡ്ജറോ ഇല്ല, കൂടാതെ ഒരു തടസ്സത്തിനിടെ ഇൻസ്റ്റൻസുകൾ തമ്മിൽ വ്യത്യാസപ്പെടാം. പ്രൊവൈഡർ ക്വോട്ട എൻഡ്പോയിന്റുകൾ, നെറ്റ്വർക്ക് ടണലുകൾ (Tailscale, Ngrok, MITM ഡീബഗ് പ്രോക്സി), 1Proxy എഗ്രസ് പൂൾ, ഡാറ്റാബേസ് ബാക്കപ്പുകൾ, കൂടാതെ എക്സിക്യൂട്ടർ ലെയർ അല്ലെങ്കിൽ സ്ക്രിപ്റ്റുകൾ പരാമർശിക്കുന്ന ഓരോ ഫീച്ചറിനുമുള്ള ചെറിയ ഓവർറൈഡുകൾ. | വേരിയബിൾ | ഡിഫോൾട്ട് | സോഴ്സ് ഫയൽ | വിവരണം | | ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_SESSION_AFFINITY_STORE` | `sqlite` | `src/lib/db/sessionAffinity/storeFactory.ts` | സെഷൻ-ടു-അക്കൗണ്ട് അഫിനിറ്റി ബാക്ക്എൻഡ്. കോൺഫിഗർ ചെയ്ത `REDIS_URL`-നോടൊപ്പം `redis` മാത്രം പങ്കിടൽ പ്രവർത്തനക്ഷമമാക്കുന്നു; സജ്ജീകരിക്കാത്തതോ അറിയാത്തതോ ആയ മൂല്യങ്ങളും Redis കോൺഫിഗറേഷൻ ഇല്ലാത്ത അവസ്ഥകളും SQLite ഉപയോഗിക്കുന്നു. പോസിറ്റീവ് `sessionAffinityTtlMs` ആവശ്യമാണ്. Redis റൂട്ടിംഗ് ഹാഷ് ചെയ്ത ഉപയോഗം-അക്കൗണ്ട് ഐഡന്റിറ്റിയും കണക്ഷൻ ഐഡിയും സംഭരിക്കുന്നു; ഡിഫോൾട്ട് SQLite റൂട്ടിംഗ് പഴയ നാല്-ഫീൽഡ് JSON ഘടന നിലനിർത്തുന്നു. ID പരിശോധിക്കുന്നതിന് മുമ്പ് യോഗ്യമായ പ്രാദേശിക പൂളിനുള്ളിലെ ഐഡന്റിറ്റിയുമായി പൊരുത്തപ്പെടുത്തുന്നു. പങ്കിട്ട ക്ലയന്റിന്റെ `REDIS_KEY_PREFIX`, JSON മൂല്യങ്ങൾ, `PX` TTL എന്നിവ ഉപയോഗിക്കുന്നു; മ്യൂട്ടേഷനുകൾ കൃത്യമായി നിരീക്ഷിച്ച മൂല്യവുമായി താരതമ്യം ചെയ്യുന്നു. ആരോഗ്യകരമായ Redis മറുപടികൾ പ്രാദേശിക തകരാർ ഫാൾബാക്കിനെ അസാധുവാക്കുന്നു; വൈകിയെത്തുന്ന ഒരു മറുപടി, ആ സമയപരിധി കഴിഞ്ഞ പ്രവർത്തനം എഴുതിയ കൃത്യമായ സീരിയലൈസ് ചെയ്ത ഫാൾബാക്ക് വരി മാത്രമേ നീക്കം ചെയ്യൂ. മുൻകൂട്ടി ലഭ്യമാക്കിയ പിൻകൾ ഉപയോഗിക്കുമ്പോൾ വീണ്ടും സാധൂകരിക്കുന്നു. Redis പിശകുകൾ, സമയപരിധി കവിയലുകൾ, അല്ലെങ്കിൽ അഡ്മിഷൻ സാച്ചുറേഷൻ എന്നിവ SQLite-ലേക്ക് ഫാൾബാക്ക് ചെയ്യുന്നു; ഓരോ സ്റ്റോർ കോൾക്കും 100 ms പരിധിയുള്ള ത്രോട്ടിൽഡ് മുന്നറിയിപ്പുകൾ നൽകുന്നു. വിജയകരമായ Redis മിസ്സുകൾ ഷാഡോയിൽ നിന്ന് വായിക്കില്ല. കോംബോ സ്റ്റിക്കിനസ്, നേറ്റീവ് Codex ടേൺ പിൻകൾ, അക്കൗണ്ട് കോൺകറൻസി, ലോക്കൗട്ടുകൾ, അല്ലെങ്കിൽ ചെലവ് പരിധികൾ പങ്കിടില്ല. | | `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | റേറ്റ് ലിമിറ്റർ ബാക്ക്എൻഡിനുള്ള Redis കണക്ഷൻ സ്ട്രിംഗ്. | | `ALIBABA_CODING_PLAN_HOST` | _(പ്രൊഡക്ഷൻ ഹോസ്റ്റ്)_ | `open-sse/services/bailianQuotaFetcher.ts` | Alibaba Bailian കോഡിംഗ്-പ്ലാൻ ക്വോട്ടകൾ ലഭ്യമാക്കാൻ ഉപയോഗിക്കുന്ന ഹോസ്റ്റിനെ അസാധുവാക്കുന്നു. | | `ALIBABA_CODING_PLAN_QUOTA_URL` | ഹോസ്റ്റിൽ നിന്ന് ഡെറൈവ് ചെയ്യുന്നത് | `open-sse/services/bailianQuotaFetcher.ts` | Alibaba Bailian-നുള്ള പൂർണ്ണ ക്വോട്ട URL അസാധുവാക്കൽ. | | `QWEN_CLOUD_COOKIE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Qwen Cloud / Model Studio വ്യക്തിഗത Token Plan ക്വോട്ട ഗേറ്റ്വേയ്ക്കുള്ള കൺസോൾ സെഷൻ കുക്കി (ഇൻഫറൻസ് API കീ ഉപയോഗിച്ച് ഇത് വായിക്കാനാകില്ല). മുഴുവൻ `Cookie` അഭ്യർത്ഥന ഹെഡർ പകർത്തുക — അതിൽ `login_qwencloud_ticket` അടങ്ങിയിരിക്കുന്നു — home.qwencloud.com-ലെ Billing › Subscription വിഭാഗത്തിൽ `cs-data.qwencloud.com`-ലേക്കുള്ള ഏതെങ്കിലും `api.json` കോളിൽ നിന്ന് (F12 › Network). ഇത് സെൻസിറ്റീവും സെഷൻ-പരിധിയുള്ളതുമാണ്; ഓരോ കണക്ഷനുമുള്ള `qwenCloudCookie` Dashboard ഫീൽഡിന് മുൻഗണന നൽകുക. | | `QWEN_CLOUD_SEC_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Token Plan കൺസോൾ ഗേറ്റ്വേയ്ക്കുള്ള മാനുവൽ `sec_token` അസാധുവാക്കൽ. ഇത് സെൻസിറ്റീവാണ്; സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, കുക്കി ഉപയോഗിച്ച് ഡാഷ്ബോർഡ് HTML-ൽ നിന്ന് ഫ fetcher ഇത് പരിഹരിക്കുന്നു. | | `QWEN_TOKEN_PLAN_HOST` | `https://cs-data.qwencloud.com` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | വ്യക്തിഗത Token Plan ക്വോട്ടാ ഫെച്ചറിനുള്ള ഗേറ്റ്വേ ഹോസ്റ്റ് ഓവർറൈഡ് (ഉദാ. Model Studio കൺസോളിനായി `bailian-singapore-cs.alibabacloud.com`). | | `QWEN_TOKEN_PLAN_DASHBOARD_URL` | `https://home.qwencloud.com/` | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | ലോഗിൻ ചെയ്ത HTML-ൽ നിന്ന് `sec_token` പരിഹരിക്കാൻ ഉപയോഗിക്കുന്ന ഡാഷ്ബോർഡ് URL. | | `XIAOMI_MIMO_CONSOLE_COOKIE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/usage/xiaomi-mimo.ts` | Xiaomi MiMo Token Plan ക്വോട്ടാ API-യ്ക്കുള്ള കൺസോൾ സെഷൻ കുക്കി (`platform.xiaomimimo.com/api/v1/tokenPlan/usage` + `tokenPlan/detail` — ഇൻഫറൻസ് API കീ ഉപയോഗിച്ച് ഇത് വായിക്കാനാകില്ല). Token Plan പേജിലെ `platform.xiaomimimo.com`-ലേക്കുള്ള ഏതെങ്കിലും അഭ്യർത്ഥനയിൽ നിന്ന് (F12 › Network) മുഴുവൻ `Cookie` അഭ്യർത്ഥന ഹെഡർ പകർത്തുക — അതിൽ `api-platform_serviceToken`, `userId` എന്നിവ അടങ്ങിയിരിക്കുന്നു. ഇത് സെൻസിറ്റീവും സെഷൻ-പരിധിയിലുള്ളതുമാണ്; ഓരോ കണക്ഷനുമുള്ള `xiaomiMimoConsoleCookie` ഡാഷ്ബോർഡ് ഫീൽഡിന് മുൻഗണന നൽകുക. | | `XIAOMI_MIMO_MONTHLY_TOKEN_LIMIT` | `4100000000` | `open-sse/services/usage/xiaomi-mimo.ts` | കൺസോൾ കുക്കി കോൺഫിഗർ ചെയ്തിട്ടില്ലാത്തപ്പോൾ ഉപയോഗിക്കുന്ന OmniRoute-ട്രാക്ക് ചെയ്യുന്ന Xiaomi MiMo ഫാൾബാക്കിനുള്ള മാസ ബജറ്റ് (Credits). Lite ടയറിന്റെ 4.1B എന്ന ഡിഫോൾട്ട് മൂല്യം ഉപയോഗിക്കുന്നു; പ്ലാനിലെ Credits ആയി സജ്ജീകരിക്കുക (Standard 11B / Pro 38B / Max 82B). ഓരോ കണക്ഷനുമുള്ള `providerSpecificData.monthlyTokenLimit` ഓവർറൈഡ് ഈ env var-നെ മറികടക്കും. | | `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio സൗജന്യ ടയർ വിഷൻ/മീഡിയ ക്വോട്ടാ ലഭ്യമാക്കുന്നതിനുള്ള കൺസോൾ ഫ്രണ്ട്-എൻഡ് പാത്ത് ഓവർറൈഡ്. | | `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio സൗജന്യ ടയർ മൾട്ടിമോഡൽ ക്വോട്ടാ ലഭ്യമാക്കുന്നതിനുള്ള കൺസോൾ ഫ്രണ്ട്-എൻഡ് പാത്ത് ഓവർറൈഡ്. | | `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio സൗജന്യ ടയർ ഓഡിയോ ക്വോട്ടാ ലഭ്യമാക്കുന്നതിനുള്ള കൺസോൾ ഫ്രണ്ട്-എൻഡ് പാത്ത് ഓവർറൈഡ്. | | `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | ബിൽറ്റ്-ഇൻ Alibaba സൗജന്യ-ടയർ ടെക്സ്റ്റ്-മോഡൽ അനുവദനീയ പട്ടികയ്ക്കുള്ള ലോക്കൽ JSON ഓവർറൈഡിലേക്കുള്ള ഓപ്ഷണൽ പാത്ത്. ആദ്യം `$DATA_DIR/alibaba-free-tier-allowlist.json`, തുടർന്ന് `config/alibaba-free-tier-allowlist.json` എന്നതിലേക്ക് ഫാൾബാക്ക് ചെയ്യും. | | `CONTEXT_RESERVE_TOKENS` | `1024` | `open-sse/services/contextManager.ts` | പ്രോംപ്റ്റ് ബജറ്റുകൾ കണക്കാക്കുമ്പോൾ പൂർത്തീകരണ ഔട്ട്പുട്ടിനായി മാറ്റിവെക്കുന്ന ടോക്കണുകൾ. | | `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | സന്ദർഭ വിൻഡോയിൽ ഉൾക്കൊള്ളിക്കുന്നതിനായി പഴയ ഇൻലൈൻ ചിത്രങ്ങൾ നീക്കം ചെയ്യുമ്പോൾ നിലനിർത്തേണ്ട ഏറ്റവും പുതിയ ഇൻലൈൻ ചിത്രങ്ങളുടെ എണ്ണം (#8560). | | `MODEL_ALIAS_COMPAT_ENABLED` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/model.ts` | പഴയ ക്ലയന്റുകൾ ഉപയോഗിക്കുന്ന ലെഗസി മോഡൽ-അലിയാസ് അനുയോജ്യതാ പാളി ടോഗിൾ ചെയ്യുന്നു. | | `OMNIROUTE_EMERGENCY_FALLBACK` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/emergencyFallback.ts` | സൗജന്യ `nvidia`/`nvidia/nemotron-3.5-super-vl-120b-a12b` മോഡലിലേക്ക് പരാജയപ്പെട്ട അഭ്യർത്ഥനകളെ വീണ്ടും റൂട്ട് ചെയ്യുന്ന, അടിയന്തര ബജറ്റ്-തീർന്ന ഫാൾബാക്ക് പ്രവർത്തനരഹിതമാക്കാൻ `false` (അല്ലെങ്കിൽ `0`) സജ്ജീകരിക്കുക. പ്രാബല്യത്തിലുള്ള മുൻഗണന Feature Flags DB override > env var > default ആണ്; ഇത് ലഭ്യമല്ലെങ്കിൽ, സേവനം raw env value-ലേക്ക് മടങ്ങുന്നു. | | `COMMAND_CODE_CALLBACK_PORT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/providers/command-code/auth/shared.ts` | Command Code CLI helper-ൽ നിന്നുള്ള OAuth-ശൈലിയിലുള്ള callback-ുകൾക്കായി ഉപയോഗിക്കുന്ന പ്രാദേശിക പോർട്ട്. | | `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Command Code upstream-ലേക്ക് `x-command-code-version` ഹെഡറായി അയയ്ക്കുന്ന മൂല്യം. CLI പതിപ്പ് ഉയർത്തുന്നതിനായി ഇത് override ചെയ്യുക. | | `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | സ്മാർട്ട്ഫോൺ ക്വോട്ട-ഫെച്ചർ ടെലിമെട്രിക്കായി ഉപയോഗിക്കുന്ന Command Code usage/quota upstream-ന്റെ അടിസ്ഥാന URL. self-hosted/alternative Command Code API ഉപയോഗിക്കുന്നതിന് override ചെയ്യുക. | | `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | MITM ഡീബഗ് പ്രോക്സിക്കായി പ്രാദേശികമായി bind ചെയ്യുന്ന പോർട്ട്. | | `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | വികസനത്തിനായി മാത്രം, അപ്സ്ട്രീം TLS പരിശോധന പ്രവർത്തനരഹിതമാക്കാൻ `1` ആയി സജ്ജീകരിക്കുക. | | `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | പ്രോക്സി ചെയ്ത കണക്ഷനുകൾക്കുള്ള idle socket timeout (ms); ഇതിനെക്കാൾ കൂടുതൽ സമയം idle ആയ സോക്കറ്റുകൾ half-open ടണലുകൾ ചോർന്നുപോകുന്നത് ഒഴിവാക്കാൻ അടച്ചുപൂട്ടും. | | `BRIDGE_PORT` | `20129` | `bin/antigravity-bridge.mjs` | Antigravity MITM ബ്രിഡ്ജ് കേൾക്കുന്ന പോർട്ട്. | | `ROUTER_URL` | `http://127.0.0.1:20128/v1/antigravity` | `bin/antigravity-bridge.mjs` | Antigravity ട്രാഫിക് ബ്രിഡ്ജ് ഫോർവേഡ് ചെയ്യുന്ന റൂട്ടർ എൻഡ്പോയിന്റ്. | | `CERT_DIR` | `/mitm` | `bin/antigravity-bridge.mjs` | ബ്രിഡ്ജ് അതിന്റെ TLS മെറ്റീരിയൽ വായിക്കുന്ന ഡയറക്ടറിയെ അസാധുവാക്കുന്നു. AgentBridge server ചെയ്യുന്നതുപോലെ cert മോഡൽ തിരഞ്ഞെടുക്കുന്നു: ലെഗസി ലീഫ് ഇൻസ്റ്റാളിനായി `server.crt`/`server.key`, അല്ലാത്തപക്ഷം `ca.crt`/`ca.key` (റൂട്ട് CA, തടസ്സപ്പെടുത്തിയ ഓരോ ഹോസ്റ്റിനും ഓരോ ലീഫ്; `MITM_ROOT_CA_ENABLED=true` വഴി നിർബന്ധിതമാക്കുന്നു). സജീവ മോഡലിനുള്ള ഫയലുകൾ ലഭ്യമല്ലെങ്കിൽ ബ്രിഡ്ജ് സ്റ്റാർട്ടപ്പിൽ തന്നെ പുറത്തുകടക്കും. | | `MITM_VERBOSE` | `1` | `src/mitm/server.cjs`, `src/mitm/_internal/bypass.cjs` | റൂട്ടിംഗ് തീരുമാനങ്ങളുടെ ലോഗ് verbosity: `0` ലോഗുകൾ നിശ്ശബ്ദമാക്കുന്നു, ഉയർന്ന മൂല്യങ്ങൾ കൂടുതൽ bypass/route തീരുമാനങ്ങൾ ലോഗ് ചെയ്യുന്നു. | | `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | root-CA + per-host-leaf cert മോഡൽ സ്വീകരിക്കുന്നതിന് `true` ആയി സജ്ജീകരിക്കുക (#6684). പുതിയ ഇൻസ്റ്റാളുകൾക്ക് ഇത് സ്വയമേവ ലഭിക്കും; മുമ്പ് വിശ്വസനീയമായ legacy leaf ഉള്ള ഇൻസ്റ്റാളുകൾ തിരഞ്ഞെടുക്കുന്നതുവരെ legacy fixed-SAN cert നിലനിർത്തും. | | `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | spawn ചെയ്യുന്ന proxy പ്രോസസിനായി MITM manager സജ്ജീകരിക്കുന്നത് (`root-ca` \| `legacy`) — cert-migration തീരുമാനം പ്രതിഫലിപ്പിക്കുന്നു; ഇത് മാനുവലായി സജ്ജീകരിക്കേണ്ടതല്ല. | | `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | MITM സർട്ടിഫിക്കറ്റ്-വിശ്വാസ കമാൻഡുകളിൽ നിന്നുള്ള തുടക്കത്തിലെ `sudo` നീക്കം ചെയ്യാൻ `1` (truthy) ആയി സജ്ജമാക്കുക — ഓപ്പറേറ്റർ CA സ്വമേധയാ വിശ്വസിക്കുന്ന root-less / user-namespaced വിന്യാസങ്ങൾക്ക് (ഉദാ. Node-യുടെ extra-CA-certs സംവിധാനം വഴി). | | `SKIP_ANTIGRAVITY_DNS` | _(unset)_ | `src/mitm/dns/provision.ts` | Antigravity പ്രോക്സി ഹോസ്റ്റ്നാമുകൾക്കായി `/etc/hosts` DNS എൻട്രികൾ provision ചെയ്യുന്നത് പൂർണ്ണമായും ഒഴിവാക്കാൻ `true` ആയി സജ്ജമാക്കുക — sudo/root ലഭ്യമല്ലാത്ത കണ്ടെയ്നറുകൾക്കായി. | | `OMNIROUTE_SKIP_DNS_WRITE` | _(unset)_ | `src/mitm/dns/dnsConfig.ts` | DNS എൻട്രികൾ ചേർക്കുമ്പോഴും നീക്കം ചെയ്യുമ്പോഴും hosts ഫയലിലേക്ക് എഴുതുന്നത് ഒഴിവാക്കാൻ `1` ആയി സജ്ജമാക്കുക — sandbox ചെയ്തതോ read-only ആയതോ ആയ ടെസ്റ്റ് പരിതസ്ഥിതികൾക്കായി. | | `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | ടെസ്റ്റ്/CI-ക്ക് മാത്രമുള്ള സംരക്ഷണം: cert trust ഇൻസ്റ്റാൾ/അൺഇൻസ്റ്റാൾ പ്രവർത്തനങ്ങളെ no-op ആക്കാൻ `1` ആയി സജ്ജമാക്കുക, അതുവഴി suite ഒരിക്കലും OS trust store മാറ്റില്ല. ടെസ്റ്റ് setup-ഉം CI workflows-ഉം ഇത് സ്വയമേവ സജ്ജമാക്കുന്നു. | | `CHANGELOG_BASE_REF` | _(auto)_ | `scripts/check/check-changelog-integrity.mjs` | CHANGELOG ഇല്ലാതാക്കൽ വിരുദ്ധ gate-നുള്ള വ്യക്തമായ base ref (CI-യിൽ PR base branch-ലേക്കോ, അല്ലെങ്കിൽ ഏറ്റവും ഉയർന്ന `release/v*`-ലേക്കോ defaults ചെയ്യുന്നു). | | `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | പശ്ചാത്തല free-proxy pool auto-sync scheduler പ്രവർത്തനക്ഷമമാക്കാൻ `true` ആയി സജ്ജമാക്കുക. Opt-in ആണ്; ഡിഫോൾട്ടായി ഓഫാണ്. | | `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | മില്ലിസെക്കൻഡുകളിലെ auto-sync ഇടവേള (ഡിഫോൾട്ട് 30 മിനിറ്റ്). | | `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy free proxy ഉറവിടം പ്രവർത്തനക്ഷമമാക്കുക. പ്രവർത്തനരഹിതമാക്കാൻ `false` ആയി സജ്ജമാക്കുക. | | `FREE_PROXY_1PROXY_API_URL` | _(see oneproxy.ts)_ | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy API URL അസാധുവാക്കൽ. | | `FREE_PROXY_1PROXY_MAX` | `500` | `src/lib/freeProxyProviders/oneproxy.ts` | ഓരോ സമന്വയത്തിലും 1proxy-യിൽ നിന്ന് ലഭ്യമാക്കുന്ന പരമാവധി പ്രോക്സികൾ. | | `FREE_PROXY_1PROXY_MIN_QUALITY` | `50` | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy ഇറക്കുമതികൾക്കുള്ള ഏറ്റവും കുറഞ്ഞ ഗുണനിലവാര സ്കോർ പരിധി. | | `FREE_PROXY_PROXIFLY_ENABLED` | `true` | `src/lib/freeProxyProviders/proxifly.ts` | Proxifly സൗജന്യ പ്രോക്സി ഉറവിടം പ്രവർത്തനക്ഷമമാക്കുക. പ്രവർത്തനരഹിതമാക്കാൻ `false` ആയി സജ്ജമാക്കുക. | | `FREE_PROXY_PROXIFLY_QUANTITY` | `100` | `src/lib/freeProxyProviders/proxifly.ts` | ഓരോ Proxifly സമന്വയത്തിലും ലഭ്യമാക്കുന്ന പ്രോക്സികളുടെ എണ്ണം. | | `FREE_PROXY_PROXIFLY_ANONYMITY` | `elite` | `src/lib/freeProxyProviders/proxifly.ts` | Proxifly-നുള്ള അനാമികതാ നില ഫിൽട്ടർ (`elite`, `anonymous`, `transparent`). | | `FREE_PROXY_IPLOCATE_ENABLED` | `false` | `src/lib/freeProxyProviders/iplocate.ts` | IPLocate സൗജന്യ പ്രോക്സി ഉറവിടം പ്രവർത്തനക്ഷമമാക്കുക. വ്യക്തമായി തിരഞ്ഞെടുക്കുന്നവർക്കു മാത്രം. | | `FREE_PROXY_IPLOCATE_BASE_URL` | `https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols` | `src/lib/freeProxyProviders/iplocate.ts` | IPLocate പ്രോക്സി ലിസ്റ്റിന്റെ അടിസ്ഥാന URL അസാധുവാക്കൽ. | | `FREE_PROXY_WEBSHARE_ENABLED` | `true` | `src/lib/freeProxyProviders/webshare.ts` | Webshare പ്രോക്സി പൂൾ ഉറവിടം പ്രവർത്തനക്ഷമമാക്കുക. പ്രവർത്തനരഹിതമാക്കാൻ `false` ആയി സജ്ജമാക്കുക; കൂടാതെ `FREE_PROXY_WEBSHARE_API_KEY` സജ്ജമാക്കിയിരിക്കണം. | | `FREE_PROXY_WEBSHARE_API_KEY` | _(ഒന്നുമില്ല)_ | `src/lib/freeProxyProviders/webshare.ts` | Webshare അക്കൗണ്ട് API ടോക്കൺ (`Authorization: Token `). ആവശ്യമാണ് — ഇത് ഇല്ലെങ്കിൽ പ്രൊവൈഡർ പ്രവർത്തനരഹിതമായി തുടരും. | | `FREE_PROXY_WEBSHARE_API_URL` | `https://proxy.webshare.io/api/v2/proxy/list/` | `src/lib/freeProxyProviders/webshare.ts` | Webshare പ്രോക്സി ലിസ്റ്റ് API URL അസാധുവാക്കൽ. | | `FREE_PROXY_WEBSHARE_MAX` | `500` | `src/lib/freeProxyProviders/webshare.ts` | ഓരോ Webshare സമന്വയത്തിലും ഇറക്കുമതി ചെയ്യുന്ന പരമാവധി പ്രോക്സികളുടെ എണ്ണം. | | `NEXT_PUBLIC_VERCEL_RELAY_ENABLED` | `true` | `src/app/(dashboard)/…/ProxyPoolTab.tsx` | Proxy Pool ടാബിലെ Vercel Relay വിന്യസിക്കുക ബട്ടൺ കാണിക്കുക/മറയ്ക്കുക. | | `VERCEL_API_BASE` | `https://api.vercel.com` | `src/app/api/settings/proxy/vercel-deploy/route.ts` | പരിശോധനയ്ക്കായുള്ള Vercel API അടിസ്ഥാന URL അസാധുവാക്കൽ. | | `NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/…/VercelRelayModal.tsx` | Vercel Relay വിന്യാസ മോഡലിൽ മുൻകൂട്ടി പൂരിപ്പിക്കുന്ന ഡിഫോൾട്ട് പ്രോജക്റ്റ് പേര്. | | `TAILSCALE_BIN` | _(auto-detect)_ | `src/lib/tailscaleTunnel.ts` | `tailscale` ബൈനറിയിലേക്കുള്ള വ്യക്തമായ പാത. | | `TAILSCALED_BIN` | _(സ്വയമേവ കണ്ടെത്തുക)_ | `src/lib/tailscaleTunnel.ts` | `tailscaled` ഡീമൺ ബൈനറിയിലേക്കുള്ള വ്യക്തമായി നിർദ്ദേശിച്ച പാത. | | `TAILSCALE_AUTHKEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/tailscaleTunnel.ts` | ഇന്ററാക്ടീവ് അല്ലാത്ത / ഹെഡ്ലെസ് `tailscale up` പ്രവർത്തനത്തിനുള്ള മുൻകൂട്ടി പങ്കിട്ട Tailscale ഓത്ത് കീ (`--auth-key=` വഴി കൈമാറുന്നു). സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, ലോഗിൻ ഇന്ററാക്ടീവ് ബ്രൗസർ ഓത്ത് URL-ലേക്ക് തിരിച്ചുപോകും. | | `NGROK_AUTHTOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/ngrokTunnel.ts` | പുറത്തേക്കുള്ള ngrok ടണലുകൾക്ക് ഓതന്റിക്കേഷൻ നൽകുന്നു. | | `DB_BACKUP_MAX_FILES` | `20` | `src/lib/db/backup.ts` | മാനുവൽ/ഷെഡ്യൂൾ ചെയ്ത ബാക്കപ്പ് ക്ലീൻഅപ്പ് നിലനിർത്തുന്ന പരമാവധി SQLite ബാക്കപ്പ് ഫയലുകളുടെ എണ്ണം. മൈഗ്രേഷൻ സ്നാപ്ഷോട്ടുകൾ കണ്ടന്റിനെ അടിസ്ഥാനമാക്കി അഡ്രസ് ചെയ്യപ്പെടുകയും സമാനമായ DB നിലയ്ക്കായി വീണ്ടും ഉപയോഗിക്കപ്പെടുകയും ചെയ്യുന്നു; സമാന്തര മൈഗ്രേഷൻ വിൻഡോയ്ക്കുള്ളിൽ അവ നീക്കം ചെയ്യില്ല. Settings → Database backup retention-ൽ നിന്ന് സംരക്ഷിച്ച മൂല്യത്തെ ഇത് മറികടക്കും. | | `DB_BACKUP_RETENTION_DAYS` | `0` | `src/lib/db/backup.ts` | മാനുവൽ/ഷെഡ്യൂൾ ചെയ്ത ബാക്കപ്പ് ക്ലീൻഅപ്പ് നിലനിർത്തുന്ന പരമാവധി പ്രായം (ദിവസങ്ങളിൽ). `0` പ്രായം അടിസ്ഥാനമാക്കിയുള്ള നീക്കംചെയ്യൽ പ്രവർത്തനരഹിതമാക്കുന്നു. സമാന്തര മൈഗ്രേഷൻ വിൻഡോയ്ക്കുള്ളിൽ മൈഗ്രേഷൻ സ്നാപ്ഷോട്ടുകൾ നീക്കം ചെയ്യില്ല. Settings → Database backup retention-ൽ നിന്ന് സംരക്ഷിച്ച മൂല്യത്തെ ഇത് മറികടക്കും. | | `OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS` | `30000` | `src/lib/jobs/backupScheduleJob.ts` | `backup-schedule.json` എക്സിക്യൂട്ട് ചെയ്യുന്ന സെർവർ-സൈഡ് ജോബിന്റെ ടിക്ക് ഇടവേള (ms). 1 മിനിറ്റ് ക്രോൺ ഗ്രാനുലാരിറ്റിയേക്കാൾ വളരെ കുറവായിരിക്കണം; `5000`-ൽ താഴെയുള്ളതോ പാർസ് ചെയ്യാനാകാത്തതോ ആയ മൂല്യങ്ങൾ `30000` ആയി മാറും. | | `CONTAINER_HOST` | `docker` | `scripts/check-permissions.sh` | എൻട്രിപോയിന്റ് അനുമതി പരിശോധനയ്ക്കുള്ള കണ്ടെയ്നർ റൺടൈം സൂചന. ഏതെങ്കിലും Podman ടോപ്പോളജിക്കായി `podman` ആയി സജ്ജീകരിക്കുക. എൻജിൻ ലോക്കലാണോ Podman Machine വഴി എത്തിയതാണോ എന്ന് കണ്ടെയ്നറിന് നിർണ്ണയിക്കാനാകാത്തതിനാൽ, മുന്നറിയിപ്പ് ടോപ്പോളജി-നിഷ്പക്ഷമായി തുടരുകയും `contrib/podman/README.md`-ലേക്ക് ചൂണ്ടിക്കാണിക്കുകയും ചെയ്യുന്നു. | | `QUOTA_STORE_DRIVER` | `sqlite` | `src/lib/quota/storeFactory.ts` | ക്വോട്ട-ഷെയർ ഉപഭോഗ സ്റ്റോർ ബാക്ക്എൻഡ്: `sqlite` (ഡിഫോൾട്ട്) അല്ലെങ്കിൽ `redis`. | | `QUOTA_STORE_REDIS_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/quota/storeFactory.ts` | `QUOTA_STORE_DRIVER=redis` ആയിരിക്കുമ്പോൾ ഉപയോഗിക്കുന്ന Redis കണക്ഷൻ സ്ട്രിംഗ് (ഉദാ. `redis://localhost:6379`). | | `QUOTA_SATURATION_THRESHOLD` | `0.5` | `src/lib/quota/enforce.ts` | പൂളിന്റെ സാച്ചുറേഷൻ അനുപാതം (0..1); ഈ മൂല്യത്തിലെത്തുമ്പോഴോ അതിൽ കൂടുതലാകുമ്പോഴോ പൂൾ കർശന മോഡിലേക്ക് പ്രവേശിക്കുന്നു (കടമെടുക്കൽ അനുവദിക്കില്ല). | | `QUOTA_SOFT_DEPRIORITIZE_FACTOR` | `0.7` | `open-sse/services/combo.ts` | സോഫ്റ്റ് ക്വോട്ട നയം ഒരു ലക്ഷ്യത്തിന് മുൻഗണന കുറയ്ക്കുമ്പോൾ അതിൽ പ്രയോഗിക്കുന്ന സ്കോർ ഗുണകം (0..1). | | `STATUS_SOFT_DEPRIORITIZE_FACTOR` | `0.5` | `open-sse/services/combo/autoStrategy.ts` | പ്രീഫ്ലൈറ്റ് ക്വോട്ട കട്ടോഫ് OFF (#4540) ആയിരിക്കുമ്പോൾ, ഓട്ടോ-കോംബോ സ്കോറിംഗിൽ ക്ഷയിച്ച പ്രൊവൈഡറിൽ (`credits_exhausted`/`rate_limited`) പ്രയോഗിക്കുന്ന സ്കോർ ഗുണകം (0..1). | | `QUOTA_CONSUMPTION_RETENTION_DAYS` | `14` | `src/lib/db/quotaConsumption.ts` | GC (`gcQuotaConsumption`) നടത്തുന്നതിന് മുമ്പ് `quota_consumption` ബക്കറ്റുകൾ നിലനിർത്തുന്ന കാലയളവ് (ദിവസങ്ങൾ). | | `QUOTA_PREFLIGHT_CUTOFF_ENABLED` | `false` | `src/lib/resilience/settings.ts` | ഓപ്റ്റ്-ഇൻ (ഡിഫോൾട്ട് OFF): സ്കോറിംഗ് നടത്തുന്നതിന് മുമ്പ് കുറഞ്ഞ ക്വോട്ടയുള്ള സ്ഥാനാർത്ഥികളെ ഒഴിവാക്കുന്ന ഓട്ടോ-റൂട്ടിംഗ് ഹാർഡ് ക്വോട്ട കട്ടോഫ് പ്രവർത്തനക്ഷമമാക്കുന്നു. ഇത് ഡിഫോൾട്ട് മാത്രം സീഡ് ചെയ്യുന്നു: `resilienceSettings`-ൽ സംരക്ഷിച്ചിരിക്കുന്ന ബൂളിയൻ മൂല്യം (ഡാഷ്ബോർഡ് → ക്രമീകരണങ്ങൾ → റെസില്യൻസ്) മുൻഗണന നേടുന്നു. | | `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | ഓപ്റ്റ്-ഇൻ (ഡിഫോൾട്ട് OFF): ഒരു `auto/:` ഫിൽട്ടർ ബന്ധിപ്പിച്ച സ്ഥാനാർത്ഥികളൊന്നും കണ്ടെത്താത്തപ്പോൾ, ശൂന്യമായ പൂൾ തിരികെ നൽകുന്നതിനുപകരം മുഴുവൻ (ഫിൽട്ടർ ചെയ്യാത്ത) പൂളിലേക്ക് മടങ്ങുന്ന ലെഗസി പെരുമാറ്റം പുനഃസ്ഥാപിക്കുന്നു. ഡിഫോൾട്ട് OFF ആയതിനാൽ `:free` എന്നത് “ഫ്രീ ടയർ മാത്രം” എന്നാണ് അർത്ഥമാക്കുന്നത്. | | `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | `auto/*:chaos` ബ്രോഡ്കാസ്റ്റ് വേരിയന്റിനുള്ള പാനൽ വലുപ്പ പരിധി (1–10 ആയി നിയന്ത്രിക്കുന്നു) — ഒരു അഭ്യർത്ഥന പരമാവധി ഇത്രയും വ്യത്യസ്ത പ്രൊവൈഡർമാരിൽ നിന്നുള്ള മോഡലുകളിലേക്ക് വിതരണം ചെയ്യപ്പെടും. | | `OMNIROUTE_CHAOS_MIN_PANEL` | _(എഞ്ചിൻ ഡിഫോൾട്ട്)_ | `open-sse/services/autoCombo/virtualFactory.ts` | chaos ബ്രോഡ്കാസ്റ്റ് ഹാൻഡ്ലറിലേക്ക് കൈമാറുന്ന ഏറ്റവും കുറഞ്ഞ പാനൽ വലുപ്പത്തിന്റെ ക്രമീകരണം; സജ്ജീകരിക്കാതിരുന്നാൽ എഞ്ചിൻ ഡിഫോൾട്ട് നിലനിർത്തും. | | `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(എഞ്ചിൻ ഡിഫോൾട്ട്)_ | `open-sse/services/autoCombo/virtualFactory.ts` | മുഴുവൻ chaos പാനൽ fan-out-നുമുള്ള ഹാർഡ് ടൈംഔട്ട് (ms); സജ്ജീകരിക്കാതിരുന്നാൽ എഞ്ചിൻ ഡിഫോൾട്ട് നിലനിർത്തും. | | `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | grok-web പ്രതിവാര ക്വാട്ട ലഭ്യമാക്കാൻ ഉപയോഗിക്കുന്ന Grok CLI `auth.json`-ന്റെ പാത; ടെസ്റ്റുകൾക്കോ നിലവാരമില്ലാത്ത CLI ഇൻസ്റ്റാളേഷനോ വേണ്ടി അസാധുവാക്കാം. | | `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/mitm/manager.ts` | AgentBridge അപ്സ്ട്രീം TLS കണക്ഷനുകൾക്കായി വിശ്വസിക്കുന്ന അധിക CA സർട്ടിഫിക്കറ്റ് (PEM). | | `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Traffic Inspector റിങ് ബഫറിൽ സൂക്ഷിക്കുന്ന ക്യാപ്ചർ ചെയ്ത അഭ്യർത്ഥനകളുടെ പരമാവധി എണ്ണം. | | `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | വെട്ടിച്ചുരുക്കുന്നതിന് മുമ്പുള്ള ക്യാപ്ചർ ചെയ്ത അഭ്യർത്ഥന/പ്രതികരണ ബോഡിയുടെ പരമാവധി വലുപ്പം (KB). | | `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Traffic Inspector HTTP പ്രോക്സിക്കുള്ള ലോക്കൽ പോർട്ട്. | | `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | ബൂട്ട് ചെയ്യുമ്പോൾ ഇൻസ്പെക്ടർ HTTP പ്രോക്സി സ്വയമേവ ആരംഭിക്കുക. | | `INSPECTOR_LLM_HOSTS_EXTRA` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/inspector/captureState.ts` | ക്യാപ്ചറിനായി LLM എൻഡ്പോയിന്റുകളായി പരിഗണിക്കുന്ന അധിക ഹോസ്റ്റ്നാമങ്ങൾ (കോമ ഉപയോഗിച്ച് വേർതിരിച്ചത്). | | `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | ക്യാപ്ചർ ചെയ്ത ട്രാഫിക്കിലെ രഹസ്യങ്ങൾ (auth ഹെഡറുകൾ / API കീകൾ) മറയ്ക്കുക. | | `INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES` | `30` | `src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts` | സിസ്റ്റം-പ്രോക്സി ഗാർഡ് OS പ്രോക്സി ക്രമീകരണങ്ങൾ സ്വയമേവ പുനഃസ്ഥാപിക്കുന്നതിന് മുമ്പുള്ള മിനിറ്റുകൾ. | | `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(സ്വയമേവ)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | ഇൻസ്പെക്ടറിലേക്ക് നടക്കുന്ന ആന്തരിക ക്യാപ്ചർ ഇൻജസ്റ്റിനെ പ്രാമാണീകരിക്കുന്ന ടോക്കൺ. | | `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Playground താരതമ്യ മോഡിൽ വശങ്ങളിലായി കാണിക്കാവുന്ന പരമാവധി കോളങ്ങളുടെ എണ്ണം. | | `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/(dashboard)/dashboard/playground/` | Playground-ലെ 'പ്രോംപ്റ്റ് മെച്ചപ്പെടുത്തുക' പ്രവർത്തനത്തിനുള്ള ഡിഫോൾട്ട് മോഡൽ (സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ സജീവ മോഡലിലേക്ക് fallback ചെയ്യും). | | `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | bifrost സൈഡ്കാർഡ് പ്രോക്സിക്കുള്ള മാസ്റ്റർ കിൽ സ്വിച്ച്. `0` ആയി സജ്ജീകരിക്കുമ്പോൾ, റൂട്ട് `X-Bifrost-Killswitch` ഹെഡറോടുകൂടിയ 503 തിരികെ നൽകുകയും ഓപ്പറേറ്ററെ TS പാതയിലേക്ക് തിരിച്ചുവിടുകയും ചെയ്യും. വീണ്ടും deploy ചെയ്യാതെ സൈഡ്കാർഡ് പ്രവർത്തനരഹിതമാക്കാൻ ഇത് ഉപയോഗിക്കുക (tier-1 റൂട്ടർ സംഭവം, കീ റൊട്ടേഷൻ). | | `BIFROST_BASE_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | സജ്ജീകരിച്ചിരിക്കുമ്പോൾ, Bifrost സൈഡ്കാർഡ് പ്രോക്സി റൂട്ട് `/v1/chat/completions` ട്രാഫിക് TS relay handler-ന് പകരം ഈ Go gateway-ലേക്ക് ഫോർവേഡ് ചെയ്യും. സജ്ജീകരിച്ചിട്ടില്ല → fallback സഹിതം 503. അവസാനത്തെ slash നീക്കം ചെയ്യും. | | `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | OmniRoute Bifrost സൈഡ്കാറിന്റെ ലൈഫ്സൈക്കിൾ നിയന്ത്രിക്കുമ്പോൾ, മേൽനോട്ടത്തിലുള്ള Bifrost എംബഡഡ് സേവനം ബൈൻഡ് ചെയ്യുന്ന പോർട്ട് (`127.0.0.1:`). ഡീഫോൾട്ട് `8080`. | | `SINGBOX_PORT` | `20140` | `src/lib/services/bootstrap.ts` | OmniRoute sing-box സൈഡ്കാറിന്റെ ലൈഫ്സൈക്കിൾ നിയന്ത്രിക്കുമ്പോൾ, മേൽനോട്ടത്തിലുള്ള sing-box എംബഡഡ് സേവനം ബൈൻഡ് ചെയ്യുന്ന പോർട്ട് (`127.0.0.1:`). ഡീഫോൾട്ട് `20140`. | | `LLMLINGUA_PORT` | `20135` | `src/lib/services/bootstrap.ts` | മേൽനോട്ടത്തിലുള്ള LLMLingua കംപ്രഷൻ സേവനം ബൈൻഡ് ചെയ്യുന്ന പോർട്ട് (`127.0.0.1:`). ഡീഫോൾട്ട് `20135`. | | `LLMLINGUA_BASE_URL` | `http://127.0.0.1:20135` | `open-sse/services/compression/engines/llmlingua/index.ts` | ലോക്കൽ LLMLingua HTTP കംപ്രഷൻ മൈക്രോസർവീസ് ഡീമണിന്റെ അടിസ്ഥാന URL. ഡീഫോൾട്ട് `http://127.0.0.1:20135`. | | `LLMLINGUA_MODEL` | `atjsh/llmlingua-2-js-tinybert-meetingbank` | `src/lib/services/installers/llmlingua.ts` | മേൽനോട്ടത്തിലുള്ള LLMLingua സൈഡ്കാർഡ് ലോഡ് ചെയ്യുന്ന Hugging Face മോഡൽ ഐഡി (ചൈൽഡ് പ്രോസസിന്റെ എൻവയോൺമെന്റിലേക്ക് കൈമാറുന്നു). | | `BIFROST_API_KEY` | _(unset)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost ഗേറ്റ്വേയ്ക്കുള്ള API കീ (`Authorization: Bearer ...` ആയി അയയ്ക്കുന്നു). സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, അഭ്യർത്ഥനയിൽ സാധുവായ OmniRoute API കീ ഉണ്ടായിരിക്കണമെന്ന് റൂട്ട് പ്രതീക്ഷിക്കുന്നു; ഈ കീ ഗേറ്റ്വേ-സൈഡ് ഓതന്റിക്കേഷനായി മാത്രം ഉപയോഗിക്കുന്നു. | | `BIFROST_STREAMING_ENABLED` | `true` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | true ആയിരിക്കുമ്പോൾ, TS സ്ട്രീമിംഗ് എക്സിക്യൂട്ടറിന് പകരം Bifrost സൈഡ്കാർഡ് റൂട്ട് ഗേറ്റ്വേയിലൂടെ SSE ഉപയോഗിച്ച് പ്രതികരണങ്ങൾ സ്ട്രീം ചെയ്യുന്നു. ഗേറ്റ്വേയിലൂടെ സ്ട്രീമിംഗ് ഇല്ലാത്ത JSON പ്രതികരണങ്ങൾ നിർബന്ധമാക്കാൻ `0` സജ്ജീകരിക്കുക. | | `BIFROST_TIMEOUT_MS` | `30000` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost ഗേറ്റ്വേയിലേക്ക് പ്രോക്സി ചെയ്യുമ്പോഴുള്ള ഓരോ അഭ്യർത്ഥനയ്ക്കുമുള്ള ടൈംഔട്ട് (ms). ടൈംഔട്ട് സംഭവിക്കുമ്പോൾ, `X-Bifrost-Fallback` ഹെഡർ വഴി റൂട്ട് TS റിലേ പാത തിരിച്ചുനൽകുന്നു. | | `OMNIROUTE_BIFROST_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | `BIFROST_API_KEY`-ന്റെ അപരനാമം (`OMNIROUTE_*` ഉപയോഗിച്ച് env വായിക്കുന്ന സ്ക്രിപ്റ്റുകൾ ഉപയോഗിക്കുന്നത്). രണ്ടും സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ `BIFROST_API_KEY`-ക്കാണ് മുൻഗണന. | | `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | `/api/v1/relay/chat/completions`-നുള്ള റിലേ ബാക്കെൻഡ്: `ts \| bifrost \| auto`. `ts` = TypeScript റിലേ (Bifrost കോൺഫിഗർ ചെയ്തിട്ടില്ലാത്തപ്പോൾ ഡിഫോൾട്ട്); `auto` എന്നത് `BIFROST_BASE_URL` സജ്ജീകരിച്ചിട്ടുണ്ടെന്നും `BIFROST_ENABLED` ≠ `0` ആണെന്നും ഉറപ്പാക്കി Bifrost തിരഞ്ഞെടുക്കുന്നു, സൈഡ്കാർ ലഭ്യമല്ലെങ്കിൽ സ്വയമേവ TS-ലേക്ക് തിരിച്ചുപോകുന്നു; `bifrost` Bifrost നിർബന്ധമാക്കുന്നു (കർശനമായി, fallback ഇല്ല). Auth/rate-limit/injection-guard/allowlist എന്നിവ എപ്പോഴും ആദ്യം Next റൂട്ടിൽ പ്രവർത്തിക്കും. പ്രതികരണങ്ങളിൽ `X-Routing-Backend` / `X-Routing-Fallback` / `X-Routing-Fallback-Reason` ഉൾപ്പെടും. | | `RELAY_ROUTING_BACKEND` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | `OMNIROUTE_RELAY_BACKEND`-നുള്ള അംഗീകരിച്ച അപരനാമം (അതേ `ts \| bifrost \| auto` മൂല്യങ്ങൾ). രണ്ടും സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ `OMNIROUTE_RELAY_BACKEND`-ക്കാണ് മുൻഗണന. | | `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | `auto` മോഡിൽ Bifrost സൈഡ്കാർ ഹോപ്പ് പരാജയപ്പെട്ടതിന് ശേഷമുള്ള കൂൾഡൗൺ സമയം (മില്ലിസെക്കൻഡിൽ); ഈ സമയത്ത് റിലേ നേരിട്ട് TS പാതയിലേക്ക് റൂട്ട് ചെയ്യും, തുടർന്ന് വീണ്ടും പരിശോധിക്കും. `0` നൽകിയാൽ ഇത് പ്രവർത്തനരഹിതമാകും. `OMNIROUTE_RELAY_BACKEND=auto` ആയിരിക്കുമ്പോൾ മാത്രമേ ബാധകമാകൂ. | | `OMNIROUTE_TLS_CERT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/commands/serve.mjs` | `omniroute serve` HTTPS വഴി നൽകുന്നതിനുള്ള PEM TLS സർട്ടിഫിക്കറ്റിന്റെ പാത (`--tls-cert`-ന് തുല്യം). `OMNIROUTE_TLS_KEY`-യോടൊപ്പം നൽകണം; അപ്പോൾ standalone server അതേ ലിസണറിൽ TLS അവസാനിപ്പിക്കും (`wss://` മാറ്റമില്ലാതെ പ്രവർത്തിക്കും). സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ → സാധാരണ HTTP. cert/key-ൽ ഒന്ന് മാത്രം നൽകുകയോ വായിക്കാനാകാത്ത പാത നൽകുകയോ ചെയ്താൽ മുന്നറിയിപ്പ് രേഖപ്പെടുത്തി HTTP ആയി തുടരും. | | `OMNIROUTE_TLS_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `bin/cli/commands/serve.mjs` | `omniroute serve` HTTPS-നുള്ള PEM TLS സ്വകാര്യ കീയുടെ പാത (`--tls-key`-ന് തുല്യം). `OMNIROUTE_TLS_CERT`-യോടൊപ്പം നൽകണം. `OMNIROUTE_TLS_CERT` കാണുക. | | `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | `/api/local/*` റൂട്ടുകൾക്കുള്ള മാസ്റ്റർ സ്വിച്ച്. സജ്ജീകരിച്ചിട്ടില്ലാത്തപ്പോഴോ `0` ആയപ്പോഴോ, പ്രൊഡക്ഷനിൽ എല്ലാ `/api/local/*` റൂട്ടുകളും 503 മടക്കിനൽകും. Redis launcher പോലുള്ള 1-ക്ലിക്ക് പ്രാദേശിക സേവന സ്റ്റാർട്ടറുകൾ പ്രവർത്തനക്ഷമമാക്കാൻ, loopback അല്ലാത്ത deploy-കളിൽ ഇത് `1` ആയിരിക്കണം. `isLocalOnlyPath()` route-guard വർഗ്ഗീകരണത്തോടൊപ്പം (`src/server/authz/routeGuard.ts`-ലെ `LOCAL_ONLY_API_PREFIXES`) അധിക സുരക്ഷാ സംവിധാനമായി പ്രവർത്തിക്കുന്നു. | | `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/security/localEndpoints.ts` | loopback-ൽ അല്ലാത്ത `/api/local/*` കോളർമാർക്കുള്ള Bearer ടോക്കൺ (ഉദാ., desktop app). ഇത് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, loopback അല്ലാത്ത IP-കളിൽ നിന്നുള്ള അഭ്യർത്ഥനകളിൽ `Authorization: Bearer ` ഉണ്ടായിരിക്കണം. loopback അല്ലാത്ത deployment-കളിൽ `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1` ആണെങ്കിൽ ഇത് ആവശ്യമാണ്. | | `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | 1-ക്ലിക്ക് Redis ലോഞ്ചറിനുള്ള (`omniroute redis up`) കണ്ടെയ്നർ പേര്. CLI-യും `RedisLauncherPanel` GUI-യും ഇത് ഉപയോഗിക്കുന്നു. | | `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | 1-ക്ലിക്ക് Redis ലോഞ്ചറിനുള്ള ഹോസ്റ്റ് പോർട്ട്. ഹോസ്റ്റ് ഇതിനകം 6379 ബൈൻഡ് ചെയ്തിട്ടുണ്ടെങ്കിൽ ഇത് മാറ്റുക. കണ്ടെയ്നറിന്റെ ആന്തരിക പോർട്ട് 6379 ആയി തുടരും. | | `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | 1-ക്ലിക്ക് Redis ലോഞ്ചർ പ്രസിദ്ധീകരിക്കുന്ന ഹോസ്റ്റ് ഇന്റർഫേസ്. ലോഞ്ചർ പാസ്വേഡ് ഇല്ലാതെയാണ് Redis ആരംഭിക്കുന്നത്, അതിനാൽ `0.0.0.0`-ലേക്ക് ബൈൻഡ് ചെയ്യുന്നത് നിങ്ങളുടെ LAN-ലുള്ള എല്ലാ ഹോസ്റ്റുകൾക്കും authentication ഇല്ലാത്ത Redis ലഭ്യമാക്കും — ഇൻസ്റ്റൻസിൽ നിങ്ങൾ തന്നെ പാസ്വേഡ് സജ്ജമാക്കിയാൽ മാത്രമേ ഇത് കൂടുതൽ വിപുലമാക്കാവൂ. | | `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose Redis സൈഡ്കാർ പ്രസിദ്ധീകരിക്കുന്ന ഹോസ്റ്റ് ഇന്റർഫേസ് (#9286). compose Redis `requirepass` ഇല്ലാതെയാണ് പ്രവർത്തിക്കുന്നത്; ആപ്പ് കണ്ടെയ്നറുകൾ compose നെറ്റ്വർക്കിലൂടെ (`redis:6379`) ഇതിലെത്തുന്നു — പ്രസിദ്ധീകരിച്ച പോർട്ട് ഹോസ്റ്റ്-സൈഡ് ടൂളുകൾക്കായി മാത്രമാണ്. `0.0.0.0` മുഴുവൻ LAN-ലേക്കും authentication ഇല്ലാത്ത Redis തുറന്നുകൊടുക്കും. | | `REDIS_PORT` | `6379` | `docker-compose.yml` | compose Redis സൈഡ്കാറിനുള്ള ഹോസ്റ്റ് പോർട്ട്. | | `APP_BIND_HOST` | `127.0.0.1` | `docker-compose.yml`, `docker-compose.prod.yml` | docker-compose ആപ്പിന്റെ സ്വന്തം ഡാഷ്ബോർഡ്/API/live-WS പോർട്ടുകൾ പ്രസിദ്ധീകരിക്കുന്ന ഹോസ്റ്റ് ഇന്റർഫേസ് (#12568). `.env.example`-ലെ ഡിഫോൾട്ടായി `REQUIRE_API_KEY=false` നൽകിയിരിക്കുന്നതിനാൽ, `0.0.0.0` അനാമികമായ `/v1` LLM പ്രോക്സിയെ മുഴുവൻ LAN/WAN-ലേക്കും തുറന്നുകൊടുക്കും — `REQUIRE_API_KEY=true` ആക്കുകയോ മുന്നിൽ സ്വന്തം authentication നിർബന്ധമാക്കുന്ന ഒരു റിവേഴ്സ് പ്രോക്സി സജ്ജമാക്കുകയോ ചെയ്തതിന് ശേഷം മാത്രമേ ഇത് വിപുലമാക്കാവൂ. | | `QDRANT_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose Qdrant മെമ്മറി സൈഡ്കാർ പ്രസിദ്ധീകരിക്കുന്ന ഹോസ്റ്റ് ഇന്റർഫേസ് (#12578). `REDIS_BIND_HOST`-നുള്ള LAN-എക്സ്പോഷർ സംബന്ധിച്ച അതേ കാരണവിവരണം ഇവിടെ ബാധകമാണ്. | | `BIFROST_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose Bifrost റൂട്ടർ സൈഡ്കാർ പ്രസിദ്ധീകരിക്കുന്ന ഹോസ്റ്റ് ഇന്റർഫേസ് (#12578). `REDIS_BIND_HOST`-നുള്ള LAN-എക്സ്പോഷർ സംബന്ധിച്ച അതേ കാരണവിവരണം ഇവിടെ ബാധകമാണ്. | | `REDIS_KEY_PREFIX` | `omniroute:` | `src/shared/utils/rateLimiter.ts` | ഓരോ OmniRoute Redis കീയ്ക്കും പ്രയോഗിക്കുന്ന നെയിംസ്പേസ് പ്രിഫിക്സ് (റേറ്റ് ലിമിറ്റർ, ഓത്ത് കാഷെ, ക്വോട്ട സ്റ്റോർ, വാംഅപ്പ് സർക്യൂട്ട് ബ്രേക്കർ). Redis ഇൻസ്റ്റൻസ് മറ്റ് ആപ്പുകളുമായി പങ്കിടുമ്പോൾ കീ കൂട്ടിയിടികൾ തടയുന്നു (#11042). | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല — സംവിധാനം പ്രവർത്തനരഹിതം)_ | `src/lib/api/internalServiceAuth.ts` | ഐഡന്റിറ്റി നിലനിർത്തുന്ന ആഭ്യന്തര REST ഹോപ്പുകൾക്കുള്ള പങ്കിട്ട രഹസ്യം (#9260): യഥാർത്ഥ കോളർ ഐഡന്റിറ്റി നിലനിർത്തുന്നതിനായി, മറ്റ് പ്രാദേശിക OmniRoute റൂട്ടുകളെ വിളിക്കുന്ന OmniRoute ഘടകങ്ങൾ ഇത് `x-omniroute-internal-service-token` ആയി അയയ്ക്കുന്നു. `timingSafeEqual` ഉപയോഗിച്ച് താരതമ്യം ചെയ്യുന്നു. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/api/internalServiceAuth.ts` | ആഭ്യന്തര സർവീസ് ടോക്കണിന്റെ സീക്രട്ട്-ഫയൽ വകഭേദം: ട്രിം ചെയ്ത ഉള്ളടക്കം ടോക്കണായിരിക്കുന്ന ഫയലിലേക്കുള്ള പാത. ഇൻലൈൻ വേരിയബിൾ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ മാത്രമേ പരിശോധിക്കൂ. | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | `src/lib/catalog/openrouterProviderStats.ts` | OpenRouter-ന്റെ ആഴ്ചതോറുമുള്ള റാങ്കിംഗ് സ്ഥിതിവിവരക്കണക്കുകൾ ഉപയോഗിച്ച് ഡാഷ്ബോർഡിലെ പ്രൊവൈഡർമാരുടെ പട്ടിക സമ്പുഷ്ടമാക്കുന്നു (#9324). ഡിഫോൾട്ടായി പ്രവർത്തനക്ഷമമാണ്; പശ്ചാത്തല ഫെച്ച് പൂർണ്ണമായും ഒഴിവാക്കാൻ `false` സജ്ജീകരിക്കുക (നോൺ-ബ്ലോക്കിംഗ്, ഒരിക്കലും മാരക പിശകാകില്ല). | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `86400000` (24h) | `src/lib/catalog/openrouterProviderStats.ts` | OpenRouter പ്രൊവൈഡർ-സ്റ്റാറ്റ്സ് സ്നാപ്ഷോട്ടിന്റെ കാഷെ TTL, മില്ലിസെക്കൻഡുകളിൽ. | | `OMNIROUTE_REDIS_IMAGE` | `redis:7-alpine` | `bin/cli/commands/redis.mjs` | 1-ക്ലിക്ക് Redis ലോഞ്ചർ ഉപയോഗിക്കുന്ന Redis ഇമേജ്. ആവശ്യാനുസരണം `redis:8-alpine` അല്ലെങ്കിൽ സ്വകാര്യ രജിസ്ട്രി മിറർ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക. | | `QDRANT_HOST` | `qdrant` | _(opt-in cluster profile)_ | `--profile memory` സജീവമായിരിക്കുമ്പോൾ Qdrant സൈഡ്കാറിന്റെ ഹോസ്റ്റ്നെയിം. ഡിഫോൾട്ട് ഇൻ-നെറ്റ്വർക്ക് qdrant സർവീസ് നാമത്തിലേക്കാണ് ചൂണ്ടുന്നത്; ബാഹ്യ ഡിപ്ലോയ്മെന്റിനായി മാറ്റിസ്ഥാപിക്കുക. കോഡിലെ `qdrantEnabled` `true` ആയിരിക്കുമ്പോൾ മാത്രമേ ഉപയോഗിക്കൂ (`src/lib/memory/vectorStore.ts:108`). | | `QDRANT_PORT` | `6333` | _(opt-in cluster profile)_ | Qdrant സൈഡ്കാറിന്റെ REST പോർട്ട്. | | `QDRANT_GRPC_PORT` | `6334` | _(ഓപ്റ്റ്-ഇൻ ക്ലസ്റ്റർ പ്രൊഫൈൽ)_ | Qdrant സൈഡ്കാറിന്റെ gRPC പോർട്ട്. സ്ട്രീമിംഗ് പ്രവർത്തനങ്ങൾക്കായി REST-നേക്കാൾ gRPC ഇഷ്ടപ്പെടുന്ന ക്ലയന്റ് ലൈബ്രറികൾ ഇത് ഉപയോഗിക്കുന്നു. | | `QDRANT_API_KEY` | _(unset)_ | _(ഓപ്റ്റ്-ഇൻ ക്ലസ്റ്റർ പ്രൊഫൈൽ)_ | Qdrant Cloud-ിനോ ആധികാരികത ആവശ്യമായ ഓൺ-പ്രിമൈസ് ഇൻസ്റ്റൻസിനോ വേണ്ട ഐച്ഛിക API കീ. ശൂന്യമായാൽ → `api-key` ഹെഡർ അയയ്ക്കില്ല. | | `QDRANT_COLLECTION` | `omniroute-memory` | _(ഓപ്റ്റ്-ഇൻ ക്ലസ്റ്റർ പ്രൊഫൈൽ)_ | OmniRoute-ന്റെ സംഭാഷണ മെമ്മറി എംബെഡ്ഡിംഗുകൾക്കുള്ള കളക്ഷൻ പേര്. ആദ്യ റണ്ണിൽ `QDRANT_VECTOR_SIZE` അളവുകളോടെ സൃഷ്ടിക്കും. | | `QDRANT_EMBEDDING_MODEL` | `text-embedding-3-small` | _(ഓപ്റ്റ്-ഇൻ ക്ലസ്റ്റർ പ്രൊഫൈൽ)_ | Qdrant കളക്ഷൻ മെറ്റാഡാറ്റയിൽ രേഖപ്പെടുത്തുന്ന ഡിഫോൾട്ട് എംബെഡ്ഡിംഗ് മോഡൽ പേര്. യഥാർത്ഥ എംബെഡ്ഡിംഗുകൾ സൃഷ്ടിക്കുന്നത് OmniRoute-ന്റെ സെറ്റിങ്സിലെ `embeddingModel` ഫീൽഡ് സൂചിപ്പിക്കുന്ന ഏത് പ്രൊവൈഡറാണോ അതാണ്. | | `QDRANT_VECTOR_SIZE` | `1536` | _(ഓപ്റ്റ്-ഇൻ ക്ലസ്റ്റർ പ്രൊഫൈൽ)_ | എംബെഡ്ഡിംഗ് വെക്ടറിന്റെ അളവ്. നിങ്ങൾ എംബെഡ് ചെയ്യുന്ന മോഡലുമായി ഇത് പൊരുത്തപ്പെടണം (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768). | | `QDRANT_HNSW_EF_CONSTRUCT` | `128` | _(ഓപ്റ്റ്-ഇൻ ക്ലസ്റ്റർ പ്രൊഫൈൽ)_ | HNSW ഇൻഡക്സ് നിർമ്മാണ സമയത്തെ കൃത്യത. ഉയർന്ന മൂല്യം = നിർമ്മാണം മന്ദഗതിയിൽ, തിരയൽ വേഗത്തിൽ. | | `OMNIROUTE_ROTATION_ENABLED` | `true` | `open-sse/services/rotationConfig.ts` | ഓപ്പറേറ്റർ ക്രമീകരിക്കാവുന്ന അക്കൗണ്ട് റൊട്ടേഷനുള്ള മാസ്റ്റർ സ്വിച്ച്. ഇത് `false` ആണെങ്കിൽ, താഴെയുള്ള `OMNIROUTE_ROTATE_*` ക്ലാസുകളൊന്നും അക്കൗണ്ട് ഫാൾബാക്ക് പ്രവർത്തനക്ഷമമാക്കില്ല (മാസ്റ്റർ-ഓഫ് നില ഡിഫോൾട്ടായി പ്രവർത്തനക്ഷമമായ 429/500/502 ക്ലാസുകളെയും തടയും). ഒരു മേൽനോട്ട ഫ്രണ്ട്-എൻഡിന് (ഉദാ. VibeProxy ഡെസ്ക്ടോപ്പ് ആപ്പ്) സ്വന്തം റൊട്ടേഷൻ നിയമങ്ങൾ ബാക്ക്എൻഡിന്റെ അക്കൗണ്ട്-ഫാൾബാക്ക് എഞ്ചിനിലേക്ക് പ്രതിഫലിപ്പിക്കാൻ ഇത് സഹായിക്കുന്നു. | | `OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS` | `0` | `open-sse/services/rotationConfig.ts` | അപ്സ്ട്രീം വ്യക്തമായ റീസെറ്റ് സൂചന നൽകാത്തപ്പോൾ നിരക്ക്-പരിമിതപ്പെടുത്തിയ അക്കൗണ്ടിൽ പ്രയോഗിക്കുന്ന കൂൾഡൗൺ (സെക്കൻഡുകളിൽ). `0` = നിശ്ചിത ഓവർറൈഡിന് പകരം എഞ്ചിന്റെ ഡിഫോൾട്ട് കൂൾഡൗൺ ഉപയോഗിക്കുക. | | `OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET` | `true` | `open-sse/services/rotationConfig.ts` | റീസെറ്റ് സമയം ഇല്ലാതെ റേറ്റ്-ലിമിറ്റഡ് ആയി ടാഗ് ചെയ്യരുത് എന്ന ഫ്രണ്ട്-എൻഡ് മുൻഗണനയുടെ പ്രതിരൂപം. | | `OMNIROUTE_ROTATE_ON_429` | `true` | `open-sse/services/rotationConfig.ts` | `429` പിശകുകൾക്കായുള്ള സ്റ്റാറ്റസ്-നിർദ്ദിഷ്ട ഫാൾബാക്ക് പ്രവർത്തനക്ഷമമാക്കൽ. `false` ആയിരിക്കുമ്പോൾ (`OMNIROUTE_ROTATION_ENABLED=true`), `429` ഇനി അക്കൗണ്ട് റൊട്ടേഷൻ ആരംഭിക്കില്ല; പകരം അത് ക്ലയന്റിലേക്ക് തിരിച്ചുനൽകും. | | `OMNIROUTE_ROTATE_429_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | അക്കൗണ്ട് റൊട്ടേറ്റ് ചെയ്യുന്നതിന് മുമ്പ് `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` സമയപരിധിക്കുള്ളിൽ ആവശ്യമായ `429` പിശകുകളുടെ എണ്ണം. ഡിഫോൾട്ടായ `1` ഉടൻ റൊട്ടേഷൻ നടത്തുകയും ചരിത്രപരമായ പെരുമാറ്റം നിലനിർത്തുകയും ചെയ്യുന്നു. | | `OMNIROUTE_ROTATE_429_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `OMNIROUTE_ROTATE_429_THRESHOLD` പരിധിയിലേക്ക് `429` പിശകുകൾ എണ്ണുന്ന സ്ലൈഡിംഗ് വിൻഡോ (സെക്കൻഡുകളിൽ). | | `OMNIROUTE_ROTATE_ON_500` | `true` | `open-sse/services/rotationConfig.ts` | `502` ഒഴികെയുള്ള `5xx` സെർവർ പിശകുകൾക്കായുള്ള സ്റ്റാറ്റസ്-നിർദ്ദിഷ്ട ഫാൾബാക്ക് പ്രവർത്തനക്ഷമമാക്കൽ; `502`-ന് സ്വന്തമായ ക്ലാസ് ഉണ്ട്. `false` ആയിരിക്കുമ്പോൾ, ഈ പിശകുകൾ ഇനി അക്കൗണ്ട് റൊട്ടേഷൻ ആരംഭിക്കില്ല. | | `OMNIROUTE_ROTATE_500_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | അക്കൗണ്ട് റൊട്ടേറ്റ് ചെയ്യുന്നതിന് മുമ്പ് `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` സമയപരിധിക്കുള്ളിൽ ആവശ്യമായ `5xx` പിശകുകളുടെ എണ്ണം. ഡിഫോൾട്ടായ `1` ഉടൻ റൊട്ടേഷൻ നടത്തുന്നു. | | `OMNIROUTE_ROTATE_500_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `OMNIROUTE_ROTATE_500_THRESHOLD` പരിധിയിലേക്ക് `5xx` പിശകുകൾ എണ്ണുന്ന സ്ലൈഡിംഗ് വിൻഡോ (സെക്കൻഡുകളിൽ). | | `OMNIROUTE_ROTATE_ON_502` | `true` | `open-sse/services/rotationConfig.ts` | `502` (ബാഡ് ഗേറ്റ്വേ) പിശകുകൾക്കായുള്ള സ്റ്റാറ്റസ്-നിർദ്ദിഷ്ട ഫാൾബാക്ക് പ്രവർത്തനക്ഷമമാക്കൽ. `false` ആയിരിക്കുമ്പോൾ, `502` പിശകുകൾ ഇനി അക്കൗണ്ട് റൊട്ടേഷൻ ആരംഭിക്കില്ല. | | `OMNIROUTE_ROTATE_502_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | അക്കൗണ്ട് റൊട്ടേറ്റ് ചെയ്യുന്നതിന് മുമ്പ് `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` പരിധിക്കുള്ളിൽ ആവശ്യമായ `502` പിശകുകളുടെ എണ്ണം. ഡിഫോൾട്ടായ `1` ഉടൻ റൊട്ടേറ്റ് ചെയ്യുന്നു. | | `OMNIROUTE_ROTATE_502_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `OMNIROUTE_ROTATE_502_THRESHOLD` കണക്കാക്കുന്നതിനായി `502` പിശകുകൾ എണ്ണുന്ന സ്ലൈഡിംഗ് വിൻഡോ (സെക്കൻഡുകളിൽ). | | `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | ഓപ്റ്റ്-ഇൻ (ഡിഫോൾട്ട് ഓഫ്): `true` ആക്കുമ്പോൾ, സാധാരണ `400` (തെറ്റായ അഭ്യർത്ഥന) ഉണ്ടായാലും അക്കൗണ്ട് റൊട്ടേഷൻ ട്രിഗർ ചെയ്യും. ഇത് അധികമായുള്ള പെരുമാറ്റം മാത്രമാണ് — റേറ്റ്-ലിമിറ്റ്/ക്വോട്ട ടെക്സ്റ്റ് ഉൾക്കൊള്ളുന്ന `400` പരിഗണിക്കാതെ തന്നെ എഞ്ചിന്റെ നിലവിലുള്ള പെരുമാറ്റം തുടരും; ഈ ഫ്ലാഗ് അതിനെ ഒരിക്കലും തടയില്ല. | | `OMNIROUTE_ROTATE_400_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | അക്കൗണ്ട് റൊട്ടേറ്റ് ചെയ്യുന്നതിന് മുമ്പ് `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` പരിധിക്കുള്ളിൽ ആവശ്യമായ `400` പിശകുകളുടെ എണ്ണം (`OMNIROUTE_ROTATE_ON_400=true` ആയിരിക്കുമ്പോൾ മാത്രമേ പരിശോധിക്കൂ). | | `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | `OMNIROUTE_ROTATE_400_THRESHOLD` കണക്കാക്കുന്നതിനായി `400` പിശകുകൾ എണ്ണുന്ന സ്ലൈഡിംഗ് വിൻഡോ (സെക്കൻഡുകളിൽ). | ### Claude വാംഅപ്പ് ഷെഡ്യൂളർ ഓപ്റ്റ്-ഇൻ ചെയ്ത Anthropic OAuth കണക്ഷനുകൾക്കായുള്ള ക്രോൺ-പ്രേരിത വാംഅപ്പ്. ഇതിലൂടെ ആദ്യത്തെ യഥാർത്ഥ അഭ്യർത്ഥനയ്ക്കുപകരം, ഷെഡ്യൂൾ ചെയ്ത ഒരു ലളിതമായ അഭ്യർത്ഥനയിലൂടെ 5 മണിക്കൂർ റേറ്റ്-ലിമിറ്റ് വിൻഡോ തുറക്കുന്നു (#8848). `OMNIROUTE_WARMUP_ENABLED` truthy ആയിരിക്കുമ്പോഴും കണക്ഷൻ `settings.claudeWarmup.connections`-ൽ ഫ്ലാഗ് ചെയ്തിരിക്കുമ്പോഴും മാത്രമാണ് ഷെഡ്യൂളർ പ്രവർത്തിക്കുന്നത്; കണക്ഷൻ ലിസ്റ്റ് ശൂന്യമാണെങ്കിൽ env var ഓണായിരുന്നാലും ഒന്നും വാംഅപ്പ് ചെയ്യില്ല. | Variable | Default | Source File | Description | | ------------------------------ | --------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_WARMUP_ENABLED` | _(unset → off)_ | `src/lib/warmupScheduler.ts` | വാംഅപ്പ് ഷെഡ്യൂളറിനുള്ള മാസ്റ്റർ സ്വിച്ച്. `1`/`true`/`yes`/`on` എന്നിവ സ്വീകരിക്കുന്നു (case-insensitive, trimmed). മറ്റേതെങ്കിലും മൂല്യമോ unset ആയിരിക്കുകയോ ചെയ്താൽ ഷെഡ്യൂളർ ഓഫ് ആയിരിക്കും. | | `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | വാംഅപ്പ് ടിക്കിനുള്ള അഞ്ച്-ഫീൽഡ് ക്രോൺ എക്സ്പ്രഷൻ, ഹോസ്റ്റിന്റെ ക്ലോക്ക് പരിഗണിക്കാതെ `America/Los_Angeles`-ൽ (Anthropic-ന്റെ റീസെറ്റ് ടൈംസോൺ) വിലയിരുത്തുന്നു. | | `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | ഓരോ ടിക്കിലും സമാന്തരമായി വാംഅപ്പ് ചെയ്യുന്ന കണക്ഷനുകളുടെ എണ്ണം. `1`-`10` പരിധിയിലേക്ക് ചുരുക്കുന്നു; സംഖ്യയല്ലാത്ത മൂല്യം `3` ആയി മാറുന്നു. | | `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | വാംഅപ്പ് അഭ്യർത്ഥനയ്ക്കായി ഉപയോഗിക്കുന്ന മോഡൽ. ഡിഫോൾട്ട് നിങ്ങളുടെ പ്ലാനിൽ ലഭ്യമല്ലെങ്കിൽ മാത്രം മാറ്റുക; വിൻഡോ തുറക്കാൻ കഴിയുന്ന ഏറ്റവും കുറഞ്ഞ ചെലവുള്ള മോഡൽ തിരഞ്ഞെടുക്കുക. | ### ബ്രൗസർ-ലോഗിൻ VNC സെഷനുകളും ഡാറ്റ-ഡിർ അപരനാമവും ഇന്ററാക്ടീവ് ബ്രൗസർ-ലോഗിൻ ക്രെഡൻഷ്യൽ ക്യാപ്ചറിനായി (`/api/vnc-session`) ഉപയോഗിക്കുന്ന കണ്ടെയ്നറൈസ്ഡ് Chromium+VNC, കൂടാതെ പഴയ `DATA_DIR` അപരനാമവും. എല്ലാം ഐച്ഛികമാണ് — VNC ഡിഫോൾട്ടുകൾ ഉൾപ്പെടുത്തിയിരിക്കുന്ന `omniroute-vnc-chromium:local` ഇമേജിനെ ലക്ഷ്യമിടുന്നു; കസ്റ്റം കണ്ടെയ്നർ ഇമേജ്, പോർട്ടുകൾ, അല്ലെങ്കിൽ ലൈഫ്സൈക്കിൾ ട്യൂണിംഗ് ആവശ്യമായപ്പോൾ മാത്രമേ അവ ഓവർറൈഡ് ചെയ്യാവൂ. | Variable | Default | Source File | Description | | ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | Chromium+VNC ലോഗിൻ കണ്ടെയ്നറിനുള്ള Docker ഇമേജ് ടാഗ്. `docker/vnc-browser/chromium` ബിൽഡ് ചെയ്യുക, അല്ലെങ്കിൽ ഇത് ഒരു ഇഷ്ടാനുസൃത ഇമേജിലേക്ക് പോയിന്റ് ചെയ്യുക. | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | VNC കണ്ടെയ്നർ ആരംഭിക്കാൻ ഉപയോഗിക്കുന്ന കണ്ടെയ്നർ റൺടൈം ബൈനറി (ഉദാ., `podman` ആയി സജ്ജീകരിക്കുക). | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിൽ എക്സ്പോസ് ചെയ്യുന്ന VNC/noVNC പോർട്ട്. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിലെ Chrome DevTools Protocol പോർട്ട്. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിലെ Chromium പ്രൊഫൈൽ ഡയറക്ടറി പാത്ത്. | | `OMNIROUTE_VNC_PROFILE_DIR` | `$HOME/.omniroute/browser-login-profiles` | `src/lib/vncSession/manifest.ts` | സ്ഥിരമായി സൂക്ഷിച്ചിരിക്കുന്ന ബ്രൗസർ-ലോഗിൻ പ്രൊഫൈലുകൾ അടങ്ങിയ ഹോസ്റ്റ് ഡയറക്ടറി. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` (10 min) | `src/lib/vncSession/manifest.ts` | നിർജ്ജീവമായ VNC സെഷൻ നീക്കം ചെയ്യുന്നതിന് മുമ്പുള്ള നിഷ്ക്രിയ സമയപരിധി (മില്ലിസെക്കൻഡ്). | | `OMNIROUTE_VNC_MAX_MS` | `1800000` (30 min) | `src/lib/vncSession/manifest.ts` | ഒരു VNC സെഷന്റെ ആയുസ്സിനുള്ള പരമാവധി പരിധി (മില്ലിസെക്കൻഡ്). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | ഒരേസമയം അനുവദിക്കുന്ന പരമാവധി VNC സെഷനുകളുടെ എണ്ണം. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറൈസ് ചെയ്ത ബ്രൗസർ CDP-സജ്ജമാകുന്നതിനായി കാത്തിരിക്കുന്ന സമയപരിധി (മില്ലിസെക്കൻഡ്). | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | ലോഗിൻ പൂർത്തിയായതിന് ശേഷം ക്യാപ്ചർ ചെയ്ത സെഷൻ/കുക്കികൾ ശേഖരിക്കുന്നതിനുള്ള സമയപരിധി (മില്ലിസെക്കൻഡ്). | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | `--remote-debugging-port=9222 --no-first-run --no-default-browser-check` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറൈസ് ചെയ്ത Chromium-ലേക്ക് കൈമാറുന്ന അധിക കമാൻഡ്-ലൈൻ ഫ്ലാഗുകൾ. | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | ഡിഫോൾട്ട് ബ്രിഡ്ജിന് പകരം VNC ലോഗിൻ കണ്ടെയ്നർ ചേരുന്ന പ്രത്യേക Docker നെറ്റ്വർക്ക് (#12571); അതിനാൽ സഹോദര കണ്ടെയ്നറുകൾക്ക് അതിന്റെ CDP ബ്രിഡ്ജ് പോർട്ടിൽ എത്തിച്ചേരാനാകില്ല. | | `VIBEPROXY_DATA_DIR` | _(unset)_ | `open-sse/services/notionThreadSessions.ts` | `DATA_DIR`-ന്റെ **പഴയ അപരനാമം**; `DATA_DIR`, `OMNIROUTE_DATA_DIR` രണ്ടും സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ മാത്രമേ പരിശോധിക്കൂ. Notion വെബ്-ത്രെഡ് സെഷൻ കാഷെ (`/notion-web-thread-sessions.json`) കണ്ടെത്തുന്നു. | --- ## 26. ടെസ്റ്റ് & E2E ഹാർനെസ് `scripts/dev/run-next-playwright.mjs`, `scripts/dev/smoke-electron-packaged.mjs`, `scripts/dev/run-ecosystem-tests.mjs`, `scripts/build/uninstall.mjs` എന്നിവ ഉപയോഗിക്കുന്നു. താഴെയുള്ള എല്ലാ മൂല്യങ്ങളും ഉൽപ്പാദന വിന്യാസങ്ങളിൽ സജ്ജമാക്കാതെ വിടുക. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | -------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_E2E_BOOTSTRAP_MODE` | `auth` | `scripts/dev/run-next-playwright.mjs` | Playwright റണ്ണറിനായിE2E ബൂട്ട്സ്ട്രാപ്പ് മോഡ് (`auth`, `fresh`, `reuse`). | | `OMNIROUTE_E2E_PASSWORD` | `INITIAL_PASSWORD` ലേക്ക് തിരികെ വീഴുന്നു | `scripts/dev/run-next-playwright.mjs` | അഡ്മിൻ പാസ്വേഡ് Playwright പരിതസ്ഥിതിയിൽ കുത്തിവച്ചു. | | `OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | Playwright റൺ സമയത്ത് പ്രാദേശിക ആരോഗ്യ പരിശോധനാ വോട്ടെടുപ്പ് പ്രവർത്തനരഹിതമാക്കുക. | | `OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK` | `true` | `scripts/dev/run-next-playwright.mjs` | പരിശോധനകൾക്കിടയിൽ OAuth ടോക്കൺ ഹെൽത്ത് ചെക്ക് ലൂപ്പ് പ്രവർത്തനരഹിതമാക്കുക. | | `OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/tokenHealthCheck.ts` | സജീവമായ ടോക്കൺ-റിഫ്രഷ് സ്വീപ്പിൽ നിന്ന് (ഉദാ: `codex,openai`) കോമയാൽ വേർതിരിച്ച ദാതാക്കളെ ഒഴിവാക്കിയിരിക്കുന്നു. ഹെൽത്ത്ചെക്ക് — ഷോർട്ട്-TTL ദാതാക്കൾ പൂർണ്ണമായി പ്രവർത്തനരഹിതമാക്കുന്നതിനുള്ള ടാർഗെറ്റുചെയ്ത ബദൽ, കാസ്കേഡ് ദാതാക്കൾ റിയാക്റ്റീവ് മാത്രമായി തുടരുമ്പോൾ. | | `OMNIROUTE_HIDE_HEALTHCHECK_LOGS` | `true` | `scripts/dev/run-next-playwright.mjs` | Playwright stdout-ൽ ആരോഗ്യ പരിശോധന ശബ്ദത്തെ നിശബ്ദമാക്കുക. | | `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Playwright ആരംഭിക്കുന്നതിന് മുമ്പ് Next.js പ്രൊഡക്ഷൻ ബിൽഡ് ഒഴിവാക്കുക (CI ഒപ്റ്റിമൈസേഷൻ). | | `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | OmniRoute അൺഇൻസ്റ്റാൾ ഹുക്ക് ഒഴിവാക്കുക ( `node_modules` കേടുകൂടാതെ സൂക്ഷിക്കാൻ CI ഉപയോഗിക്കുന്നു). | | `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | ecosystem/protocol ടെസ്റ്റുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് സെർവർ ആരോഗ്യകരമാകുന്നതിന് സമയം (മി.സെ) കാത്തിരിക്കുക. | | `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | URL Electron സ്മോക്ക് ഹാർനെസ് പാക്കേജ് ചെയ്ത ആപ്പ് സേവിക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നു. | | `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | സ്മോക്ക് ഹാർനെസ് ഉപേക്ഷിക്കുന്നതിന് മുമ്പ് മൊത്തം സമയപരിധി (മി.സെ.). | | `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | പേജ് ലോഡുചെയ്തതിന് ശേഷം വിൻഡോ (മിസെ) സെറ്റിൽ ചെയ്യുക. | | `ELECTRON_SMOKE_APP_EXECUTABLE` | _(ഓട്ടോ)_ | `scripts/dev/smoke-electron-packaged.mjs` | പാക്കേജുചെയ്ത Electron എക്സിക്യൂട്ടബിളിലേക്കുള്ള വ്യക്തമായ പാത. | | `ELECTRON_SMOKE_DATA_DIR` | _(tmpdir)_ | `scripts/dev/smoke-electron-packaged.mjs` | Electron സ്മോക്ക് റണ്ണിനായുള്ള ഡാറ്റ ഡയറക്ടറി. | | `ELECTRON_SMOKE_KEEP_DATA` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | ഓട്ടത്തിന് ശേഷം സ്മോക്ക് ഡാറ്റ ഡയറക്ടറി സംരക്ഷിക്കാൻ `1` സജ്ജമാക്കുക. | | `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | റൺ സമയത്ത് Electron ലോഗുകൾ stdout-ലേക്ക് സ്ട്രീം ചെയ്യാൻ `1` സജ്ജമാക്കുക. | | `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: അതേ ഡാറ്റാ ഡയറിനെതിരെ വീണ്ടും സമാരംഭിക്കുക, രണ്ടാമത്തെ ലോഞ്ച് നേറ്റീവ് SQLite ഡ്രൈവർ തിരഞ്ഞെടുക്കുന്നു. | | `CLI_DEVIN_BIN` | _(PATH ലുക്ക്അപ്പ്)_ | `open-sse/executors/devin-cli.ts` | Devin CLI ബൈനറി പാത അസാധുവാക്കുക. | ### ഡോക്സ് വിവർത്തന പൈപ്പ്ലൈൻ `scripts/i18n/run-translation.mjs` ഉപയോഗിക്കുന്നു ( `npm run i18n:run` കമാൻഡ്). എല്ലാ ആറ് വേരിയബിളുകളും ഡിഫോൾട്ടായി സജ്ജീകരിച്ചിട്ടില്ല — ഡോക്സ് ട്രാൻസ്ലേറ്റർ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന മെഷീനുകളിൽ മാത്രം അവയെ `.env` ൽ സജ്ജീകരിക്കുക. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------ | ----------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_TRANSLATION_API_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/i18n/run-translation.mjs` | വിവർത്തന ബാക്കെൻഡിനായി OpenAI-അനുയോജ്യമായ അടിസ്ഥാന URL. | | `OMNIROUTE_TRANSLATION_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/i18n/run-translation.mjs` | വിവർത്തന ബാക്കെൻഡിനുള്ള ബെയറർ ടോക്കൺ (ഒരിക്കലും ലോഗിൻ ചെയ്തിട്ടില്ല). | | `OMNIROUTE_TRANSLATION_MODEL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/i18n/run-translation.mjs` | മോഡൽ ഐഡി, ഉദാ `gpt-4o-mini` അല്ലെങ്കിൽ `cx/gpt-5.4-mini`. | | `OMNIROUTE_TRANSLATION_FALLBACK_MODELS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/i18n/lib/translate-backend.mjs` | പ്രൈമറി മോഡൽ പരാജയപ്പെടുമ്പോൾ (429 ക്വാട്ട, 401/402, 5xx, ടൈംഔട്ട്, നെറ്റ്വർക്ക്) ഓപ്ഷണൽ കോമ കൊണ്ട് വേർതിരിച്ച മോഡൽ ചെയിൻ ക്രമത്തിൽ പരീക്ഷിച്ചു; തെറ്റായ ഒരു അഭ്യർത്ഥന (400/413/422) മറ്റൊരിടത്തും വീണ്ടും ശ്രമിച്ചിട്ടില്ല. | | `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | ഓരോ അഭ്യർത്ഥനയും മില്ലിസെക്കൻഡിൽ ടൈംഔട്ട്. | | `OMNIROUTE_TRANSLATION_REASONING_EFFORT` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/i18n/lib/translate-backend.mjs` | ഓപ്ഷണൽ ന്യായവാദ നിയന്ത്രണം, സജ്ജീകരിക്കുമ്പോൾ ബാക്കെൻഡിലേക്ക് അയയ്ക്കുന്നു. | | `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | ഒന്നിലധികം ഫയലുകൾ / ലൊക്കേലുകളിൽ പ്രവർത്തിക്കുമ്പോൾ സമാന്തര വിവർത്തന അഭ്യർത്ഥനകൾ. | | `OMNIROUTE_TRANSLATION_ENGINE` | `llm` | `scripts/i18n/run-translation.mjs` | `llm` മുകളിലെ ബാക്കെൻഡ് ഉപയോഗിക്കുന്നു; `google` ഘടന-സുരക്ഷിത Google എഞ്ചിനിലൂടെ വിവർത്തനം ചെയ്യുന്നു, കൂടാതെ LLM വേരിയബിളുകളൊന്നും ആവശ്യമില്ല. | | `OMNIROUTE_TRANSLATION_GOOGLE_FALLBACK` | `1` | `scripts/i18n/run-translation.mjs` | `llm` എഞ്ചിൻ ഉപയോഗിച്ച്, മോഡലിന് നിർമ്മിക്കാൻ കഴിയാത്ത ഒരു ഭാഗം (ഔട്ട്പുട്ട് ഗാർഡ് എല്ലാ ശ്രമങ്ങളിലും പരാജയപ്പെട്ടു, അല്ലെങ്കിൽ ഒരു മോഡൽ പിശക്) ലൊക്കേൽ പരാജയപ്പെടുന്നതിന് പകരം Google ഉപയോഗിച്ച് വിവർത്തനം ചെയ്യുന്നു. `0` അത് പ്രവർത്തനരഹിതമാക്കുന്നു. | | `OMNIROUTE_TRANSLATION_GOOGLE_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/i18n/lib/google-translate.mjs` | ഓപ്ഷണൽ ക്ലൗഡ് വിവർത്തനം v2 കീ. അൺസെറ്റ് കീലെസ്സ് വെബ് എൻഡ്പോയിൻ്റ് ഉപയോഗിക്കുന്നു (നിരക്ക് പരിമിതമാണ്, ഇടയ്ക്കിടെയുള്ള തരംഗങ്ങൾക്ക് പിഴ). | | `OMNIROUTE_TRANSLATION_GOOGLE_CONCURRENCY` | `6` | `scripts/i18n/lib/google-translate.mjs` | ഒരു റണ്ണിൻ്റെ ഓരോ ലൊക്കേലും പങ്കിടുന്ന സമാന്തര Google അഭ്യർത്ഥനകൾ. | | `OMNIROUTE_TRANSLATION_GOOGLE_TIMEOUT_MS` | `30000` | `scripts/i18n/lib/google-translate.mjs` | Google എഞ്ചിനുള്ള ഓരോ അഭ്യർത്ഥന സമയപരിധിയും മില്ലിസെക്കൻഡിൽ. | | `UI_KIT_READ_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/check/check-ui-kit-upstream.mjs` | `npm run check:ui-kit-upstream` ഉപയോഗിക്കുന്ന സ്വകാര്യ അപ്സ്ട്രീം UI കിറ്റ് റിപ്പോയ്ക്കായുള്ള റീഡ്-ഒൺലി ടോക്കൺ, പ്രതിവാര "UI കിറ്റ് അപ്സ്ട്രീം വാച്ച്" വർക്ക്ഫ്ലോ ഉപയോഗിക്കുന്നു. പ്രാദേശികമായി ചെക്ക് നിങ്ങളുടെ ജിറ്റ് ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കുന്നു. | --- ## 27. റഡാർ ഫീഡ് (സ്വയം-ഹോസ്റ്റിംഗ്) RADAR_ENABLED ഫീച്ചർ ഫ്ലാഗ് വഴി ഓപ്ഷണൽ ആഡ്-ഓൺ ഗേറ്റ് ചെയ്തിരിക്കുന്നു (ഡിഫോൾട്ട് ഓഫ് — ഒരു ഫീച്ചർ ഫ്ലാഗ് Settings/DB വഴി ടോഗിൾ ചെയ്തു, env var അല്ല; [docs/frameworks/RADAR.md](../frameworks/RADAR.md#flag-radar_enabled-default-off) കാണുക). താഴെയുള്ള ആദ്യത്തെ നാല് വേരിയബിളുകൾ സ്വയം ഹോസ്റ്റ് ചെയ്തതോ ഫോർക്ക് ചെയ്തതോ ആയ ഫീഡിനും സപ്പോർട്ടർ-കീ ഫ്ലോകൾക്കുമുള്ള ഓപ്ഷണൽ ഓവർറൈഡുകളാണ്. അഞ്ചാമത്തേത്, `RADAR_ADMIN_URL`, ഉടമയുടെ സ്വകാര്യ പ്രവർത്തന പാനലിലേക്കുള്ള ഒരു പ്രത്യേക ഡിഫോൾട്ട് രഹിത ലിങ്കാണ്. മുഴുവൻ മൊഡ്യൂൾ ഡോക്സിനും അതിൻ്റെ [എൻഡ്-ടു-എൻഡ് ആക്റ്റിവേഷനും ഗൈഡഡ് സെറ്റപ്പ് സീക്വൻസിനുമായി](../frameworks/RADAR.md#end-to-end-activation-and-guided-setup) [docs/frameworks/RADAR.md](../frameworks/RADAR.md) കാണുക. ജനറിക് Home/Changelog അനൗൺസ്മെൻ്റ് റീഡർ ഒരു എൻവയോൺമെൻ്റ് വേരിയബിൾ ഉപയോഗിച്ച് കോൺഫിഗർ ചെയ്തിട്ടില്ല കൂടാതെ RADAR_ENABLED ഫീച്ചർ ഫ്ലാഗിനെ ആശ്രയിക്കുന്നില്ല. `src/shared/utils/releaseNotes.ts` ൽ GET മാത്രം പ്രഖ്യാപിച്ച പൊതു ശേഖരമായ `news.json` URL ഇത് വായിക്കുന്നു; ഡിസ്മിസൽ IDs ബ്രൗസർ ലോക്കൽ സ്റ്റോറേജിൽ തുടരുന്നു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ----------------------------- | -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `RADAR_FEED_URL` | `https://radar.omniroute.online` | `src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts` | വെവ്വേറെ ഒപ്പിട്ട കാറ്റലോഗ്, റഫറലുകൾ, സപ്പോർട്ടർ-ഓഫറുകൾ, ഇൻ്റൽ ഫീഡുകൾ എന്നിവ പങ്കിടുന്ന അടിസ്ഥാന URL. സ്വയം ഹോസ്റ്റ് ചെയ്ത അല്ലെങ്കിൽ ഫോർക്ക് ചെയ്ത സേവനത്തിലേക്ക് പോയിൻ്റ് ചെയ്യുന്നതിന് അസാധുവാക്കുക. | | `RADAR_FEED_PUBKEY` | _(പിൻ ചെയ്ത ഡിഫോൾട്ട് കീ)_ | `src/lib/radar/pinnedKeys.ts` | Ed25519 പൊതു കീ (base64-DER SPKI അല്ലെങ്കിൽ PEM) ഒരു ഇഷ്ടാനുസൃത ഫീഡിൽ നിന്നുള്ള ഫീഡ് ഒപ്പുകൾ പരിശോധിക്കാൻ ഉപയോഗിക്കുന്നു. | | `RADAR_CONTRIBUTOR_CLAIM_URL` | `https://radar.omniroute.online/auth/github` | `src/lib/radar/links.ts` | URL "ഞാൻ ഒരു സംഭാവകനാണ്" ഡാഷ്ബോർഡ് ബട്ടൺ തുറക്കുന്നു (GitHub OAuth സപ്പോർട്ടർ-കീ ക്ലെയിം ഫ്ലോ). | | `RADAR_SUPPORTER_PLANS_URL` | `https://radar.omniroute.online/planos` | `src/lib/radar/links.ts` | URL "പ്രോജക്ടിനെ പിന്തുണയ്ക്കുക" ഡാഷ്ബോർഡ് ബട്ടൺ തുറക്കുന്നു (payment/plans പേജ്). | | `RADAR_ADMIN_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/radar/links.ts` | ഉടമയ്ക്ക് മാത്രമുള്ള സ്വകാര്യ പ്രവർത്തനങ്ങൾ-പാനൽ ലിങ്ക്. ഒരു HTTP ലൂപ്പ്ബാക്ക് SSH ഫോർവേഡ് ഒഴികെ HTTPS ആവശ്യമാണ്; സജ്ജീകരിക്കാത്തതോ അസാധുവായതോ ആയ മൂല്യങ്ങൾ നാവിഗേഷൻ ഇനങ്ങളൊന്നും സൃഷ്ടിക്കുന്നില്ല. | --- ## ഓഡിറ്റ്: നീക്കം ചെയ്ത / ഡെഡ് വേരിയബിളുകൾ `.env.example` യുടെ മുൻ പതിപ്പുകളിൽ ഇനിപ്പറയുന്ന വേരിയബിളുകൾ പ്രത്യക്ഷപ്പെട്ടു, പക്ഷേ ഉണ്ട്** റൺടൈം റഫറൻസുകളൊന്നുമില്ല** നിലവിലെ കോഡ്ബേസിൽ. അവ നീക്കംചെയ്തു: | വേരിയബിൾ | കാരണം | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `STORAGE_DRIVER=sqlite` | ഒരു സോഴ്സ് ഫയലും ഒരിക്കലും വായിക്കരുത്. തിരഞ്ഞെടുക്കേണ്ട ആവശ്യമില്ലാത്ത — പിന്തുണയ്ക്കുന്ന ഒരേയൊരു ഡ്രൈവർ SQLite ആണ്. | | `INSTANCE_NAME=omniroute` | പഴയ docs/env ടെംപ്ലേറ്റുകളിൽ അവതരിപ്പിക്കുമെങ്കിലും റൺടൈമിൽ ഉപയോഗിക്കില്ല. ഭാവിയിൽ മൾട്ടി-ഇൻസ്റ്റൻസ് ഫീച്ചറിൽ തിരിച്ചെത്തിയേക്കാം. | | `SQLITE_MAX_SIZE_MB=2048` | സോഴ്സ് കോഡിൽ പരാമർശിച്ചിട്ടില്ല. ഡാറ്റാബേസ് വലുപ്പം കൃത്രിമമായി പരിമിതപ്പെടുത്തിയിട്ടില്ല. | | `SQLITE_CLEAN_LEGACY_FILES=true` | സോഴ്സ് കോഡിൽ പരാമർശിച്ചിട്ടില്ല. ലെഗസി ക്ലീനപ്പ് നീക്കം ചെയ്യപ്പെട്ടേക്കാം. | | `CLI_ROO_BIN` | `src/shared/services/cliRuntime.ts` ൽ രജിസ്റ്റർ ചെയ്തിട്ടില്ല. | | `CLI_KIMI_CODING_BIN` | `src/shared/services/cliRuntime.ts` ൽ രജിസ്റ്റർ ചെയ്തിട്ടില്ല (Kimi കോഡിംഗിൽ OAuth ഉപയോഗിക്കുന്നു, CLI ബൈനറി അല്ല). | | `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | സോഴ്സ് കോഡിൽ എവിടെയും പരാമർശിച്ചിട്ടില്ല. | | `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` | v3.8.0-ൽ നീക്കം ചെയ്തു. ഈ env vars — ക്രെഡൻഷ്യലുകൾ ഡാഷ്ബോർഡ് / `data/provider-credentials.json` / എൻക്രിപ്റ്റഡ് DB ൽ നിന്നാണ് വരുന്നതെന്ന് റൺടൈം ഇനി വായിക്കില്ല. | | `CURSOR_PROTOBUF_DEBUG` | v3.8.0-ൽ നീക്കം ചെയ്തു. Cursor എക്സിക്യൂട്ടർ `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` ഉപയോഗിക്കുന്നു (§22 കാണുക). | | `CLI_COMPAT_KIRO` | v3.8.0-ൽ നീക്കം ചെയ്തു. Kiro `CLI_COMPAT_OMITTED_PROVIDER_IDS` — ൽ ആണ്, അതിൻ്റെ ടോഗിൾ ഫലമുണ്ടാക്കില്ല. | | `QIANFAN_API_KEY` | v3.8.0-ലെ മറ്റ് ഉപയോഗിക്കാത്ത ദാതാവിൻ്റെ API കീ അപൂർണ്ണതയ്ക്കൊപ്പം നീക്കം ചെയ്തു. | ### സ്ഥിര മൂല്യ തിരുത്തലുകൾ | വേരിയബിൾ | പഴയ `.env.example` മൂല്യം | യഥാർത്ഥ കോഡ് ഡിഫോൾട്ട് | പരിഹരിച്ചു | | ------------------------- | ------------------------- | ---------------------- | --------------------------------------------------------------------------------- | | `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ തെറ്റിദ്ധരിപ്പിക്കുന്ന മൂല്യം നീക്കം ചെയ്തു; സ്ഥിരസ്ഥിതിയായി `7` രേഖപ്പെടുത്തി | | `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ തെറ്റിദ്ധരിപ്പിക്കുന്ന മൂല്യം നീക്കം ചെയ്തു; സ്ഥിരസ്ഥിതിയായി `7` രേഖപ്പെടുത്തി | ### OpenCode കോൺഫിഗർ റീജനറേഷൻ (അഡ്-ഹോക്ക് ടൂളിംഗ്) റണ്ണിംഗ് OmniRoute ഇൻസ്റ്റൻസിൽ നിന്ന് പിൻവലിച്ച കൃത്യമായ `limit.context`, `limit.output` മൂല്യങ്ങളുള്ള ഒരു `opencode.json` പുനഃസൃഷ്ടിക്കാൻ `scripts/ad-hoc/regen-opencode-config.ts` ഉപയോഗിക്കുന്നു. — സാധാരണ പ്രവർത്തനത്തിന് ഇവയൊന്നും ആവശ്യമില്ല, സ്ക്രിപ്റ്റ് ഡെവലപ്പർ ടൂളിംഗ് മാത്രമാണ്. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------ | ------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_URL` | `http://localhost:20128` | `scripts/ad-hoc/regen-opencode-config.ts` | `/v1/models` അന്വേഷിക്കുന്നതിനുള്ള OmniRoute ഉദാഹരണത്തിൻ്റെ അടിസ്ഥാന URL. | | `OMNIROUTE_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/ad-hoc/regen-opencode-config.ts` | OmniRoute `/v1/models` എൻഡ്പോയിൻ്റിനെതിരെ ആധികാരികമാക്കാൻ API കീ. സജ്ജീകരിക്കാത്തപ്പോൾ `OPENCODE_API_KEY` ലേക്ക് മടങ്ങുന്നു. | | `OPENCODE_API_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `scripts/ad-hoc/regen-opencode-config.ts` | ഓപ്പൺകോഡ്-സ്റ്റൈൽ API കീ (`sk-...`) പുനർനിർമ്മിച്ച `opencode.json` യിൽ എഴുതിയിരിക്കുന്നു. സജ്ജീകരിക്കാത്തപ്പോൾ `OMNIROUTE_KEY` ലേക്ക് മടങ്ങുന്നു. | ### കംപ്രഷൻ ഓഫ്ലൈൻ-ഇവൽ ഹാർനെസ് (അഡ്-ഹോക്ക് ടൂളിംഗ്) `scripts/compression-eval/index.ts`, ഓഫ്ലൈൻ കംപ്രഷൻ മൂല്യനിർണ്ണയം CLI ഉപയോഗിക്കുന്നു. സാധാരണ ഓപ്പറേഷൻ — ഡവലപ്പർ ടൂളിങ്ങിന് മാത്രം ആവശ്യമില്ല. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------- | ------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (ശൂന്യം) | `scripts/compression-eval/index.ts` | ദാതാവിനായി ഓപ്പറേറ്റർ നൽകുന്ന JSON ക്രെഡൻഷ്യലുകൾ ഓഫ്ലൈൻ കംപ്രഷൻ-eval CLI ( `JSON.parse` ഉപയോഗിച്ച് പാഴ്സ് ചെയ്തത്). ഡ്രൈ റണ്ണിനായി സജ്ജമാക്കാതെ വിടുക. | ### VNC ബ്രൗസർ സെഷനുകൾ ബ്രൗസർ-ഓട്ടോമേഷൻ ദാതാക്കൾക്കായി ഡോക്കർ അടിസ്ഥാനമാക്കിയുള്ള ഹെഡ്ലെസ് ക്രോമിയം സെഷനുകൾ കോൺഫിഗർ ചെയ്യാൻ `src/lib/vncSession/manifest.ts` ഉപയോഗിക്കുന്നു. താഴെ കാണിച്ചിരിക്കുന്ന എല്ലാ ഓപ്ഷണൽ — ഡിഫോൾട്ടുകളും. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------- | ------------------------------ | ------------------------------------------- | --------------------------------------------------------------------------------------- | | `OMNIROUTE_DOCKER_BIN` | `docker` | `src/lib/vncSession/manifest.ts` | VNC കണ്ടെയ്നറുകൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്ന Docker ബൈനറിയിലേക്കുള്ള പാത. | | `OMNIROUTE_VNC_IMAGE` | `omniroute-vnc-chromium:local` | `src/lib/vncSession/manifest.ts` | VNC Chromium കണ്ടെയ്നറിനായുള്ള Docker ചിത്രം. | | `OMNIROUTE_VNC_CHROMIUM_ARGS` | _(ബിൽറ്റ്-ഇൻ ഫ്ലാഗുകൾ)_ | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിലെ ബ്രൗസറിലേക്ക് അധിക Chromium CLI ആർഗുകൾ കൈമാറി. | | `OMNIROUTE_VNC_CONTAINER_VNC_PORT` | `3000` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിൽ VNC പോർട്ട്. | | `OMNIROUTE_VNC_CONTAINER_CDP_PORT` | `9223` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിൽ Chrome DevTools പ്രോട്ടോക്കോൾ പോർട്ട്. | | `OMNIROUTE_VNC_CONTAINER_PROFILE_DIR` | `/config` | `src/lib/vncSession/manifest.ts` | കണ്ടെയ്നറിനുള്ളിലെ പ്രൊഫൈൽ ഡയറക്ടറി. | | `OMNIROUTE_VNC_PROFILE_DIR` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/vncSession/manifest.ts` | സ്ഥിരമായ ബ്രൗസർ പ്രൊഫൈലുകൾക്കുള്ള ഹോസ്റ്റ്-സൈഡ് ഡയറക്ടറി. | | `OMNIROUTE_VNC_IDLE_MS` | `600000` | `src/lib/vncSession/manifest.ts` | ഒരു VNC സെഷൻ വിളവെടുക്കുന്നതിന് മുമ്പ് നിഷ്ക്രിയ സമയപരിധി (മി.സെ.). | | `OMNIROUTE_VNC_MAX_MS` | `1800000` | `src/lib/vncSession/manifest.ts` | പരമാവധി സെഷൻ ദൈർഘ്യം (മി.സെ.). | | `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | പരമാവധി ഒരേസമയം VNC സെഷനുകൾ. | | `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | ബ്രൗസർ റെഡിനസ് ടൈംഔട്ട് (മി.സെ.). | | `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | Harvest/cleanup കാലഹരണപ്പെട്ടു (മി.സെ.). | | `OMNIROUTE_VNC_NETWORK` | `omniroute-vnc-browser-login` | `src/lib/vncSession/manifest.ts` | സമർപ്പിത Docker നെറ്റ്വർക്ക് കണ്ടെയ്നർ ചേരുന്നു (#12571), ഡിഫോൾട്ട് ബ്രിഡ്ജിന് പുറത്ത്. | | `VIBEPROXY_DATA_DIR` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/services/notionThreadSessions.ts` | Notion ത്രെഡ് സെഷൻ പെർസിസ്റ്റൻസിനുള്ള ഡയറക്ടറി. | ### ആന്തരിക സേവനത്തിൻ്റെ അംഗീകാരം | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | --------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN` | – | മാനേജ്മെൻ്റ്-പ്ലെയ്ൻ സർവീസ്-ടു-സർവീസ് പ്രാമാണീകരണത്തിനുള്ള ഇൻലൈൻ ടോക്കൺ. | | `OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE` | – | ആന്തരിക സേവന ടോക്കൺ അടങ്ങുന്ന ഒരു ഫയലിലേക്കുള്ള പാത (കണ്ടെയ്നറുകളിൽ മുൻഗണന; ഇൻലൈൻ വേരിയബിളിനെ അസാധുവാക്കുന്നു). | ### OpenRouter ദാതാവിൻ്റെ സ്ഥിതിവിവരക്കണക്കുകൾ | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | ----------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------- | | `OPENROUTER_PROVIDER_STATS_ENABLED` | `true` | കാറ്റലോഗ് സമ്പുഷ്ടീകരണത്തിനായി ഓരോ ദാതാവിനും OpenRouter എന്ന കണക്കുകൾ ലഭ്യമാക്കുന്നത് ഒഴിവാക്കാൻ `false` ആയി സജ്ജീകരിക്കുക. | | `OPENROUTER_PROVIDER_STATS_TTL_MS` | `3600000` | ലഭിച്ച OpenRouter ദാതാവിൻ്റെ സ്ഥിതിവിവരക്കണക്കുകൾക്കായുള്ള TTL (മി.സെ.) കാഷെ. | ### ഉൾച്ചേർത്ത Redis ബൈൻഡിംഗ് | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | വിവരണം | | --------------------------- | ----------- | ------------------------------------------------------------------ | | `REDIS_BIND_HOST` | `127.0.0.1` | ഉൾച്ചേർത്ത Redis സേവനത്തിനായുള്ള വിലാസം ബന്ധിപ്പിക്കുക. | | `REDIS_PORT` | `6379` | ഉൾച്ചേർത്ത Redis സേവനത്തിനുള്ള പോർട്ട്. | | `OMNIROUTE_REDIS_BIND_HOST` | – | ഉൾച്ചേർത്ത Redis ബൈൻഡ് വിലാസത്തിനായി OmniRoute-സ്കോപ്പ്ഡ് ഓവർറൈഡ്. | --- ## 24. v3.8.50 കൂട്ടിച്ചേർക്കലുകൾ റിലീസ് ചെയ്യുക ഈ ക്രമീകരണങ്ങൾ മുമ്പത്തെ പരിസ്ഥിതി-കരാർ സ്നാപ്പ്ഷോട്ടിന് ശേഷം അവതരിപ്പിച്ചു. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | വീണ്ടും ശ്രമിക്കാവുന്ന `503` യ്ക്ക് മുമ്പായി ഒരു ഹെവിവെയ്റ്റ് ചാറ്റ് പ്രവേശന സ്ലോട്ടിനായി പരമാവധി കാത്തിരിപ്പ്; ഒരു തൽക്ഷണ `503` ന് പകരം ഒരു ഹ്രസ്വ ബൗണ്ടഡ് കാത്തിരിപ്പ് ഏജൻ്റ് പൊട്ടിത്തെറികൾ സീരിയലൈസ് ചെയ്യുന്നു. `0` ഉടനടി നിരസിക്കൽ പുനഃസ്ഥാപിക്കുന്നു. | | `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | പ്രവേശന കാത്തിരിപ്പിനുള്ള ക്യൂഡ്-ബൈറ്റുകൾ ബജറ്റ്: പ്രോസസ്-വൈഡ് പാർക്ക് ചെയ്ത മൊത്തം ബഫർ ബോഡി ബൈറ്റുകളെ പരിധിയാക്കുന്നു, അതിനാൽ കാത്തിരിപ്പിന് കൂമ്പാരം വർദ്ധിപ്പിക്കാൻ കഴിയില്ല (#4380). ഓവർ-ബജറ്റ് കാത്തിരിപ്പുകൾക്ക് വീണ്ടും ശ്രമിക്കാവുന്ന `503` ഉടനടി ലഭിക്കും. | | `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 സെ) | `src/shared/middleware/chatBodyAdmission.ts` | #10110 മുതൽ ഒഴിവാക്കപ്പെട്ട നോ-ഓപ്: ഒരു പ്രോസസ്-വൈഡ് ബജറ്റിന് അനുകൂലമായി ഓരോ സെഷനും പ്രവേശന പാതകൾ നീക്കം ചെയ്തു. കോൺഫിഗറേഷൻ അനുയോജ്യതയ്ക്കായി സ്വീകരിച്ചു; അവഗണിച്ചു. | | `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | #10110 മുതൽ ഒഴിവാക്കപ്പെട്ട നോ-ഓപ്: ഒരു പ്രോസസ്-വൈഡ് ബജറ്റിന് അനുകൂലമായി ഓരോ സെഷനും പ്രവേശന പാതകൾ നീക്കം ചെയ്തു. കോൺഫിഗറേഷൻ അനുയോജ്യതയ്ക്കായി സ്വീകരിച്ചു; അവഗണിച്ചു. | | `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (ഓഫ്) | `open-sse/services/admission/runtime.ts` | അഡാപ്റ്റീവ് റൺടൈം വെർച്വൽ പ്രവേശന പാതകൾ (#9654): ഓരോ വാടകക്കാരനും അഡാപ്റ്റീവ് ഗേറ്റിനുള്ള മാസ്റ്റർ സ്വിച്ച് (സിസ്റ്റം 2). മുകളിലുള്ള ഒഴിവാക്കിയ ഓരോ കണക്ഷൻ ലെയ്നിലും നിന്ന് വ്യത്യസ്തമാണ് (TTL_MS / MAX_SESSIONS, #10110 മുതൽ നോ-ഓപ്സ്). അതേ പേരിലുള്ള ഡാഷ്ബോർഡ് ഫീച്ചർ ഫ്ലാഗ്; ഡാഷ്ബോർഡ് അസാധുവാക്കുന്നതിൽ env var വിജയിക്കുന്നു; പുനരാരംഭിക്കേണ്ടതുണ്ട്. | | `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | ക്യൂവിലുള്ള ഓട്ടം ആരംഭിക്കുന്നതിന് മുമ്പ് ഒരു റൺ-നൗ കോൾ ഒരു വിമാനത്തിനുള്ളിലെ ജോലിക്കായി എത്ര സമയം കാത്തിരിക്കുന്നു എന്നതിനെ അതിരുകളാക്കുന്നു. | | `ADOBE_FIREFLY_BROWSER_REFRESH` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/adobeFireflySession.ts` | അക്കൗണ്ട് സ്കോപ്പ് ചെയ്ത Chrome CDP സെഷനുകളിലൂടെ IMS, ബ്രൗസർ-റിസ്ക് അവസ്ഥ എന്നിവ പുതുമ നിലനിർത്തുന്നു; പ്രവർത്തനരഹിതമാക്കാൻ `0` സജ്ജമാക്കുക. | | `ADOBE_FIREFLY_SESSION_DISK` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/adobeFireflySession.ts` | `DATA_DIR` കീഴിൽ അറ്റകുറ്റപ്പണി ചെയ്ത അഡോബ് സെഷനുകൾ തുടരുന്നു; മെമ്മറി മാത്രമുള്ള അവസ്ഥയ്ക്കായി `0` സജ്ജമാക്കുക. | | `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly തമ്മിലുള്ള ഏറ്റവും കുറഞ്ഞ സ്പെയ്സിംഗ് സമർപ്പിക്കലുകൾ സൃഷ്ടിക്കുന്നു. | | `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | ഓരോ മൂന്നാമത്തെ വിജയകരമായ Adobe സമർപ്പണത്തിനുശേഷവും അധിക നിശ്ശബ്ദ കാലയളവ്. | | `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | ഡീബഗ്-മാത്രം ട്രൂ-ഹെഡ്ലെസ് മോഡ്; അഡോബ് കൊളിഗോ സാധാരണയായി തത്ഫലമായുണ്ടാകുന്ന റിസ്ക് സെഷൻ നിരസിക്കുന്നു. | | `CHROME_PATH` | സ്വയമേവ കണ്ടെത്തുക | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | പ്ലാറ്റ്ഫോം സ്വയമേവ കണ്ടെത്തൽ അപര്യാപ്തമാകുമ്പോൾ ബ്രൗസർ പ്രവർത്തിപ്പിക്കുന്ന എക്സിക്യൂട്ടർമാർ ഉപയോഗിക്കുന്ന ഓപ്ഷണൽ സമ്പൂർണ്ണ Chrome എക്സിക്യൂട്ടബിൾ. | | `TELEGRAM_BOT_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/telegram/config.ts` | ഇൻബൗണ്ട് വെബ്ഹുക്ക് പ്രവർത്തനക്ഷമമാക്കുകയും മിനി ആപ്പ് `initData` എന്ന് അടയാളപ്പെടുത്തുകയും ചെയ്യുന്ന BotFather ടോക്കൺ. | | `TELEGRAM_WEBHOOK_SECRET` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/telegram/config.ts` | പങ്കിട്ട രഹസ്യം `setWebhook` വഴി രജിസ്റ്റർ ചെയ്യുകയും എല്ലാ വെബ്ഹുക്ക് ഡെലിവറിയിലും `X-Telegram-Bot-Api-Secret-Token` തലക്കെട്ടിനെതിരെ പരിശോധിച്ചുറപ്പിക്കുകയും ചെയ്യുന്നു. വെബ്ഹുക്ക് പാതയ്ക്ക് ആവശ്യമാണ്; സജ്ജീകരിക്കാത്തത് അർത്ഥമാക്കുന്നത് വെബ്ഹുക്ക് ഡെലിവറികൾ 503 ഉപയോഗിച്ച് നിരസിച്ചു എന്നാണ്. | | `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Telegram ചാറ്റ് മറുപടികൾക്കായി ഉപയോഗിക്കുന്ന മോഡൽ. | | `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | പ്രോക്സികൾക്കോ സ്വയം ഹോസ്റ്റ് ചെയ്ത ബോട്ട് API സെർവറുകൾക്കോ വേണ്ടി ബോട്ട് API ബേസ് URL അസാധുവാക്കുന്നു. | | `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | ഔട്ട്ബൗണ്ട് Bot API കോളുകൾക്കായി മില്ലിസെക്കൻഡിൽ സമയപരിധി. | | `TELEGRAM_USER_ALLOWLIST_ENABLED` | `false` | `src/lib/telegram/config.ts` | `TELEGRAM_ALLOWED_USER_IDS` ൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന Telegram ഉപയോക്താക്കൾക്ക് മാത്രം സേവനം നൽകുന്നതിന് `true` ആയി സജ്ജീകരിക്കുക (മറ്റുള്ളവർ: Mini App 403, webhook സന്ദേശം ഉപേക്ഷിച്ചു). ഡിഫോൾട്ടായി ഓഫ്: ഓരോ Telegram ഉപയോക്താവിനും സേവനം നൽകുകയും അപ്സ്ട്രീം ക്വാട്ട ചെലവഴിക്കുന്ന ഒരു API കീ ലഭിക്കുകയും ചെയ്യുന്നു. | | `TELEGRAM_ALLOWED_USER_IDS` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `src/lib/telegram/config.ts` | `TELEGRAM_USER_ALLOWLIST_ENABLED=true` ആയിരിക്കുമ്പോൾ കോമയാൽ വേർതിരിച്ച സംഖ്യാ Telegram ഉപയോക്തൃ ഐഡികൾ നൽകുന്നു. പ്ലെയിൻ പോസിറ്റീവ് പൂർണ്ണസംഖ്യകളല്ലാത്ത എൻട്രികൾ ഒറ്റത്തവണ മുന്നറിയിപ്പ് നൽകി അവഗണിക്കും. അനുവദനീയ പട്ടിക ഓഫായിരിക്കുമ്പോൾ അവഗണിച്ചു; അനുവദനീയമായ ലിസ്റ്റ് ആരെയും സേവിക്കുന്നില്ല. | | `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (പ്രാപ്തമാക്കി) | `scripts/build/optionalPackStaging.mjs` | Electron സ്റ്റാൻഡ്ലോൺ ട്രീയ്ക്കായി ഓപ്ഷണൽ ML/browser പായ്ക്കുകൾ നടത്തുമ്പോൾ `.tar.gz` ടാർബോളുകൾ പുറത്തുവിടുന്നത് ഒഴിവാക്കാൻ `0` സജ്ജമാക്കുക (പാക്ക് ഡയറക്ടറികളും `optional-packs.index.json` യും ഇപ്പോഴും നിർമ്മിക്കുന്നു). ആർട്ടിഫാക്റ്റ് അപ്ലോഡ് വലുപ്പം ട്രിം ചെയ്യാൻ ഡെസ്ക്ടോപ്പ് റിലീസ് വർക്ക്ഫ്ലോ ഉപയോഗിക്കുന്നു. | | `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | xAI സബ്സ്ക്രിപ്ഷൻ ഇമേജ് റൂട്ടുകളുടെ രജിസ്ട്രേഷൻ പ്രവർത്തനക്ഷമമാക്കുന്നു; സ്ഥിരസ്ഥിതിയായി അപ്രാപ്തമാക്കിയതിനാൽ API-കീ ഇമേജ് പാത മാറ്റമില്ലാതെ തുടരുന്നു. | | `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | ഒരു `429` പ്രതികരണത്തിന് ഉപയോഗയോഗ്യമായ `Retry-After` സൂചന ഇല്ലാതിരിക്കുമ്പോൾ ഓരോ കീ കൂൾഡൗൺ മില്ലിസെക്കൻഡിൽ. | | `OMNIROUTE_ESTIMATOR_CALIBRATION` | പ്രവർത്തനക്ഷമമാക്കി | `open-sse/services/estimatorCalibration.ts` | ഇൻ-മെമ്മറി എസ്റ്റിമേറ്റർ കാലിബ്രേഷൻ റെക്കോർഡിംഗും ആപ്ലിക്കേഷനും പ്രവർത്തനരഹിതമാക്കാൻ `off`, `0`, അല്ലെങ്കിൽ `false` ആയി സജ്ജീകരിക്കുക. | | `NEXT_MANUAL_SIG_HANDLE` | _(ആന്തരികം)_ | `scripts/dev/standalone-server-ws.mjs` | ആന്തരിക സ്റ്റാൻഡേലോൺ-സെർവർ സിഗ്നൽ-ഹാൻഡ്ലർ അസാധുവാക്കൽ; ഓപ്പറേറ്റർമാർ കോൺഫിഗർ ചെയ്യുന്നതിനുപകരം ലോഞ്ചർ സാധാരണയായി സജ്ജീകരിക്കുകയും മായ്ക്കുകയും ചെയ്യുന്നു. | | `CHATGPT_WEB_TURN_TIMEOUT_MS` | `180000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | ഒരു ChatGPT വെബ് (ക്ലീൻ റൂം) ടെക്സ്റ്റ് ടേണിനുള്ള പെർ-ടേൺ സീലിംഗ്; `1000` ന് താഴെയുള്ള മൂല്യങ്ങൾ അവഗണിക്കപ്പെടുന്നു. | | `CHATGPT_WEB_TOOL_TURN_TIMEOUT_MS` | `180000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | ക്ലയൻ്റ് ടൂളുകൾ (എമുലേറ്റഡ് `` എൻവലപ്പ്) വഹിക്കുന്ന ഒരു ChatGPT വെബ് (ക്ലീൻ റൂം) ടേണിനുള്ള പെർ-ടേൺ സീലിംഗ്; ഉടൻ തന്നെ ക്ലയൻ്റിലേക്ക് നിയന്ത്രണം തിരികെ നൽകുന്നതിന് അത് താഴ്ത്തുക. `1000` ന് താഴെയുള്ള മൂല്യങ്ങൾ അവഗണിക്കപ്പെടുന്നു. | | `CHATGPT_WEB_HEADLESS` | `1` (തലയില്ലാത്ത) | `open-sse/utils/chatgptWebExecutorAdapter.ts` | ChatGPT വെബ് (ക്ലീൻ റൂം) ബ്രൗസർ ഹെഡ്ലെസ് ആയി പ്രവർത്തിപ്പിക്കുക. ഫസ്റ്റ്-പാർട്ടി ചലഞ്ച് ഹെഡ്ലെസ് മോഡ് നിരസിക്കുന്ന അക്കൗണ്ടുകൾക്ക് മാത്രം `0` സജ്ജീകരിക്കുക (#14948-ൽ ഹെഡ്ലെസ് മോഡിൽ നിന്ന് ഡിഫോൾട്ട് ഹെഡ്ലെസ് ആയി മാറി). | | `CHATGPT_WEB_BROWSER_ACQUIRE_TIMEOUT_MS` | `45000` | `open-sse/utils/chatgptWebExecutorAdapter.ts` | ChatGPT വെബ് (ക്ലീൻ റൂം) ബ്രൗസർ സമാരംഭിക്കുന്നതിനും chatgpt.com ചൂടാക്കുന്നതിനുമുള്ള സീലിംഗ്, അതിനാൽ ഒരു ഡെഡ് ബ്രൗസറിനോ സെഷനോ അഭ്യർത്ഥന-ക്യൂ ഡെഡ്ലൈൻ ഉപയോഗിക്കാനാവില്ല. | | `UI_KIT_CLONE` | `_references/cheaper-inference-ui-kit` | `scripts/check/check-ui-kit-snapshot.mjs` | സ്വകാര്യ CI UI കിറ്റിൻ്റെ പാത്ത്, വെണ്ടർ-സ്നാപ്പ്ഷോട്ട് ഗേറ്റ് ക്ലോൺ ചെയ്യുക (KEA-7886) നേരെ `packages/ui-kit/src` വ്യത്യാസപ്പെട്ടിരിക്കുന്നു; ക്ലോൺ ഇല്ലാതിരിക്കുമ്പോൾ ഗേറ്റ് ഒരു മുന്നറിയിപ്പോടെ കടന്നുപോകുന്നു. | ### ChatGPT വെബ് (Codex) Globale Defaults für den headless Browser und den ausgehenden Tool-Tunnel. ഇം ഡാഷ്ബോർഡ് ഗെസെറ്റ്സ്ടെ കണക്ഷൻ-വെർട്ടെ ഹബെൻ വോരാംഗ്. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | --------------------------------------- | -------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CHATGPT_WEB_CODEX_CHROME_PATH` | _(യാന്ത്രികമായി കണ്ടുപിടിക്കുക)_ | `open-sse/executors/chatgpt-web-codex.ts` | Expliziter Chrome-/Chromium-Pfad für npm-, systemd- und PM2-Betrieb. | | `CHROME_PATH` | _(യാന്ത്രികമായി കണ്ടുപിടിക്കുക)_ | `open-sse/executors/chatgpt-web-codex.ts` | Gemeinsamer Fallback für einen expliziten Chrome-/Chromium-Pfad. | | `CHATGPT_WEB_CODEX_CDP_URL` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/chatgpt-web-codex.ts` | ഇൻ്റേണർ CDP-Endpunkt; Docker verwendet den Sidecar auf Port `9223`. | | `CHATGPT_WEB_CODEX_USE_CDP_PROFILE` | _(അൺസെറ്റ് — ഓഫ്)_ | `open-sse/vendor/codex-chatgpt-web/persistent-cdp-context.ts` | ഓരോ ടേണിനും ഒരു ഒറ്റപ്പെട്ട സന്ദർഭത്തിനുപകരം, ബാഹ്യമായി കൈകാര്യം ചെയ്യുന്ന, സൈൻ ഇൻ ചെയ്തിരിക്കുന്ന ബ്രൗസർ പ്രൊഫൈലിൻ്റെ നിലവിലുള്ള ChatGPT പേജ് വീണ്ടും ഉപയോഗിക്കുന്നതിന് `1` (ഒരു CDP എൻഡ്പോയിൻ്റ് കോൺഫിഗർ ചെയ്തത്) ആയി സജ്ജീകരിക്കുക; 1-ൽ കൺകറൻ്റ് ChatGPT ടാബുകളും ക്യാപ്സ് ചെയ്യുന്നു. ഡിഫോൾട്ടായി ഓഫ്. [സ്ഥിരമായ CDP പ്രൊഫൈൽ](../guides/CHATGPT-WEB-PERSISTENT-CDP.md) കാണുക. | | `CDP_PROXY_TOKEN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | Wenn gesetzt, muss jede Anfrage and den 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` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/chatgpt-web-codex.ts` | ഗ്ലോബൽ ഓപ്പൺഎഐ-ടണൽ-ഐഡി ഫോർ ലോക്കൽ കോഡെക്സ്-ടൂൾ-റണ്ടൻ. | | `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/executors/chatgpt-web-codex.ts` | ഗ്ലോബലർ ടണൽ റൺടൈം-കീ; രേഖകൾ ausgeben ലെ niemals. | | `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | Exakter പേര് des neu erstelten ChatGPT-Custom-Connectors für die MCP-Brücke. | | `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | Dediziertes Verzeichnis für Browser-, Broker- und Tunnelzustand. | | `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | Bei `1` werden ബ്രൗസർ-ഡയഗ്നോസ്ബിൽഡർ ആൻഡ് ജെഡെം ചെക്ക് പോയിൻ്റ് erfasst. | | `CODEX_CHATGPT_WEB_LAUNCHER` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Optionaler absoluter Pfad zu einem dauerhaften Launcher-Binary. | | `CODEX_CHATGPT_WEB_BUN` | _(യാന്ത്രികമായി കണ്ടുപിടിക്കുക)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Optionaler absoluter Pfad zum Bun-Runtime-Binary. | | `CODEX_WEB_GPT_BUN` | _(സജ്ജീകരിച്ചിട്ടില്ല)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | ലെഗസി-ഫാൾബാക്ക് ഫർ `CODEX_CHATGPT_WEB_BUN`; neue സെറ്റപ്പുകൾ വെർവെൻഡൻ ഡെൻ കാനോനിഷെൻ നെമെൻ. | --- ## OmniConductor പാലം OmniConductor ഹബ് ടാസ്ക്കുകൾ പ്രാദേശിക A2A TaskManager (`src/lib/conductor/`) ലേക്ക് പ്രതിഫലിപ്പിക്കുന്ന ദീർഘകാല SSE ഉപഭോക്താവ്. ഓപ്റ്റ്-ഇൻ — `CONDUCTOR_HUB_URL` സജ്ജമാക്കുമ്പോൾ മാത്രമേ പാലം ആരംഭിക്കൂ. സെർവർ സൈഡ് മാത്രം: ഹബ് ടോക്കൺ ഒരിക്കലും ബ്രൗസറിൽ എത്തരുത്. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------ | ----------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | `CONDUCTOR_HUB_URL` | _(ശൂന്യം)_ | `src/lib/conductor/boot.ts` | OmniConductor ഹബിൻ്റെ അടിസ്ഥാന URL (ഉദാ `http://127.0.0.1:7910`). സജ്ജീകരിക്കാത്ത = ബ്രിഡ്ജ് പ്രവർത്തനരഹിതമാക്കി. | | `CONDUCTOR_HUB_TOKEN` | _(ശൂന്യം)_ | `src/lib/conductor/boot.ts` | SSE ഫീഡ് — യുടെ ഹബ് ക്രെഡൻഷ്യൽ, ഹബിൽ ഒരു `spokesperson` -kind പിയർ പുറപ്പെടുവിക്കുന്നു (`POST /v1/peers`, അഡ്മിൻ). | | `CONDUCTOR_ORCHESTRATOR_TOKEN` | _(ശൂന്യം)_ | `src/lib/conductor/hubProxy.ts` | ഇൻബൗണ്ട് A2A→ ഹബ് ടാസ്ക് ഡെലിഗേഷൻ്റെ (`POST /v1/tasks`) ക്രെഡൻഷ്യൽ; സജ്ജീകരിക്കാത്തപ്പോൾ `CONDUCTOR_HUB_TOKEN` ലേക്ക് മടങ്ങുന്നു. | | `CONDUCTOR_SPOKESPERSON_URL` | `http://127.0.0.1:7920` | `src/lib/conductor/faroProxy.ts` | ഡാഷ്ബോർഡ് ചാറ്റ് പ്രോക്സി (`/api/conductor/ask`) ന് പിന്നിലുള്ള വക്താവിൻ്റെ (ഫാരോ) സേവനത്തിൻ്റെ അടിസ്ഥാന URL. | ### ക്വാട്ട-അറിയൽ ഷെഡ്യൂളിംഗ് പ്രീ-അഭ്യർത്ഥന ടോക്കൺ-ബജറ്റ് പരിശോധനകൾക്കായി `open-sse/services/combo.ts`, `src/lib/quota/quotaScheduler.ts` എന്നിവ ഉപയോഗിക്കുന്നു. ഓപ്റ്റ്-ഇൻ — ഡിഫോൾട്ട് റൂട്ടിംഗ് സ്വഭാവം സജ്ജീകരിക്കാത്തപ്പോൾ മാറ്റമില്ല. | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ---------------------------------- | ----------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `OMNIROUTE_QUOTA_AWARE_ROUTING` | `0` | `open-sse/services/combo.ts` | `1` ചെയ്യുമ്പോൾ, ഓരോ വിൻഡോ ടോക്കൺ ബജറ്റ് (`rateLimitOverrides.tpm`, ടേബിൾ `provider_quota_state`) അയയ്ക്കുന്നതിന് മുമ്പ് കണക്കാക്കിയ അഭ്യർത്ഥന ചെലവ് താങ്ങാൻ കഴിയാത്ത കണക്ഷനുകൾ ഒഴിവാക്കുക. ബഡ്ജറ്റ് കോൺഫിഗർ ചെയ്യാത്തപ്പോൾ പരാജയം-ഓപ്പൺ ചെയ്യുക. | | `OMNIROUTE_ESTIMATOR_CALIBRATION` | _(ഓൺ)_ | `open-sse/services/estimatorCalibration.ts` | കോൺടെക്സ്റ്റ്-ഗാർഡ് ടോക്കൺ എസ്റ്റിമേറ്ററിൻ്റെ (#14931) ഫീഡ്ബാക്ക് കാലിബ്രേഷൻ: ഓരോ (ദാതാവ്, `usage.prompt_tokens` EMA എസ്റ്റിമേറ്റ്, 0.15–2.0 വരെ ക്ലാമ്പ് ചെയ്തിരിക്കുന്നു, മെമ്മറിയിൽ മാത്രം. `off`, `0` അല്ലെങ്കിൽ `false` റെക്കോർഡിംഗും ആപ്ലിക്കേഷനും പ്രവർത്തനരഹിതമാക്കുന്നു. | | `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | `xai-oauth` (`xao`), `grok-cli` ഇമേജ് റൂട്ടുകൾ രജിസ്റ്റർ ചെയ്യുന്നു. അതേ പേരിലുള്ള ഡാഷ്ബോർഡ് ഫീച്ചർ ഫ്ലാഗ്; ഒരു DB അസാധുവാക്കൽ ഈ മൂല്യത്തെ മറികടക്കുന്നു. | ## മോഡൽ സിൻക്രൊണൈസേഷൻ ഡയഗ്നോസ്റ്റിക്സ് | വേരിയബിൾ | സ്ഥിരസ്ഥിതി | ഉറവിട ഫയൽ | വിവരണം | | ------------------------------ | ----------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `OMNIROUTE_MODEL_SYNC_TIMINGS` | `0` | `src/lib/providerModels/modelSyncTimings.ts` | മോഡൽ സിൻക്രൊണൈസേഷൻ സമയത്ത് ഫേസ് ടൈമിംഗ്, ജനറേറ്റഡ് അഭ്യർത്ഥന ID, ഫേസ് success/error ഫലങ്ങൾ എന്നിവ രേഖപ്പെടുത്താൻ `1` ആയി സജ്ജീകരിക്കുക. മറ്റെല്ലാ മൂല്യങ്ങൾക്കും പ്രവർത്തനരഹിതമാക്കി. ലോഗുകൾ അഭ്യർത്ഥന, അക്കൗണ്ട്, കാറ്റലോഗ്, പിശക് പേലോഡുകൾ എന്നിവ ഒഴിവാക്കുന്നു. | ## ലോക്കൽ OpenCode മീഡിയ-വിശകലന ഉപകരണം `scripts/cli/omniroute-media-mcp.mjs` ഉപയോഗിക്കുന്നു. ലോക്കൽ ടൂൾ പ്രോസസ് എൻവയോൺമെന്റിൽ ഇവ സജ്ജീകരിക്കുക. | വേരിയബിൾ | ഡിഫോൾട്ട് | വിവരണം | | -------------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `OMNIROUTE_MEDIA_CONFIG` | `$XDG_CONFIG_HOME/opencode/opencode.json` (or `~/.config/opencode/opencode.json`) | മീഡിയാ ടൂളും ഇൻസ്റ്റാളറും വായിക്കുന്ന OpenCode കോൺഫിഗറേഷൻ. | | `OMNIROUTE_MEDIA_PROVIDER` | `omniroute` | മീഡിയാ ടൂൾ OpenCode കോൺഫിഗറേഷനിൽ നിന്ന് വായിക്കുന്ന പ്രൊവൈഡർ എൻട്രി. | | `OMNIROUTE_MEDIA_MODEL` | `auto` | മീഡിയാ ടൂൾ സമർപ്പിക്കുന്ന മോഡൽ. ഇതിന്റെ പ്രൊവൈഡർ അഭ്യർത്ഥിച്ച മീഡിയാ തരങ്ങളെ പിന്തുണയ്ക്കണം. | | `OMNIROUTE_MEDIA_API_KEY` | Configured provider API key or its environment reference | ഓപ്ഷണൽ ക്രെഡൻഷ്യൽ ഓവർറൈഡ്. ഇത് ലോക്കൽ പ്രോസസ് എൻവയോൺമെന്റിൽ സൂക്ഷിക്കുക; ഒരിക്കലും commit ചെയ്യരുത്. |