# 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) · 🇰🇷 [ko](../../../ko/docs/reference/ENVIRONMENT.md) · 🇱🇹 [lt](../../../lt/docs/reference/ENVIRONMENT.md) · 🇱🇻 [lv](../../../lv/docs/reference/ENVIRONMENT.md) · 🇮🇳 [ml](../../../ml/docs/reference/ENVIRONMENT.md) · 🇮🇳 [mr](../../../mr/docs/reference/ENVIRONMENT.md) · 🇲🇾 [ms](../../../ms/docs/reference/ENVIRONMENT.md) · 🇲🇹 [mt](../../../mt/docs/reference/ENVIRONMENT.md) · 🇲🇲 [my](../../../my/docs/reference/ENVIRONMENT.md) · 🇳🇵 [ne](../../../ne/docs/reference/ENVIRONMENT.md) · 🇳🇱 [nl](../../../nl/docs/reference/ENVIRONMENT.md) · 🇳🇴 [no](../../../no/docs/reference/ENVIRONMENT.md) · 🇮🇳 [or](../../../or/docs/reference/ENVIRONMENT.md) · 🇮🇳 [pa](../../../pa/docs/reference/ENVIRONMENT.md) · 🇵🇭 [phi](../../../phi/docs/reference/ENVIRONMENT.md) · 🇵🇱 [pl](../../../pl/docs/reference/ENVIRONMENT.md) · 🇵🇹 [pt](../../../pt/docs/reference/ENVIRONMENT.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/ENVIRONMENT.md) · 🇷🇴 [ro](../../../ro/docs/reference/ENVIRONMENT.md) · 🇷🇺 [ru](../../../ru/docs/reference/ENVIRONMENT.md) · 🇱🇰 [si](../../../si/docs/reference/ENVIRONMENT.md) · 🇸🇰 [sk](../../../sk/docs/reference/ENVIRONMENT.md) · 🇸🇮 [sl](../../../sl/docs/reference/ENVIRONMENT.md) · 🇷🇸 [sr](../../../sr/docs/reference/ENVIRONMENT.md) · 🇸🇪 [sv](../../../sv/docs/reference/ENVIRONMENT.md) · 🇰🇪 [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`
> ಇದನ್ನು commit ಮಾಡುವಾಗ ಮತ್ತು CI ನಲ್ಲಿ ಜಾರಿಗೊಳಿಸುತ್ತದೆ. ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಚರಾಂಶವೊಂದನ್ನು ಬಿಟ್ಟುಬಿಡಲು, ಅದನ್ನು
> `scripts/check/check-env-doc-sync.mjs` ಒಳಗಿನ allowlist ಗೆ ಸೇರಿಸಿ.
---
## ವಿಷಯ ಸೂಚಿ
- [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. URLಗಳು ಮತ್ತು ಕ್ಲೌಡ್ ಸಿಂಕ್](#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. ಪೂರೈಕೆದಾರರ User-Agent ಅತಿಕ್ರಮಣಗಳು](#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. ಮಾದರಿ ಸಿಂಕ್ (Dev)](#19-model-sync-dev)
- [20. ಪೂರೈಕೆದಾರ-ನಿರ್ದಿಷ್ಟ ಸೆಟ್ಟಿಂಗ್ಗಳು](#20-provider-specific-settings)
- [21. ಪ್ರಾಕ್ಸಿ ಆರೋಗ್ಯ](#21-proxy-health)
- [22. ಡೀಬಗ್ ಮಾಡುವುದು](#22-debugging)
- [23. GitHub ಏಕೀಕರಣ](#23-github-integration)
- [24. Skills ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ (v3.8.0+)](#24-skills-sandbox-v380)
- [27. Radar ಫೀಡ್ (ಸ್ವಯಂ-ಹೋಸ್ಟಿಂಗ್)](#27-radar-feed-self-hosting)
- [ನಿಯೋಜನೆ ಸನ್ನಿವೇಶಗಳು](#deployment-scenarios)
- [ಲೆಕ್ಕಪರಿಶೋಧನೆ: ತೆಗೆದುಹಾಕಲಾದ / ನಿಷ್ಕ್ರಿಯ ಚರಾಂಶಗಳು](#audit-removed--dead-variables)
---
## 1. ಅಗತ್ಯವಿರುವ ರಹಸ್ಯಗಳು
**ಹೌದು** ಎಂದು ಗುರುತಿಸಲಾದ, ಆದರೆ ಹೊಂದಿಸದ ರಹಸ್ಯಗಳು ಮೊದಲ ರನ್ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚನೆಯಾಗುತ್ತವೆ (`JWT_SECRET`, `API_KEY_SECRET`) ಮತ್ತು ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿನ `server.env` ಗೆ ಉಳಿಸಲ್ಪಡುತ್ತವೆ — ಆ ಡೈರೆಕ್ಟರಿ ತಾತ್ಕಾಲಿಕವಾಗಿದ್ದರೆ ಅವುಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೊಂದಿಸಿ. ಇದಕ್ಕೆ ಹೊರತಾದದ್ದು `OMNIROUTE_WS_BRIDGE_SECRET`: ಇದನ್ನು `server.env` ಗೆ ಉಳಿಸಲಾಗುವುದಿಲ್ಲ — ಸರ್ವರ್ ಪ್ರವೇಶ ಬಿಂದುಗಳು ಪ್ರತಿ ಬೂಟ್ಗೆ ಒಂದು ತಾತ್ಕಾಲಿಕ ಮೌಲ್ಯವನ್ನು ರಚಿಸುತ್ತವೆ, ಅದನ್ನು ಪ್ರಕ್ರಿಯೆಯೊಳಗಿನ ಬ್ರಿಡ್ಜ್ ಮಾತ್ರ ಬಳಸಬಲ್ಲದು, ಆದ್ದರಿಂದ ಬಾಹ್ಯ ಬ್ರಿಡ್ಜ್ ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಇದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೊಂದಿಸುವುದು ಅಗತ್ಯ.
| ವೇರಿಯಬಲ್ | ಅಗತ್ಯವಿದೆ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------- | -------------------------- | --------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `JWT_SECRET` | **ಹೌದು** | _(ಯಾವುದೂ ಇಲ್ಲ)_ | `src/lib/auth` | ಎಲ್ಲಾ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಸೆಷನ್ ಕುಕಿಗಳಿಗೆ (JWT) ಸಹಿ ಮಾಡುತ್ತದೆ/ಪರಿಶೀಲಿಸುತ್ತದೆ. `openssl rand -base64 48` ಬಳಸಿ ರಚಿಸಿ. |
| `API_KEY_SECRET` | **ಹೌದು** | _(ಯಾವುದೂ ಇಲ್ಲ)_ | `src/lib/db/apiKeys.ts` | SQLite ನಲ್ಲಿ ನಿಷ್ಕ್ರಿಯ ಸ್ಥಿತಿಯಲ್ಲಿರುವ API ಕೀ ಮೌಲ್ಯಗಳಿಗಾಗಿ AES ಎನ್ಕ್ರಿಪ್ಶನ್ ಕೀ. `openssl rand -hex 32` ಬಳಸಿ ರಚಿಸಿ. |
| `INITIAL_PASSWORD` | ಇಲ್ಲ | _(ಹೊಂದಿಸಿಲ್ಲ)_ | `src/lib/auth/managementPassword.ts` | ಇನ್ನೂ ಯಾವುದೇ ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಲ್ಪಟ್ಟಿರದೆ ಇರುವಾಗ ಪ್ರಾರಂಭದ ಸಮಯದಲ್ಲಿ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ; ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಿದ ನಂತರ ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. npm ಮತ್ತು ಸೋರ್ಸ್ ಸ್ಥಾಪನೆಗಳು `.env.example` ಅನ್ನು `.env` ಗೆ ನಕಲಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಅವು ಅದರ ಸಾರ್ವಜನಿಕವಾಗಿ ತಿಳಿದ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ `CHANGEME` ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತವೆ: ಮೊದಲ ಬೂಟ್ಗೆ ಮೊದಲು ಅದನ್ನು ಬದಲಾಯಿಸಿ, ಅಥವಾ ಆ `.env` ನಲ್ಲಿ `INITIAL_PASSWORD=` (ಖಾಲಿ) ಎಂದು ಹೊಂದಿಸಿ, ಹೊಂದಿಸದ ಮೌಲ್ಯ (ಡಾಕರ್ ಇಮೇಜ್ನ ಡೀಫಾಲ್ಟ್) ಮಾಡುವಂತೆಯೇ, ಮೊದಲ ಭೇಟಿಯಲ್ಲಿ ಸೆಟಪ್ ವಿಝಾರ್ಡ್ನಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ರಚಿಸಿ. ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಡ್ಯಾಶ್ಬೋರ್ಡ್ → ಸೆಟ್ಟಿಂಗ್ಗಳು → ಭದ್ರತೆ ಮೂಲಕ ಬದಲಾಯಿಸಿ, ಅಥವಾ `DATA_DIR` ಅನ್ನು ಸರ್ವರ್ನ ಡೇಟಾ ಡೈರೆಕ್ಟರಿಗೆ ಹೊಂದಿಸಿಕೊಂಡು `omniroute reset-password` (`node bin/reset-password.mjs` ಸೋರ್ಸ್ ಚೆಕ್ಔಟ್ನಲ್ಲಿ) ಅನ್ನು ಚಲಾಯಿಸಿ. |
| `OMNIROUTE_WS_BRIDGE_SECRET` | **ಹೌದು** (ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ) | _(ಹೊಂದಿಸಿಲ್ಲ)_ | `src/app/api/internal/codex-responses-ws/route.ts` | ಆಂತರಿಕ Codex Responses WebSocket ಬ್ರಿಡ್ಜ್ಗಾಗಿ ಹಂಚಿಕೆಯ ರಹಸ್ಯ. Electron/ಬ್ರೌಸರ್ WS ರಿಲೇ ಮತ್ತು OmniRoute ನಡುವಿನ ಬ್ರಿಡ್ಜ್ ವಿನಂತಿಗಳನ್ನು ದೃಢೀಕರಿಸುತ್ತದೆ. ⚠️ **ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ ಅಗತ್ಯವಿದೆ — ಇದನ್ನು ಹೊಂದಿಸದಿದ್ದಾಗ, ಎಲ್ಲಾ 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` | ವಿಶ್ವಾಸಾರ್ಹ ಪಿಯರ್-IP ಸ್ಟ್ಯಾಂಪ್ OmniRoute ನ ಸ್ವಂತ HTTP ಸರ್ವರ್ನಿಂದ (`scripts/dev/peer-stamp.mjs`) ಬಂದಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸುವ ಪ್ರತಿ-ಪ್ರಕ್ರಿಯೆಯ ರಹಸ್ಯ. ಸ್ಟ್ಯಾಂಪ್ ಈ ಟೋಕನ್ ಹೊಂದಿರುವಾಗ ಮಾತ್ರ authz ಮಿಡಲ್ವೇರ್ ವಿನಂತಿಯ ಸ್ಥಳೀಯತೆಯನ್ನು (LOCAL_ONLY ರೂಟ್ಗಳ ಲೂಪ್ಬ್ಯಾಕ್/LAN ಗೇಟಿಂಗ್) ನಂಬುತ್ತದೆ. ಪ್ರತಿ ಬೂಟ್ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ — ಹೊಂದಿಸದೆ ಬಿಡಿ; ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲೇಬೇಕಾದ ಬಹು-ಪ್ರಕ್ರಿಯೆ ಸೆಟಪ್ಗಳಿಗೆ ಮಾತ್ರ ಅದನ್ನು ಸ್ಥಿರಗೊಳಿಸಿ. |
| `OMNIROUTE_TRUSTED_PROXIES` | ಇಲ್ಲ | _(ಹೊಂದಿಸಿಲ್ಲ)_ | `scripts/dev/peer-stamp.mjs` | IP ಅನುಮತಿ/ನಿರಾಕರಣೆ ಪಟ್ಟಿಯು ನಂಬಬಹುದಾದ reverse proxy ಗಳ `X-Forwarded-For` / `X-Real-IP` ಗಾಗಿ ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ IP ಗಳು ಅಥವಾ CIDR ಶ್ರೇಣಿಗಳು; ಯಾವಾಗಲೂ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿರುವ ಲೂಪ್ಬ್ಯಾಕ್, ಖಾಸಗಿ-ನೆಟ್ವರ್ಕ್ ವಿಳಾಸಗಳು ಮತ್ತು Cloudflare ಎಡ್ಜ್ಗಳಿಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ ಇವು ಅನ್ವಯಿಸುತ್ತವೆ. ಬೇರೆ ಯಾವುದೇ ಸಾರ್ವಜನಿಕ ವಿಳಾಸದಲ್ಲಿರುವ proxy ಗೆ ಮಾತ್ರ ಇದು ಅಗತ್ಯ; ಇಲ್ಲದಿದ್ದರೆ ಫಿಲ್ಟರ್ ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದು ಆ proxy ಯ ಸ್ವಂತ ವಿಳಾಸವನ್ನೇ. |
### ರಚನಾ ಕಮಾಂಡ್ಗಳು
```bash
# ಎಲ್ಲಾ ನಾಲ್ಕು ರಹಸ್ಯಗಳನ್ನು ಒಂದೇ ಬಾರಿಗೆ ರಚಿಸಿ:
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` | ಪರೀಕ್ಷೆ/ಮೌಲ್ಯಮಾಪನದ DATA_DIR ರಕ್ಷಕಕ್ಕೆ ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ಮಾರ್ಗ (#10428). `DATA_DIR` ಇಲ್ಲದ ಪರೀಕ್ಷೆಗಳು ಮತ್ತು Node 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` | pack-artifact ಮೂಲಸ್ಥಾನ ರಕ್ಷಕವು build SHA ಅನ್ನು ಯಾವುದರ ವಿರುದ್ಧ ಪರಿಶೀಲಿಸಬೇಕು ಎಂಬುದನ್ನು ಸೂಚಿಸುವ ref (#10427). |
| `OMNIROUTE_ALLOW_CANARY_BUILD` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `scripts/build/buildProvenance.ts` | release line ನಲ್ಲಿ SHA ಇಲ್ಲದ build ಅನ್ನು ಪ್ಯಾಕ್ ಮಾಡಲು ಅನುಮತಿಸಲು ಇದನ್ನು `1` ಗೆ ಹೊಂದಿಸಿ; ರಕ್ಷಕವನ್ನು ವಿಫಲಗೊಳಿಸುವ ಬದಲು ಅದನ್ನು ಉದ್ದೇಶಪೂರ್ವಕ canary ಎಂದು ದಾಖಲಿಸಲಾಗುತ್ತದೆ (#10427). |
| `OMNIROUTE_SMOKE_API_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `scripts/ops/deploy-canary.mjs` | canary-deploy smoke ಪ್ರೋಬ್ಗಾಗಿ API ಕೀ; ಇದನ್ನು `/v1/chat/completions` ನಲ್ಲಿ `Authorization: Bearer` ಆಗಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಇದನ್ನು deploy ಸ್ಕ್ರಿಪ್ಟ್ ಮಾತ್ರ ಬಳಸುತ್ತದೆ (#10429), ಸರ್ವರ್ ಎಂದಿಗೂ ಬಳಸುವುದಿಲ್ಲ. ಇದು opt-in CLI smoke harness ನ `OMNIROUTE_SMOKE_*` ವೇರಿಯಬಲ್ಗಳಿಗೆ (`RUN_CLI_SMOKE=1`, `tests/integration/upstream-cli-smoke.int.test.ts` ನಲ್ಲಿನ `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS`) ಸಂಬಂಧಿಸಿಲ್ಲ — [CLI ಇಂಟಿಗ್ರೇಶನ್ಗಳು → ನೈಜ smoke sweep](../guides/CLI-INTEGRATIONS.md) ನೋಡಿ. |
| `OMNIROUTE_BUILDING` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/buildPhase.ts` | build-ಹಂತದ ಸಂಕೇತ (#10060): `scripts/build/build-next-isolated.mjs` ಇದನ್ನು `1` ಗೆ ಹೊಂದಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಾರಂಭಿಸಲಾದ ಪ್ರತಿಯೊಂದು build worker ಇದನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ DB ಲೇಯರ್ native better-sqlite3 addon ಅನ್ನು ಲೋಡ್ ಮಾಡುವ ಬದಲು ಏನೂ ಮಾಡದ stub ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ (ಇದು ನಿರ್ಗಮಿಸುವಾಗ worker ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸುತ್ತದೆ). ಚಾಲನೆಯಲ್ಲಿರುವ ಸರ್ವರ್ಗೆ ಇದನ್ನು ಎಂದಿಗೂ ಹೊಂದಿಸಲಾಗುವುದಿಲ್ಲ. |
| `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | ಅಸಾಮಾನ್ಯವಾಗಿ vendor ಮಾಡಲಾದ tree ಗಳಿಗಾಗಿ ಐಚ್ಛಿಕ native-dependency prebuild ಪರಿಶೀಲನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡಲು ಇದನ್ನು `1` ಗೆ ಹೊಂದಿಸಿ. ಇದರಿಂದ ಕಾಣೆಯಾಗಿರುವ dependency ಅನ್ನು build ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ; native dependency ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಒದಗಿಸಿದಾಗ ಮಾತ್ರ ಬಳಸಿ. |
| `OMNIROUTE_DATA_DIR` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/executors/promptql/threadSticky.ts` | `DATA_DIR` ಗಾಗಿ **ಪರ್ಯಾಯ fallback alias**; `DATA_DIR` ಹೊಂದಿಸದಿದ್ದಾಗ ಮಾತ್ರ ಇದನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ. PromptQL executor ನ ಡಿಸ್ಕ್ನಲ್ಲಿರುವ thread-sticky session cache (`
/promptql-thread-sessions.json`) ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಬಳಸಲಾಗುತ್ತದೆ; ಯಾವುದೇ var ಹೊಂದಿಸದಿದ್ದರೆ, cache ಮೆಮೊರಿಯಲ್ಲಿ ಮಾತ್ರ ಉಳಿಯುತ್ತದೆ (ಮರುಪ್ರಾರಂಭಗಳಾದಾಗ ಶಾಶ್ವತವಾಗಿ ಉಳಿಯುವುದಿಲ್ಲ). |
| `OMNIROUTE_PLUGINS_DIR` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/plugins/scanner.ts` | **runtime plugin scanner** ಓದುವ ಡೈರೆಕ್ಟರಿ — ಮತ್ತು plugin manager ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವ ಮೂಲ ಡೈರೆಕ್ಟರಿ — ಇದು home ನಿಂದ ಪಡೆದ ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ (#11827). scan path ಅನ್ನು ಸ್ಥಳಾಂತರಿಸುವುದಕ್ಕಾಗಿ ಮಾತ್ರ HOME ಅನ್ನು ಬದಲಿಸುವ ಬದಲು, Docker/K8s ನಲ್ಲಿ bind-mount ಮಾಡಿದ plugin tree ಕಡೆಗೆ ಇದನ್ನು ಸೂಚಿಸಿ (HOME ಇತರ ಪ್ರತಿಯೊಂದು home-relative ನಡವಳಿಕೆಯನ್ನೂ ನಿಯಂತ್ರಿಸುತ್ತದೆ). ಹೊಂದಿಸದಿದ್ದರೆ = `~/.omniroute/plugins`, ಅಥವಾ process ಯಾವುದೇ home ಅನ್ನು export ಮಾಡದಿದ್ದಾಗ `/tmp/.omniroute/plugins` — ಈ ವೇರಿಯಬಲ್ ನಿವಾರಿಸುವ ಮೌನ non-discovery ಇದು. ಪರಿಹರಿಸಲಾದ ಡೈರೆಕ್ಟರಿಯನ್ನು startup ಸಮಯದಲ್ಲಿ ಒಮ್ಮೆ, ಗೆದ್ದ input ಜೊತೆಗೆ `scanner.dir_resolved` ಎಂದು log ಮಾಡಲಾಗುತ್ತದೆ. ಸರ್ವರ್ ಭಾಗಕ್ಕೆ ಮಾತ್ರ: CLI command plugin ಗಳು ತಮ್ಮದೇ ಆದ `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` ಆಗಿರುವಾಗ, ನಿಯತ/ಬರವಣಿಗೆ-ಪೂರ್ವ SQLite ಫೈಲ್ ಬ್ಯಾಕಪ್ಗಳನ್ನು (models.dev ಬೆಲೆ ಉಳಿಸುವಿಕೆ/ತೆರವುಗೊಳಿಸುವಿಕೆ, ಸೆಟ್ಟಿಂಗ್ಗಳ ಬರವಣಿಗೆಗಳು) ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಹಸ್ತಚಾಲಿತ ಮತ್ತು ಮರುಸ್ಥಾಪನೆ-ಪೂರ್ವ ಬ್ಯಾಕಪ್ಗಳು ಇನ್ನೂ ನಡೆಯುತ್ತವೆ. ಇದು ಮೈಗ್ರೇಶನ್ ರನ್ನರ್ನ ಕಡ್ಡಾಯ ಬಾಳಿಕೆಬರುವ ಸುರಕ್ಷತಾ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಶಾಶ್ವತ DB ಗಾಗಿನ ಸಾಮೂಹಿಕ-ಮೈಗ್ರೇಶನ್ ರಕ್ಷಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದಿಲ್ಲ. ಹಸ್ತಚಾಲಿತವಲ್ಲದ ಬ್ಯಾಕಪ್ಗಳನ್ನು ಪ್ರತಿ 60 ನಿಮಿಷಗಳಿಗೆ ಗರಿಷ್ಠ ಒಂದಕ್ಕೆ ಮಿತಿಗೊಳಿಸಲಾಗುತ್ತದೆ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ನ **ಸೆಟ್ಟಿಂಗ್ಗಳು → ಸಂಗ್ರಹಣೆ** ಮೂಲಕ ನಿಯತ ಸ್ವಯಂ-ಬ್ಯಾಕಪ್ ಅನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು. |
| `OMNIROUTE_CRYPT_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/db/encryption.ts` | `STORAGE_ENCRYPTION_KEY` ಗಾಗಿನ **ಹಳೆಯ ಅಲಿಯಾಸ್**. ಪ್ರಾಥಮಿಕ ವೇರಿಯಬಲ್ ಇಲ್ಲದಿದ್ದಾಗ ಪರ್ಯಾಯವಾಗಿ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_API_KEY_BASE64` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/db/encryption.ts` | ಪರ್ಯಾಯವಾಗಿ ಸ್ವೀಕರಿಸಲಾಗುವ **ಹಳೆಯ ಅಲಿಯಾಸ್** (Base64-ಎನ್ಕೋಡ್ ಮಾಡಿದ ರೂಪ). ಬಳಸುವ ಮೊದಲು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೀಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/db/core.ts` | ಆವರ್ತಕ SQLite ಆರೋಗ್ಯ ಪರಿಶೀಲನೆಯ ಮಧ್ಯಂತರವನ್ನು (ms) ಅತಿಕ್ರಮಿಸಿ. ಹೊಂದಿಸದಿದ್ದಾಗ, ಡೀಫಾಲ್ಟ್ಗಳನ್ನು `NODE_ENV` ನಿಂದ ಪಡೆಯಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` | _(ತೆಗೆದುಹಾಕಲಾಗಿದೆ)_ | `src/lib/db/walMaintenance.ts` | **ತೆಗೆದುಹಾಕಲಾಗಿದೆ.** ಆವರ್ತಕ ಲೈವ್ `wal_checkpoint(TRUNCATE)` ಹಂಚಿಕೊಂಡ wal-index ಮ್ಯಾಪಿಂಗ್ ಅನ್ನು ಅಮಾನ್ಯಗೊಳಿಸಿ SIGBUS (#13973) ನೊಂದಿಗೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕ್ರ್ಯಾಶ್ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ಶೆಡ್ಯೂಲರ್ ಈಗ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಈ ವೇರಿಯಬಲ್ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ: ಧನಾತ್ಮಕ ಮೌಲ್ಯವು ಒಂದು ಬಾರಿಯ ಬಳಕೆತಪ್ಪಿಸುವಿಕೆ ಎಚ್ಚರಿಕೆಯನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ, ಆದರೆ `0` ಅಥವಾ ಹೊಂದಿಸದಿರುವುದು ಮೌನವಾಗಿರುತ್ತದೆ. WAL ಅನ್ನು PASSIVE ಚೆಕ್ಪಾಯಿಂಟ್ಗಳು (ಕೆಳಗೆ) ನಿರ್ವಹಿಸುತ್ತವೆ ಮತ್ತು ಸ್ಥಗಿತಗೊಳಿಸುವಿಕೆ ಚೆಕ್ಪಾಯಿಂಟ್ ಅದನ್ನು ಟ್ರಂಕೇಟ್ ಮಾಡುತ್ತದೆ. |
| `OMNIROUTE_WAL_PASSIVE_INTERVAL_MS` | `300000` (5m) | `src/lib/db/walMaintenance.ts` | ಆಗಾಗ್ಗೆ ನಡೆಯುವ `wal_checkpoint(PASSIVE)` ಮಧ್ಯಂತರವನ್ನು (ms) ಅತಿಕ್ರಮಿಸಿ. ಬಾಕಿ ಇರುವ WAL ಫ್ರೇಮ್ಗಳನ್ನು ಚಿಕ್ಕದಾಗಿರಿಸಿ, ಚೆಕ್ಪಾಯಿಂಟ್ಗಳು ವೇಗವಾಗಿರುವಂತೆ ಮತ್ತು ಸ್ಥಗಿತಗೊಳಿಸುವಿಕೆ ಟ್ರಂಕೇಶನ್ಗಳ ನಡುವೆ WAL ಫೈಲ್ ಮಿತಿಯೊಳಗಿರುವಂತೆ ಮಾಡುತ್ತದೆ. `0` ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `OMNIROUTE_WAL_GUARD_MAX_MB` | `256` | `src/lib/db/walMaintenance.ts` | PASSIVE ಟಿಕ್ಗೆ WAL ಫೈಲ್ ಈ ಗಾತ್ರಕ್ಕಿಂತ ದೊಡ್ಡದಿರುವುದು ಕಂಡುಬಂದಾಗ, ಮ್ಯಾಪ್ ಮಾಡಿದ wal-index ಅನ್ನು ಮರುಬರೆಯದೆ WAL ಮತ್ತೆ ಆರಂಭವಾಗುವಂತೆ `wal_checkpoint(RESTART)` ಅನ್ನು ರನ್ ಮಾಡಿ. ಲೈವ್ ಟ್ರಂಕೇಟ್-ಮೋಡ್ ಚೆಕ್ಪಾಯಿಂಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ (`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` ಗೆ ಹೊಂದಿಸಿ; ಇದರಿಂದ ಅನಿರ್ದಿಷ್ಟವಾಗಿ 503 ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ನೀಡುವ ಬದಲು ಮೇಲ್ವಿಚಾರಕವು (systemd `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` | ಅಂತಿಮ ಸ್ಥಿತಿಯಲ್ಲಿರುವ (ಪೂರ್ಣಗೊಂಡ/ವಿಫಲಗೊಂಡ/ರದ್ದುಗೊಂಡ/ಅವಧಿ ಮೀರಿದ) Batch API ಜಾಬ್ನ ಚೆಕ್ಪಾಯಿಂಟ್ಗಳು, ಉಲ್ಲೇಖಿತ ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್/ದೋಷ ಫೈಲ್ಗಳು ಮತ್ತು ಸಾಲನ್ನು ಅಳಿಸುವ ಮೊದಲು ಸ್ವಯಂಚಾಲಿತ ಸ್ವಚ್ಛತಾ ಸ್ವೀಪ್ ಉಳಿಸಿಕೊಳ್ಳುವ ದಿನಗಳ ಸಂಖ್ಯೆ. `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ ನಂತರವೇ ಇದು ಜಾರಿಗೆ ಬರುತ್ತದೆ; OpenAI ಯ ಸ್ವಂತ Batch API ಔಟ್ಪುಟ್ ಉಳಿಕೆ ಅವಧಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಆಪರೇಟರ್ ಪ್ರಚೋದಿಸುವ `DELETE /api/v1/batches/delete-completed` ರೂಟ್ ಮೇಲೆ ಇದು ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ; ವಿನ್ಯಾಸದ ಪ್ರಕಾರ ಅದು ಷರತ್ತುರಹಿತವಾಗಿಯೇ (ವಯಸ್ಸಿನ ಫಿಲ್ಟರ್ ಇಲ್ಲದೆ) ಇರುತ್ತದೆ. |
| `BATCH_AND_FILE_AUTO_CLEANUP_ENABLED` | `false` | `src/lib/db/cleanup.ts` | `true` ಆಗಿರುವಾಗ, ಸ್ವಯಂಚಾಲಿತ ಸ್ವಚ್ಛತಾ ಪ್ರಕ್ರಿಯೆಯು `OMNIROUTE_BATCH_RETENTION_DAYS` ಮೀರಿದ ಅಂತಿಮ ಸ್ಥಿತಿಯಲ್ಲಿರುವ Batch 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/ಹೆಡ್ಲೆಸ್ ಸ್ಥಾಪನೆಗಳಲ್ಲಿ ಉಪಯುಕ್ತವಾಗಿದೆ. |
| `OMNIROUTE_MIGRATIONS_DIR` | _(ಸ್ವಯಂ-ಪತ್ತೆ)_ | `src/lib/db/migrationRunner.ts` | ಮೈಗ್ರೇಶನ್ ರನ್ನರ್ ಸ್ಕ್ಯಾನ್ ಮಾಡುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಅತಿಕ್ರಮಿಸಿ. ಕಸ್ಟಮ್ ಬಿಲ್ಡ್ಗಳಲ್ಲಿ ಬಂಡಲ್ ಮಾಡಿದ ಮೈಗ್ರೇಶನ್ಗಳನ್ನು ಒದಗಿಸುವಾಗ ಉಪಯುಕ್ತವಾಗಿದೆ. |
| `OMNIROUTE_EXTRA_MIGRATIONS_DIRS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/db/migrationRunner/extraDirs.ts` | ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಪಾಥ್ ಡಿಲಿಮಿಟರ್ನಿಂದ ಬೇರ್ಪಡಿಸಿದ `namespace=dir` ನಮೂದುಗಳ ರೂಪದಲ್ಲಿರುವ ಹೆಚ್ಚುವರಿ ಮೈಗ್ರೇಶನ್ ಡೈರೆಕ್ಟರಿಗಳು (ಉದಾ. `ee=/opt/app/enterprise/db/migrations`). ಅಲ್ಲಿ ಕಂಡುಬರುವ ಫೈಲ್ಗಳನ್ನು `-` ರೂಪದಲ್ಲಿ ದಾಖಲಿಸಲಾಗುತ್ತದೆ; ಆದ್ದರಿಂದ ತನ್ನದೇ ಮೈಗ್ರೇಶನ್ಗಳನ್ನು ಒದಗಿಸುವ ವಿತರಣೆಯು ಅಪ್ಸ್ಟ್ರೀಮ್ ಸಂಖ್ಯಾತ್ಮಕ ಸ್ಲಾಟ್ಗಳೊಂದಿಗೆ ಎಂದಿಗೂ ಘರ್ಷಿಸುವುದಿಲ್ಲ. ದೋಷಪೂರಿತ ನಮೂದು, ಅಮಾನ್ಯ ನೇಮ್ಸ್ಪೇಸ್ ಅಥವಾ ಕಾಣೆಯಾದ ಡೈರೆಕ್ಟರಿಯು ಸ್ಕೀಮಾವನ್ನು ಮೌನವಾಗಿ ಬಿಟ್ಟುಬಿಡುವ ಬದಲು ಪ್ರಾರಂಭದ ವೇಳೆ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. |
| `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 ಸ್ಥಾಪನಾ ಟ್ರೀಗಳು ಮತ್ತು tarball), ಆದ್ದರಿಂದ ಇದು ಸಣ್ಣ tmpfsನಲ್ಲಿ ರನ್ ಆಗಬಾರದು — ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ ರನ್ನರ್ನಲ್ಲಿ `/tmp` ಎಂಬುದು 12 GB RAM-ಬೆಂಬಲಿತ tmpfs ಆಗಿದ್ದು, ಗೇಟ್ ಅದರ ಸಾಮರ್ಥ್ಯವನ್ನು ಮೀರಿಸಿ ಪ್ಯಾಕೇಜ್ ಅಪೂರ್ಣಗೊಳ್ಳುವಂತೆ ಮಾಡಿತು. |
| `OMNIROUTE_SPEND_FLUSH_INTERVAL_MS` | _(ಕೋಡ್ನಲ್ಲಿನ ಪೂರ್ವನಿಯೋಜಿತ ಮೌಲ್ಯ)_ | `src/lib/spend/batchWriter.ts` | ಬ್ಯಾಚ್ ಮಾಡಿದ ವೆಚ್ಚ/ಖರ್ಚು ರೈಟರ್ಗಾಗಿ ಫ್ಲಷ್ ಮಧ್ಯಂತರ (ms). ಕಡಿಮೆ ಮೌಲ್ಯಗಳು ಬರಹಗಳ ಒಗ್ಗೂಡಿಸುವಿಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತವೆ; ಹೆಚ್ಚಿನ ಮೌಲ್ಯಗಳು DB ಸಂಘರ್ಷವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತವೆ. |
| `OMNIROUTE_SPEND_MAX_BUFFER_SIZE` | _(ಕೋಡ್ನಲ್ಲಿನ ಪೂರ್ವನಿಯೋಜಿತ ಮೌಲ್ಯ)_ | `src/lib/spend/batchWriter.ts` | ಬಲವಂತದ ಫ್ಲಷ್ಗೆ ಮೊದಲು ಬಫರ್ ಮಾಡಬಹುದಾದ ವೆಚ್ಚ ನಮೂದುಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. ಹೆಚ್ಚಿನ-QPS ನಿಯೋಜನೆಗಳಲ್ಲಿ ಇದನ್ನು ಹೆಚ್ಚಿಸಿ; ಮಿತಿಗೊಳಿಸಿದ ಮೆಮೊರಿ ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿರುವಾಗ ಕಡಿಮೆ ಮಾಡಿ. |
| `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` ಎಂಬ ಹೆಸರಿನ ಫೈಲ್) ಸಂಪೂರ್ಣ ಪಾಥ್. ಹೊಂದಿಸದೆ ಇದ್ದರೆ, ಅಳವಡಿಸಿಕೊಂಡ ಫೈಲ್ನ ಪಕ್ಕದಲ್ಲಿ `.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]` ಪ್ರಕ್ರಿಯಾ-ಲಾಗ್ ಸಾಲಿನಲ್ಲಿ ಕ್ಲೈಂಟ್/ಎಗ್ರೆಸ್ IPಗಳು ಮತ್ತು ಖಾತೆ ಪ್ರಿಫಿಕ್ಸ್ ಅನ್ನು ಸೇರಿಸಲು `"true"` ಅಥವಾ `"1"` ಗೆ ಹೊಂದಿಸಿ. ಪ್ರಕ್ರಿಯಾ ಲಾಗ್ IPಗಳನ್ನು ಅಥವಾ ಖಾತೆ ಪ್ರಿಫಿಕ್ಸ್ ಅನ್ನು ಸೋರಿಕೆ ಮಾಡದಂತೆ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯವಾಗಿರಿಸಲಾಗಿದೆ. |
| `OMNIROUTE_DEBUG` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `bin/cli/commands/quota.mjs` | CLI ಕೋಟಾ ಕಮಾಂಡ್ಗಳಿಂದ ಪ್ರತಿ ವಿನಂತಿಯ ಸಮಯ ನಿರ್ಣಯ ಮಾಹಿತಿಯನ್ನು (`[omniroute] GET completed in Nms`) stderr ಗೆ ಮುದ್ರಿಸಲು `1` ಗೆ ಹೊಂದಿಸಿ. |
| `OMNIROUTE_HEALTHCHECK_PATH` | _(ಸ್ವಯಂ)_ | `scripts/dev/healthcheck.mjs` | ಕಂಟೇನರ್ ಆರೋಗ್ಯ ಪರಿಶೀಲನೆಯು ಪರೀಕ್ಷಿಸುವ ಸ್ಪಷ್ಟ ಪಥ. ಹೊಂದಿಸದಿದ್ದರೆ, ಪರೀಕ್ಷೆಯು ಅದನ್ನು `OMNIROUTE_BASE_PATH` ನಿಂದ ಪಡೆಯುತ್ತದೆ; ಇದನ್ನು ಹೊಂದಿಸುವುದರಿಂದ ಆಳವಾದ ಮೇಲ್ವಿಚಾರಣಾ ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_DEBUG_COMPLETION` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `bin/cli/commands/completion.mjs` | CLI ಶೆಲ್-ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ ಕ್ಯಾಶ್ ಪಥಗಳಿಂದ (ಓದುವಿಕೆ/ರಿಫ್ರೆಶ್/ಬರೆಯುವಿಕೆ) `[omniroute completion]` ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಗಳನ್ನು ಹೊರಸೂಸಲು ಯಾವುದೇ ಖಾಲಿಯಲ್ಲದ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸಿ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ — ಆ ಕ್ಯಾಶ್ಗಳು ಮೌನವಾಗಿ ವಿಫಲವಾಗುವುದರಿಂದ ಕಾಣೆಯಾದ/ದೋಷಪೂರಿತ ಕ್ಯಾಶ್ ಎಂದಿಗೂ ಟ್ಯಾಬ್-ಪೂರ್ಣಗೊಳಿಸುವಿಕೆಯನ್ನು ಹಾಳುಮಾಡುವುದಿಲ್ಲ. |
| `BATCH_RETRY_DURATION_MS` | `86400000` (24ಗಂ) | `open-sse/services/batchProcessor.ts` | ಪ್ರತ್ಯೇಕ ಬ್ಯಾಚ್ ಐಟಂಗಳಿಗೆ ಗರಿಷ್ಠ ಮರುಪ್ರಯತ್ನ ಅವಧಿ (ms). ಈ ಅವಧಿಯನ್ನು ಮೀರಿದ ಐಟಂಗಳನ್ನು ವಿಫಲವೆಂದು ಗುರುತಿಸಲಾಗುತ್ತದೆ. |
| `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | ಬ್ಯಾಚ್ ಐಟಂ ಮರುಪ್ರಯತ್ನಗಳಲ್ಲಿ ಘಾತೀಯ ಹಿಂಜರಿತದ ಮೂಲ ವಿಳಂಬ (ms). |
| `BATCH_BACKOFF_MAX_MS` | `3600000` (1ಗಂ) | `open-sse/services/batchProcessor.ts` | ಬ್ಯಾಚ್ ಐಟಂ ಮರುಪ್ರಯತ್ನಗಳ ನಡುವಿನ ಘಾತೀಯ ಹಿಂಜರಿತದ ಗರಿಷ್ಠ ಮಿತಿ (ms). |
| `BATCH_MAX_CONCURRENT` | `1` | `open-sse/services/batchProcessor.ts` | ಏಕಕಾಲದಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುವ ಬ್ಯಾಚ್ಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. ಥ್ರೂಪುಟ್ ಹೆಚ್ಚಿಸಲು ಇದನ್ನು ಏರಿಸಿ; ದರ-ಮಿತಿ ಮಿತಿಮೀರಿಕೆಗಳನ್ನು ತಪ್ಪಿಸಲು ಕಡಿಮೆಯಾಗಿಯೇ ಇರಿಸಿ. |
> [!IMPORTANT]
> ಈಗಿರುವ ಶಾಶ್ವತ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು, ಮೈಗ್ರೇಶನ್ ರನ್ನರ್ ಸಂಪೂರ್ಣವಾದ,
> ವಿಷಯ-ವಿಳಾಸಿತ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಅನ್ನು `DATA_DIR/db_backups/` ಅಡಿಯಲ್ಲಿ ಪ್ರಕಟಿಸುತ್ತದೆ. ಪ್ರಕಟಣೆಗೆ ಅದೇ ಫೈಲ್ಸಿಸ್ಟಮ್ನಲ್ಲಿ
> ಓವರ್ರೈಟ್ ಮಾಡದ ಹಾರ್ಡ್ ಲಿಂಕ್ಗಳನ್ನು ಹಾಗೂ ಬಾಳಿಕೆಬರುವ ಫೈಲ್ ಸಿಂಕ್ ಅನ್ನು ಬೆಂಬಲಿಸುವ ಫೈಲ್ಸಿಸ್ಟಮ್ ಅಗತ್ಯವಿದೆ. POSIX ಹೋಸ್ಟ್ಗಳಿಗೆ
> ಡೈರೆಕ್ಟರಿ ಸಿಂಕ್ ಕೂಡ ಅಗತ್ಯವಿದೆ; Windows ನಲ್ಲಿ Node ಡೈರೆಕ್ಟರಿ ಹ್ಯಾಂಡಲ್ಗಳನ್ನು ತಿರಸ್ಕರಿಸಬಹುದು, ಆದ್ದರಿಂದ OmniRoute
> ಪ್ರಕಟಿತ ಫೈಲ್ ಅನ್ನು ಫ್ಲಷ್ ಮಾಡಿ, ಡೈರೆಕ್ಟರಿ-ನಮೂದು ಸಿಂಕ್ ಅನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಉತ್ತಮ ಪ್ರಯತ್ನವಾಗಿ ಪರಿಗಣಿಸುತ್ತದೆ.
> ಮೌಂಟ್ ಮಾಡಲಾದ `DATA_DIR` ಈ ಖಾತರಿಗಳನ್ನು ಒದಗಿಸಲಾಗದಿದ್ದರೆ, ಮೈಗ್ರೇಶನ್ ಅನ್ವಯಿಸುವ ಮೊದಲು
> ಪ್ರಾರಂಭ ಪ್ರಕ್ರಿಯೆಯು ಸುರಕ್ಷಿತವಾಗಿ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. `DATA_DIR` ಅನ್ನು ಈ ಮೂಲ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಹೊಂದಿರುವ ವಾಲ್ಯೂಮ್ಗೆ ಸ್ಥಳಾಂತರಿಸಿ;
> ಮೈಗ್ರೇಶನ್ ಸುರಕ್ಷತೆಯನ್ನು ಬದಿಗೊತ್ತಲು `DISABLE_SQLITE_AUTO_BACKUP` ಬಳಸಬೇಡಿ.
### ಸನ್ನಿವೇಶಗಳು
| ಸನ್ನಿವೇಶ | ಸಂರಚನೆ |
| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **ಸ್ಥಳೀಯ ಅಭಿವೃದ್ಧಿ** | ಎಲ್ಲಾ ಪೂರ್ವನಿಯೋಜಿತ ಮೌಲ್ಯಗಳನ್ನು ಹಾಗೆಯೇ ಬಿಡಿ. DB `~/.omniroute/omniroute.db` ನಲ್ಲಿ ಇರುತ್ತದೆ. |
| **Docker** | `DATA_DIR=/data` + `/data` ನಲ್ಲಿ ವಾಲ್ಯೂಮ್ ಅನ್ನು ಮೌಂಟ್ ಮಾಡಿ. |
| **ಸ್ಥಿರ ಸಂಗ್ರಹದಲ್ಲಿರುವಾಗ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿರುವುದು** | `STORAGE_ENCRYPTION_KEY` ಅನ್ನು ಹೊಂದಿಸಿ + ಕೀಲಿಯ ಬ್ಯಾಕಪ್ಗಳನ್ನು ಇರಿಸಿಕೊಳ್ಳಿ! ಅದನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದು = ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದು. |
| **CI/ಪರೀಕ್ಷೆ** | `DATA_DIR=/tmp/omniroute-test` — ತಾತ್ಕಾಲಿಕ, ಎನ್ಕ್ರಿಪ್ಶನ್ ಅಗತ್ಯವಿಲ್ಲ. |
---
## 3. ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಪೋರ್ಟ್ಗಳು
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `PORT` | `20128` | `src/lib/runtime/ports.ts` | Dashboard UI ಮತ್ತು API ಎಂಡ್ಪಾಯಿಂಟ್ಗಳೆರಡಕ್ಕೂ ಪ್ರಾಥಮಿಕ ಪೋರ್ಟ್ (ಏಕ-ಪೋರ್ಟ್ ಮೋಡ್). |
| `OMNIROUTE_BASE_PATH` | _(ಖಾಲಿ = ರೂಟ್)_ | `next.config.mjs`, `scripts/docker/ensure-docker-base-path.mjs` | ರಿವರ್ಸ್ ಪ್ರಾಕ್ಸಿಯ ಹಿಂದೆ OmniRoute ಅನ್ನು ಒದಗಿಸಲು ಬಳಸುವ URL ಉಪಪಥ (`basePath` ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ; ದೃಢೀಕರಣ ಮರುನಿರ್ದೇಶನಗಳು basePath ಅನ್ನು ಪರಿಗಣಿಸುತ್ತವೆ). ಉದಾ. `/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` ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. ಬದಲಾಯಿಸಿದ ನಂತರ ಮರುನಿರ್ಮಿಸಿ (Next `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:` ಜೊತೆಗೆ ಮತ್ತು `X-Frame-Options` ಇಲ್ಲದೆ ಒದಗಿಸಲು ಇದನ್ನು `vscode` ಗೆ ಹೊಂದಿಸಿ; ಇದರಿಂದ VS Code Simple Browser ಅವುಗಳನ್ನು ರೆಂಡರ್ ಮಾಡಬಹುದು (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 ಅನ್ನು ಈ ಪ್ರತ್ಯೇಕ ಪೋರ್ಟ್ನಲ್ಲಿ ಒದಗಿಸುತ್ತದೆ. |
| `API_HOST` | `0.0.0.0` | `src/lib/runtime/ports.ts` | API ಪೋರ್ಟ್ಗಾಗಿ ಬೈಂಡ್ ವಿಳಾಸ. |
| `DASHBOARD_PORT` | _(ಹೊಂದಿಸಿಲ್ಲ)_ | `src/lib/runtime/ports.ts` | ಹೊಂದಿಸಿದಾಗ, Dashboard UI ಅನ್ನು ಈ ಪ್ರತ್ಯೇಕ ಪೋರ್ಟ್ನಲ್ಲಿ ಒದಗಿಸುತ್ತದೆ. |
| `OMNI_MAX_CONCURRENT_CONNECTIONS` | `0` _(ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ)_ | `src/sse/utils/backpressure.ts` | ಏಕಕಾಲದಲ್ಲಿ ಪ್ರಗತಿಯಲ್ಲಿರುವ ಚಾಟ್ ಸಂಪರ್ಕಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ; ಮಿತಿಯನ್ನು ಮೀರಿದ ವಿನಂತಿಗಳು `Retry-After` ಜೊತೆಗೆ `503` ಪಡೆಯುತ್ತವೆ. ಧನಾತ್ಮಕ ಪೂರ್ಣಾಂಕವು ರಕ್ಷಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ; ಹೊಂದಿಸದಿರುವುದು/`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 ಮೂಲ URLಗಳು. ಸ್ಪಷ್ಟವಾಗಿ ಅನುಮತಿಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾದ ಅಪ್ಸ್ಟ್ರೀಮ್ URLಗಳು ಮಾತ್ರ ಪೀರ್ ಮೆಟಾಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ; ಇತರ ಎಲ್ಲ ಪೂರೈಕೆದಾರರು ಬದಲಾಗದೆ ಉಳಿಯುತ್ತಾರೆ. |
| `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` ಅನ್ನೂ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ). |
| `LIVE_WS_ALLOWED_ORIGINS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/server/ws/liveServer.ts` | ಲೈವ್ WebSocket ತೆರೆಯಲು ಅನುಮತಿಸಲಾದ, ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಹೆಚ್ಚುವರಿ ಮೂಲಗಳು. ಲೂಪ್ಬ್ಯಾಕ್ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಮೂಲಗಳಿಗೆ ಈಗಾಗಲೇ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಅನುಮತಿ ಇದೆ. |
| `LIVE_WS_ALLOWED_HOSTS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/server/ws/liveServerAllowList.ts` | ಲೈವ್ WebSocket ಮೂಲಗಳಿಗಾಗಿ ಅನುಮತಿಸಲಾದ, ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಹೆಚ್ಚುವರಿ ಹೋಸ್ಟ್ ಹೆಸರುಗಳು. `LIVE_WS_ALLOWED_ORIGINS`ಗಿಂತ ಭಿನ್ನವಾಗಿ (ಪೂರ್ಣ ಮೂಲ URLಗಳು), ಇದು ಹೋಸ್ಟ್ ಭಾಗವನ್ನು ಮಾತ್ರ ಹೊಂದಿಸುತ್ತದೆ — LAN/Tailscale ಸೆಟಪ್ಗಳಿಗೆ ಉಪಯುಕ್ತ. |
| `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/hooks/useLiveDashboard.ts` | ಲೈವ್ ಡ್ಯಾಶ್ಬೋರ್ಡ್ WebSocketಗಾಗಿ ಸಾರ್ವಜನಿಕ URL (ಬ್ರೌಸರ್ ಬದಿಯಲ್ಲಿ). WS ಸರ್ವರ್ನ ಮುಂಭಾಗದಲ್ಲಿ ರಿವರ್ಸ್ ಪ್ರಾಕ್ಸಿ ಅಥವಾ Cloudflare Tunnel ಬಳಸುವಾಗ ಇದನ್ನು ಹೊಂದಿಸಿ (ಉದಾ. `wss://ws.my-ai.com/live-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/ಹಾರ್ನೆಸ್ ಟಾಗಲ್. |
| `RELAY_IP_PER_MINUTE` | `30` | `src/app/api/v1/relay/chat/completions/route.ts` | ಪ್ರತಿ-(ಟೋಕನ್, IP) ರಿಲೇ ದರ ಮಿತಿ, ವಿನಂತಿಗಳು/ನಿಮಿಷ. ಇನ್-ಮೆಮೊರಿ, ಪ್ರತಿ ನಿದರ್ಶನಕ್ಕೆ. `0` ಅಥವಾ ಋಣಾತ್ಮಕ ಮೌಲ್ಯವು IP-ಆಯಾಮದ ಗೇಟ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ (ಪ್ರತಿ-ಟೋಕನ್ DB ಮಿತಿ ಇನ್ನೂ ಅನ್ವಯಿಸುತ್ತದೆ). |
| `NODE_ENV` | `production` | Next.js ಕೋರ್ | ಲಾಗಿಂಗ್ನ ವಿವರಮಟ್ಟ, ಕ್ಯಾಶಿಂಗ್, ದೋಷದ ವಿವರಗಳ ಬಹಿರಂಗಪಡಿಸುವಿಕೆ ಮತ್ತು Next.js ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. |
| `OMNIROUTE_USE_TURBOPACK` | `1` (Turbopack — ಕೋಡ್ ಡೀಫಾಲ್ಟ್) | `package.json` / Next.js 16 | `npm run dev` ಮತ್ತು `npm run build` ಗಾಗಿ Turbopack ಡೀಫಾಲ್ಟ್ ಬಂಡ್ಲರ್ ಆಗಿದೆ (ಬೆಂಚ್ಮಾರ್ಕ್ ಪ್ರಕಾರ 2-3× ವೇಗದ ಬಿಲ್ಡ್ಗಳು). Windowsನಲ್ಲಿ ನೇಟಿವ್ ಬೈಂಡಿಂಗ್ / ಬಂಡ್ಲರ್-ಹೊಂದಾಣಿಕೆಯ ಅಸಂಗತತೆಗಳು ಎದುರಾದಾಗ, **ಅಥವಾ RAM ಸೀಮಿತ ಯಂತ್ರಗಳಲ್ಲಿ**, webpackಗೆ ಹಿಂತಿರುಗಲು ಇದನ್ನು `0` ಗೆ ಹೊಂದಿಸಿ — ಈ Next.js ಆವೃತ್ತಿ ಸರಣಿಯಲ್ಲಿನ (16.2.x) Turbopack ಪ್ರೊಡಕ್ಷನ್ ಬಿಲ್ಡ್ಗಳು ದೊಡ್ಡ ಮಾಡ್ಯೂಲ್ ಗ್ರಾಫ್ಗಳಲ್ಲಿ webpackಗಿಂತ ಬಹಳ ಹೆಚ್ಚಿನ ಮೆಮೊರಿ ಗರಿಷ್ಠ ಬಳಕೆಯನ್ನು ತಲುಪುತ್ತವೆ ಎಂಬುದು ಅಪ್ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ತಿಳಿದಿದೆ (Next 16.3 ರ Turbopack ಮೆಮೊರಿ-ಎವಿಕ್ಷನ್ ಪರಿಹಾರ ಇನ್ನೂ ಸ್ಥಿರವಾಗಿಲ್ಲ); webpack ಫಾಲ್ಬ್ಯಾಕ್ನ ಗರಿಷ್ಠ ಬಳಕೆ ಬಹಳ ಕಡಿಮೆ. #6409 ನೋಡಿ. **Docker ಇಮೇಜ್ ಬಿಲ್ಡ್ಗಳು ಡೀಫಾಲ್ಟ್ ಆಗಿ `0` (webpack) ಬಳಸುತ್ತವೆ**: ಮೆಮೊರಿ ಮಿತಿಯಿರುವ ಬಿಲ್ಡರ್ನಲ್ಲಿ ಸರಳ `docker build .` (Railway ಮತ್ತು ಇತರ ಒಂದು-ಕ್ಲಿಕ್ ಹೋಸ್ಟ್ಗಳು, ತಾತ್ಕಾಲಿಕ ಸ್ವಯಂ-ಹೋಸ್ಟರ್ಗಳು) OOMನಿಂದ ಕೊಲ್ಲಲ್ಪಡದಂತೆ `Dockerfile`, `ARG OMNIROUTE_USE_TURBOPACK=0` ಅನ್ನು ಘೋಷಿಸುತ್ತದೆ; Turbopackನೊಂದಿಗೆ ಇಮೇಜ್ ಬಿಲ್ಡ್ ಮಾಡಲು `--build-arg OMNIROUTE_USE_TURBOPACK=1` ಅನ್ನು ಪಾಸ್ ಮಾಡಿ. `docs/guides/DOCKER_GUIDE.md` → ಬಿಲ್ಡ್-ಸಮಯದ ಸಂಪನ್ಮೂಲಗಳು ನೋಡಿ. |
| `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 (Type=notify / WatchdogSec=) ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಇದನ್ನು `1` ಗೆ ಹೊಂದಿಸಿ. systemd ಹೊರಗೆ ನೋಟಿಫೈಯರ್ ಯಾವುದೇ ಕ್ರಿಯೆ ಮಾಡುವುದಿಲ್ಲ. |
| `CREDENTIAL_HEALTH_CHECK_INTERVAL` | `3600000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/scheduler.ts` | ಹಿನ್ನೆಲೆಯ ಕ್ರೆಡೆನ್ಶಿಯಲ್ ಆರೋಗ್ಯ ಪರಿಶೀಲನೆ ಶೆಡ್ಯೂಲರ್ನ ಮಧ್ಯಂತರ (ms). ಕನಿಷ್ಠ: 10000 (10s). |
| `CREDENTIAL_HEALTH_CACHE_TTL` | `300000` | `open-sse/config/constants.ts` / `src/lib/credentialHealth/cache.ts` | ಕ್ಯಾಶ್ ಮಾಡಲಾದ ಕ್ರೆಡೆನ್ಶಿಯಲ್ ಆರೋಗ್ಯ ಸ್ಥಿತಿಯ TTL (ms). |
| `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 ಗೆ ಒಮ್ಮೆ completions ಮೇಲ್ಮೈಯನ್ನು ಸ್ಯಾಂಪಲ್ ಮಾಡುತ್ತದೆ. ಅನಾಮಧೇಯ ಕಾಲರ್ಗಳು ಪ್ರೋಬ್ ಅನ್ನು ಎಂದಿಗೂ ಪ್ರಚೋದಿಸುವುದಿಲ್ಲ. |
| `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) |
### ಪೋರ್ಟ್ ಮೋಡ್ಗಳು
```
┌─────────────────────────── ಏಕ ಪೋರ್ಟ್ (ಡೀಫಾಲ್ಟ್) ───────────────────────────┐
│ PORT=20128 │
│ → ಡ್ಯಾಶ್ಬೋರ್ಡ್: http://localhost:20128 │
│ → API: http://localhost:20128/v1/chat/completions │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── ವಿಭಜಿತ ಪೋರ್ಟ್ಗಳು ──────────────────────────────┐
│ DASHBOARD_PORT=20128 │
│ API_PORT=20129 │
│ API_HOST=0.0.0.0 │
│ → ಡ್ಯಾಶ್ಬೋರ್ಡ್: http://localhost:20128 │
│ → API: http://0.0.0.0:20129/v1/chat/completions │
│ ಬಳಕೆಯ ಸಂದರ್ಭ: ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಅನ್ನು localhost ಗೆ ನಿರ್ಬಂಧಿಸಿ, API ಅನ್ನು │
│ LAN ಗೆ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡುವುದು. │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Docker ಪ್ರೊಡಕ್ಷನ್ ───────────────────────────────┐
│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │
│ → 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` ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ. HTTPS ಹಿಂದೆ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಇದು **`true` ಆಗಿರಲೇಬೇಕು**. |
| `REQUIRE_API_KEY` | `false` | API ಮಿಡಲ್ವೇರ್ | `true` ಆಗಿರುವಾಗ, ಎಲ್ಲಾ `/v1/*` ಪ್ರಾಕ್ಸಿ ವಿನಂತಿಗಳು ಮಾನ್ಯವಾದ API ಕೀಯನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. **ಈ ಫ್ಲ್ಯಾಗ್ `GET /v1/models` ಅನ್ನು ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ**, ಅದು ಬದಲಾಗಿ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಲಾಗಿನ್ ಸ್ಥಿತಿಯನ್ನು (`requireAuthForModels`) ಅನುಸರಿಸುತ್ತದೆ — ಆದ್ದರಿಂದ `/v1/models` ನಿಂದ ಬರುವ `401`, ಇನ್ಫರೆನ್ಸ್ ರಕ್ಷಿತವಾಗಿದೆ ಎಂದು ಅರ್ಥವಲ್ಲ. `docs/security/INFERENCE_AUTH_POSTURE.md` (#13695) ನೋಡಿ. |
| `ALLOW_API_KEY_REVEAL` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ಡ್ಯಾಶ್ಬೋರ್ಡ್ UI ನಲ್ಲಿ ಸಂಪೂರ್ಣ API ಕೀ ಮೌಲ್ಯಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಫೀಚರ್ ಫ್ಲ್ಯಾಗ್ಗಳಿಂದ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು; ಹಂಚಿಕೊಂಡ ಇನ್ಸ್ಟಾನ್ಸ್ಗಳಲ್ಲಿ ಇದು ಭದ್ರತಾ ಅಪಾಯವಾಗಿದೆ. |
| `NO_LOG_API_KEY_IDS` | _(ಖಾಲಿ)_ | `src/lib/compliance/index.ts` | ವಿನಂತಿ ಲಾಗಿಂಗ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡುವ, ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ API ಕೀ IDಗಳು (GDPR ಅನುಸರಣೆ). |
| `DEFAULT_RATE_LIMIT_PER_DAY` | _(ಹೊಂದಿಸಿಲ್ಲ = ಅನಿಯಮಿತ)_ | `src/shared/utils/apiKeyPolicy.ts` | `rate_limits` ಕಾಲಮ್ null ಆಗಿರುವ API ಕೀಗಳಿಗೆ ಅನ್ವಯಿಸುವ, ಪ್ರತಿ ದಿನದ ಪರ್ಯಾಯ ವಿನಂತಿ ಮಿತಿ. ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಖಾಲಿಯಾಗಿದ್ದರೆ: ಯಾವುದೇ ಪರೋಕ್ಷ ಮಿತಿ ಇರುವುದಿಲ್ಲ (#2289, #11017). `0` ಕೂಡ ಇದೇ ಅರ್ಥವನ್ನು ಹೊಂದಿದೆ (ಅನಿಯಮಿತ). ಧನಾತ್ಮಕ ಪೂರ್ಣಾಂಕ N, N/ದಿನ, 5N/ವಾರ, 20N/ತಿಂಗಳು ಮಿತಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ದೋಷಪೂರಿತ ಖಾಲಿಯಲ್ಲದ ಮೌಲ್ಯಗಳು ಹಳೆಯ 1000/ದಿನ, 5000/ವಾರ, 20000/ತಿಂಗಳು ವಿಂಡೋಗಳಿಗೆ ಹಿಂತಿರುಗುತ್ತವೆ. |
| `MAX_BODY_SIZE_BYTES` | `10485760` (10 MB) | `src/shared/middleware/bodySizeGuard.ts` | ಅನುಮತಿಸಲಾದ ಗರಿಷ್ಠ ವಿನಂತಿ ಬಾಡಿ ಗಾತ್ರ. ಈ ಮಿತಿಯನ್ನು ಮೀರುವ ಪೇಲೋಡ್ಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ. |
| `OMNIROUTE_CHAT_LARGE_BODY_BYTES` | `262144` (256 KB) | `src/shared/middleware/chatBodyAdmission.ts` | ಈ ಮಿತಿಯಲ್ಲಿ ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಗಾತ್ರದ ನೈಜ ವಿನಂತಿ ಬಾಡಿಗಳು JSON ಪಾರ್ಸಿಂಗ್ಗೆ ಮೊದಲು ಅಟಾಮಿಕ್ ಪ್ರಕ್ರಿಯೆ-ಸ್ಥಳೀಯ ಹೆವಿವೇಟ್ ಅಡ್ಮಿಷನ್ ಲೀಸ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳುತ್ತವೆ (`POST /v1/responses` ಸೇರಿದಂತೆ BYTE ಮಾರ್ಗ). ರಚನೆ-ಭಾರಿತ ವಿನಂತಿಗಳಂತೆಯೇ [#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` ದೊರೆಯುತ್ತದೆ. |
| `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ — ವಿನಂತಿ-ಎಣಿಕೆ ಮಿತಿಯಿಲ್ಲ)_ | `src/shared/middleware/chatBodyAdmission.ts` | **#503-fanout:** ಈ ಹಳೆಯ ವಿನಂತಿ-ಎಣಿಕೆ ಮಿತಿ ಈಗ ಸ್ಪಷ್ಟವಾಗಿ ಹೊಂದಿಸಿದಾಗ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ. ಇದನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ (ಡೀಫಾಲ್ಟ್), ಹೆವಿವೇಟ್ ಚಾಟ್ ಪ್ರವೇಶವನ್ನು ಬದಲಿಗೆ `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` ನಿಯಂತ್ರಿಸುತ್ತದೆ — **ಒಂದು ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿನ** (ಒಂದು V8 ಹೀಪ್) ಪ್ರಕ್ರಿಯೆಯ ನೈಜ ಮೆಮೊರಿ ಮಿತಿಯಿಂದ ಸ್ವಯಂ-ವ್ಯುತ್ಪನ್ನಗೊಂಡ ಬೈಟ್ ಬಜೆಟ್. ಪರಸ್ಪರ ಅತಿಕ್ರಮಿಸುವ ಎರಡು ~750k-ಟೋಕನ್ `/v1/responses` ವಿನಂತಿಗಳು ~12 Gi ಹೀಪ್ಗಳನ್ನು ಸ್ಥಗಿತಗೊಳಿಸುತ್ತವೆ (#7849) — ಇದು **ಮೆಮೊರಿ-ಬಜೆಟ್** ಎಚ್ಚರಿಕೆ, ಉತ್ಪನ್ನದ ಕಟ್ಟುನಿಟ್ಟಿನ ಗರಿಷ್ಠ ಮಿತಿ 2 ಎಂದಲ್ಲ. ಆರೋಗ್ಯಕರ ಪ್ರಕ್ರಿಯೆಯು (ಶೆಡ್ ಅನುಪಾತಕ್ಕಿಂತ ಕೆಳಗಿನ ಹೀಪ್) `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` ಮೂಲಕ ಇನ್ನಷ್ಟು ಸಮಕಾಲೀನ ದೀರ್ಘ `/v1/responses` ವಿನಂತಿಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಬಹುದು. ಹತ್ತಾರು ದೀರ್ಘ SSE ಕ್ಲೈಂಟ್ಗಳು (40–50) ಹೀಪ್ + `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` / #10110 ಗೆ ಸಂಬಂಧಿಸಿವೆ, “ಗರಿಷ್ಠ 2” ಗೆ ಅಲ್ಲ. “ಹೋಸ್ಟ್ ಅನ್ನು ಬಳಸಲು” ಇದನ್ನು ವಿವೇಚನೆಯಿಲ್ಲದೆ ಹೆಚ್ಚಿಸುವುದು #7849 ಅನ್ನು ಮತ್ತೆ ಉಂಟುಮಾಡುತ್ತದೆ. **N ಸ್ವತಂತ್ರ `DATA_DIR`ಗಳೊಂದಿಗೆ** **ಹೀಪ್ಗಳನ್ನು** ಗುಣಿಸಿ (#11024); ಒಂದು SQLite ಫೈಲ್ನಲ್ಲಿ ಎಂದಿಗೂ `replicas>1` ಬಳಸಬೇಡಿ. |
| `OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES` | _(ಸ್ವಯಂ-ವ್ಯುತ್ಪನ್ನ)_ | `src/shared/middleware/admissionBudget.ts` | **#503-fanout:** ಸ್ವಯಂ-ವ್ಯುತ್ಪನ್ನಗೊಂಡ ಸ್ವೀಕರಣ ಬೈಟ್ ಬಜೆಟ್ಗೆ ಅತಿಕ್ರಮಣ ಮೌಲ್ಯ (ಹೆಚ್ಚು ನಿರ್ಬಂಧಿತವಾದ V8/cgroup ಮೆಮೊರಿ ಮಿತಿಯ 25% ಅನ್ನು 8x ತಾತ್ಕಾಲಿಕ ವಿಸ್ತರಣೆಯಿಂದ ಭಾಗಿಸಲಾಗಿದೆ). ವ್ಯುತ್ಪನ್ನಗೊಂಡ ಮತ್ತು ಸ್ಪಷ್ಟ ಮೌಲ್ಯಗಳನ್ನು 8 MiB–2 GiB ಮಿತಿಯೊಳಗೆ ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ. ಪರಿಣಾಮಕಾರಿ ಬಜೆಟ್ಗಿಂತ ದೊಡ್ಡ ಬಾಡಿ ತಕ್ಷಣವೇ `413 body_exceeds_budget` ದೋಷದೊಂದಿಗೆ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ; ಪ್ರತ್ಯೇಕವಾಗಿ ಸೇವೆ ನೀಡಬಹುದಾದ ಬಾಡಿಗಳ ನಡುವಿನ ಸಂಪನ್ಮೂಲ ಪೈಪೋಟಿಯು ಮರುಪ್ರಯತ್ನಿಸಬಹುದಾದ `503` ಆಗಿಯೇ ಉಳಿಯುತ್ತದೆ. 40–50 ಸಮಕಾಲೀನ ದೀರ್ಘ SSE ಕ್ಲೈಂಟ್ಗಳು ಈ ಬಜೆಟ್ + ಹೀಪ್ಗೆ ಸಂಬಂಧಿಸಿವೆ, ಕಟ್ಟುನಿಟ್ಟಿನ “ಗರಿಷ್ಠ 2” ಗೆ ಅಲ್ಲ. ಹೊಂದಿಸುವ ಮೊದಲು `/api/monitoring/health` ನಲ್ಲಿ `chatAdmission.maxInflightBytes` / `budgetSource` / `pressureSeverity` ಅನ್ನು ಓದಿ. |
| `OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO` | `0.75` | `src/shared/middleware/chatBodyAdmission.ts` | ಬೈಟ್ ಮತ್ತು ರಚನೆ ಆಧಾರಿತ ಹೆವಿವೇಟ್ ಪ್ರವೇಶಕ್ಕಾಗಿ ಹೀಪ್-ಒತ್ತಡದ ಶೆಡ್ ಅನುಪಾತ (`heapUsed / heap_size_limit`) (#10183, #10268, #10437). `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` ಮೀರಿದ ಸಮಕಾಲೀನ ಹೆವಿವೇಟ್ ವಿನಂತಿಯನ್ನು, ಹೀಪ್ ಕೂಡ ಈ ಅನುಪಾತದಲ್ಲಿದ್ದಾಗ ಅಥವಾ ಅದಕ್ಕಿಂತ ಮೇಲಿದ್ದಾಗ ಮಾತ್ರ ಮರುಪ್ರಯತ್ನಿಸಬಹುದಾದ `503` ನೊಂದಿಗೆ ಶೆಡ್ ಮಾಡಲಾಗುತ್ತದೆ; ಆರೋಗ್ಯಕರ ಹೀಪ್ನಲ್ಲಿ ಅದನ್ನು ಆರೋಗ್ಯಕರ ಹೆಡ್ರೂಮ್ ಮೂಲಕ ಪ್ರವೇಶಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM` | `OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT` (ಡೀಫಾಲ್ಟ್ `1`) | `src/shared/middleware/chatBodyAdmission.ts` | ರಚನೆ ಮತ್ತು ಬೈಟ್ (`admitChatRequest`, `OMNIROUTE_CHAT_LARGE_BODY_BYTES` ಗಿಂತ ಹೆಚ್ಚಿನ ಅಥವಾ ಸಮಾನ ಬಾಡಿಗಳೂ ಸೇರಿದಂತೆ) ಎರಡರಲ್ಲಿಯೂ ಆರೋಗ್ಯಕರ-ಹೀಪ್ ವೇಗದ ಮಾರ್ಗಕ್ಕೆ (#10437) ಮಿತಿಗೊಳಿಸಿದ ಹೆಚ್ಚುವರಿ ಸಾಮರ್ಥ್ಯ. ಈ ಮಿತಿಯಿಲ್ಲದೆ, ಕಾರ್ಯನಿರತವಾಗಿದ್ದರೂ ಆರೋಗ್ಯಕರ ಹೀಪ್ ಹೊಂದಿರುವ ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯೂ ಯಾವುದೇ ಗರಿಷ್ಠ ಮಿತಿಯಿಲ್ಲದೆ ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು ಬೈಪಾಸ್ ಮಾಡುತ್ತಿತ್ತು. ಆರೋಗ್ಯಕರ-ಹೀಪ್ ಮಾರ್ಗದ ಮೂಲಕ ಇಷ್ಟು ಸಮಕಾಲೀನ ಲೀಸ್ಗಳು ಸಕ್ರಿಯವಾದ ಬಳಿಕ, ಮುಂದಿನ ಕಾರ್ಯನಿರತ ವಿನಂತಿಗಳು ನೈಜ ಹೀಪ್ ಒತ್ತಡದ ಸಂದರ್ಭದಲ್ಲಿ ಬಳಸುವ ಅದೇ ಮಿತಿಗೊಳಿಸಿದ-ಕಾಯುವಿಕೆ/ಶೆಡ್ ಮಾರ್ಗಕ್ಕೆ ಸಾಗುತ್ತವೆ. `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`) ಕೈಬಿಡಲಾಗುತ್ತದೆ. ಪ್ರತಿಕ್ರಿಯೆ ಹೆಡರ್ನ ಗಾತ್ರ ಹೆಚ್ಚಾಗುವ ವೆಚ್ಚದಲ್ಲಿ ಹೆಚ್ಚಿನ ಅಪ್ಸ್ಟ್ರೀಮ್ ಮೆಟಾಡೇಟಾವನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡಲು ಹೆಚ್ಚಿನ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸಿ. |
| `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 ಮೌಲ್ಯೀಕರಣ, ಮಾದರಿ ಅನ್ವೇಷಣೆ, ಪ್ರೊವೈಡರ್-ನೋಡ್ ಬೇಸ್ URLಗಳು (ರಿಮೋಟ್ ರೀರ್ಯಾಂಕ್ ನೋಡ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ), ಮತ್ತು ಪ್ರಾಕ್ಸಿ-ಫಾಲ್ಬ್ಯಾಕ್ ಪರೀಕ್ಷೆ; ಜೊತೆಗೆ ರಿಮೋಟ್ ಚಿತ್ರ/ಮಾಧ್ಯಮ ಪಡೆಯುವಿಕೆಯಂತಹ ಇತರ ಪ್ರೊವೈಡರ್-ಸಂಬಂಧಿತ ಔಟ್ಬೌಂಡ್ ಪಥಗಳು. ಇದು ಖಾಸಗಿ ವೆಬ್ಹುಕ್ ಗುರಿಗಳನ್ನೂ ಅನುಮತಿಸುತ್ತದೆ; ಆದರೆ ಕ್ಲೌಡ್-ಮೆಟಾಡೇಟಾ/ಲಿಂಕ್-ಲೋಕಲ್ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳು ಈ ಫ್ಲ್ಯಾಗ್ ಆನ್ ಆಗಿದ್ದರೂ ನಿರ್ಬಂಧಿತವಾಗಿಯೇ ಉಳಿಯುತ್ತವೆ. `BaseExecutor.execute()` ಮೂಲಕ ಕಳುಹಿಸಲಾದ ಚಾಟ್ ವಿನಂತಿಗಳು ತಮ್ಮ ಕ್ಲೌಡ್-ಮೆಟಾಡೇಟಾ ಪರಿಶೀಲನೆಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. ಸ್ಥಳೀಯ ಪ್ರೊವೈಡರ್ಗಳು ಡೀಫಾಲ್ಟ್ಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ: `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` (ಡೀಫಾಲ್ಟ್ `true`) ಈಗಾಗಲೇ ಮೌಲ್ಯೀಕರಣ, ಅನ್ವೇಷಣೆ ಮತ್ತು ಪ್ರೊವೈಡರ್-ನೋಡ್ ಪಥಗಳಲ್ಲಿ ಸ್ಥಳೀಯ ಮತ್ತು LAN URLಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ; ಪ್ರಾಕ್ಸಿ-ಫಾಲ್ಬ್ಯಾಕ್ ಪರೀಕ್ಷೆ ಮತ್ತು ಖಾಸಗಿ ವೆಬ್ಹುಕ್ ಗುರಿಗಳು ಈ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಮಾತ್ರ ಪರಿಗಣಿಸುತ್ತವೆ ಮತ್ತು ಇದು ಆಫ್ ಆಗಿರುವಾಗ ಸ್ಥಳೀಯ/LAN ಹೋಸ್ಟ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತವೆ. `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` ಅನ್ನು ಓವರ್ರೈಡ್ ಮಾಡುತ್ತದೆ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಟಾಗಲ್ನಿಂದ ಉಳಿಸಲಾದ ಮೌಲ್ಯವು ಈ ವೇರಿಯಬಲ್ಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ. |
| `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS` | `true` | `src/shared/network/outboundUrlGuardPolicy.ts` | ಪ್ರೊವೈಡರ್ ಮೌಲ್ಯೀಕರಣ, ಮಾದರಿ ಅನ್ವೇಷಣೆ, ಚಾಟ್ ಮತ್ತು ಗಾರ್ಡ್ ಮೋಡ್ ನಿಯಂತ್ರಿಸುವ ಇತರ ಪ್ರೊವೈಡರ್-ಸಂಬಂಧಿತ ಔಟ್ಬೌಂಡ್ ಪಥಗಳಿಗಾಗಿ ಸ್ಥಳೀಯ/ಖಾಸಗಿ ವಿಳಾಸಗಳಲ್ಲಿ (127.0.0.1, localhost, LAN, ಖಾಸಗಿ ಶ್ರೇಣಿಗಳು) ಪ್ರೊವೈಡರ್ URLಗಳನ್ನು ಅನುಮತಿಸಿ. **ಡೀಫಾಲ್ಟ್ `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, Llamafile ಮತ್ತು Triton ಮುಂತಾದ ಅಂತರ್ನಿರ್ಮಿತ ಸ್ಥಳೀಯ ಪ್ರೊವೈಡರ್ಗಳು ಕೀ ಮೌಲ್ಯೀಕರಣ ಮತ್ತು ಚಾಟ್ಗಾಗಿ ಎಲ್ಲಾ ಹೋಸ್ಟ್ ಪರಿಶೀಲನೆಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತವೆ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಟಾಗಲ್ನಿಂದ ಉಳಿಸಲಾದ ಮೌಲ್ಯವು ಈ ವೇರಿಯಬಲ್ಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ. (#5066) |
| `AUDIO_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/audioProviderNodes.ts` | `/v1/audio/*` ರೂಟ್ಗಳು (ಪ್ರತಿಲೇಖನಗಳು, ಮಾತು, ಅನುವಾದಗಳು) localhost ಹೊರಗೆ ಹೋಸ್ಟ್ ಮಾಡಲಾದ OpenAI-ಹೊಂದಾಣಿಕೆಯ ಪ್ರೊವೈಡರ್ ನೋಡ್ ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸಿ. ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆಫ್ — ಆಡಿಯೊವನ್ನು ರಿಮೋಟ್ ಹೋಸ್ಟ್ಗೆ ರೂಟ್ ಮಾಡುವುದರಿಂದ ಎಗ್ರೆಸ್ ಗುರುತು ಬದಲಾಗುತ್ತದೆ ಮತ್ತು ಇದು ಆಪರೇಟರ್ನ ಸ್ಪಷ್ಟ ನಿರ್ಧಾರವಾಗಿರಬೇಕು. ಲೂಪ್ಬ್ಯಾಕ್/ಖಾಸಗಿ ನೋಡ್ಗಳು (localhost, 127.0.0.1, 172.16-31.x) ಯಾವಾಗಲೂ ಅನುಮತಿಸಲ್ಪಡುತ್ತವೆ ಮತ್ತು ಇದರಿಂದ ಪ್ರಭಾವಿತವಾಗುವುದಿಲ್ಲ. (#3963) |
| `RERANK_REMOTE_PROVIDER_NODES` | `false` | `src/app/api/v1/_shared/rerankProviderNodes.ts` | `POST /v1/rerank` (ಮತ್ತು ಮೆಮೊರಿ ಎಂಜಿನ್ನ ಲೂಪ್ಬ್ಯಾಕ್ ರೀರ್ಯಾಂಕ್ ಹಂತ) localhost ಹೊರಗೆ ಹೋಸ್ಟ್ ಮಾಡಲಾದ OpenAI-ಹೊಂದಾಣಿಕೆಯ ಪ್ರೊವೈಡರ್ ನೋಡ್ ಅನ್ನು — TEI, Infinity, vLLM ಇತ್ಯಾದಿಗಳನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತಿರುವ LAN ಯಂತ್ರ ಅಥವಾ Tailscale ಪೀರ್ — ಬಳಸಲು ಅನುಮತಿಸಿ. ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆಫ್ — ರಿಮೋಟ್ ಹೋಸ್ಟ್ಗೆ ರೂಟ್ ಮಾಡುವುದರಿಂದ ಎಗ್ರೆಸ್ ಗುರುತು ಬದಲಾಗುತ್ತದೆ ಮತ್ತು ಇದು ಆಪರೇಟರ್ನ ಸ್ಪಷ್ಟ ನಿರ್ಧಾರವಾಗಿರಬೇಕು. ಲೂಪ್ಬ್ಯಾಕ್ ನೋಡ್ಗಳು (localhost, 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 ನೆಟ್ವರ್ಕ್ನಲ್ಲಿರುವ reranker, TEI ಅಥವಾ audio sidecar-ನ Docker/Compose ಸೇವೆಯ ಹೆಸರು (`http://reranker:8080/v1`); ಆದ್ದರಿಂದ ನೋಡ್ಗೆ ಹಾರ್ಡ್-ಕೋಡ್ ಮಾಡಿದ ಕಂಟೇನರ್ IP ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ಪಟ್ಟಿ ಮಾಡಲಾದ ಹೋಸ್ಟ್ಗಳು ಪ್ರತಿಯೊಂದು ರಿಮೋಟ್ ನೋಡ್ಗಾಗಿ `RERANK_REMOTE_PROVIDER_NODES` / `AUDIO_REMOTE_PROVIDER_NODES` ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸದೆಯೇ `/v1/rerank`, `/v1/audio/*` ಮತ್ತು ಸ್ಥಳೀಯ ಆರೋಗ್ಯ ತಪಾಸಣೆಗೆ ಅರ್ಹವಾಗಿರುತ್ತವೆ ಮತ್ತು ಅವುಗಳನ್ನು ನೇರವಾಗಿ ಕರೆಯಲಾಗುತ್ತದೆ — ಎಂದಿಗೂ `HTTP(S)_PROXY` ಅಥವಾ ಸಂಪರ್ಕಕ್ಕೆ ಪಿನ್ ಮಾಡಿದ ಪ್ರಾಕ್ಸಿಯ ಮೂಲಕ ಅಲ್ಲ. ಅವು ಈಗಲೂ ಸಂಪರ್ಕದ API ಕೀಲಿಯನ್ನು ಕಳುಹಿಸುತ್ತವೆ. ಏಕ-ಲೇಬಲ್ ಹೆಸರುಗಳು ಮತ್ತು `.internal`/`.local` ಹೆಸರುಗಳನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ; ಸಾರ್ವಜನಿಕ FQDNಗಳು, IP ಲಿಟರಲ್ಗಳು ಮತ್ತು ಕ್ಲೌಡ್-ಮೆಟಾಡೇಟಾ ಹೆಸರುಗಳನ್ನು ಎಚ್ಚರಿಕೆಯೊಂದಿಗೆ ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. (#14635) |
| `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | OIDC ಸಕ್ರಿಯವಾಗಿರುವಾಗ, ಬಳಕೆದಾರರು OIDC ಏಕ ಸೈನ್-ಆನ್ ಮೂಲಕ ಮಾತ್ರ ದೃಢೀಕರಿಸಿಕೊಳ್ಳುವಂತೆ ಪಾಸ್ವರ್ಡ್ ಲಾಗಿನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. ಸಂಕ್ಷಿಪ್ತ ಅಲಿಯಾಸ್ `OIDC_DISABLE_PASSWORD_LOGIN` ಅನ್ನೂ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ; ಅದೇ ಕೀಲಿಯ Dashboard Feature Flag ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ. (#10889) |
| `OIDC_DISABLE_PASSWORD_LOGIN` | `false` | `src/app/api/auth/login/route.ts` | `OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN`-ನ ಸಂಕ್ಷಿಪ್ತ ಅಲಿಯಾಸ್ (#10889). |
### ಬಲಪಡಿಸುವಿಕೆ ಪರಿಶೀಲನಾಪಟ್ಟಿ
```bash
# ಪ್ರೊಡಕ್ಷನ್ ಭದ್ರತೆಯ ಕನಿಷ್ಠ ಅವಶ್ಯಕತೆಗಳು:
AUTH_COOKIE_SECURE=true # HTTPS ಅಗತ್ಯವಿದೆ
REQUIRE_API_KEY=true # ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ ಕರೆಗಳನ್ನು ದೃಢೀಕರಿಸಿ
ALLOW_API_KEY_REVEAL=false # UI-ನಲ್ಲಿ ಕೀಲಿಗಳನ್ನು ಎಂದಿಗೂ ಬಹಿರಂಗಪಡಿಸಬೇಡಿ
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # 5 MB ಮಿತಿ
```
---
## 5. ಇನ್ಪುಟ್ ಶುದ್ಧೀಕರಣ ಮತ್ತು PII ರಕ್ಷಣೆ
OmniRoute ಎರಡು-ಪದರದ ರಕ್ಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ: ವಿನಂತಿ-ಬದಿಯ ಇಂಜೆಕ್ಷನ್ ಸ್ಕ್ಯಾನಿಂಗ್ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ-ಬದಿಯ PII ತೆಗೆದುಹಾಕುವಿಕೆ.
> **⚠️ ಮಿತಿಗಳು:** ಈ ಗಾರ್ಡ್ರೇಲ್ಗಳು ಸಂಪೂರ್ಣ ಪ್ರಾಂಪ್ಟ್-ಇಂಜೆಕ್ಷನ್ ಫೈರ್ವಾಲ್ ಅಥವಾ PII DLP ವ್ಯವಸ್ಥೆಯಲ್ಲ; ಇವು _ಸಾಧ್ಯವಾದಷ್ಟು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಹ್ಯೂರಿಸ್ಟಿಕ್_ ಪತ್ತೆ ವಿಧಾನಗಳಾಗಿವೆ. ಇವು ತಪ್ಪು ಧನಾತ್ಮಕ ಫಲಿತಾಂಶಗಳನ್ನು (ಹಾನಿಕರವಲ್ಲದ ಪರ್ಸೋನಾ/RPG ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಗುರುತಿಸುವುದು) ಮತ್ತು ತಪ್ಪು ಋಣಾತ್ಮಕ ಫಲಿತಾಂಶಗಳನ್ನು (ಲೀಟ್ಸ್ಪೀಕ್, ಅಂತರ ನೀಡುವಿಕೆ, ಇಂಗ್ಲಿಷ್ ಅಲ್ಲದ ಮಾದರಿಗಳು) ನೀಡಬಹುದು. ಅನುಸರಣೆಗೆ ಇವು ಮಾತ್ರ ಸಾಕಾಗುವುದಿಲ್ಲ. ಇವುಗಳನ್ನು ಅವಲಂಬಿಸುವ ಮೊದಲು ಮೋಡ್ಗಳನ್ನು ಸರಿಹೊಂದಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಟ್ರಾಫಿಕ್ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಿ.
### ವಿನಂತಿ-ಬದಿ: ಪ್ರಾಂಪ್ಟ್ ಇಂಜೆಕ್ಷನ್ ಗಾರ್ಡ್
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| --------------------------------- | -------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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` | ವಿನಂತಿ/ಪ್ರತಿಕ್ರಿಯೆ ಪೇಲೋಡ್ಗಳಿಂದ ಪ್ರಸಿದ್ಧ 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 Code ಟೋಕನೀಕೃತ-ರೂಟ್ ಸಂದರ್ಭ ಶುದ್ಧೀಕಾರಕ
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ----------------------------------- | -------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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` (ಇಂಜೆಕ್ಷನ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವಿಕೆ + ವಿನಂತಿ/ಪ್ರತಿಕ್ರಿಯೆಯ PII ಮರೆಮಾಡುವಿಕೆ; ಮೋಡ್ಗಳು ಸ್ವತಂತ್ರವಾಗಿವೆ) |
| **ಮೇಲ್ವಿಚಾರಣೆ ಮಾತ್ರ** | `INPUT_SANITIZER_ENABLED=true`, `INPUT_SANITIZER_MODE=warn` — ಲಾಗ್ ಮಾಡುತ್ತದೆ, ಆದರೆ ಎಂದಿಗೂ ನಿರ್ಬಂಧಿಸುವುದಿಲ್ಲ |
| **ವೈಯಕ್ತಿಕ ಬಳಕೆ** | ಎಲ್ಲವನ್ನೂ ನಿಷ್ಕ್ರಿಯವಾಗಿಯೇ ಬಿಡಿ — ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಕಾರ್ಯಭಾರವಿಲ್ಲ |
---
## 6. ಟೂಲ್ ಮತ್ತು ರೂಟಿಂಗ್ ನೀತಿಗಳು
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ----------------------------------------------------------- | ------------------------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `TOOL_POLICY_MODE` | `disabled` | `src/lib/toolPolicy.ts` | LLM ಟೂಲ್/ಫಂಕ್ಷನ್-ಕಾಲಿಂಗ್ ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. `allowlist` = ಪಟ್ಟಿಮಾಡಿದ ಟೂಲ್ಗಳು ಮಾತ್ರ, `denylist` = ಪಟ್ಟಿಮಾಡಿದವುಗಳನ್ನು ಹೊರತುಪಡಿಸಿ ಎಲ್ಲವೂ, `disabled` = ಯಾವುದೇ ನಿರ್ಬಂಧಗಳಿಲ್ಲ. |
| `OMNIROUTE_PAYLOAD_RULES_PATH` | `./config/payloadRules.json` | `open-sse/services/payloadRules.ts` | ಪೇಲೋಡ್ ಮಾರ್ಪಾಡು ನಿಯಮಗಳ JSON ಫೈಲ್ಗೆ ಪಥ (ಪ್ರತಿ-ಮಾಡೆಲ್/ಪ್ರೋಟೋಕಾಲ್ ಅಪ್ಸ್ಟ್ರೀಮ್ ಹೊಂದಾಣಿಕೆಗಳು). |
| `OMNIROUTE_PAYLOAD_RULES_RELOAD_MS` | `5000` | `open-sse/services/payloadRules.ts` | ಪೇಲೋಡ್ ನಿಯಮಗಳ ಫೈಲ್ನ ಹಾಟ್-ರೀಲೋಡಿಂಗ್ಗಾಗಿ ಮರುಲೋಡ್ ಮಧ್ಯಂತರ (ms). ಕನಿಷ್ಠ `1000`. |
| `OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS` | `false` | `open-sse/services/model.ts` | ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ: ಪೂರೈಕೆದಾರ ಪ್ರಿಫಿಕ್ಸ್ ಅಗತ್ಯಪಡಿಸುವ ಬದಲು, Claude Code ಕ್ಲೈಂಟ್ಗಳಿಂದ ಬರುವ ಸರಳ `claude-*` ಮಾಡೆಲ್ IDಗಳನ್ನು Claude Code OAuth ಖಾತೆಯ ಮೂಲಕ ರೂಟ್ ಮಾಡುತ್ತದೆ. ಸ್ಪಷ್ಟ ಪೂರೈಕೆದಾರ ಪ್ರಿಫಿಕ್ಸ್ಗಳಿಗೆ ಇನ್ನೂ ಆದ್ಯತೆ ಇರುತ್ತದೆ. Claude ಪೂರೈಕೆದಾರ ಪುಟದಲ್ಲಿನ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಟಾಗಲ್ ಮೂಲಕವೂ ಇದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು. |
| `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`ಕ್ಕೆ ಸೀಮಿತಗೊಳಿಸಲಾಗುತ್ತದೆ. |
| `DISABLE_CONTEXT_WINDOW_CHECKS` | `false` | `open-sse/handlers/chatCore.ts` | ನೇರ ಏಕ-ಮಾಡೆಲ್ ವಿನಂತಿಗಳಿಗಾಗಿ OmniRouteನ ಸ್ಥಳೀಯ ಕಾಂಟೆಕ್ಸ್ಟ್-ವಿಂಡೋ / ಗರಿಷ್ಠ-ಇನ್ಪುಟ್-ಟೋಕನ್ ಪರಿಶೀಲನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡುವ ಅಪಾಯಕಾರಿ ಆಯ್ಕೆ. ಅಪ್ಸ್ಟ್ರೀಮ್ ಪೂರೈಕೆದಾರರು ತಮ್ಮ ನಿಜವಾದ ಮಿತಿಗಳನ್ನು ಇನ್ನೂ ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ; ಪ್ರಾಂಪ್ಟ್ ಸಂಕೋಚನ ಮತ್ತು ಮಾಡೆಲ್ನ ಸ್ವಂತ ಔಟ್ಪುಟ್-ಟೋಕನ್ ಮಿತಿ ಸಕ್ರಿಯವಾಗಿಯೇ ಇರುತ್ತವೆ. ಪರಿಣಾಮಕಾರಿ ಆದ್ಯತೆಯ ಕ್ರಮವು Feature Flags 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` | ಇನ್ಲೈನ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯಬಲ್ಗಿಂತ ಫೈಲ್ಗೆ ಆದ್ಯತೆ ನೀಡುವ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ಗಳಿಗಾಗಿ, `OMNIROUTE_SELF_HOSTED_PROVIDERS`ನಲ್ಲಿರುವ ಅದೇ `providers:` ಡಾಕ್ಯುಮೆಂಟ್ ಹೊಂದಿರುವ YAML ಫೈಲ್ಗೆ ಪಥ. ಇವೆರಡರಲ್ಲಿ ಯಾವುದಾದರೂ ಒಂದು ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ ಎಂಟ್ರಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `OMNIROUTE_SELF_HOSTED_API_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ — ಮುಕ್ತ ರೂಟ್)_ | `open-sse/services/selfHostedEntry.ts` | ಏಕೀಕೃತ ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ ಎಂಟ್ರಿಗಾಗಿ ಐಚ್ಛಿಕ ಹಂಚಿಕೆಯ API ಕೀ (D5 ಸ್ಕ್ಯಾಫೋಲ್ಡ್, ಪ್ರತಿ-ಕೀ ಕೋಟಾ ಸಿಸ್ಟಮ್ಗಾಗಿ ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ). ಹೊಂದಿಸಿದಾಗ, ವಿನಂತಿಗಳು `Authorization: Bearer ` ಅನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. ಹೊಂದಿಸದಿದ್ದರೆ: ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ ಸ್ಥಳೀಯ-ಪೂರೈಕೆದಾರ ಮಾದರಿಗೆ (ಲೂಪ್ಬ್ಯಾಕ್/ವಿಶ್ವಾಸಾರ್ಹ-ನೆಟ್ವರ್ಕ್ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್) ಹೊಂದುವಂತೆ ರೂಟ್ ಮುಕ್ತವಾಗಿರುತ್ತದೆ. |
| `OMNIROUTE_SELF_HOSTED_STRATEGY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/routingStrategies.ts` | ನಿರ್ಧಾರಾತ್ಮಕ ರೂಟಿಂಗ್ ಎಂಜಿನ್ಗಾಗಿ ಇನ್ಲೈನ್ YAML `strategy:` ಡಾಕ್ಯುಮೆಂಟ್ (M2/RIC-740, D3) — ಬ್ಲ್ಯಾಕ್ಲಿಸ್ಟ್/ವೈಟ್ಲಿಸ್ಟ್, ಕೂಲ್ಡೌನ್ ಬ್ರೇಕರ್, ವೆಚ್ಚ-ಆದ್ಯತೆ, ಲೇಟೆನ್ಸಿ-ಅವೇರ್, ಫಾಲ್ಬ್ಯಾಕ್ ಚೈನ್. ಪ್ರತಿ ಕೀಗೆ, `OMNIROUTE_SELF_HOSTED_PROVIDERS` ಒಳಗೆ ನೆಸ್ಟ್ ಮಾಡಲಾದ ಇನ್ಲೈನ್ `strategy:` ಬ್ಲಾಕ್ ಅನ್ನು ಓವರ್ರೈಡ್ ಮಾಡುತ್ತದೆ. `docs/routing/DETERMINISTIC_ROUTING.md` ನೋಡಿ. |
| `OMNIROUTE_SELF_HOSTED_STRATEGY_FILE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/routingStrategies.ts` | ಇನ್ಲೈನ್ ಪರಿಸರ ಚರದ ಬದಲು ಫೈಲ್ಗೆ ಆದ್ಯತೆ ನೀಡುವ ನಿಯೋಜನೆಗಳಿಗಾಗಿ, `OMNIROUTE_SELF_HOSTED_STRATEGY`ಯಲ್ಲಿರುವ ಅದೇ `strategy:` ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಹೊಂದಿರುವ YAML ಫೈಲ್ಗೆ ಮಾರ್ಗ. |
| `OMNIROUTE_DISABLE_CONVERSATION_TRACKING` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/conversationTracker.ts` | ಸಂಭಾಷಣೆ ಇತಿಹಾಸವನ್ನು ಸಂಗ್ರಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಲು `1`ಗೆ ಹೊಂದಿಸಿ. SQLite ಅನ್ನು ಓದುವ ಅಥವಾ ಸಂದೇಶ ಇತಿಹಾಸವನ್ನು ಪಾರ್ಸ್ ಮಾಡುವ ಮೊದಲು `resolveConversationId()` ಟ್ರ್ಯಾಕ್ ಮಾಡದ ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ; ಕ್ಲೈಂಟ್ ಒದಗಿಸಿದ ಸೆಷನ್ IDಗಳಿಗೂ ಇದು ಅನ್ವಯಿಸುತ್ತದೆ. ರೂಟಿಂಗ್-ಸೆಷನ್ ನಿರ್ವಹಣೆಯಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆಯಿಲ್ಲ ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ದಾಖಲೆಗಳನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ನ ಸಂಭಾಷಣೆ ವೀಕ್ಷಣೆಯನ್ನು ಬಳಸದ ಮತ್ತು ಟರ್ನ್ ಟೇಬಲ್ ಬೆಳೆಯುವುದನ್ನು ನಿಲ್ಲಿಸಲು ಬಯಸುವ ನಿಯೋಜನೆಗಳಿಗಾಗಿ. |
| `OMNIROUTE_NADIR_API_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/autoCombo/nadirStrategy.ts` | ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸುವ `nadir` ಸ್ವಯಂ-ಕಾಂಬೊ ರೂಟರ್ ಕಾರ್ಯತಂತ್ರಕ್ಕಾಗಿ API ಕೀ; ಕಾಂಬೊದ ಸ್ವಂತ `config.nadir.apiKey` ಹೊಂದಿಸದಿದ್ದಾಗ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಐಚ್ಛಿಕ: ಕೀ ಇಲ್ಲದ ಕರೆಗಳು Nadirನ ಅನಾಮಧೇಯ ಹಂತಕ್ಕೆ ಹೋಗುತ್ತವೆ; ಅದು ಪ್ರತಿ IPಗೆ ದರ-ಮಿತಿಗೊಳಿಸಲ್ಪಟ್ಟಿರುವುದರಿಂದ ಹಂಚಿಕೆಯ ಗೇಟ್ವೇಯ ಹಿಂದೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿ; ಕಾಂಬೊಗಳು ವಿಭಿನ್ನ ಖಾತೆಗಳನ್ನು ಬಳಸುವಾಗ ಪ್ರತಿ-ಕಾಂಬೊ ಕ್ಷೇತ್ರಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `OMNIROUTE_NADIR_BASE_URL` | `https://api.getnadir.com` | `open-sse/services/autoCombo/nadirStrategy.ts` | ಕಾಂಬೊದ ಸ್ವಂತ `config.nadir.baseUrl` ಹೊಂದಿಸದಿದ್ದಾಗ ಬಳಸಲಾಗುವ Nadir ನಿರ್ಧಾರ APIಯ ಮೂಲ ಒರಿಜಿನ್. ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ Nadirಗಾಗಿ ಮಾತ್ರ ಇದು ಅಗತ್ಯವಿದ್ದು, ಪ್ರಾಂಪ್ಟ್ನ ಆರಂಭಿಕ ಭಾಗಗಳನ್ನು ನಿಮ್ಮ ಸ್ವಂತ ನೆಟ್ವರ್ಕ್ನೊಳಗೇ ಇರಿಸುತ್ತದೆ. ಕೊನೆಯಲ್ಲಿರುವ `/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` | `calendar` ಸಾಪ್ತಾಹಿಕ ಅವಧಿಗಾಗಿ ಸೋಮವಾರ 00:00 ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ IANA ಸಮಯವಲಯ (ಉದಾಹರಣೆಗೆ `Asia/Shanghai`). ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದ್ದರೆ: OmniRoute ಪ್ರಕ್ರಿಯೆಯ ಸಮಯವಲಯ (ಹೋಸ್ಟ್ ಅಥವಾ ಕಂಟೇನರ್ನ `TZ`; ಕಂಟೇನರ್ ಇಮೇಜ್ಗಳಲ್ಲಿ ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಹೊಂದಿಸದಿರುತ್ತದೆ, ಅಂದರೆ ಸಮನ್ವಯಿತ ಸಾರ್ವತ್ರಿಕ ಸಮಯ). `provider` ಮೋಡ್ನಲ್ಲಿ ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_MAX_TOOLS_LIMIT` | `128` | `open-sse/config/constants.ts` | ವಿನಂತಿಯಲ್ಲಿ ಅನುಮತಿಸಲಾದ ಟೂಲ್ಗಳ ಪೂರ್ವನಿಯೋಜಿತ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ (OpenAI ಪೂರ್ವನಿಯೋಜಿತ). ಧನಾತ್ಮಕ ಪೂರ್ಣಾಂಕಗಳು ಮಾತ್ರ; ಹೊಂದಿಸದ ಅಥವಾ ಅಮಾನ್ಯ ಮೌಲ್ಯಗಳು `128` ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. ತಿಳಿದಿರುವ/ಮುಂಚಿತ ಮಿತಿಯನ್ನು ಹೊಂದಿರುವ ಪೂರೈಕೆದಾರರು (`grok-cli` 200, `nvidia` 1536) ಇನ್ನೂ ತಮ್ಮದೇ ಮಿತಿಯನ್ನು ಅನ್ವಯಿಸುತ್ತಾರೆ — ಇದು ಪೂರ್ವನಿಯೋಜಿತ ಗರಿಷ್ಠ ಮಿತಿಯನ್ನು ಮಾತ್ರ ಬದಲಾಯಿಸುತ್ತದೆ. |
| `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` | ಆಂತರಿಕ ಸಿಂಕ್ ಕಾರ್ಯಗಳು `/api/sync/cloud` ಅನ್ನು ಕರೆ ಮಾಡಲು ಬಳಸುವ ಸರ್ವರ್-ಸೈಡ್ URL. ಆ್ಯಪ್ ಅನ್ನು ಸಾರ್ವಜನಿಕವಾಗಿ ಪ್ರಾಕ್ಸಿ ಮಾಡಿದ್ದರೂ ಇದನ್ನು ಲೂಪ್ಬ್ಯಾಕ್/ಕಂಟೇನರ್ URL ಆಗಿಯೇ ಇರಿಸಿ. |
| `CLOUD_URL` | _(ಖಾಲಿ)_ | `src/lib/cloudSync.ts` | ಕ್ಲೌಡ್ ರಿಲೇ ಎಂಡ್ಪಾಯಿಂಟ್ URL (ಪ್ರೀಮಿಯಂ ವೈಶಿಷ್ಟ್ಯ). |
| `CLOUD_SYNC_TIMEOUT_MS` | `12000` | `src/lib/cloudSync.ts` | ಕ್ಲೌಡ್ ಸಿಂಕ್ ವಿನಂತಿಗಳಿಗಾಗಿ HTTP ಕಾಲಾವಧಿ ಮಿತಿ. |
| `OMNIROUTE_BUILD_PROFILE` | `full` | Webpack ಬಿಲ್ಡ್ ಕಾನ್ಫಿಗ್ | ಬಿಲ್ಡ್-ಸಮಯದ ಪ್ರೊಫೈಲ್ (ವಿಶೇಷಾಧಿಕಾರದ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಬಂಡಲ್ನಿಂದ ಭೌತಿಕವಾಗಿ ಹೊರಗಿಡಲು `minimal` ಗೆ ಹೊಂದಿಸಿ). |
| `OMNIROUTE_STANDALONE_DIR` | _.build/ ಸ್ವತಂತ್ರ ಔಟ್ಪುಟ್_ | `scripts/build/colocate-standalone.mjs` | ಬಿಲ್ಡ್ ನಂತರದ ಸಹ-ಸ್ಥಾಪನೆ ಹಂತವು ಬಳಸುವ ಸ್ವತಂತ್ರ ಔಟ್ಪುಟ್ ಡೈರೆಕ್ಟರಿಗೆ ಬಿಲ್ಡ್-ಸಮಯದ ಅತಿಕ್ರಮಣ. ಇದು ರನ್ಟೈಮ್ ಸೆಟ್ಟಿಂಗ್ ಅಲ್ಲ. |
| `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, ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಲಿಂಕ್ಗಳು ಮತ್ತು ರಚಿಸಲಾದ ಸಾರ್ವಜನಿಕ URL ಗಳಿಗಾಗಿ ಸಾರ್ವಜನಿಕವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದಾದ 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` | ಯಾವುದೇ ಮೂಲವು ತಿಳಿದಿಲ್ಲದಿದ್ದಾಗ (SSR/ಪರೀಕ್ಷೆಗಳು) ಪ್ರದರ್ಶನ URL ಗಳಿಗಾಗಿ ಕ್ಲೈಂಟ್-ಸೈಡ್ ಫಾಲ್ಬ್ಯಾಕ್ ಪೋರ್ಟ್; `PORT` ಗಿಂತ ಮೊದಲು ಓದಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_PUBLIC_BASE_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | ಸಾರ್ವಜನಿಕ-ಮೂಲ ರೆಸಾಲ್ವರ್, ಚಿತ್ರ URL ಗಳು | ಸಾರ್ವಜನಿಕ URL ರಚನೆ ಮತ್ತು ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಅಲ್ಲದ ಬ್ರೌಸರ್-ಮೂಲ ಪರಿಶೀಲನೆಗಾಗಿ ಬಳಸಲಾಗುವ ಅತ್ಯುನ್ನತ-ಆದ್ಯತೆಯ ಬ್ರೌಸರ್-ಮುಖಿ OmniRoute ಮೂಲ. OpenWebUI ಅಥವಾ ಮತ್ತೊಂದು ರಿಲೇ ಆಂತರಿಕ URL ಮೂಲಕ OmniRoute ಅನ್ನು ತಲುಪಿದರೂ, ಬಳಕೆದಾರರ ಬ್ರೌಸರ್ ರಚಿಸಲಾದ ಮಾಧ್ಯಮವನ್ನು LAN, ಟನಲ್ ಅಥವಾ ಸಾರ್ವಜನಿಕ ಮೂಲದಿಂದ ಪಡೆಯಬೇಕಾದಾಗ ಇದನ್ನು ಹೊಂದಿಸಿ. `/v1` ಅನ್ನು ಸೇರಿಸಬೇಡಿ. |
| `OMNIROUTE_PROVIDER_MANIFEST_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/config/providerPluginManifestUrl.ts` | ಸೈಡ್ಕಾರ್ ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಪ್ರಕಟಿಸಲಾಗುವ ಸಂಪೂರ್ಣ ಪ್ರೊವೈಡರ್ ಪ್ಲಗಿನ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ URL. ಹೊಂದಿಸದಿದ್ದಾಗ, ವಿನಂತಿಯ ಮೂಲ ಅಥವಾ HOST/PORT ನಿಂದ OmniRoute `/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` ಟೋಕನ್-ಮುದ್ರಿತ ಲೂಪ್ಬ್ಯಾಕ್ ಪ್ರಾಕ್ಸಿಯಿಂದ ಮಾತ್ರ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾದ ಹೋಸ್ಟ್/ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ನಂಬುತ್ತದೆ. `private` / `lan` ಖಾಸಗಿ-LAN ಪ್ರಾಕ್ಸಿ ಪೀರ್ಗಳನ್ನೂ ನಂಬುತ್ತದೆ ಮತ್ತು `API_PORT` ಬ್ರಿಡ್ಜ್ಗೆ ಅಂತಹ ಪೀರ್ನ `X-Forwarded-For` ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ `NEXT_PUBLIC_BASE_URL` ಗೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `KIE_CALLBACK_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/utils/kieTask.ts` | ಅಸಮಕಾಲಿಕ 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` | ಅಸಮಕಾಲಿಕ ಕಾಲ್ಬ್ಯಾಕ್ URL ಗಳನ್ನು ರಚಿಸಲು ಬಳಸಲಾಗುವ ಸಾರ್ವಜನಿಕ ಮೂಲ. 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 ಗುರುತು ಹೆಡರ್ಗಳನ್ನು (User-Agent, x-opencode-client/project, ವಿನಂತಿ/ಸೆಷನ್ UUID ಗಳು) ಸಂಶ್ಲೇಷಿಸಿ, ಇದರಿಂದ VPS ಎಗ್ರೆಸ್ನಲ್ಲಿರುವ 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` ಅತಿಕ್ರಮಣವನ್ನು ಹೊಂದಿಸದಿರುವಾಗ ಬಳಸಲಾಗುವ ಡೀಫಾಲ್ಟ್ User-Agent. opencode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗಳಿಗೆ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ. ಅಪ್ಸ್ಟ್ರೀಮ್ ತಡೆಗಟ್ಟುವ ಕೀಲಿರಹಿತ ವಿನಂತಿಯಲ್ಲಿ, `opencode/= 1.17>` ಅನ್ನು ಹೊಂದಿರದ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಮೌಲ್ಯವನ್ನು ನಿರಾಕರಿಸುವ ಬದಲು ಈ ಡೀಫಾಲ್ಟ್ನಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_FORWARD_ATTRIBUTION` | `1` (ಸಕ್ರಿಯ) | `open-sse/utils/opencodeHeaders.ts` | ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್-ಗುಣಲಕ್ಷಣ ಹೆಡರ್ಗಳನ್ನು (`x-session-id`, `x-title`, `http-referer`) ಅಪ್ಸ್ಟ್ರೀಮ್ ಪೂರೈಕೆದಾರರಿಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ಪಟ್ಟಿಮಾಡಲಾದ ಹಾರ್ನೆಸ್ನೊಳಗೆ ಪ್ರಾರಂಭವಾಗುವ ವಿನಂತಿಯು ರೂಟರ್ನ ಮೂಲಕ ತನ್ನ ಗುರುತನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ (OpenRouter ಪ್ರಕಾಶಕರ ತಡೆಗಟ್ಟುಗಳು ಇವುಗಳನ್ನು ಆಧರಿಸಿವೆ). `0`/`false`/`no`/`off` ರಿಜಿಸ್ಟ್ರಿ/ಆಪರೇಟರ್ ಗುರುತನ್ನು ಉಳಿಸಿಕೊಂಡು, ಕ್ಲೈಂಟ್ ಒದಗಿಸಿದ ಮೌಲ್ಯಗಳನ್ನು ಕೈಬಿಡುತ್ತದೆ. ಆಪರೇಟರ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಕಸ್ಟಮ್ ಹೆಡರ್ಗಳು ಯಾವಾಗಲೂ ಕ್ಲೈಂಟ್ ಮೌಲ್ಯಗಳಿಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತವೆ. |
| `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` | ಅಪ್ಸ್ಟ್ರೀಮ್ ವೈಫಲ್ಯಗಳನ್ನು ಇಗ್ರೆಸ್ IP ಪ್ರಕಾರ ಬಕೆಟ್ ಮಾಡುವ ಪೂರೈಕೆದಾರರ ಪರಿಣಾಮಕಾರಿ ಸಮೂಹ (ಒಂದು 429 ಆ IP ಹಂಚಿಕೊಳ್ಳುವ ಪ್ರತಿಯೊಂದು ಸಹೋದರ ಸಂಪರ್ಕವನ್ನು ನಿಲುಗಡೆಗೊಳಿಸುತ್ತದೆ). ಹೊಂದಿಸದಿದ್ದರೆ ಉಚಿತ-ಶ್ರೇಣಿಯ ಡೀಫಾಲ್ಟ್ `opencode,opencode-go,opencode-cli` ಅನ್ನು ಬಳಸುತ್ತದೆ; `none`/`off`/`false`/`0` ಕ್ಯಾಸ್ಕೇಡ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ; ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಪಟ್ಟಿಯು ಸಮೂಹವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಪಾವತಿಸಿದ ಯೋಜನೆಗಳನ್ನು ಅಪ್ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಖಾತೆ ಪ್ರಕಾರ ಬಕೆಟ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಅವು ಇದನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು (#9611). |
| `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}`; ಅಮಾನ್ಯ ನಮೂದುಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_OLLAMA_CLOUD_USAGE_URL` | `https://ollama.com/settings` | `open-sse/services/usage.ts` | ಕೋಟಾ ಸ್ಕ್ರೇಪಿಂಗ್ಗಾಗಿ ಬಳಸುವ Ollama Cloud ಸೆಟ್ಟಿಂಗ್ಗಳ URL. ರಿಲೇಗಳು / ಪರೀಕ್ಷಾ ಫಿಕ್ಸ್ಚರ್ಗಳಿಗಾಗಿ ಅತಿಕ್ರಮಿಸಿ. |
| `OLLAMA_USAGE_COOKIE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/usage.ts` | ಸೆಟ್ಟಿಂಗ್ಗಳ ಪುಟದ ಕೋಟಾ ಸ್ಕ್ರೇಪಿಂಗ್ಗಾಗಿ ಬಳಸುವ Ollama Cloud `__Secure-session` ಕುಕೀ. ಸೂಕ್ಷ್ಮವಾದುದು; ಹಲವು ಖಾತೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವಾಗ ಪ್ರತಿ-ಸಂಪರ್ಕದ Dashboard ಕ್ಷೇತ್ರಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `OLLAMA_CLOUD_USAGE_COOKIE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/usage.ts` | ಪರ್ಯಾಯ Ollama Cloud `__Secure-session` ಕುಕೀ ಪರಿಸರ ಚರ. ಸೂಕ್ಷ್ಮವಾದುದು; ಹಲವು ಖಾತೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವಾಗ ಪ್ರತಿ-ಸಂಪರ್ಕದ Dashboard ಕ್ಷೇತ್ರಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/usage.ts` | ಚಿಕ್ಕ ಅಲಿಯಾಸ್ಗಳಿಗಿಂತ ಮೊದಲು ಬಳಸಲಾಗುವ ಪರ್ಯಾಯ Ollama Cloud `__Secure-session` ಕುಕೀ ಪರಿಸರ ಚರ. ಸೂಕ್ಷ್ಮವಾದುದು; ಹಲವು ಖಾತೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿರುವಾಗ ಪ್ರತಿ-ಸಂಪರ್ಕದ Dashboard ಕ್ಷೇತ್ರಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `OMNIROUTE_CODEWHISPERER_BASE_URL` | `https://codewhisperer.us-east-1.amazonaws.com` | `open-sse/services/usage.ts` | CodeWhisperer (AWS Kiro) ಬಳಕೆಯ ಮಿತಿಗಳ ಎಂಡ್ಪಾಯಿಂಟ್. ರಿಲೇಗಳು / ಪರೀಕ್ಷಾ ಫಿಕ್ಸ್ಚರ್ಗಳಿಗಾಗಿ ಅತಿಕ್ರಮಿಸಿ. |
> [!IMPORTANT]
> ರಿವರ್ಸ್ ಪ್ರಾಕ್ಸಿ (nginx, Caddy) ಹಿಂದೆ ನಿಯೋಜಿಸುವಾಗ, OAuth ಕಾಲ್ಬ್ಯಾಕ್ಗಳು ಅಥವಾ ರಚಿಸಲಾದ ಸಾರ್ವಜನಿಕ ಲಿಂಕ್ಗಳು ಆ ಹೋಸ್ಟ್ಹೆಸರನ್ನು ಬಳಸಬೇಕಿದ್ದರೆ `NEXT_PUBLIC_BASE_URL` ಅನ್ನು ನಿಮ್ಮ ಸ್ಥಿರ ಸಾರ್ವಜನಿಕ URL ಗೆ (ಉದಾ., `https://omniroute.example.com`) ಹೊಂದಿಸಿ. ಇದನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, redirect_uri ಹೊಂದಿಕೆಯಾಗದ ಕಾರಣ OAuth ಕಾಲ್ಬ್ಯಾಕ್ಗಳು ವಿಫಲವಾಗಬಹುದು ಮತ್ತು ರಚಿಸಲಾದ ಸಾರ್ವಜನಿಕ ಲಿಂಕ್ಗಳು ಆಂತರಿಕ ಕಂಟೇನರ್ ಮೂಲವನ್ನು ಸೂಚಿಸಬಹುದು.
>
> ಸರ್ವರ್ನಿಂದ ಸರ್ವರ್ಗೆ ನಡೆಯುವ ಕಾರ್ಯಗಳಿಗಾಗಿ `BASE_URL` ಅನ್ನು ಆಂತರಿಕ ಲೂಪ್ಬ್ಯಾಕ್/ಕಂಟೇನರ್ URL ಆಗಿಯೇ ಇರಿಸಿ. ರುಜುವಾತುಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಆಂತರಿಕ ಸ್ವಯಂ-ಪಡೆಯುವಿಕೆಗಳಿಗಾಗಿ ಬ್ರೌಸರ್ `Origin` ಅಥವಾ ಸಾರ್ವಜನಿಕ ಹೋಸ್ಟ್ಹೆಸರನ್ನು ಬಳಸಬೇಡಿ.
>
> ದೃಢೀಕೃತ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಬರಹ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಸ್ಥಿರ ಸಾರ್ವಜನಿಕ ಮೂಲ URL ಅಗತ್ಯವಿಲ್ಲ: ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಸೆಷನ್ಗೆ ಬದ್ಧವಾದ CSRF ಟೋಕನ್ನೊಂದಿಗೆ ಅದೇ ಮೂಲದ ಅಸುರಕ್ಷಿತ ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗೆ ಸೇರದ ಬ್ರೌಸರ್ ಏಕೀಕರಣಗಳಿಗಾಗಿ ಸಾರ್ವಜನಿಕ-ಮೂಲದ ಮೌಲ್ಯಮಾಪನವನ್ನು OmniRoute ಇನ್ನೂ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ: ಸ್ಪಷ್ಟ ಸಾರ್ವಜನಿಕ URL ಪರಿಸರ ಚರಾಂಕಗಳನ್ನು ಮೊದಲು ವಿಶ್ವಾಸಾರ್ಹವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ; `OMNIROUTE_TRUST_PROXY` ಸಕ್ರಿಯಗೊಳಿಸಲ್ಪಟ್ಟು, ತಕ್ಷಣದ ಪ್ರಾಕ್ಸಿ ಪಿಯರ್ ಅನ್ನು ಟೋಕನ್ ಮೂಲಕ ವಿಶ್ವಾಸಾರ್ಹವೆಂದು ಗುರುತಿಸದ ಹೊರತು ಕಚ್ಚಾ `Forwarded` / `X-Forwarded-*` ಹೆಡರ್ಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಅದೇ ಮೂಲದ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ವಿನಂತಿಗಳನ್ನು ಸರಿಪಡಿಸಲು CORS ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಬೇಡಿ; CORS ಕೇವಲ ವಿಭಿನ್ನ ಮೂಲದ ಬ್ರೌಸರ್ ಕ್ಲೈಂಟ್ಗಳಿಗಾಗಿ ಮಾತ್ರ.
---
## 8. ಔಟ್ಬೌಂಡ್ ಪ್ರಾಕ್ಸಿ
ಎಗ್ರೆಸ್ ನಿಯಂತ್ರಣ, ಜಿಯೋ-ರೂಟಿಂಗ್ ಅಥವಾ IP ಮರೆಮಾಚುವಿಕೆಗಾಗಿ ಅಪ್ಸ್ಟ್ರೀಮ್ LLM ಪೂರೈಕೆದಾರರ ಕರೆಗಳನ್ನು HTTP ಅಥವಾ SOCKS5 ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ರೂಟ್ ಮಾಡಿ.
`OMNIROUTE_UPSTREAM_HTTP2_ENABLED` ಡೀಫಾಲ್ಟ್ ಆಗಿ `true` ಆಗಿರುತ್ತದೆ. `open-sse/utils/proxyDispatcher.ts` ಮತ್ತು `open-sse/utils/proxyFetch.ts` ನಲ್ಲಿನ Undici ಡಿಸ್ಪ್ಯಾಚರ್ಗಳಿಗೆ—ನೇರ ಎಗ್ರೆಸ್, HTTP(S)/SOCKS ಪ್ರಾಕ್ಸಿಗಳು, ರಿಲೇಗಳು ಮತ್ತು ಅವುಗಳ ಹೊಸ-ಸಾಕೆಟ್ ಮರುಪ್ರಯತ್ನಗಳಿಗೆ—HTTP/1.1 ಅನ್ನು ಒತ್ತಾಯಿಸಲು ಅದನ್ನು `false`, `0`, `no` ಅಥವಾ `off` ಗೆ ಹೊಂದಿಸಿ. ಇದು TLS ಪ್ರಮಾಣಪತ್ರ ಪರಿಶೀಲನೆ, ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣ, ಸಂಪರ್ಕ ಮಿತಿಗಳು ಮತ್ತು ಕೀಪ್-ಅಲೈವ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಉಳಿಸುತ್ತದೆ. ಡಿಸ್ಪ್ಯಾಚರ್ಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡಲಾಗುವುದರಿಂದ ಮತ್ತು ರಿಲೇ ಏಜೆಂಟ್ಗಳನ್ನು ಪ್ರಾರಂಭದ ಸಮಯದಲ್ಲಿ ರಚಿಸಲಾಗುವುದರಿಂದ, ಇದನ್ನು ಬದಲಾಯಿಸಿದ ನಂತರ OmniRoute ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ. ಈ ಸ್ವಿಚ್ wreq TLS ಫಿಂಗರ್ಪ್ರಿಂಟಿಂಗ್ ಅಥವಾ ಪೂರೈಕೆದಾರ-ನಿರ್ದಿಷ್ಟ ಟ್ರಾನ್ಸ್ಪೋರ್ಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ.
| ಚರಾಂಶ | ಪೂರ್ವನಿಯೋಜಿತ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------------------- | ----------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ENABLE_SOCKS5_PROXY` | `true` | `open-sse/executors` | ಅಪ್ಸ್ಟ್ರೀಮ್ ಕರೆಗಳಿಗಾಗಿ SOCKS5 ಪ್ರಾಕ್ಸಿ ಏಜೆಂಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ. `false` ಮೂಲಕ ಹೊರಗುಳಿಯಿರಿ. |
| `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` | ಲೂಪ್ಬ್ಯಾಕ್ನ ಆಚೆಗಿನ ಲೋಕಲ್-ಕೋರ್ ಸೆಲೆಕ್ಟರ್-ನಿಯಂತ್ರಣ ಗುರಿಗಳ ಅನುಮತಿ ಪಟ್ಟಿ (ಅಲ್ಪವಿರಾಮ/ಸ್ಪೇಸ್ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಿದ ಹೋಸ್ಟ್ಗಳು ಅಥವಾ IPಗಳು; `*` LAN/ಖಾಸಗಿ ಜಾಲವನ್ನು ತೆರೆಯುತ್ತದೆ, ಆದರೆ ಮೆಟಾಡೇಟಾ/ಲಿಂಕ್-ಲೋಕಲ್ ಅನ್ನು ಎಂದಿಗೂ ತೆರೆಯುವುದಿಲ್ಲ). http/https ಮೂಲಕ ಲೂಪ್ಬ್ಯಾಕ್ಗೆ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಅನುಮತಿ ಇದೆ. ಹೊಂದಿಸಲ್ಪಟ್ಟ ಮತ್ತು ಖಾಲಿಯಲ್ಲದ ಡ್ಯಾಶ್ಬೋರ್ಡ್ DB ಮೌಲ್ಯಕ್ಕೆ ಈ ಚರಾಂಶಕ್ಕಿಂತ ಆದ್ಯತೆ ಇರುತ್ತದೆ. |
| `PROXY_QUOTA_429_BASE_MS` | `300000` | `open-sse/utils/proxyRefusalMemory.ts` | 429 ಅನ್ನು ಬದಿಗಿಡುವ ಮೂಲ ಅವಧಿ (ms); ಪ್ರತಿ ಪುನರಾವರ್ತನೆಯಲ್ಲೂ ದ್ವಿಗುಣಗೊಳ್ಳುತ್ತದೆ. ಪ್ರಾರಂಭದ ವೇಳೆ ಒಮ್ಮೆ ಓದಲಾಗುತ್ತದೆ. `1000..3600000` ಮಿತಿಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ; ವ್ಯಾಪ್ತಿಯಿಂದ ಹೊರಗಿನ ಅಥವಾ ಓದಲಾಗದ ಮೌಲ್ಯವು ಎಚ್ಚರಿಕೆಯೊಂದಿಗೆ ಪೂರ್ವನಿಯೋಜಿತ ಮೌಲ್ಯಕ್ಕೆ ಮರಳುತ್ತದೆ. |
| `PROXY_QUOTA_429_MAX_MS` | `900000` | `open-sse/utils/proxyRefusalMemory.ts` | 429 ಅನ್ನು ಬದಿಗಿಡುವ ಅವಧಿಯ ಗರಿಷ್ಠ ಮಿತಿ (ms). ಪ್ರಾರಂಭದ ವೇಳೆ ಒಮ್ಮೆ ಓದಲಾಗುತ್ತದೆ. `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` ವೆಬ್ಹುಕ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಮಿತಿಗೊಳಿಸುವ ರೀಬೌಂಡ್ ವಿಂಡೋ (ms), ಇದರಿಂದ ನಿರಾಕರಣೆಗಳ ದಿಢೀರ್ ಗುಚ್ಛವು ಒಂದೇ ಈವೆಂಟ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಪ್ರತಿ ಹೊರಸೂಸುವಿಕೆಯಲ್ಲೂ ಓದಲಾಗುತ್ತದೆ. `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` | ಪ್ರಾಕ್ಸಿ ಎಗ್ರೆಸ್ ಪ್ರೋಬ್ಗಳು ಬಳಸುವ ಎಕೋ-IP ಗುರಿಯನ್ನು ಒಂದೇ URL ಗೆ ನಿಗದಿಪಡಿಸುತ್ತದೆ. ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ, ಪ್ರೋಬ್ ಮೊದಲು `api64.ipify.org` ಮತ್ತು ನಂತರ `api4.ipify.org` ಅನ್ನು ಪ್ರಯತ್ನಿಸುತ್ತದೆ; ಇದರಿಂದ IPv4-ಮಾತ್ರ ಟನಲ್ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯವೆಂದು ವರದಿ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಲಾಗುತ್ತದೆ (#9694). |
| `NO_PROXY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | Node.js ಮಾನದಂಡ | ಪ್ರಾಕ್ಸಿಯನ್ನು ಬಿಟ್ಟು ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸಲು ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಹೋಸ್ಟ್ಹೆಸರುಗಳು/IPಗಳು. |
| `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 ವಿನಂತಿಗಳು) ಇದನ್ನು ಹೆಚ್ಚಿಸಿ — ಪ್ರಾಕ್ಸಿಯನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಿದ್ದರೂ, ಪೂಲ್ನ ಸಾಮರ್ಥ್ಯ ಸಂಪೂರ್ಣವಾಗಿ ಬಳಕೆಯಲ್ಲಿರುವಾಗ ನೈಜ ಹ್ಯಾಂಡ್ಶೇಕ್ 10s ಮೀರಬಹುದು; ಇಲ್ಲದಿದ್ದರೆ ಇದು ತಪ್ಪಾಗಿ `[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`) ಅನ್ನು ಹೊರತುಪಡಿಸಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ Chrome JA3 Cloudflare 1010 ಅನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ, ಆದರೆ ಸ್ಥಳೀಯ undici API ಅನ್ನು ತಲುಪುತ್ತದೆ. |
| `OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS` | `false` | `open-sse/services/claudeTurnstileSolver.ts` | Claude Turnstile Playwright ಬ್ರೌಸರ್ ಕಾಂಟೆಕ್ಸ್ಟ್ಗೆ HTTPS ಪ್ರಮಾಣಪತ್ರ ದೋಷಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. |
### ಸನ್ನಿವೇಶಗಳು
| ಸನ್ನಿವೇಶ | ಸಂರಚನೆ |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **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` ಆಗಿಯೇ ಬಿಡಿ (ಡೀಫಾಲ್ಟ್). ಪ್ರಾಕ್ಸಿ ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ ವಿನಂತಿಗಳು ನೇರ ಸಂಪರ್ಕದ ಮೂಲಕ ಸೋರಿಕೆಯಾಗುವ ಬದಲು ಸಂಪೂರ್ಣವಾಗಿ ವಿಫಲಗೊಳ್ಳುತ್ತವೆ. |
| **ಹಿಂದಿನ / ಡೆವ್ — ನೇರ ಹಿಂತಿರುಗುವಿಕೆಗೆ ಅನುಮತಿ** | `PROXY_FAIL_OPEN=true`. ಬಲಪಡಿಸುವಿಕೆಗೂ ಮುಂಚಿನ ವರ್ತನೆಯನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ: ಪ್ರಾಕ್ಸಿ ಪರಿಹಾರ ವಿಫಲವಾದಾಗ ನೇರ ಸಂಪರ್ಕವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. |
> **ಸೂಚನೆ (NVIDIA ಮೌಲ್ಯೀಕರಣ ಬೈಪಾಸ್ — #3226):** ಜಾಗತಿಕ ಪ್ರಾಕ್ಸಿ/TLS-ಪ್ಯಾಚ್ ಮಾಡಿದ fetch ಮೂಲಕ ರೂಟ್ ಮಾಡಿದಾಗ
> NVIDIA ಯ API-ಕೀ ಮೌಲ್ಯೀಕರಣ ಎಂಡ್ಪಾಯಿಂಟ್ ಸ್ಥಗಿತಗೊಳ್ಳುತ್ತದೆ (undici ಡಿಸ್ಪ್ಯಾಚರ್ → 504).
> ಆ ಒಂದು ಮೌಲ್ಯೀಕರಣ ಕರೆಯುವಿಕೆಗಾಗಿ `safeOutboundFetch({ bypassProxyPatch: true })` ಬಳಸಿ
> `src/lib/providers/validation.ts::directHttpsRequest()` ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಪ್ರಾಕ್ಸಿ ಪ್ಯಾಚ್ ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡುತ್ತದೆ.
> ಇದು ದಾಖಲಿತ, ವ್ಯಾಪ್ತಿ-ಸೀಮಿತ ವಿನಾಯಿತಿ — ಇದು ಚಾಟ್/ಬಳಕೆಯ ಎಗ್ರೆಸ್ ಮೇಲೆ **ಯಾವುದೇ** ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.
> ಬೈಪಾಸ್ನ ವ್ಯಾಪ್ತಿಯನ್ನು `tests/unit/proxy-bypass-scope-guard-3226.test.ts` ಮೂಲಕ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ.
---
## 9. CLI ಉಪಕರಣ ಏಕೀಕರಣ
OmniRoute CLI ಸೈಡ್ಕಾರ್ಗಳನ್ನು (Claude Code, 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 ಕಾನ್ಫಿಗ್ಗಳನ್ನು (`~/.claude`, `~/.codex`) ಓದಲು ಬಳಸುವ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಅತಿಕ್ರಮಿಸಿ. ಇದು ನಿರಪೇಕ್ಷವಾಗಿರಬೇಕು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯ ಹೋಮ್ನ ಒಳಗಿರಬೇಕು — **ಅಥವಾ**, ಕಂಟೇನರ್ನಲ್ಲಿ, bind-mounted ಪಥವಾಗಿರಬೇಕು (`/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ನ ಸಿಸ್ಟಮ್ ಸ್ಥಿತಿ ಡೈರೆಕ್ಟರಿ (root ಮಾಲೀಕತ್ವದ ದೃಢೀಕರಣ ಪ್ರೊಫೈಲ್ಗಳು); 5diveನ ಸ್ವಂತ STATE_DIR ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. |
| `CLI_CONTINUE_BIN` | `cn` | `src/shared/services/cliRuntime.ts` | Continue CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_QODER_BIN` | `qodercli` | `src/shared/services/cliRuntime.ts` | Qoder CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_QWEN_BIN` | `qwen` | `src/shared/services/cliRuntime.ts` | Qwen Code CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_AIDER_BIN` | `aider` | `src/shared/services/cliRuntime.ts` | Aider CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_GOOSE_BIN` | `goose` | `src/shared/services/cliRuntime.ts` | Goose CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_GEMINI_BIN` | `gemini` | `src/shared/services/cliRuntime.ts` | Google Gemini CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ — ಸರ್ವರ್-ಬದಿಯ ಪತ್ತೆ/ಸ್ಥಿತಿ ಪರಿಶೀಲನೆಗಳಿಗೆ ಮಾತ್ರ; `omniroute run gemini` ಸಿಸ್ಟಮ್ PATHನಿಂದ `gemini` ಬೈನರಿಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. |
| `CLI_KILO_BIN` | `kilocode` | `src/shared/services/cliRuntime.ts` | Kilo Code CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_OPENCODE_BIN` | `opencode` | `src/shared/services/cliRuntime.ts` | OpenCode CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_HERMES_BIN` | `hermes` | `src/shared/services/cliRuntime.ts` | Hermes ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. ಎರಡೂ ಕ್ಯಾಟಲಾಗ್ ನಮೂದುಗಳು (`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` | Pi (pi-coding-agent) ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_CRUSH_BIN` | `crush` | `src/shared/services/cliRuntime.ts` | Crush CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_OMP_BIN` | `omp` | `src/shared/services/cliRuntime.ts` | Oh My Pi (`omp`) ಏಜೆಂಟ್ ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_LETTA_BIN` | `letta` | `src/shared/services/cliRuntime.ts` | Letta CLI ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLI_PRIME_AGENT_BIN` | `prime-agent` | `src/shared/services/cliRuntime.ts` | Prime Agent (Prime Intellect) ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `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 Desktop `ide_version`. ಓವರ್ರೈಡ್ಗಳು `x.y.z` ಸ್ವರೂಪವನ್ನು ಬಳಸಬೇಕು; ಅಮಾನ್ಯ ಮೌಲ್ಯಗಳು ಪರಿಶೀಲಿತ ಡೀಫಾಲ್ಟ್ಗೆ ಹಿಂತಿರುಗುತ್ತವೆ. |
| `DEVIN_DESKTOP_EXTENSION_VERSION` | `1.48.2` | `open-sse/executors/devin-desktop.ts` | ಬಂಡಲ್ ಮಾಡಲಾದ Codeium/language-server `extension_version`, ಇದು Desktop `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` | ಏಜೆಂಟಿಕ್ 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 Code ಮಾದರಿ ಅಲಿಯಾಸ್. ಲೈವ್ ಹಾರ್ನೆಸ್ ಉದಾಹರಣೆಯನ್ನು ಪ್ರಸ್ತುತ Devin ಖಾತೆಯಿಂದ ಹಿಂದಿರುಗಿಸಲಾದ ಮಾದರಿಯಿಂದ ಬದಲಾಯಿಸುತ್ತದೆ. |
| `DEVIN_BRIDGE_SONNET_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code ತನ್ನ Sonnet ಡೀಫಾಲ್ಟ್ ಅನ್ನು ವಿನಂತಿಸಿದಾಗ ಬಳಸಲಾಗುವ ಪ್ರತ್ಯೇಕಿತ ಬ್ರಿಡ್ಜ್ ಅಲಿಯಾಸ್. |
| `DEVIN_BRIDGE_OPUS_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code ತನ್ನ Opus ಡೀಫಾಲ್ಟ್ ಅನ್ನು ವಿನಂತಿಸಿದಾಗ ಬಳಸಲಾಗುವ ಪ್ರತ್ಯೇಕಿತ ಬ್ರಿಡ್ಜ್ ಅಲಿಯಾಸ್. |
| `DEVIN_BRIDGE_HAIKU_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code ತನ್ನ Haiku ಡೀಫಾಲ್ಟ್ ಅನ್ನು ವಿನಂತಿಸಿದಾಗ ಬಳಸಲಾಗುವ ಪ್ರತ್ಯೇಕಿತ ಬ್ರಿಡ್ಜ್ ಅಲಿಯಾಸ್. |
| `DEVIN_BRIDGE_SUBAGENT_MODEL` | `DEVIN_BRIDGE_MODEL` | `docker/devin-bridge/compose.yml` | Claude Code ಉಪಏಜೆಂಟ್ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುವ ಪ್ರತ್ಯೇಕಿತ ಬ್ರಿಡ್ಜ್ ಅಲಿಯಾಸ್. |
| `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` ಪೂರೈಕೆದಾರ ಬಳಸುವ Augment (Auggie) CLI ಬೈನರಿಗಾಗಿ ಸಂಪೂರ್ಣ-ಪಥದ ಓವರ್ರೈಡ್. ಮೊದಲು `CLI_AUGGIE_BIN` ಗೆ, ನಂತರ PATH ಹುಡುಕಾಟಕ್ಕೆ ಫಾಲ್ಬ್ಯಾಕ್ ಆಗುತ್ತದೆ. |
| `CLI_AUGGIE_BIN` | `auggie` | `open-sse/executors/auggie.ts` | Augment (Auggie) CLI ಬೈನರಿ ಪಥದ ಪರ್ಯಾಯ-ಹೆಸರಿನ ಓವರ್ರೈಡ್ (`AUGGIE_BIN` ನಂತರ ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ). |
| `ZCODE_BIN` | `zcode` | `open-sse/executors/zcode.ts` | ಸ್ಥಳೀಯ `zcode` ಪೂರೈಕೆದಾರರ stdio ಕ್ಲೈಂಟ್ಗಾಗಿ ಬಳಸುವ ಬೈನರಿ. PATH ನಲ್ಲಿ `zcode` ಗೆ ಫಾಲ್ಬ್ಯಾಕ್ ಆಗುತ್ತದೆ. |
| `ZCODE_ARGS` | — | `open-sse/executors/zcode.ts` | `cliTools` ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿದಾಗ `zcode` ಬೈನರಿಗೆ ರವಾನಿಸುವ ಹೆಚ್ಚುವರಿ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳ JSON ಅರೆ (≤16 ಸ್ಟ್ರಿಂಗ್ಗಳು). |
| `ZCODE_CWD` | `process.cwd()` | `open-sse/executors/zcode.ts` | ZCode ಆ್ಯಪ್-ಸರ್ವರ್ ಉಪಪ್ರಕ್ರಿಯೆಯ ಕಾರ್ಯನಿರ್ವಹಣಾ ಡೈರೆಕ್ಟರಿ. |
| `ZCODE_PROVIDER_ID` | `builtin:zai-coding-plan` | `open-sse/executors/zcode.ts` | ಆ್ಯಪ್-ಸರ್ವರ್ಗೆ ಕಳುಹಿಸುವ ಪೂರೈಕೆದಾರ 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 ಆ್ಯಪ್-ಸರ್ವರ್ ಅನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಬಳಸುವ Node ಎಕ್ಸಿಕ್ಯೂಟಬಲ್. |
| `ZCODE_SERVER_ENTRY` | `/zcode-server.cjs` | `open-sse/executors/zcode.ts` | ZCode ಸರ್ವರ್ ಅನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಬಳಸುವ ಆ್ಯಪ್-ಸರ್ವರ್ ಪ್ರವೇಶ ಸ್ಕ್ರಿಪ್ಟ್. |
| `ZCODE_STARTUP_TIMEOUT_MS` | `10000` | `open-sse/executors/zcode.ts` | ZCode ಆ್ಯಪ್-ಸರ್ವರ್ ಪ್ರಾರಂಭಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸುವ ಮೊದಲು ಇರುವ ಆರಂಭಿಕ ಕಾಲಾವಧಿ ಮಿತಿ (ms). |
| `ZCODE_RPC_TIMEOUT_MS` | `30000` | `open-sse/executors/zcode.ts` | ZCode ಆ್ಯಪ್-ಸರ್ವರ್ ಕರೆಗೆ ಪ್ರತಿ ವಿನಂತಿಯ RPC ಕಾಲಾವಧಿ ಮಿತಿ (ms). |
| `ZCODE_TURN_TIMEOUT_MS` | `120000` | `open-sse/executors/zcode.ts` | ಮೇಲ್ವಿಚಾರಕವು ಕಾಲಾವಧಿ ಮೀರಿದೆ ಎಂದು ಪರಿಗಣಿಸುವ ಮೊದಲು ಒಂದು ZCode ಸರದಿಯ ಗರಿಷ್ಠ ಅವಧಿ (ms). |
| `ZCODE_POLL_INTERVAL_MS` | `250` | `open-sse/executors/zcode.ts` | ZCode ಸರದಿ ಪೂರ್ಣಗೊಳ್ಳುವಿಕೆಗಾಗಿ ಪೋಲಿಂಗ್ ಮಧ್ಯಂತರ (ms). |
| `HERMES_HOME` | `~/.hermes` | `src/lib/cli-helper/config-generator/hermesHome.ts` | OmniRoute, Hermes CLI ಸಂರಚನೆಯನ್ನು ಓದುವ/ಬರೆಯುವ Hermes Agent ಹೋಮ್ ಡೈರೆಕ್ಟರಿ. Windows ನಲ್ಲಿ Hermes PowerShell ಸ್ಥಾಪಕ ಹೊಂದಿಸುವ ಪರಿಸರ ಚರಕ್ಕೆ (`%LOCALAPPDATA%\hermes`) ಇದು ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. |
### CLI ಪ್ರೊಫೈಲ್ ಸ್ವಯಂ-ಸಿಂಕ್
ಈ ವೈಶಿಷ್ಟ್ಯ ಫ್ಲ್ಯಾಗ್ಗಳು ಸ್ವಯಂ-ಆಯ್ಕೆಯವಾಗಿದ್ದು, ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತವೆ. ಅವುಗಳನ್ನು
CLI Code ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಿಂದಲೂ ಟಾಗಲ್ ಮಾಡಬಹುದು.
| ಚರ | ಪೂರ್ವನಿಯೋಜಿತ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ------------------------------------- | ------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_AUTO_SYNC_CODEX_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ಪೂರೈಕೆದಾರರ ಮಾದರಿ ಸಿಂಕ್ ನಂತರ, ಲೈವ್ ಕ್ಯಾಟಲಾಗ್ನಿಂದ `~/.codex/*.config.toml` ಪ್ರೊಫೈಲ್ ಫೈಲ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಬರೆಯುತ್ತದೆ. `CLI_ALLOW_CONFIG_WRITES` ಅಗತ್ಯವಿದೆ; ಸಕ್ರಿಯ/ಪೂರ್ವನಿಯೋಜಿತ Codex ಸಂರಚನೆ, ದೃಢೀಕರಣ, Codex-lb ಸೆಟ್ಟಿಂಗ್ಗಳು ಅಥವಾ ಪೂರೈಕೆದಾರರ ಆಯ್ಕೆಯನ್ನು ಎಂದಿಗೂ ಬದಲಾಯಿಸುವುದಿಲ್ಲ. |
| `OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ಪೂರೈಕೆದಾರರ ಮಾದರಿ ಸಿಂಕ್ ನಂತರ, ಲೈವ್ ಕ್ಯಾಟಲಾಗ್ನಿಂದ `~/.claude/profiles//settings.json` Claude Code ಪ್ರೊಫೈಲ್ ಫೈಲ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಬರೆಯುತ್ತದೆ. `CLI_ALLOW_CONFIG_WRITES` ಅಗತ್ಯವಿದೆ; ಸಕ್ರಿಯ/ಪೂರ್ವನಿಯೋಜಿತ Claude ಸಂರಚನೆ, ದೃಢೀಕರಣ ಅಥವಾ ಪೂರೈಕೆದಾರರ ಆಯ್ಕೆಯನ್ನು ಎಂದಿಗೂ ಬದಲಾಯಿಸುವುದಿಲ್ಲ. |
### Docker ಉದಾಹರಣೆ
```bash
# ಹೋಸ್ಟ್ ಬೈನರಿಗಳನ್ನು ಕಂಟೇನರ್ಗೆ ಮೌಂಟ್ ಮಾಡಿ ಮತ್ತು ಅವು ಎಲ್ಲಿವೆ ಎಂಬುದನ್ನು OmniRoute ಗೆ ತಿಳಿಸಿ:
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` ಪಥವನ್ನು ಹೋಸ್ಟ್ನಿಂದ ನಿಜವಾಗಿಯೂ ಬೈಂಡ್-ಮೌಂಟ್ ಮಾಡಿದಾಗ ಮಾತ್ರ ಅದು ಪರಿಣಾಮ ಬೀರುತ್ತದೆ —
ಅದನ್ನು `~/.codex:/host-home/.codex:rw` ನಂತಹ ಮೌಂಟ್ಗಳೊಂದಿಗೆ ಜೋಡಿಸಿ (`docker-compose.yml` ನಲ್ಲಿನ
`host` ಪ್ರೊಫೈಲ್ ನೋಡಿ). ಕಂಟೇನರ್ ಬಳಕೆದಾರರ ಹೋಮ್ ಒಳಗಿಲ್ಲದ ಮತ್ತು ಬೈಂಡ್ ಮೌಂಟ್ ಕೂಡ ಅಲ್ಲದ
ಪಥವನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಕಂಟೇನರ್ ಅನ್ನು ಮರುರಚಿಸಿದಾಗ ಅಲ್ಲಿ ಬರೆದಿರುವುದು
ತೆಗೆದುಹಾಕಲ್ಪಡುತ್ತದೆ.
ಇಮೇಜ್ `USER node` ಆಗಿ ರನ್ ಆಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಮೌಂಟ್ ಮಾಡದ `/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`. |
### CLI ಬೈನರಿ (`omniroute`) ಸಹಾಯಕಗಳು
ಈ ವೇರಿಯೇಬಲ್ಗಳು `omniroute` CLI ಬೈನರಿಯ ಸ್ವಂತ ವರ್ತನೆಯನ್ನು ಹೊಂದಿಸುತ್ತವೆ (ಮೇಲಿನ ಸೈಡ್ಕಾರ್
ಪತ್ತೆಹಚ್ಚುವಿಕೆಯನ್ನಲ್ಲ).
| ವೇರಿಯೇಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ------------------------------------- | --------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_LANG` | _(ಸಿಸ್ಟಮ್)_ | `bin/cli/i18n.mjs` | CLI ಔಟ್ಪುಟ್ ಭಾಷೆಯನ್ನು ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ ಹೊಂದಿಸಿ. BCP-47 ಲೊಕೇಲ್ (ಉದಾ. `en`, `pt-BR`). ಸಿಸ್ಟಮ್ ಲೊಕೇಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳನ್ನು (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 ಕಾಲಮಿತಿ (ms). |
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | ಕಾಲಮಿತಿ ಎಚ್ಚರಿಕೆಯನ್ನು ಮುದ್ರಿಸುವ ಮೊದಲು CLI ಸರ್ವರ್ ಹೆಲ್ತ್ ಎಂಡ್ಪಾಯಿಂಟ್ಗಾಗಿ ಕಾಯುವ ಗರಿಷ್ಠ ಸಮಯ (ms). ನಿಧಾನವಾದ ಕೋಲ್ಡ್ ಸ್ಟಾರ್ಟ್ಗಳಿಗೆ (ಉದಾ. Windows) ಉಪಯುಕ್ತವಾಗಿದೆ. `--ready-timeout` ಮೂಲಕವೂ ಹೊಂದಿಸಬಹುದು. |
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI ಕಮಾಂಡ್ಗಳ ಸಮಯದಲ್ಲಿ ಮರುಪ್ರಯತ್ನ/ಬ್ಯಾಕ್ಆಫ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಗಳನ್ನು stderr ಗೆ ಮುದ್ರಿಸಲು `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 ಅಪ್ಡೇಟ್ ಅಧಿಸೂಚನೆಯನ್ನು ತಡೆಹಿಡಿಯಿರಿ. CI, ನಿಶ್ಶಬ್ದ ಮೋಡ್ ಮತ್ತು ಪಠ್ಯೇತರ ಔಟ್ಪುಟ್ ಮೋಡ್ಗಳಲ್ಲಿ ಈ ಸೂಚನೆ ಸ್ವತಂತ್ರವಾಗಿ ನಿಷ್ಕ್ರಿಯವಾಗಿಯೇ ಇರುತ್ತದೆ. |
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | _(ವ್ಯುತ್ಪನ್ನ)_ | `bin/cli/commands/doctor.mjs` | `omniroute doctor` ಪರಿಶೀಲಿಸುವ ಲೈವ್ನೆಸ್ URL. ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್ `livenessUrl` ಆಯ್ಕೆಗೆ ಆದ್ಯತೆ ಇರುತ್ತದೆ; ಇಲ್ಲದಿದ್ದರೆ ಈ ಮೌಲ್ಯವನ್ನು ಯಥಾರೂಪದಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ಹೊಂದಿಸದಿದ್ದರೆ, CLI ಸ್ಥಳೀಯ ಡ್ಯಾಶ್ಬೋರ್ಡ್ನ `/api/health/degradation` ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ವ್ಯುತ್ಪನ್ನಗೊಳಿಸುತ್ತದೆ. |
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | CLI ಪ್ರೊವೈಡರ್ ಕಮಾಂಡ್ಗಳು ಬಳಸುವ ಪ್ರೊವೈಡರ್ ಕ್ಯಾಟಲಾಗ್ ಪಥ. ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್ `catalogPath` ಆಯ್ಕೆಗೆ ಆದ್ಯತೆ ಇರುತ್ತದೆ. ಸಂಪೂರ್ಣ ಪಥಗಳನ್ನು ಯಥಾರೂಪದಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ; ಸಾಪೇಕ್ಷ ಪಥಗಳು ಪ್ರಾಜೆಕ್ಟ್ ರೂಟ್ನಿಂದ ಪರಿಹರಿಸಲ್ಪಡುತ್ತವೆ. ಹೊಂದಿಸದಿದ್ದರೆ, CLI ಪ್ರೊವೈಡರ್ ಸ್ಥಿರಾಂಕಗಳ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಹಳೆಯ `providers.ts` ಫೈಲ್ ಅನ್ನು ಫಾಲ್ಬ್ಯಾಕ್ ಆಗಿ ಬಳಸುತ್ತದೆ. |
| `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. localhost ಸ್ವಯಂ-ಪತ್ತೆಯನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ. |
| `OMNIROUTE_API_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | MCP/A2A ಮಾಡ್ಯೂಲ್ಗಳು | ಆಂತರಿಕ MCP ಪರಿಕರ ಮತ್ತು 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` | ಆಫ್ಲೈನ್/ಸ್ಥಳೀಯ Issue Agent ದಾಖಲಿತ-ಟ್ರಯಾಜ್ ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಸ್ಥಳೀಯ ದಾಖಲಿತ-ಟ್ರಯಾಜ್ ಕಾರ್ಯಪ್ರವಾಹಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಚಲಾಯಿಸುತ್ತಿರುವಾಗ ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸಿ. |
| `OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/issueAgent/execution.ts` | ಒಂದು Issue Agent ದಾಖಲಿತ-ಟ್ರಯಾಜ್ ಚಾಲನೆಗಾಗಿ ಕಾಲಮಿತಿ (ms). ಆಂತರಿಕ ಗರಿಷ್ಠ ಮಿತಿಗೆ ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ; ಹೊಂದಿಸದಿದ್ದಾಗ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದ್ದಾಗ ಅಂತರ್ನಿರ್ಮಿತ ಡೀಫಾಲ್ಟ್ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. |
| `OMNIROUTE_CONTEXT` | _(ಸಕ್ರಿಯ ಸಂದರ್ಭ)_ | `bin/cli/program.mjs`, `bin/cli/api.mjs` | `omniroute` ಕಮಾಂಡ್ಗಳಿಗಾಗಿ CLI ರಿಮೋಟ್-ಮೋಡ್ ಸಂದರ್ಭ/ಪ್ರೊಫೈಲ್; ಸ್ಥಳೀಯ ಸಂದರ್ಭಗಳ ಸಂಗ್ರಹದಲ್ಲಿನ ಸಕ್ರಿಯ ಸಂದರ್ಭವನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ. `--context ` ಗೆ ಸಮಾನವಾಗಿದೆ. |
| `OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED` | `0` | `bin/cli/contexts.mjs` | CLI ಸಂದರ್ಭ ರುಜುವಾತುಗಳಿಗಾಗಿ ಐಚ್ಛಿಕ `keytar` OS-ಕೀಚೈನ್ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ, ರುಜುವಾತುಗಳು `config.json` ಮೋಡ್ `0600` ನಲ್ಲಿಯೇ ಉಳಿಯುತ್ತವೆ ಮತ್ತು CLI ಒಂದು-ಬಾರಿಯ ಫಾಲ್ಬ್ಯಾಕ್ ಎಚ್ಚರಿಕೆಯನ್ನು ಹೊರಸೂಸುತ್ತದೆ; ಉದ್ದೇಶಪೂರ್ವಕ ಹೆಡ್ಲೆಸ್/ಕಂಟೇನರ್ ಕಾರ್ಯಾಚರಣೆಗಾಗಿ ಇದನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. |
| `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_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` | ಸಂಕುಚನ ಅಲ್ಗಾರಿದಮ್/ಪ್ರೊಫೈಲ್. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಮೌಲ್ಯಗಳು: `0`, `false`, `off`. |
| `OMNIROUTE_MCP_FETCH_TIMEOUT_MS` | `10000` | `open-sse/mcp-server/fetchTimeout.ts` | MCP ಸರ್ವರ್ನ ಆಂತರಿಕ ನಿರ್ವಹಣಾ ಓದುಗಳಿಗೆ (ಆರೋಗ್ಯ, ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ, ಸಂಯೋಜನೆಗಳು, ಕೋಟಾ, ಬಳಕೆ) ರದ್ದತಿ ಕಾಲಮಿತಿ (ms). |
| `OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS` | `60000` | `open-sse/mcp-server/fetchTimeout.ts` | ಪೂರೈಕೆದಾರರಿಗಾಗಿ ಕಾಯುವ MCP ಹಾಪ್ಗಳಿಗೆ (`route_request`, `web_search`, `web_fetch`) ರದ್ದುಗೊಳಿಸುವ ಕಾಲಮಿತಿ (ms). |
| `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 ಕೋಟಾ ಫೆಚ್ಗಳ ನಡುವಿನ ಅಂತರ (ms); ಅಪ್ಸ್ಟ್ರೀಮ್ಗೆ ಏಕಾಏಕಿ ಅನೇಕ ವಿನಂತಿಗಳು ಹೋಗುವುದನ್ನು ತಪ್ಪಿಸಲು OAuth ಸಂಪರ್ಕಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಫೆಚ್ ಮಾಡಲಾಗುತ್ತದೆ. `0` ಇದರಿಂದ ಹೊರಗುಳಿಯುತ್ತದೆ (ಏಕಕಾಲಿಕ). |
| `OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS` | `250` | `open-sse/services/quotaFetchThrottle.ts` | ಪ್ರತಿ-ವಿನಂತಿಯ ಪ್ರೀಫ್ಲೈಟ್/ಮಾನಿಟರ್ ಮಾರ್ಗದಲ್ಲಿನ ಅನುಕ್ರಮ ಅಪ್ಸ್ಟ್ರೀಮ್ ಕೋಟಾ ಫೆಚ್ಗಳ ನಡುವಿನ ಕನಿಷ್ಠ ಮಧ್ಯಂತರ (ms); ಒಂದೇ IPಯಲ್ಲಿರುವ ಅನೇಕ ಖಾತೆಗಳು ಅಪ್ಸ್ಟ್ರೀಮ್ಗೆ ಏಕಾಏಕಿ ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸದಂತೆ ಏಕಕಾಲಿಕ ನೆಟ್ವರ್ಕ್ ಕರೆಗಳಿಗೆ ಅಂತರ ನೀಡುತ್ತದೆ. Codex (`/wham/usage`), DeepSeek, Bailian (ಎರಡೂ ಫೆಚ್ ಸ್ಥಳಗಳು), OpenCode ಮತ್ತು Crof ಕೋಟಾ ಫೆಚರ್ಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ (#6009, #6911). ಸಾಮಾನ್ಯ `usage.ts::getUsageForProvider` ಡಿಸ್ಪ್ಯಾಚ್ ಮಾರ್ಗವು (github/glm/minimax/nanogpt/xai/etc.) ಇನ್ನೂ ಒಳಗೊಂಡಿಲ್ಲ — ಅದನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಟ್ರ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ. ಕ್ಯಾಶ್ ಹಿಟ್ಗಳು ಬಾಧಿತವಾಗುವುದಿಲ್ಲ. `0` ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ; `0..5000`ಕ್ಕೆ ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ. |
| `PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS` | `5000` | `src/lib/usage/providerLimits.ts` | ನೈಜ ಬಳಕೆಯ ಘಟನೆಯ ನಂತರ ಪೂರೈಕೆದಾರರ ಮಿತಿಗಳನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡುವ ಮುನ್ನದ ವಿಳಂಬ (ms), ಇದರಿಂದ ಅಪ್ಸ್ಟ್ರೀಮ್ ಕೋಟಾ 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` | ಪ್ರಕ್ರಿಯೆ ಮರುಪ್ರಾರಂಭಗಳಾದರೂ ಉಳಿಯುವಂತೆ ದುರಸ್ತಿಗೊಳಿಸಿದ Adobe ಸೆಷನ್ಗಳನ್ನು `DATA_DIR` ಅಡಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಸೆಷನ್ಗಳನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಮಾತ್ರ ಇರಿಸಲು `0`ಗೆ ಹೊಂದಿಸಿ. |
| `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly ಜನರೇಟ್ ಸಲ್ಲಿಕೆಗಳ ನಡುವಿನ ಕನಿಷ್ಠ ಅಂತರ, ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ; `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` | ತಾತ್ಕಾಲಿಕ Adobe 408 ಪ್ರತಿಕ್ರಿಯೆಗಳ ನಂತರದ ಮೂಲ ಬ್ಯಾಕ್ಆಫ್, ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ; ಗರಿಷ್ಠ ಐದು ಪ್ರಯತ್ನಗಳವರೆಗೆ ಸಲ್ಲಿಕೆ ಅಂತರದೊಂದಿಗೆ ಸಂಯೋಜಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_DISABLE_BACKGROUND_SERVICES` | `false` | `src/instrumentation-node.ts` | ಎಲ್ಲಾ ಹಿನ್ನೆಲೆ ಸೇವೆಗಳನ್ನು (ಸಿಂಕ್, ಬೆಲೆ ನಿಗದಿ, ಮಾದರಿ ರಿಫ್ರೆಶ್) ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. CI/ಪರೀಕ್ಷೆಗೆ ಉಪಯುಕ್ತ. |
| `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` | ಬಜೆಟ್ ಮರುಹೊಂದಿಸುವಿಕೆ ಪರಿಶೀಲನೆಯ ಆವರ್ತನ (ms). ಕನಿಷ್ಠ ಮಿತಿ `10000`. |
| `OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS` | `60000` | `src/lib/quota/connectionRecovery.ts` | ಪೂರ್ವಸಕ್ರಿಯ ಸಂಪರ್ಕ ಕೂಲ್ಡೌನ್ ಮರುಪಡೆಯುವಿಕೆಯ ಆವರ್ತನ (ms): ವಿನಂತಿಯ ಹಾಟ್ ಪಾತ್ನಿಂದ ಹೊರಗೆ, ಅವಧಿ ಮುಗಿದಿರುವ ತಾತ್ಕಾಲಿಕ `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` | ರೀಸನಿಂಗ್ ಕ್ಯಾಶ್ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆಯ ಆವರ್ತನ (ms). ಕನಿಷ್ಠ ಮಿತಿ `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` | ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ಪ್ರತಿಯೊಂದು ಲಾಗ್-ರಫ್ತು ಗಮ್ಯಸ್ಥಾನವನ್ನು ಖಾಲಿಗೊಳಿಸುವ ಕಾಲ್-ಲಾಗ್ ರಫ್ತು ಜಾಬ್ಗಾಗಿ Cron ಎಕ್ಸ್ಪ್ರೆಷನ್ (UTC). |
| `OMNIROUTE_CONFIG_HOT_RELOAD_MS` | `5000` | `src/lib/config/hotReload.ts` | ಕಾನ್ಫಿಗ್ ಹಾಟ್-ರೀಲೋಡ್ಗಾಗಿ ಪೋಲಿಂಗ್ ಮಧ್ಯಂತರ (ms). `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` ಹೊಂದಿಸದಿದ್ದಾಗ Lite ಪೂರ್ವಸಕ್ರಿಯ ಟೂಲ್-ಫಲಿತಾಂಶ ಕಡಿತಕ್ಕೆ ಅಕ್ಷರ ಮಿತಿ. ವ್ಯಾಪ್ತಿ 256–1000000. ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಸೆಟ್ಟಿಂಗ್ ಈ envಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ. |
| `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` ಎಂದಿಗೂ ಕ್ರೆಡಿಟ್ಗಳನ್ನು ಸೇರಿಸುವುದಿಲ್ಲ, `retry` ಅರ್ಹ ಕೋಟಾ 429 ನಂತರ ಒಮ್ಮೆ ಸೇರಿಸುತ್ತದೆ ಮತ್ತು `always` ಮೊದಲ ವಿನಂತಿಯಲ್ಲೇ ಸೇರಿಸುತ್ತದೆ. |
| `ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS` | `0` | `open-sse/translator/request/openai-to-gemini.ts` | ಅಪ್ಸ್ಟ್ರೀಮ್ ನೈಜ ಸಹಿಗಳನ್ನು ನಿರಾಕರಿಸಿದಾಗ Antigravity ವಿನಂತಿ ಅನುವಾದಕವು ತನ್ನ ಕಟ್ಟುನಿಟ್ಟಾದ CLI ವಿನಂತಿ-ಸಹಿ ಮೌಲ್ಯೀಕರಣವನ್ನು ಬಿಟ್ಟುಬಿಡಲು ಅನುಮತಿಸಿ (ಡೀಬಗ್/ಹಳೆಯ-CLI ಮೋಡ್). ಶೂನ್ಯವಲ್ಲದ ಮೌಲ್ಯವು ಬೈಪಾಸ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `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 ದೃಢೀಕರಣ ಬ್ರಿಡ್ಜ್ಗಾಗಿ ಸರ್ವರ್ 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 ಪೂರೈಕೆದಾರರ ರುಜುವಾತುಗಳು
**ಲೋಕಲ್ ಹೋಸ್ಟ್ ಅಭಿವೃದ್ಧಿ**ಗಾಗಿ ಅಂತರ್ನಿರ್ಮಿತ ರುಜುವಾತುಗಳು. ರಿಮೋಟ್ ನಿಯೋಜನೆಗಳಿಗಾಗಿ, ಪ್ರತಿ ಪೂರೈಕೆದಾರರ ಡೆವಲಪರ್ ಕನ್ಸೋಲ್ನಲ್ಲಿ ನಿಮ್ಮದೇ ಆದದನ್ನು ನೋಂದಾಯಿಸಿ.
| ವೇರಿಯಬಲ್ | ಪೂರೈಕೆದಾರ | ಟಿಪ್ಪಣಿಗಳು |
| :------------------------------------------ | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `CLAUDE_OAUTH_CLIENT_ID` | Claude Code (Anthropic) | ಸಾರ್ವಜನಿಕ ಕ್ಲೈಂಟ್ — ಯಾವುದೇ ರಹಸ್ಯದ ಅಗತ್ಯವಿಲ್ಲ. |
| `CLAUDE_CODE_REDIRECT_URI` | Claude Code | ಮರುನಿರ್ದೇಶನ 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 Coding (Moonshot) | ಸಾರ್ವಜನಿಕ ಕ್ಲೈಂಟ್. |
| `MUSE_CODE_OAUTH_CLIENT_ID` | Muse Code (Meta) | ಸಾರ್ವಜನಿಕ ಮ್ಯೂಸ್ 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 ಎಂಟರ್ಪ್ರೈಸ್ ಕೋಪೈಲಟ್ನ OAuth ಕ್ಲೈಂಟ್ ಐಡಿಗೆ ಐಚ್ಛಿಕ ಅತಿಕ್ರಮಣ. ಹೊಂದಿಸದಿದ್ದಾಗ `GITHUB_OAUTH_CLIENT_ID` ನ ಸಾರ್ವಜನಿಕ ಡೀಫಾಲ್ಟ್ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. |
| `COPILOT_INTEGRATION_ID` | GitHub Copilot | `Copilot-Integration-Id` ಮತ್ತು `Editor-Plugin-Version` ಹೆಡರ್ಗಳಲ್ಲಿ ಕಳುಹಿಸಲಾದ GitHub ಕೋಪೈಲಟ್ ಕ್ಲೈಂಟ್ ಇಂಟಿಗ್ರೇಷನ್ ಐಡಿಗೆ ಐಚ್ಛಿಕ ಅತಿಕ್ರಮಣ. ಡೀಫಾಲ್ಟ್ `copilot-developer-cli`. |
| `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | ಪ್ರತಿ-ಸಂಪರ್ಕ ರುಜುವಾತು ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ `open-sse/executors/devin-cli.ts` ಬಳಸುವ API ಕೀ ಫಾಲ್ಬ್ಯಾಕ್. ಐಚ್ಛಿಕ. |
| `CLI_DEVIN_BIN` | Devin CLI (v3.8) | ಡೆವಿನ್ CLI ಬೈನರಿಗೆ (`devin`) ಕಸ್ಟಮ್ ಮಾರ್ಗ. `open-sse/executors/devin-cli.ts` ಮೂಲಕ ಪರಿಹರಿಸಲಾಗಿದೆ. |
| `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | GitLab Duo ಗಾಗಿ OAuth ಕ್ಲೈಂಟ್ ID. `https://gitlab.com/-/profile/applications` ನಲ್ಲಿ `/callback` ಮರುನಿರ್ದೇಶನ URI ಮತ್ತು `api, read_user, openid, profile, email` ಸ್ಕೋಪ್ಗಳೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನೋಂದಾಯಿಸಿ. `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 ಕಾನ್ಫಿಗ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಅತಿಕ್ರಮಿಸಿ (ಪ್ರತ್ಯೇಕ PAT ಸೆಷನ್, ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಕ್ಲೋಬರ್ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ). |
| `BLACKBOX_WEB_VALIDATED_TOKEN` | Blackbox Web | `/api/chat` ನಲ್ಲಿ `validated` ಎಂದು ಕಳುಹಿಸಲು ಫ್ರಂಟ್ಎಂಡ್ `tk` ಟೋಕನ್. ಬ್ಲಾಕ್ಬಾಕ್ಸ್ ಟೋಕನ್ ಹೊಂದಾಣಿಕೆಯನ್ನು ಜಾರಿಗೊಳಿಸಿದಾಗ ಅಗತ್ಯವಿದೆ; ಇಲ್ಲದಿದ್ದರೆ OmniRoute ಯಾದೃಚ್ಛಿಕ UUID ಗೆ ಫಾಲ್ಬ್ಯಾಕ್ ಆಗುತ್ತದೆ. ಸಂಚಿಕೆ #2252 ನೋಡಿ. |
| `VISION_BRIDGE_BASE_URL` | Vision Bridge guardrail | ಆಂಥ್ರೋಪಿಕ್ ಅಲ್ಲದ ವಿಷನ್-ಬ್ರಿಡ್ಜ್ ಕರೆಗಳಿಗಾಗಿ OpenAI-ಹೊಂದಾಣಿಕೆಯ ಮೂಲ URL. ಲೆಗಸಿ OpenAI URL env ಅಥವಾ api.openai.com ಗೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ. OmniRoute ನ `/v1` ಸೆಲ್ಫ್-ಲೂಪ್ ಅಥವಾ ಯಾವುದೇ OpenAI-ಹೊಂದಾಣಿಕೆಯ ಎಂಡ್ಪಾಯಿಂಟ್ (ಜೆಮಿನಿ OpenAI-ಹೊಂದಾಣಿಕೆ, 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` | Vision Bridge guardrail | ಮೇಲಿನ URL ಗಾಗಿ API ಕೀ. ಆಂಥ್ರೋಪಿಕ್ ಅಲ್ಲದ ವಿಷನ್-ಬ್ರಿಡ್ಜ್ ಕರೆಗಳಿಗಾಗಿ ಪ್ರತಿ-ಪ್ರೊವೈಡರ್ OpenAI / Google env ವೇರಿಯಬಲ್ಗಳನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ. ಆಂಥ್ರೋಪಿಕ್ ಮಾದರಿಗಳು ತಮ್ಮ ಮೀಸಲಾದ ಆಂಥ್ರೋಪಿಕ್ ಕೀ ಮಾರ್ಗವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. ಸಂಚಿಕೆ #2232. |
| `OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS` | Vision Bridge guardrail | "ಯಾವುದೇ ಉಪಯುಕ್ತ ಅಭ್ಯರ್ಥಿ ಇಲ್ಲ" ರೂಟಿಂಗ್ ಫಲಿತಾಂಶವನ್ನು ಎಷ್ಟು ಸಮಯದವರೆಗೆ ms ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ (ಡೀಫಾಲ್ಟ್ `30000`). ಅಮಾನ್ಯ ಅಥವಾ ಋಣಾತ್ಮಕ ಮೌಲ್ಯಗಳು ಡೀಫಾಲ್ಟ್ಗೆ ಫಾಲ್ಬ್ಯಾಕ್ ಆಗುತ್ತವೆ; `0` ನೆಗೆಟಿವ್ ಕ್ಯಾಶ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಮೂಲ: `src/lib/guardrails/visionBridgeRouter.ts`. |
> [!WARNING]
>
> 1. [Google Cloud Console → Credentials](https://console.cloud.google.com/apis/credentials) ಗೆ ಹೋಗಿ
> 2. OAuth 2.0 ಕ್ಲೈಂಟ್ ID ಅನ್ನು ರಚಿಸಿ (ಪ್ರಕಾರ: "Web application")
> 3. ನಿಮ್ಮ ಸರ್ವರ್ URL ಅನ್ನು ಅಧಿಕೃತ ಮರುನಿರ್ದೇಶನ URI ಆಗಿ ಸೇರಿಸಿ
> 4. `.env` ನಲ್ಲಿರುವ ರುಜುವಾತು ಮೌಲ್ಯಗಳನ್ನು ಬದಲಾಯಿಸಿ.
---
## 12. ಪೂರೈಕೆದಾರರ User-Agent ಅತಿಕ್ರಮಣಗಳು
ಪ್ರತಿ ಅಪ್ಸ್ಟ್ರೀಮ್ ಪೂರೈಕೆದಾರರಿಗೆ ಕಳುಹಿಸಲಾದ `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` | ಎರಡೂ Anthropic-ಬೌಂಡ್ ಮಾರ್ಗಗಳಲ್ಲಿ (ನೇಟಿವ್ OAuth ಮತ್ತು CLIProxyAPI) ತೃತೀಯ-ಪಕ್ಷದ ಹಾರ್ನೆಸ್ ಟೂಲ್ ಹೆಸರುಗಳನ್ನು ಯಥಾವತ್ತಾಗಿ Anthropic ಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲು `1`/`true` ಗೆ ಹೊಂದಿಸಿ. ಡೀಫಾಲ್ಟ್ ಆಗಿ, ಎಕ್ಸಿಕ್ಯೂಟರ್ Claude-Code ಅಲ್ಲದ ಟೂಲ್ ಹೆಸರುಗಳಿಗೆ ನಿರ್ಣಾಯಕವಾಗಿ ಅಲಿಯಾಸ್ ನೀಡುತ್ತದೆ (ಲಭ್ಯವಿರುವಲ್ಲಿ Claude Code ಕ್ಯಾನಾನಿಕಲ್ ಮ್ಯಾಪಿಂಗ್, ಇಲ್ಲದಿದ್ದರೆ PascalCase) ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ `_toolNameMap` ಮೂಲಕ ಅವುಗಳನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸುತ್ತದೆ; ಹೀಗಾಗಿ snake_case ಟೂಲ್ಗಳನ್ನು ಹೊಂದಿರುವ ಹಾರ್ನೆಸ್ಗಳನ್ನು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಮಾಡಲಾದ ತೃತೀಯ-ಪಕ್ಷದ ಕ್ಲೈಂಟ್ಗಳೆಂದು ತಿರಸ್ಕರಿಸಲಾಗುವುದಿಲ್ಲ. ಡೀಬಗಿಂಗ್ಗಾಗಿ ಮಾತ್ರ. |
| `CODEX_USER_AGENT` | `codex-cli/0.155.0 (Windows 10.0.26200; x64)` | OpenAI Codex CLI ಅನ್ನು ನವೀಕರಿಸಿದಾಗ |
| `CODEX_CLIENT_VERSION` | `0.155.0` | ಸಂಪೂರ್ಣ UA ಸ್ಟ್ರಿಂಗ್ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿ Codex ಕ್ಲೈಂಟ್ ಆವೃತ್ತಿಯನ್ನು ಅತಿಕ್ರಮಿಸಿ |
| `CLAUDE_CODE_CLIENT_VERSION` | `2.1.280` | `CLAUDE_USER_AGENT` ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ಪ್ರಕಟಿಸಲಾದ Claude Code ಆವೃತ್ತಿಯನ್ನು ಅತಿಕ್ರಮಿಸಿ. Anthropic ಈ ಮೌಲ್ಯದ ಆಧಾರದ ಮೇಲೆ ಕೆಲವು ಮಾಡೆಲ್ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ (#12417). |
| `CLAUDE_CODE_CLIENT_BUILD_REVISION` | `1e2` | Claude ಬಿಲ್ಲಿಂಗ್ ಬ್ಲಾಕ್ನಲ್ಲಿನ `cc_version=` ಗೆ OmniRoute ಸೇರಿಸುವ 3-ಅಕ್ಷರಗಳ ಸಫಿಕ್ಸ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ. `CLAUDE_CODE_CLIENT_VERSION` ಜೊತೆಗೆ ಇದನ್ನೂ ಹೆಚ್ಚಿಸಿ — ಕೇವಲ ಆವೃತ್ತಿಯನ್ನು ಪಿನ್ ಮಾಡುವುದರಿಂದ ಯಾವುದೇ ನೈಜ ಬೈನರಿಯು ಹೊರಸೂಸದ `version.revision` ಜೋಡಿಯನ್ನು ಪ್ರಕಟಿಸಿದಂತಾಗುತ್ತದೆ. |
| `GITHUB_COPILOT_CLI_VERSION` | `1.0.91` | `GITHUB_USER_AGENT` ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿ ಪ್ರಕಟಿಸಲಾದ Copilot CLI ಆವೃತ್ತಿಯನ್ನು ಅತಿಕ್ರಮಿಸಿ |
| `GITHUB_USER_AGENT` | `GitHubCopilotChat/0.54.0` | GitHub Copilot Chat ನವೀಕರಿಸಿದಾಗ |
| `ANTIGRAVITY_USER_AGENT` | `antigravity/2.0.1 darwin/arm64` | Antigravity IDE ನವೀಕರಿಸಿದಾಗ |
| `KIRO_USER_AGENT` | `AWS-SDK-JS/3.0.0 kiro-ide/1.0.0` | Kiro IDE ನವೀಕರಿಸಿದಾಗ |
| `KIRO_OAUTH_CLIENT_ID` | `kiro-cli` | Kiro ಸಾಮಾಜಿಕ ಡಿವೈಸ್-ಕೋಡ್ `clientId` (ಸಾರ್ವಜನಿಕ id) ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ |
| `KIRO_VERIFY_FULL_CRC` | `false` | ಆಯ್ಕೆಮಾಡಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ: Kiro ಈವೆಂಟ್ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಪ್ರತಿ-ಫ್ರೇಮ್ನ ಸಂಪೂರ್ಣ ಸಂದೇಶ CRC ಮೌಲ್ಯೀಕರಣ (ದೋಷಪೂರಿತ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು) |
| `QODER_USER_AGENT` | `Qoder-Cli` | Qoder CLI ನವೀಕರಿಸಿದಾಗ |
| `CURSOR_USER_AGENT` | `Cursor/3.3` | Cursor ನವೀಕರಿಸಿದಾಗ |
> [!TIP]
> `{PROVIDER_ID}_USER_AGENT` ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು **ಯಾವುದೇ** ಪೂರೈಕೆದಾರರಿಗೆ 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 Code ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
| `CLI_COMPAT_GITHUB` | `=1` | GitHub Copilot ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
| `CLI_COMPAT_ANTIGRAVITY` | `=1` | Antigravity ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
| `CLI_COMPAT_CURSOR` | `=1` | Cursor ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
| `CLI_COMPAT_KIMI_CODING` | `=1` | Kimi Coding ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
| `CLI_COMPAT_KILOCODE` | `=1` | Kilo Code ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
| `CLI_COMPAT_CLINE` | `=1` | Cline ವಿನಂತಿ ಸಿಗ್ನೇಚರ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ |
### ಜಾಗತಿಕ
| ವೇರಿಯಬಲ್ | ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ | ಪರಿಣಾಮ |
| ---------------- | ---------------- | ----------------------------------------------------------------------------- |
| `CLI_COMPAT_ALL` | `=1` | **ಎಲ್ಲಾ** ಪೂರೈಕೆದಾರರಿಗೆ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಹೊಂದಾಣಿಕೆಯನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಿ. |
### Kimi Coding 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]
> ಈ ವೈಶಿಷ್ಟ್ಯವು User-Agent ಅತಿಕ್ರಮಣಗಳೊಂದಿಗೆ (§12) ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಫಿಂಗರ್ಪ್ರಿಂಟ್ ವ್ಯವಸ್ಥೆಯು ಹೆಡರ್ಗಳ ಕ್ರಮ ಮತ್ತು ಬಾಡಿ ಫೀಲ್ಡ್ಗಳ ಕ್ರಮವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, User-Agent ಅತಿಕ್ರಮಣಗಳು ನಿರ್ದಿಷ್ಟ UA ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ. ಎರಡನ್ನೂ ಸ್ವತಂತ್ರವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು.
---
## 14. API ಕೀ ಪೂರೈಕೆದಾರರು
ನೇರ ದೃಢೀಕರಣವನ್ನು ಬಳಸುವ ಪೂರೈಕೆದಾರರ API ಕೀಗಳು. **ಆದ್ಯತೆಯ ಸೆಟಪ್:** Dashboard → Providers → Add API Key.
Docker ಅಥವಾ ಹೆಡ್ಲೆಸ್ ನಿಯೋಜನೆಗಳಿಗೆ ಪರಿಸರ ವೇರಿಯಬಲ್ಗಳ ಮೂಲಕ ಹೊಂದಿಸುವುದು ಪರ್ಯಾಯವಾಗಿದೆ.
ಗುರುತಿಸಲಾದ ಮಾದರಿ: `{PROVIDER_ID}_API_KEY`
| ವೇರಿಯಬಲ್ | ಪೂರೈಕೆದಾರ |
| ------------------ | -------------------------------------------------------- |
| `DEEPSEEK_API_KEY` | DeepSeek |
| `NVIDIA_API_KEY` | NVIDIA NIM |
| `JINA_AI_API_KEY` | Jina AI (Foundation API + Reader ಫಾಲ್ಬ್ಯಾಕ್) |
| `JINA_API_KEY` | Jina AI (`JINA_AI_API_KEY`ಗೆ ಅಲಿಯಾಸ್) |
| `GEMINI_API_KEY` | Gemini (Google AI Studio) ಎಂಬೆಡಿಂಗ್ಗಳು + ಚಾಟ್ ಫಾಲ್ಬ್ಯಾಕ್ |
| `GOOGLE_API_KEY` | Gemini (`GEMINI_API_KEY`ಗೆ ಅಲಿಯಾಸ್) |
> [!NOTE]
> Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius ಮತ್ತು Qianfan ಗಾಗಿನ ಸ್ಥಿರ `${PROVIDER}_API_KEY` ನಮೂದುಗಳನ್ನು v3.8.0ರಲ್ಲಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ, ಏಕೆಂದರೆ ರನ್ಟೈಮ್ ಇನ್ನು ಮುಂದೆ ಅವುಗಳನ್ನು ಓದುವುದಿಲ್ಲ — ಆ ಪೂರೈಕೆದಾರರು Dashboard / `data/provider-credentials.json` / ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ DB ಅನ್ನು ಮಾತ್ರ ಅವಲಂಬಿಸುತ್ತಾರೆ. ಮೈಗ್ರೇಶನ್ ಮಾರ್ಗಕ್ಕಾಗಿ ಈ ದಸ್ತಾವೇಜಿನ ಕೆಳಭಾಗದಲ್ಲಿರುವ _ಆಡಿಟ್: ತೆಗೆದುಹಾಕಿದ / ನಿಷ್ಕ್ರಿಯ ವೇರಿಯಬಲ್ಗಳು_ ವಿಭಾಗವನ್ನು ನೋಡಿ.
> [!TIP]
> Dashboard ಮೂಲಕ ಹೊಂದಿಸಲಾದ ಕೀಗಳನ್ನು SQLiteನಲ್ಲಿ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅವು ಪರಿಸರ ವೇರಿಯಬಲ್ಗಳಿಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತವೆ.
>
> **Jina:** Dashboard `jina-ai` (ಅಥವಾ ಹಂಚಿದ `jina-reader`) ಸಂಪರ್ಕ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವಾಗ `jina-ai/…` ಎಂಬೆಡಿಂಗ್ಗಳು, ಮರುಶ್ರೇಯಾಂಕ, ವರ್ಗೀಕರಣ, ವಿಭಾಗೀಕರಣ ಮತ್ತು `jina-search` ಕ್ಲಸ್ಟರ್ ಪರಿಸರ ಕೀಗೆ ಬಿಲ್ ಮಾಡುವುದಿಲ್ಲ — `getProviderCredentials` ಮೊದಲು ಭರ್ತಿ ಮಾಡುವ ವಿಧಾನವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಬಳಸಬಹುದಾದ Dashboard ಕೀ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದಾಗ ಮಾತ್ರ `JINA_AI_API_KEY` / `JINA_API_KEY` ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಕರೆ ಲಾಗ್ಗಳು ಪರಿಸರ ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು `connection_id=env:JINA_AI_API_KEY` ಎಂದು ಗುರುತಿಸುತ್ತವೆ. Reader ಕಾರ್ಡ್ (`jina-reader`, `r.jina.ai`) ಎಂದಿಗೂ `/v1/embeddings` ಅಥವಾ `/v1/rerank` ಅನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ.
>
> **Gemini:** `gemini/gemini-embedding-2` (`google/gemini-embedding-2` ಅಲಿಯಾಸ್) ಮೊದಲು Dashboardನ `gemini` ಸಂಪರ್ಕವನ್ನು ಬಳಸುತ್ತದೆ. ಬಳಸಬಹುದಾದ Dashboard ಕೀ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದಾಗ ಮಾತ್ರ `GEMINI_API_KEY` / `GOOGLE_API_KEY` ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಕರೆ ಲಾಗ್ಗಳು ಪರಿಸರ ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು `connection_id=env:GEMINI_API_KEY` ಎಂದು ಗುರುತಿಸುತ್ತವೆ. ಸ್ಥಳೀಯ ಮಲ್ಟಿಮೋಡಲ್ ಟ್ರಾಫಿಕ್ `:embedContent` / `:batchEmbedContents` ವಿರುದ್ಧ `x-goog-api-key` ಅನ್ನು ಬಳಸುತ್ತದೆ — N OpenAI `input` ಐಟಂಗಳು N ವೆಕ್ಟರ್ಗಳಾಗುತ್ತವೆ.
---
## 15. ಕಾಲಾವಧಿ ಮೀರುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳು
ಎಲ್ಲಾ ಮೌಲ್ಯಗಳು **ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ** ಇವೆ. ಕೇಂದ್ರೀಕೃತ ನಿರ್ಧಾರವು `src/shared/utils/runtimeTimeouts.ts` ನಲ್ಲಿದೆ.
### ಕಾಲಾವಧಿ ಮೀರುವಿಕೆ ಶ್ರೇಣಿ
```
REQUEST_TIMEOUT_MS (ಜಾಗತಿಕ ಅತಿಕ್ರಮಣ)
├─→ FETCH_TIMEOUT_MS (ಅಪ್ಸ್ಟ್ರೀಮ್ ಪೂರೈಕೆದಾರ ಕರೆಗಳು, ಪೂರ್ವನಿಯೋಜಿತ: 600000)
│ ├─→ FETCH_HEADERS_TIMEOUT_MS (FETCH_TIMEOUT_MS ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ)
│ ├─→ FETCH_BODY_TIMEOUT_MS (FETCH_TIMEOUT_MS ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ)
│ ├─→ TLS_CLIENT_TIMEOUT_MS (FETCH_TIMEOUT_MS ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ)
│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 10000)
│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 15000)
│ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 0 = ನಿಷ್ಕ್ರಿಯ, ಶಿಫಾರಸು: 30000)
│ ├── OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 2)
│ ├── FETCH_CONNECT_TIMEOUT_MS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 30000)
│ └── FETCH_KEEPALIVE_TIMEOUT_MS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (REQUEST_TIMEOUT_MS ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತ: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (ಸ್ವತಂತ್ರ, ಪೂರ್ವನಿಯೋಜಿತ: 1260000; 0 ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ)
├─→ STREAM_READINESS_TIMEOUT_MS (REQUEST_TIMEOUT_MS ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತ: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (ಹೊಂದಾಣಿಕೆಯ ಸಿದ್ಧತಾ ವಿಸ್ತರಣೆಗಳನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತ: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (REQUEST_TIMEOUT_MS ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತ: 30000)
├─→ 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 = ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ)
```
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ವಿವರಣೆ |
| ----------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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 ಅಂತರವನ್ನು ಸೇರಿಸಿ ವ್ಯುತ್ಪನ್ನಗೊಳಿಸಲಾಗಿದೆ; ಆದ್ದರಿಂದ ತನ್ನ ಪೂರ್ಣ ಕಾಲಮಿತಿ ಬಜೆಟ್ವರೆಗೆ ಚಲಿಸಲು ಅನುಮತಿಸಲಾದ ಮಾದರಿಯನ್ನು ಉತ್ತರದ ಮಧ್ಯದಲ್ಲಿ ಎಂದಿಗೂ ನಿಲ್ಲಿಸಲಾಗುವುದಿಲ್ಲ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `0` ಗೆ ಹೊಂದಿಸಿ. |
| `OMNIROUTE_SSE_COMMENTS` | _(ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ)_ | OmniRoute SSE `:` ಕಾಮೆಂಟ್ ಸಾಲುಗಳನ್ನು (ಉದಾ. `: keepalive` ಹೃದಯಬಡಿತ ಮತ್ತು `x-omniroute-*` ಮೆಟಾಡೇಟಾ ಟ್ರೇಲರ್ಗಳು) ಹೊರಸೂಸಬಹುದೇ ಎಂಬುದು. ಕಟ್ಟುನಿಟ್ಟಾದ OpenAI-ಹೊಂದಾಣಿಕೆಯ ಕ್ಲೈಂಟ್ಗಳು ಪ್ರತಿ SSE ಸಾಲಿನಲ್ಲೂ JSON.parse ಮಾಡಿ `:` ಕಾಮೆಂಟ್ಗಳಿಂದ ಕ್ರ್ಯಾಶ್ ಆಗುವುದರಿಂದ ಡೀಫಾಲ್ಟ್ ಆಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ (#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` (ಆಫ್) | ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ: N ms ಒಳಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾದ SSE ಫ್ರೇಮ್ಗಳನ್ನು ಕ್ಲೈಂಟ್ಗೆ ಒಂದೇ ಬರವಣಿಗೆಯಾಗಿ ಬ್ಯಾಚ್ ಮಾಡಿ. ಮೊದಲ ಫ್ರೇಮ್ ಮತ್ತು ಅಂತಿಮ ಫ್ರೇಮ್ಗಳು (`[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` ಗೆ ಹೊಂದಿಸಿ — ವಿನಂತಿಯ ಬಾಡಿ/ಹೆಡರ್ಗಳಿಂದ ಸಿದ್ಧತಾ ಕಾಲಮಿತಿಗಳು ಮತ್ತು ಸ್ಟ್ರೀಮ್ ಮರುಪ್ರಾಪ್ತಿಯನ್ನು ಎಂದಿಗೂ ಹೆಚ್ಚಿಸಲಾಗುವುದಿಲ್ಲ, ಇದರಿಂದ ಕ್ಲೈಂಟ್-ನಿಯಂತ್ರಿತ ಕಾಲಮಿತಿ ವರ್ಧನೆಯನ್ನು ತಗ್ಗಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS` | `600000` | ಪತ್ತೆಹಚ್ಚಲಾದ `/goal` ಏಜೆಂಟ್ ರನ್ಗಳು ಅಥವಾ `x-omniroute-agent-goal` ಮೂಲಕ ಬಲವಂತಪಡಿಸಲಾದ ವಿನಂತಿಗಳಿಗಾಗಿ ಗರಿಷ್ಠ ಮೊದಲ-ಈವೆಂಟ್ ಸಿದ್ಧತಾ ಅವಧಿ. |
| `OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY` | `true` | ಪತ್ತೆಹಚ್ಚಲಾದ `/goal` ಏಜೆಂಟ್ ರನ್ಗಳಿಗಾಗಿ ಆರಂಭಿಕ ಸ್ಟ್ರೀಮ್ ಮರುಪ್ರಾಪ್ತಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಿ. ಗುರಿ-ನಿರ್ದಿಷ್ಟ ಆಯ್ಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `false`/`0`/`off` ಗೆ ಹೊಂದಿಸಿ. ಇದು ಆಪರೇಟರ್ ಡೀಫಾಲ್ಟ್ಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ ಮರುಪ್ರಾಪ್ತಿಯನ್ನು ಸೇರಿಸಬಹುದು ಮಾತ್ರ — ಸ್ಪಷ್ಟವಾದ `STREAM_RECOVERY_ENABLED`/DB ಸೆಟ್ಟಿಂಗ್ಗಳ ನಿರಾಕರಣೆಯನ್ನು ಎಂದಿಗೂ ಅತಿಕ್ರಮಿಸುವುದಿಲ್ಲ. |
| `OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS` | `true` | 502 ದೋಷದೊಂದಿಗೆ OpenAI SDK ಯ `responses.stream()` ಅನ್ನು ವಿಫಲಗೊಳಿಸುವ ಪ್ರಮಾಣಿತವಲ್ಲದ `codex.*` SSE ಈವೆಂಟ್ಗಳನ್ನು (ಉದಾ. `codex.rate_limits`) ತೆಗೆದುಹಾಕಿ. ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆನ್ ಆಗಿದೆ (#11014). ಅವುಗಳನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡಲು `0`/`false`/`no`/`off` ಗೆ ಹೊಂದಿಸಿ. |
| `OMNIROUTE_CODEX_APPSERVER_WS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸುವ Codex app-server ಟ್ರಾನ್ಸ್ಪೋರ್ಟ್. ಸ್ಥಳೀಯ `codex app-server` ಸೈಡ್ಕಾರ್ನ WebSocket ಎಂಡ್ಪಾಯಿಂಟ್ (`ws://`/`wss://`). ಟೋಕನ್ ಜೊತೆಗೆ ಹೊಂದಿಸಿದಾಗ, Codex ವಿನಂತಿಗಳನ್ನು HTTP Responses API ಬದಲಿಗೆ JSON-RPC ಮೂಲಕ ಸೈಡ್ಕಾರ್ಗೆ ರೌಟ್ ಮಾಡಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಸಂಪರ್ಕಕ್ಕೂ `providerSpecificData.codexAppServerUrl` ಮೂಲಕ ಹೊಂದಿಸಬಹುದು. `open-sse/executors/codex/appServerConfig.ts` ಇದನ್ನು ಬಳಸುತ್ತದೆ. |
| `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | app-server ಗೆ ಪ್ರಸ್ತುತಪಡಿಸಲಾದ ಇನ್ಲೈನ್ ಸಾಮರ್ಥ್ಯ/ಬೇರರ್ ಟೋಕನ್. ಪ್ರತಿ-ಸಂಪರ್ಕದ ಅತಿಕ್ರಮಣ: `providerSpecificData.codexAppServerToken`. |
| `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | app-server ಸಾಮರ್ಥ್ಯ ಟೋಕನ್ ಹೊಂದಿರುವ ಫೈಲ್ನ ಪಥ (`codex app-server --ws-token-file` ನಿಂದ). `OMNIROUTE_CODEX_APPSERVER_WS_TOKEN` ಹೊಂದಿಸದಿರುವಾಗ ಬಳಸಲಾಗುತ್ತದೆ. ಪ್ರತಿ-ಸಂಪರ್ಕದ ಅತಿಕ್ರಮಣ: `providerSpecificData.codexAppServerTokenFile`. |
| `OMNIROUTE_CODEX_APPSERVER_CWD` | `/tmp` | app-server ಟರ್ನ್ ಚಾಲನೆಯಾಗುವ ಕಾರ್ಯನಿರ್ವಹಣಾ ಡೈರೆಕ್ಟರಿ. ಪ್ರತಿ-ಸಂಪರ್ಕದ ಅತಿಕ್ರಮಣ: `providerSpecificData.codexAppServerCwd`. |
| `OMNIROUTE_CODEX_APPSERVER_APPROVAL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | app-server ಟರ್ನ್ಗೆ ರವಾನಿಸುವ ಅನುಮೋದನಾ ನೀತಿ (ಉದಾ. `never`, `on-request`). ಪ್ರತಿ-ಸಂಪರ್ಕದ ಅತಿಕ್ರಮಣ: `providerSpecificData.codexAppServerApprovalPolicy`. |
| `OMNIROUTE_CODEX_APPSERVER_SANDBOX` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | app-server ಟರ್ನ್ಗೆ ರವಾನಿಸುವ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ನೀತಿ (ಉದಾ. `read-only`, `workspace-write`, `danger-full-access`). ಹೊಂದಿಸದಿದ್ದಾಗ ಎಕ್ಸಿಕ್ಯೂಟರ್ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ `workspace-write` ಅನ್ನು ಬಳಸುತ್ತದೆ (ಹೆಚ್ಚು ಸುರಕ್ಷಿತಗೊಳಿಸಲಾಗಿದೆ; ಹಿಂದೆ `danger-full-access`). ಪ್ರತಿ-ಸಂಪರ್ಕದ ಅತಿಕ್ರಮಣ: `providerSpecificData.codexAppServerSandbox`. |
| `OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE` | `false` | app-server ನ ಸ್ವಂತ ಅನುಮೋದನಾ ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು (ಹೋಸ್ಟ್ನಲ್ಲಿ ಕಮಾಂಡ್/ಫೈಲ್/ಅನುಮತಿ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ) ಸ್ವಯಂ-ಅನುಮೋದಿಸಿ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ — ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ; ಹಾರ್ನೆಸ್ ಟೂಲ್ ಕರೆಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ (ಅವು ಪ್ರತ್ಯೇಕ `item/tool/call` ಪಾಸ್ಥ್ರೂ ಮೂಲಕ ಸಾಗುತ್ತವೆ). `true`/`1`/`yes` ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಪ್ರತಿ-ಸಂಪರ್ಕದ ಅತಿಕ್ರಮಣ: `providerSpecificData.codexAppServerAutoApprove`. |
| `FETCH_HEADERS_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | ಪ್ರತಿಕ್ರಿಯೆಯ ಹೆಡರ್ಗಳನ್ನು ಸ್ವೀಕರಿಸುವ ಸಮಯ. |
| `OMNIROUTE_FETCH_START_TIMEOUT_CAP_MS` | `110000` | ಸ್ಟ್ರೀಮಿಂಗ್ ವಿನಂತಿಗಳಲ್ಲಿ ಪ್ರತಿಕ್ರಿಯೆಯ ಹೆಡರ್ಗಳಿಗಾಗಿ ಕಾಯುವ ಗರಿಷ್ಠ ಸಮಯ (ms). `0` ಈ ಮಿತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ; ಸ್ಪಷ್ಟವಾಗಿ ನೀಡಲಾದ ಪೂರೈಕೆದಾರರ `fetchStartTimeoutCapMs` ಗೆ ಆದ್ಯತೆ ಇರುತ್ತದೆ. |
| `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` | `30000` (30s) | ಪ್ರತಿ ನೇರ ನೋ-ಪ್ರಾಕ್ಸಿ ಪ್ರಯತ್ನಕ್ಕೆ ಪ್ರತಿಕ್ರಿಯೆ ಪ್ರಾರಂಭವಾಗುವವರೆಗೆ ಕಾಯುವ ಗರಿಷ್ಠ ಸಮಯ (ms). ಟೈಮ್ಔಟ್ ಸಂಭವಿಸಿದರೆ ಹೊಸ ಸಾಕೆಟ್ನಲ್ಲಿ ಒಮ್ಮೆ ಮರುಪ್ರಯತ್ನಿಸಲಾಗುತ್ತದೆ; ಮಿತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ ಹಿಂದಿನ ವರ್ತನೆಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು `0` ಹೊಂದಿಸಿ. |
| `OMNIROUTE_LOCAL_DIRECT_HEADERS_TIMEOUT_MS` | `300000` (5 ನಿಮಿಷ) | ಗುರಿ ಹೋಸ್ಟ್ ಖಾಸಗಿ/LAN/ಲೂಪ್ಬ್ಯಾಕ್ ಆಗಿರುವ ನೇರ ನೋ-ಪ್ರಾಕ್ಸಿ ಪ್ರಯತ್ನಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆ-ಪ್ರಾರಂಭದ ಕನಿಷ್ಠ ಮಿತಿ (ms) (ಉದಾಹರಣೆಗೆ `localhost`, `host.docker.internal`, `192.168.x.x`), ಇದರಿಂದ ಸ್ಥಳೀಯ Ollama ಕೋಲ್ಡ್ ಸ್ಟಾರ್ಟ್ ಮೇಲಿನ 30s ಪೂರ್ವನಿಯೋಜಿತ ಮಿತಿಯಿಂದ ಕಡಿತಗೊಳ್ಳುವುದಿಲ್ಲ. ಇದು ಕನಿಷ್ಠ ಮಿತಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ: ಪರಿಣಾಮಕಾರಿ ಕಾಯುವ ಸಮಯವು ಈ ಮೌಲ್ಯ ಮತ್ತು `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` ಇವೆರಡರಲ್ಲಿ ದೊಡ್ಡದು; `0` ಅಥವಾ ಅಮಾನ್ಯ ಮೌಲ್ಯವು ಸ್ಥಳೀಯ ಕನಿಷ್ಠ ಮಿತಿಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ದೂರಸ್ಥ ಹೋಸ್ಟ್ಗಳಿಗೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. |
| `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 ನಿಮಿಷ) | ಮೇಲಿನ ಪೂಲ್ ಮಾಡಿದ ಪ್ರಯತ್ನದ ಪ್ರತಿಕ್ರಿಯೆ-ಪ್ರಾರಂಭದ ಟೈಮ್ಔಟ್ ನಂತರ, ಹೊಸ ಸಾಕೆಟ್ನಲ್ಲಿನ RETRY ಪ್ರಯತ್ನಕ್ಕೆ ಗರಿಷ್ಠ ಮಿತಿ (ms) (#13703). ಕರೆ ಮಾಡುವವರು ಈಗಾಗಲೇ ತಮ್ಮದೇ ಆದ ಗಡುವಿನ ಸಿಗ್ನಲ್ ಅನ್ನು ಲಗತ್ತಿಸಿದ್ದಾಗ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ (ಪರಿಹರಿಸಲಾದ ಸಂಪರ್ಕ/ಮಾಡೆಲ್/ಪೂರೈಕೆದಾರ/`FETCH_TIMEOUT_MS` ಕ್ಯಾಸ್ಕೇಡ್); ಉದ್ದೇಶಿತ ಪಥದಲ್ಲಿ ಆ ಸಿಗ್ನಲ್ ನಿಜವಾದ ಮಿತಿಯಾಗಿದ್ದು ಮೊದಲು ಟ್ರಿಗರ್ ಆಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದು ಸ್ಥಿರ ಮಿತಿಗಿಂತ ಉದಾರವಾದ ಸುರಕ್ಷತಾ ತಡೆ — ಇದು ಇಲ್ಲದಿದ್ದರೆ, ಮರುಪ್ರಯತ್ನವು ಪೂಲ್ ಮಾಡಿದ ಪ್ರಯತ್ನದಂತೆಯೇ ಒಂದೇ ಚಿಕ್ಕ `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` ವಿಂಡೋವನ್ನು ಮರುಬಳಸುತ್ತಿತ್ತು ಮತ್ತು ಆರೋಗ್ಯಕರವಾದ ನಿಧಾನ-TTFB ರೀಸನಿಂಗ್ ಮಾಡೆಲ್ಗಳಲ್ಲಿ 504 ಉಂಟಾಗುತ್ತಿತ್ತು. ಮೇಲಿನ ಸ್ಥಿರ ಕನಿಷ್ಠ ಮಿತಿಗಿಂತ ಕಡಿಮೆ ಮಾಡಲು ಎಂದಿಗೂ ಅನುಮತಿಸುವುದಿಲ್ಲ; ಕರೆ ಮಾಡುವವರು ಯಾವುದೇ ಗಡುವಿನ ಸಿಗ್ನಲ್ ಒದಗಿಸದಿದ್ದಾಗ, ಮರುಪ್ರಯತ್ನವು ಸ್ಥಿರ ಕನಿಷ್ಠ ಮಿತಿಯನ್ನು ಬದಲಿಸದೆ ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. |
| `FETCH_BODY_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | ಸಂಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯಾ ಬಾಡಿಯನ್ನು ಸ್ವೀಕರಿಸುವ ಸಮಯ. |
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | TCP ಸಂಪರ್ಕ ಸ್ಥಾಪನೆಯ ಟೈಮ್ಔಟ್. |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | ಕೀಪ್-ಅಲೈವ್ ಸಾಕೆಟ್ನ ನಿಷ್ಕ್ರಿಯ ಟೈಮ್ಔಟ್. |
| `TLS_CLIENT_TIMEOUT_MS` | = `FETCH_TIMEOUT_MS` | TLS ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಪ್ರಾಕ್ಸಿ (wreq-js) ಟೈಮ್ಔಟ್. |
| `TLS_FIRST_BYTE_WATCHDOG_MS` | `10000` | ನಿರ್ದಿಷ್ಟವಾಗಿ wreq-js TLS-ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸಾರಿಗೆಯ ಬಾಡಿಗೆ ಮೊದಲ ಬೈಟ್ ತಲುಪುವ ಸಮಯವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ; ಹೆಡರ್ಗಳು ಬಂದ ತಕ್ಷಣ `TLS_CLIENT_TIMEOUT_MS` ಪರಿಹಾರಗೊಳ್ಳುವುದರಿಂದ, ಅದು ಸ್ಥಗಿತಗೊಂಡ ಬಾಡಿಯನ್ನು ಏಕಾಂಗಿಯಾಗಿ ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಿಲ್ಲ (#12656). ಟೈಮ್ಔಟ್ wreq ರೀಡರ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಿ ನೇರ/ಪ್ರಾಕ್ಸಿ ಡಿಸ್ಪ್ಯಾಚರ್ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ; `0` ವಾಚ್ಡಾಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `RESPONSES_FIRST_BYTE_TIMEOUT_MS` | `15000` | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ, ಮತ್ತು `OPENCODE_RESPONSES_STALL_ROTATION` ವೈಶಿಷ್ಟ್ಯ ಫ್ಲ್ಯಾಗ್ ಆನ್ ಆಗಿರುವಾಗ ಮಾತ್ರ (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್): ಹೆಡರ್ಗಳ ನಂತರ ಸ್ಟ್ರೀಮ್ ಮಾಡಲಾದ Responses ಪ್ರತಿಕ್ರಿಯೆಯ ಮೊದಲ ಬಾಡಿ ಬೈಟ್ಗಾಗಿ ಕಾಯುವ ಸಮಯವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ (#13484). Responses ಸ್ಟ್ರೀಮ್ `response.created` ನೊಂದಿಗೆ ತೆರೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಈ ವಿಂಡೋವನ್ನು ಮೀರಿದ ಮೌನವು ಸ್ಥಗಿತವಾಗಿದೆ: ಖಾತೆಯನ್ನು ಕೂಲ್ಡೌನ್ಗೆ ಒಳಪಡಿಸಿ, ವಿನಂತಿಯನ್ನು ಮುಂದಿನ ಖಾತೆಗೆ ಒಮ್ಮೆ ಬದಲಿಸಲಾಗುತ್ತದೆ; ಎರಡನೇ ಸ್ಥಗಿತವು ತಕ್ಷಣ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. ಫ್ಲ್ಯಾಗ್ ಆನ್ ಆಗಿದ್ದರೂ `0` ರಕ್ಷಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `OPENCODE_RESPONSES_HEADERS_WAIT_MS` | `0` (= ಆಫ್) | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ: ಮತ್ತೊಂದು ಖಾತೆ ಇನ್ನೂ ಲಭ್ಯವಿರುವಾಗ, ಸ್ಟ್ರೀಮ್ ಮಾಡಲಾದ Responses ಕರೆಯಲ್ಲಿ ಅಪ್ಸ್ಟ್ರೀಮ್ ಪ್ರತಿಕ್ರಿಯಾ ಹೆಡರ್ಗಳಿಗಾಗಿ ಕಾಯುವ ಸಮಯವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ — ಸರದಿಯಲ್ಲಿರುವ ವಿನಂತಿಯು ಸಂಪೂರ್ಣ ಹೆಡರ್ಗಳ ವಿಂಡೋಗಾಗಿ ಕಾಯುವುದನ್ನು ನಿಲ್ಲಿಸಿ ಮುಂದುವರಿಯುತ್ತದೆ. ಸ್ಟ್ರೀಮ್ ಮಾಡಲಾದ Responses ಕರೆಗಳಿಗೆ ಮಾತ್ರ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ (Responses ಸ್ಟ್ರೀಮ್ `response.created` ನೊಂದಿಗೆ ತೆರೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಅಲ್ಲಿನ ಮೌನವು ಸರದಿಯಾಗಿದೆ, ಜನರೇಶನ್ ಅಲ್ಲ); ಚಾಟ್ ಕಂಪ್ಲೀಷನ್ಗಳು ಮತ್ತು ಸ್ಟ್ರೀಮ್ ಮಾಡದ ಕರೆಗಳು ಬದಲಾಗುವುದಿಲ್ಲ, ಮತ್ತು ವಿಂಡೋ ಪರಿಣಾಮಕಾರಿ ಫೆಚ್-ಸ್ಟಾರ್ಟ್ ಗರಿಷ್ಠ ಮಿತಿಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆಯೇ ಹೊರತು ಎಂದಿಗೂ ವಿಸ್ತರಿಸುವುದಿಲ್ಲ. ಸಕ್ರಿಯಗೊಳಿಸುವಾಗ ಸೂಚಿಸಲಾದ ಮೌಲ್ಯ: `30000`. `0` ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS` | `2` | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ: ಪ್ರತಿ ವಿನಂತಿಗೆ ಮೇಲಿನ ಹೆಡರ್ಗಳಿಗಾಗಿ ಕಾಯುವ ಮಿತಿಯು ಮುಂದಿನ ಖಾತೆಗೆ ಎಷ್ಟು ಬಾರಿ ಸರಿಯಬಹುದು. ಕೊನೆಯದಾಗಿ ಉಳಿದಿರುವ ಖಾತೆಯು ಯಾವಾಗಲೂ ಸಂಪೂರ್ಣ ಹೆಡರ್ಗಳ ಕಾಲಾವಕಾಶವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. |
| `OPENCODE_PARK_AND_RESUME` | `false` | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ: ಪುನರಾವರ್ತಿತ ತಾತ್ಕಾಲಿಕ 429ಗಳ ನಂತರ (ಅಥವಾ ಹೊಸ pool-strain ಮಾರ್ಕರ್ ಇದ್ದಾಗ) ವಿನಂತಿಯನ್ನು heartbeat ಸಹಿತ ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಲ್ಲಿಸಿ, ನಂತರ ಸಂಪೂರ್ಣ ಖಾತೆಗಳ ಸಮೂಹಕ್ಕೆ ಏಕಕಾಲದಲ್ಲಿ ಕಳುಹಿಸುವ ಬದಲು ಅನುಕ್ರಮವಾಗಿ ಗರಿಷ್ಠ 3 ಖಾತೆಗಳನ್ನು ಒಳಗೊಂಡ ಒಂದು ಮಿತಿಗೊಳಿಸಿದ ಹಂತವನ್ನು ಮರುಚಾಲನೆ ಮಾಡಿ (#13924). ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ: ಹಿಂದಿನಂತೆಯೇ ಪ್ರತಿ 429 ಮುಂದಿನ ಖಾತೆಗೆ ತಿರುಗುತ್ತದೆ. |
| `OPENCODE_PARK_REPLAY_SERVE_SETASIDE` | `false` | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ: park-and-resume ಮರುಚಾಲನೆ ಹಂತದಲ್ಲಿನ cooldown ಮುಗಿದು ಸಿದ್ಧವಾಗಿರುವ ಪ್ರತಿಯೊಂದು ಖಾತೆಯನ್ನೂ proxy-refusal ಮೆಮೊರಿಯು ಬದಿಗಿರಿಸಿದಾಗ, ಏನನ್ನೂ ಮರುಚಾಲನೆ ಮಾಡದೆ ಇರುವ ಬದಲು ಅವುಗಳನ್ನೇ ಬಳಸಿಕೊಳ್ಳಿ (#14851, #14750ರ ಮುಂದುವರಿಕೆ). ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ: #14750ಕ್ಕಿಂತ ಹಿಂದಿನಂತೆಯೇ ಆ ಸಂದರ್ಭದಲ್ಲಿ ಮರುಚಾಲನೆ ಹಂತವು ಖಾಲಿಯಾಗಿರುತ್ತದೆ. |
| `STREAM_READINESS_STALL_RETRY` | `false` | ಸ್ಟ್ರೀಮಿಂಗ್ ಚಾಟ್ಗೆ ಮಾತ್ರ: ಬಳಸಬಹುದಾದ ಈವೆಂಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುವ ಮೊದಲು ಮೊದಲ upstream body ಸ್ಥಗಿತಗೊಂಡರೆ, ಅದೇ readiness ಬಜೆಟ್ನೊಂದಿಗೆ ಮತ್ತು ಯಾವುದೇ ಖಾತೆ ದಂಡವಿಲ್ಲದೆ ಅದೇ ರೌಟಿಂಗ್ ಮಾರ್ಗದ ಮೂಲಕ ಮಿತಿಗೊಳಿಸಿದ ಎರಡನೇ ಪ್ರಯತ್ನವನ್ನು ಮಾಡಿ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ: ಸ್ಥಗಿತಗೊಂಡ ಮೊದಲ body ಮರುಪ್ರಯತ್ನವಿಲ್ಲದೆ ವಿನಂತಿಯನ್ನು ವಿಫಲಗೊಳಿಸುತ್ತದೆ. |
| `OPENCODE_POOL_RESELECT` | `false` | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ: ಸಾಮಾನ್ಯ pool ಸಂದರ್ಭದ ಅಡಿಯಲ್ಲಿ proxy ಇಲ್ಲದ ಖಾತೆಯಲ್ಲಿ egress-bucketed ಪೂರೈಕೆದಾರರಿಂದ 429 ಬಂದ ನಂತರ, ಅದೇ egress ವಿಳಾಸವನ್ನು ಮರುಪ್ರಯತ್ನಿಸುವ ಬದಲು ಮುಂದಿನ ಪ್ರಯತ್ನಕ್ಕಾಗಿ ಮತ್ತೊಬ್ಬ ಸದಸ್ಯನನ್ನು ನೀಡುವಂತೆ ಸಂಪರ್ಕ pool ಅನ್ನು ಕೇಳಿ. ಇದು ಕ್ರಮವನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ, ಎಂದಿಗೂ ಹೊರತುಪಡಿಸುವುದಿಲ್ಲ: ಖಾಲಿಯಾದ pool ಪ್ರಸ್ತುತ ವರ್ತನೆಯನ್ನೇ ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ: ಹಿಂದಿನಂತೆಯೇ ಪ್ರತಿ 429 ಮುಂದಿನ ಖಾತೆಗೆ ತಿರುಗುತ್ತದೆ. |
| `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | OpenCode ಎಕ್ಸಿಕ್ಯೂಟರ್ಗೆ ಮಾತ್ರ: ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಲ್ಲಿಸುವ ಮೊದಲು ಓದಲಾಗುವ pool-strain ಮಾರ್ಕರ್ನ ಪಥವನ್ನು ಅತಿಕ್ರಮಿಸಿ (`{since, reason, ttl_s}`, ಪೂರ್ವನಿಯೋಜಿತ `/tmp/opencode-pool-strain.json`, #13924). ಹೊಸ ಮಾರ್ಕರ್ ಮರುಎಣಿಕೆ ಮಾಡದೆ ನಿಲ್ಲಿಸುತ್ತದೆ; ಮಾರ್ಕರ್ ಇಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಹಳೆಯದಾಗಿದ್ದರೆ burst ಕೌಂಟರ್ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | `/v1` ಬ್ರಿಡ್ಜ್ ವಿನಂತಿಗಳಿಗಾಗಿ proxy hop ಕಾಲಾವಧಿ ಮಿತಿ. |
| `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Firecrawl ವೆಬ್-ಫೆಚ್ ಎಕ್ಸಿಕ್ಯೂಟರ್ ಅನ್ನು ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ ಇನ್ಸ್ಟೆನ್ಸ್ಗೆ ನಿರ್ದೇಶಿಸಿ (ಕ್ಲೌಡ್ನ ಹೊರಗೆ API ಕೀ ಐಚ್ಛಿಕ). |
| `FIRECRAWL_TIMEOUT_MS` | `30000` | Firecrawl ವೆಬ್-ಫೆಚ್ ಎಕ್ಸಿಕ್ಯೂಟರ್ಗಾಗಿ ಪ್ರತಿ ವಿನಂತಿಯ ಕಾಲಾವಧಿ ಮಿತಿ. |
| `TAVILY_BASE_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | Tavily `/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` | ಬ್ರಿಡ್ಜ್ keep-alive ನಿಷ್ಕ್ರಿಯ ಕಾಲಾವಧಿ ಮಿತಿ. |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | ಕಚ್ಚಾ socket ಕಾಲಾವಧಿ ಮಿತಿ (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` ಪೂರ್ವನಿಗದಿಗಳಿಗೆ ಕಾಲಾವಧಿ ಮಿತಿ (ms). ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಸಕ್ರಿಯ/ದೋಷ ಸ್ಥಿತಿಗಳ ನಡುವೆ ಪದೇಪದೇ ಬದಲಾಗುವುದನ್ನು ತಡೆಯಲು ನಿಧಾನಗತಿಯ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳಿಗಾಗಿ (Cerebras, Cloudflare AI, Groq) ಇದನ್ನು ಹೆಚ್ಚಿಸಿ. ಅಮಾನ್ಯವಾದ (<1000) ಅಥವಾ ಸಂಖ್ಯಾತ್ಮಕವಲ್ಲದ ಮೌಲ್ಯಗಳಿಗೆ 8000msಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. |
| `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | `open-sse/utils/proxyFetch.ts`ನಲ್ಲಿನ relay-ನಿರ್ದಿಷ್ಟ fetch ಕಾಲಾವಧಿ ಮಿತಿ (#9158). ಸ್ಥಗಿತಗೊಂಡ relay, client/agent ಕಾಲಾವಧಿ ಮಿತಿಗಿಂತ (~30s) ಮೊದಲು ವಿಫಲವಾಗಬೇಕು; ಇದರಿಂದ ಕರೆ ಮಾಡುವವರಿಗೆ ಸಾಮಾನ್ಯ upstream ಕಾಲಾವಧಿ ಮಿತಿ ದೋಷದ ಬದಲು relay-ನಿರ್ದಿಷ್ಟ ವೈಫಲ್ಯ ಕಾಣಿಸುತ್ತದೆ. ಇದು ಯಾವಾಗಲೂ ಮೊದಲು ಸಕ್ರಿಯವಾಗುವಂತೆ `29000`ಕ್ಕೆ ಮಿತಿಗೊಳಿಸಲಾಗಿದೆ. |
| `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | `open-sse/utils/proxyFetch.ts`ನಲ್ಲಿನ direct/relay/proxy ಒಮ್ಮೆ-ಮರುಪ್ರಯತ್ನಿಸುವ ಮಾರ್ಗಗಳಿಗಾಗಿ ಹಂಚಿಕೆಯ ಮರುಪ್ರಯತ್ನ ವಿಳಂಬ (#9158). `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`). ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ — Perplexity ಹೇಗಿದ್ದರೂ ಹುಡುಕುತ್ತದೆ ಮತ್ತು ಈ ವಾಕ್ಯವು ಕೋಡಿಂಗ್ ಕ್ಲೈಂಟ್ಗಳ ಪ್ರತ್ಯುತ್ತರಗಳಲ್ಲಿ ಮೆಟಾ-ವಿವರಣೆಯಾಗಿ ಸೋರಿಕೆಯಾಗುತ್ತದೆ. ಮರುಸ್ಥಾಪಿಸಲು `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 Playground ಎಕ್ಸಿಕ್ಯೂಟರ್ನ ಪ್ರಾಥಮಿಕ ಎಂಜಿನ್ ಆಗಿ ಬಳಸಲಾಗುವ `obscura` ಬೈನರಿಯ ಮಾರ್ಗ (`open-sse/services/obscura.ts`); ಹೊಂದಿಸದಿದ್ದಾಗ ಸಿಸ್ಟಮ್ PATH ನಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚಲಾಗುತ್ತದೆ. |
| `OBSCURA_CDP_ENDPOINT` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | ಹೊಸದನ್ನು ಪ್ರಾರಂಭಿಸುವ ಬದಲು ಈಗಾಗಲೇ ಚಾಲನೆಯಲ್ಲಿರುವ Obscura (`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 Web (ಅಂತರರಾಷ್ಟ್ರೀಯ kimi.ai Connect-RPC) ಎಕ್ಸಿಕ್ಯೂಟರ್ನ ಮೂಲ URL (`kimi-web.ts`); ಮಿರರ್/ಪ್ರಾಕ್ಸಿ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳಿಗಾಗಿ ಮಾತ್ರ ಅತಿಕ್ರಮಿಸಿ. |
| `KIMI_WEB_CHAT_URL` | `/apiv2/kimi.gateway.chat.v1.ChatService/Chat` | Kimi Web ಎಕ್ಸಿಕ್ಯೂಟರ್ನ ಸಂಪೂರ್ಣ ಚಾಟ್ ಎಂಡ್ಪಾಯಿಂಟ್ (`kimi-web.ts`). |
| `OMNIROUTE_LOGIN_BROWSER_PATH` | _(ಸ್ವಯಂ-ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ)_ | Adobe Firefly ಸಂವಾದಾತ್ಮಕ ಬ್ರೌಸರ್ ಸೈನ್-ಇನ್ಗಾಗಿ ಸಿಸ್ಟಮ್ Chrome/Edge ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ನ ಮಾರ್ಗ (`adobeFireflyBrowserLogin.ts`); ಪ್ರತಿ-OS ಸ್ವಯಂ-ಪತ್ತೆಯನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ. |
| `OMNIROUTE_STANDALONE_DIR` | _.build/ ಸ್ವತಂತ್ರ ಔಟ್ಪುಟ್_ | ನಿರ್ಮಾಣದ ನಂತರದ ಸಹ-ಸ್ಥಾಪನೆ ಹಂತವು ಬಳಸುವ ಸ್ವತಂತ್ರ ಔಟ್ಪುಟ್ ಡೈರೆಕ್ಟರಿಗಾಗಿ ನಿರ್ಮಾಣ-ಸಮಯದ ಅತಿಕ್ರಮಣ (`scripts/build/colocate-standalone.mjs`); ಇದು ನಿರ್ಮಾಣ ಪರಿಕರಗಳಿಗಾಗಿ, ರನ್ಟೈಮ್ಗಾಗಿ ಅಲ್ಲ. |
ಕಾಂಬೊ ಗುರಿ ಪ್ರಯತ್ನಗಳು ಪರಿಹರಿಸಲಾದ ಅಪ್ಸ್ಟ್ರೀಮ್ ವಿನಂತಿ ಕಾಲಾವಧಿ ಮೀರುವಿಕೆಯನ್ನು (`FETCH_TIMEOUT_MS`, ಅಥವಾ
ಫೆಚ್ ಪೂರ್ವನಿಯೋಜಿತವನ್ನು ಒದಗಿಸುವಾಗ `REQUEST_TIMEOUT_MS`) ಅನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತವೆ. ಕಾಂಬೊ ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು
ವೇಗಗೊಳಿಸಲು ಮಾತ್ರ ಕಾಂಬೊ, ಕಾಂಬೊ ಪೂರ್ವನಿಯೋಜಿತಗಳು ಅಥವಾ ಪೂರೈಕೆದಾರ ಅತಿಕ್ರಮಣದಲ್ಲಿ `targetTimeoutMs` ಹೊಂದಿಸಿ;
ಪ್ರಸ್ತುತ ಅಪ್ಸ್ಟ್ರೀಮ್ ಕಾಲಾವಧಿ ಮೀರುವಿಕೆಗಿಂತ ಹೆಚ್ಚಿನ ಮೌಲ್ಯಗಳನ್ನು ಅಪ್ಸ್ಟ್ರೀಮ್ ಕಾಲಾವಧಿ ಮೀರುವಿಕೆಗೆ ಮಿತಿಗೊಳಿಸಲಾಗುತ್ತದೆ.
`comboTimeoutMs` ಎಂಬುದು ಫೇಲ್ಓವರ್ ಗುರಿಗಳಾದ್ಯಂತ ಸಂಪೂರ್ಣ ಕಾಂಬೊಗೆ ಅನ್ವಯಿಸುವ ಪ್ರತ್ಯೇಕ ವಾಲ್-ಕ್ಲಾಕ್ ಸಮಯದ ಬಜೆಟ್ ಆಗಿದೆ.
ಅನಿಯಮಿತ ಪುನರಾವರ್ತನೆಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಅದನ್ನು ಹೊಂದಿಸದೆ ಬಿಡಿ ಅಥವಾ `0` ಗೆ ಹೊಂದಿಸಿ (`comboPredicates.ts` ನಲ್ಲಿನ
10-ನಿಮಿಷಗಳ ಹಾರ್ಡ್ಕೋಡ್ ಮಾಡಿದ ಹ್ಯಾಂಗ್-ಸ್ಟಾಪ್ ಇನ್ನೂ ಅನ್ವಯಿಸುತ್ತದೆ). ಧನಾತ್ಮಕ ಮೌಲ್ಯವು ಕಾಂಬೊಗಾಗಿ ಆ
ಸುರಕ್ಷತಾ ವ್ಯವಸ್ಥೆಯನ್ನು ಬದಲಿಸುತ್ತದೆ. ನಿಧಾನವಾದ ಮೊದಲ ಗುರಿಯ ನಂತರವೂ ಫೇಲ್ಓವರ್ಗೆ ಸಮಯ ಉಳಿಯುವಂತೆ
`comboTimeoutMs` ಅನ್ನು `targetTimeoutMs` ಗಿಂತ ದೀರ್ಘವಾಗಿರಿಸಿ.
### ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಮಿತಿಗಳು
ಪೂರೈಕೆದಾರ-ಮಟ್ಟದ ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಹೊಂದಾಣಿಕೆ. ಪೂರ್ವನಿಯೋಜಿತಗಳು 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 ಪೂರೈಕೆದಾರ ಬ್ರೇಕರ್ಗಾಗಿ ಮರುಹೊಂದಿಸುವ ಅವಧಿ (ms). |
| `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-ಕೀ ಪೂರೈಕೆದಾರ ಬ್ರೇಕರ್ಗಾಗಿ ಮರುಹೊಂದಿಸುವ ಅವಧಿ (ms). |
| `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` | ಸ್ಥಳೀಯ ಪೂರೈಕೆದಾರ ಬ್ರೇಕರ್ಗಾಗಿ ಮರುಹೊಂದಿಸುವ ಅವಧಿ (ms). |
| `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 ಪೂರೈಕೆದಾರರಿಗಾಗಿ ರೋಲಿಂಗ್ ವೈಫಲ್ಯ-ಎಣಿಕೆ ಅವಧಿ (ms). |
| `OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS` | `300000` | `open-sse/config/constants.ts` | ಪೂರೈಕೆದಾರ-ಮಟ್ಟದ ಬ್ರೇಕರ್: OAuth ಪೂರೈಕೆದಾರರ ಮಿತಿ ತಲುಪಿದ ನಂತರದ ಕೂಲ್ಡೌನ್ (ms). |
| `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 ಪೂರೈಕೆದಾರರ ಗರಿಷ್ಠ 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` | ಪೂರೈಕೆದಾರ-ಮಟ್ಟದ ಬ್ರೇಕರ್: API-ಕೀ ಪೂರೈಕೆದಾರರಿಗಾಗಿ ರೋಲಿಂಗ್ ವೈಫಲ್ಯ-ಎಣಿಕೆ ಅವಧಿ (ms). |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | ಪೂರೈಕೆದಾರ-ಮಟ್ಟದ ಬ್ರೇಕರ್: API-ಕೀ ಪೂರೈಕೆದಾರರ ಮಿತಿ ತಲುಪಿದ ನಂತರದ ಕೂಲ್ಡೌನ್ (ms). |
| `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-ಕೀ ಪೂರೈಕೆದಾರರ ಗರಿಷ್ಠ 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` | ಪೂರೈಕೆದಾರ-ಮಟ್ಟದ ಬ್ರೇಕರ್: ಸ್ಥಳೀಯ ಪೂರೈಕೆದಾರರಿಗಾಗಿ ರೋಲಿಂಗ್ ವೈಫಲ್ಯ-ಎಣಿಕೆ ಅವಧಿ (ms). |
| `OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS` | `60000` | `open-sse/config/constants.ts` | ಪೂರೈಕೆದಾರ-ಮಟ್ಟದ ಬ್ರೇಕರ್: ಸ್ಥಳೀಯ ಪೂರೈಕೆದಾರರ ಮಿತಿ ತಲುಪಿದ ನಂತರದ ಕೂಲ್ಡೌನ್ (ms). |
| `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | ಅಪ್ಸ್ಟ್ರೀಮ್ 429 ಪ್ರತಿಕ್ರಿಯೆಯು `Retry-After` ಹೊಂದಿಲ್ಲದಿದ್ದಾಗ ಬಹು-ಕೀ API-ಕೀ ರೊಟೇಶನ್ನಿಂದ ಪ್ರತಿ ಕೀಗೆ ಅನ್ವಯಿಸಲಾಗುವ ಕೂಲ್ಡೌನ್ (ms) (#14573). ಧನಾತ್ಮಕವಲ್ಲದ ಅಥವಾ ಸಂಖ್ಯಾತ್ಮಕವಲ್ಲದ ಮೌಲ್ಯಗಳು ಡೀಫಾಲ್ಟ್ಗೆ ಹಿಂತಿರುಗುತ್ತವೆ. |
| `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | ಈ ಬ್ಯಾಕ್ಆಫ್ ಆಳದಲ್ಲಿ ಕಾಂಟೆಕ್ಸ್ಟ್-ಕ್ಯಾಶ್ ಪಿನ್ನ ಪೂರೈಕೆದಾರವನ್ನು ದೀರ್ಘಕಾಲಿಕವಾಗಿ ಅಸ್ವಸ್ಥ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಫೇಲ್ಓವರ್ಗಾಗಿ ಪಿನ್ ಅನ್ನು ಕೈಬಿಡಲಾಗುತ್ತದೆ. |
| `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | ಕಾಂಟೆಕ್ಸ್ಟ್-ಕ್ಯಾಶ್ ಪಿನ್ ಅನ್ನು ಕೈಬಿಡುವ ಮೊದಲು ಸಂಕ್ಷಿಪ್ತ ತಾತ್ಕಾಲಿಕ ಕೂಲ್ಡೌನ್ಗಳನ್ನು ಸಹಿಸಿಕೊಳ್ಳುವ ಆಂಟಿ-ಫ್ಲ್ಯಾಪ್ ಅವಧಿ (ms). |
### ಸನ್ನಿವೇಶಗಳು
| ಸನ್ನಿವೇಶ | ಸಂರಚನೆ |
| ------------------------------------------------ | ------------------------------------------------------ |
| **ದೀರ್ಘಾವಧಿಯ ಕೋಡ್ ಉತ್ಪಾದನೆ** | `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` | ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ವಿನಂತಿ/ಕರೆ ಲಾಗ್ ನಮೂದುಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವ ದಿನಗಳ ಸಂಖ್ಯೆ. |
| `CALL_LOG_MAX_ENTRIES` | `10000` | ಇನ್-ಮೆಮೊರಿ ಬಫರ್ನಲ್ಲಿನ ಕರೆ ಲಾಗ್ ನಮೂದುಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. |
| `CALL_LOGS_TABLE_MAX_ROWS` | `100000` | ತೆಗೆದುಹಾಕುವಿಕೆಗೆ ಮುನ್ನ `call_logs` SQLite ಟೇಬಲ್ನಲ್ಲಿರಬಹುದಾದ ಗರಿಷ್ಠ ಸಾಲುಗಳು. |
| `ENABLE_REQUEST_LOGS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ, ವಿವರವಾದ ವಿನಂತಿ ಲಾಗಿಂಗ್ ಅನ್ನು ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡಲು ಒತ್ತಾಯಿಸಿ. |
| `MAX_PENDING_REQUEST_AGE_MS` | `3600000` (1 ಗಂಟೆ) | ಇನ್-ಮೆಮೊರಿ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆಗೆ ಮುನ್ನ ಅನಾಥ ಸಕ್ರಿಯ ವಿನಂತಿ ಲಾಗ್ ನಮೂದುಗಳ ಗರಿಷ್ಠ ವಯಸ್ಸು. |
| `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]` ಕನ್ಸೋಲ್ ಲಾಗ್ಗಳಲ್ಲಿ ಕ್ಲೈಂಟ್/ಎಗ್ರೆಸ್ IP ವಿಳಾಸಗಳು ಮತ್ತು ಖಾತೆ ಪೂರ್ವಪ್ರತ್ಯಯಗಳನ್ನು ಸೇರಿಸಿ. ಡ್ಯಾಶ್ಬೋರ್ಡ್/ಡೇಟಾಬೇಸ್ ಪ್ರಾಕ್ಸಿ-ಲಾಗ್ ದಾಖಲೆಗಳು ಸಂಪೂರ್ಣ ವಿವರಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. |
| `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` | ಸಂಪೂರ್ಣ ಕ್ಲೋನ್ ಬದಲಿಗೆ ಕೇವಲ ಸಾರಾಂಶದಿಂದ ಬದಲಾಯಿಸುವ ಮೊದಲು ಸಂಪೂರ್ಣ ವಿನಂತಿ/ಪ್ರತಿಕ್ರಿಯೆ ಬಾಡಿಯ ಗಾತ್ರ (KB). ದೀರ್ಘ ಏಜೆಂಟಿಕ್ ಸಂಭಾಷಣೆಗಳಲ್ಲಿ ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ನಿಜವಾದ ಸಂದೇಶಗಳ ಬದಲಿಗೆ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಕಾಣಿಸಿದರೆ ಇದನ್ನು ಹೆಚ್ಚಿಸಿ. |
| `CHAT_DEBUG_FILE` | `false` | true ಆಗಿರುವಾಗ, `serializeArtifactForStorage` ಗಾತ್ರ-ಆಧಾರಿತ ಮೊಟಕುಗೊಳಿಸುವಿಕೆಯನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಡೀಬಗ್ಗೆ ಮಾತ್ರ. |
---
## 17. ಮೆಮೊರಿ ಆಪ್ಟಿಮೈಸೇಶನ್
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ವಿವರಣೆ |
| ----------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_MEMORY_MB` | _ಸ್ವಯಂ_ (ಬೇರ್ ಮೆಟಲ್); **Docker ಇಮೇಜ್ನಲ್ಲಿ `1024`** | **ಶಿಫಾರಸು ಮಾಡಲಾದ** Docker/ಸ್ವತಂತ್ರ V8 ಹೀಪ್ ಮಿತಿ (MB). ಹೊಂದಿಸದಿದ್ದಾಗ, ಇದನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಮಾಪನಾಂಕ ಮಾಡಲಾಗುತ್ತದೆ (ಸಿಸ್ಟಮ್ RAMನ ~35%, `[512, 4096]` ವ್ಯಾಪ್ತಿಗೆ ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ); ಒಟ್ಟು ಮೆಮೊರಿಯನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ ಮಾತ್ರ `512` ಕನಿಷ್ಠ ಮಿತಿಯಾಗಿರುತ್ತದೆ. `run-standalone.mjs` (Docker CMD) ನಲ್ಲಿ, **ಸ್ಪಷ್ಟವಾಗಿ ನೀಡಲಾದ** ಮೌಲ್ಯವನ್ನು `--max-old-space-size` ಆಗಿ ಸೇರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಂಘರ್ಷಿಸುವ NODE_OPTIONS ಹೀಪ್ ಫ್ಲ್ಯಾಗ್ಗಿಂತ ಅದಕ್ಕೇ **ಆದ್ಯತೆ** ಇರುತ್ತದೆ (V8 ಕೊನೆಯ-ಫ್ಲ್ಯಾಗ್). `omniroute serve` ಇನ್ನೂ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ NODE_OPTIONS ಹೀಪ್ಗೆ ಆದ್ಯತೆ ನೀಡುತ್ತದೆ (#5238). ಎರಡಕ್ಕೂ ವಿಭಿನ್ನ ಸಂಖ್ಯೆಗಳನ್ನು ಹೊಂದಿಸಬೇಡಿ — ಪ್ರಕ್ರಿಯೆಯು ಎರಡೂ ಮೌಲ್ಯಗಳು ಮತ್ತು ಯಾವುದಕ್ಕೆ ಆದ್ಯತೆ ದೊರೆಯಿತು ಎಂಬುದನ್ನು ಹೆಸರಿಸುವ ಎಚ್ಚರಿಕೆಯನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ. **ಅಧಿಕೃತ Docker ಇಮೇಜ್ ಯಾವಾಗಲೂ `1024` ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅಲ್ಲಿ ಮಾಪನಾಂಕ ಎಂದಿಗೂ ನಡೆಯುವುದಿಲ್ಲ.** ಕೋಡಿಂಗ್-ಏಜೆಂಟ್ `/v1/responses` ಗೆ cgroup ಹೆಚ್ಚುವರಿ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ `8192`–`12288` ಅಗತ್ಯವಿದೆ — [Docker ಮಾರ್ಗದರ್ಶಿ — ರನ್ಟೈಮ್ RAM](../guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents) ನೋಡಿ. |
| `OMNIROUTE_RSS_PRESSURE_MB` | _ಸ್ವಯಂ_ (`max(3072, 2 × OMNIROUTE_MEMORY_MB)`; `OMNIROUTE_MEMORY_MB` ಹೊಂದಿಸದಿದ್ದಾಗ ನಿಷ್ಕ್ರಿಯ) | `open-sse/utils/resourcePressure.ts` | V8 `heapUsed` ಗೆ ಕಾಣಿಸದ ಸ್ಥಳೀಯ/ಬಾಹ್ಯ ಮೆಮೊರಿಗಾಗಿ ಸಂಪೂರ್ಣ ಪ್ರಕ್ರಿಯೆ-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` | ಕ್ಯಾಶ್ ಮಾಡಲಾದ temperature=0 ಪ್ರತಿಕ್ರಿಯೆಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. |
| `SEMANTIC_CACHE_MAX_BYTES` | `4194304` (4 MB) | ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶ್ನ ಗರಿಷ್ಠ ಒಟ್ಟು ಗಾತ್ರ. |
| `SEMANTIC_CACHE_TTL_MS` | `1800000` (30 ನಿಮಿಷ) | ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶ್ ನಮೂದಿನ TTL. |
| `OMNIROUTE_CORPUS_CACHE_SIZE` | `5` | ಒಂದೇ ಸಮಯದಲ್ಲಿ ಸಕ್ರಿಯ ಇನ್-ಮೆಮೊರಿ ಸೂಚಿಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವ ಸ್ಥಳೀಯ-ಕಾರ್ಪಸ್ ರೂಟ್ಗಳು (`src/lib/localCorpus/configured.ts`). LRU: ಮಿತಿಯನ್ನು ತಲುಪಿದಾಗ ಅತ್ಯಂತ ದೀರ್ಘಕಾಲ ಬಳಸದ ರೂಟ್ನ ಸೂಚಿಯನ್ನು ಹೊರಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಅದರ ಮುಂದಿನ ಕ್ವೆರಿಯಲ್ಲಿ ಪುನಃ ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ. ಕನಿಷ್ಠ `1` ಗೆ ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ; ಸಂಖ್ಯೆಯಲ್ಲದ ಮೌಲ್ಯವು ಡೀಫಾಲ್ಟ್ಗೆ ಹಿಂದಿರುಗುತ್ತದೆ. |
| `STREAM_HISTORY_MAX` | `50` | Dashboard ಲೈವ್ ವೀಕ್ಷಣೆ ಬಫರ್ನಲ್ಲಿರುವ ಇತ್ತೀಚಿನ ಸ್ಟ್ರೀಮ್ ಈವೆಂಟ್ಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. |
| `CONTEXT_LENGTH_DEFAULT` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `CONTEXT_LENGTH_` ವೇರಿಯಬಲ್ ಇಲ್ಲದ ಪ್ರತಿಯೊಂದು ಪ್ರೊವೈಡರ್ಗಾಗಿ ಜಾಗತಿಕ ಕಾಂಟೆಕ್ಸ್ಟ್-ಉದ್ದದ ಅತಿಕ್ರಮಣ (ಟೋಕನ್ಗಳು). ಹೊಂದಿಸಿದಾಗ, ಅಂತಹ ಪ್ರೊವೈಡರ್ಗಳ ಕ್ಯಾಟಲಾಗ್, Dashboard ಅತಿಕ್ರಮಣ ಮತ್ತು ರಿಜಿಸ್ಟ್ರಿ ಮೌಲ್ಯಗಳನ್ನು ಇದು **ಬದಲಿಸುತ್ತದೆ**; ಹೊಂದಿಸದಿದ್ದಾಗ, OmniRoute ತನ್ನ ಅಂತರ್ನಿರ್ಮಿತ ಸರಣಿಯನ್ನು ಬಳಸುತ್ತದೆ, ಇದರ ಕೊನೆಯ ಪರ್ಯಾಯ `128000` ಆಗಿದೆ. [ಪ್ರತಿ-ಪ್ರೊವೈಡರ್ ಕಾಂಟೆಕ್ಸ್ಟ್ ಉದ್ದ](#per-provider-context-length-context_length_provider) ನೋಡಿ. |
| `USAGE_TOKEN_BUFFER` | `100` | ಬಳಕೆಯ ಕೋಟಾಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವಾಗ ಕಾಯ್ದಿರಿಸಲಾದ ಹೆಚ್ಚುವರಿ ಟೋಕನ್ ಸಾಮರ್ಥ್ಯ. |
### ಪ್ರತಿ-ಪ್ರೊವೈಡರ್ ಕಾಂಟೆಕ್ಸ್ಟ್ ಉದ್ದ (`CONTEXT_LENGTH_`)
`open-sse/services/contextManager.ts` (`getEnvOverride()` / `resolveTokenLimit()`) ರನ್ಟೈಮ್ನಲ್ಲಿ ಪ್ರೊವೈಡರ್ ID ಯಿಂದ ಹೆಸರನ್ನು ರಚಿಸಲಾಗುವ
**ಪ್ರತಿ-ಪ್ರೊವೈಡರ್** ರೂಪವನ್ನೂ ಓದುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ಮೇಲಿನ ಕೋಷ್ಟಕದಲ್ಲಿ ಅಥವಾ `.env.example` ನಲ್ಲಿ
ಸಾಲು-ಸಾಲಾಗಿ ಪಟ್ಟಿ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.
**ಹೆಸರು.** `CONTEXT_LENGTH_`, ಇಲ್ಲಿ `` ಎಂದರೆ ದೊಡ್ಡಕ್ಷರಕ್ಕೆ ಪರಿವರ್ತಿಸಲಾದ ಪೂರೈಕೆದಾರ ID ಆಗಿದ್ದು,
`A-Z` / `0-9` ಹೊರಗಿನ ಪ್ರತಿಯೊಂದು ಅಕ್ಷರವನ್ನು `_` ನಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಅಲಿಯಾಸ್ ಪರಿಹಾರದ ನಂತರದ ಅಂಗೀಕೃತ
ID ಪೂರೈಕೆದಾರ ID ಆಗಿರುತ್ತದೆ (ಸಂಕ್ಷಿಪ್ತ ಅಲಿಯಾಸ್ ಅನ್ನು ಪರಿಹರಿಸಿದ ನಂತರ `provider/model` ಸ್ಟ್ರಿಂಗ್ನ `provider`
ಭಾಗ). ಕಸ್ಟಮ್ OpenAI- ಅಥವಾ Anthropic-ಹೊಂದಾಣಿಕೆಯ ನೋಡ್ಗಳು ತಮ್ಮ ರಚಿಸಲಾದ ನೋಡ್ ID ಅನ್ನು ಬಳಸುತ್ತವೆ, ಆದ್ದರಿಂದ
UUID ವೇರಿಯಬಲ್ ಹೆಸರಿನ ಭಾಗವಾಗಿರುತ್ತದೆ. ಮೌಲ್ಯವು ಟೋಕನ್ಗಳ ಧನಾತ್ಮಕ ಪೂರ್ಣಾಂಕವಾಗಿರಬೇಕು; ಬೇರೆ ಯಾವುದನ್ನಾದರೂ
(ಖಾಲಿ, `0`, ಋಣಾತ್ಮಕ, ಸಂಖ್ಯಾತ್ಮಕವಲ್ಲದ) ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪರಿಹಾರ ಪ್ರಕ್ರಿಯೆಯು ಮುಂದಿನ ಹಂತಕ್ಕೆ ಸಾಗುತ್ತದೆ.
| ಪೂರೈಕೆದಾರ ID | ವೇರಿಯಬಲ್ ಹೆಸರು |
| ----------------------------------------------------------- | -------------------------------------------------------------------------- |
| agentrouter | CONTEXT_LENGTH_AGENTROUTER |
| openrouter | CONTEXT_LENGTH_OPENROUTER |
| openai-compatible-chat-0f8e2c1a-5b7d-4e3f-9a6c-2d1b8e4f7a90 | CONTEXT_LENGTH_OPENAI_COMPATIBLE_CHAT_0F8E2C1A_5B7D_4E3F_9A6C_2D1B8E4F7A90 |
**ಆದ್ಯತಾಕ್ರಮ.** `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`.
ಎರಡೂ ಪರಿಸರ ಹಂತಗಳು **ಇಡೀ ಪೂರೈಕೆದಾರರಿಗೆ** ಅನ್ವಯಿಸುತ್ತವೆ: ಆ ಪೂರೈಕೆದಾರರ ಪ್ರತಿಯೊಂದು ಮಾದರಿಗೂ ಒಂದೇ
ಮಿತಿ ಸಿಗುತ್ತದೆ ಮತ್ತು ಅವು ಪ್ರತಿ-ಮಾದರಿ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಓವರ್ರೈಡ್ಗಳಿಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತವೆ. ಪೂರೈಕೆದಾರರ ಒಂದೇ ಒಂದು ಮಾದರಿಗೆ
ಬೇರೆ ವಿಂಡೋ ಅಗತ್ಯವಿದ್ದಾಗ, ಅದರ ಬದಲು ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಪ್ರತಿ-ಮಾದರಿ ಓವರ್ರೈಡ್ ಬಳಸಿ.
**ವ್ಯಾಪ್ತಿ.** ಈ ಸರಪಳಿಯು ವಿನಂತಿ-ಸಮಯದ ಸಂದರ್ಭ-ವಿಂಡೋ ಪರಿಶೀಲನೆಯನ್ನು (`open-sse/handlers/chatCore.ts` ನಲ್ಲಿನ
`context_length_exceeded` / "ಇನ್ಪುಟ್ ಸಂದರ್ಭ ವಿಂಡೋವನ್ನು ಮೀರುತ್ತದೆ" ನಿರಾಕರಣೆ), ಪ್ರಾಂಪ್ಟ್ ಕಂಪ್ರೆಷನ್ ಬಜೆಟ್ಗಳು ಮತ್ತು ಸಂಯೋಜಿತ ಸಂದರ್ಭ ಮಿತಿಗಳನ್ನು
ನಿಯಂತ್ರಿಸುತ್ತದೆ. `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 ಒಂದು **ಏಕೈಕ Node ಪ್ರಕ್ರಿಯೆ** ಆಗಿದೆ. ಮೆಮೊರಿ ಎಕ್ಸ್ಟ್ರಾಕ್ಷನ್/ರಿಟ್ರೀವಲ್, ಕೌಶಲ್ಯಗಳ ಇಂಜೆಕ್ಷನ್ ಮತ್ತು ಪೂರೈಕೆದಾರರ ಟೋಕನ್ ರಿಫ್ರೆಶ್, `GET /healthz` ಮತ್ತು ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಚಲಿಸುವ **ಅದೇ ಈವೆಂಟ್ ಲೂಪ್ನಲ್ಲಿ** ಚಲಿಸುತ್ತವೆ. ಅವು ವರ್ಕರ್ ಥ್ರೆಡ್ ಅಲ್ಲ.
| ಕೆಲಸ | ಕೋಡ್ | ಡೀಫಾಲ್ಟ್ | ಆಪರೇಟರ್ ನಿಯಂತ್ರಣ |
| --------------------------------- | ---------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ಮೆಮೊರಿ ಎಕ್ಸ್ಟ್ರಾಕ್ಷನ್ / ರಿಟ್ರೀವಲ್ | `src/lib/memory/` | ಡ್ಯಾಶ್ಬೋರ್ಡ್ **memoryEnabled** (ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆನ್) | **Settings → Memory** ಅನ್ನು ಆಫ್ ಮಾಡಿ. ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ವೈಶಿಷ್ಟ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದನ್ನು ಹೊರತುಪಡಿಸಿ ಪ್ರತ್ಯೇಕ env ಕಿಲ್ ಸ್ವಿಚ್ ಇಲ್ಲ. |
| ಕೌಶಲ್ಯಗಳ ಇಂಜೆಕ್ಷನ್ | `src/lib/skills/injection.ts` | ಡ್ಯಾಶ್ಬೋರ್ಡ್ **skillsEnabled** (ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆನ್) | **Settings → Memory/Skills** (`skillsEnabled`) ಅನ್ನು ಆಫ್ ಮಾಡಿ. ಕೆಳಗಿನ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ನಿಯಂತ್ರಕಗಳು ಇಂಜೆಕ್ಷನ್ ಈಗಾಗಲೇ ಆನ್ ಆದ ನಂತರದ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಮಾತ್ರ ಮಿತಿಗೊಳಿಸುತ್ತವೆ. |
| ಟೋಕನ್ ರಿಫ್ರೆಶ್ | `src/sse/services/tokenRefresh.ts` | ಸಂಪರ್ಕಿತ OAuth/ವೆಬ್ ಪೂರೈಕೆದಾರರಿಗೆ ಆನ್ | ಪೂರೈಕೆದಾರರ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ ಅಥವಾ ಟೋಕನ್ಗಳು ಮಾನ್ಯವಾಗಿಯೇ ಉಳಿಯಲು ಬಿಡಿ; ಪ್ರಸ್ತುತ `TOKEN_REFRESH=0` env ಇಲ್ಲ. |
ನಿಷ್ಕ್ರಿಯ ಯಂತ್ರದಲ್ಲಿ `/healthz` ನಿಧಾನವಾಗಿದ್ದರೆ, ಮೊದಲು ಮೆಮೊರಿ + ಕೌಶಲ್ಯಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ, ನಂತರ ಕ್ಯಾಟಲಾಗ್/ಕಂಪ್ರೆಷನ್ ಲೋಡ್ ಪರಿಶೀಲಿಸಿ (#10303, #9685). ಈ ವೈಶಿಷ್ಟ್ಯಗಳು `await` ಬಿಂದುಗಳಲ್ಲಿ ನಿಯಂತ್ರಣವನ್ನು ಬಿಟ್ಟುಕೊಡುತ್ತವೆ, ಆದರೂ ಒಂದೇ ಥ್ರೆಡ್ಗಾಗಿ ಸ್ಪರ್ಧಿಸುತ್ತವೆ.
ನಿರಂತರ ಮೆಮೊರಿ ಉಪವ್ಯವಸ್ಥೆಗಾಗಿ ಎಂಬೆಡಿಂಗ್ ಪದರ, ವೆಕ್ಟರ್ ಸ್ಟೋರ್ ಮತ್ತು ಮರು-ಶ್ರೇಯಾಂಕ ನಿಯಂತ್ರಕಗಳು (`src/lib/memory/`).
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ವಿವರಣೆ |
| ------------------------------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MEMORY_EMBEDDING_CACHE_TTL_MS` | `300000` (5 ನಿಮಿಷ) | ಇನ್-ಮೆಮೊರಿ ಎಂಬೆಡ್ಡಿಂಗ್ ಕ್ಯಾಶ್ನ TTL (ಪ್ರತಿ ಮೂಲ/ಮಾದರಿ/ಆಯಾಮ ಸಹಿಗೆ). |
| `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` | ಸ್ಥಿರ potion ಮಾದರಿ ಫೈಲ್ಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡಲು ಬಳಸುವ ಡೈರೆಕ್ಟರಿ. ಹೊಂದಿಸದಿದ್ದಾಗ `DATA_DIR` ಅಡಿಯಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ. |
| `HF_HUB_ENDPOINT` | `https://huggingface.co` | `staticPotion.ts` ಬಳಸುವ Hugging Face Hub ಮೂಲ URL ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ (ಉದಾ. ಏರ್-ಗ್ಯಾಪ್ಡ್ ಸೆಟಪ್ಗಳಿಗಾಗಿ ಮಿರರ್ ಎಂಡ್ಪಾಯಿಂಟ್). |
| `MEMORY_VEC_TOP_K` | `20` | `src/lib/memory/vectorStore.ts` ಒಳಗಿನ `sqlite-vec` ಬ್ರೂಟ್-ಫೋರ್ಸ್ ವೆಕ್ಟರ್ ಹುಡುಕಾಟ ಬಳಸುವ ಡೀಫಾಲ್ಟ್ top-K. |
| `MEMORY_RRF_K` | `60` | ಹೈಬ್ರಿಡ್ FTS5 + ವೆಕ್ಟರ್ ಮರುಪಡೆಯುವಿಕೆಗಾಗಿ Reciprocal Rank Fusion ಸ್ಥಿರಾಂಕ `k` (sqlite-vec ವಿಧಾನ). |
| `VECTOR_STORE_DISABLE_VEC` | `false` | `getVectorStore()` (`src/lib/memory/vectorStore.ts`) ನಲ್ಲಿನ ಪರೀಕ್ಷೆ/ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಸೀಮ್: `true` ಆಗಿದ್ದಾಗ ವೆಕ್ಟರ್ ಸ್ಟೋರ್ ಅನ್ನು ಬಲವಂತವಾಗಿ `null` ಮಾಡುತ್ತದೆ (`sqlite-vec` ಇಲ್ಲದ ಕ್ಲೌಡ್/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 Vault ಬ್ಯಾಕೆಂಡ್ಗಾಗಿ 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` | ಬಳಸದ `episodic` ಮೆಮೊರಿ ಕ್ಷಯಗೊಳ್ಳುವವರೆಗಿನ TTL (ದಿನಗಳಲ್ಲಿ). `0` episodic ಮೆಮೊರಿಗೂ ರಕ್ಷಣೆ ನೀಡುತ್ತದೆ. ದೀರ್ಘಕಾಲಿಕ ಪ್ರಕಾರಗಳು (`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`/ಹೊಂದಿಸಿಲ್ಲ = ಆವರ್ತಕ ಸ್ವೀಪ್ ಇಲ್ಲ. ಇದಕ್ಕೆ ಎರಡು ಹಂತದ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಅಗತ್ಯ: `MEMORY_TYPED_DECAY_ENABLED=true` ಕೂಡ ಇರಬೇಕು. |
| `OMNIROUTE_STRICT_SYSTEM_PROVIDERS` | _(ಹೊಂದಿಸಿಲ್ಲ)_ | `system` ಸಂದೇಶವನ್ನು **ಸೂಚ್ಯಂಕ 0 ರಲ್ಲಿ ಮಾತ್ರ** ಸ್ವೀಕರಿಸುವ, ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಪ್ರೊವೈಡರ್ ಐಡಿಗಳು (ಕೇಸ್-ಇನ್ಸೆನ್ಸಿಟಿವ್) (`src/lib/memory/injection.ts`). ಇವುಗಳಿಗೆ, ಬಹು-ತಿರುವಿನ ಸಂಭಾಷಣೆಗಳಲ್ಲಿ ಕ್ಯಾಶ್-ಸುರಕ್ಷಿತ ಮಧ್ಯ-ಅರೇ ಮೆಮೊರಿ ಸ್ಪ್ಲೈಸ್ ಅಸುರಕ್ಷಿತವಾಗಿರುತ್ತದೆ; ಆದ್ದರಿಂದ ಮೆಮೊರಿಯನ್ನು ಪ್ರಮುಖ system ಸಂದೇಶವಾಗಿ ವಿಲೀನಗೊಳಿಸಲಾಗುತ್ತದೆ/ಮುಂಭಾಗಕ್ಕೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಡೀಫಾಲ್ಟ್ ಆಗಿ `xiaomi-mimo`/`mimo` ಮಾತ್ರ; ಅದೇ ಏಕೈಕ-ಪ್ರಮುಖ-system-ಸಂದೇಶ ನಿರ್ಬಂಧವನ್ನು ಜಾರಿಗೊಳಿಸುವ ಚಾಟ್ ಟೆಂಪ್ಲೇಟ್ ಹೊಂದಿರುವ ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ OpenAI-ಹೊಂದಾಣಿಕೆಯ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳಿಗಾಗಿ (ಉದಾ. Qwen3.5+/3.6) ಇದನ್ನು ವಿಸ್ತರಿಸಿ. |
### ಕಡಿಮೆ-RAM 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` (24h) | `src/lib/pricingSync.ts` | ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸಮನ್ವಯದ ಮಧ್ಯಂತರ. |
| `PRICING_SYNC_SOURCES` | `litellm` | `src/lib/pricingSync.ts` | ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ದತ್ತಾಂಶ ಮೂಲಗಳು. |
---
## Arena ELO ಸಮನ್ವಯ
| ವೇರಿಯಬಲ್ | ಪೂರ್ವನಿಯೋಜಿತ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------- | ------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ARENA_ELO_SYNC_ENABLED` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | ನಿಯತಕಾಲಿಕ Arena AI ಲೀಡರ್ಬೋರ್ಡ್ ELO ಸಮನ್ವಯ; ಇದನ್ನು Dashboard Feature Flags ಮೂಲಕ ಸಂರಚಿಸಬಹುದು ಅಥವಾ ಹೊರಗುಳಿಯಲು `false` ಹೊಂದಿಸಬಹುದು. |
| `MODELS_CATALOG_PREFIX_MODE` | `dual` | `src/shared/constants/featureFlagDefinitions.ts`, `src/app/api/v1/models/catalog.ts` | `GET /v1/models` ನಲ್ಲಿ ಮಾದರಿ IDಗಳಿಗಾಗಿ ಬಳಸುವ ಪೂರ್ವಪ್ರತ್ಯಯದ ರೂಪ. ಪ್ರತಿ ಮಾದರಿಗೂ `dual` ಸಂಕ್ಷಿಪ್ತ ಅಲಿಯಾಸ್ ಪೂರ್ವಪ್ರತ್ಯಯ ಮತ್ತು ಅಧಿಕೃತ ಪೂರೈಕೆದಾರ ಪೂರ್ವಪ್ರತ್ಯಯ ಎರಡನ್ನೂ ಪ್ರಕಟಿಸುತ್ತದೆ (ಹಿಂದಿನ ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆ — ಕ್ಯಾಟಲಾಗ್ ಗಾತ್ರವನ್ನು ಸರಿಸುಮಾರು ದ್ವಿಗುಣಗೊಳಿಸುತ್ತದೆ); `alias` ಪ್ರತಿ ಮಾದರಿಗೆ ಒಂದು ID ಅನ್ನು ಹೊರಸೂಸುತ್ತದೆ; `canonical` ಪೂರ್ಣ ಪೂರೈಕೆದಾರ-ID ಪೂರ್ವಪ್ರತ್ಯಯವನ್ನು ಮಾತ್ರ ಹೊರಸೂಸುತ್ತದೆ (ಈಗಾಗಲೇ ಅಧಿಕೃತ ID ಆಗಿರುವ ಅಲಿಯಾಸ್ ಹೊಂದಿರುವ ಪೂರೈಕೆದಾರರು ತಮ್ಮ ಏಕೈಕ ನಮೂದನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತಾರೆ). ಕ್ಲೈಂಟ್ಗಳು ಪ್ರತಿ ವಿನಂತಿಗೆ `?prefix=alias` ಬಳಸಿ ಇದನ್ನು ಅತಿಕ್ರಮಿಸಬಹುದು. [API_REFERENCE](API_REFERENCE.md#model-id-prefixes-prefix) ನೋಡಿ. |
| `ARENA_ELO_SYNC_INTERVAL` | `86400` (24h) | `src/lib/arenaEloSync.ts` | ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸಮನ್ವಯದ ಮಧ್ಯಂತರ. |
---
## PromptQL Playground ಪೂರೈಕೆದಾರ (ಅಧಿಕೃತವಲ್ಲದ/ಪ್ರಾಯೋಗಿಕ)
prompt.ql.app ಗಾಗಿ ರಿವರ್ಸ್-ಎಂಜಿನಿಯರ್ ಮಾಡಲಾದ GraphQL ಸೆಷನ್ ಬ್ರಿಡ್ಜ್ (`src/shared/constants/providers/web-cookie.ts`). ಎಲ್ಲವೂ ಐಚ್ಛಿಕ — ಪೂರ್ವನಿಯೋಜಿತಗಳು ಸಾರ್ವಜನಿಕ ಪ್ಲೇಗ್ರೌಂಡ್ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ಸೂಚಿಸುತ್ತವೆ; ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ/ಪರ್ಯಾಯ PromptQL ನಿಯೋಜನೆಗಾಗಿ ಮಾತ್ರ ಅತಿಕ್ರಮಿಸಿ.
| ವೇರಿಯಬಲ್ | ಪೂರ್ವನಿಯೋಜಿತ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------- | ------------------------------------------------------------------ | ----------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `PROMPTQL_GRAPHQL_ENDPOINT` | `https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql` | `open-sse/executors/promptql.ts` | ಚಾಟ್/ಸೆಷನ್ ಕಾರ್ಯಾಚರಣೆಗಳಿಗಾಗಿ ಬಳಸುವ GraphQL ಎಂಡ್ಪಾಯಿಂಟ್. |
| `PROMPTQL_CREDITS_ENDPOINT` | `https://data.pro.ql.app/v1/graphql` | `open-sse/executors/promptql.ts`, `open-sse/services/usage/promptql.ts` | ಕ್ರೆಡಿಟ್ ಬಾಕಿ/ಬಳಕೆಯನ್ನು ವಿಚಾರಿಸಲು ಬಳಸುವ 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` ಅನ್ನು ಪೋಲ್ ಮಾಡಲು ಗರಿಷ್ಠ ಸಮಯ (ms). |
---
## HyperAgent ವೆಬ್ ಪೂರೈಕೆದಾರ (ಅಧಿಕೃತವಲ್ಲದ/ಪ್ರಾಯೋಗಿಕ)
hyperagent.com ಗಾಗಿ ರಿವರ್ಸ್-ಎಂಜಿನಿಯರ್ ಮಾಡಲಾದ ಸೆಷನ್ ಬ್ರಿಡ್ಜ್ (`src/shared/constants/providers/web-cookie.ts`). ಐಚ್ಛಿಕ — ಡೀಫಾಲ್ಟ್ ಸಾರ್ವಜನಿಕ ಬಿಲ್ಲಿಂಗ್/ಬಳಕೆ ಎಂಡ್ಪಾಯಿಂಟ್ಗೆ ಸೂಚಿಸುತ್ತದೆ; ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ/ಪರ್ಯಾಯ HyperAgent ನಿಯೋಜನೆಗಾಗಿ ಮಾತ್ರ ಅತಿಕ್ರಮಿಸಿ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------- | --------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------- |
| `HYPERAGENT_USAGE_URL` | `https://hyperagent.com/api/settings/billing/usage` | `open-sse/services/usage/hyperagent.ts` | ಬಿಲ್ಲಿಂಗ್/ಬಳಕೆಯ ಕ್ರೆಡಿಟ್ ಬ್ಲಾಕ್ಗಳನ್ನು ಪಡೆಯಲು ಬಳಸುವ ಎಂಡ್ಪಾಯಿಂಟ್. |
---
## Kilo Code ಬಳಕೆಯ ಕೋಟಾಗಳು
Kilo Code ಪೂರೈಕೆದಾರಕ್ಕಾಗಿ ವೈಯಕ್ತಿಕ USD ಬ್ಯಾಲೆನ್ಸ್ ಮತ್ತು Kilo Pass ಬಳಕೆಯ ಮಾಹಿತಿ ಪಡೆಯುವಿಕೆ. ಐಚ್ಛಿಕ — ಡೀಫಾಲ್ಟ್ ಸಾರ್ವಜನಿಕ Kilo APIಗೆ ಸೂಚಿಸುತ್ತದೆ; ರಿಲೇ/ಪರೀಕ್ಷಾ ಫಿಕ್ಸ್ಚರ್ಗಾಗಿ ಮಾತ್ರ ಅತಿಕ್ರಮಿಸಿ. ದೃಢೀಕರಣವು ಸಂಪರ್ಕದ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ OAuth ಪ್ರವೇಶ ಟೋಕನ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| -------------- | --------------------- | ------------------------------------- | ----------------------------------------------------------------------------- |
| `KILO_API_URL` | `https://api.kilo.ai` | `open-sse/services/usage/kilocode.ts` | ವೈಯಕ್ತಿಕ Kilo Code ಬ್ಯಾಲೆನ್ಸ್ ಮತ್ತು Kilo Pass ಬಳಕೆಯನ್ನು ಪಡೆಯಲು ಬಳಸುವ ಮೂಲ URL. |
---
## Adobe Firefly ವೆಬ್ ಪೂರೈಕೆದಾರ (ಅಧಿಕೃತವಲ್ಲದ/ಪ್ರಾಯೋಗಿಕ)
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` | ನಿಜವಾದ ಹೆಡ್ಲೆಸ್ Chromeಗಾಗಿ `1`ಗೆ ಹೊಂದಿಸಿ (ಜನರೇಟ್ಗಾಗಿ ದೋಷಪೂರಿತವೆಂದು ತಿಳಿದಿದೆ; ಡೀಬಗ್ಗಾಗಿ ಮಾತ್ರ). |
| `ADOBE_FIREFLY_BROWSER_REFRESH` | `1` | `open-sse/services/adobeFireflySession.ts` | ಮುನ್ನೆಚ್ಚರಿಕೆಯ ಬ್ರೌಸರ್ ವಾರ್ಮ್ ಆಯ್ಕೆ/ನಿರಾಕರಣೆ. `0` ಮುನ್ನೆಚ್ಚರಿಕೆಯ ವಾರ್ಮ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ (ಬ್ಯಾಚ್ ಮಧ್ಯದ 408 ಚೇತರಿಕೆ ಇನ್ನೂ ಅನ್ವಯಿಸುತ್ತದೆ). |
| `ADOBE_FIREFLY_SESSION_DISK` | `1` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly ಸೆಷನ್ ಅನ್ನು ಡಿಸ್ಕ್ನಲ್ಲಿ ಉಳಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `0`ಗೆ ಹೊಂದಿಸಿ. |
| `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/adobeFireflySession.ts` | ಅಂತರ್ನಿರ್ಮಿತ ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ, ಅನುಕ್ರಮ ಸಲ್ಲಿಕೆಗಳ ನಡುವೆ ಜಾರಿಗೊಳಿಸುವ ಕನಿಷ್ಠ ಅಂತರ (ms). |
| `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/adobeFireflySession.ts` | ಅಂತರ್ನಿರ್ಮಿತ ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ, ಯಶಸ್ವಿ ಬ್ಯಾಚ್ನ ನಂತರ ಸೇರಿಸುವ ಹೆಚ್ಚುವರಿ ಅಂತರ (ms). |
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/adobeFireflyClient.ts` | ಅಂತರ್ನಿರ್ಮಿತ ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ, ಜನರೇಷನ್ ವಿನಂತಿಯನ್ನು ಸಲ್ಲಿಸುವ ಮೊದಲು ಇರುವ ಮೂಲ ವಿಳಂಬ (ms). |
---
## 19. ಮಾದರಿ ಸಿಂಕ್ (ಡೆವ್)
| ಚರ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ----------------------------------- | ----------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `MODELS_DEV_SYNC_ENABLED` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/modelsDevSync.ts` | models.dev ಬೆಲೆ ಸಿಂಕ್ಗಾಗಿ ಕಡ್ಡಾಯ ಓವರ್ರೈಡ್. ಹೊಂದಿಸದಿದ್ದರೆ = Settings > AI (`modelsDevSyncEnabled`) ಅನ್ನು ಗೌರವಿಸುತ್ತದೆ. `0`/`false`/`off`/`no` **DB ಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ** ಮತ್ತು ಆವರ್ತಕ ಸಿಂಕ್ ಹಾಗೂ `getModelsDevPricing()` SQL/JSON ಸ್ಕ್ಯಾನ್ಗಳೆರಡನ್ನೂ ಬಿಟ್ಟುಬಿಡುತ್ತದೆ (ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಅದೇ ಈವೆಂಟ್ ಲೂಪ್ನಲ್ಲಿ ಸಿಲುಕಿಕೊಂಡಾಗ ಮರುಪಡೆಯಲು). `1`/`true`/`on`/`yes` ಸಿಂಕ್ ಅನ್ನು ಬಲವಂತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಬೆಲೆಯನ್ನು ಉಳಿಸುವುದು/ತೆರವುಗೊಳಿಸುವುದು ಇನ್ನೂ `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) ಮಧ್ಯಂತರ (ಸೆಕೆಂಡುಗಳಲ್ಲಿ): ಪೂರೈಕೆದಾರರು ಘೋಷಿಸಿದ ವಿಂಡೋಗಳು ಕ್ಯಾಟಲಾಗ್ನಿಂದ ಭಿನ್ನವಾಗಿದ್ದಾಗ, `/models` ಡಿಸ್ಕವರಿಯಿಂದ ಅವುಗಳನ್ನು `auto:discovery` ಓವರ್ರೈಡ್ಗಳಾಗಿ ಪಿನ್ ಮಾಡುತ್ತದೆ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `0` ಗೆ ಹೊಂದಿಸಿ. ಈಗಾಗಲೇ ಸಿಂಕ್ ಮಾಡಿದ ಡೇಟಾವನ್ನು ಮರುಬಳಸುತ್ತದೆ (ಹೊಸದಾಗಿ ಪಡೆಯುವುದಿಲ್ಲ); `manual` ಓವರ್ರೈಡ್ಗಳನ್ನು ಎಂದಿಗೂ ತಿದ್ದಿ ಬರೆಯುವುದಿಲ್ಲ. |
---
## 20. ಪೂರೈಕೆದಾರ-ನಿರ್ದಿಷ್ಟ ಸೆಟ್ಟಿಂಗ್ಗಳು
| ವೇರಿಯೇಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24h) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter ಮಾದರಿ ಕ್ಯಾಟಲಾಗ್ ಕ್ಯಾಶ್ TTL. |
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | `/v1/models` ಪ್ರತಿಕ್ರಿಯೆಗಳಲ್ಲಿ ಪ್ರದರ್ಶನಕ್ಕೆ ಅನುಕೂಲಕರವಾದ `name` ಕ್ಷೇತ್ರಗಳನ್ನು ಸೇರಿಸಿ. IDಗಳನ್ನು ಮಾತ್ರ ನಿರೀಕ್ಷಿಸುವ ಕ್ಲೈಂಟ್ಗಳಿಗಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. |
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8s) | `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` (60s) | `src/lib/usage/analyticsResponseCache.ts` | ಅದೇ ಕ್ವೆರಿ ಸ್ಟ್ರಿಂಗ್ಗಾಗಿ ನಿಧಾನವಾದ `GET /api/usage/analytics` ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಎಷ್ಟು ಕಾಲ ಮರುಬಳಕೆ ಮಾಡಬೇಕು (#15629). `0` ಕ್ಯಾಶ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1s) | `src/lib/usage/analyticsResponseCache.ts` | ನಿರ್ಮಿಸಲು ಕನಿಷ್ಠ ಇಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಂಡ ಅನಾಲಿಟಿಕ್ಸ್ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಮಾತ್ರ ಕ್ಯಾಶ್ ಮಾಡಲಾಗುತ್ತದೆ; ಹೀಗಾಗಿ ಸಣ್ಣ ಇನ್ಸ್ಟಾನ್ಸ್ಗಳು ಯಾವಾಗಲೂ ತಾಜಾ ಡೇಟಾವನ್ನು ನೋಡುತ್ತವೆ. |
| `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 Bedrock ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು (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 Workers AI ಗಾಗಿನ ಖಾತೆ ID. |
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/executors/cloudflare-playground.ts` | ಹೆಡ್ಲೆಸ್ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಪರಿಶೀಲನೆಯು Playwright ಜೊತೆಗೆ ಬರುವ Chromium ಅನ್ನು ನಿರ್ಬಂಧಿಸಿದಾಗ ಬಳಸಲಾಗುವ, Cloudflare AI Playground ಎಕ್ಸಿಕ್ಯೂಟರ್ಗಾಗಿನ ಸಂಪೂರ್ಣ ಡೆಸ್ಕ್ಟಾಪ್ Chrome ಬೈನರಿ ಪಥ. |
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddyಗೆ (CN ಮತ್ತು International) ಕಳುಹಿಸುವ ಕಾಲರ್ ಸಿಸ್ಟಂ ಪ್ರಾಂಪ್ಟ್ಗಳಿಗೆ ಐಚ್ಛಿಕ ಉದ್ದದ ಮಿತಿ. ಡೀಫಾಲ್ಟ್ ಆಗಿ, ಕೋಡಿಂಗ್-ಏಜೆಂಟ್ ಗುರುತು ಮಾರ್ಕರ್ ಹೊಂದಿರುವ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ಮಾತ್ರ ತಟಸ್ಥವಾದ ಪ್ರಾಂಪ್ಟ್ನಿಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ (Tencentನ ವಿಷಯ ಫಿಲ್ಟರ್ ಅವುಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ); ಉದ್ದವಾದ ಪ್ರಾಂಪ್ಟ್ಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. > 0 ಇರುವ ಪೂರ್ಣಾಂಕವು ಅಷ್ಟು ಅಕ್ಷರಗಳಿಗಿಂತ ಉದ್ದವಾದ ಯಾವುದೇ ಸಿಸ್ಟಂ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನೂ ಬದಲಾಯಿಸುತ್ತದೆ; ಹೊಂದಿಸದಿರುವುದು, `0` ಅಥವಾ ಪೂರ್ಣಾಂಕವಲ್ಲದ ಮೌಲ್ಯವು ಮಿತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಪ್ರತಿ ಬದಲಾವಣೆಯು ಯಾವ ನಿಯಮ ಅನ್ವಯವಾಯಿತು ಎಂಬುದನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ (ಗುರುತು ಮಾರ್ಕರ್ ಅಥವಾ ಉದ್ದ). |
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | ಪ್ರಾಕ್ಸಿ-ಪೂಲ್ Workers ರಿಲೇ ಡಿಪ್ಲಾಯರ್ ಬಳಸುವ Cloudflare REST API ಮೂಲವನ್ನು ಅತಿಕ್ರಮಿಸಿ (#4640 / 9router#1360). |
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | ಪ್ರಾಕ್ಸಿ-ಪೂಲ್ "Deploy Relay" ಮೋಡಲ್ನಲ್ಲಿ ಸೂಚಿಸಲಾಗುವ ಡೀಫಾಲ್ಟ್ worker ಪ್ರಾಜೆಕ್ಟ್ ಹೆಸರು. |
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Proxy Pool ಟ್ಯಾಬ್ನಿಂದ Cloudflare Workers ರಿಲೇ ಆಯ್ಕೆಯನ್ನು ಮರೆಮಾಡಲು `false` ಎಂದು ಹೊಂದಿಸಿ. |
| `CLOUDFLARED_BIN` | ಸ್ವಯಂ-ಪತ್ತೆ | `src/lib/cloudflaredTunnel.ts` | `cloudflared` ಬೈನರಿಗೆ ಕಸ್ಟಮ್ ಪಥ. |
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | ಟನಲ್ ಸಾರಿಗೆ ಪ್ರೋಟೋಕಾಲ್: `http2` (ಡೀಫಾಲ್ಟ್), `quic`, ಅಥವಾ `auto`. |
| `CLOUDFLARED_CONFIG` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/cloudflaredTunnel.ts` | ಸ್ಥಳೀಯವಾಗಿ ನಿರ್ವಹಿಸಲಾದ cloudflared `config.yml`ಗೆ ಪಥ (`tunnel:`, `credentials-file:`, `ingress:` ಜೊತೆಗೆ). ಇದನ್ನು ಹೊಂದಿಸಿದಾಗ, OmniRoute ತಾತ್ಕಾಲಿಕ ಕ್ವಿಕ್ ಟನಲ್ ಬದಲಿಗೆ `tunnel --config run` (ಹೆಸರಿಸಲಾದ ಟನಲ್) ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ. |
| `CLOUDFLARED_HOSTNAME` | _(ಕಾನ್ಫಿಗ್ ingress ನಿಂದ)_ | `src/lib/cloudflaredTunnel.ts` | ಹೆಸರಿಸಲಾದ ಟನಲ್ನ ಸಾರ್ವಜನಿಕ ಹೋಸ್ಟ್ನೇಮ್ಗೆ ಓವರ್ರೈಡ್ (ಉದಾ. `ai.example.com`), ಇದನ್ನು `publicUrl`/`apiUrl` ಆಗಿ ವರದಿ ಮಾಡಲಾಗುತ್ತದೆ. ಇದನ್ನು ಹೊಂದಿಸದಿದ್ದಾಗ, ಕಾನ್ಫಿಗ್ನ ಮೊದಲ `ingress` ಹೋಸ್ಟ್ನೇಮ್ನಿಂದ ಓದಲಾಗುತ್ತದೆ. |
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | ಪ್ರಾಕ್ಸಿ-ಪೂಲ್ ರಿಲೇ ಡಿಪ್ಲಾಯರ್ ಬಳಸುವ Deno Deploy REST API ಬೇಸ್ಗೆ ಓವರ್ರೈಡ್ (#4643 / 9router#1437). |
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | ಪ್ರಾಕ್ಸಿ-ಪೂಲ್ "Deploy Relay" ಮೋಡಲ್ನಲ್ಲಿ ಸೂಚಿಸಲಾಗುವ ಡೀಫಾಲ್ಟ್ Deno Deploy ಆ್ಯಪ್ ಹೆಸರು. |
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Proxy Pool ಟ್ಯಾಬ್ನಿಂದ Deno Deploy ರಿಲೇ ಆಯ್ಕೆಯನ್ನು ಮರೆಮಾಡಲು `false` ಎಂದು ಹೊಂದಿಸಿ. |
| `SEARCH_CACHE_TTL_MS` | `300000` (5 ನಿಮಿಷ) | `open-sse/services/searchCache.ts` | ಹುಡುಕಾಟ API (Perplexity, Brave, ಇತ್ಯಾದಿ) ಪ್ರತಿಕ್ರಿಯೆ ಕ್ಯಾಶಿಂಗ್ಗಾಗಿ TTL. |
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Claude Code-ಮಾತ್ರದ ರಿಲೇಗಳಿಗಾಗಿ ಪ್ರಾಯೋಗಿಕ CC-ಹೊಂದಾಣಿಕೆಯ ಪೂರೈಕೆದಾರ UI ಅನ್ನು ತೋರಿಸಿ. |
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | ಎಂಬೆಡ್ ಮಾಡಲಾದ 9router ಇನ್ಸ್ಟೆನ್ಸ್ ಆಲಿಸುವ ಹೋಸ್ಟ್ ಅನ್ನು ಓವರ್ರೈಡ್ ಮಾಡಿ. |
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | ಎಂಬೆಡ್ ಮಾಡಲಾದ 9router ಇನ್ಸ್ಟೆನ್ಸ್ ಆಲಿಸುವ ಪೋರ್ಟ್ ಅನ್ನು ಓವರ್ರೈಡ್ ಮಾಡಿ. |
| `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` | docker-compose `cliproxyapi` ಸೈಡ್ಕಾರ್ ಅನ್ನು ಪ್ರಕಟಿಸುವ ಹೋಸ್ಟ್ ಇಂಟರ್ಫೇಸ್ (#12578). ಇದರ ಡೇಟಾ ವಾಲ್ಯೂಮ್ ಪೂರೈಕೆದಾರ 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` | ಎಂಬೆಡ್ ಮಾಡಲಾದ open-wa (WhatsApp Web ಸ್ವಯಂಚಾಲನೆ) ಡೀಮನ್ ಆಲಿಸುವ ಪೋರ್ಟ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ (ಯಾವಾಗಲೂ 127.0.0.1). |
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario ಎಂಬೆಡೆಡ್-ಸೇವೆಯ ಬೈಂಡ್/ಕನೆಕ್ಟ್ ಹೋಸ್ಟ್ (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಲೂಪ್ಬ್ಯಾಕ್ ಮಾತ್ರ). |
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario ಎಂಬೆಡೆಡ್-ಸೇವೆಯ ಪೋರ್ಟ್. |
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario ಎಂಬೆಡೆಡ್-ಸೇವೆಯ ಬೈಂಡ್/ಕನೆಕ್ಟ್ ಹೋಸ್ಟ್ (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಲೂಪ್ಬ್ಯಾಕ್ ಮಾತ್ರ). |
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario ಎಂಬೆಡೆಡ್-ಸೇವೆಯ ಪೋರ್ಟ್. |
| `LOCAL_HOSTNAMES` | _(ಖಾಲಿ)_ | `open-sse/config/providerRegistry.ts` | "ಸ್ಥಳೀಯ" ಎಂದು ಪರಿಗಣಿಸಲಾಗುವ, ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಹೆಚ್ಚುವರಿ ಹೋಸ್ಟ್ಹೆಸರುಗಳು (Docker ಸೇವಾ ಹೆಸರುಗಳು ಇತ್ಯಾದಿ). |
`ENABLE_CC_COMPATIBLE_PROVIDER` ಕೇವಲ Claude Code ಕ್ಲೈಂಟ್ಗಳನ್ನು
ಪ್ರತ್ಯೇಕವಾಗಿ ಸ್ವೀಕರಿಸುವ ತೃತೀಯ-ಪಕ್ಷದ ರಿಲೇಗಳಿಗಾಗಿ ಮಾತ್ರ. ಆ ರಿಲೇಗಳು ವಿನಂತಿಗಳನ್ನು ಸ್ವೀಕರಿಸುವಂತೆ OmniRoute ಅವುಗಳನ್ನು ಮರುಬರೆಯುತ್ತದೆ. ನೀವು ಕೇವಲ
Claude Code CLI ಅನ್ನು ಬಳಸಲು ಬಯಸಿದರೆ ಅಥವಾ ಈ ರಿಲೇಗಳು ಯಾವುವೆಂದು ನಿಮಗೆ ಖಚಿತವಿಲ್ಲದಿದ್ದರೆ, ಇದನ್ನು ನಿಷ್ಕ್ರಿಯವಾಗಿಯೇ ಇರಿಸಿ ಮತ್ತು ಬದಲಿಗೆ ಸಾಮಾನ್ಯ
Anthropic-ಹೊಂದಾಣಿಕೆಯ ಪ್ರೊವೈಡರ್ ಅನ್ನು ಸೇರಿಸಿ.
---
## 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. |
| `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` | ಹಿನ್ನೆಲೆ ಆರೋಗ್ಯ-ಶೆಡ್ಯೂಲರ್ ಸ್ವೀಪ್ ಮಧ್ಯಂತರ, ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ (ಕನಿಷ್ಠ `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` ಎಂಡ್ಪಾಯಿಂಟ್ ಬಳಸುವ ಸಂಪರ್ಕಸಾಧ್ಯತೆ ಪ್ರೋಬ್ ಗುರಿ. ಸಾರ್ವಜನಿಕ ಡೀಫಾಲ್ಟ್ ಅನ್ನು ತಪ್ಪಿಸಲು ಇದನ್ನು ಆಂತರಿಕ/ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ 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` | ಬ್ಯಾಚ್ನೊಳಗಿನ ಎರಡು ಪ್ರೋಬ್ ನಿರ್ಗಮನಗಳ ನಡುವಿನ ವಿಳಂಬವು ms ನಲ್ಲಿ. ಇದು ಇಲ್ಲದಿದ್ದರೆ ಇಡೀ ಬ್ಯಾಚ್ ಒಂದೇ ಕ್ಷಣದಲ್ಲಿ ಹೊರಡುತ್ತದೆ ಮತ್ತು ಹಂಚಿಕೆಯ ಎಗ್ರೆಸ್ IP ದರ-ಮಿತಿಯ ಗುರಿಯನ್ನು ಪ್ರಚೋದಿಸಬಹುದು. ಅಂತರವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `0` ಗೆ ಹೊಂದಿಸಿ; ಗರಿಷ್ಠ ಮಿತಿ 5000. |
| `PROXY_HEALTH_USE_PROVIDER_TARGET` | `true` | `src/lib/proxyHealth/providerProbeTarget.ts` | ಪ್ರಾಕ್ಸಿಗೆ ನಿಯೋಜಿಸಲಾದ ಪೂರೈಕೆದಾರರ ನೈಜ ಹೋಸ್ಟ್ ಅನ್ನು ಪ್ರೋಬ್ ಮಾಡುವುದನ್ನು (`GET /models`, API ಕೀ ಇಲ್ಲದೆ) ನಿಲ್ಲಿಸಲು ಮತ್ತು ಬದಲಿಗೆ ಯಾವಾಗಲೂ `PROXY_HEALTH_TEST_URL` ಬಳಸಲು "false" ಗೆ ಹೊಂದಿಸಿ. |
| `PROXY_HEALTH_AUTO_DEACTIVATE` | `false` | `src/lib/proxyHealth/statusPolicy.ts` | `false` (ಡೀಫಾಲ್ಟ್) ಆಗಿರುವಾಗ, ಸ್ವಯಂಚಾಲಿತ ಸಂಪರ್ಕಸಾಧ್ಯತೆ ಪ್ರೋಬ್ಗಳು (ಶೆಡ್ಯೂಲರ್ + `/api/settings/proxies/auto-test` ನ "ಎಲ್ಲವನ್ನೂ ಪರೀಕ್ಷಿಸಿ" ಬಟನ್) **ಓದಲು-ಮಾತ್ರ** ಆಗಿರುತ್ತವೆ ಮತ್ತು ಪ್ರಾಕ್ಸಿಯ ಸ್ಥಿತಿಯನ್ನು ಎಂದಿಗೂ ಬರೆಯುವುದಿಲ್ಲ — ಆಪರೇಟರ್ ಮಾತ್ರ ಸಕ್ರಿಯ/ನಿಷ್ಕ್ರಿಯ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿಸುತ್ತಾರೆ, ಆದ್ದರಿಂದ ಅಸ್ಥಿರ ಪ್ರೋಬ್ ನಿಯೋಜಿತ ಪ್ರಾಕ್ಸಿಯನ್ನು ಸಿಲುಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ (#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` ಮರುಪ್ರಯತ್ನಗಳವರೆಗೆ) ಮರುಪ್ರಯತ್ನಿಸುತ್ತದೆ. |
| `PROXY_POOL_EGRESS_OBSERVATION` | `false` | `src/shared/utils/featureFlags.ts` | ಆಯ್ಕೆಮಾಡಿ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದಾದ ವೈಶಿಷ್ಟ್ಯ ಫ್ಲ್ಯಾಗ್ ([FEATURE_FLAGS.md](./FEATURE_FLAGS.md) ನೋಡಿ; ಡ್ಯಾಶ್ಬೋರ್ಡ್ DB ಅತಿಕ್ರಮಣಕ್ಕೆ ಆದ್ಯತೆ ಇರುತ್ತದೆ). `true` (ಅಥವಾ `1`, `yes`) ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಪ್ರಾಕ್ಸಿ ಪೂಲ್ ಅಡಿಯಲ್ಲಿ ಓದಲು-ಮಾತ್ರವಾದ ಪೂಲ್ ಎಗ್ರೆಸ್ ವೀಕ್ಷಣೆಯನ್ನು ತೋರಿಸುತ್ತದೆ (ಪ್ರಾಕ್ಸಿ ಲಾಗ್ನಿಂದ ಕಳೆದ 24 h ಅವಧಿಯ ವಿಭಿನ್ನ ಎಗ್ರೆಸ್ IP ಗಳು, ಸಂಪರ್ಕಗಳು ಮತ್ತು ಒಂದೇ 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` | ಪುನರಾವರ್ತಿತ ಸತತ ವೈಫಲ್ಯಗಳ ನಂತರ ಪ್ರಾಕ್ಸಿಯನ್ನು ತೆಗೆದುಹಾಕುವ ಬದಲು, ಶೆಡ್ಯೂಲರ್ ಅದನ್ನು ಸಾಫ್ಟ್-ಡಿಸೇಬಲ್ ಮಾಡಲು (ಸ್ಥಿತಿ `dead`, ಎಂದಿಗೂ ಅಳಿಸಲಾಗುವುದಿಲ್ಲ) `true` ಎಂದು ಹೊಂದಿಸಿ. ಇದು `PROXY_AUTO_REMOVE`ಗೆ ವಿನಾಶಕಾರಿಯಲ್ಲದ ಪರ್ಯಾಯವಾಗಿದೆ: ಪ್ರಾಕ್ಸಿ ತಕ್ಷಣವೇ ಪೂಲ್/ರೊಟೇಶನ್ ರೆಸಲ್ಯೂಶನ್ನಿಂದ ಹೊರಗುಳಿಯುತ್ತದೆ (ಸ್ಕೋಪ್-ಪೂಲ್ ರೆಸಲ್ಯೂಶನ್ ಬಳಸುವ ಜೀವಂತ-ಸ್ಥಿತಿ ಫಿಲ್ಟರ್ ಈಗಾಗಲೇ ಅದನ್ನು ಹೊರಗಿಡುತ್ತದೆ) ಮತ್ತು ಅದು ಮತ್ತೆ ಪ್ರೋಬ್ಗಳಲ್ಲಿ ಉತ್ತೀರ್ಣವಾಗಲು ಪ್ರಾರಂಭಿಸಿದ ನಂತರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಕ್ರಿಯಗೊಳ್ಳುತ್ತದೆ. ಇದು `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` | ನಿಷ್ಕ್ರಿಯ ಬಿಟ್ಟುಬಿಡುವಿಕೆ ಪರಿಶೀಲಿಸುವ ಪ್ರೊಡಕ್ಷನ್ ಟ್ರಾಫಿಕ್ನ ವಿಂಡೋ, msನಲ್ಲಿ (`60000..599999` ವ್ಯಾಪ್ತಿಗೆ ಸೀಮಿತವಾಗಿದೆ). ಇದು 10 ನಿಮಿಷಗಳ ಸ್ವೀಪ್ ಮಧ್ಯಂತರಕ್ಕಿಂತ ಚಿಕ್ಕದಾಗಿರುವುದರಿಂದ, ಇತ್ತೀಚಿನ ವೈಫಲ್ಯವು ದುರ್ಬಲಗೊಳ್ಳುವ ಬದಲು ಮೇಲುಗೈ ಸಾಧಿಸುತ್ತದೆ. |
| `OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK` | `false` | `src/shared/constants/featureFlagDefinitions.ts` | ಪ್ರಾಕ್ಸಿ ತಲುಪುವಿಕೆ ಪೂರ್ವ-ಪರಿಶೀಲನೆಗಳು ವಿಫಲವಾದಾಗ, ಪಿನ್ ಮಾಡಿದ ಪ್ರಾಕ್ಸಿಯನ್ನು ಬೈಪಾಸ್ ಮಾಡಿ ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸಲು OAuth ಮತ್ತು ಪ್ರೊವೈಡರ್ ಮೌಲ್ಯೀಕರಣ ಫ್ಲೋಗಳಿಗೆ ಅನುಮತಿಸಿ. ಜಾರಿಗೆ ಬರುವ ಆದ್ಯತಾ ಕ್ರಮವು Feature Flags DB ಓವರ್ರೈಡ್ > env var > ಡೀಫಾಲ್ಟ್ ಆಗಿದೆ. |
| `RATE_LIMIT_MAX_WAIT_MS` | `30000` (30ಸೆ) | `src/lib/resilience/settings.ts` | ಡೀಫಾಲ್ಟ್ **ಸರದಿ-ಕಾಯುವಿಕೆ** ಬಜೆಟ್: ವಿನಂತಿಯೊಂದು ಪೂರೈಕೆದಾರರ ಸ್ಲಾಟ್ಗಾಗಿ ಎಷ್ಟು ಸಮಯ ಕಾಯಬಹುದು ಮತ್ತು ತಿರಸ್ಕರಿಸಲ್ಪಡುವ ಮೊದಲು ಎಷ್ಟು ಸಮಯ ಸರದಿಯಲ್ಲಿ ಉಳಿಯಬಹುದು ಎಂಬುದು; ತಿರಸ್ಕರಿಸಿದ ವಿನಂತಿ ಅಪ್ಸ್ಟ್ರೀಮ್ಗೆ ಎಂದಿಗೂ ತಲುಪುವುದಿಲ್ಲ. ಕೆಲಸವು ಕಾರ್ಯಗತಗೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸಿದ ಬಳಿಕ ಟೈಮರ್ ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ — ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` ಪ್ರತ್ಯೇಕವಾಗಿ ಮಿತಿಗೊಳಿಸುತ್ತದೆ. Env ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಮಾತ್ರ ಹೊಂದಿಸುತ್ತದೆ: ಉಳಿಸಿಟ್ಟಿರುವ `resilienceSettings.requestQueue.maxWaitMs`, ನಂತರ ಪ್ರತಿ-ಸಂಪರ್ಕದ `rateLimitOverrides.maxWaitMs`—ಪ್ರತಿಯೊಂದೂ ಇದಕ್ಕಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ. |
| `RATE_LIMIT_EXECUTION_MAX_WAIT_MS` | `600000` (10 ನಿಮಿಷ) | `open-sse/services/rateLimitManager.ts` | ಸ್ವೀಕರಿಸಲಾದ ವಿನಂತಿಯ ದರ-ಮಿತಿ ಕಾಯ್ದಿರಿಸುವಿಕೆಯ ಅವಧಿ ಮುಗಿಯುವ ಮೊದಲು ಅದು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯಲ್ಲಿ ಎಷ್ಟು ಸಮಯ ಉಳಿಯಬಹುದು ಎಂಬುದರ ಗರಿಷ್ಠ ಮಿತಿ — ಹೆಚ್ಚಳರಹಿತ ಗೇಟ್ವೇಗಳಲ್ಲಿ ನಿಧಾನವಾದ fetch-ಪ್ರಾರಂಭವು ಸಮಯ ಮೀರುವಂತಾಗದಂತೆ, ಸರದಿ-ಕಾಯುವಿಕೆ ಬಜೆಟ್ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ (#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` | ಉಳಿಸಿಟ್ಟಿರುವ Dashboard ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಲೆಕ್ಕಿಸದೆ, ಸ್ವಯಂ-ಸಕ್ರಿಯಗೊಳಿಸುವ ದರ-ಮಿತಿ ಸುರಕ್ಷತಾ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಲವಂತವಾಗಿ ಆನ್/ಆಫ್ ಮಾಡಿ. ಬಲವಂತವಾಗಿ ಆನ್ ಮಾಡಲು `true`/`1`/`on`, ಬಲವಂತವಾಗಿ ಆಫ್ ಮಾಡಲು `false`/`0`/`off` ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. |
| `PROVIDER_COOLDOWN_ENABLED` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ → ಆಫ್)_ | `open-sse/services/providerCooldownTracker.ts` | ವಿನಂತಿಗಳಾದ್ಯಂತ ಅನ್ವಯಿಸುವ ಜಾಗತಿಕ ಪೂರೈಕೆದಾರ/ಸಂಪರ್ಕ ಕೂಲ್ಡೌನ್ ಟ್ರ್ಯಾಕಿಂಗ್ಗಾಗಿ ಆಯ್ಕೆಯ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ. ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆಫ್ ಆಗಿರುತ್ತದೆ (Connection Cooldown / Provider Circuit Breaker ಜೊತೆಗೆ ಅತಿಕ್ರಮಿಸುತ್ತದೆ). ಸಕ್ರಿಯಗೊಳಿಸಲು `true`/`1`/`on` ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. |
| `PROVIDER_COOLDOWN_MIN_MS` | `5000` | `open-sse/services/providerCooldownTracker.ts` | ವಿಫಲವಾದ ಪೂರೈಕೆದಾರ/ಸಂಪರ್ಕವನ್ನು ಮರುಪ್ರಯತ್ನಿಸುವ ಮೊದಲು ಕನಿಷ್ಠ ಕೂಲ್ಡೌನ್ (ms). ಸತತ ವೈಫಲ್ಯಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಘಾತೀಯವಾಗಿ ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ. `PROVIDER_COOLDOWN_ENABLED` ಆಗಿರುವಾಗ ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ. |
| `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 ನಿಮಿಷ) | `open-sse/services/providerCooldownTracker.ts` | ವಿಫಲವಾದ ಪೂರೈಕೆದಾರ/ಸಂಪರ್ಕವನ್ನು ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲೂ ಮರುಪ್ರಯತ್ನಿಸುವ ಮೊದಲು ಗರಿಷ್ಠ ಕೂಲ್ಡೌನ್ (ms) ಮಿತಿ. `PROVIDER_COOLDOWN_ENABLED` ಆಗಿರುವಾಗ ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ. |
| `STREAM_RECOVERY_ENABLED` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ → ಆಫ್)_ | `src/lib/resilience/settings.ts` (ಆರಂಭಿಕ ಮೌಲ್ಯ) → `open-sse/services/streamRecovery.ts` (ತರ್ಕ) | **ಏನು:** ಮೊಟಕುಗೊಂಡ ಅಪ್ಸ್ಟ್ರೀಮ್ ಸ್ಟ್ರೀಮ್ಗಳ ಪಾರದರ್ಶಕ ಮರುಪಡೆಯುವಿಕೆ (free-claude-code ಪೋರ್ಟ್). ಆರಂಭಿಕ SSE ವಿಂಡೋವನ್ನು `STREAM_RECOVERY.HOLDBACK_MS` (750 ms) ವರೆಗೆ ಹಿಡಿದಿಡುತ್ತದೆ; ಇದರಿಂದ _ಪೂರ್ವ-ಕಮಿಟ್_ ಕಡಿತ—ಯಾವುದೇ ಬೈಟ್ ಕ್ಲೈಂಟ್ಗೆ ತಲುಪುವ ಮೊದಲು ಸಂಭವಿಸುವ ಕಡಿತ—ಮರುತೆರೆಯಲ್ಪಟ್ಟು ಅಗೋಚರವಾಗಿ ಮರುಪ್ರಯತ್ನಿಸಲ್ಪಡುತ್ತದೆ. **ಯಾವಾಗ ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು:** ಸ್ಟ್ರೀಮ್ ಪ್ರಾರಂಭದಲ್ಲಿ ಆಗಾಗ್ಗೆ 0-ಬೈಟ್ ಮೊಟಕುಗೊಳ್ಳುವ ಅಸ್ಥಿರ ಅಪ್ಸ್ಟ್ರೀಮ್ಗಳಿಗಾಗಿ; ಪ್ರತಿ ಸ್ಟ್ರೀಮ್ನ ಮೊದಲ-ಟೋಕನ್-ತಲುಪುವ-ಸಮಯಕ್ಕೆ ಹೆಚ್ಚುವರಿಯಾಗಿ 750 ms ವರೆಗೆ ಸಹಿಸಲಾಗದಿದ್ದರೆ ಆಫ್ ಆಗಿಯೇ ಬಿಡಿ. `true`/`1`/`on` ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಉಳಿಸಿಟ್ಟಿರುವ Resilience ಸೆಟ್ಟಿಂಗ್ಗೆ ಆರಂಭಿಕ ಮೌಲ್ಯವನ್ನು ನೀಡುತ್ತದೆ; ಒಮ್ಮೆ Dashboard ಸೆಟ್ಟಿಂಗ್ ಹೊಂದಿಸಿದ ಬಳಿಕ ಅದಕ್ಕೆ ಆದ್ಯತೆ ದೊರೆಯುತ್ತದೆ. |
| `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(ಹೊಂದಿಸಿಲ್ಲ → ಆಫ್)_ | `src/lib/resilience/settings.ts` (ಆರಂಭಿಕ ಮೌಲ್ಯ) → `open-sse/services/streamRecovery.ts` (ತರ್ಕ) | **ಏನು:** ಸ್ಟ್ರೀಮ್-ಮಧ್ಯದ ಮುಂದುವರಿಕೆ (ಹಂತ 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` | ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದಾದ ಸಕ್ರಿಯ-ಸ್ಟ್ರೀಮ್ ಉಪಯುಕ್ತ-ಔಟ್ಪುಟ್ ನಿಗಾ ವ್ಯವಸ್ಥೆ. ಚಂಕ್ಗಳನ್ನು ಕಳುಹಿಸುತ್ತಲೇ ಇದ್ದರೂ ಸಂರಚಿಸಲಾದ ಸಹಾಯಕ-ಔಟ್ಪುಟ್ ದರಕ್ಕಿಂತ ಕೆಳಗಿರುವ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ; ಹಾರ್ಟ್ಬೀಟ್ಗಳು, ಬಳಕೆ ಈವೆಂಟ್ಗಳು, ಖಾಲಿ ಡೆಲ್ಟಾಗಳು ಮತ್ತು ಟೂಲ್/ತಾರ್ಕಿಕ ಹಂತಗಳು ಪ್ರಗತಿಯಂತೆ ತೋರ್ಪಡಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ. ನಿಷ್ಕ್ರಿಯತೆ ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟಿನ ಗಡುವಿನ ಕಾಲಮಿತಿಗಳಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿದೆ. |
| `STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS` | `30000` | `src/lib/resilience/settings/normalize.ts` | ಥ್ರೂಪುಟ್ ಮೌಲ್ಯಮಾಪನದ ಮುಂಚಿನ ಗ್ರೇಸ್ ಅವಧಿ, 0–600000 ms ಮಿತಿಯೊಳಗೆ. |
| `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` | ಪ್ರಾರಂಭದ ವೇಳೆ ಪೂರೈಕೆದಾರರ ಟೋಕನ್ ಆರೋಗ್ಯ ಪರಿಶೀಲನೆಗಳ ನಡುವಿನ ಹಂತಾಂತರ ಅಂತರ (ms). |
| `HEALTHCHECK_JITTER_MIN_MS` | `500` | `src/lib/tokenHealthCheck.ts` | ಏಕಾಏಕಿ ಹೆಚ್ಚಳವನ್ನು ತಡೆಯಲು, ಪೂರೈಕೆದಾರರ ಟೋಕನ್ ಆರೋಗ್ಯ ಪರಿಶೀಲನೆಗಳ ನಡುವೆ `HEALTHCHECK_STAGGER_MS` ಮೇಲೆ ಸೇರಿಸಲಾದ ಕನಿಷ್ಠ ಯಾದೃಚ್ಛಿಕ ಜಿಟರ್ (ms) (ಸಮಸ್ಯೆ #1220). |
| `HEALTHCHECK_JITTER_MAX_MS` | `5000` | `src/lib/tokenHealthCheck.ts` | ಏಕಾಏಕಿ ಹೆಚ್ಚಳವನ್ನು ತಡೆಯಲು, ಪೂರೈಕೆದಾರರ ಟೋಕನ್ ಆರೋಗ್ಯ ಪರಿಶೀಲನೆಗಳ ನಡುವೆ `HEALTHCHECK_STAGGER_MS` ಮೇಲೆ ಸೇರಿಸಲಾದ ಗರಿಷ್ಠ ಯಾದೃಚ್ಛಿಕ ಜಿಟರ್ (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` | Headroom ಟೋಕನ್-ಉಳಿತಾಯ ಪ್ರಾಕ್ಸಿ 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` — ಹೋಲ್ಡ್ಬ್ಯಾಕ್ ಇನ್ನೂ ಕಮಿಟ್ ಆಗದೆ ಇರುವಾಗ ಅಪ್ಸ್ಟ್ರೀಮ್
ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಪಾರದರ್ಶಕವಾಗಿ ಮರು-ತೆರೆಯಬಹುದಾದ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ.
> **ಪ್ರತಿ-ಪ್ರೊವೈಡರ್ ಸ್ಲೈಡಿಂಗ್-ವಿಂಡೋ ದರ ಮಿತಿ (env var ಇಲ್ಲ):** FCC-ಯಿಂದ ಪೋರ್ಟ್ ಮಾಡಲಾದ
> ಪ್ರತಿ-ಪ್ರೊವೈಡರ್ ಸ್ಲೈಡಿಂಗ್-ವಿಂಡೋ ದರ-ಮಿತಿ _ಫಾಲ್ಬ್ಯಾಕ್_ ಕೋಡ್ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ
> (`open-sse/services/providerDefaultRateLimit.ts`, ಇದನ್ನು
> `open-sse/services/rateLimitManager.ts` ಮೂಲಕ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ), ಆದರೆ ಇದು **ಖಾಲಿ ಪೂರ್ವನಿಯೋಜಿತ ಮ್ಯಾಪ್** ಜೊತೆಗೆ ರವಾನೆಯಾಗುತ್ತದೆ
> ಮತ್ತು ಪ್ರಸ್ತುತ **ಯಾವುದೇ ಆಪರೇಟರ್ env var ಹೊಂದಿಲ್ಲ** — ಇದನ್ನು ಟೆಸ್ಟ್ ಹುಕ್ /
> ಕೋಡ್ ತಿದ್ದುಪಡಿಯ ಮೂಲಕ ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು. ಇದನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿಯೇ ಮೇಲಿನ ಪಟ್ಟಿಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿಲ್ಲ. ನಿಯಂತ್ರಣ ಆಯ್ಕೆಯನ್ನು _ಹೊಂದಿರುವ_ ಪ್ರತಿ-`(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 ಎಕ್ಸಿಕ್ಯೂಟರ್ಗಾಗಿ ಸ್ಟ್ರೀಮ್ ನಿಷ್ಕ್ರಿಯತೆಯ ಕಾಲಮಿತಿ (ms). |
| `CURSOR_KV_GRACE_MS` | `2000` | `open-sse/executors/cursor.ts` | ಬೈಟ್ಗಳು ಇನ್ನೂ ಬಫರ್ನಲ್ಲಿ ಉಳಿದಿರುವಾಗ composer 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` | ಅನುವಾದದ ನಂತರ ಸಿಸ್ಟಮ್ ಸಂದೇಶಕ್ಕೆ ಸೇರಿಸಲಾಗುವ ಆಪರೇಟರ್-ವ್ಯಾಖ್ಯಾನಿತ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಪಠ್ಯ (ಅನುವಾದೋತ್ತರ ಇಂಜೆಕ್ಷನ್); ಇದು codex/Responses ಮತ್ತು `/v1/messages` ಪಥಗಳನ್ನು ತಲುಪುತ್ತದೆ. ಪ್ರತಿಧ್ವನಿಸಿದ ಸಿಸ್ಟಮ್ ಪೀಠಿಕೆ ಬ್ಲಾಕ್ಗಳಿಂದ ತೆಗೆದುಹಾಕುವ ಡೈರೆಕ್ಟಿವ್ ಪೂರ್ವಪ್ರತ್ಯಯವಾಗಿಯೂ ಬಳಸಲಾಗುತ್ತದೆ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಹೊಂದಿಸದೆ ಬಿಡಿ. |
| `OMNIROUTE_STRIP_SYSTEM_PREAMBLE` | `0` (ಆಫ್) | `open-sse/translator/response/openai-to-claude.ts`, `open-sse/utils/directivePreambleStripper.ts` | openai→claude ಸ್ಟ್ರೀಮ್ನ ಪ್ರಾರಂಭದಿಂದ ಪ್ರತಿಧ್ವನಿಸಿದ ಸಿಸ್ಟಮ್-ಪ್ರಾಂಪ್ಟ್ ಪೀಠಿಕೆ ಬ್ಲಾಕ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು `1` ಹೊಂದಿಸಿ. ಡೀಫಾಲ್ಟ್ ಆಗಿ ಆಫ್ — ಹ್ಯೂರಿಸ್ಟಿಕ್ಗಳು ಇಂಗ್ಲಿಷ್ ಗದ್ಯದ ವಿನ್ಯಾಸವನ್ನು ಆಧರಿಸಿವೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಯ ಪೇಲೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸುತ್ತವೆ; ಆದ್ದರಿಂದ ನ್ಯಾಯಸಮ್ಮತವಾಗಿ ಅಂತಹ ವಿಭಾಗದಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಪ್ರತ್ಯುತ್ತರವು ಅದನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ. |
| `CURSOR_IMAGE_FETCH_TIMEOUT_MS` | `15000` | `open-sse/utils/cursorImages.ts` | ರಿಮೋಟ್ `image_url` ವಿಷನ್ ಇನ್ಪುಟ್ಗಾಗಿ ಪ್ರತಿ-ಚಿತ್ರ ಫೆಚ್ ಕಾಲಮಿತಿ (ms). |
| `CURSOR_STATE_DB_PATH` | _(ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ)_ | `open-sse/utils/cursorVersionDetector.ts` | IDE ಆವೃತ್ತಿ ಪತ್ತೆಗಾಗಿ ಬಳಸುವ Cursor IDE ಸ್ಥಿತಿ DB ಹುಡುಕಾಟವನ್ನು ಅತಿಕ್ರಮಿಸಿ. |
| `CURSOR_AGENT_CLI_VERSION` | _(ಪತ್ತೆ / ಪಿನ್)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Agent Run ನಲ್ಲಿ `x-cursor-client-version: cli-…` ಗಾಗಿ Agent CLI ಬಿಲ್ಡ್ ಐಡಿ (`YYYY.MM.DD-`). |
| `CURSOR_AGENT_BIN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | ಚಿತ್ರ ರಚನೆಗಾಗಿ ಬಳಸುವ Cursor Agent ಬೈನರಿಯ ಪಥ. ಹೊಂದಿಸದಿದ್ದರೆ, ಹ್ಯಾಂಡ್ಲರ್ `providerSpecificData.agentBin` ಮತ್ತು ನಂತರ PATH ಅನ್ನು ಬಳಸುತ್ತದೆ. |
| `CURSOR_IMG_TIMEOUT_MS` | `210000` | `open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts` | Cursor Agent ಚಿತ್ರ ಜಾಬ್ಗಳಿಗೆ ಪ್ರತಿ-ಚಿತ್ರ ವಾಲ್-ಕ್ಲಾಕ್ ಕಾಲಮಿತಿ (ms). |
| `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) ಚಿತ್ರ-ರಚನೆ ಫಲಿತಾಂಶ ಪೋಲಿಂಗ್ ಆವರ್ತನ (ms). |
| `UC_IMAGE_POLL_TIMEOUT_MS` | `60000` | `open-sse/handlers/imageGeneration/providers/ucImage.ts` | UC ಚಿತ್ರ-ರಚನೆ ಫಲಿತಾಂಶ ಪೋಲಿಂಗ್ ವಾಲ್-ಕ್ಲಾಕ್ ಕಾಲಮಿತಿ (ms). |
| `UC_VIDEO_POLL_INTERVAL_MS` | `3000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC (uncensored.com) ವೀಡಿಯೊ-ರಚನೆ ಫಲಿತಾಂಶ ಪೋಲಿಂಗ್ ಆವರ್ತನ (ms). |
| `UC_VIDEO_POLL_TIMEOUT_MS` | `300000` | `open-sse/handlers/videoGeneration/providers/ucVideo.ts` | UC ವೀಡಿಯೊ-ರಚನೆ ಫಲಿತಾಂಶ ಪೋಲಿಂಗ್ ವಾಲ್-ಕ್ಲಾಕ್ ಕಾಲಮಿತಿ (ms). |
| `CURSOR_DATA_DIR` | _(ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ)_ | `open-sse/utils/cursorAgentCliVersion.ts` | Cursor Agent CLI ಡೇಟಾ ಡೈರೆಕ್ಟರಿಯನ್ನು (`…/versions/`) ಅತಿಕ್ರಮಿಸಿ; ಅಧಿಕೃತ ಏಜೆಂಟ್ ಬಳಸುವ ಅದೇ ವೇರಿಯಬಲ್. |
| `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` | Responses API SSE→JSON ಅನುವಾದದ ವಿವರಗಳನ್ನು ಲಾಗ್ ಮಾಡಲು `true` ಹೊಂದಿಸಿ. |
| `DEBUG_CLAUDE_NONSTREAM` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/handlers/responseTranslator.ts` | Claude ಪ್ರತಿಕ್ರಿಯೆ ಅನುವಾದ ಪಥದಲ್ಲಿ ಖಾಲಿ textContent ಚಂಕ್ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು `true` ಹೊಂದಿಸಿ (ಡೀಬಗಿಂಗ್ಗಾಗಿ ಮಾತ್ರ). |
| `NEXT_PUBLIC_OMNIROUTE_E2E_MODE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | E2E ಪರೀಕ್ಷಾ ಹಾರ್ನೆಸ್ | E2E ಪರೀಕ್ಷಾ ಮೋಡ್ ಅನ್ನು (ಸಡಿಲಿಸಿದ ದೃಢೀಕರಣ, ಪರೀಕ್ಷಾ ಹುಕ್ಗಳು) ಸಕ್ರಿಯಗೊಳಿಸಲು `true` ಹೊಂದಿಸಿ. |
---
## 23. GitHub ಏಕೀಕರಣ
Dashboard ನಿಂದಲೇ ಸಮಸ್ಯೆಗಳನ್ನು ವರದಿ ಮಾಡಲು ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಿ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| --------------------- | ----------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `GITHUB_ISSUES_REPO` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/app/api/v1/issues/report/route.ts` | `owner/repo` ಸ್ವರೂಪದಲ್ಲಿರುವ ರೆಪೊಸಿಟರಿ. |
| `GITHUB_ISSUES_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/app/api/v1/issues/report/route.ts` | `issues:write` ವ್ಯಾಪ್ತಿಯನ್ನು ಹೊಂದಿರುವ GitHub ವೈಯಕ್ತಿಕ ಪ್ರವೇಶ ಟೋಕನ್. |
| `GITHUB_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | ಸಮಸ್ಯೆ ವರ್ಗೀಕರಣ / ಕ್ಲೌಡ್ ಏಜೆಂಟ್ ಸಹಾಯಕಗಳು | `GITHUB_ISSUES_TOKEN` ಗೆ ಪರ್ಯಾಯವಾಗಿ ಬಳಸಲಾಗುವ ಮತ್ತು `src/lib/cloudAgent/*` ನಲ್ಲಿನ ಕ್ಲೌಡ್ ಏಜೆಂಟ್ ಸಹಾಯಕಗಳು ಬಳಸುವ ಸಾಮಾನ್ಯ GitHub ಪ್ರವೇಶ ಟೋಕನ್. |
---
## ನಿಯೋಜನಾ ಸನ್ನಿವೇಶಗಳು
ರಿಲೇ ಬ್ಯಾಕೆಂಡ್ SRE ಮಾರ್ಗದರ್ಶನಕ್ಕಾಗಿ (ts/bifrost/auto ನಡವಳಿಕೆ, 9router ಮತ್ತು 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` ಗೆ ಹೊಂದಿಸಿ. ಸುರಕ್ಷತೆಗಾಗಿ ಡೀಫಾಲ್ಟ್ ಆಗಿ **ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ**. |
| `SKILLS_ALLOWED_SANDBOX_IMAGES` | _(ಖಾಲಿ)_ | `src/lib/skills/builtins.ts` | ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಗೆ ಅನುಮತಿಸಲಾದ ಕಂಟೈನರ್ ಇಮೇಜ್ಗಳ ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಅನುಮತಿ ಪಟ್ಟಿ. ಖಾಲಿಯಾಗಿದ್ದರೆ ಅಂತರ್ನಿರ್ಮಿತ ಡೀಫಾಲ್ಟ್ ಮಾತ್ರ ಎಂದರ್ಥ. |
| `SKILLS_SANDBOX_DOCKER_IMAGE` | _(ಅಂತರ್ನಿರ್ಮಿತ ಡೀಫಾಲ್ಟ್)_ | `src/lib/skills/` | Docker ಆಧಾರಿತ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವಾಗ ಬಳಸಲಾಗುವ ಕಂಟೈನರ್ ಇಮೇಜ್. ಕಸ್ಟಮ್ ದೃಢೀಕೃತ ಬೇಸ್ ಇಮೇಜ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಲು ಇದನ್ನು ಅತಿಕ್ರಮಿಸಿ. |
| `SKILLS_SANDBOX_RUNTIME` | `auto` | `src/lib/skills/sandbox.ts`, `src/lib/skills/containerProvider.ts` | ಕೌಶಲ್ಯ ಸ್ಯಾಂಡ್ಬಾಕ್ಸಿಂಗ್ಗಾಗಿ ಕಂಟೈನರ್ ರನ್ಟೈಮ್: `auto` \| `docker` \| `apple` \| `wsl` \| `orbstack` \| `podman`. `auto` ಪ್ರತಿ ಹೋಸ್ಟ್ OS ಗೆ ಸ್ಥಾಪಿಸಲಾದ ಅತ್ಯುತ್ತಮ ರನ್ಟೈಮ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತದೆ (macOS ನಲ್ಲಿ Apple Container/OrbStack, Windows ನಲ್ಲಿ WSL Container, Linux ನಲ್ಲಿ Podman), ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ Docker ಅನ್ನು ಬಳಸುತ್ತದೆ. |
> [!CAUTION]
> `SKILLS_SANDBOX_NETWORK_ENABLED=true` ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಅನಿಯಂತ್ರಿತ ಕೌಶಲ್ಯ ಕೋಡ್ಗೆ ಹೊರಹೋಗುವ ಮಾರ್ಗವು ತೆರೆಯುತ್ತದೆ. ಹಂಚಿಕೆಯ ನಿಯೋಜನೆಗಳಲ್ಲಿ ಇದನ್ನು `OUTBOUND_SSRF_GUARD_ENABLED=true` ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟಾದ `CORS_ORIGIN`/ಪ್ರಾಕ್ಸಿ ನೀತಿಯೊಂದಿಗೆ ಜೋಡಿಸಿ.
---
## 25. ಪೂರೈಕೆದಾರರ ಕೋಟಾಗಳು, ಟನಲ್ಗಳು, ಬ್ಯಾಕಪ್ಗಳು ಮತ್ತು ಇತರೆ ರನ್ಟೈಮ್
ಪೂರೈಕೆದಾರರ ಕೋಟಾ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳು, ನೆಟ್ವರ್ಕ್ ಟನಲ್ಗಳು (Tailscale, Ngrok, MITM ಡೀಬಗ್ ಪ್ರಾಕ್ಸಿ), 1Proxy ಎಗ್ರೆಸ್ ಪೂಲ್, ಡೇಟಾಬೇಸ್ ಬ್ಯಾಕಪ್ಗಳು ಮತ್ತು ಎಕ್ಸಿಕ್ಯೂಟರ್ ಲೇಯರ್ ಅಥವಾ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಿಂದ ಉಲ್ಲೇಖಿಸಲಾದ ಪ್ರತಿ ವೈಶಿಷ್ಟ್ಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಸಣ್ಣ ಓವರ್ರೈಡ್ಗಳು.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `REDIS_URL` | `redis://localhost:6379` | `src/shared/utils/rateLimiter.ts` | ದರ ಮಿತಿಗೊಳಿಸುವಿಕೆಯ ಬ್ಯಾಕೆಂಡ್ಗಾಗಿ Redis ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್. |
| `ALIBABA_CODING_PLAN_HOST` | _(ಪ್ರೊಡಕ್ಷನ್ ಹೋಸ್ಟ್)_ | `open-sse/services/bailianQuotaFetcher.ts` | Alibaba Bailian coding-plan ಕೋಟಾಗಳನ್ನು ಪಡೆಯಲು ಬಳಸುವ ಹೋಸ್ಟ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಿ. |
| `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 ಕೀ ಇದನ್ನು ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ). home.qwencloud.com › ಬಿಲ್ಲಿಂಗ್ › ಸಬ್ಸ್ಕ್ರಿಪ್ಷನ್ (F12 › ನೆಟ್ವರ್ಕ್) ಪುಟದಲ್ಲಿರುವ `cs-data.qwencloud.com` ಗೆ ಮಾಡುವ ಯಾವುದೇ `api.json` ಕರೆಯಿಂದ `login_qwencloud_ticket` ಹೊಂದಿರುವ ಸಂಪೂರ್ಣ `Cookie` ವಿನಂತಿ ಹೆಡರ್ ಅನ್ನು ನಕಲಿಸಿ. ಇದು ಸೂಕ್ಷ್ಮ ಮತ್ತು ಸೆಷನ್ ವ್ಯಾಪ್ತಿಯದ್ದಾಗಿದೆ; ಪ್ರತಿ ಸಂಪರ್ಕದ `qwenCloudCookie` ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಕ್ಷೇತ್ರಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `QWEN_CLOUD_SEC_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/services/qwenTokenPlanQuotaFetcher.ts` | Token Plan ಕನ್ಸೋಲ್ ಗೇಟ್ವೇಗಾಗಿ ಕೈಯಾರೆ ನೀಡುವ `sec_token` ಅತಿಕ್ರಮಣ. ಇದು ಸೂಕ್ಷ್ಮವಾಗಿದೆ; ಹೊಂದಿಸದಿದ್ದಾಗ, ಫೆಚರ್ ಕುಕಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಡ್ಯಾಶ್ಬೋರ್ಡ್ HTML ನಿಂದ ಅದನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ. |
| `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 ಪುಟದಲ್ಲಿ (F12 › ನೆಟ್ವರ್ಕ್) `platform.xiaomimimo.com` ಗೆ ಮಾಡುವ ಯಾವುದೇ ವಿನಂತಿಯಿಂದ `api-platform_serviceToken` ಮತ್ತು `userId` ಹೊಂದಿರುವ ಸಂಪೂರ್ಣ `Cookie` ವಿನಂತಿ ಹೆಡರ್ ಅನ್ನು ನಕಲಿಸಿ. ಇದು ಸೂಕ್ಷ್ಮ ಮತ್ತು ಸೆಷನ್ ವ್ಯಾಪ್ತಿಯದ್ದಾಗಿದೆ; ಪ್ರತಿ ಸಂಪರ್ಕದ `xiaomiMimoConsoleCookie` ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಕ್ಷೇತ್ರಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ. |
| `XIAOMI_MIMO_MONTHLY_TOKEN_LIMIT` | `4100000000` | `open-sse/services/usage/xiaomi-mimo.ts` | ಯಾವುದೇ console cookie ಕಾನ್ಫಿಗರ್ ಮಾಡದಿದ್ದಾಗ ಬಳಸಲಾಗುವ 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 ಉಚಿತ-ಶ್ರೇಣಿಯ ದೃಶ್ಯ/ಮಾಧ್ಯಮ ಕೋಟಾವನ್ನು ಪಡೆಯಲು console front-end ಪಥದ ಓವರ್ರೈಡ್. |
| `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ಉಚಿತ-ಶ್ರೇಣಿಯ ಬಹುಮಾದರಿ ಕೋಟಾವನ್ನು ಪಡೆಯಲು console front-end ಪಥದ ಓವರ್ರೈಡ್. |
| `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ಉಚಿತ-ಶ್ರೇಣಿಯ ಆಡಿಯೊ ಕೋಟಾವನ್ನು ಪಡೆಯಲು console front-end ಪಥದ ಓವರ್ರೈಡ್. |
| `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` | context windowಗೆ ಹೊಂದಿಸಲು ಹಳೆಯ inline ಚಿತ್ರಗಳನ್ನು ತೆಗೆದುಹಾಕುವಾಗ ಉಳಿಸಿಕೊಳ್ಳಬೇಕಾದ ಅತ್ಯಂತ ಹೊಸ ಚಿತ್ರಗಳ ಸಂಖ್ಯೆ (#8560). |
| `MODEL_ALIAS_COMPAT_ENABLED` | ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ | `open-sse/services/model.ts` | ಹಳೆಯ ಕ್ಲೈಂಟ್ಗಳು ಬಳಸುವ ಲೆಗಸಿ model-alias ಹೊಂದಾಣಿಕೆ ಪದರವನ್ನು ಸಕ್ರಿಯ ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. |
| `OMNIROUTE_EMERGENCY_FALLBACK` | ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ | `open-sse/services/emergencyFallback.ts` | ವಿಫಲವಾದ ವಿನಂತಿಗಳನ್ನು ಉಚಿತ `nvidia`/`openai/gpt-oss-120b` ಮಾದರಿಗೆ ಮರುಮಾರ್ಗಗೊಳಿಸುವ ತುರ್ತು ಬಜೆಟ್-ಖಾಲಿಯಾಗುವಿಕೆ ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `false` (ಅಥವಾ `0`) ಹೊಂದಿಸಿ. ಪರಿಣಾಮಕಾರಿ ಆದ್ಯತಾ ಕ್ರಮವು Feature Flags DB ಓವರ್ರೈಡ್ > env var > ಡೀಫಾಲ್ಟ್ ಆಗಿದೆ; ಅದು ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಸೇವೆಯು ಮೂಲ env ಮೌಲ್ಯವನ್ನು ಬಳಸುತ್ತದೆ. |
| `COMMAND_CODE_CALLBACK_PORT` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/app/api/providers/command-code/auth/shared.ts` | Command Code CLI ಸಹಾಯಕದಿಂದ OAuth-ಶೈಲಿಯ ಕಾಲ್ಬ್ಯಾಕ್ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುವ ಸ್ಥಳೀಯ ಪೋರ್ಟ್. |
| `COMMAND_CODE_VERSION` | `0.33.2` | `open-sse/executors/commandCode.ts` | Command Code ಅಪ್ಸ್ಟ್ರೀಮ್ಗೆ `x-command-code-version` ಹೆಡರ್ ಆಗಿ ಕಳುಹಿಸಲಾದ ಮೌಲ್ಯ. CLI ಆವೃತ್ತಿಯನ್ನು ಹೆಚ್ಚಿಸಲು ಓವರ್ರೈಡ್ ಮಾಡಿ. |
| `COMMANDCODE_API_URL` | `https://api.commandcode.ai` | `open-sse/services/usage/command-code.ts` | ಸ್ಮಾರ್ಟ್ಫೋನ್ ಕೋಟಾ-ಫೆಚರ್ ಟೆಲಿಮೆಟ್ರಿ ಬಳಸುವ Command Code ಬಳಕೆ/ಕೋಟಾ ಅಪ್ಸ್ಟ್ರೀಮ್ನ ಮೂಲ URL. ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಿದ/ಪರ್ಯಾಯ Command Code API ಗಾಗಿ ಓವರ್ರೈಡ್ ಮಾಡಿ. |
| `MITM_LOCAL_PORT` | `443` | `src/mitm/server.cjs` | MITM ಡೀಬಗ್ ಪ್ರಾಕ್ಸಿಯ ಸ್ಥಳೀಯ ಬೈಂಡ್ ಪೋರ್ಟ್. |
| `MITM_DISABLE_TLS_VERIFY` | `0` | `src/mitm/server.cjs` | ಅಪ್ಸ್ಟ್ರೀಮ್ TLS ಪರಿಶೀಲನೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `1` ಹೊಂದಿಸಿ (ಡೆವಲಪ್ಮೆಂಟ್ಗೆ ಮಾತ್ರ). |
| `MITM_IDLE_TIMEOUT_MS` | `60000` | `src/mitm/socketTimeouts.ts`, `src/mitm/server.cjs` | ಪ್ರಾಕ್ಸಿ ಮಾಡಲಾದ ಸಂಪರ್ಕಗಳ ಐಡಲ್ ಸಾಕೆಟ್ ಕಾಲಾವಧಿ ಮಿತಿ (ms); ಅರ್ಧ-ತೆರೆದ ಟನೆಲ್ಗಳು ಸೋರಿಕೆಯಾಗುವುದನ್ನು ತಪ್ಪಿಸಲು, ಇದಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಾಲ ಐಡಲ್ ಆಗಿರುವ ಸಾಕೆಟ್ಗಳನ್ನು ಕಡಿತಗೊಳಿಸಲಾಗುತ್ತದೆ. |
| `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.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` | ರೂಟಿಂಗ್-ನಿರ್ಧಾರದ ಲಾಗ್ ವಿವರಮಟ್ಟ: `0` ನಿಶ್ಶಬ್ದಗೊಳಿಸುತ್ತದೆ; ಹೆಚ್ಚಿನ ಮೌಲ್ಯಗಳು ಇನ್ನಷ್ಟು ಬೈಪಾಸ್/ರೂಟ್ ನಿರ್ಧಾರಗಳನ್ನು ಲಾಗ್ ಮಾಡುತ್ತವೆ. |
| `MITM_ROOT_CA_ENABLED` | `false` | `src/mitm/manager.ts` | ರೂಟ್-CA + ಪ್ರತಿ-ಹೋಸ್ಟ್-ಲೀಫ್ ಸರ್ಟಿಫಿಕೇಟ್ ಮಾದರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಲು `true` ಹೊಂದಿಸಿ (#6684). ಹೊಸ ಇನ್ಸ್ಟಾಲ್ಗಳು ಇದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪಡೆಯುತ್ತವೆ; ಈಗಾಗಲೇ ವಿಶ್ವಾಸಾರ್ಹ ಲೆಗಸಿ ಲೀಫ್ ಹೊಂದಿರುವ ಇನ್ಸ್ಟಾಲ್ಗಳು ಆಯ್ಕೆ ಮಾಡದ ಹೊರತು ಲೆಗಸಿ ಸ್ಥಿರ-SAN ಸರ್ಟಿಫಿಕೇಟ್ ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. |
| `MITM_CERT_MODE` | `legacy` | `src/mitm/manager.ts`, `src/mitm/server.cjs` | ಪ್ರಾರಂಭಿಸಲಾದ ಪ್ರಾಕ್ಸಿ ಪ್ರಕ್ರಿಯೆಗಾಗಿ MITM ಮ್ಯಾನೇಜರ್ ಹೊಂದಿಸುವ ಮೌಲ್ಯ (`root-ca` \| `legacy`) — ಇದು ಸರ್ಟಿಫಿಕೇಟ್-ಮೈಗ್ರೇಶನ್ ನಿರ್ಧಾರವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ; ಇದನ್ನು ಕೈಯಾರೆ ಹೊಂದಿಸುವ ಉದ್ದೇಶವಿಲ್ಲ. |
| `OMNIROUTE_NO_SUDO` | `0` | `src/mitm/systemCommands.ts` | MITM ಪ್ರಮಾಣಪತ್ರ-ವಿಶ್ವಾಸ ಕಮಾಂಡ್ಗಳಿಂದ ಆರಂಭದಲ್ಲಿರುವ `sudo` ಅನ್ನು ತೆಗೆದುಹಾಕಲು `1` (ಸತ್ಯ ಮೌಲ್ಯ) ಹೊಂದಿಸಿ — ಆಪರೇಟರ್ CA ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಸುವ root-ರಹಿತ / ಬಳಕೆದಾರ-ನೇಮ್ಸ್ಪೇಸ್ಡ್ ನಿಯೋಜನೆಗಳಿಗಾಗಿ (ಉದಾ. Node ನ extra-CA-certs ಕಾರ್ಯವಿಧಾನದ ಮೂಲಕ). |
| `SKIP_ANTIGRAVITY_DNS` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/mitm/dns/provision.ts` | Antigravity ಪ್ರಾಕ್ಸಿ ಹೋಸ್ಟ್ನೇಮ್ಗಳಿಗಾಗಿ `/etc/hosts` DNS ನಮೂದುಗಳ ಪ್ರಾವಿಷನಿಂಗ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಿಟ್ಟುಬಿಡಲು `true` ಹೊಂದಿಸಿ — sudo/root ಲಭ್ಯವಿಲ್ಲದ ಕಂಟೇನರ್ಗಳಿಗಾಗಿ. |
| `OMNIROUTE_SKIP_DNS_WRITE` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/mitm/dns/dnsConfig.ts` | DNS ನಮೂದುಗಳನ್ನು ಸೇರಿಸುವಾಗ/ತೆಗೆದುಹಾಕುವಾಗ hosts ಫೈಲ್ಗೆ ಬರೆಯುವುದನ್ನು ಬಿಟ್ಟುಬಿಡಲು `1` ಹೊಂದಿಸಿ — ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಅಥವಾ ಓದಲು-ಮಾತ್ರವಾದ ಪರೀಕ್ಷಾ ಪರಿಸರಗಳಿಗಾಗಿ. |
| `OMNIROUTE_SKIP_SYSTEM_TRUST` | `0` | `src/mitm/cert/install.ts`, `src/mitm/tproxy/caTrust.ts` | ಪರೀಕ್ಷೆ/CI-ಮಾತ್ರದ ರಕ್ಷಣೆ: ಪ್ರಮಾಣಪತ್ರ ವಿಶ್ವಾಸದ ಸ್ಥಾಪನೆ/ಅಸ್ಥಾಪನೆಯನ್ನು ಯಾವುದೇ ಕಾರ್ಯ ಮಾಡದಂತೆ ಮಾಡಲು `1` ಹೊಂದಿಸಿ; ಇದರಿಂದ ಸೂಟ್ ಎಂದಿಗೂ OS ವಿಶ್ವಾಸ ಸಂಗ್ರಹವನ್ನು ಮಾರ್ಪಡಿಸುವುದಿಲ್ಲ. ಪರೀಕ್ಷಾ ಸೆಟಪ್ ಮತ್ತು CI ವರ್ಕ್ಫ್ಲೋಗಳಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೊಂದಿಸಲಾಗುತ್ತದೆ. |
| `CHANGELOG_BASE_REF` | _(ಸ್ವಯಂ)_ | `scripts/check/check-changelog-integrity.mjs` | CHANGELOG ಅಳಿಸಿಹೋಗುವುದನ್ನು ತಡೆಯುವ ಗೇಟ್ಗಾಗಿ ಸ್ಪಷ್ಟವಾದ ಬೇಸ್ ref (ಡೀಫಾಲ್ಟ್ ಆಗಿ CI ಯಲ್ಲಿನ PR ಬೇಸ್ ಬ್ರಾಂಚ್ ಅಥವಾ ಅತ್ಯುನ್ನತ `release/v*`). |
| `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | ಹಿನ್ನೆಲೆಯ ಉಚಿತ-ಪ್ರಾಕ್ಸಿ ಪೂಲ್ ಸ್ವಯಂ-ಸಿಂಕ್ ಶೆಡ್ಯೂಲರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು `true` ಹೊಂದಿಸಿ. ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು; ಡೀಫಾಲ್ಟ್ ಆಗಿ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ. |
| `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಸ್ವಯಂ-ಸಿಂಕ್ ಮಧ್ಯಂತರ (ಡೀಫಾಲ್ಟ್ 30 ನಿಮಿಷ). |
| `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy ಉಚಿತ ಪ್ರಾಕ್ಸಿ ಮೂಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `false` ಹೊಂದಿಸಿ. |
| `FREE_PROXY_1PROXY_API_URL` | _(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 ಟ್ಯಾಬ್ನಲ್ಲಿ Deploy 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` | _(ಸ್ವಯಂ-ಪತ್ತೆ)_ | `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-ನಿಮಿಷದ cron ಗ್ರ್ಯಾನುಲಾರಿಟಿಗಿಂತ ಸಾಕಷ್ಟು ಕಡಿಮೆಯಿರಬೇಕು; `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): ಸ್ಕೋರಿಂಗ್ಗೆ ಮೊದಲು ಕಡಿಮೆ-ಕೋಟಾ ಅಭ್ಯರ್ಥಿಗಳನ್ನು ಕೈಬಿಡುವ ಆಟೋ-ರೂಟಿಂಗ್ನ ಕಟ್ಟುನಿಟ್ಟಿನ ಕೋಟಾ ಕಟ್ಆಫ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
| `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 broadcast handlerಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುವ ಕನಿಷ್ಠ panel ಗಾತ್ರದ ಟ್ಯೂನಿಂಗ್; ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ ಎಂಜಿನ್ ಡೀಫಾಲ್ಟ್ ಉಳಿಯುತ್ತದೆ. |
| `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(ಎಂಜಿನ್ ಡೀಫಾಲ್ಟ್)_ | `open-sse/services/autoCombo/virtualFactory.ts` | ಸಂಪೂರ್ಣ chaos panel fan-outಗಾಗಿ ಕಟ್ಟುನಿಟ್ಟಿನ timeout (ms); ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ ಎಂಜಿನ್ ಡೀಫಾಲ್ಟ್ ಉಳಿಯುತ್ತದೆ. |
| `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | grok-web ಸಾಪ್ತಾಹಿಕ quota ಪಡೆಯಲು ಬಳಸುವ Grok CLI `auth.json`ನ ಪಥ; ಪರೀಕ್ಷೆಗಳಿಗಾಗಿ ಅಥವಾ ಪ್ರಮಾಣಿತವಲ್ಲದ CLI ಸ್ಥಾಪನೆಗಾಗಿ ಇದನ್ನು ಅತಿಕ್ರಮಿಸಿ. |
| `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/mitm/manager.ts` | AgentBridge upstream TLS ಸಂಪರ್ಕಗಳಿಗಾಗಿ ವಿಶ್ವಾಸಾರ್ಹವಾದ ಹೆಚ್ಚುವರಿ CA ಪ್ರಮಾಣಪತ್ರ (PEM). |
| `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Traffic Inspector ring bufferನಲ್ಲಿ ಇರಿಸಲಾಗುವ ಸೆರೆಹಿಡಿದ ವಿನಂತಿಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. |
| `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | ಮೊಟಕುಗೊಳಿಸುವ ಮೊದಲು ಸೆರೆಹಿಡಿದ ವಿನಂತಿ/ಪ್ರತಿಕ್ರಿಯೆಯ body ಗರಿಷ್ಠ ಗಾತ್ರ (KB). |
| `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Traffic Inspector HTTP proxyಗಾಗಿ ಸ್ಥಳೀಯ port. |
| `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | boot ಸಮಯದಲ್ಲಿ inspector HTTP proxyಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರಾರಂಭಿಸಿ. |
| `INSPECTOR_LLM_HOSTS_EXTRA` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/inspector/captureState.ts` | ಸೆರೆಹಿಡಿಯಲು LLM endpoints ಎಂದು ಪರಿಗಣಿಸಲಾಗುವ ಹೆಚ್ಚುವರಿ hostnames (ಅಲ್ಪವಿರಾಮದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾದವು). |
| `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | ಸೆರೆಹಿಡಿದ trafficನಲ್ಲಿ ರಹಸ್ಯಗಳನ್ನು (auth headers / API keys) ಮರೆಮಾಡಿ. |
| `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ನ 'ಪ್ರಾಂಪ್ಟ್ ಸುಧಾರಿಸಿ' ಕ್ರಿಯೆಗೆ ಡೀಫಾಲ್ಟ್ ಮಾಡೆಲ್ (ಹೊಂದಿಸದಿದ್ದಾಗ ಸಕ್ರಿಯ ಮಾಡೆಲ್ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ). |
| `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | bifrost ಸೈಡ್ಕಾರ್ ಪ್ರಾಕ್ಸಿಯ ಮಾಸ್ಟರ್ ಕಿಲ್ ಸ್ವಿಚ್. ಇದನ್ನು `0` ಗೆ ಹೊಂದಿಸಿದಾಗ, ರೂಟ್ `X-Bifrost-Killswitch` ಹೆಡರ್ನೊಂದಿಗೆ 503 ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ಆಪರೇಟರ್ ಅನ್ನು TS ಪಥಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ. ಮರುನಿಯೋಜಿಸದೆ ಸೈಡ್ಕಾರ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಇದನ್ನು ಬಳಸಿ (ಟಿಯರ್-1 ರೂಟರ್ ಘಟನೆ, ಕೀ ರೊಟೇಶನ್). |
| `BIFROST_BASE_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | ಹೊಂದಿಸಿದಾಗ, Bifrost ಸೈಡ್ಕಾರ್ ಪ್ರಾಕ್ಸಿ ರೂಟ್ `/v1/chat/completions` ಟ್ರಾಫಿಕ್ ಅನ್ನು TS ರಿಲೇ ಹ್ಯಾಂಡ್ಲರ್ ಬದಲಿಗೆ ಈ Go ಗೇಟ್ವೇಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತದೆ. ಹೊಂದಿಸದಿದ್ದರೆ → ಫಾಲ್ಬ್ಯಾಕ್ನೊಂದಿಗೆ 503. ಕೊನೆಯ ಸ್ಲ್ಯಾಶ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. |
| `BIFROST_PORT` | `8080` | `src/lib/services/bootstrap.ts` | OmniRoute, Bifrost ಸೈಡ್ಕಾರ್ನ ಜೀವನಚಕ್ರವನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಮೇಲ್ವಿಚಾರಣೆಯಲ್ಲಿರುವ Bifrost ಎಂಬೆಡೆಡ್ ಸೇವೆಯು ಬೈಂಡ್ ಆಗುವ ಪೋರ್ಟ್ (`127.0.0.1:`). ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ `8080`. |
| `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 ಮಾಡೆಲ್ id (ಚೈಲ್ಡ್ ಪ್ರೊಸೆಸ್ನ env ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ). |
| `BIFROST_API_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `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` ಆಗಿರುವಾಗ, Bifrost ಸೈಡ್ಕಾರ್ ಮಾರ್ಗವು TS ಸ್ಟ್ರೀಮಿಂಗ್ ಎಕ್ಸಿಕ್ಯೂಟರ್ ಬದಲಿಗೆ ಗೇಟ್ವೇ ಮೂಲಕ 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 ಕಾನ್ಫಿಗರ್ ಮಾಡದಿದ್ದಾಗ ಡೀಫಾಲ್ಟ್); `BIFROST_BASE_URL` ಹೊಂದಿಸಲಾಗಿದ್ದು `BIFROST_ENABLED` ≠ `0` ಆಗಿರುವಾಗ `auto` Bifrost ಅನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತದೆ ಮತ್ತು ಸೈಡ್ಕಾರ್ ಅನ್ನು ತಲುಪಲಾಗದಿದ್ದರೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ TS ಗೆ ಫಾಲ್ಬ್ಯಾಕ್ ಆಗುತ್ತದೆ; `bifrost` Bifrost ಅನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ (ಕಟ್ಟುನಿಟ್ಟಾಗಿ, ಫಾಲ್ಬ್ಯಾಕ್ ಇಲ್ಲ). Auth/ದರ-ಮಿತಿ/ಇಂಜೆಕ್ಷನ್-ಗಾರ್ಡ್/ಅನುಮತಿ ಪಟ್ಟಿ ಯಾವಾಗಲೂ ಮೊದಲು 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 ಸೈಡ್ಕಾರ್ ಹಾಪ್ ವಿಫಲವಾದ ನಂತರ, ರಿಲೇ ಸೈಡ್ಕಾರ್ ಅನ್ನು ಮರುಪ್ರಯತ್ನಿಸುವ ಮುನ್ನದ ಕೂಲ್ಡೌನ್ (ms); ಕೂಲ್ಡೌನ್ ಇರುವವರೆಗೆ ಅದು ನೇರವಾಗಿ TS ಪಥಕ್ಕೆ ಮಾರ್ಗೀಕರಿಸುತ್ತದೆ, ನಂತರ ಮತ್ತೆ ಪ್ರೋಬ್ ಮಾಡುತ್ತದೆ. `0` ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. `OMNIROUTE_RELAY_BACKEND=auto` ಆಗಿರುವಾಗ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ. |
| `OMNIROUTE_TLS_CERT` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `bin/cli/commands/serve.mjs` | HTTPS ಮೂಲಕ `omniroute serve` ಒದಗಿಸಲು PEM TLS ಪ್ರಮಾಣಪತ್ರದ ಪಥ (`--tls-cert` ಗೆ ಸಮಾನ). ಇದನ್ನು `OMNIROUTE_TLS_KEY` ಜೊತೆಗೆ ಜೋಡಿಸಬೇಕು; ನಂತರ ಸ್ವತಂತ್ರ ಸರ್ವರ್ ಅದೇ ಲಿಸನರ್ನಲ್ಲಿ 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 ಲಾಂಚರ್ ಮತ್ತು ಅದೇ ರೀತಿಯ 1-ಕ್ಲಿಕ್ ಸ್ಥಳೀಯ ಸೇವಾ ಸ್ಟಾರ್ಟರ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಲೂಪ್ಬ್ಯಾಕ್ ಅಲ್ಲದ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ಗಳಲ್ಲಿ ಇದು `1` ಆಗಿರಬೇಕು. `isLocalOnlyPath()` ಮಾರ್ಗ-ಗಾರ್ಡ್ ವರ್ಗೀಕರಣದೊಂದಿಗೆ ಹೆಚ್ಚುವರಿ ಸುರಕ್ಷತೆ (`src/server/authz/routeGuard.ts` ನಲ್ಲಿನ `LOCAL_ONLY_API_PREFIXES`). |
| `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/security/localEndpoints.ts` | ಲೂಪ್ಬ್ಯಾಕ್ನಲ್ಲಿಲ್ಲದ `/api/local/*` ಕರೆಗಾರರಿಗಾಗಿ ಬೇರರ್ ಟೋಕನ್ (ಉದಾ. ಡೆಸ್ಕ್ಟಾಪ್ ಆ್ಯಪ್). ಹೊಂದಿಸಿದಾಗ, ಲೂಪ್ಬ್ಯಾಕ್ ಅಲ್ಲದ IP ಗಳಿಂದ ಬರುವ ವಿನಂತಿಗಳು `Authorization: Bearer ` ಅನ್ನು ಹೊಂದಿರಬೇಕು. ಲೂಪ್ಬ್ಯಾಕ್ ಅಲ್ಲದ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ಗಳಲ್ಲಿ `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 ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಹೋಸ್ಟ್ಗೂ ದೃಢೀಕರಣವಿಲ್ಲದ 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` ದೃಢೀಕರಣವಿಲ್ಲದ Redis ಅನ್ನು ಸಂಪೂರ್ಣ LAN ಗೆ ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. |
| `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` ಆದ ನಂತರ ಅಥವಾ ಮುಂಭಾಗದಲ್ಲಿರುವ ರಿವರ್ಸ್ ಪ್ರಾಕ್ಸಿಯು ತನ್ನದೇ ದೃಢೀಕರಣವನ್ನು ಜಾರಿಗೊಳಿಸಿದ ನಂತರ ಮಾತ್ರ ಇದನ್ನು ವಿಸ್ತರಿಸಿ. |
| `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` (24ಗಂ) | `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` | _(ಐಚ್ಛಿಕ ಕ್ಲಸ್ಟರ್ ಪ್ರೊಫೈಲ್)_ | `--profile memory` ಸಕ್ರಿಯವಾಗಿರುವಾಗ Qdrant ಸೈಡ್ಕಾರ್ನ ಹೋಸ್ಟ್ನೇಮ್. ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವು ನೆಟ್ವರ್ಕ್ನೊಳಗಿನ qdrant ಸೇವೆಯ ಹೆಸರನ್ನು ಸೂಚಿಸುತ್ತದೆ; ಬಾಹ್ಯ ನಿಯೋಜನೆಗಾಗಿ ಇದನ್ನು ಓವರ್ರೈಡ್ ಮಾಡಿ. ಕೋಡ್ನಲ್ಲಿ (`src/lib/memory/vectorStore.ts:108`) `qdrantEnabled` ಎಂಬುದು `true` ಆಗಿರುವಾಗ ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ. |
| `QDRANT_PORT` | `6333` | _(ಐಚ್ಛಿಕ ಕ್ಲಸ್ಟರ್ ಪ್ರೊಫೈಲ್)_ | Qdrant ಸೈಡ್ಕಾರ್ನ REST ಪೋರ್ಟ್. |
| `QDRANT_GRPC_PORT` | `6334` | _(ಐಚ್ಛಿಕ ಕ್ಲಸ್ಟರ್ ಪ್ರೊಫೈಲ್)_ | Qdrant ಸೈಡ್ಕಾರ್ನ gRPC ಪೋರ್ಟ್. ಸ್ಟ್ರೀಮಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ REST ಬದಲಿಗೆ gRPC ಅನ್ನು ಆದ್ಯತೆ ನೀಡುವ ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿಗಳು ಇದನ್ನು ಬಳಸುತ್ತವೆ. |
| `QDRANT_API_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | _(ಐಚ್ಛಿಕ ಕ್ಲಸ್ಟರ್ ಪ್ರೊಫೈಲ್)_ | 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` | `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` | ಆಯ್ಕೆಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ (ಡೀಫಾಲ್ಟ್ ಆಗಿ OFF): `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 ಸಂಪರ್ಕಗಳಿಗಾಗಿ Cron-ಚಾಲಿತ ವಾರ್ಮ್ಅಪ್; ಇದರಿಂದ 5-ಗಂಟೆಗಳ ದರ-ಮಿತಿ ವಿಂಡೋ ಮೊದಲ ನೈಜ ವಿನಂತಿಯಿಂದ ತೆರೆಯುವ ಬದಲು, ನಿಗದಿತ ಸಮಯದ ಸರಳ ವಿನಂತಿಯಿಂದ ತೆರೆಯುತ್ತದೆ (#8848). `OMNIROUTE_WARMUP_ENABLED` ಸತ್ಯಸಮಾನವಾಗಿದ್ದು **ಮತ್ತು** ಸಂಪರ್ಕವನ್ನು `settings.claudeWarmup.connections`ನಲ್ಲಿ ಫ್ಲ್ಯಾಗ್ ಮಾಡಿರದ ಹೊರತು ಶೆಡ್ಯೂಲರ್ ಆಫ್ ಆಗಿರುತ್ತದೆ; ಸಂಪರ್ಕಗಳ ಪಟ್ಟಿ ಖಾಲಿಯಾಗಿದ್ದರೆ, env var ಆನ್ ಆಗಿದ್ದರೂ ಯಾವುದನ್ನೂ ವಾರ್ಮ್ಅಪ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ------------------------------ | --------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_WARMUP_ENABLED` | _(ಹೊಂದಿಸಿಲ್ಲ → ಆಫ್)_ | `src/lib/warmupScheduler.ts` | ವಾರ್ಮಪ್ ಶೆಡ್ಯೂಲರ್ನ ಮುಖ್ಯ ಸ್ವಿಚ್. `1`/`true`/`yes`/`on` ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ (ಕೇಸ್ ಪರಿಗಣಿಸುವುದಿಲ್ಲ, ಖಾಲಿ ಜಾಗಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ). ಬೇರೆ ಯಾವುದೇ ಮೌಲ್ಯವಿದ್ದರೆ ಅಥವಾ ಹೊಂದಿಸದಿದ್ದರೆ, ಶೆಡ್ಯೂಲರ್ ಆಫ್ ಆಗಿಯೇ ಇರುತ್ತದೆ. |
| `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | ಹೋಸ್ಟ್ ಗಡಿಯಾರವನ್ನು ಲೆಕ್ಕಿಸದೆ `America/Los_Angeles` (Anthropicನ ಮರುಹೊಂದಿಕೆ ಸಮಯವಲಯ)ದಲ್ಲಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಲಾಗುವ ವಾರ್ಮಪ್ ಟಿಕ್ಗಾಗಿ ಐದು-ಕ್ಷೇತ್ರಗಳ cron ಎಕ್ಸ್ಪ್ರೆಷನ್. |
| `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | ಪ್ರತಿ ಟಿಕ್ಗೆ ಸಮಾನಾಂತರವಾಗಿ ವಾರ್ಮ್ ಮಾಡಲಾಗುವ ಸಂಪರ್ಕಗಳ ಸಂಖ್ಯೆ. ಇದನ್ನು `1`-`10` ಮಿತಿಗೆ ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ; ಸಂಖ್ಯಾತ್ಮಕವಲ್ಲದ ಮೌಲ್ಯವು `3`ಕ್ಕೆ ಹಿಂತಿರುಗುತ್ತದೆ. |
| `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | ವಾರ್ಮಪ್ ವಿನಂತಿಗೆ ಬಳಸುವ ಮಾಡೆಲ್. ನಿಮ್ಮ ಯೋಜನೆಯಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ ಮಾತ್ರ ಇದನ್ನು ಅತಿಕ್ರಮಿಸಿ; ವಿಂಡೋವನ್ನು ಇನ್ನೂ ತೆರೆಯಬಲ್ಲ ಅತ್ಯಂತ ಅಗ್ಗದ ಮಾಡೆಲ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ. |
### ಬ್ರೌಸರ್-ಲಾಗಿನ್ VNC ಸೆಷನ್ಗಳು ಮತ್ತು Data-Dir ಅಲಿಯಾಸ್
ಸಂವಾದಾತ್ಮಕ ಬ್ರೌಸರ್-ಲಾಗಿನ್ ಕ್ರೆಡೆನ್ಷಿಯಲ್ಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲು (`/api/vnc-session`) ಬಳಸಲಾಗುವ ಕಂಟೈನರೀಕೃತ Chromium+VNC, ಜೊತೆಗೆ ಹಳೆಯ `DATA_DIR` ಅಲಿಯಾಸ್. ಎಲ್ಲವೂ ಐಚ್ಛಿಕ — VNC ಡೀಫಾಲ್ಟ್ಗಳು ಜತೆಗೇ ಒದಗಿಸಲಾದ `omniroute-vnc-chromium:local` ಇಮೇಜ್ ಅನ್ನು ಗುರಿಯಾಗಿಸುತ್ತವೆ ಮತ್ತು ಕಸ್ಟಮ್ ಕಂಟೈನರ್ ಇಮೇಜ್, ಪೋರ್ಟ್ಗಳು ಅಥವಾ ಜೀವನಚಕ್ರ ಟ್ಯೂನಿಂಗ್ಗಾಗಿ ಮಾತ್ರ ಅತಿಕ್ರಮಿಸಲಾಗುತ್ತದೆ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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 ನಿಮಿಷ) | `src/lib/vncSession/manifest.ts` | ನಿಷ್ಕ್ರಿಯ VNC ಸೆಷನ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವ ಮೊದಲು ಕಾಯುವ ನಿಷ್ಕ್ರಿಯತಾ ಕಾಲಾವಧಿ (ms). |
| `OMNIROUTE_VNC_MAX_MS` | `1800000` (30 ನಿಮಿಷ) | `src/lib/vncSession/manifest.ts` | ಒಂದೇ VNC ಸೆಷನ್ನ ಜೀವಿತಾವಧಿಯ ಮೇಲಿನ ಕಟ್ಟುನಿಟ್ಟಿನ ಮಿತಿ (ms). |
| `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | ಏಕಕಾಲೀನ VNC ಸೆಷನ್ಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ. |
| `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | ಕಂಟೈನರೀಕೃತ ಬ್ರೌಸರ್ CDP-ಸಿದ್ಧವಾಗುವವರೆಗೆ ಕಾಯುವ ಕಾಲಾವಧಿ ಮಿತಿ (ms). |
| `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | ಲಾಗಿನ್ ಪೂರ್ಣಗೊಂಡ ನಂತರ ಸೆರೆಹಿಡಿದ ಸೆಷನ್/ಕುಕಿಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಕಾಲಾವಧಿ ಮಿತಿ (ms). |
| `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` | _(ಹೊಂದಿಸಿಲ್ಲ)_ | `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 ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ನಲ್ಲಿನ ಆರೋಗ್ಯ ತಪಾಸಣೆಯ ಅನಗತ್ಯ ಸಂದೇಶಗಳನ್ನು ಮೌನಗೊಳಿಸಿ. |
| `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` | ಇಕೋಸಿಸ್ಟಮ್/ಪ್ರೋಟೋಕಾಲ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಚಲಾಯಿಸುವ ಮೊದಲು ಸರ್ವರ್ ಸುಸ್ಥಿತಿಗೆ ಬರಲು ಕಾಯುವ ಸಮಯ (ms). |
| `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | ಪ್ಯಾಕೇಜ್ ಮಾಡಿದ ಆ್ಯಪ್ ಒದಗಿಸಬೇಕೆಂದು Electron ಸ್ಮೋಕ್ ಹಾರ್ನೆಸ್ ನಿರೀಕ್ಷಿಸುವ URL. |
| `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | ಸ್ಮೋಕ್ ಹಾರ್ನೆಸ್ ಪ್ರಯತ್ನವನ್ನು ಕೈಬಿಡುವ ಮೊದಲು ಒಟ್ಟು ಕಾಲಮಿತಿ (ms). |
| `ELECTRON_SMOKE_SETTLE_MS` | `2000` | `scripts/dev/smoke-electron-packaged.mjs` | ಪುಟ ಲೋಡ್ ಆದ ನಂತರದ ಸ್ಥಿರಗೊಳ್ಳುವ ಅವಧಿ (ms). |
| `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` | ಅನುವಾದ ಬ್ಯಾಕೆಂಡ್ಗಾಗಿ Bearer ಟೋಕನ್ (ಎಂದಿಗೂ ಲಾಗ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ). |
| `OMNIROUTE_TRANSLATION_MODEL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `scripts/i18n/run-translation.mjs` | ಮಾಡೆಲ್ ಐಡಿ, ಉದಾ. `gpt-4o-mini` ಅಥವಾ `cx/gpt-5.4-mini`. |
| `OMNIROUTE_TRANSLATION_TIMEOUT_MS` | `60000` | `scripts/i18n/run-translation.mjs` | ಪ್ರತಿ ವಿನಂತಿಗೆ ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಕಾಲಮಿತಿ. |
| `OMNIROUTE_TRANSLATION_CONCURRENCY` | `4` | `scripts/i18n/run-translation.mjs` | ಬಹು ಫೈಲ್ಗಳು / ಲೋಕೇಲ್ಗಳ ಮೇಲೆ ಚಲಾಯಿಸುವಾಗ ಸಮಾನಾಂತರ ಅನುವಾದ ವಿನಂತಿಗಳು. |
---
## 27. Radar ಫೀಡ್ (ಸ್ವಯಂ-ಹೋಸ್ಟಿಂಗ್)
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` ನಲ್ಲಿ ಘೋಷಿಸಲಾದ ಸಾರ್ವಜನಿಕ ರೆಪೊಸಿಟರಿಯ
`news.json` URL ಅನ್ನು GET ಮೂಲಕ ಮಾತ್ರ ಓದುತ್ತದೆ; ವಜಾಗೊಳಿಸುವಿಕೆ IDಗಳು ಬ್ರೌಸರ್ನ ಸ್ಥಳೀಯ ಸಂಗ್ರಹಣೆಯಲ್ಲಿಯೇ ಉಳಿಯುತ್ತವೆ.
| ವೇರಿಯೇಬಲ್ | ಪೂರ್ವನಿಯೋಜಿತ ಮೌಲ್ಯ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ----------------------------- | -------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RADAR_FEED_URL` | `https://radar.omniroute.online` | `src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts` | ಪ್ರತ್ಯೇಕವಾಗಿ ಸಹಿ ಮಾಡಲಾದ ಕ್ಯಾಟಲಾಗ್, ರೆಫರಲ್ಗಳು, ಬೆಂಬಲಿಗರ ಆಫರ್ಗಳು ಮತ್ತು Intel ಫೀಡ್ಗಳು ಹಂಚಿಕೊಳ್ಳುವ ಮೂಲ 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 (ಪಾವತಿ/ಯೋಜನೆಗಳ ಪುಟ). |
| `RADAR_ADMIN_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/radar/links.ts` | ಮಾಲೀಕರಿಗೆ ಮಾತ್ರ ಲಭ್ಯವಿರುವ ಖಾಸಗಿ ಕಾರ್ಯಾಚರಣೆಗಳ-ಪ್ಯಾನೆಲ್ ಲಿಂಕ್. HTTP ಲೂಪ್ಬ್ಯಾಕ್ SSH ಫಾರ್ವರ್ಡ್ ಹೊರತುಪಡಿಸಿ HTTPS ಅಗತ್ಯವಿದೆ; ಹೊಂದಿಸದ ಅಥವಾ ಅಮಾನ್ಯ ಮೌಲ್ಯಗಳು ಯಾವುದೇ ನ್ಯಾವಿಗೇಶನ್ ಐಟಂ ಅನ್ನು ರಚಿಸುವುದಿಲ್ಲ. |
---
## ಆಡಿಟ್: ತೆಗೆದುಹಾಕಲಾದ / ನಿಷ್ಕ್ರಿಯ ವೇರಿಯೇಬಲ್ಗಳು
ಕೆಳಗಿನ ವೇರಿಯೇಬಲ್ಗಳು `.env.example` ನ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಿದ್ದವು, ಆದರೆ ಪ್ರಸ್ತುತ ಕೋಡ್ಬೇಸ್ನಲ್ಲಿ ಅವುಗಳಿಗೆ **ಯಾವುದೇ ರನ್ಟೈಮ್ ಉಲ್ಲೇಖಗಳಿಲ್ಲ**. ಅವುಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ:
| ವೇರಿಯಬಲ್ | ಕಾರಣ |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `STORAGE_DRIVER=sqlite` | ಯಾವುದೇ ಮೂಲ ಫೈಲ್ನಿಂದ ಎಂದಿಗೂ ಓದಲಾಗುವುದಿಲ್ಲ. SQLite ಮಾತ್ರ ಬೆಂಬಲಿತ ಡ್ರೈವರ್ ಆಗಿದೆ — ಆಯ್ಕೆಯ ಅಗತ್ಯವಿಲ್ಲ. |
| `INSTANCE_NAME=omniroute` | ಹಳೆಯ ದಸ್ತಾವೇಜುಗಳು/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 Coding 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 ವೇರಿಯಬಲ್ಗಳನ್ನು ಓದುವುದಿಲ್ಲ — ರುಜುವಾತುಗಳು Dashboard / `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` | ಮರುರಚಿಸಲಾದ `opencode.json`ನಲ್ಲಿ ಬರೆಯಲಾಗುವ OpenCode-ಶೈಲಿಯ API ಕೀ (`sk-...`). ಹೊಂದಿಸದಿದ್ದಾಗ `OMNIROUTE_KEY`ಗೆ ಹಿಂತಿರುಗುತ್ತದೆ. |
### ಕಂಪ್ರೆಷನ್ ಆಫ್ಲೈನ್-ಮೌಲ್ಯಮಾಪನ ಹಾರ್ನೆಸ್ (ತಾತ್ಕಾಲಿಕ ಪರಿಕರಗಳು)
ಆಫ್ಲೈನ್ ಕಂಪ್ರೆಷನ್ ಮೌಲ್ಯಮಾಪನ CLI ಆದ `scripts/compression-eval/index.ts` ಇದನ್ನು ಬಳಸುತ್ತದೆ.
ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಗೆ ಅಗತ್ಯವಿಲ್ಲ — ಡೆವಲಪರ್ ಪರಿಕರಗಳಿಗೆ ಮಾತ್ರ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ---------------------------- | ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_EVAL_CREDENTIALS` | `{}` (ಖಾಲಿ) | `scripts/compression-eval/index.ts` | ಆಫ್ಲೈನ್ compression-eval CLI ಪರೀಕ್ಷಿಸುವ ಪೂರೈಕೆದಾರರಿಗಾಗಿ ಆಪರೇಟರ್ ಒದಗಿಸಿದ JSON ರುಜುವಾತುಗಳು (`JSON.parse` ಮೂಲಕ ಪಾರ್ಸ್ ಮಾಡಲಾಗುತ್ತದೆ). ಡ್ರೈ ರನ್ಗಾಗಿ ಹೊಂದಿಸದೆ ಬಿಡಿ. |
### VNC ಬ್ರೌಸರ್ ಸೆಷನ್ಗಳು
ಬ್ರೌಸರ್-ಸ್ವಯಂಚಾಲನ ಪೂರೈಕೆದಾರರಿಗಾಗಿ Docker-ಆಧಾರಿತ ಹೆಡ್ಲೆಸ್ Chromium ಸೆಷನ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು `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 Protocol ಪೋರ್ಟ್. |
| `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 ಸೆಷನ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುವ ಮೊದಲು ಐಡಲ್ ಟೈಮ್ಔಟ್ (ms). |
| `OMNIROUTE_VNC_MAX_MS` | `1800000` | `src/lib/vncSession/manifest.ts` | ಗರಿಷ್ಠ ಸೆಷನ್ ಅವಧಿ (ms). |
| `OMNIROUTE_VNC_MAX_SESSIONS` | `4` | `src/lib/vncSession/manifest.ts` | ಗರಿಷ್ಠ ಏಕಕಾಲೀನ VNC ಸೆಷನ್ಗಳು. |
| `OMNIROUTE_VNC_READY_MS` | `45000` | `src/lib/vncSession/manifest.ts` | ಬ್ರೌಸರ್ ಸಿದ್ಧತೆಗಾಗಿ ಟೈಮ್ಔಟ್ (ms). |
| `OMNIROUTE_VNC_HARVEST_MS` | `20000` | `src/lib/vncSession/manifest.ts` | ಸಂಗ್ರಹಣೆ/ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆ ಟೈಮ್ಔಟ್ (ms). |
| `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 (ms). |
### ಎಂಬೆಡೆಡ್ Redis ಬೈಂಡಿಂಗ್
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ವಿವರಣೆ |
| --------------------------- | ----------- | -------------------------------------------------------------- |
| `REDIS_BIND_HOST` | `127.0.0.1` | ಎಂಬೆಡೆಡ್ Redis ಸೇವೆಯ ಬೈಂಡ್ ವಿಳಾಸ. |
| `REDIS_PORT` | `6379` | ಎಂಬೆಡೆಡ್ Redis ಸೇವೆಯ ಪೋರ್ಟ್. |
| `OMNIROUTE_REDIS_BIND_HOST` | – | ಎಂಬೆಡೆಡ್ Redis ಬೈಂಡ್ ವಿಳಾಸಕ್ಕಾಗಿ OmniRoute-ವ್ಯಾಪ್ತಿಯ ಅತಿಕ್ರಮಣ. |
---
## 24. Release v3.8.50 ಸೇರ್ಪಡೆಗಳು
ಹಿಂದಿನ environment-contract snapshot ನಂತರ ಈ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ.
| ವೇರಿಯಬಲ್ | ಡೀಫಾಲ್ಟ್ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| ------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | ಮರುಪ್ರಯತ್ನಿಸಬಹುದಾದ `503` ನೀಡುವ ಮೊದಲು heavyweight chat admission slotಗಾಗಿ ಕಾಯುವ ಗರಿಷ್ಠ ಸಮಯ; ತಕ್ಷಣದ `503` ಬದಲಿಗೆ, ಕಡಿಮೆ ಮಿತಿಯ ಕಾಯುವಿಕೆಯು agent burstಗಳನ್ನು ಅನುಕ್ರಮಗೊಳಿಸುತ್ತದೆ. `0` ತಕ್ಷಣದ ತಿರಸ್ಕಾರವನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ. |
| `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | admission ಕಾಯುವಿಕೆಗಾಗಿ queued-bytes budget: ಕಾಯುವಿಕೆಯಿಂದ heap ಹೆಚ್ಚಾಗದಂತೆ, process-wide ಆಗಿ ನಿಲ್ಲಿಸಲಾದ ಒಟ್ಟು buffered body bytesಗೆ ಮಿತಿ ವಿಧಿಸುತ್ತದೆ (#4380). ಬಜೆಟ್ ಮೀರಿದ ಕಾಯುವಿಕೆಗಳು ತಕ್ಷಣವೇ ಮರುಪ್ರಯತ್ನಿಸಬಹುದಾದ `503` ಅನ್ನು ಪಡೆಯುತ್ತವೆ. |
| `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 ಸೆಕೆಂಡು) | `src/shared/middleware/chatBodyAdmission.ts` | #10110 ರಿಂದ ಬಳಕೆಯಲ್ಲಿಲ್ಲದ no-op: ಒಂದು process-wide budget ಪರವಾಗಿ per-session admission laneಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ. configuration compatibilityಗಾಗಿ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ; ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | #10110 ರಿಂದ ಬಳಕೆಯಲ್ಲಿಲ್ಲದ no-op: ಒಂದು process-wide budget ಪರವಾಗಿ per-session admission laneಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ. configuration compatibilityಗಾಗಿ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ; ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. |
| `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (ಆಫ್) | `open-sse/services/admission/runtime.ts` | Adaptive runtime virtual admission lanes (#9654): per-tenant adaptive gateಗೆ (system 2) master switch. ಮೇಲಿನ ಬಳಕೆಯಲ್ಲಿಲ್ಲದ per-connection lane varsಗಿಂತ ಇದು ಭಿನ್ನವಾಗಿದೆ (TTL_MS / MAX_SESSIONS, #10110 ರಿಂದ no-opಗಳು). ಅದೇ ಹೆಸರಿನ Dashboard feature flag; env var Dashboard overrideಗಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ; restart ಅಗತ್ಯವಿದೆ. |
| `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | queued run ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, run-now call ಒಂದು in-flight jobಗಾಗಿ ಎಷ್ಟು ಸಮಯ ಕಾಯಬೇಕು ಎಂಬುದಕ್ಕೆ ಮಿತಿ ವಿಧಿಸುತ್ತದೆ. |
| `ADOBE_FIREFLY_BROWSER_REFRESH` | ಸಕ್ರಿಯ | `open-sse/services/adobeFireflySession.ts` | account-scoped Chrome CDP sessionಗಳ ಮೂಲಕ IMS ಮತ್ತು browser-risk state ಅನ್ನು ತಾಜಾವಾಗಿರಿಸುತ್ತದೆ; ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `0` ಹೊಂದಿಸಿ. |
| `ADOBE_FIREFLY_SESSION_DISK` | ಸಕ್ರಿಯ | `open-sse/services/adobeFireflySession.ts` | ದುರಸ್ತಿಗೊಳಿಸಿದ Adobe sessionಗಳನ್ನು `DATA_DIR` ಅಡಿಯಲ್ಲಿ ಉಳಿಸುತ್ತದೆ; memory-only stateಗಾಗಿ `0` ಹೊಂದಿಸಿ. |
| `ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS` | `12000` | `open-sse/services/adobeFireflySession.ts` | Adobe Firefly generate submissionಗಳ ನಡುವಿನ ಕನಿಷ್ಠ ಅಂತರ. |
| `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | ಪ್ರತಿ ಮೂರನೇ ಯಶಸ್ವಿ Adobe submission ನಂತರದ ಹೆಚ್ಚುವರಿ ನಿಶ್ಶಬ್ದ ಅವಧಿ. |
| `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | Debugಗೆ ಮಾತ್ರ ಮೀಸಲಾದ true-headless mode; ಪರಿಣಾಮವಾಗಿ ಉಂಟಾಗುವ risk session ಅನ್ನು Adobe colligo ಸಾಮಾನ್ಯವಾಗಿ ತಿರಸ್ಕರಿಸುತ್ತದೆ. |
| `CHROME_PATH` | ಸ್ವಯಂ-ಪತ್ತೆ | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | platform auto-detection ಸಾಕಾಗದಿದ್ದಾಗ browser-driven executorಗಳು ಬಳಸುವ ಐಚ್ಛಿಕ absolute Chrome executable. |
| `TELEGRAM_BOT_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/telegram/config.ts` | inbound webhook ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮತ್ತು Mini App `initData`ಗೆ ಸಹಿ ಮಾಡುವ BotFather token. |
| `TELEGRAM_WEBHOOK_SECRET` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `src/lib/telegram/config.ts` | `setWebhook` ಮೂಲಕ ನೋಂದಾಯಿಸಲಾಗುವ ಮತ್ತು ಪ್ರತಿ webhook deliveryಯಲ್ಲಿ `X-Telegram-Bot-Api-Secret-Token` header ವಿರುದ್ಧ ಪರಿಶೀಲಿಸಲಾಗುವ shared secret. webhook pathಗೆ ಇದು ಅಗತ್ಯವಿದೆ; ಹೊಂದಿಸದಿದ್ದರೆ webhook deliveryಗಳನ್ನು 503 ಮೂಲಕ ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ. |
| `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Telegram chat replyಗಳಿಗೆ ಬಳಸುವ model. |
| `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | proxyಗಳು ಅಥವಾ self-hosted Bot API serverಗಳಿಗಾಗಿ Bot API base URL override. |
| `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | outbound Bot API callಗಳಿಗಾಗಿ millisecondಗಳಲ್ಲಿ timeout. |
| `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (ಸಕ್ರಿಯ) | `scripts/build/optionalPackStaging.mjs` | Electron standalone treeಗಾಗಿ ಐಚ್ಛಿಕ ML/browser packಗಳನ್ನು staging ಮಾಡುವಾಗ `.tar.gz` tarballಗಳ emission ಬಿಟ್ಟುಬಿಡಲು `0` ಹೊಂದಿಸಿ (pack directoryಗಳು ಮತ್ತು `optional-packs.index.json` ಇನ್ನೂ ರಚಿಸಲ್ಪಡುತ್ತವೆ). artifact upload ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಲು desktop release workflow ಇದನ್ನು ಬಳಸುತ್ತದೆ. |
| `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | xAI subscription image routeಗಳ registration ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ; API-key image path ಬದಲಾಗದೆ ಉಳಿಯುವಂತೆ ಡೀಫಾಲ್ಟ್ ಆಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. |
| `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | `429` responseನಲ್ಲಿ ಬಳಸಬಹುದಾದ `Retry-After` ಸುಳಿವು ಇಲ್ಲದಿದ್ದಾಗ, ಪ್ರತಿ keyಗೆ millisecondಗಳಲ್ಲಿ cooldown. |
| `OMNIROUTE_ESTIMATOR_CALIBRATION` | ಸಕ್ರಿಯ | `open-sse/services/estimatorCalibration.ts` | in-memory estimator calibration recording ಮತ್ತು application ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು `off`, `0`, ಅಥವಾ `false` ಹೊಂದಿಸಿ. |
| `NEXT_MANUAL_SIG_HANDLE` | _(ಆಂತರಿಕ)_ | `scripts/dev/standalone-server-ws.mjs` | ಆಂತರಿಕ standalone-server signal-handler override; ಸಾಮಾನ್ಯವಾಗಿ operatorಗಳು configure ಮಾಡುವ ಬದಲು launcher ಇದನ್ನು ಹೊಂದಿಸುತ್ತದೆ ಮತ್ತು ತೆರವುಗೊಳಿಸುತ್ತದೆ. |
### ChatGPT Web (Codex)
headless browser ಮತ್ತು outbound tool tunnelಗಾಗಿ ಜಾಗತಿಕ ಡೀಫಾಲ್ಟ್ಗಳು. Dashboardನಲ್ಲಿ ಹೊಂದಿಸಲಾದ Connection ಮೌಲ್ಯಗಳು ಆದ್ಯತೆ ಪಡೆಯುತ್ತವೆ.
| ಚರಾಂಶ | ಪೂರ್ವನಿಯೋಜಿತ | ಮೂಲ ಫೈಲ್ | ವಿವರಣೆ |
| --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CHATGPT_WEB_CODEX_CHROME_PATH` | _(ಸ್ವಯಂ-ಪತ್ತೆ)_ | `open-sse/executors/chatgpt-web-codex.ts` | npm, systemd ಮತ್ತು PM2 ಕಾರ್ಯಾಚರಣೆಗಾಗಿ ಸ್ಪಷ್ಟ Chrome/Chromium ಪಥ. |
| `CHROME_PATH` | _(ಸ್ವಯಂ-ಪತ್ತೆ)_ | `open-sse/executors/chatgpt-web-codex.ts` | ಸ್ಪಷ್ಟ Chrome/Chromium ಪಥಕ್ಕಾಗಿ ಹಂಚಿಕೆಯ ಪರ್ಯಾಯ ವ್ಯವಸ್ಥೆ. |
| `CHATGPT_WEB_CODEX_CDP_URL` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/executors/chatgpt-web-codex.ts` | ಆಂತರಿಕ CDP ಅಂತ್ಯಬಿಂದು; Docker ಪೋರ್ಟ್ `9223` ನಲ್ಲಿರುವ ಸೈಡ್ಕಾರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. |
| `CDP_PROXY_TOKEN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `docker/chatgpt-web-codex-browser/cdp-proxy.mjs` | ಹೊಂದಿಸಿದ್ದರೆ, CDP ಪ್ರಾಕ್ಸಿ ಸೈಡ್ಕಾರ್ಗೆ ಮಾಡುವ ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯೂ `X-Omni-Cdp-Token` ಹೆಡರ್ನಲ್ಲಿ ಈ ಮೌಲ್ಯವನ್ನು ಕಳುಹಿಸಬೇಕು (#13679). ಮೌಲ್ಯವಿಲ್ಲದಿದ್ದರೆ ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣವಿಲ್ಲದೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತದೆ — ಆಗ `chatgpt-web-codex-net` Compose ನೆಟ್ವರ್ಕ್ನ ಪ್ರತ್ಯೇಕೀಕರಣ ಮಾತ್ರ ರಕ್ಷಣೆ ನೀಡುತ್ತದೆ. `openssl rand -hex 32` ಬಳಸಿ ರಚಿಸಿ. |
| `CHATGPT_WEB_CODEX_TUNNEL_ID` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/executors/chatgpt-web-codex.ts` | ಸ್ಥಳೀಯ Codex ಟೂಲ್ ಸುತ್ತುಗಳಿಗಾಗಿ ಜಾಗತಿಕ OpenAI ಟನಲ್ ID. |
| `CHATGPT_WEB_CODEX_RUNTIME_KEY` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/executors/chatgpt-web-codex.ts` | ಜಾಗತಿಕ ಟನಲ್ ರನ್ಟೈಮ್ ಕೀ; ಇದನ್ನು ಲಾಗ್ಗಳಲ್ಲಿ ಎಂದಿಗೂ ಪ್ರದರ್ಶಿಸಬೇಡಿ. |
| `CHATGPT_WEB_CODEX_CONNECTOR_NAME` | `OmniRoute Codex v2` | `open-sse/executors/chatgpt-web-codex.ts` | MCP ಬ್ರಿಡ್ಜ್ಗಾಗಿ ಹೊಸದಾಗಿ ರಚಿಸಲಾದ ChatGPT ಕಸ್ಟಮ್ ಕನೆಕ್ಟರ್ನ ನಿಖರ ಹೆಸರು. |
| `CODEX_CHATGPT_WEB_HOME` | `/chatgpt-web-codex` | `open-sse/vendor/codex-chatgpt-web/config.ts` | ಬ್ರೌಸರ್, ಬ್ರೋಕರ್ ಮತ್ತು ಟನಲ್ ಸ್ಥಿತಿಗಾಗಿ ಮೀಸಲಾದ ಡೈರೆಕ್ಟರಿ. |
| `CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS` | `0` | `open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts` | `1` ಆಗಿದ್ದರೆ, ಪ್ರತಿ ಚೆಕ್ಪಾಯಿಂಟ್ನಲ್ಲಿ ಬ್ರೌಸರ್ ರೋಗನಿರ್ಣಯ ಚಿತ್ರಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲಾಗುತ್ತದೆ. |
| `CODEX_CHATGPT_WEB_LAUNCHER` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | ಶಾಶ್ವತ ಲಾಂಚರ್ ಬೈನರಿಗೆ ಐಚ್ಛಿಕ ನಿರಪೇಕ್ಷ ಪಥ. |
| `CODEX_CHATGPT_WEB_BUN` | _(ಸ್ವಯಂ-ಪತ್ತೆ)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | Bun ರನ್ಟೈಮ್ ಬೈನರಿಗೆ ಐಚ್ಛಿಕ ನಿರಪೇಕ್ಷ ಪಥ. |
| `CODEX_WEB_GPT_BUN` | _(ಹೊಂದಿಸಲಾಗಿಲ್ಲ)_ | `open-sse/vendor/codex-chatgpt-web/config.ts` | `CODEX_CHATGPT_WEB_BUN` ಗಾಗಿ ಹಳೆಯ ಪರ್ಯಾಯ ವ್ಯವಸ್ಥೆ; ಹೊಸ ಸೆಟಪ್ಗಳು ಅಂಗೀಕೃತ ಹೆಸರನ್ನು ಬಳಸುತ್ತವೆ. |
---
## 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`-ಪ್ರಕಾರದ ಪೀರ್ ಅನ್ನು ರಚಿಸಿ (`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`) ಹಿಂದೆ ಇರುವ spokesperson (Faro) ಸೇವೆಯ ಮೂಲ 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 ಓವರ್ರೈಡ್ ಈ ಮೌಲ್ಯಕ್ಕಿಂತ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ. |