# Environment Variables Reference (ଓଡ଼ିଆ)
🌐 **Languages:** 🇺🇸 [English](../../../../reference/ENVIRONMENT.md) · 🇪🇹 [am](../../../am/docs/reference/ENVIRONMENT.md) · 🇸🇦 [ar](../../../ar/docs/reference/ENVIRONMENT.md) · 🇦🇿 [az](../../../az/docs/reference/ENVIRONMENT.md) · 🇧🇬 [bg](../../../bg/docs/reference/ENVIRONMENT.md) · 🇧🇩 [bn](../../../bn/docs/reference/ENVIRONMENT.md) · 🇧🇦 [bs](../../../bs/docs/reference/ENVIRONMENT.md) · 🇨🇿 [cs](../../../cs/docs/reference/ENVIRONMENT.md) · 🇩🇰 [da](../../../da/docs/reference/ENVIRONMENT.md) · 🇩🇪 [de](../../../de/docs/reference/ENVIRONMENT.md) · 🇬🇷 [el](../../../el/docs/reference/ENVIRONMENT.md) · 🇪🇸 [es](../../../es/docs/reference/ENVIRONMENT.md) · 🇪🇪 [et](../../../et/docs/reference/ENVIRONMENT.md) · 🇮🇷 [fa](../../../fa/docs/reference/ENVIRONMENT.md) · 🇫🇮 [fi](../../../fi/docs/reference/ENVIRONMENT.md) · 🇫🇷 [fr](../../../fr/docs/reference/ENVIRONMENT.md) · 🇮🇪 [ga](../../../ga/docs/reference/ENVIRONMENT.md) · 🇮🇳 [gu](../../../gu/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ha](../../../ha/docs/reference/ENVIRONMENT.md) · 🇮🇱 [he](../../../he/docs/reference/ENVIRONMENT.md) · 🇮🇳 [hi](../../../hi/docs/reference/ENVIRONMENT.md) · 🇭🇷 [hr](../../../hr/docs/reference/ENVIRONMENT.md) · 🇭🇺 [hu](../../../hu/docs/reference/ENVIRONMENT.md) · 🇦🇲 [hy](../../../hy/docs/reference/ENVIRONMENT.md) · 🇮🇩 [id](../../../id/docs/reference/ENVIRONMENT.md) · 🇳🇬 [ig](../../../ig/docs/reference/ENVIRONMENT.md) · 🇮🇹 [it](../../../it/docs/reference/ENVIRONMENT.md) · 🇯🇵 [ja](../../../ja/docs/reference/ENVIRONMENT.md) · 🇬🇪 [ka](../../../ka/docs/reference/ENVIRONMENT.md) · 🇰🇭 [km](../../../km/docs/reference/ENVIRONMENT.md) · 🇮🇳 [kn](../../../kn/docs/reference/ENVIRONMENT.md) · 🇰🇷 [ko](../../../ko/docs/reference/ENVIRONMENT.md) · 🇱🇹 [lt](../../../lt/docs/reference/ENVIRONMENT.md) · 🇱🇻 [lv](../../../lv/docs/reference/ENVIRONMENT.md) · 🇮🇳 [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) · 🇮🇳 [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 ଦ୍ୱାରା ଚିହ୍ନିତ ପ୍ରତ୍ୟେକ environment variable ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ସନ୍ଦର୍ଭ।
> ଏକ quick-start template ପାଇଁ [`.env.example`](../../.env.example) ଦେଖନ୍ତୁ।
> [!IMPORTANT]
> ଏଠାରେ ଦଲିଲଭୁକ୍ତ ପ୍ରତ୍ୟେକ variable `.env.example`ରେ ମଧ୍ୟ ରହିବା ଆବଶ୍ୟକ, ଏବଂ
> `.env.example`ରେ ଥିବା ପ୍ରତ୍ୟେକ variable ଏଠାରେ ମଧ୍ୟ ରହିବା ଆବଶ୍ୟକ। commit ସମୟରେ ଏବଂ CIରେ `npm run check:env-doc-sync`
> ଏହାକୁ ବାଧ୍ୟତାମୂଳକ କରେ। ଉଦ୍ଦେଶ୍ୟମୂଳକ ଭାବେ କୌଣସି variableକୁ ବାଦ ଦେବା ପାଇଁ, ତାହାକୁ
> `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)
- [ଅଡିଟ୍: ଅପସାରିତ / ଅଚଳ variableଗୁଡ଼ିକ](#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=` (ଖାଲି) ସେଟ୍ କରନ୍ତୁ — ଯେପରି ଏକ ଅନସେଟ୍ ମୂଲ୍ୟ (Docker ଇମେଜର ଡିଫଲ୍ଟ) କରେ। ସଂରକ୍ଷିତ ପାସୱାର୍ଡକୁ ଡ୍ୟାସ୍ବୋର୍ଡ → ସେଟିଂସ୍ → ସୁରକ୍ଷାରେ ବଦଳାନ୍ତୁ, କିମ୍ବା `DATA_DIR`କୁ ସର୍ଭରର ଡାଟା ଡିରେକ୍ଟୋରୀକୁ ସେଟ୍ କରି `omniroute reset-password` (ସୋର୍ସ ଚେକଆଉଟରେ `node bin/reset-password.mjs`) ଚଲାନ୍ତୁ। |
| `OMNIROUTE_WS_BRIDGE_SECRET` | **ହଁ** (ପ୍ରଡକ୍ସନ୍) | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/app/api/internal/codex-responses-ws/route.ts` | ଆଭ୍ୟନ୍ତରୀଣ Codex 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) ପାଇଁ ସ୍ପଷ୍ଟ ସର୍ଭିସ୍-ୱର୍କର୍ କ୍ୟାଶ୍-ବଷ୍ଟିଂ ID; ରିଜୋଲ୍ୟୁସନ୍ ଶୃଙ୍ଖଳାରେ ପ୍ରଥମ। |
| `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` | ବିଶ୍ୱସ୍ତ peer-IP ଷ୍ଟାମ୍ପ OmniRouteର ନିଜସ୍ୱ HTTP ସର୍ଭର୍ (`scripts/dev/peer-stamp.mjs`)ରୁ ଆସିଥିବା ପ୍ରମାଣ କରୁଥିବା ପ୍ରତି-ପ୍ରକ୍ରିୟା ଗୁପ୍ତ ମୂଲ୍ୟ। ଷ୍ଟାମ୍ପରେ ଏହି ଟୋକନ୍ ଥିଲେ ମାତ୍ର authz ମିଡଲ୍ୱେର୍ ଅନୁରୋଧର ସ୍ଥାନୀୟତାକୁ (LOCAL_ONLY ରୁଟ୍ଗୁଡ଼ିକର loopback/LAN ଗେଟିଂ) ବିଶ୍ୱାସ କରେ। ପ୍ରତ୍ୟେକ ବୁଟ୍ରେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଜେନେରେଟ୍ ହୁଏ — ଏହାକୁ ସେଟ୍ ନକରି ଛାଡ଼ନ୍ତୁ; କେବଳ ଷ୍ଟାମ୍ପ ସେୟାର୍ କରିବା ଆବଶ୍ୟକ ଥିବା ମଲ୍ଟି-ପ୍ରୋସେସ୍ ସେଟ୍ଅପ୍ ପାଇଁ ଏହାକୁ ସ୍ଥିର କରନ୍ତୁ। |
| `OMNIROUTE_TRUSTED_PROXIES` | ନା | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `scripts/dev/peer-stamp.mjs` | ଯେଉଁ ରିଭର୍ସ ପ୍ରକ୍ସିଗୁଡ଼ିକର `X-Forwarded-For` / `X-Real-IP`କୁ IP ଅନୁମତି/ପ୍ରତ୍ୟାଖ୍ୟାନ ତାଲିକା ବିଶ୍ୱାସ କରିପାରିବ, ସେଗୁଡ଼ିକର କମା-ଦ୍ୱାରା ପୃଥକ କରାଯାଇଥିବା IP କିମ୍ବା CIDR ପରିସର; ଏହା loopback, ବ୍ୟକ୍ତିଗତ-ନେଟ୍ୱର୍କ ଠିକଣା ଏବଂ Cloudflare ଏଜ୍ଗୁଡ଼ିକ ସହିତ ଅତିରିକ୍ତ ଭାବେ ପ୍ରୟୋଗ ହୁଏ, ଯେଉଁଗୁଡ଼ିକୁ ସର୍ବଦା ବିଶ୍ୱାସ କରାଯାଏ। ଅନ୍ୟ କୌଣସି ସାର୍ବଜନୀନ ଠିକଣାରେ ଥିବା ପ୍ରକ୍ସି ପାଇଁ ମାତ୍ର ଏହା ଆବଶ୍ୟକ; ନଚେତ୍ ଫିଲ୍ଟର୍ ସେହି ପ୍ରକ୍ସିର ନିଜସ୍ୱ ଠିକଣାକୁ ଯାଞ୍ଚ କରେ। |
### ଜେନେରେସନ୍ କମାଣ୍ଡଗୁଡ଼ିକ
```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`କୁ ବାଦ ଦେଇଛି, କିନ୍ତୁ push କରିବା ପୂର୍ବରୁ ଯାଞ୍ଚ କରନ୍ତୁ।
---
## 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` | ପରୀକ୍ଷା/eval 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` | ପ୍ୟାକ୍-ଆର୍ଟିଫ୍ୟାକ୍ଟ ପ୍ରୋଭେନାନ୍ସ ଗେଟ୍ ଯେଉଁ ref ସହିତ ବିଲ୍ଡ୍ SHAକୁ ଯାଞ୍ଚ କରେ (#10427)। |
| `OMNIROUTE_ALLOW_CANARY_BUILD` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `scripts/build/buildProvenance.ts` | ଯେଉଁ ବିଲ୍ଡ୍ର SHA ରିଲିଜ୍ ଲାଇନ୍ରେ ନାହିଁ, ତାହାକୁ ପ୍ୟାକ୍ କରିବାକୁ ଅନୁମତି ଦେବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ; ଏହା ଗେଟ୍କୁ ବିଫଳ କରିବା ପରିବର୍ତ୍ତେ ବିଲ୍ଡ୍ଟିକୁ ଏକ ଉଦ୍ଦେଶ୍ୟମୂଳକ କ୍ୟାନେରି ଭାବରେ ରେକର୍ଡ କରେ (#10427)। |
| `OMNIROUTE_SMOKE_API_KEY` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `scripts/ops/deploy-canary.mjs` | କ୍ୟାନେରି-ଡିପ୍ଲୟ ସ୍ମୋକ୍ ପ୍ରୋବ୍ ପାଇଁ API କୀ, ଯାହା `/v1/chat/completions`ରେ `Authorization: Bearer` ଭାବରେ ପଠାଯାଏ। ଏହା କେବଳ ଡିପ୍ଲୟ ସ୍କ୍ରିପ୍ଟ୍ (#10429) ଦ୍ୱାରା ବ୍ୟବହୃତ ହୁଏ, ସର୍ଭର୍ ଦ୍ୱାରା କେବେ ନୁହେଁ। ଏହା ଅପ୍ଟ୍-ଇନ୍ CLI ସ୍ମୋକ୍ ହାର୍ନେସ୍ର `OMNIROUTE_SMOKE_*` ଭେରିଏବଲ୍ଗୁଡ଼ିକ (`RUN_CLI_SMOKE=1`, `tests/integration/upstream-cli-smoke.int.test.ts`ରେ `OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS`) ସହିତ ସମ୍ପର୍କିତ ନୁହେଁ — [CLI ଇଣ୍ଟିଗ୍ରେସନ୍ଗୁଡ଼ିକ → ପ୍ରକୃତ ସ୍ମୋକ୍ ସ୍ୱିପ୍](../guides/CLI-INTEGRATIONS.md) ଦେଖନ୍ତୁ। |
| `OMNIROUTE_BUILDING` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/lib/buildPhase.ts` | ବିଲ୍ଡ୍-ଫେଜ୍ ସିଗ୍ନାଲ୍ (#10060): `scripts/build/build-next-isolated.mjs` ଦ୍ୱାରା `1`କୁ ସେଟ୍ କରାଯାଏ ଏବଂ ସୃଷ୍ଟି ହୋଇଥିବା ପ୍ରତ୍ୟେକ ବିଲ୍ଡ୍ ୱର୍କର୍ ଏହାକୁ ଇନ୍ହେରିଟ୍ କରେ, ଯାହାଦ୍ୱାରା DB ସ୍ତର ନେଟିଭ୍ better-sqlite3 ଆଡଅନ୍ ଲୋଡ୍ କରିବା ପରିବର୍ତ୍ତେ ଏକ no-op ଷ୍ଟବ୍ ଫେରାଏ (ଏହି ଆଡଅନ୍ ୱର୍କର୍କୁ ପ୍ରସ୍ଥାନ ସମୟରେ ବନ୍ଦ କରିଦିଏ)। ଚାଲୁଥିବା ସର୍ଭର୍ ପାଇଁ ଏହା କେବେ ସେଟ୍ କରାଯାଏ ନାହିଁ। |
| `OMNIROUTE_SKIP_NATIVE_DEP_CHECK` | `0` | `scripts/check/check-native-deps.mjs` | ବିଶେଷ ପ୍ରକାରର ଭେଣ୍ଡର୍ଡ୍ ଟ୍ରି ପାଇଁ ଇଚ୍ଛାଧୀନ ନେଟିଭ୍-ଡିପେଣ୍ଡେନ୍ସି ପ୍ରିବିଲ୍ଡ୍ ଯାଞ୍ଚକୁ ଏଡ଼ାଇବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ। ଏହା ଏକ ଅନୁପସ୍ଥିତ ଡିପେଣ୍ଡେନ୍ସିକୁ ବିଲ୍ଡ୍ଯୋଗ୍ୟ କରେ ନାହିଁ; ନେଟିଭ୍ ଡିପେଣ୍ଡେନ୍ସିଗୁଡ଼ିକ ଅନ୍ୟ ମାଧ୍ୟମରେ ଯୋଗାଇ ଦିଆଯାଉଥିଲେ ମାତ୍ର ଏହା ବ୍ୟବହାର କରନ୍ତୁ। |
| `OMNIROUTE_DATA_DIR` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `open-sse/executors/promptql/threadSticky.ts` | `DATA_DIR` ପାଇଁ **ଫଲ୍ବ୍ୟାକ୍ ଉପନାମ**, ଯାହା କେବଳ `DATA_DIR` ସେଟ୍ ହୋଇନଥିବା ବେଳେ ଯାଞ୍ଚ କରାଯାଏ। PromptQL ଏକ୍ଜିକ୍ୟୁଟର୍ର ଅନ୍-ଡିସ୍କ୍ ଥ୍ରେଡ୍-ଷ୍ଟିକି ସେସନ୍ କ୍ୟାଶ୍ (`
/promptql-thread-sessions.json`) ଚିହ୍ନଟ କରିବାକୁ ବ୍ୟବହୃତ ହୁଏ; କୌଣସି ଭେରିଏବଲ୍ ସେଟ୍ ହୋଇନଥିଲେ, କ୍ୟାଶ୍ କେବଳ ମେମୋରୀରେ ରହେ (ପୁନଃପ୍ରାରମ୍ଭ ପରେ ସ୍ଥାୟୀ ରହେ ନାହିଁ)। |
| `OMNIROUTE_PLUGINS_DIR` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/lib/plugins/scanner.ts` | **ରନ୍ଟାଇମ୍ ପ୍ଲଗ୍ଇନ୍ ସ୍କାନର୍** ପଢ଼ୁଥିବା ଡିରେକ୍ଟୋରୀ — ଏବଂ ପ୍ଲଗ୍ଇନ୍ ମ୍ୟାନେଜର୍ ଇନ୍ଷ୍ଟଲ୍ କରୁଥିବା ରୁଟ୍ — ଯାହା ହୋମ୍ରୁ ନିର୍ଦ୍ଧାରିତ ଡିଫଲ୍ଟକୁ ଓଭରରାଇଡ୍ କରେ (#11827)। କେବଳ ସ୍କାନ୍ ପାଥ୍କୁ ସ୍ଥାନାନ୍ତର କରିବା ପାଇଁ HOMEକୁ ବଦଳାଇବା ପରିବର୍ତ୍ତେ, Docker/K8sରେ ଥିବା bind-mounted ପ୍ଲଗ୍ଇନ୍ ଟ୍ରିକୁ ଏହା ସୂଚିତ କରନ୍ତୁ (HOME ଅନ୍ୟ ସମସ୍ତ ହୋମ୍-ସାପେକ୍ଷ ଆଚରଣକୁ ମଧ୍ୟ ନିୟନ୍ତ୍ରଣ କରେ)। ସେଟ୍ ନଥିଲେ = `~/.omniroute/plugins`, କିମ୍ବା ପ୍ରୋସେସ୍ କୌଣସି home ଏକ୍ସପୋର୍ଟ୍ କରୁନଥିଲେ `/tmp/.omniroute/plugins` — ଏହି ଭେରିଏବଲ୍ ସେହି ନିରବ ଅନାବିଷ୍କାର ସମସ୍ୟାକୁ ଦୂର କରେ। ସମାଧାନ ହୋଇଥିବା ଡିରେକ୍ଟୋରୀକୁ ଷ୍ଟାର୍ଟଅପ୍ ସମୟରେ ଚୟନିତ ଇନ୍ପୁଟ୍ ସହିତ `scanner.dir_resolved` ଭାବରେ ଥରେ ଲଗ୍ କରାଯାଏ। କେବଳ ସର୍ଭର୍-ସାଇଡ୍: CLI କମାଣ୍ଡ୍ ପ୍ଲଗ୍ଇନ୍ଗୁଡ଼ିକ ସେମାନଙ୍କର ନିଜସ୍ୱ `OMNIROUTE_PLUGIN_PATH` (ବିଭାଗ 9) ବ୍ୟବହାର କରନ୍ତି। |
| `STORAGE_ENCRYPTION_KEY` | _(ଖାଲି = ଅକ୍ଷମ)_ | `src/lib/db/encryption.ts` | ସଂରକ୍ଷିତ ଅବସ୍ଥାରେ ସମ୍ପୂର୍ଣ୍ଣ SQLite ଡାଟାବେସ୍ ଏନ୍କ୍ରିପ୍ସନ୍ ପାଇଁ AES କୀ। `openssl rand -hex 32` ସହିତ ସୃଷ୍ଟି କରନ୍ତୁ। |
| `STORAGE_ENCRYPTION_KEY_VERSION` | `v1` | `scripts/build/bootstrap-env.mjs`, `electron/main.js` | ଏନ୍କ୍ରିପ୍ସନ୍ କୀ ପାଇଁ ସଂସ୍କରଣ ଲେବଲ୍। ପୁରୁଣା ବ୍ୟାକଅପ୍ଗୁଡ଼ିକର ଡିକ୍ରିପ୍ସନ୍ ସମର୍ଥନ କରିବାକୁ କୀ ରୋଟେସନ୍ କରିବା ସମୟରେ ଏହାକୁ ବୃଦ୍ଧି କରନ୍ତୁ। |
| `DISABLE_SQLITE_AUTO_BACKUP` | `false` | `src/lib/db/backup.ts` | `true` ହେଲେ, ନିୟମିତ/ଲେଖିବା-ପୂର୍ବ 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_checkpoint(RESTART)` ଚଲାନ୍ତୁ, ଯାହାଦ୍ୱାରା ମ୍ୟାପ୍ ହୋଇଥିବା wal-indexକୁ ପୁନଃଲେଖନ ନକରି WAL ପୁଣି ଆରମ୍ଭ ହୁଏ। ଲାଇଭ୍ ଟ୍ରଙ୍କେଟ୍-ମୋଡ୍ ଚେକ୍ପଏଣ୍ଟଗୁଡ଼ିକୁ ଅପସାରଣ କରାଯାଇଛି (`OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS` ଧାଡ଼ି ଦେଖନ୍ତୁ)। |
| `OMNIROUTE_PRESSURE_SELF_RESTART` | `false` | `open-sse/utils/resourcePressure.ts` | ଗୁରୁତର ସମ୍ବଳ ଚାପ `OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS` ପର୍ଯ୍ୟନ୍ତ ଜାରି ରହିବା ପରେ ପ୍ରକ୍ରିୟାରୁ ବାହାରିବା ପାଇଁ `1`/`true`/`yes`/`on` ସେଟ୍ କରନ୍ତୁ; ଏହା ଅନିର୍ଦ୍ଦିଷ୍ଟ କାଳ ପର୍ଯ୍ୟନ୍ତ 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` → Runtime ଦେଖନ୍ତୁ। |
| `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 ଇନଷ୍ଟଲ୍ ଟ୍ରି ସହିତ ଟାର୍ବଲ୍) ଆବଶ୍ୟକ, ତେଣୁ ଏହା ଛୋଟ 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 କୋଟା କମାଣ୍ଡଗୁଡ଼ିକରୁ stderrକୁ ପ୍ରତି-ଅନୁରୋଧ ସମୟ ନିର୍ଣ୍ଣୟ ଡାଇଗ୍ନୋଷ୍ଟିକ୍ସ (`[omniroute] GET completed in Nms`) ପ୍ରିଣ୍ଟ କରିବା ପାଇଁ `1`ରେ ସେଟ୍ କରନ୍ତୁ। |
| `OMNIROUTE_HEALTHCHECK_PATH` | _(ସ୍ୱୟଂଚାଳିତ)_ | `scripts/dev/healthcheck.mjs` | କଣ୍ଟେନର୍ ସ୍ୱାସ୍ଥ୍ୟ ଯାଞ୍ଚ ଦ୍ୱାରା ପ୍ରୋବ୍ କରାଯାଉଥିବା ସ୍ପଷ୍ଟ ପଥ। ସେଟ୍ ହୋଇନଥିଲେ, ପ୍ରୋବ୍ ଏହାକୁ `OMNIROUTE_BASE_PATH`ରୁ ନିର୍ଣ୍ଣୟ କରେ; ଏହାକୁ ସେଟ୍ କଲେ ଗଭୀର ନିରୀକ୍ଷଣ ଏଣ୍ଡପଏଣ୍ଟ ପୁଣି ସକ୍ରିୟ ହୁଏ। |
| `OMNIROUTE_DEBUG_COMPLETION` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/commands/completion.mjs` | CLI ସେଲ୍-ସମ୍ପୂର୍ଣ୍ଣତା କ୍ୟାଶ୍ ପଥଗୁଡ଼ିକରୁ (ପଢ଼ିବା/ରିଫ୍ରେଶ୍/ଲେଖିବା) `[omniroute completion]` ଡାଇଗ୍ନୋଷ୍ଟିକ୍ସ ନିର୍ଗତ କରିବା ପାଇଁ ଯେକୌଣସି ଅଣ-ଖାଲି ମୂଲ୍ୟରେ ସେଟ୍ କରନ୍ତୁ। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ — ସେହି କ୍ୟାଶ୍ଗୁଡ଼ିକ ନିରବରେ ବିଫଳ ହୁଏ, ଯାହାଫଳରେ ଅନୁପସ୍ଥିତ/ଦୂଷିତ କ୍ୟାଶ୍ କେବେବି ଟ୍ୟାବ୍-ସମ୍ପୂର୍ଣ୍ଣତାକୁ ବାଧା ଦିଏ ନାହିଁ। |
| `BATCH_RETRY_DURATION_MS` | `86400000` (24h) | `open-sse/services/batchProcessor.ts` | ବ୍ୟକ୍ତିଗତ ବ୍ୟାଚ୍ ଆଇଟମ୍ଗୁଡ଼ିକ ପାଇଁ ସର୍ବାଧିକ ପୁନଃପ୍ରୟାସ ୱିଣ୍ଡୋ (ms)। ଏହି ଅବଧି ଅତିକ୍ରମ କରୁଥିବା ଆଇଟମ୍ଗୁଡ଼ିକୁ ବିଫଳ ଭାବେ ଚିହ୍ନିତ କରାଯାଏ। |
| `BATCH_BACKOFF_BASE_MS` | `5000` | `open-sse/services/batchProcessor.ts` | ବ୍ୟାଚ୍ ଆଇଟମ୍ ପୁନଃପ୍ରୟାସରେ ଏକ୍ସପୋନେନ୍ସିଆଲ୍ ବ୍ୟାକଅଫ୍ ପାଇଁ ମୂଳ ବିଳମ୍ବ (ms)। |
| `BATCH_BACKOFF_MAX_MS` | `3600000` (1h) | `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 ଉପପଥ (Next.js `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` | କମା ଦ୍ୱାରା ପୃଥକ କରାଯାଇଥିବା OmniRoute ମୂଳ URLଗୁଡ଼ିକ, ଯେଉଁଗୁଡ଼ିକ `X-OmniRoute-Peer-Trace` ଗ୍ରହଣ କରିପାରନ୍ତି। କେବଳ ସ୍ପଷ୍ଟ ଭାବେ ଅନୁମତି-ତାଲିକାଭୁକ୍ତ ଅପ୍ଷ୍ଟ୍ରିମ୍ 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 ପ୍ରଡକ୍ସନ୍ ମୋଡ୍ରେ Dashboard ପାଇଁ ହୋଷ୍ଟ ପାର୍ଶ୍ୱରେ ପ୍ରକାଶିତ ପୋର୍ଟ। |
| `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 ଖୋଲିବାକୁ ଅନୁମତିପ୍ରାପ୍ତ, କମା ଦ୍ୱାରା ପୃଥକ ଅତିରିକ୍ତ ଅରିଜିନ୍ଗୁଡ଼ିକ। ଲୁପ୍ବ୍ୟାକ୍ Dashboard ଅରିଜିନ୍ଗୁଡ଼ିକୁ ଡିଫଲ୍ଟ ଭାବେ ପୂର୍ବରୁ ଅନୁମତି ଦିଆଯାଇଛି। |
| `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` | ଲାଇଭ୍ Dashboard 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`ରେ ସେଟ୍ କରନ୍ତୁ (ଡିଫଲ୍ଟ ଭାବେ ସକ୍ଷମ ଏବଂ ଲୁପ୍ବ୍ୟାକ୍ରେ ବାଇଣ୍ଡ୍ ହୋଇଥାଏ)। ଏହା ଏକ CI/ହାର୍ନେସ୍ ଟଗଲ୍, ଯାହା ସ୍ୱତନ୍ତ୍ର ଲାଇଭ୍ WebSocket ସହାୟକ ସ୍କ୍ରିପ୍ଟକୁ ଅକ୍ଷମ କରେ। |
| `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)**: `Dockerfile`ରେ `ARG OMNIROUTE_USE_TURBOPACK=0` ଘୋଷିତ ହୋଇଛି, ଯାହାଦ୍ୱାରା ଏକ ସାଧାରଣ `docker build .` (Railway ଏବଂ ଅନ୍ୟ ଏକ-କ୍ଲିକ୍ ହୋଷ୍ଟ, ଆଡ୍-ହକ୍ ସ୍ୱୟଂ-ହୋଷ୍ଟର୍) ମେମୋରି-ସୀମିତ ବିଲ୍ଡର୍ରେ OOM ଯୋଗୁଁ ବନ୍ଦ ହେବ ନାହିଁ; 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ରେ ଥରେ କମ୍ପ୍ଲିସନ୍ସ ସର୍ଫେସ୍ର ନମୁନା ନିଏ। ଅଜ୍ଞାତ କଲର୍ମାନେ କେବେବି ପ୍ରୋବ୍କୁ ଟ୍ରିଗର୍ କରନ୍ତି ନାହିଁ। |
| `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` | ଯେଉଁ API କିଗୁଡ଼ିକର `rate_limits` କଲମ୍ null ଅଟେ, ସେଗୁଡ଼ିକ ପାଇଁ ପ୍ରୟୋଗ ହେଉଥିବା ପ୍ରତିଦିନର ଫଲ୍ବ୍ୟାକ୍ ଅନୁରୋଧ ବଜେଟ୍। ସେଟ୍ ହୋଇନଥିଲେ କିମ୍ବା ଖାଲି ଥିଲେ: କୌଣସି ଅନ୍ତର୍ନିହିତ ସୀମା ନାହିଁ (#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-ଫ୍ୟାନ୍ଆଉଟ୍:** ଏହି ପୁରୁଣା ଅନୁରୋଧ-ଗଣନା ସୀମା ବର୍ତ୍ତମାନ କେବଳ ସ୍ପଷ୍ଟ ଭାବରେ ସେଟ୍ କରାଯାଇଥିଲେ ପ୍ରଯୁଜ୍ୟ ହୁଏ। ଏହାକୁ ସେଟ୍ ନକରି ରଖିଲେ (ଡିଫଲ୍ଟ), ଭାରୀ ଚାଟ୍ ଅନୁମୋଦନ ପରିବର୍ତ୍ତେ `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-ଫ୍ୟାନ୍ଆଉଟ୍:** ସ୍ୱୟଂ-ବ୍ୟୁତ୍ପନ୍ନ ଇନଜେସ୍ଟ୍ ବାଇଟ୍ ବଜେଟ୍ ପାଇଁ ଓଭର୍ରାଇଡ୍ (ଅଧିକ କଠୋର 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 ନେଟୱର୍କରେ ଥିବା ଏକ ରିର୍ୟାଙ୍କର୍, TEI କିମ୍ବା ଅଡିଓ ସାଇଡ୍କାର୍ର 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` ମଧ୍ୟ ଗ୍ରହଣ କରାଯାଏ; ସମାନ କୀ ଥିବା ଡ୍ୟାସ୍ବୋର୍ଡ ବୈଶିଷ୍ଟ୍ୟ ଫ୍ଲାଗ୍କୁ ପ୍ରାଧାନ୍ୟ ଦିଆଯାଏ। (#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 ଫାଇଲ୍ର ପଥ, ଯେଉଁ ଡିପ୍ଲୟମେଣ୍ଟଗୁଡ଼ିକ ଇନ୍ଲାଇନ୍ env var ପରିବର୍ତ୍ତେ ଫାଇଲ୍କୁ ପସନ୍ଦ କରନ୍ତି ସେମାନଙ୍କ ପାଇଁ। ଏହି ଦୁଇଟି ମଧ୍ୟରୁ ଯେକୌଣସି ଗୋଟିଏ ସ୍ୱୟଂ-ହୋଷ୍ଟେଡ୍ ଏଣ୍ଟ୍ରିକୁ ସକ୍ରିୟ କରେ। |
| `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` | ଇନ୍ଲାଇନ୍ env var ବଦଳରେ ଫାଇଲ୍କୁ ପସନ୍ଦ କରୁଥିବା ଡିପ୍ଲୟମେଣ୍ଟଗୁଡ଼ିକ ପାଇଁ, `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` | Nadir ନିଷ୍ପତ୍ତି APIର ମୂଳ ଉତ୍ସ, ଯାହା କମ୍ବୋର ନିଜସ୍ୱ `config.nadir.baseUrl` ସେଟ୍ ହୋଇନଥିଲେ ବ୍ୟବହୃତ ହୁଏ। ଏହା କେବଳ ଏକ ସ୍ୱୟଂ-ହୋଷ୍ଟେଡ୍ 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` | ସାଇଡ୍କାର୍ କ୍ଲାଏଣ୍ଟମାନଙ୍କୁ ଘୋଷିତ ସମ୍ପୂର୍ଣ୍ଣ provider plugin manifest URL। ସେଟ୍ ହୋଇନଥିଲେ, OmniRoute ଅନୁରୋଧ ଅରିଜିନ୍ କିମ୍ବା HOST/PORTରୁ `/api/v1/provider-plugin-manifest` ନିର୍ଦ୍ଧାରଣ କରେ। |
| `OMNIROUTE_PUBLIC_PROTOCOL` | `http` | `open-sse/config/providerPluginManifestUrl.ts` | କୌଣସି ଅନୁରୋଧ ଅରିଜିନ୍ ବିନା HOST/PORTରୁ provider plugin manifest 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` | Usage ପୃଷ୍ଠା ଦ୍ୱାରା ବ୍ୟବହୃତ CrofAI କୋଟା ଲୁକ୍ଅପ୍ ଏଣ୍ଡପଏଣ୍ଟ। ରିଲେ / ପରୀକ୍ଷଣ ଫିକ୍ସଚର୍ଗୁଡ଼ିକ ପାଇଁ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ। |
| `OMNIROUTE_CLINEPASS_USAGE_URL` | `https://api.cline.bot/api/v1/users/me/plan/usage-limits` | `open-sse/services/usage/clinepass.ts` | Usage ପୃଷ୍ଠା ଦ୍ୱାରା ବ୍ୟବହୃତ ClinePass ୫-ଘଣ୍ଟିଆ / ସାପ୍ତାହିକ / ମାସିକ କୋଟା ଏଣ୍ଡପଏଣ୍ଟ। ରିଲେ / ପରୀକ୍ଷଣ ଫିକ୍ସଚର୍ଗୁଡ଼ିକ ପାଇଁ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ। |
| `OMNIROUTE_OPENCODE_QUOTA_URL` | `https://opencode.ai/zen/go/v1/usage` | `open-sse/services/opencodeQuotaFetcher.ts` | Usage ପୃଷ୍ଠା ଦ୍ୱାରା ବ୍ୟବହୃତ ଆଧିକାରିକ API-key-ପ୍ରମାଣୀକୃତ 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` କୁକି env var। ସମ୍ବେଦନଶୀଳ; ଏକାଧିକ ଆକାଉଣ୍ଟ ବିନ୍ୟାସିତ ଥିଲେ ପ୍ରତି-ସଂଯୋଗ Dashboard ଫିଲ୍ଡକୁ ପ୍ରାଥମିକତା ଦିଅନ୍ତୁ। |
| `OMNIROUTE_OLLAMA_USAGE_COOKIE` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `open-sse/services/usage.ts` | ସଂକ୍ଷିପ୍ତ ଉପନାମଗୁଡ଼ିକ ପୂର୍ବରୁ ବ୍ୟବହୃତ ବିକଳ୍ପ Ollama Cloud `__Secure-session` କୁକି env var। ସମ୍ବେଦନଶୀଳ; ଏକାଧିକ ଆକାଉଣ୍ଟ ବିନ୍ୟାସିତ ଥିଲେ ପ୍ରତି-ସଂଯୋଗ 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 env varsଗୁଡ଼ିକୁ ପ୍ରଥମେ ବିଶ୍ୱାସ କରାଯାଏ; `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/1.1 ବାଧ୍ୟତାମୂଳକ କରିବା ପାଇଁ ଏହାକୁ `false`, `0`, `no`, କିମ୍ବା
`off`ରେ ସେଟ୍ କରନ୍ତୁ: ସିଧାସଳଖ ଏଗ୍ରେସ୍, HTTP(S)/SOCKS ପ୍ରକ୍ସି, ରିଲେ ଏବଂ
ସେଗୁଡ଼ିକର ନୂତନ-ସକେଟ୍ ପୁନଃପ୍ରୟାସ। ଏହା 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` | ପ୍ରକ୍ସି ଇଗ୍ରେସ୍ ପ୍ରୋବ୍ଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ echo-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` (ଡିଫଲ୍ଟ) ଥିବାବେଳେ, ଯେଉଁ ଅନୁରୋଧର ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରକ୍ସି ରିଜଲ୍ଭ ହେବାରେ ବିଫଳ ହୁଏ, ତାହାକୁ ସିଧାସଳଖ ସଂଯୋଗକୁ ଫେରାଇବା ପରିବର୍ତ୍ତେ **ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଏ (fail-closed)** — ଏହା ପ୍ରକୃତ 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):** NVIDIAର API-key ବୈଧତା ଯାଞ୍ଚ ଏଣ୍ଡପଏଣ୍ଟ
> ଗ୍ଲୋବାଲ୍ ପ୍ରକ୍ସି/TLS-ପ୍ୟାଚ୍କୃତ fetch ମାଧ୍ୟମରେ ରୁଟ୍ କରାଗଲେ ଅଟକିଯାଏ (undici ଡିସ୍ପାଚର୍ → 504)।
> `src/lib/providers/validation.ts::directHttpsRequest()` ଉଦ୍ଦେଶ୍ୟମୂଳକ ଭାବେ
> `safeOutboundFetch({ bypassProxyPatch: true })` ବ୍ୟବହାର କରି ସେହି ଗୋଟିଏ ବୈଧତା ଯାଞ୍ଚ କଲ୍ ପାଇଁ ପ୍ରକ୍ସି ପ୍ୟାଚ୍କୁ ବାଇପାସ୍ କରେ।
> ଏହା ଏକ ଡକ୍ୟୁମେଣ୍ଟ କରାଯାଇଥିବା, ସୀମିତ-ପରିସରର ବ୍ୟତିକ୍ରମ — ଏହା ଚାଟ୍/ବ୍ୟବହାର ଇଗ୍ରେସ୍କୁ **ପ୍ରଭାବିତ କରେ ନାହିଁ**।
> ବାଇପାସ୍ର ପରିସର `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`) ପଢ଼ିବା ପାଇଁ ହୋମ୍ ଡିରେକ୍ଟୋରିକୁ ଓଭରରାଇଡ୍ କରେ। ଏହା ନିଶ୍ଚିତ ଭାବେ ଏକ ସମ୍ପୂର୍ଣ୍ଣ ପଥ ଏବଂ ପ୍ରୋସେସ୍ ହୋମ୍ ଭିତରେ ଥିବା ଆବଶ୍ୟକ — **କିମ୍ବା**, କଣ୍ଟେନର୍ରେ ଏକ ବାଇଣ୍ଡ୍-ମାଉଣ୍ଟ କରାଯାଇଥିବା ପଥ (ଏହିପରି `/host-home` କାମ କରେ)। ଅନ୍ୟ ସମସ୍ତ କ୍ଷେତ୍ରରେ ହୋମ୍ ଡିରେକ୍ଟୋରି ବ୍ୟବହୃତ ହୁଏ। |
| `CLI_ALLOW_CONFIG_WRITES` | `true` | `src/shared/services/cliRuntime.ts` | OmniRouteକୁ CLI କନଫିଗ୍ ଫାଇଲ୍ଗୁଡ଼ିକ (ଟୋକେନ୍ ରିଫ୍ରେଶ୍, ସେସନ୍ ଡାଟା) ଲେଖିବାକୁ ଅନୁମତି ଦିଏ। ପ୍ରତ୍ୟେକ 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` | Hermes Agent ହୋମ୍ ଡିରେକ୍ଟୋରୀ, ଯେଉଁଠାରେ OmniRoute Hermes CLI କନଫିଗ୍ ପଢ଼େ/ଲେଖେ। 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` କେବଳ ସେତେବେଳେ ପ୍ରଭାବୀ ହୁଏ, ଯେତେବେଳେ ପଥଟି ପ୍ରକୃତରେ ହୋଷ୍ଟରୁ bind-mount କରାଯାଇଥାଏ —
ଏହାକୁ `~/.codex:/host-home/.codex:rw` ପରି mount ସହିତ ବ୍ୟବହାର କରନ୍ତୁ (`docker-compose.yml` ରେ ଥିବା
`host` ପ୍ରୋଫାଇଲ୍ ଦେଖନ୍ତୁ)। କଣ୍ଟେନର୍ ବ୍ୟବହାରକାରୀଙ୍କ home ଭିତରେ ନଥିବା କିମ୍ବା bind mount ହୋଇନଥିବା
ପଥକୁ ଅଣଦେଖା କରାଯାଏ, କାରଣ ସେଠାରେ ଲେଖାଯାଇଥିବା ତଥ୍ୟ କଣ୍ଟେନର୍ ପୁନଃସୃଷ୍ଟି ହେଲେ
ବିଲୋପ ହୋଇଯିବ।
ଇମେଜ୍ଟି `USER node` ଭାବେ ଚାଲେ, ତେଣୁ mount ହୋଇନଥିବା `/root` ଏକ ବୈଧ
override **ନୁହେଁ**।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ---------------------------------------- | -------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_CONTAINER` | _(ସ୍ୱୟଂଚାଳିତ)_ | `src/shared/utils/containerEnv.ts` | କଣ୍ଟେନର୍ ଚିହ୍ନଟକୁ ବଳପୂର୍ବକ ସକ୍ରିୟ (`1`/`true`) କିମ୍ବା ନିଷ୍କ୍ରିୟ (`0`/`false`) କରନ୍ତୁ। କେବଳ ସ୍ୱୟଂଚାଳିତ ଚିହ୍ନଟ ଯେଉଁ runtimeଗୁଡ଼ିକୁ ଚିହ୍ନଟ କରିପାରେ ନାହିଁ, ସେଥିପାଇଁ ଏହା ଆବଶ୍ୟକ। |
| `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE` | `false` | `src/shared/services/cliRuntime.ts` | ଯେକୌଣସି ପରିସ୍ଥିତିରେ CLI ଟୁଲ୍ର configକୁ mount ହୋଇନଥିବା କଣ୍ଟେନର୍ ପଥରେ ଲେଖିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ଏହାର CLI ସମତୁଲ ହେଉଛି `--allow-container-write`। |
### CLI ବାଇନାରି (`omniroute`) ସହାୟକଗୁଡ଼ିକ
ଏହି ଭେରିଏବଲ୍ଗୁଡ଼ିକ `omniroute` CLI ବାଇନାରିର ନିଜସ୍ୱ ଆଚରଣକୁ ସମଯୋଜନ କରନ୍ତି (ଉପରୋକ୍ତ sidecar
ଚିହ୍ନଟକୁ ନୁହେଁ)।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ------------------------------------- | --------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_LANG` | _(ସିଷ୍ଟମ୍)_ | `bin/cli/i18n.mjs` | CLI ଆଉଟପୁଟ୍ର ଭାଷାକୁ ବାଧ୍ୟତାମୂଳକ ଭାବେ ସେଟ୍ କରନ୍ତୁ। BCP-47 locale (ଯଥା `en`, `pt-BR`)। ସିଷ୍ଟମ୍ locale env vars (LC_ALL, LC_MESSAGES)କୁ override କରେ। |
| `OMNIROUTE_SHOW_LOG` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/runtime/processSupervisor.mjs` | supervised modeରେ ସର୍ଭର୍ stdout/stderrକୁ ଟର୍ମିନାଲ୍କୁ ପଠାଇବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ। `omniroute serve` ର `--log` flag ସହିତ ସମତୁଲ। |
| `OMNIROUTE_CLI_TOKEN` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/api.mjs` | `x-omniroute-cli-token` header ଭାବେ ଅନ୍ତଃକ୍ଷେପ କରାଯାଇଥିବା machine-auth token। task 8.12ରେ ସ୍ୱୟଂଚାଳିତ ଭାବେ ସୃଷ୍ଟି ହୁଏ। |
| `GEMINI_CLI_HOME` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/commands/setup-gemini.mjs` | ସ୍ଥାୟୀ Gemini home root; ଏକକାଳୀନ run ଏକ ଅସ୍ଥାୟୀ ପୃଥକ home ବ୍ୟବହାର କରେ। |
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | signal ପ୍ରାପ୍ତ CLI childକୁ ବଳପୂର୍ବକ ବନ୍ଦ କରିବା ପୂର୍ବରୁ ମିଲିସେକେଣ୍ଡରେ ଅନୁଗ୍ରହ ଅବଧି। |
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/omniroute.mjs` | ଡିଫଲ୍ଟ ବ୍ୟବହାରକାରୀଙ୍କ data-directory environment fileକୁ ଏଡ଼ାଇବା ପାଇଁ ଏକ ସ୍ପଷ୍ଟ DATA_DIR ସହିତ 1 ସେଟ୍ କରନ୍ତୁ। |
| `OMNIROUTE_SYNC_TOKEN` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/commands/sync.mjs` | `omniroute sync bundle` ପାଇଁ sync token (`GET /api/sync/bundle` କେବଳ sync token ଗ୍ରହଣ କରେ, API key ନୁହେଁ)। `--token` ସହିତ ସମତୁଲ। |
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → server ଅନୁରୋଧଗୁଡ଼ିକ ପାଇଁ ପ୍ରତି-ପ୍ରୟାସ HTTP timeout (ms)। |
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | timeout ଚେତାବନୀ ପ୍ରିଣ୍ଟ କରିବା ପୂର୍ବରୁ CLI ସର୍ଭର୍ର health endpoint ପାଇଁ ଅପେକ୍ଷା କରୁଥିବା ସର୍ବାଧିକ ସମୟ (ms)। ଧୀର cold start (ଯଥା Windows) ପାଇଁ ଉପଯୋଗୀ। `--ready-timeout` ମାଧ୍ୟମରେ ମଧ୍ୟ ସେଟ୍ କରାଯାଇପାରେ। |
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI commandଗୁଡ଼ିକ ସମୟରେ retry/backoff diagnosticsକୁ stderrରେ ପ୍ରିଣ୍ଟ କରିବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ। |
| `OMNIROUTE_PLUGIN_PATH` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/plugins.mjs` | CLI plugin ଚିହ୍ନଟ ପାଇଁ custom directory (`omniroute-cmd-*` packageଗୁଡ଼ିକ)। ସେଟ୍ ହୋଇନଥିଲେ ଡିଫଲ୍ଟ ଭାବେ `~/.omniroute/plugins/` ବ୍ୟବହୃତ ହୁଏ। କେବଳ CLI ପାଇଁ — ଏହା କେବେବି server-side plugin scanner ପର୍ଯ୍ୟନ୍ତ ପହଞ୍ଚେ ନାହିଁ, ଯାହା `OMNIROUTE_PLUGINS_DIR` (ଅନୁଚ୍ଛେଦ 2) ଦ୍ୱାରା ନିର୍ଦ୍ଦେଶିତ। |
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/omniroute.mjs` | ଯେକୌଣସି ଖାଲି ନଥିବା ମୂଲ୍ୟରେ ସେଟ୍ କରାଗଲେ process exit ସମୟରେ CLI update notificationକୁ ଦମନ କରନ୍ତୁ। CI, quiet mode ଏବଂ non-text output modeରେ ସୂଚନାଟି ସ୍ୱାଧୀନ ଭାବେ ନିଷ୍କ୍ରିୟ ରହେ। |
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | _(ବ୍ୟୁତ୍ପନ୍ନ)_ | `bin/cli/commands/doctor.mjs` | `omniroute doctor` ଦ୍ୱାରା ଯାଞ୍ଚ କରାଯାଉଥିବା liveness URL। ଏକ programmatic `livenessUrl` optionକୁ ପ୍ରାଥମିକତା ମିଳେ; ନଚେତ୍ ଏହି ମୂଲ୍ୟଟି ଅବିକଳ ବ୍ୟବହୃତ ହୁଏ। ସେଟ୍ ହୋଇନଥିଲେ, CLI ସ୍ଥାନୀୟ dashboardର `/api/health/degradation` endpoint ବ୍ୟୁତ୍ପନ୍ନ କରେ। |
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | CLI provider commandଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ provider catalog path। ଏକ programmatic `catalogPath` optionକୁ ପ୍ରାଥମିକତା ମିଳେ। Absolute pathଗୁଡ଼ିକ ଅପରିବର୍ତ୍ତିତ ଭାବେ ବ୍ୟବହୃତ ହୁଏ; relative pathଗୁଡ଼ିକ project rootରୁ resolve ହୁଏ। ସେଟ୍ ହୋଇନଥିଲେ, CLI provider constants directory ବ୍ୟବହାର କରେ ଏବଂ legacy `providers.ts` fileକୁ fallback ଭାବେ ବ୍ୟବହାର କରେ। |
| `OMNIROUTE_PROVIDER_TEST_MODEL` | _(provider ଡିଫଲ୍ଟ)_ | `bin/cli/provider-test.mjs` | CLI provider connection testଗୁଡ଼ିକ ପାଇଁ global fallback model। ପ୍ରାଥମିକତା କ୍ରମ ହେଉଛି configured connection model, provider-specific model override, ଏହି ମୂଲ୍ୟ, ଏବଂ ଶେଷରେ providerର built-in test model। |
---
## 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` | ଇଚ୍ଛାଧୀନ, କମା ଦ୍ୱାରା ପୃଥକ୍ ହୋଇଥିବା ପ୍ରଦାତା IDଗୁଡ଼ିକ (କିମ୍ବା `*`): ଯେତେବେଳେ ଏକ `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` | ପ୍ରତ୍ୟେକ କମ୍ପ୍ରେସନ୍ ୱର୍କର୍ ପାଇଁ V8 ପୁରୁଣା-ଜେନେରେସନ୍ ହିପ୍ ସୀମା, MBରେ, ସମସ୍ତ ମୋଡ୍ରେ (ସର୍ବନିମ୍ନ `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) | ସାର୍ବଜନୀନ Muse CLI ଡିଭାଇସ୍-ଫ୍ଲୋ କ୍ଲାଏଣ୍ଟ୍ ID ପାଇଁ ଇଚ୍ଛାଧୀନ ଓଭରରାଇଡ୍। ବିଲ୍ଟ-ଇନ୍ ସାର୍ବଜନୀନ କ୍ଲାଏଣ୍ଟ୍ ବ୍ୟବହାର କରିବାକୁ ଅନସେଟ୍ ଛାଡିଦିଅନ୍ତୁ। |
| `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 Enterprise Copilot ର OAuth କ୍ଲାଏଣ୍ଟ୍ ID ପାଇଁ ଇଚ୍ଛାଧୀନ ଓଭରରାଇଡ୍। ଅନସେଟ୍ ଥିଲେ `GITHUB_OAUTH_CLIENT_ID` ର ସାର୍ବଜନୀନ ଡିଫଲ୍ଟକୁ ଫେରିଯାଏ। |
| `COPILOT_INTEGRATION_ID` | GitHub Copilot | `Copilot-Integration-Id` ଏବଂ `Editor-Plugin-Version` ହେଡରରେ ପଠାଯାଇଥିବା GitHub Copilot କ୍ଲାଏଣ୍ଟ୍ ଇଣ୍ଟିଗ୍ରେସନ୍ ID ପାଇଁ ଇଚ୍ଛାଧୀନ ଓଭରରାଇଡ୍। ଡିଫଲ୍ଟ `copilot-developer-cli`। |
| `WINDSURF_API_KEY` | Windsurf / Devin (v3.8) | ଯେତେବେଳେ କୌଣସି ପ୍ରତି-ସଂଯୋଗ ପ୍ରମାଣପତ୍ର ଉପଲବ୍ଧ ନଥାଏ, `open-sse/executors/devin-cli.ts` ଦ୍ୱାରା ବ୍ୟବହୃତ API କି ଫଲବ୍ୟାକ୍। ଇଚ୍ଛାଧୀନ। |
| `CLI_DEVIN_BIN` | Devin CLI (v3.8) | Devin CLI ବାଇନାରୀ (`devin`) ପାଇଁ କଷ୍ଟମ୍ ପଥ। `open-sse/executors/devin-cli.ts` ଦ୍ୱାରା ସମାଧାନ କରାଯାଇଛି। |
| `GITLAB_DUO_OAUTH_CLIENT_ID` | GitLab Duo (v3.8) | GitLab Duo ପାଇଁ OAuth କ୍ଲାଏଣ୍ଟ୍ ID। `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` ଟୋକେନ୍। ଯେତେବେଳେ Blackbox ଟୋକେନ୍ ମେଳ ଲାଗୁ କରେ ସେତେବେଳେ ଆବଶ୍ୟକ; ନଚେତ୍ OmniRoute ଏକ ରାଣ୍ଡମ୍ UUID କୁ ଫଲବ୍ୟାକ୍ କରେ। ଇସ୍ୟୁ #2252 ଦେଖନ୍ତୁ। |
| `VISION_BRIDGE_BASE_URL` | Vision Bridge guardrail | ଅଣ-ଆନ୍ଥ୍ରୋପିକ୍ ଭିଜନ୍-ବ୍ରିଜ୍ କଲ୍ ପାଇଁ OpenAI-ସୁସଙ୍ଗତ ମୂଳ URL। ଲେଗାସି OpenAI URL env କିମ୍ବା api.openai.com କୁ ଡିଫଲ୍ଟ କରେ। OmniRoute ର `/v1` ସେଲ୍ଫ-ଲୁପ୍ କିମ୍ବା ଯେକୌଣସି OpenAI-ସୁସଙ୍ଗତ ଏଣ୍ଡପଏଣ୍ଟ (Gemini 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 କୁ Authorized redirect 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` (ପବ୍ଲିକ୍ ଆଇଡି)କୁ ଓଭରରାଇଡ୍ କରନ୍ତୁ |
| `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 ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ସୁସଙ୍ଗତତା
ସକ୍ଷମ କରାଗଲେ, OmniRoute ଅଧିକୃତ CLI ଟୁଲ୍ଗୁଡ଼ିକର ସଠିକ୍ ସିଗ୍ନେଚର୍ ସହ ମେଳ ଖାଇବା ପାଇଁ 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:** ଯେତେବେଳେ ଏକ ଡ୍ୟାସ୍ବୋର୍ଡ୍ `jina-ai` (କିମ୍ବା ସେୟାର୍ କରାଯାଇଥିବା `jina-reader`) ସଂଯୋଗ ଉପଲବ୍ଧ ଥାଏ, `jina-ai/…` ଏମ୍ବେଡିଂ, ରିର୍ୟାଙ୍କ୍, ଶ୍ରେଣୀବିଭାଜନ, ସେଗ୍ମେଣ୍ଟ୍ ଏବଂ `jina-search` କୌଣସି କ୍ଲଷ୍ଟର୍ env କୀକୁ ବିଲ୍ କରେ **ନାହିଁ** — `getProviderCredentials` fill-first ଅଟେ। କୌଣସି ବ୍ୟବହାରଯୋଗ୍ୟ ଡ୍ୟାସ୍ବୋର୍ଡ୍ କୀ ନଥିଲେ ମାତ୍ର `JINA_AI_API_KEY` / `JINA_API_KEY` ବ୍ୟବହୃତ ହୁଏ। କଲ୍ ଲଗ୍ଗୁଡ଼ିକ env ଫଲ୍ବ୍ୟାକ୍କୁ `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`) ପ୍ରଥମେ ଡ୍ୟାସ୍ବୋର୍ଡ୍ର `gemini` ସଂଯୋଗ ବ୍ୟବହାର କରେ। କୌଣସି ବ୍ୟବହାରଯୋଗ୍ୟ ଡ୍ୟାସ୍ବୋର୍ଡ୍ କୀ ନଥିଲେ ମାତ୍ର `GEMINI_API_KEY` / `GOOGLE_API_KEY` ବ୍ୟବହୃତ ହୁଏ। କଲ୍ ଲଗ୍ଗୁଡ଼ିକ env ଫଲ୍ବ୍ୟାକ୍କୁ `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-*` ମେଟାଡାଟା ଟ୍ରେଲର୍ଗୁଡ଼ିକ) ନିର୍ଗତ କରିପାରିବ କି ନାହିଁ। ଡିଫଲ୍ଟ ଭାବେ ଅକ୍ଷମ (#10524), କାରଣ କଠୋର OpenAI-ସୁସଙ୍ଗତ କ୍ଲାଏଣ୍ଟଗୁଡ଼ିକ ପ୍ରତ୍ୟେକ SSE ଲାଇନ୍କୁ JSON.parse କରନ୍ତି ଏବଂ `:` ମନ୍ତବ୍ୟରେ କ୍ରାଶ୍ କରନ୍ତି; `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` | OpenAI SDKର `responses.stream()`କୁ 502 ସହିତ ବିଫଳ କରୁଥିବା ଅଣ-ମାନକ `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 min) | ଯେଉଁ ସିଧାସଳଖ ନୋ-ପ୍ରକ୍ସି ପ୍ରୟାସର ଲକ୍ଷ୍ୟ ହୋଷ୍ଟ ପ୍ରାଇଭେଟ୍/LAN/ଲୁପ୍ବ୍ୟାକ୍ (ଉଦାହରଣ ସ୍ୱରୂପ `localhost`, `host.docker.internal`, `192.168.x.x`), ସେଗୁଡ଼ିକ ପାଇଁ ପ୍ରତିକ୍ରିୟା ଆରମ୍ଭର ନ୍ୟୂନତମ ସମୟ (ms), ଯାହାଦ୍ୱାରା ଏକ ନେଟିଭ୍ Ollama କୋଲ୍ଡ୍ ଷ୍ଟାର୍ଟ ଉପରୋକ୍ତ 30s ଡିଫଲ୍ଟ ଦ୍ୱାରା ବିଚ୍ଛିନ୍ନ ହୁଏନାହିଁ। ଏହା ଏକ ନ୍ୟୂନତମ ସୀମା ଭାବେ କାମ କରେ: ପ୍ରଭାବୀ ଅପେକ୍ଷା ସମୟ ଏହି ମୂଲ୍ୟ ଓ `OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS` ମଧ୍ୟରୁ ବଡ଼ଟି; `0` କିମ୍ବା ଏକ ଅବୈଧ ମୂଲ୍ୟ ସ୍ଥାନୀୟ ନ୍ୟୂନତମ ସୀମାକୁ ହଟାଇଦିଏ। ରିମୋଟ୍ ହୋଷ୍ଟଗୁଡ଼ିକ ପ୍ରଭାବିତ ହୁଅନ୍ତି ନାହିଁ। |
| `OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS` | `600000` (10 min) | ଉପରୋକ୍ତ ପୁଲ୍ଡ୍-ପ୍ରୟାସର ପ୍ରତିକ୍ରିୟା-ଆରମ୍ଭ ଟାଇମ୍ଆଉଟ୍ ପରେ, ନୂଆ-ସକେଟ୍ 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` ସହିତ ଖୋଲେ, ତେଣୁ ସେଠାରେ ନିରବତା ଜେନେରେସନ୍ ନୁହେଁ, ଏକ କ୍ୟୁ); ଚାଟ୍ କମ୍ପ୍ଲିସନ୍ ଏବଂ ନନ୍-ଷ୍ଟ୍ରିମ୍ କଲ୍ଗୁଡ଼ିକ ଅପରିବର୍ତ୍ତିତ ରହେ, ଏବଂ ୱିଣ୍ଡୋଟି କେବଳ ପ୍ରଭାବୀ fetch-start ସର୍ବୋଚ୍ଚ ସୀମାକୁ କମାଏ, କେବେ ମଧ୍ୟ ବଢ଼ାଏ ନାହିଁ। ସକ୍ଷମ କରିବାବେଳେ ପ୍ରସ୍ତାବିତ ମୂଲ୍ୟ: `30000`। `0` ଅକ୍ଷମ କରେ। |
| `OPENCODE_RESPONSES_HEADERS_WAIT_MAX_ROTATIONS` | `2` | କେବଳ OpenCode ଏକ୍ସିକ୍ୟୁଟର୍: ପ୍ରତି ଅନୁରୋଧରେ ଉପରୋକ୍ତ ହେଡର୍ସ-ୱେଟ୍ ସୀମା କେତେ ଥର ପରବର୍ତ୍ତୀ ଆକାଉଣ୍ଟକୁ ଯାଇପାରିବ। ଶେଷ ଅବଶିଷ୍ଟ ଆକାଉଣ୍ଟ ସର୍ବଦା ସମ୍ପୂର୍ଣ୍ଣ ହେଡର୍ସ ୱିଣ୍ଡୋ ବଜାୟ ରଖେ। |
| `OPENCODE_PARK_AND_RESUME` | `false` | କେବଳ OpenCode ଏକ୍ସିକ୍ୟୁଟର୍: ବାରମ୍ବାର ଅସ୍ଥାୟୀ 429ଗୁଡ଼ିକ (କିମ୍ବା ଏକ ସଦ୍ୟ ପୁଲ୍-ଷ୍ଟ୍ରେନ୍ ମାର୍କର୍) ପରେ ହାର୍ଟବିଟ୍ ସହିତ ଅନୁରୋଧକୁ ପାର୍କ କରନ୍ତୁ, ତା’ପରେ ସମଗ୍ର ଫ୍ଲିଟ୍ରେ ବିସ୍ତାର କରିବା ପରିବର୍ତ୍ତେ 3ଟି ପର୍ଯ୍ୟନ୍ତ କ୍ରମିକ ଆକାଉଣ୍ଟର ଗୋଟିଏ ସୀମିତ ଲେଗ୍ ପୁନଃଚାଳନ କରନ୍ତୁ (#13924)। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ: ପୂର୍ବପରି ପ୍ରତ୍ୟେକ 429 ପରବର୍ତ୍ତୀ ଆକାଉଣ୍ଟକୁ ଘୂରେ। |
| `OPENCODE_PARK_REPLAY_SERVE_SETASIDE` | `false` | କେବଳ OpenCode ଏକ୍ସିକ୍ୟୁଟର୍: ପାର୍କ-ଆଣ୍ଡ-ରିଜ୍ୟୁମ୍ ରିପ୍ଲେ ଲେଗ୍ରେ ଥିବା ପ୍ରତ୍ୟେକ କୁଲ୍ଡାଉନ୍-ପ୍ରସ୍ତୁତ ଆକାଉଣ୍ଟକୁ ପ୍ରକ୍ସି-ପ୍ରତ୍ୟାଖ୍ୟାନ ମେମୋରି ଦ୍ୱାରା ପୃଥକ ରଖାଯାଇଥିଲେ, କିଛି ମଧ୍ୟ ରିପ୍ଲେ ନକରିବା ପରିବର୍ତ୍ତେ ସେଗୁଡ଼ିକୁ ଯେପରି ହେଉ ସେବା ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ (#14851, #14750ର ଅନୁସରଣ)। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ: #14750 ପୂର୍ବର ପରି ସେହି କ୍ଷେତ୍ରରେ ରିପ୍ଲେ ଲେଗ୍ ଖାଲି ରହେ। |
| `STREAM_READINESS_STALL_RETRY` | `false` | କେବଳ ଷ୍ଟ୍ରିମିଂ ଚାଟ୍: ପ୍ରଥମ ଅପ୍ଷ୍ଟ୍ରିମ୍ ବଡି ବ୍ୟବହାରଯୋଗ୍ୟ ଇଭେଣ୍ଟ ଉତ୍ପାଦନ କରିବା ପୂର୍ବରୁ ଅଟକିଗଲେ, ସମାନ ରେଡିନେସ୍ ବଜେଟ୍ ଏବଂ କୌଣସି ଆକାଉଣ୍ଟ ଦଣ୍ଡ ବିନା ସମାନ ରାଉଟିଂ ପଥ ମାଧ୍ୟମରେ ଗୋଟିଏ ସୀମିତ ଦ୍ୱିତୀୟ ପ୍ରୟାସ କରନ୍ତୁ। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ: ଅଟକିଯାଇଥିବା ପ୍ରଥମ ବଡି ପୁନଃପ୍ରୟାସ ବିନା ଅନୁରୋଧକୁ ବିଫଳ କରେ। |
| `OPENCODE_POOL_RESELECT` | `false` | କେବଳ OpenCode ଏକ୍ସିକ୍ୟୁଟର୍: ଏକ ଆମ୍ବିଏଣ୍ଟ ପୁଲ୍ ପ୍ରସଙ୍ଗ ଅଧୀନରେ ପ୍ରକ୍ସି-ବିହୀନ ଆକାଉଣ୍ଟରେ ଏକ ଇଗ୍ରେସ୍-ବକେଟେଡ୍ ପ୍ରଦାନକାରୀଠାରୁ 429 ମିଳିବା ପରେ, ସମାନ ଇଗ୍ରେସ୍ ଠିକଣାରେ ପୁନଃପ୍ରୟାସ କରିବା ପରିବର୍ତ୍ତେ ପରବର୍ତ୍ତୀ ପ୍ରୟାସ ପାଇଁ ଅନ୍ୟ ଜଣେ ସଦସ୍ୟଙ୍କୁ ବାଛିବାକୁ କନେକ୍ସନ୍ ପୁଲ୍କୁ କୁହନ୍ତୁ। ଏହା କ୍ରମ ନିର୍ଦ୍ଧାରଣ କରେ, କେବେବି ବାଦ ଦିଏ ନାହିଁ: ଏକ ନିଃଶେଷିତ ପୁଲ୍ ବର୍ତ୍ତମାନର ଆଚରଣ ବଜାୟ ରଖେ। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ: ପୂର୍ବପରି ପ୍ରତ୍ୟେକ 429 ପରବର୍ତ୍ତୀ ଆକାଉଣ୍ଟକୁ ଘୂରେ। |
| `OPENCODE_POOL_STRAIN_MARKER_PATH` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | କେବଳ OpenCode ଏକ୍ସିକ୍ୟୁଟର୍: ପାର୍କିଂ ପୂର୍ବରୁ ପଢ଼ାଯାଇଥିବା ପୁଲ୍-ଷ୍ଟ୍ରେନ୍ ମାର୍କର୍ର ପଥକୁ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ (`{since, reason, ttl_s}`, ଡିଫଲ୍ଟ `/tmp/opencode-pool-strain.json`, #13924)। ଏକ ସଦ୍ୟ ମାର୍କର୍ ପୁନଃଗଣନା ବିନା ପାର୍କ କରେ; ଅନୁପସ୍ଥିତ କିମ୍ବା ପୁରୁଣା ମାର୍କର୍ ବର୍ଷ୍ଟ କାଉଣ୍ଟର୍କୁ ଫେରିଯାଏ। |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | `30000` | `/v1` ବ୍ରିଜ୍ ଅନୁରୋଧଗୁଡ଼ିକ ପାଇଁ ପ୍ରକ୍ସି ହପ୍ ସମୟସୀମା। |
| `FIRECRAWL_BASE_URL` | `https://api.firecrawl.dev` | Firecrawl ୱେବ୍-ଫେଚ୍ ଏକ୍ସିକ୍ୟୁଟର୍କୁ ଏକ ସ୍ୱୟଂ-ହୋଷ୍ଟେଡ୍ ଇନ୍ଷ୍ଟାନ୍ସ ଆଡ଼କୁ ନିର୍ଦ୍ଦେଶିତ କରନ୍ତୁ (ଅଫ୍-କ୍ଲାଉଡ୍ରେ API କୀ ଇଚ୍ଛାଧୀନ)। |
| `FIRECRAWL_TIMEOUT_MS` | `30000` | 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` | ବ୍ରିଜ୍ କିପ୍-ଆଲାଇଭ୍ ନିଷ୍କ୍ରିୟ ସମୟସୀମା। |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | ର’ ସକେଟ୍ ସମୟସୀମା (0 = ଅକ୍ଷମ)। |
| `SHUTDOWN_TIMEOUT_MS` | `30000` | ବାଧ୍ୟତାମୂଳକ ଭାବେ ପ୍ରସ୍ଥାନ କରିବା ପୂର୍ବରୁ SIGTERM/SIGINTରେ ଗ୍ରେସ୍ ପିରିୟଡ୍। |
| `OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS` | `120000` | `FETCH_TIMEOUT_MS` ସେଟ୍ ହୋଇନଥିଲେ `src/shared/utils/fetchTimeout.ts` ଦ୍ୱାରା ବ୍ୟବହୃତ ଫଲ୍ବ୍ୟାକ୍। |
| `OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS` | `8000` | `src/shared/network/safeOutboundFetch.ts`ରେ `validationRead` ଏବଂ `modelsProbe` ପ୍ରିସେଟ୍ଗୁଡ଼ିକ ପାଇଁ ସମୟସୀମା (ms)। ଡ୍ୟାସ୍ବୋର୍ଡରେ ସକ୍ରିୟ/ତ୍ରୁଟି ମଧ୍ୟରେ ବାରମ୍ବାର ଅସ୍ଥିର ପରିବର୍ତ୍ତନ ରୋକିବା ପାଇଁ ଧୀର ଏଣ୍ଡପଏଣ୍ଟଗୁଡ଼ିକ (Cerebras, Cloudflare AI, Groq) ପାଇଁ ଏହାକୁ ବଢ଼ାନ୍ତୁ। ଅବୈଧ (<1000) କିମ୍ବା ଅଣ-ସାଂଖ୍ୟିକ ମୂଲ୍ୟ ପାଇଁ 8000msକୁ ଫେରିଯାଏ। |
| `OMNIROUTE_RELAY_FETCH_TIMEOUT_MS` | `25000` | `open-sse/utils/proxyFetch.ts`ରେ ରିଲେ-ନିର୍ଦ୍ଦିଷ୍ଟ ଫେଚ୍ ସମୟସୀମା (#9158)। ଏକ ଅଟକିଥିବା ରିଲେ କ୍ଲାଏଣ୍ଟ/ଏଜେଣ୍ଟ ସମୟସୀମା (~30s) ପୂର୍ବରୁ ବିଫଳ ହେବା ଆବଶ୍ୟକ, ଯାହାଦ୍ୱାରା କଲର୍ମାନେ ଏକ ସାଧାରଣ ଅପ୍ଷ୍ଟ୍ରିମ୍ ସମୟସୀମା ପରିବର୍ତ୍ତେ ରିଲେ-ନିର୍ଦ୍ଦିଷ୍ଟ ବିଫଳତା ଦେଖିପାରିବେ। ଏହା ସର୍ବଦା ପ୍ରଥମେ ସକ୍ରିୟ ହେବା ପାଇଁ `29000`ରେ ସୀମିତ। |
| `OMNIROUTE_RETRY_BACKOFF_MS` | `10` | `open-sse/utils/proxyFetch.ts`ରେ ଡାଇରେକ୍ଟ/ରିଲେ/ପ୍ରକ୍ସି ଏକ-ଥର-ପୁନଃପ୍ରୟାସ ପଥଗୁଡ଼ିକ ପାଇଁ ସହଭାଗୀ ପୁନଃପ୍ରୟାସ ବ୍ୟାକ୍ଅଫ୍ (#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`ଠାରୁ ଦୀର୍ଘ ରଖନ୍ତୁ, ଯାହାଦ୍ୱାରା ଏକ ଧୀର ପ୍ରଥମ ଟାର୍ଗେଟ୍ ପରେ ମଧ୍ୟ ଫେଲ୍ଓଭର୍
ପାଇଁ ସମୟ ରହିବ।
### ସର୍କିଟ୍ ବ୍ରେକର୍ ଥ୍ରେଶହୋଲ୍ଡଗୁଡ଼ିକ
ପ୍ରଦାତା-ସ୍ତରୀୟ ସର୍କିଟ୍ ବ୍ରେକର୍ ଟ୍ୟୁନିଂ। ଡିଫଲ୍ଟଗୁଡ଼ିକ v3.6 ପରଠାରୁ 500+ ସଂଯୋଗ ପାଇଁ ବ୍ୟବହୃତ ସ୍କେଲ୍ କରାଯାଇଥିବା ମୂଲ୍ୟଗୁଡ଼ିକୁ ପ୍ରତିଫଳିତ କରେ।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ସୋର୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ------------------------------------------------------------- | --------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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-key ପ୍ରଦାତାଙ୍କ ପାଇଁ କ୍ରମାଗତ ବିଫଳତା ସୀମା। |
| `OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS` | `30000` | `open-sse/config/constants.ts` | API-key ପ୍ରଦାତା ବ୍ରେକର୍ ପାଇଁ ରିସେଟ୍ ୱିଣ୍ଡୋ (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-key ପ୍ରଦାତା କୁଲ୍ଡାଉନ୍ରେ ପ୍ରବେଶ କରିବା ପୂର୍ବରୁ ୱିଣ୍ଡୋ ମଧ୍ୟରେ ବିଫଳତା ସଂଖ୍ୟା। |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS` | `1800000` | `open-sse/config/constants.ts` | ପ୍ରଦାତା-ସ୍ତରୀୟ ବ୍ରେକର୍: API-key ପ୍ରଦାତାଙ୍କ ପାଇଁ ରୋଲିଂ ବିଫଳତା-ଗଣନା ୱିଣ୍ଡୋ (ms)। |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS` | `600000` | `open-sse/config/constants.ts` | ପ୍ରଦାତା-ସ୍ତରୀୟ ବ୍ରେକର୍: API-key ପ୍ରଦାତା ସୀମାରେ ପହଞ୍ଚିବା ପରେ କୁଲ୍ଡାଉନ୍ (ms)। |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD` | `7` | `open-sse/config/constants.ts` | ଏତିକି ବିଫଳତା ପରେ API-key ପ୍ରଦାତା DEGRADED ଅବସ୍ଥାରେ ପ୍ରବେଶ କରେ। |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER` | `4` | `open-sse/config/constants.ts` | API-key ପ୍ରଦାତାର ସର୍ବାଧିକ resetTimeout ବୃଦ୍ଧି ଗୁଣକ। |
| `OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT` | `3` | `open-sse/config/constants.ts` | ଏତିକି ଖୋଲା ଚକ୍ର ପରେ API-key ପ୍ରଦାତା ବ୍ୟାକଅଫ୍ ବୃଦ୍ଧି କରେ। |
| `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` ନଥିବାବେଳେ ମଲ୍ଟି-key API-key ରୋଟେସନ୍ ଦ୍ୱାରା ପ୍ରୟୋଗ କରାଯାଉଥିବା ପ୍ରତି-key କୁଲ୍ଡାଉନ୍ (ms) (#14573)। ଶୂନ୍ୟ କିମ୍ବା ଋଣାତ୍ମକ ଅଥବା ଅଣ-ସାଂଖ୍ୟିକ ମୂଲ୍ୟଗୁଡ଼ିକ ଡିଫଲ୍ଟ ମୂଲ୍ୟକୁ ଫେରିଯାଏ। |
| `PIN_DROP_BACKOFF_LEVEL` | `2` | `open-sse/services/combo.ts` | ଯେଉଁ ବ୍ୟାକଅଫ୍ ଗଭୀରତାରେ context-cache ପିନ୍ର ପ୍ରଦାତାକୁ ସ୍ଥାୟୀ ଭାବେ ଅସୁସ୍ଥ ବୋଲି ବିବେଚନା କରାଯାଏ ଏବଂ failover ପାଇଁ ପିନ୍ଟିକୁ ହଟାଇ ଦିଆଯାଏ। |
| `PIN_DROP_GRACE_MS` | `20000` | `open-sse/services/combo.ts` | context-cache ପିନ୍କୁ ହଟାଇବା ପୂର୍ବରୁ ସ୍ୱଳ୍ପକାଳୀନ ଅସ୍ଥାୟୀ କୁଲ୍ଡାଉନ୍ଗୁଡ଼ିକୁ ସହ୍ୟ କରୁଥିବା ଆଣ୍ଟି-ଫ୍ଲାପ୍ ୱିଣ୍ଡୋ (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` ସେଟ୍ କରେ, ତେଣୁ ସେଠାରେ କ୍ୟାଲିବ୍ରେସନ୍ କେବେ ଚାଲେ ନାହିଁ।** Coding-agent `/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` ତଥାପି କ୍ୟାଟାଲଗ୍ କିମ୍ବା ରେଜିଷ୍ଟ୍ରି
ମେଟାଡାଟାରୁ ଆସିପାରେ ଏବଂ ଏହା ପରିବେଶ ଓଭରରାଇଡ୍କୁ ପ୍ରତିଫଳିତ କରିବ ବୋଲି ନିଶ୍ଚିତ ନୁହେଁ।
**ଉଦାହରଣ।** ଏକ ପ୍ରଦାନକାରୀ ଯାହାଙ୍କ ମଡେଲ୍ 1,050,000-ଟୋକେନ୍ ୱିଣ୍ଡୋ ଗ୍ରହଣ କରେ, ଯେତେବେଳେ କ୍ୟାଟାଲଗ୍
128,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 ପାଇପଲାଇନ୍ (~23 MB int8, ~400 MB RAM) ପାଇଁ HF ରିପୋ ID। |
| `MEMORY_STATIC_MODEL` | `minishlab/potion-base-8M` | ସ୍ଥିର potion/Model2Vec ଲୁକ୍ଅପ୍-ଟେବୁଲ୍ ଏମ୍ବେଡର୍ ପାଇଁ HF ରିପୋ ID। ଆବଶ୍ୟକ ହେଲେ ଏହାକୁ କ୍ୟାଶ୍ ଡିରେକ୍ଟୋରୀରେ ଡାଉନଲୋଡ୍ କରାଯାଏ। |
| `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` | TTL (ଦିନରେ), ଯାହା ପରେ ଏକ ଅବ୍ୟବହୃତ `episodic` ମେମୋରି ଡିକେ ହୁଏ। `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` | _(ସେଟ୍ କରାଯାଇନାହିଁ)_ | କମା ଦ୍ୱାରା ପୃଥକ ପ୍ରଦାନକାରୀ ID-ଗୁଡ଼ିକ (କେସ୍-ଇନ୍ସେନ୍ସିଟିଭ୍), ଯେଉଁମାନେ **କେବଳ ଇଣ୍ଡେକ୍ସ 0 ରେ** ଏକ `system` ବାର୍ତ୍ତା ଗ୍ରହଣ କରନ୍ତି (`src/lib/memory/injection.ts`)। ଏଗୁଡ଼ିକ ପାଇଁ, ମଲ୍ଟି-ଟର୍ନ ବାର୍ତ୍ତାଳାପରେ କ୍ୟାଶ୍-ସୁରକ୍ଷିତ ମଧ୍ୟ-ଆରେ ମେମୋରି ସ୍ପ୍ଲାଇସ୍ ଅସୁରକ୍ଷିତ, ତେଣୁ ମେମୋରିକୁ ମିଶ୍ରଣ କରାଯାଇ/ପ୍ରିପେଣ୍ଡ କରାଯାଇ ଅଗ୍ରଣୀ system ବାର୍ତ୍ତା ଭାବରେ ରଖାଯାଏ। ଡିଫଲ୍ଟ ଭାବରେ କେବଳ `xiaomi-mimo`/`mimo`; ସ୍ୱୟଂ-ହୋଷ୍ଟ କରାଯାଇଥିବା OpenAI-ସୁସଙ୍ଗତ ଏଣ୍ଡପଏଣ୍ଟଗୁଡ଼ିକ (ଉଦାହରଣସ୍ୱରୂପ Qwen3.5+/3.6) ପାଇଁ ଏହାକୁ ବିସ୍ତାର କରନ୍ତୁ, ଯାହାର ଚାଟ୍ ଟେମ୍ପଲେଟ୍ ସମାନ ଏକକ-ଅଗ୍ରଣୀ-system-ବାର୍ତ୍ତା ସୀମାବଦ୍ଧତାକୁ ବାଧ୍ୟତାମୂଳକ କରେ। |
### କମ୍-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 ମୂଲ୍ୟ ନିର୍ଦ୍ଧାରଣ ସିଙ୍କ୍ ପାଇଁ କଠୋର ଓଭରରାଇଡ୍। ସେଟ୍ ହୋଇନଥିଲେ = ସେଟିଂସ୍ > 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` (24 ଘଣ୍ଟା) | `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` (8 ସେକେଣ୍ଡ) | `src/app/api/v1/models/catalogCache.ts` | ଏକୀକୃତ `GET /v1/models` କ୍ୟାଟାଲଗ୍ ପୁନଃନିର୍ମାଣ ପାଇଁ କୋଲ୍ଡ-ପାଥ୍ ଅପେକ୍ଷା ସୀମା (#12627)। ସମୟସୀମା ଅତିକ୍ରମ ହେଲେ, ପୂର୍ବରୁ ଏକ ଶେଷ-ସଫଳ 200 ଉପଲବ୍ଧ ଥିଲେ ତାହା ପରିବେଷଣ କରାଯାଏ। |
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 ଦିନ) | `src/lib/db/models/activeSyncedCatalog.ts` | ଯେଉଁ ସମୟାବଧି ପରେ ଏକ ସଂଯୋଗର ସିଙ୍କ୍ ହୋଇଥିବା ମଡେଲ୍ ତାଲିକା ରାଉଟିଂ ପାଇଁ ପ୍ରାମାଣିକ ରହେ ନାହିଁ ଏବଂ ରେଜିଷ୍ଟ୍ରିକୁ ଫେଲ୍-ଓପନ୍ କରେ (#12849)। କେବେବି ଟାଇମ୍ଷ୍ଟାମ୍ପ ଦିଆଯାଇନଥିବା ଧାଡ଼ିଗୁଡ଼ିକୁ ପୁରୁଣା ବୋଲି ଗଣାଯାଏ। |
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 ସେକେଣ୍ଡ) | `src/lib/usage/analyticsResponseCache.ts` | ସମାନ କ୍ୱେରି ଷ୍ଟ୍ରିଙ୍ଗ୍ ପାଇଁ ଏକ ଧୀର `GET /api/usage/analytics` ପ୍ରତିକ୍ରିୟା କେତେ ସମୟ ପର୍ଯ୍ୟନ୍ତ ପୁନଃବ୍ୟବହାର ହୁଏ (#15629)। `0` କ୍ୟାଶ୍କୁ ଅକ୍ଷମ କରେ। |
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 ସେକେଣ୍ଡ) | `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` | Cloudflare AI Playground ଏକ୍ସିକ୍ୟୁଟର୍ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ଡେସ୍କଟପ୍ Chrome ବାଇନାରି ପଥ; ଯେତେବେଳେ ହେଡ୍ଲେସ୍ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଯାଞ୍ଚ Playwright ସହିତ ବଣ୍ଡଲ୍ ହୋଇଥିବା Chromiumକୁ ଅବରୋଧ କରେ, ସେତେବେଳେ ଏହା ବ୍ୟବହୃତ ହୁଏ। |
| `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` | ପ୍ରକ୍ସି-ପୁଲ୍ "ରିଲେ ଡିପ୍ଲୟ କରନ୍ତୁ" ମୋଡାଲ୍ରେ ପ୍ରସ୍ତାବିତ ଡିଫଲ୍ଟ ୱର୍କର୍ ପ୍ରକଳ୍ପ ନାମ। |
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | ପ୍ରକ୍ସି ପୁଲ୍ ଟ୍ୟାବ୍ରୁ 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` | ପୃଷ୍ଠଭୂମି ସ୍ୱାସ୍ଥ୍ୟ-ସ୍କେଜୁଲର୍ର ସ୍ୱିପ୍ ବ୍ୟବଧାନ msରେ (ସର୍ବନିମ୍ନ `60000`)। |
| `PROXY_HEALTH_RELAY_INTERVAL_MS` | `21600000` | `src/lib/proxyHealth/relayCadence.ts` | ଏଜ୍-ରିଲେ ପ୍ରକ୍ସିଗୁଡ଼ିକ (`deno`/`vercel`/`cloudflare`) ପାଇଁ msରେ ପ୍ରୋବ୍ ବ୍ୟବଧାନ, ଯାହାର ପ୍ରୋବ୍ଗୁଡ଼ିକ ଏକ ବିଲ୍ଯୋଗ୍ୟ ସର୍ଭରଲେସ୍ ଆଇସୋଲେଟ୍କୁ ସକ୍ରିୟ କରେ (ସର୍ବନିମ୍ନ `60000`)। |
| `PROXY_HEALTH_RECOVERY_INTERVAL_MS` | `600000` | `src/lib/proxyHealth/scheduler.ts` | msରେ ପୃଷ୍ଠଭୂମି ପୁନରୁଦ୍ଧାର-ପାସ୍ ବ୍ୟବଧାନ: ପୂର୍ବରୁ ଅସ୍ୱାସ୍ଥ୍ୟକର ଥିବା ପ୍ରକ୍ସିଗୁଡ଼ିକୁ କେତେଥର ପୁନଃ ପ୍ରୋବ୍ କରାଯାଏ, ଯାହାଦ୍ୱାରା ଏକ ପୁନରୁଦ୍ଧାର ହୋଇଥିବା ପ୍ରକ୍ସି ପୁନଃଚାଳନ ବିନା ରୋଟେସନ୍କୁ ଫେରିପାରିବ। `60000`ରୁ କମ୍ ମୂଲ୍ୟ ଡିଫଲ୍ଟ ମୂଲ୍ୟକୁ ବ୍ୟବହାର କରେ। |
| `PROXY_HEALTH_TEST_URL` | `https://httpbin.org/ip` | `src/lib/proxyHealth/probeTarget.ts` | ସ୍କେଜୁଲର୍ ଏବଂ `/api/settings/proxies/auto-test` ଏଣ୍ଡପଏଣ୍ଟ ଦ୍ୱାରା ବ୍ୟବହୃତ ପହଞ୍ଚଯୋଗ୍ୟତା ପ୍ରୋବ୍ ଲକ୍ଷ୍ୟ। ସାର୍ବଜନୀନ ଡିଫଲ୍ଟକୁ ଏଡ଼ାଇବା ପାଇଁ ଏହାକୁ ଏକ ଆଭ୍ୟନ୍ତରୀଣ/ସ୍ୱୟଂ-ହୋଷ୍ଟ କରାଯାଇଥିବା 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 ଘଣ୍ଟାର ପୃଥକ ଏଗ୍ରେସ୍ 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` | ଏକ ଗ୍ରହଣ କରାଯାଇଥିବା ଅନୁରୋଧର ରେଟ୍-ଲିମିଟ୍ ସଂରକ୍ଷଣର ମିଆଦ ଶେଷ ହେବା ପୂର୍ବରୁ ତାହା କେତେ ସମୟ ନିଷ୍ପାଦନରେ ରହିପାରିବ, ତାହାର ସର୍ବୋଚ୍ଚ ସୀମା — କ୍ୟୁ-ଅପେକ୍ଷା ବଜେଟ୍ଠାରୁ ଅଲଗା କରାଯାଇଛି, ଯାହାଦ୍ୱାରା ନନ୍-ଇନ୍କ୍ରିମେଣ୍ଟାଲ୍ ଗେଟ୍ୱେଗୁଡ଼ିକରେ ଧୀର ଫେଚ୍-ଆରମ୍ଭ ଟାଇମ୍ ଆଉଟ୍ ହୁଏ ନାହିଁ (#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` | ବିଫଳ ପ୍ରଦାନକାରୀ/ସଂଯୋଗକୁ ପୁନଃଚେଷ୍ଟା କରିବା ପୂର୍ବରୁ ସର୍ବନିମ୍ନ କୁଲ୍ଡାଉନ୍ (ମିସେ)। କ୍ରମାଗତ ବିଫଳତା ସହିତ ଘାତୀୟ ଭାବେ ସ୍କେଲ୍ କରାଯାଏ। କେବଳ `PROVIDER_COOLDOWN_ENABLED` ସକ୍ଷମ ଥିବାବେଳେ ବ୍ୟବହୃତ ହୁଏ। |
| `PROVIDER_COOLDOWN_MAX_MS` | `300000` (5 ମିନିଟ୍) | `open-sse/services/providerCooldownTracker.ts` | ଯେକୌଣସି ପରିସ୍ଥିତିରେ ଏକ ବିଫଳ ପ୍ରଦାନକାରୀ/ସଂଯୋଗକୁ ପୁନଃଚେଷ୍ଟା କରିବା ପୂର୍ବରୁ ସର୍ବାଧିକ କୁଲ୍ଡାଉନ୍ (ମିସେ) ସୀମା। କେବଳ `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 ମିସେ) ପର୍ଯ୍ୟନ୍ତ ଧରି ରଖେ, ଯାହାଦ୍ୱାରା ଏକ _ପ୍ରି-କମିଟ୍_ ବିଚ୍ଛେଦ — ଯାହା କ୍ଲାଏଣ୍ଟ ପାଖରେ କୌଣସି ବାଇଟ୍ ପହଞ୍ଚିବା ପୂର୍ବରୁ ଘଟେ — ପୁନଃ ଖୋଲାଯାଇ ଅଦୃଶ୍ୟ ଭାବେ ପୁନଃଚେଷ୍ଟା କରାଯାଏ। **କେତେବେଳେ ସକ୍ଷମ କରିବେ:** ଅସ୍ଥିର/ଏପରି ଅପ୍ଷ୍ଟ୍ରିମ୍ ଯାହା ଷ୍ଟ୍ରିମ୍ ଆରମ୍ଭରେ ବାରମ୍ବାର 0-ବାଇଟ୍ରେ କଟିଯାଏ; ପ୍ରତ୍ୟେକ ଷ୍ଟ୍ରିମ୍ରେ ପ୍ରଥମ ଟୋକନ୍ ମିଳିବା ସମୟରେ 750 ମିସେ ପର୍ଯ୍ୟନ୍ତ ଅତିରିକ୍ତ ବିଳମ୍ବ ବହନ କରିପାରୁ ନଥିଲେ ଏହାକୁ ବନ୍ଦ ରଖନ୍ତୁ। `true`/`1`/`on` ଗ୍ରହଣ କରେ। ସ୍ଥାୟୀ Resilience ସେଟିଂକୁ ସିଡ୍ କରେ; ଥରେ ସେଟ୍ ହେବା ପରେ Dashboard ସେଟିଂ ଅଗ୍ରାଧିକାର ପାଏ। |
| `STREAM_RECOVERY_MIDSTREAM_ENABLED` | _(ସେଟ୍ ହୋଇନାହିଁ → ବନ୍ଦ)_ | `src/lib/resilience/settings.ts` (ସିଡ୍) → `open-sse/services/streamRecovery.ts` (ଲଜିକ୍) | **କ’ଣ:** ମଧ୍ୟ-ଷ୍ଟ୍ରିମ୍ ଅବ୍ୟାହତକରଣ (ପର୍ଯ୍ୟାୟ 4.4) — ଏକ _ପୋଷ୍ଟ-କମିଟ୍_ କାଟଛାଣ୍ଟ ପରେ (ବାଇଟ୍ଗୁଡ଼ିକ ପୂର୍ବରୁ କ୍ଲାଏଣ୍ଟ ପାଖରେ ପହଞ୍ଚିସାରିଛି), ଆଂଶିକ ଟେକ୍ସଟ୍କୁ ଏକ ଆସିଷ୍ଟାଣ୍ଟ ପ୍ରିଫିଲ୍ ଭାବେ ବ୍ୟବହାର କରି ପୁନଃ-ଅନୁରୋଧ କରେ ଏବଂ ଅନୁପସ୍ଥିତ ପ୍ରତ୍ୟୟକୁ ଯୋଡ଼େ। କେବଳ ସାଧାରଣ-ଟେକ୍ସଟ୍ 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 ବିଲ୍ଡ ID (`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 bearer ଟୋକନ୍। |
| `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` ପାଇଁ ଫଲ୍ବ୍ୟାକ୍ ଭାବରେ ବ୍ୟବହୃତ ଏକ ସାଧାରଣ GitHub ଆକ୍ସେସ୍ ଟୋକନ୍, ଯାହାକୁ `src/lib/cloudAgent/*`ରେ ଥିବା କ୍ଲାଉଡ୍ ଏଜେଣ୍ଟ୍ ସହାୟକଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତି। |
---
## ଡିପ୍ଲୟମେଣ୍ଟ ପରିଦୃଶ୍ୟଗୁଡ଼ିକ
ରିଲେ ବ୍ୟାକଏଣ୍ଡ 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. Skills ସ୍ୟାଣ୍ଡବକ୍ସ (v3.8.0+)
Skills ଫ୍ରେମ୍ୱର୍କ (`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 କୋଡିଂ-ପ୍ଲାନ୍ କୋଟା ଆଣିବା ପାଇଁ ବ୍ୟବହୃତ ହୋଷ୍ଟକୁ ଓଭର୍ରାଇଡ୍ କରେ। |
| `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 › Billing › Subscription (F12 › Network)ରେ `cs-data.qwencloud.com`କୁ ଯାଉଥିବା ଯେକୌଣସି `api.json` କଲ୍ରୁ ସମ୍ପୂର୍ଣ୍ଣ `Cookie` ଅନୁରୋଧ ହେଡର୍ କପି କରନ୍ତୁ—ଏଥିରେ `login_qwencloud_ticket` ଥାଏ। ଏହା ସମ୍ବେଦନଶୀଳ ଏବଂ ସେସନ୍-ସ୍କୋପ୍ଡ; ପ୍ରତି-ସଂଯୋଗ `qwenCloudCookie` Dashboard ଫିଲ୍ଡକୁ ପ୍ରାଧାନ୍ୟ ଦିଅନ୍ତୁ। |
| `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` ରିଜଲ୍ଭ କରିବା ପାଇଁ ବ୍ୟବହୃତ Dashboard 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 › Network) `platform.xiaomimimo.com`କୁ ଯାଉଥିବା ଯେକୌଣସି ଅନୁରୋଧରୁ ସମ୍ପୂର୍ଣ୍ଣ `Cookie` ଅନୁରୋଧ ହେଡର୍ କପି କରନ୍ତୁ—ଏଥିରେ `api-platform_serviceToken` ଏବଂ `userId` ଥାଏ। ଏହା ସମ୍ବେଦନଶୀଳ ଏବଂ ସେସନ୍-ସ୍କୋପ୍ଡ; ପ୍ରତି-ସଂଯୋଗ `xiaomiMimoConsoleCookie` Dashboard ଫିଲ୍ଡକୁ ପ୍ରାଧାନ୍ୟ ଦିଅନ୍ତୁ। |
| `XIAOMI_MIMO_MONTHLY_TOKEN_LIMIT` | `4100000000` | `open-sse/services/usage/xiaomi-mimo.ts` | କୌଣସି କନସୋଲ୍ କୁକି କନଫିଗର୍ କରାଯାଇନଥିବାବେଳେ ବ୍ୟବହୃତ OmniRoute-ଟ୍ରାକ୍ କରାଯାଇଥିବା Xiaomi MiMo ଫଲ୍ବ୍ୟାକ୍ ପାଇଁ ମାସିକ ବଜେଟ୍ (Credits)। ଡିଫଲ୍ଟ ଭାବେ Lite ସ୍ତରର 4.1B ରହେ; ଏହାକୁ ପ୍ଲାନ୍ର Credits (Standard 11B / Pro 38B / Max 82B) ଭାବେ ସେଟ୍ କରନ୍ତୁ। ପ୍ରତି-କନେକ୍ସନ୍ `providerSpecificData.monthlyTokenLimit` ଓଭର୍ରାଇଡ୍କୁ ଏହି env var ଅପେକ୍ଷା ପ୍ରାଥମିକତା ମିଳେ। |
| `ALIBABA_FREE_TIER_VISION_FE_PATH` | `/costing-balance/free-quota-image-video` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ଫ୍ରି-ଟିୟର୍ ଭିଜନ୍/ମିଡିଆ କୋଟା ଆଣିବା ପାଇଁ କନସୋଲ୍ ଫ୍ରଣ୍ଟ-ଏଣ୍ଡ ପଥ ଓଭର୍ରାଇଡ୍। |
| `ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH` | `/costing-balance/free-quota-multimodal` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ଫ୍ରି-ଟିୟର୍ ମଲ୍ଟିମୋଡାଲ୍ କୋଟା ଆଣିବା ପାଇଁ କନସୋଲ୍ ଫ୍ରଣ୍ଟ-ଏଣ୍ଡ ପଥ ଓଭର୍ରାଇଡ୍। |
| `ALIBABA_FREE_TIER_AUDIO_FE_PATH` | `/costing-balance/free-quota-audio` | `open-sse/services/alibabaFreeTierQuotaFetcher.ts` | Alibaba Model Studio ଫ୍ରି-ଟିୟର୍ ଅଡିଓ କୋଟା ଆଣିବା ପାଇଁ କନସୋଲ୍ ଫ୍ରଣ୍ଟ-ଏଣ୍ଡ ପଥ ଓଭର୍ରାଇଡ୍। |
| `ALIBABA_FREE_TIER_ALLOWLIST_PATH` | _(ସେଟ୍ କରାଯାଇନାହିଁ)_ | `open-sse/services/alibabaFreeTierAllowlist.ts` | ବିଲ୍ଟ-ଇନ୍ Alibaba ଫ୍ରି-ଟିୟର୍ ଟେକ୍ସଟ୍-ମଡେଲ୍ ଅନୁମତି-ତାଲିକା ପାଇଁ ଏକ ସ୍ଥାନୀୟ JSON ଓଭର୍ରାଇଡ୍ର ଇଚ୍ଛାଧୀନ ପଥ। ପ୍ରଥମେ `$DATA_DIR/alibaba-free-tier-allowlist.json`, ତା’ପରେ `config/alibaba-free-tier-allowlist.json`କୁ ଫଲ୍ବ୍ୟାକ୍ କରେ। |
| `CONTEXT_RESERVE_TOKENS` | `1024` | `open-sse/services/contextManager.ts` | ପ୍ରମ୍ପ୍ଟ ବଜେଟ୍ ଗଣନା କରିବାବେଳେ କମ୍ପ୍ଲିସନ୍ ଆଉଟ୍ପୁଟ୍ ପାଇଁ ସଂରକ୍ଷିତ ଟୋକନ୍। |
| `CONTEXT_KEEP_LATEST_IMAGES` | `2` | `open-sse/services/contextManager.ts` | କଣ୍ଟେକ୍ସ୍ଟ ୱିଣ୍ଡୋରେ ଫିଟ୍ କରାଇବା ପାଇଁ ପୁରୁଣା ଇନ୍ଲାଇନ୍ ଛବିଗୁଡ଼ିକୁ ବାଦ ଦେବାବେଳେ, ସବୁଠାରୁ ନୂତନ ଛବି ମଧ୍ୟରୁ କେତୋଟି ରଖାଯିବ (#8560)। |
| `MODEL_ALIAS_COMPAT_ENABLED` | ସକ୍ଷମ | `open-sse/services/model.ts` | ପୁରୁଣା କ୍ଲାଏଣ୍ଟମାନେ ବ୍ୟବହାର କରୁଥିବା ଲିଗାସି ମଡେଲ୍-ଏଲିଆସ୍ ସୁସଙ୍ଗତତା ସ୍ତରକୁ ଟୋଗଲ୍ କରନ୍ତୁ। |
| `OMNIROUTE_EMERGENCY_FALLBACK` | ସକ୍ଷମ | `open-sse/services/emergencyFallback.ts` | ବିଫଳ ଅନୁରୋଧଗୁଡ଼ିକୁ ମାଗଣା `nvidia`/`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 + ପ୍ରତି-ହୋଷ୍ଟ-ଲିଫ୍ ସାର୍ଟିଫିକେଟ୍ ମଡେଲ୍ (#6684) ବାଛିବାକୁ `true` ସେଟ୍ କରନ୍ତୁ। ନୂତନ ଇନ୍ଷ୍ଟଲ୍ଗୁଡ଼ିକ ଏହାକୁ ସ୍ୱୟଂଚାଳିତ ଭାବେ ପାଆନ୍ତି; ପୂର୍ବରୁ ଥିବା ବିଶ୍ୱସ୍ତ ପୁରୁଣା ଲିଫ୍ ସହିତ ଇନ୍ଷ୍ଟଲ୍ଗୁଡ଼ିକ ଏହା ବାଛା ନହେବା ପର୍ଯ୍ୟନ୍ତ ପୁରୁଣା ସ୍ଥିର-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` (truthy) ସେଟ୍ କରନ୍ତୁ — root-less / user-namespaced ଡିପ୍ଲୟମେଣ୍ଟଗୁଡ଼ିକ ପାଇଁ, ଯେଉଁଠାରେ ଅପରେଟର୍ CAକୁ ମାନୁଆଲ୍ ଭାବେ ବିଶ୍ୱସନୀୟ କରନ୍ତି (ଉଦାହରଣ ସ୍ୱରୂପ 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 ପାଇଁ ସୁରକ୍ଷା ବ୍ୟବସ୍ଥା: ସାର୍ଟିଫିକେଟ୍ ଟ୍ରଷ୍ଟ ଇନଷ୍ଟଲ୍/ଅନଇନଷ୍ଟଲ୍କୁ ଏକ no-op କରିବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ, ଯାହାଦ୍ୱାରା ସୁଇଟ୍ କେବେବି OS ଟ୍ରଷ୍ଟ ଷ୍ଟୋର୍କୁ ପରିବର୍ତ୍ତନ କରିବ ନାହିଁ। ପରୀକ୍ଷଣ ସେଟଅପ୍ ଏବଂ CI ୱର୍କଫ୍ଲୋଗୁଡ଼ିକ ଦ୍ୱାରା ଏହା ସ୍ୱୟଂଚାଳିତ ଭାବେ ସେଟ୍ ହୁଏ। |
| `CHANGELOG_BASE_REF` | _(ସ୍ୱୟଂଚାଳିତ)_ | `scripts/check/check-changelog-integrity.mjs` | anti CHANGELOG-eat ଗେଟ୍ ପାଇଁ ସ୍ପଷ୍ଟ ବେସ୍ ref (CIରେ ଡିଫଲ୍ଟ ଭାବେ PR ବେସ୍ ବ୍ରାଞ୍ଚ୍, କିମ୍ବା ସର୍ବୋଚ୍ଚ `release/v*`)। |
| `FREE_PROXY_AUTO_SYNC_ENABLED` | `false` | `src/lib/freeProxyProviders/scheduler.ts` | ପୃଷ୍ଠଭୂମିରେ free-proxy ପୁଲ୍ auto-sync ସ୍କେଜୁଲର୍ ସକ୍ଷମ କରିବା ପାଇଁ `true` ସେଟ୍ କରନ୍ତୁ। ଏହା opt-in ଏବଂ ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ ଥାଏ। |
| `FREE_PROXY_AUTO_SYNC_INTERVAL_MS` | `1800000` | `src/lib/freeProxyProviders/scheduler.ts` | ମିଲିସେକେଣ୍ଡ୍ରେ auto-sync ବ୍ୟବଧାନ (ଡିଫଲ୍ଟ 30 ମିନିଟ୍)। |
| `FREE_PROXY_1PROXY_ENABLED` | `true` | `src/lib/freeProxyProviders/oneproxy.ts` | 1proxy ମାଗଣା ପ୍ରକ୍ସି ଉତ୍ସକୁ ସକ୍ଷମ କରନ୍ତୁ। ଅକ୍ଷମ କରିବା ପାଇଁ `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` | ପ୍ରିଫ୍ଲାଇଟ୍ କୋଟା କଟ୍ଅଫ୍ ବନ୍ଦ ଥିବାବେଳେ (#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` | ଇଚ୍ଛାଧୀନ ସକ୍ରିୟକରଣ (ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ): ସ୍କୋରିଂ ପୂର୍ବରୁ କମ୍-କୋଟା ପ୍ରାର୍ଥୀମାନଙ୍କୁ ବାଦ ଦେଉଥିବା ଅଟୋ-ରାଉଟିଂ କଠୋର କୋଟା କଟ୍ଅଫ୍କୁ ସକ୍ରିୟ କରେ। |
| `OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL` | `false` | `open-sse/services/autoCombo/virtualFactory.ts` | ଇଚ୍ଛାଧୀନ ସକ୍ରିୟକରଣ (ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ): ଯେତେବେଳେ ଏକ `auto/:` ଫିଲ୍ଟର୍ କୌଣସି ସଂଯୁକ୍ତ ପ୍ରାର୍ଥୀ ସହ ମେଳ ଖାଏ ନାହିଁ, ଖାଲି ପୁଲ୍ ଫେରାଇବା ପରିବର୍ତ୍ତେ ସମ୍ପୂର୍ଣ୍ଣ (ଫିଲ୍ଟର୍ ହୋଇନଥିବା) ପୁଲ୍କୁ ଫଲ୍ବ୍ୟାକ୍ କରିବାର ପୁରୁଣା ଆଚରଣ ପୁନଃସ୍ଥାପନ କରନ୍ତୁ। ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ ଥିବାରୁ `:free`ର ଅର୍ଥ ହେଉଛି "କେବଳ ମାଗଣା ସ୍ତର"। |
| `OMNIROUTE_CHAOS_MAX_PANEL` | `5` | `open-sse/services/autoCombo/virtualFactory.ts` | `auto/*:chaos` ବ୍ରଡ୍କାଷ୍ଟ୍ ଭାରିଆଣ୍ଟ ପାଇଁ ପ୍ୟାନେଲ୍-ଆକାର ସୀମା (1–10 ମଧ୍ୟରେ ସୀମିତ)—ଗୋଟିଏ ଅନୁରୋଧ ସର୍ବାଧିକ ଏତିକି ସଂଖ୍ୟକ ପ୍ରଦାନକାରୀ-ବିବିଧ ମଡେଲ୍କୁ ପ୍ରସାରିତ ହୁଏ। |
| `OMNIROUTE_CHAOS_MIN_PANEL` | _(ଇଞ୍ଜିନ୍ ଡିଫଲ୍ଟ)_ | `open-sse/services/autoCombo/virtualFactory.ts` | chaos ବ୍ରଡକାଷ୍ଟ ହ୍ୟାଣ୍ଡଲର୍କୁ ପଠାଯାଉଥିବା ସର୍ବନିମ୍ନ ପ୍ୟାନେଲ୍-ଆକାର ଟ୍ୟୁନିଂ; ସେଟ୍ ନ କଲେ ଇଞ୍ଜିନ୍ ଡିଫଲ୍ଟ ବଜାୟ ରହେ। |
| `OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS` | _(ଇଞ୍ଜିନ୍ ଡିଫଲ୍ଟ)_ | `open-sse/services/autoCombo/virtualFactory.ts` | ସମ୍ପୂର୍ଣ୍ଣ chaos ପ୍ୟାନେଲ୍ fan-out ପାଇଁ ହାର୍ଡ ଟାଇମ୍ଆଉଟ୍ (ms); ସେଟ୍ ନ କଲେ ଇଞ୍ଜିନ୍ ଡିଫଲ୍ଟ ବଜାୟ ରହେ। |
| `GROK_AUTH_PATH` | `~/.grok/auth.json` | `open-sse/services/grokQuotaFetcher.ts` | grok-web ସାପ୍ତାହିକ କୋଟା ଆଣିବା ପାଇଁ ବ୍ୟବହୃତ Grok CLI `auth.json`-ର ପଥ; ପରୀକ୍ଷଣ କିମ୍ବା ଏକ ଅଣ-ମାନକ CLI ଇନ୍ଷ୍ଟଲେସନ୍ ପାଇଁ ଏହାକୁ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ। |
| `AGENTBRIDGE_UPSTREAM_CA_CERT` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/mitm/manager.ts` | AgentBridge ଅପ୍ଷ୍ଟ୍ରିମ୍ TLS ସଂଯୋଗଗୁଡ଼ିକ ପାଇଁ ବିଶ୍ୱସ୍ତ ଅତିରିକ୍ତ CA ସାର୍ଟିଫିକେଟ୍ (PEM)। |
| `INSPECTOR_BUFFER_SIZE` | `1000` | `src/mitm/inspector/buffer.ts` | Traffic Inspector ରିଙ୍ଗ୍ ବଫର୍ରେ ରଖାଯାଉଥିବା କ୍ୟାପ୍ଚର୍ କରାଯାଇଥିବା ଅନୁରୋଧଗୁଡ଼ିକର ସର୍ବାଧିକ ସଂଖ୍ୟା। |
| `INSPECTOR_MAX_BODY_KB` | `1024` | `src/mitm/inspector/buffer.ts` | କାଟଛାଣ୍ଟ ପୂର୍ବରୁ କ୍ୟାପ୍ଚର୍ କରାଯାଇଥିବା ଅନୁରୋଧ/ପ୍ରତିକ୍ରିୟା ବଡିର ସର୍ବାଧିକ ଆକାର (KB)। |
| `INSPECTOR_HTTP_PROXY_PORT` | `8080` | `src/mitm/inspector/httpProxyServer.ts` | Traffic Inspector HTTP ପ୍ରକ୍ସି ପାଇଁ ସ୍ଥାନୀୟ ପୋର୍ଟ। |
| `INSPECTOR_HTTP_PROXY_AUTOSTART` | `false` | `src/mitm/inspector/httpProxyServer.ts` | ବୁଟ୍ ସମୟରେ ଇନ୍ସପେକ୍ଟର୍ HTTP ପ୍ରକ୍ସିକୁ ସ୍ୱୟଂଚାଳିତ ଭାବେ ଆରମ୍ଭ କରନ୍ତୁ। |
| `INSPECTOR_LLM_HOSTS_EXTRA` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/lib/inspector/captureState.ts` | କ୍ୟାପ୍ଚର୍ ପାଇଁ LLM ଏଣ୍ଡପଏଣ୍ଟ ଭାବେ ବିବେଚିତ ଅତିରିକ୍ତ ହୋଷ୍ଟନେମ୍ଗୁଡ଼ିକ (କମା ଦ୍ୱାରା ପୃଥକ)। |
| `INSPECTOR_MASK_SECRETS` | `true` | `src/mitm/inspector/buffer.ts` | କ୍ୟାପ୍ଚର୍ କରାଯାଇଥିବା ଟ୍ରାଫିକ୍ରେ ଗୋପନୀୟ ତଥ୍ୟଗୁଡ଼ିକୁ (auth ହେଡର୍ / API କୀ) ମାସ୍କ କରନ୍ତୁ। |
| `INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES` | `30` | `src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts` | ସିଷ୍ଟମ୍-ପ୍ରକ୍ସି ଗାର୍ଡ OS ପ୍ରକ୍ସି ସେଟିଂସ୍କୁ ସ୍ୱୟଂଚାଳିତ ଭାବେ ପୂର୍ବାବସ୍ଥାକୁ ଫେରାଇବା ପୂର୍ବରୁ ମିନିଟ୍ ସଂଖ୍ୟା। |
| `INSPECTOR_INTERNAL_INGEST_TOKEN` | _(ସ୍ୱୟଂଚାଳିତ)_ | `src/app/api/tools/traffic-inspector/internal/ingest/route.ts` | ଇନ୍ସପେକ୍ଟର୍କୁ ଆଭ୍ୟନ୍ତରୀଣ କ୍ୟାପ୍ଚର୍ ଇନ୍ଜେଷ୍ଟ ପ୍ରମାଣୀକୃତ କରୁଥିବା ଟୋକନ୍। |
| `PLAYGROUND_COMPARE_MAX_COLUMNS` | `4` | `src/app/(dashboard)/dashboard/playground/` | Playground ତୁଳନା ମୋଡ୍ରେ ପାର୍ଶ୍ୱ-ପାର୍ଶ୍ୱ ସ୍ତମ୍ଭଗୁଡ଼ିକର ସର୍ବାଧିକ ସଂଖ୍ୟା। |
| `PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/app/(dashboard)/dashboard/playground/` | Playground 'ପ୍ରମ୍ପ୍ଟ ଉନ୍ନତ କରନ୍ତୁ' କାର୍ଯ୍ୟ ପାଇଁ ଡିଫଲ୍ଟ ମଡେଲ୍ (ସେଟ୍ ହୋଇନଥିଲେ ସକ୍ରିୟ ମଡେଲ୍କୁ ବ୍ୟବହାର କରେ)। |
| `BIFROST_ENABLED` | `1` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost ସାଇଡ୍କାର୍ ପ୍ରକ୍ସି ପାଇଁ ମାଷ୍ଟର୍ କିଲ୍ ସ୍ୱିଚ୍। ଏହାକୁ `0` ଭାବେ ସେଟ୍ କରାଗଲେ, ରୁଟ୍ଟି `X-Bifrost-Killswitch` ହେଡର୍ ସହିତ 503 ଫେରାଏ ଏବଂ ଅପରେଟର୍ଙ୍କୁ TS ପଥକୁ ପଠାଇଦିଆଯାଏ। ପୁନଃ ଡିପ୍ଲୟ ନକରି ସାଇଡ୍କାର୍କୁ ଅକ୍ଷମ କରିବା ପାଇଁ ଏହାକୁ ବ୍ୟବହାର କରନ୍ତୁ (tier-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 sidecar routeଟି TS streaming executor ପରିବର୍ତ୍ତେ gateway ମାଧ୍ୟମରେ SSE ଦ୍ୱାରା responseଗୁଡ଼ିକୁ ପୁଣି stream କରେ। gateway ମାଧ୍ୟମରେ non-streaming JSON responseକୁ ବାଧ୍ୟତାମୂଳକ କରିବା ପାଇଁ ଏହାକୁ `0`ରେ ସେଟ୍ କରନ୍ତୁ। |
| `BIFROST_TIMEOUT_MS` | `30000` | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | Bifrost gatewayକୁ proxy କରିବାବେଳେ ପ୍ରତି-request timeout (ms)। timeout ହେଲେ routeଟି `X-Bifrost-Fallback` header ମାଧ୍ୟମରେ TS relay path ଫେରାଏ। |
| `OMNIROUTE_BIFROST_KEY` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/app/api/v1/relay/chat/completions/bifrost/route.ts` | `BIFROST_API_KEY` ପାଇଁ alias (`OMNIROUTE_*` ମାଧ୍ୟମରେ env ପଢ଼ୁଥିବା scriptଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ)। ଉଭୟ ସେଟ୍ ହୋଇଥିଲେ `BIFROST_API_KEY`କୁ ପ୍ରାଥମିକତା ଦିଆଯାଏ। |
| `OMNIROUTE_RELAY_BACKEND` | `ts` / `auto` | `src/app/api/v1/relay/chat/completions/routingBackend.ts` | `/api/v1/relay/chat/completions` ପାଇଁ relay backend: `ts \| bifrost \| auto`। `ts` = TypeScript relay (Bifrost ବିନ୍ୟାସ ହୋଇନଥିଲେ default); `BIFROST_BASE_URL` ସେଟ୍ ହୋଇଥିଲେ ଏବଂ `BIFROST_ENABLED` ≠ `0` ଥିଲେ `auto` Bifrostକୁ ବାଛେ, sidecar ଅପହଞ୍ଚ ହେଲେ ସ୍ୱୟଂଚାଳିତ TS fallback ସହିତ; `bifrost` Bifrostକୁ ବାଧ୍ୟତାମୂଳକ କରେ (କଠୋର, କୌଣସି fallback ନାହିଁ)। Auth/rate-limit/injection-guard/allowlist ସବୁବେଳେ ପ୍ରଥମେ Next routeରେ ଚାଲେ। responseଗୁଡ଼ିକରେ `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` ପାଇଁ ଗ୍ରହଣୀୟ alias (ସମାନ `ts \| bifrost \| auto` ମୂଲ୍ୟଗୁଡ଼ିକ)। ଉଭୟ ସେଟ୍ ହୋଇଥିଲେ `OMNIROUTE_RELAY_BACKEND`କୁ ପ୍ରାଥମିକତା ଦିଆଯାଏ। |
| `OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS` | `5000` | `src/app/api/v1/relay/chat/completions/bifrostCooldown.ts` | `auto` modeରେ Bifrost sidecar hop ବିଫଳ ହେବା ପରେ relay ପୁଣି sidecarକୁ ଚେଷ୍ଟା କରିବା ପୂର୍ବରୁ cooldown (ms); cooldown ଅବଧି ଚାଲିଥିବାବେଳେ ଏହା ସିଧାସଳଖ TS pathକୁ route କରେ, ତା’ପରେ ପୁଣି probe କରେ। `0` ଏହାକୁ ଅକ୍ଷମ କରେ। କେବଳ `OMNIROUTE_RELAY_BACKEND=auto` ଥିବାବେଳେ ପ୍ରୟୋଜ୍ୟ। |
| `OMNIROUTE_TLS_CERT` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/commands/serve.mjs` | HTTPS ମାଧ୍ୟମରେ `omniroute serve` ପରିବେଷଣ କରିବା ପାଇଁ ଏକ PEM TLS certificateର path (`--tls-cert` ସହ ସମତୁଲ୍ୟ)। ଏହାକୁ `OMNIROUTE_TLS_KEY` ସହିତ ଯୋଡ଼ିବା ଆବଶ୍ୟକ; ତା’ପରେ standalone server ସେହି listenerରେ TLSକୁ ସମାପ୍ତ କରେ (`wss://` ଅପରିବର୍ତ୍ତିତ ଭାବେ କାମ କରେ)। ସେଟ୍ ହୋଇନାହିଁ → ସାଧାରଣ HTTP। cert/key ମଧ୍ୟରୁ କେବଳ ଗୋଟିଏ ଦେଲେ କିମ୍ବା ପଢ଼ିହେଉନଥିବା path ଦେଲେ, ଏକ warning log ହୁଏ ଏବଂ HTTPରେ ରହେ। |
| `OMNIROUTE_TLS_KEY` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `bin/cli/commands/serve.mjs` | `omniroute serve` HTTPS ପାଇଁ PEM TLS private keyର path (`--tls-key` ସହ ସମତୁଲ୍ୟ)। ଏହାକୁ `OMNIROUTE_TLS_CERT` ସହିତ ଯୋଡ଼ିବା ଆବଶ୍ୟକ। `OMNIROUTE_TLS_CERT` ଦେଖନ୍ତୁ। |
| `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED` | `0` | `src/lib/security/localEndpoints.ts` | `/api/local/*` routeଗୁଡ଼ିକ ପାଇଁ master switch। ସେଟ୍ ହୋଇନଥିଲେ କିମ୍ବା `0` ଥିଲେ, productionରେ ସମସ୍ତ `/api/local/*` route 503 ଫେରାଏ। Redis launcher ଏବଂ ସମାନ 1-click local service starterଗୁଡ଼ିକୁ ସକ୍ଷମ କରିବା ପାଇଁ non-loopback deploymentରେ ଏହା `1` ହେବା ଆବଶ୍ୟକ। `isLocalOnlyPath()` route-guard classification (`src/server/authz/routeGuard.ts`ରେ `LOCAL_ONLY_API_PREFIXES`) ସହିତ ଅତିରିକ୍ତ ସୁରକ୍ଷା ବ୍ୟବସ୍ଥା। |
| `OMNIROUTE_LOCAL_ENDPOINTS_TOKEN` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/lib/security/localEndpoints.ts` | loopbackରେ ନଥିବା `/api/local/*` callerମାନଙ୍କ ପାଇଁ Bearer token (ଯଥା desktop app)। ସେଟ୍ ହୋଇଥିଲେ, non-loopback IPରୁ ଆସୁଥିବା requestଗୁଡ଼ିକରେ `Authorization: Bearer ` ରହିବା ଆବଶ୍ୟକ। non-loopback deploymentରେ `OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1` ଥିଲେ ଏହା ଆବଶ୍ୟକ। |
| `OMNIROUTE_REDIS_CONTAINER_NAME` | `omniroute-redis` | `bin/cli/commands/redis.mjs` | 1-କ୍ଲିକ୍ Redis ଲଞ୍ଚର୍ (`omniroute redis up`) ପାଇଁ କଣ୍ଟେନର୍ ନାମ। ଏହା CLI ଏବଂ `RedisLauncherPanel` GUI—ଉଭୟ ଦ୍ୱାରା ବ୍ୟବହୃତ ହୁଏ। |
| `OMNIROUTE_REDIS_HOST_PORT` | `6379` | `bin/cli/commands/redis.mjs` | 1-କ୍ଲିକ୍ Redis ଲଞ୍ଚର୍ ପାଇଁ ହୋଷ୍ଟ ପୋର୍ଟ। ଯଦି ହୋଷ୍ଟ ପୂର୍ବରୁ 6379 ସହ ବାଇଣ୍ଡ ହୋଇଛି, ତେବେ ଏହାକୁ ବଢ଼ାନ୍ତୁ। କଣ୍ଟେନର୍ର ଆଭ୍ୟନ୍ତରୀଣ ପୋର୍ଟ 6379 ହିଁ ରହେ। |
| `OMNIROUTE_REDIS_BIND_HOST` | `127.0.0.1` | `bin/cli/commands/redis.mjs` | 1-କ୍ଲିକ୍ Redis ଲଞ୍ଚର୍ ଯେଉଁ ହୋଷ୍ଟ ଇଣ୍ଟରଫେସ୍ରେ ପ୍ରକାଶିତ ହୁଏ। ଲଞ୍ଚର୍ଟି ବିନା ପାସୱାର୍ଡରେ Redis ଆରମ୍ଭ କରେ, ତେଣୁ `0.0.0.0` ସହ ବାଇଣ୍ଡ କଲେ ଆପଣଙ୍କ LANର ପ୍ରତ୍ୟେକ ହୋଷ୍ଟକୁ ଅପ୍ରମାଣିତ Redis ପ୍ରବେଶ ମିଳିଯାଏ—ଆପଣ ନିଜେ ଇନ୍ଷ୍ଟାନ୍ସରେ ପାସୱାର୍ଡ ସେଟ୍ କଲେ ମାତ୍ର ଏହାକୁ ବ୍ୟାପକ କରନ୍ତୁ। |
| `REDIS_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose ଯେଉଁ ହୋଷ୍ଟ ଇଣ୍ଟରଫେସ୍ରେ Redis ସାଇଡକାର୍କୁ ପ୍ରକାଶ କରେ (#9286)। compose Redis `requirepass` ବିନା ଚାଲେ; ଆପ୍ କଣ୍ଟେନର୍ଗୁଡ଼ିକ compose ନେଟୱର୍କ (`redis:6379`) ମାଧ୍ୟମରେ ଏହାକୁ ଆକ୍ସେସ୍ କରନ୍ତି—ପ୍ରକାଶିତ ପୋର୍ଟ କେବଳ ହୋଷ୍ଟ-ପାର୍ଶ୍ୱ ଟୁଲିଂ ପାଇଁ ରହିଛି। `0.0.0.0` ସମଗ୍ର LANକୁ ଏକ ଅପ୍ରମାଣିତ Redis ଉନ୍ମୁକ୍ତ କରେ। |
| `REDIS_PORT` | `6379` | `docker-compose.yml` | compose Redis ସାଇଡକାର୍ ପାଇଁ ହୋଷ୍ଟ ପୋର୍ଟ। |
| `APP_BIND_HOST` | `127.0.0.1` | `docker-compose.yml`, `docker-compose.prod.yml` | docker-compose ଯେଉଁ ହୋଷ୍ଟ ଇଣ୍ଟରଫେସ୍ରେ ଆପ୍ର ନିଜସ୍ୱ ଡ୍ୟାସ୍ବୋର୍ଡ/API/ଲାଇଭ୍-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)। LAN ଉନ୍ମୁକ୍ତତା ସମ୍ପର୍କରେ `REDIS_BIND_HOST` ପରି ସମାନ ଯୁକ୍ତି ପ୍ରଯୁଜ୍ୟ। |
| `BIFROST_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose ଯେଉଁ ହୋଷ୍ଟ ଇଣ୍ଟରଫେସ୍ରେ Bifrost ରାଉଟର୍ ସାଇଡକାର୍କୁ ପ୍ରକାଶ କରେ (#12578)। LAN ଉନ୍ମୁକ୍ତତା ସମ୍ପର୍କରେ `REDIS_BIND_HOST` ପରି ସମାନ ଯୁକ୍ତି ପ୍ରଯୁଜ୍ୟ। |
| `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 ସେବା ନାମକୁ ସୂଚାଏ; ବାହ୍ୟ ଡିପ୍ଲୟମେଣ୍ଟ ପାଇଁ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ। କୋଡ୍ରେ `qdrantEnabled` `true` ଥିଲେ ମାତ୍ର ଏହା ବ୍ୟବହୃତ ହୁଏ (`src/lib/memory/vectorStore.ts:108`)। |
| `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` | ଯେଉଁ ସ୍ଲାଇଡିଂ ୱିଣ୍ଡୋ (ସେକେଣ୍ଡରେ) ମଧ୍ୟରେ `429` ତ୍ରୁଟିଗୁଡ଼ିକୁ `OMNIROUTE_ROTATE_429_THRESHOLD` ପାଇଁ ଗଣନା କରାଯାଏ। |
| `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` | ସ୍ଲାଇଡିଂ ୱିଣ୍ଡୋ (ସେକେଣ୍ଡରେ), ଯେଉଁ ସମୟ ମଧ୍ୟରେ `5xx` ତ୍ରୁଟିଗୁଡ଼ିକୁ `OMNIROUTE_ROTATE_500_THRESHOLD` ପାଇଁ ଗଣନା କରାଯାଏ। |
| `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` | ସ୍ଲାଇଡିଂ ୱିଣ୍ଡୋ (ସେକେଣ୍ଡରେ), ଯେଉଁ ସମୟ ମଧ୍ୟରେ `502` ତ୍ରୁଟିଗୁଡ଼ିକୁ `OMNIROUTE_ROTATE_502_THRESHOLD` ପାଇଁ ଗଣନା କରାଯାଏ। |
| `OMNIROUTE_ROTATE_ON_400` | `false` | `open-sse/services/rotationConfig.ts` | ଅପ୍ଟ-ଇନ୍ (ଡିଫଲ୍ଟରେ ବନ୍ଦ): ଏହା `true` ଥିଲେ, ଏକ ସାଧାରଣ `400` (ଖରାପ ଅନୁରୋଧ) ମଧ୍ୟ ଆକାଉଣ୍ଟ ରୋଟେସନ୍ ଟ୍ରିଗର୍ କରେ। ଏହା କେବଳ ଯୋଗାତ୍ମକ — ଏହି ଫ୍ଲାଗ୍ର ମୂଲ୍ୟ ଯାହା ହେଉନା କାହିଁକି, ରେଟ୍-ଲିମିଟ୍/କୋଟା ଟେକ୍ସ୍ଟ ବହନ କରୁଥିବା `400` ସ୍ଥିତିରେ ଫଲ୍ଓଭର୍ କରିବାର ଇଞ୍ଜିନ୍ର ବର୍ତ୍ତମାନର ଆଚରଣକୁ ଏହା କେବେ ଅବରୋଧ କରେ ନାହିଁ। |
| `OMNIROUTE_ROTATE_400_THRESHOLD` | `1` | `open-sse/services/rotationConfig.ts` | ଆକାଉଣ୍ଟକୁ ରୋଟେଟ୍ କରିବା ପୂର୍ବରୁ `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` ମଧ୍ୟରେ ଆବଶ୍ୟକ `400` ତ୍ରୁଟିର ସଂଖ୍ୟା (କେବଳ `OMNIROUTE_ROTATE_ON_400=true` ଥିଲେ ଏହାକୁ ବିଚାର କରାଯାଏ)। |
| `OMNIROUTE_ROTATE_400_WINDOW_SECONDS` | `120` | `open-sse/services/rotationConfig.ts` | ସ୍ଲାଇଡିଂ ୱିଣ୍ଡୋ (ସେକେଣ୍ଡରେ), ଯେଉଁ ସମୟ ମଧ୍ୟରେ `400` ତ୍ରୁଟିଗୁଡ଼ିକୁ `OMNIROUTE_ROTATE_400_THRESHOLD` ପାଇଁ ଗଣନା କରାଯାଏ। |
### Claude ୱାର୍ମଅପ୍ ସ୍କେଜୁଲର୍
ଅପ୍ଟ-ଇନ୍ କରାଯାଇଥିବା Anthropic OAuth ସଂଯୋଗଗୁଡ଼ିକ ପାଇଁ Cron-ଚାଳିତ ୱାର୍ମଅପ୍, ଯାହାଦ୍ୱାରା 5-ଘଣ୍ଟିଆ ରେଟ୍-ଲିମିଟ୍ ୱିଣ୍ଡୋଟି ପ୍ରଥମ ବାସ୍ତବ ଅନୁରୋଧ ପରିବର୍ତ୍ତେ ଏକ ସରଳ ନିର୍ଦ୍ଧାରିତ ଅନୁରୋଧ ଦ୍ୱାରା ଖୋଲାଯାଏ (#8848)। `OMNIROUTE_WARMUP_ENABLED` ସତ୍ୟସଦୃଶ **ଏବଂ** ସଂଯୋଗଟି `settings.claudeWarmup.connections`ରେ ଫ୍ଲାଗ୍ କରାଯାଇନଥିଲେ ସ୍କେଜୁଲର୍ ବନ୍ଦ ରହେ; ପରିବେଶ ଭେରିଏବଲ୍ ଚାଲୁ ଥିଲେ ମଧ୍ୟ ଏକ ଖାଲି ସଂଯୋଗ ତାଲିକାର ଅର୍ଥ ହେଉଛି କୌଣସି ସଂଯୋଗକୁ ୱାର୍ମଅପ୍ କରାଯିବ ନାହିଁ।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ------------------------------ | --------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_WARMUP_ENABLED` | _(ସେଟ୍ ହୋଇନାହିଁ → ବନ୍ଦ)_ | `src/lib/warmupScheduler.ts` | ୱାର୍ମଅପ୍ ସ୍କେଜୁଲର୍ ପାଇଁ ମୁଖ୍ୟ ସ୍ୱିଚ୍। `1`/`true`/`yes`/`on` ଗ୍ରହଣ କରେ (ଅକ୍ଷରର କେସ୍ ପ୍ରତି ସମ୍ବେଦନଶୀଳ ନୁହେଁ, ଆଗପଛ ଖାଲି ସ୍ଥାନ କାଟି ଦିଆଯାଏ)। ଅନ୍ୟ କୌଣସି ମୂଲ୍ୟ କିମ୍ବା ସେଟ୍ ହୋଇନଥିଲେ, ସ୍କେଜୁଲର୍ ବନ୍ଦ ରହେ। |
| `OMNIROUTE_WARMUP_CRON` | `0 7 * * *` | `src/lib/warmupScheduler.ts` | ୱାର୍ମଅପ୍ ଟିକ୍ ପାଇଁ ପାଞ୍ଚ-କ୍ଷେତ୍ର ବିଶିଷ୍ଟ cron ଏକ୍ସପ୍ରେସନ୍, ଯାହା ହୋଷ୍ଟ ଘଡ଼ି ନିର୍ବିଶେଷରେ `America/Los_Angeles` (Anthropicର ରିସେଟ୍ ସମୟ ମଣ୍ଡଳ) ଅନୁସାରେ ମୂଲ୍ୟାୟନ କରାଯାଏ। |
| `OMNIROUTE_WARMUP_CONCURRENCY` | `3` | `src/lib/warmupScheduler.ts` | ପ୍ରତ୍ୟେକ ଟିକ୍ରେ କେତୋଟି କନେକ୍ସନ୍ ସମାନ୍ତରାଳ ଭାବେ ୱାର୍ମ କରାଯିବ। ଏହାକୁ `1`-`10` ମଧ୍ୟରେ ସୀମିତ କରାଯାଏ; ଅଣ-ସଂଖ୍ୟାତ୍ମକ ମୂଲ୍ୟ ପାଇଁ `3` ବ୍ୟବହାର କରାଯାଏ। |
| `OMNIROUTE_WARMUP_MODEL` | `claude-3-5-haiku-20241022` | `src/lib/warmupScheduler.ts` | ୱାର୍ମଅପ୍ ଅନୁରୋଧ ପାଇଁ ବ୍ୟବହୃତ ମଡେଲ୍। ଡିଫଲ୍ଟଟି ଆପଣଙ୍କ ପ୍ଲାନ୍ରେ ଉପଲବ୍ଧ ନଥିଲେ ମାତ୍ର ଏହାକୁ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ; ୱିଣ୍ଡୋ ଖୋଲିପାରୁଥିବା ସବୁଠାରୁ ଶସ୍ତା ମଡେଲ୍ ବାଛନ୍ତୁ। |
### ବ୍ରାଉଜର୍-ଲଗଇନ୍ VNC ସେସନ୍ ଏବଂ ଡାଟା-ଡିର୍ ଉପନାମ
ଇଣ୍ଟରାକ୍ଟିଭ୍ ବ୍ରାଉଜର୍-ଲଗଇନ୍ କ୍ରେଡେନ୍ସିଆଲ୍ ସଂଗ୍ରହ (`/api/vnc-session`) ପାଇଁ ବ୍ୟବହୃତ କଣ୍ଟେନରାଇଜ୍ଡ Chromium+VNC, ଏହା ସହିତ ଏକ ପୁରୁଣା `DATA_DIR` ଉପନାମ। ସବୁଗୁଡ଼ିକ ଇଚ୍ଛାଧୀନ — VNC ଡିଫଲ୍ଟଗୁଡ଼ିକ ସହିତ ଥିବା `omniroute-vnc-chromium:local` ଇମେଜ୍କୁ ଲକ୍ଷ୍ୟ କରେ ଏବଂ କେବଳ କଷ୍ଟମ୍ କଣ୍ଟେନର୍ ଇମେଜ୍, ପୋର୍ଟ କିମ୍ବା ଲାଇଫ୍ସାଇକଲ୍ ଟ୍ୟୁନିଂ ପାଇଁ ଓଭର୍ରାଇଡ୍ କରାଯାଏ।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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` | ଲଗଇନ୍ ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପରେ ସଂଗୃହୀତ ସେସନ୍/cookies ପ୍ରାପ୍ତ କରିବା ପାଇଁ ସମୟସୀମା (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 stdoutରେ ହେଲ୍ଥଚେକ୍ର ଅନାବଶ୍ୟକ ଆଉଟ୍ପୁଟ୍କୁ ନିରବ କରନ୍ତୁ। |
| `OMNIROUTE_PLAYWRIGHT_SKIP_BUILD` | `0` | `scripts/dev/run-next-playwright.mjs` | Playwright ଆରମ୍ଭ ହେବା ପୂର୍ବରୁ Next.js ପ୍ରଡକ୍ସନ୍ ବିଲ୍ଡକୁ ଏଡ଼ାନ୍ତୁ (CI ଅପ୍ଟିମାଇଜେସନ୍)। |
| `OMNIROUTE_SKIP_UNINSTALL_HOOK` | `0` | `scripts/build/uninstall.mjs` | OmniRoute ଅନଇନ୍ଷ୍ଟଲ୍ ହୁକ୍କୁ ଏଡ଼ାନ୍ତୁ (`node_modules`କୁ ଅକ୍ଷୁଣ୍ଣ ରଖିବା ପାଇଁ CI ଦ୍ୱାରା ବ୍ୟବହୃତ)। |
| `ECOSYSTEM_SERVER_WAIT_MS` | `180000` | `scripts/dev/run-ecosystem-tests.mjs` | ଇକୋସିଷ୍ଟମ୍/ପ୍ରୋଟୋକଲ୍ ପରୀକ୍ଷଣ ଚଳାଇବା ପୂର୍ବରୁ ସର୍ଭର୍ ସୁସ୍ଥ ହେବା ପାଇଁ ଅପେକ୍ଷା ସମୟ (ms)। |
| `ELECTRON_SMOKE_URL` | `http://127.0.0.1:20128/login` | `scripts/dev/smoke-electron-packaged.mjs` | ପ୍ୟାକେଜ୍ କରାଯାଇଥିବା ଆପ୍ ଯେଉଁ URL ପରିବେଷଣ କରିବ ବୋଲି Electron ସ୍ମୋକ୍ ହାର୍ନେସ୍ ଆଶା କରେ। |
| `ELECTRON_SMOKE_TIMEOUT_MS` | `45000` | `scripts/dev/smoke-electron-packaged.mjs` | ସ୍ମୋକ୍ ହାର୍ନେସ୍ ପ୍ରୟାସ ଛାଡ଼ିବା ପୂର୍ବରୁ ମୋଟ ଟାଇମ୍ଆଉଟ୍ (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` | ଚାଳନ ପରେ smoke ଡାଟା ଡିରେକ୍ଟୋରୀକୁ ସଂରକ୍ଷିତ ରଖିବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ। |
| `ELECTRON_SMOKE_STREAM_LOGS` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | ଚାଳନ ସମୟରେ Electron ଲଗ୍ଗୁଡ଼ିକୁ stdoutକୁ ଷ୍ଟ୍ରିମ୍ କରିବା ପାଇଁ `1` ସେଟ୍ କରନ୍ତୁ। |
| `ELECTRON_SMOKE_COLD_RESTART` | `0` | `scripts/dev/smoke-electron-packaged.mjs` | #7592: ସେହି ଏକା ଡାଟା ଡିରେକ୍ଟୋରୀ ବିରୁଦ୍ଧରେ ପୁନଃଚାଳନ କରନ୍ତୁ ଏବଂ ଦ୍ୱିତୀୟ ଚାଳନଟି ନେଟିଭ୍ SQLite ଡ୍ରାଇଭର୍ ଚୟନ କରୁଛି ବୋଲି ନିଶ୍ଚିତ କରନ୍ତୁ। |
| `CLI_DEVIN_BIN` | _(PATH ସନ୍ଧାନ)_ | `open-sse/executors/devin-cli.ts` | Devin CLI ବାଇନାରୀ ପଥକୁ ଓଭରରାଇଡ୍ କରନ୍ତୁ। |
### ଡକ୍ୟୁମେଣ୍ଟ ଅନୁବାଦ ପାଇପଲାଇନ୍
`scripts/i18n/run-translation.mjs` ଦ୍ୱାରା ବ୍ୟବହୃତ (`npm run i18n:run` କମାଣ୍ଡ)।
ସମସ୍ତ ପାଞ୍ଚଟି ଭେରିଏବଲ୍ ଡିଫଲ୍ଟ ଭାବେ ସେଟ୍ ହୋଇନଥାଏ — କେବଳ ଯେଉଁ ମେସିନ୍ଗୁଡ଼ିକ
ଡକ୍ୟୁମେଣ୍ଟ ଅନୁବାଦକ ଚଳାଇବାରେ ସକ୍ଷମ ହେବା ଉଚିତ, ସେଗୁଡ଼ିକର `.env`ରେ ଏଗୁଡ଼ିକୁ ସେଟ୍ କରନ୍ତୁ।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ----------------------------------- | ----------------- | ---------------------------------- | ------------------------------------------------------------------- |
| `OMNIROUTE_TRANSLATION_API_URL` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `scripts/i18n/run-translation.mjs` | ଅନୁବାଦ ବ୍ୟାକଏଣ୍ଡ ପାଇଁ OpenAI-ସୁସଙ୍ଗତ ଆଧାର URL। |
| `OMNIROUTE_TRANSLATION_API_KEY` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `scripts/i18n/run-translation.mjs` | ଅନୁବାଦ ବ୍ୟାକଏଣ୍ଡ ପାଇଁ ବିୟରର୍ ଟୋକନ୍ (କେବେ ମଧ୍ୟ ଲଗ୍ କରାଯାଏ ନାହିଁ)। |
| `OMNIROUTE_TRANSLATION_MODEL` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `scripts/i18n/run-translation.mjs` | ମଡେଲ୍ ID, ଯଥା `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 ଫିଚର୍ ଫ୍ଲାଗ୍ ଦ୍ୱାରା ନିୟନ୍ତ୍ରିତ ଇଚ୍ଛାଧୀନ ଆଡ୍-ଅନ୍ (ଡିଫଲ୍ଟ ଭାବେ ବନ୍ଦ — ଏହା env var ନୁହେଁ, ବରଂ Settings/DB ମାଧ୍ୟମରେ ଟୋଗଲ୍ କରାଯାଉଥିବା ଏକ ଫିଚର୍
ଫ୍ଲାଗ୍; ଦେଖନ୍ତୁ
[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 ଘୋଷଣା ରିଡର୍କୁ କୌଣସି environment
variable ଦ୍ୱାରା କନଫିଗର୍ କରାଯାଏ ନାହିଁ ଏବଂ ଏହା RADAR_ENABLED ଫିଚର୍ ଫ୍ଲାଗ୍ ଉପରେ ନିର୍ଭର କରେ ନାହିଁ। ଏହା କେବଳ
GET ମାଧ୍ୟମରେ `src/shared/utils/releaseNotes.ts`ରେ ଘୋଷିତ ସାର୍ବଜନୀନ ରିପୋଜିଟୋରିର
`news.json` URL ପଢ଼େ; ଖାରଜକରଣ 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` | କୌଣସି source file ଦ୍ୱାରା କେବେବି ପଢ଼ାଯାଏ ନାହିଁ। SQLite ହେଉଛି ଏକମାତ୍ର ସମର୍ଥିତ driver — ଚୟନର ଆବଶ୍ୟକତା ନାହିଁ। |
| `INSTANCE_NAME=omniroute` | ପୁରୁଣା docs/env templateଗୁଡ଼ିକରେ ଉପସ୍ଥିତ, କିନ୍ତୁ runtimeରେ ଅବ୍ୟବହୃତ। ଭବିଷ୍ୟତର multi-instance ବୈଶିଷ୍ଟ୍ୟରେ ଫେରିପାରେ। |
| `SQLITE_MAX_SIZE_MB=2048` | source codeରେ ଉଲ୍ଲେଖ ନାହିଁ। Database ଆକାରକୁ କୃତ୍ରିମ ଭାବେ ସୀମିତ କରାଯାଇନାହିଁ। |
| `SQLITE_CLEAN_LEGACY_FILES=true` | source codeରେ ଉଲ୍ଲେଖ ନାହିଁ। Legacy cleanup ସମ୍ଭବତଃ ହଟାଇ ଦିଆଯାଇଛି। |
| `CLI_ROO_BIN` | `src/shared/services/cliRuntime.ts`ରେ ପଞ୍ଜୀକୃତ ନୁହେଁ। |
| `CLI_KIMI_CODING_BIN` | `src/shared/services/cliRuntime.ts`ରେ ପଞ୍ଜୀକୃତ ନୁହେଁ (Kimi Coding ଏକ CLI binary ନୁହେଁ, ବରଂ OAuth ବ୍ୟବହାର କରେ)। |
| `IFLOW_OAUTH_CLIENT_ID` / `IFLOW_OAUTH_CLIENT_SECRET` | source codeର କୌଣସି ସ୍ଥାନରେ ଉଲ୍ଲେଖ ନାହିଁ। |
| `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ରେ ହଟାଯାଇଛି। runtime ଆଉ ଏହି env varଗୁଡ଼ିକୁ ପଢ଼େ ନାହିଁ — credentialsଗୁଡ଼ିକ Dashboard / `data/provider-credentials.json` / encrypted DBରୁ ଆସେ। |
| `CURSOR_PROTOBUF_DEBUG` | v3.8.0ରେ ହଟାଯାଇଛି। Cursor executor `CURSOR_DEBUG` / `CURSOR_STREAM_DEBUG` ବ୍ୟବହାର କରେ (§22 ଦେଖନ୍ତୁ)। |
| `CLI_COMPAT_KIRO` | v3.8.0ରେ ହଟାଯାଇଛି। Kiro `CLI_COMPAT_OMITTED_PROVIDER_IDS`ରେ ଅଛି — ଏହାର toggleର କୌଣସି ପ୍ରଭାବ ନାହିଁ। |
| `QIANFAN_API_KEY` | v3.8.0ରେ ଅନ୍ୟାନ୍ୟ ଅବ୍ୟବହୃତ provider API key stubଗୁଡ଼ିକ ସହିତ ହଟାଯାଇଛି। |
### ଡିଫଲ୍ଟ ମୂଲ୍ୟ ସଂଶୋଧନ
| ଭେରିଏବଲ୍ | ପୁରୁଣା `.env.example` ମୂଲ୍ୟ | ପ୍ରକୃତ Code ଡିଫଲ୍ଟ | ସଂଶୋଧନ |
| ------------------------- | --------------------------- | ------------------ | ---------------------------------------------------------------- |
| `APP_LOG_RETENTION_DAYS` | `90` | `7` | ✅ ବିଭ୍ରାନ୍ତିକର ମୂଲ୍ୟ ହଟାଗଲା; `7`କୁ ଡିଫଲ୍ଟ ଭାବେ ଦଲିଲଭୁକ୍ତ କରାଗଲା |
| `CALL_LOG_RETENTION_DAYS` | `90` | `7` | ✅ ବିଭ୍ରାନ୍ତିକର ମୂଲ୍ୟ ହଟାଗଲା; `7`କୁ ଡିଫଲ୍ଟ ଭାବେ ଦଲିଲଭୁକ୍ତ କରାଗଲା |
### OpenCode config ପୁନଃସୃଷ୍ଟି (ad-hoc tooling)
ଚାଲୁଥିବା OmniRoute instanceରୁ ସଠିକ୍ `limit.context` ଏବଂ `limit.output` ମୂଲ୍ୟ ନେଇ ଏକ `opencode.json`
ପୁନଃସୃଷ୍ଟି କରିବା ପାଇଁ `scripts/ad-hoc/regen-opencode-config.ts` ଦ୍ୱାରା ବ୍ୟବହୃତ ହୁଏ।
ସାଧାରଣ ପରିଚାଳନା ପାଇଁ ଏଗୁଡ଼ିକ ମଧ୍ୟରୁ କୌଣସିଟି ଆବଶ୍ୟକ ନୁହେଁ — scriptଟି
କେବଳ developer tooling ପାଇଁ ଉଦ୍ଦିଷ୍ଟ।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ସୋର୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ------------------ | ------------------------ | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `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` | ଅଫ୍ଲାଇନ୍ କମ୍ପ୍ରେସନ୍-ମୂଲ୍ୟାଙ୍କନ 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 ରେ ଯୋଗ ହୋଇଥିବା ବିଷୟଗୁଡ଼ିକ
ପୂର୍ବବର୍ତ୍ତୀ ପରିବେଶ-ଚୁକ୍ତି ସ୍ନାପ୍ଶଟ୍ ପରେ ଏହି ସେଟିଂଗୁଡ଼ିକ ପ୍ରଚଳନ କରାଯାଇଥିଲା।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| ------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OMNIROUTE_CHAT_ADMISSION_QUEUE_MS` | `2000` | `src/shared/middleware/chatBodyAdmission.ts` | ପୁନଃଚେଷ୍ଟାଯୋଗ୍ୟ `503` ଫେରାଇବା ପୂର୍ବରୁ ଏକ ଭାରୀ ଚାଟ୍ ଆଡମିଶନ୍ ସ୍ଲଟ୍ ପାଇଁ ସର୍ବାଧିକ ଅପେକ୍ଷା ସମୟ; ଏକ ତତ୍କ୍ଷଣାତ୍ `503` ବଦଳରେ ସ୍ୱଳ୍ପ ଓ ସୀମିତ ଅପେକ୍ଷା ଏଜେଣ୍ଟ୍ର ହଠାତ୍ ବୃଦ୍ଧିକୁ କ୍ରମିକ କରେ। `0` ତତ୍କ୍ଷଣାତ୍ ପ୍ରତ୍ୟାଖ୍ୟାନକୁ ପୁନଃସ୍ଥାପନ କରେ। |
| `OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES` | `4194304` (4 MB) | `src/shared/middleware/chatBodyAdmission.ts` | ଆଡମିଶନ୍ ଅପେକ୍ଷା ପାଇଁ କ୍ୟୁ ହୋଇଥିବା ବାଇଟ୍ର ବଜେଟ୍: ପ୍ରକ୍ରିୟା-ବ୍ୟାପୀ ଭାବେ ରଖାଯାଇଥିବା ମୋଟ ବଫର୍କୃତ ବଡି ବାଇଟ୍କୁ ସୀମିତ କରେ, ଯାହାଦ୍ୱାରା ଅପେକ୍ଷାଟି ହିପ୍କୁ ବୃଦ୍ଧି କରିପାରିବ ନାହିଁ (#4380)। ବଜେଟ୍ ଅତିକ୍ରମ କରୁଥିବା ଅପେକ୍ଷାଗୁଡ଼ିକ ତତ୍କ୍ଷଣାତ୍ ଏକ ପୁନଃଚେଷ୍ଟାଯୋଗ୍ୟ `503` ପାଆନ୍ତି। |
| `OMNIROUTE_CHAT_VIRTUAL_TTL_MS` | `60000` (60 s) | `src/shared/middleware/chatBodyAdmission.ts` | #10110 ପରଠାରୁ ଅବମୂଲ୍ୟାୟିତ ନୋ-ଅପ୍: ପ୍ରତି-ସେସନ୍ ଆଡମିଶନ୍ ଲେନ୍ଗୁଡ଼ିକୁ ହଟାଇ ଗୋଟିଏ ପ୍ରକ୍ରିୟା-ବ୍ୟାପୀ ବଜେଟ୍ ବ୍ୟବହାର କରାଯାଇଛି। ବିନ୍ୟାସ ସୁସଙ୍ଗତତା ପାଇଁ ଗ୍ରହଣ କରାଯାଏ; ଅଣଦେଖା କରାଯାଏ। |
| `OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS` | `64` | `src/shared/middleware/chatBodyAdmission.ts` | #10110 ପରଠାରୁ ଅବମୂଲ୍ୟାୟିତ ନୋ-ଅପ୍: ପ୍ରତି-ସେସନ୍ ଆଡମିଶନ୍ ଲେନ୍ଗୁଡ଼ିକୁ ହଟାଇ ଗୋଟିଏ ପ୍ରକ୍ରିୟା-ବ୍ୟାପୀ ବଜେଟ୍ ବ୍ୟବହାର କରାଯାଇଛି। ବିନ୍ୟାସ ସୁସଙ୍ଗତତା ପାଇଁ ଗ୍ରହଣ କରାଯାଏ; ଅଣଦେଖା କରାଯାଏ। |
| `OMNIROUTE_CHAT_VIRTUAL_LANES` | `0` (ବନ୍ଦ) | `open-sse/services/admission/runtime.ts` | ଅନୁକୂଳନଶୀଳ ରନ୍ଟାଇମ୍ ଭର୍ଚୁଆଲ୍ ଆଡମିଶନ୍ ଲେନ୍ (#9654): ପ୍ରତି-ଟେନାଣ୍ଟ୍ ଅନୁକୂଳନଶୀଳ ଗେଟ୍ (ସିଷ୍ଟମ୍ 2) ପାଇଁ ମୁଖ୍ୟ ସ୍ୱିଚ୍। ଉପରୋକ୍ତ ଅବମୂଲ୍ୟାୟିତ ପ୍ରତି-କନେକ୍ସନ୍ ଲେନ୍ ଭେରିଏବଲ୍ଗୁଡ଼ିକଠାରୁ ଏହା ଭିନ୍ନ (TTL_MS / MAX_SESSIONS, #10110 ପରଠାରୁ ନୋ-ଅପ୍)। ସମାନ ନାମର ଡ୍ୟାସ୍ବୋର୍ଡ ଫିଚର୍ ଫ୍ଲାଗ୍; ପରିବେଶ ଭେରିଏବଲ୍ ଡ୍ୟାସ୍ବୋର୍ଡ ଓଭର୍ରାଇଡ୍ଠାରୁ ଅଗ୍ରାଧିକାର ପାଏ; ପୁନଃଆରମ୍ଭ ଆବଶ୍ୟକ। |
| `OMNIROUTE_RUNNOW_TIMEOUT_MS` | `30000` | `src/app/api/jobs/[id]/run-now/route.ts` | କ୍ୟୁରେ ଥିବା ରନ୍ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ ଏକ ଚାଲୁଥିବା ଜବ୍ ପାଇଁ run-now କଲ୍ କେତେ ସମୟ ଅପେକ୍ଷା କରିବ, ତାହା ସୀମିତ କରେ। |
| `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 ଜେନେରେଟ୍ ସବ୍ମିସନ୍ଗୁଡ଼ିକ ମଧ୍ୟରେ ସର୍ବନିମ୍ନ ବ୍ୟବଧାନ। |
| `ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS` | `15000` | `open-sse/services/adobeFireflySession.ts` | ପ୍ରତ୍ୟେକ ତୃତୀୟ ସଫଳ Adobe ସବ୍ମିସନ୍ ପରେ ଅତିରିକ୍ତ ନିଷ୍କ୍ରିୟ ଅବଧି। |
| `ADOBE_FIREFLY_CHROME_HEADLESS` | `0` | `open-sse/services/adobeFireflyBrowserLogin.ts` | କେବଳ ଡିବଗ୍ ପାଇଁ ପ୍ରକୃତ-ହେଡ୍ଲେସ୍ ମୋଡ୍; Adobe colligo ସାଧାରଣତଃ ଏହାଦ୍ୱାରା ସୃଷ୍ଟ ରିସ୍କ ସେସନ୍କୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରେ। |
| `CHROME_PATH` | ସ୍ୱୟଂଚାଳିତ ଚିହ୍ନଟ | `open-sse/executors/cloudflare-playground.ts`, `open-sse/executors/chatgpt-web-codex.ts` | ପ୍ଲାଟଫର୍ମର ସ୍ୱୟଂଚାଳିତ ଚିହ୍ନଟ ପର୍ଯ୍ୟାପ୍ତ ନହେଲେ ବ୍ରାଉଜର୍-ଚାଳିତ ଏକ୍ସିକ୍ୟୁଟର୍ଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ଇଚ୍ଛାଧୀନ ସମ୍ପୂର୍ଣ୍ଣ Chrome ଏକ୍ସିକ୍ୟୁଟେବଲ୍ ପଥ। |
| `TELEGRAM_BOT_TOKEN` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/lib/telegram/config.ts` | ଇନ୍ବାଉଣ୍ଡ ୱେବ୍ହୁକ୍ ସକ୍ଷମ କରୁଥିବା ଏବଂ Mini App `initData`କୁ ସାଇନ୍ କରୁଥିବା BotFather ଟୋକନ୍। |
| `TELEGRAM_WEBHOOK_SECRET` | _(ସେଟ୍ ହୋଇନାହିଁ)_ | `src/lib/telegram/config.ts` | `setWebhook` ମାଧ୍ୟମରେ ପଞ୍ଜୀକୃତ ଏବଂ ପ୍ରତ୍ୟେକ ୱେବ୍ହୁକ୍ ଡେଲିଭରିରେ `X-Telegram-Bot-Api-Secret-Token` ହେଡର୍ ସହିତ ଯାଞ୍ଚ କରାଯାଉଥିବା ସାଧାରଣ ସିକ୍ରେଟ୍। ୱେବ୍ହୁକ୍ ପଥ ପାଇଁ ଏହା ଆବଶ୍ୟକ; ସେଟ୍ ନଥିଲେ ୱେବ୍ହୁକ୍ ଡେଲିଭରିଗୁଡ଼ିକୁ 503 ସହିତ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଏ। |
| `TELEGRAM_DEFAULT_MODEL` | `auto/chat` | `src/lib/telegram/chatProxy.ts` | Telegram ଚାଟ୍ ଉତ୍ତରଗୁଡ଼ିକ ପାଇଁ ବ୍ୟବହୃତ ମଡେଲ୍। |
| `TELEGRAM_BOT_API_BASE` | `https://api.telegram.org` | `src/lib/telegram/config.ts` | ପ୍ରକ୍ସି କିମ୍ବା ସ୍ୱୟଂ-ହୋଷ୍ଟ କରାଯାଇଥିବା Bot API ସର୍ଭର୍ଗୁଡ଼ିକ ପାଇଁ Bot API ମୂଳ URL ଓଭର୍ରାଇଡ୍। |
| `TELEGRAM_WEBHOOK_TIMEOUT_MS` | `60000` | `src/lib/telegram/config.ts` | ଆଉଟ୍ବାଉଣ୍ଡ Bot API କଲ୍ଗୁଡ଼ିକ ପାଇଁ ମିଲିସେକେଣ୍ଡରେ ଟାଇମ୍ଆଉଟ୍। |
| `OMNIROUTE_OPTIONAL_PACK_TAR` | `1` (ସକ୍ଷମ) | `scripts/build/optionalPackStaging.mjs` | Electron ସ୍ୱତନ୍ତ୍ର ଟ୍ରି ପାଇଁ ଇଚ୍ଛାଧୀନ ML/ବ୍ରାଉଜର୍ ପ୍ୟାକ୍ଗୁଡ଼ିକୁ ଷ୍ଟେଜ୍ କରିବା ସମୟରେ `.tar.gz` ଟାର୍ବଲ୍ ନିର୍ଗମନ ଏଡ଼ାଇବାକୁ `0` ସେଟ୍ କରନ୍ତୁ (ପ୍ୟାକ୍ ଡିରେକ୍ଟୋରି ଏବଂ `optional-packs.index.json` ତଥାପି ଉତ୍ପାଦିତ ହୁଏ)। ଆର୍ଟିଫ୍ୟାକ୍ଟ ଅପଲୋଡ୍ ଆକାର କମାଇବା ପାଇଁ ଡେସ୍କଟପ୍ ରିଲିଜ୍ ୱର୍କଫ୍ଲୋ ଦ୍ୱାରା ବ୍ୟବହୃତ। |
| `GROK_SUBSCRIPTION_IMAGES_ENABLED` | `false` | `open-sse/config/imageRegistry.ts` | xAI ସବ୍ସ୍କ୍ରିପ୍ସନ୍ ଇମେଜ୍ ରୁଟ୍ଗୁଡ଼ିକର ପଞ୍ଜୀକରଣ ସକ୍ଷମ କରେ; ଡିଫଲ୍ଟ ଭାବେ ଅକ୍ଷମ ରହେ, ଯାହାଦ୍ୱାରା API-key ଇମେଜ୍ ପଥ ଅପରିବର୍ତ୍ତିତ ରହେ। |
| `OMNIROUTE_API_KEY_COOLDOWN_MS` | `60000` | `open-sse/services/apiKeyRotator.ts` | ଏକ `429` ପ୍ରତିକ୍ରିୟାରେ ବ୍ୟବହାରଯୋଗ୍ୟ `Retry-After` ସୂଚନା ନଥିଲେ ପ୍ରତି-କି ନିମନ୍ତେ ମିଲିସେକେଣ୍ଡରେ କୁଲ୍ଡାଉନ୍। |
| `OMNIROUTE_ESTIMATOR_CALIBRATION` | ସକ୍ଷମ | `open-sse/services/estimatorCalibration.ts` | ଇନ୍-ମେମୋରି ଏଷ୍ଟିମେଟର୍ କ୍ୟାଲିବ୍ରେସନ୍ର ରେକର୍ଡିଂ ଏବଂ ପ୍ରୟୋଗ ଅକ୍ଷମ କରିବାକୁ `off`, `0`, କିମ୍ବା `false` ସେଟ୍ କରନ୍ତୁ। |
| `NEXT_MANUAL_SIG_HANDLE` | _(ଆଭ୍ୟନ୍ତରୀଣ)_ | `scripts/dev/standalone-server-ws.mjs` | ଆଭ୍ୟନ୍ତରୀଣ ସ୍ୱତନ୍ତ୍ର-ସର୍ଭର୍ ସିଗ୍ନାଲ୍-ହ୍ୟାଣ୍ଡଲର୍ ଓଭର୍ରାଇଡ୍; ସାଧାରଣତଃ ଅପରେଟର୍ମାନଙ୍କ ଦ୍ୱାରା ବିନ୍ୟାସ କରାଯିବା ପରିବର୍ତ୍ତେ ଲଞ୍ଚର୍ ଦ୍ୱାରା ସେଟ୍ ଏବଂ କ୍ଲିୟର୍ କରାଯାଏ। |
### ChatGPT Web (Codex)
ହେଡ୍ଲେସ୍ ବ୍ରାଉଜର୍ ଏବଂ ଆଉଟ୍ବାଉଣ୍ଡ ଟୁଲ୍ ଟନେଲ୍ ପାଇଁ ଗ୍ଲୋବାଲ୍ ଡିଫଲ୍ଟଗୁଡ଼ିକ। ଡ୍ୟାସ୍ବୋର୍ଡରେ ସେଟ୍ କରାଯାଇଥିବା କନେକ୍ସନ୍ ମୂଲ୍ୟଗୁଡ଼ିକୁ ଅଗ୍ରାଧିକାର ଦିଆଯାଏ।
| ଭେରିଏବଲ୍ | ଡିଫଲ୍ଟ | ଉତ୍ସ ଫାଇଲ୍ | ବର୍ଣ୍ଣନା |
| --------------------------------------- | ------------------------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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)। କୌଣସି ମୂଲ୍ୟ ନଥିଲେ, ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ବିନା ଅନୁରୋଧ ଅଗ୍ରସର କରେ — ଏପରି ସ୍ଥିତିରେ କେବଳ Compose ନେଟୱର୍କ `chatgpt-web-codex-net`ର ନେଟୱର୍କ ପୃଥକୀକରଣ ସୁରକ୍ଷା ପ୍ରଦାନ କରେ। `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 ବ୍ରିଜ୍
ଦୀର୍ଘସ୍ଥାୟୀ SSE ଉପଭୋକ୍ତା, ଯାହା OmniConductor ହବ୍ର ଟାସ୍କଗୁଡ଼ିକୁ ସ୍ଥାନୀୟ A2A TaskManager (`src/lib/conductor/`)ରେ ପ୍ରତିବିମ୍ବିତ କରେ। ଇଚ୍ଛାଧୀନ — `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 ଓଭର୍ରାଇଡ୍କୁ ପ୍ରାଧାନ୍ୟ ମିଳେ। |