mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-10-21 13:51:56 +00:00
fix(docs): synchronize CLI and resilience contracts across locale mirrors (#16504)
Synchronize the CLI and resilience doc mirrors across locales. The `.i18n-state.json` conflict is resolved key by key. Tip hashes stay where the tip moved. Locale files this merge actually changed, including the auto-merged ENVIRONMENT.md mirrors, have hashes of the merged bytes. Changed markdown files: 0 hash mismatches. Drift that remains is on files identical to the release tip (AUTHZ_GUIDE, AGENTBRIDGE, FEATURES, DATABASE_GUIDE, API_REFERENCE, ENVIRONMENT, GUARDRAILS, ROUTE_GUARD_TIERS, and TRAFFIC_INSPECTOR locale targets) and is inherited with #15306. README was not stamped. ⚠️ base-red inherited: #15306 Thanks @diegosouzapw.
This commit is contained in:
parent
ff88d08ed2
commit
d50cd8076e
411 changed files with 9399 additions and 4664 deletions
5280
.i18n-state.json
5280
.i18n-state.json
File diff suppressed because it is too large
Load diff
1
changelog.d/fixes/0000-cli-env-quality-docs-mirrors.md
Normal file
1
changelog.d/fixes/0000-cli-env-quality-docs-mirrors.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
- **fix(i18n):** propagate the four CLI environment-variable contracts from #16441 and the in-memory quality tracker cold-start note from #16408 to every published documentation locale, preserving the original translations and verified source provenance (thanks @pacocartones and @maxmad64bis).
|
||||
|
|
@ -0,0 +1 @@
|
|||
- **fix(i18n):** propagate the pre-dispatch model-cooldown recovery contract from #16360 / #16319 to all published resilience-guide mirrors, including bounded waits, transient retry hints and the non-retryable lock exclusions (thanks @skygunner).
|
||||
1
changelog.d/fixes/16504-codebuddy-env-mirrors.md
Normal file
1
changelog.d/fixes/16504-codebuddy-env-mirrors.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
- **fix(i18n):** document the opt-in CodeBuddy system-prompt length cap, default identity-only replacement, and replacement-reason logging in all 66 environment-reference translations. Extend the mirror contract tests to prevent missing variable rows and stale source/target hashes (follow-up to #16510; thanks @ntdatt812 and @Azzt17).
|
||||
1
changelog.d/fixes/16504-remote-route-guard-mirrors.md
Normal file
1
changelog.d/fixes/16504-remote-route-guard-mirrors.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
- **docs:** translate the remote token privilege ceiling and stored-settings/legacy-import local-only bypass protections in all 66 locale mirrors. Refresh only the corresponding translation records after validating each source and target preimage, and add regressions requiring localized policy literals and matching content hashes.
|
||||
1
changelog.d/fixes/16504-vision-key-scope-mirrors.md
Normal file
1
changelog.d/fixes/16504-vision-key-scope-mirrors.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
- Translate the Vision Bridge API-key scope, authenticated self-loop enforcement, and no-permitted-model fallback into all 66 documentation locales, with content-bound translation state and regression coverage (#16504).
|
||||
|
|
@ -427,6 +427,17 @@ glm-4.7=3
|
|||
`budgetMs`) ይገደባል። `quota_exhausted` (እስከ እኩለ ሌሊት የተቆለፈ) ወይም
|
||||
የማረጋገጫ/አልተገኘም ምክንያቶች ሲኖሩ ፈጽሞ አይጠብቅም።
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. የጥያቄ ወረፋ መግቢያ ቁጥጥር (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -250,6 +250,8 @@ omniroute tokens scopes # ሦስቱን scopes ያብራራል
|
|||
የ`tokens` ትዕዛዞች **admin** credential ያስፈልጋቸዋል። Tokensን በዳሽቦርዱ ውስጥ
|
||||
በ**Settings → Access Tokens** ስርም ማስተዳደር ይችላሉ (መፍጠር፣ መሻር፣ አንድ-ጊዜ-መቅዳት)።
|
||||
|
||||
ቶከን ከፈጣሪው የበለጠ ፈቃድ ኖሮት ፈጽሞ ሊፈጠር አይችልም። `admin` ቶከን ሊፈጥር የሚችለው ኦፕሬተሩ ብቻ ነው፦ በዳሽቦርድ ክፍለ ጊዜ፣ በአገልጋዩ ራሱ ላይ ባለው የአካባቢ CLI፣ በይለፍ ቃል ከ `omniroute connect` ጋር፣ ወይም መግባት በተሰናከለበት ኢንስታንስ። የማሽን ማረጋገጫዎች (`admin` የመዳረሻ ቶከን ወይም `manage`/`admin` ወሰን ያለው API ቁልፍ) `write` እና `read` ቶከኖችን ብቻ ሊፈጥሩ ይችላሉ፤ በእነሱ `--scope admin` መጠየቅ `403` ይመልሳል።
|
||||
|
||||
---
|
||||
|
||||
## Coding CLIን ከርቀት catalog ማዋቀር
|
||||
|
|
|
|||
|
|
@ -536,18 +536,22 @@ image-ው እንደ `USER node` ስለሚሠራ፣ mount ያልተደረገ `/ro
|
|||
እነዚህ ተለዋዋጮች የ`omniroute` CLI binary የራሱን ባህሪ ያስተካክላሉ (ከላይ ያለውን
|
||||
sidecar መለየት አይደለም)።
|
||||
|
||||
| ተለዋዋጭ | ነባሪ | የምንጭ ፋይል | መግለጫ |
|
||||
| ------------------------------------- | ----------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(ስርዓት)_ | `bin/cli/i18n.mjs` | የCLI ውጤት ቋንቋን ያስገድዱ። BCP-47 locale (ለምሳሌ `en`፣ `pt-BR`)። የስርዓት locale env vars (`LC_ALL`፣ `LC_MESSAGES`) ይሽራል። |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(አልተዋቀረም)_ | `bin/cli/runtime/processSupervisor.mjs` | በsupervised mode የserver stdout/stderr ወደ terminal ለማስተላለፍ ወደ `1` ያዋቅሩት። በ`omniroute serve` ላይ ካለው `--log` flag ጋር ተመሳሳይ ነው። |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(አልተዋቀረም)_ | `bin/cli/api.mjs` | እንደ `x-omniroute-cli-token` header የሚገባ machine-auth token። በተግባር 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 ፋይል ለመዝለል፣ በግልጽ ከተወሰነ `DATA_DIR` ጋር ወደ 1 ያዋቅሩት። |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | ለCLI → server ጥያቄዎች የእያንዳንዱ ሙከራ HTTP timeout (ms)። |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | CLI-ው timeout ማስጠንቀቂያ ከማተሙ በፊት የserver health endpointን የሚጠብቅበት ከፍተኛው ጊዜ (ms)። ለዘገዩ cold starts (ለምሳሌ Windows) ጠቃሚ ነው። በ`--ready-timeout` በኩልም ሊዋቀር ይችላል። |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | በCLI commands ወቅት የretry/backoff ምርመራ መረጃን ወደ stderr ለማተም ወደ `1` ያዋቅሩት። |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(አልተዋቀረም)_ | `bin/cli/plugins.mjs` | ለCLI plugin ፍለጋ ብጁ directory (`omniroute-cmd-*` packages)። ካልተዋቀረ ነባሪው `~/.omniroute/plugins/` ነው። ለCLI ብቻ ነው — ወደ server-side plugin scanner ፈጽሞ አይደርስም፤ scanner-ው በ`OMNIROUTE_PLUGINS_DIR` (ክፍል 2) ይጠቁማል። |
|
||||
| ተለዋዋጭ | ነባሪ | የምንጭ ፋይል | መግለጫ |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `OMNIROUTE_LANG` | _(ስርዓት)_ | `bin/cli/i18n.mjs` | የCLI ውጤት ቋንቋን ያስገድዱ። BCP-47 locale (ለምሳሌ `en`፣ `pt-BR`)። የስርዓት locale env vars (`LC_ALL`፣ `LC_MESSAGES`) ይሽራል። |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(አልተዋቀረም)_ | `bin/cli/runtime/processSupervisor.mjs` | በsupervised mode የserver stdout/stderr ወደ terminal ለማስተላለፍ ወደ `1` ያዋቅሩት። በ`omniroute serve` ላይ ካለው `--log` flag ጋር ተመሳሳይ ነው። |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(አልተዋቀረም)_ | `bin/cli/api.mjs` | እንደ `x-omniroute-cli-token` header የሚገባ machine-auth token። በተግባር 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 ፋይል ለመዝለል፣ በግልጽ ከተወሰነ `DATA_DIR` ጋር ወደ 1 ያዋቅሩት። |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | ለCLI → server ጥያቄዎች የእያንዳንዱ ሙከራ HTTP timeout (ms)። |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | CLI-ው timeout ማስጠንቀቂያ ከማተሙ በፊት የserver health endpointን የሚጠብቅበት ከፍተኛው ጊዜ (ms)። ለዘገዩ cold starts (ለምሳሌ Windows) ጠቃሚ ነው። በ`--ready-timeout` በኩልም ሊዋቀር ይችላል። |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | በCLI commands ወቅት የretry/backoff ምርመራ መረጃን ወደ stderr ለማተም ወደ `1` ያዋቅሩት። |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(አልተዋቀረም)_ | `bin/cli/plugins.mjs` | ለCLI plugin ፍለጋ ብጁ directory (`omniroute-cmd-*` packages)። ካልተዋቀረ ነባሪው `~/.omniroute/plugins/` ነው። ለCLI ብቻ ነው — ወደ server-side plugin scanner ፈጽሞ አይደርስም፤ scanner-ው በ`OMNIROUTE_PLUGINS_DIR` (ክፍል 2) ይጠቁማል። |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1191,6 +1195,7 @@ STREAM_HISTORY_MAX=10
|
|||
| `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 የመለያ መታወቂያ። |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(አልተዋቀረም)_ | `open-sse/executors/cloudflare-playground.ts` | ራስ-አልባ የጣት አሻራ ምርመራው ከPlaywright ጋር የተካተተውን Chromium ሲያግድ፣ ለCloudflare AI Playground አስፈጻሚው የሚጠቀምበት ሙሉ የዴስክቶፕ Chrome ባይነሪ ዱካ። |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International)፦ በነባሪ የኮድ ወኪል መለያ ያለበት የስርዓት መመሪያ ብቻ በገለልተኛ መመሪያ ይተካል፤ የTencent ማጣሪያ መለያውን ይከለክላል። ረጅም መመሪያዎች ይቆያሉ። አዎንታዊ ሙሉ ቁጥር ከተሰጠ፣ ከዚያ የቁምፊ ብዛት የሚበልጥ መመሪያም ይተካል። ያልተወሰነ፣ `0` ወይም ሙሉ ቁጥር ያልሆነ እሴት ገደቡን ያሰናክላል። እያንዳንዱ መተካት ምክንያቱን (መለያ/ርዝመት) ይመዘግባል። |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | በፕሮክሲ-ጥምር Workers ሪሌይ አሰማሪው የሚጠቀመውን የCloudflare REST API መሠረት ይተካል (#4640 / 9router#1360)። |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | በፕሮክሲ-ጥምር "Deploy Relay" ሞዳል ውስጥ የሚጠቆመው ነባሪ የworker ፕሮጀክት ስም። |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | የCloudflare Workers ሪሌይ አማራጭን ከፕሮክሲ ጥምር ትር ለመደበቅ ወደ `false` ያዋቅሩ። |
|
||||
|
|
|
|||
|
|
@ -210,6 +210,8 @@ Auto-Combo Engine ለእያንዳንዱ ጥያቄ ምርጡን አቅራቢ/ሞ
|
|||
| `quality` | 0.03 | በግብረመልስ የሚመራ፣ ከrouting-event quality tracker የሚገኝ የውጤት-ጥራት ምልክት፤ ምልከታ የሌላቸው ዕጩዎች ገለልተኛ 0.5 ያገኛሉ |
|
||||
| `reliability` | 0.00 | ከአሥር-ናሙና ዝቅተኛ ገደብ በስተጀርባ ካለ የ24h አጠቃቀም ታሪክ የተገኘ የታየ የስኬት ድርሻ፣ `1 - failureRate` (ካልሆነ የእውነተኛ ጊዜ መለኪያዎች)፤ ምልከታ የሌላቸው ዕጩዎች እንደ 1.0 ይቆጠራሉ። በነባሪነት ተሰናክሏል |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**ድምር፦** በ`DEFAULT_WEIGHTS` እንደተገለጸው `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`፤ በተጠቃሚ የተዋቀሩ ክብደቶች ውጤት ከመሰጠቱ በፊት በ`normalizeScoringWeights()` ወደ ስርጭት እንደገና መደበኛ ይደረጋሉ።
|
||||
|
||||
## የሁነታ ጥቅሎች
|
||||
|
|
|
|||
|
|
@ -56,6 +56,10 @@ Guardrails በOmniRoute እና በላይኛ ደረጃ አቅራቢዎች መካ
|
|||
|
||||
የግዳጅ ሁነታዎች የራስ-ሰር ሂዩሪስቲክ ከመሰራቱ **በፊት** አጭር-ዑደት ያደርጋሉ፤ `auto` ባህሪ ከPR-1 በፊት ከነበረው ጠባቂ ጋር ባይት-ተመሳሳይ ነው።
|
||||
|
||||
#### የAPI ቁልፍ ወሰን (`visionBridgeKeyScope.ts`)
|
||||
|
||||
የAPI ቁልፉ ግንኙነቶችን፣ የኮታ ቡድኖችን ወይም ሞዴሎችን ከገደበ (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`)፣ ማዞርና መግለጽ ለዚያ ቁልፍ የተፈቀዱ ሞዴሎችንና ግንኙነቶችን ብቻ ይመርጣሉ። መግለጫው ሁልጊዜ በOmniRoute የራስ ዙር በ`x-omniroute-self-loop-key-id` ራስጌ ያልፋል፣ የግንኙነትና የሞዴል ፖሊሲውም እንደገና ይፈጸማል። `enforceApiKeyPolicy()` ራስጌውን የሚቀበለው ከዚያ ዙር bearer ቶከን ጋር ብቻ ነው፤ መዳረሻን ሊያጠብ ብቻ ይችላል፣ የማይታወቅ መለያም ይከለከላል። የተፈቀደ የእይታ ሞዴል ከሌለ፣ መግለጫው ይዘለላል እና ጥያቄው ጥበቃው እንደተሰናከለ ሳይቀየር ያልፋል (meta `{ skipped: true, reason: "no_permitted_vision_model" }`)። ቁልፍ የሌላቸው ጥያቄዎችና እነዚህ ገደቦች የሌሉባቸው ቁልፎች እንደበፊቱ ይሠራሉ።
|
||||
|
||||
#### ተግባር-ተኮር የማብራሪያ ጥያቄ (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
ነባሪ **እውነት**። `composeVisionPrompt()` (`visionBridgeHelpers.ts`) የ**የመጨረሻውን የተጠቃሚ መልእክት** ጽሑፍ (እስከ 500 ቁምፊዎች የተቆረጠ) ከመሠረታዊ የማብራሪያ ጥያቄ ጋር ያያይዘዋል፣ መግለጫውን ተጠቃሚው በትክክል ወደጠየቀው ነገር (ኮዴክስ-ቪዥን-ፕሮክሲ ስርዓተ-ጥለት) ይመራል እና የቪዥን ሞዴሉን የሚታየውን ጽሑፍ እንዲገለብጥ ይጠይቃል። ባንዲራው ከጠፋ — ወይም የተጠቃሚ ጽሑፍ ከሌለ — መሠረታዊው ጥያቄ ሳይለወጥ ጥቅም ላይ ይውላል።
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ OmniRouteን ከኋላ ተገላቢጦሽ ፕሮክሲ ወይም ዋሻ (nginx,
|
|||
- **403ን የደንበኛውን IP እንደ loopback በማስመሰል "አያስተካክሉ"።** `X-Forwarded-For: 127.0.0.1`ን ማዘጋጀት፣ ወይም የመነሻ አድራሻውን ወደ loopback የሚጽፍ ፕሮክሲ፣ ይህ ደረጃ የሚዘጋውን የRCE ክፍል በትክክል እንደገና ይከፍታል። ዳሽቦርዱን/APIውን በፕሮክሲ በኩል ያጋልጡ — የመፍጠር አቅም ያላቸውን መንገዶች በጭራሽ አያጋልጡ።
|
||||
- **የአስተዳደር-ስፋት ማለፊያን አነስተኛ ያድርጉ።** `/api/mcp/` ብቻ ነው ማለፍ የሚቻለው፣ እና በ`manage`-ስፋት ባለው API ቁልፍ ብቻ። `SPAWN_CAPABLE_PREFIXES` በጭራሽ ወደ ማለፊያ ዝርዝር ውስጥ ሊጨመሩ አይችሉም — የzod schema ውድቅ ያደርጋቸዋል እና `isLocalOnlyBypassableByManageScope` በሩጫ ጊዜ ይከለክላቸዋል (ጥልቅ መከላከያ)፣ ይህም ዳሽቦርዱ "ማለፍ የማይቻል" ሲል የሚያመለክተው ነው። በ`/api/providers/` ስር ያሉ ተለዋዋጭ-ክፍል እና የማይንቀሳቀስ-መንገድ የመፍጠር አቅም ያላቸው መንገዶች (ለምሳሌ `/login`, `/refresh-cursor`) በ`src/shared/constants/spawnCapablePrefixes.ts` ውስጥ ባለው በregex ላይ የተመሰረተ `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` ተጓዳኝ የተሸፈኑ ናቸው፣ እንጂ በጠፍጣፋው `SPAWN_CAPABLE_PREFIXES` ድርድር አይደለም — ጠፍጣፋው ድርድር እነሱን ለመያዝ ሙሉውን `/api/providers/` ቅድመ ቅጥያ መሸፈን ይኖርበታል፣ ይህም የርቀት ዳሽቦርዶች ለአቅራቢ CRUD በህጋዊ መንገድ የሚጠቀሙበትን የመንገድ ዛፍ ከመጠን በላይ ያሰፋል።
|
||||
|
||||
የሩጫ ጊዜ ሁኔታ ምስል ጫኚው እነዚህን ግቤቶች ከተቀመጠ የቅንብር ረድፍም ያስወግዳል፤ የቆየው JSON ማስመጫ (`/api/settings/import-json`) የማለፊያ ቁልፎችን ፈጽሞ አይጽፍም። እያንዳንዱ የ `LOCAL_ONLY_API_PREFIXES` ግቤት በክልከላ ዝርዝር ውስጥ መሆን ወይም ተመርምሮ ለማለፍ ብቁ መባል አለበት። (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**መዳረሻን ማረጋገጥ** — ከሆስት ውጪ ምንም ነገር እነዚህን መንገዶች እንደማይደርስ ለማረጋገጥ:
|
||||
|
||||
- በ`/dashboard/settings/security` ላይ ያለውን **የፍቃድ ክምችት** ይክፈቱ: የቀጥታውን `LOCAL_ONLY` ቅድመ-ቅጥያ ዝርዝር፣ የትኞቹ ቅድመ-ቅጥያዎች ሊታለፉ እንደሚችሉ፣ እና በኮምፓይል ጊዜ ሊፈጠሩ የሚችሉትን ("ሊታለፉ የማይችሉ") ስብስብ ያሳያል።
|
||||
|
|
|
|||
|
|
@ -396,6 +396,17 @@ glm-4.7=3
|
|||
|
||||
بالنسبة إلى كل استراتيجية تركيبات (عند تمكينها)، ينتظر الطلب الذي كان سيؤدي إلى تثبيت استجابة 429 خلال فترة تهدئة انتقالية قصيرة انتهاء تلك الفترة، ثم يُعاد إرساله بدلًا من إرجاع استجابة 429 — ويشمل ذلك نوافذ TPM/RPM لفئة Gemini (قيمة retry-after بنحو 60 ثانية) في التركيبات متعددة النماذج، مثل بلوغ كلا هدفي تركيبة من نموذجين حد المعدل الخاص بكل نموذج. ويخضع ذلك لحدود `comboCooldownWait` (`enabled` و`maxWaitMs` و`maxAttempts` و`budgetMs`) ضمن **الإعدادات → المرونة**. ولا ينتظر مطلقًا عند `quota_exhausted` (مقفل حتى منتصف الليل) أو لأسباب المصادقة/عدم العثور.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. التحكم في قبول طابور الطلبات (v3.8.49 · المشكلة #6593)
|
||||
|
|
|
|||
|
|
@ -252,6 +252,8 @@ omniroute tokens scopes # شرح النطاقات الثلاثة
|
|||
تتطلب أوامر `tokens` بيانات اعتماد **مسؤول**. يمكنك أيضًا إدارة الرموز في
|
||||
لوحة المعلومات ضمن **Settings → Access Tokens** (إنشاء، إلغاء، نسخ لمرة واحدة).
|
||||
|
||||
لا يمكن أبداً إنشاء رمز بصلاحيات تتجاوز صلاحيات منشئه. لا يستطيع إنشاء رمز `admin` إلا المشغّل: عبر جلسة لوحة التحكم، أو CLI محلية على الخادم نفسه، أو `omniroute connect` مع كلمة المرور، أو نسخة عُطّل فيها تسجيل الدخول. بيانات اعتماد الآلة (رمز وصول `admin` أو مفتاح API بنطاق `manage`/`admin`) لا يمكنها إنشاء سوى رموز `write` و`read`؛ وطلب `--scope admin` باستخدامها يعيد `403`.
|
||||
|
||||
---
|
||||
|
||||
## إعداد واجهة CLI للبرمجة من الكتالوج البعيد
|
||||
|
|
|
|||
|
|
@ -530,18 +530,22 @@ CLI_CLAUDE_BIN=/host-cli/bin/claude
|
|||
|
||||
تضبط هذه المتغيرات سلوك الملف التنفيذي `omniroute` الخاص بـ CLI نفسه (وليس اكتشاف الحاوية الجانبية المذكور أعلاه).
|
||||
|
||||
| المتغير | القيمة الافتراضية | الملف المصدر | الوصف |
|
||||
| ------------------------------------- | ----------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(النظام)_ | `bin/cli/i18n.mjs` | يفرض لغة مخرجات CLI. تُستخدم لغة محلية بتنسيق BCP-47 (مثل `en` و`pt-BR`). ويتجاوز متغيرات البيئة الخاصة باللغة المحلية للنظام (LC_ALL وLC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(غير معيّن)_ | `bin/cli/runtime/processSupervisor.mjs` | اضبطه على `1` لتمرير stdout/stderr الخاصين بالخادم إلى الطرفية في الوضع الخاضع للإشراف. وهو مكافئ للخيار `--log` في `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(غير معيّن)_ | `bin/cli/api.mjs` | رمز مصادقة الجهاز الذي يُحقن في الترويسة `x-omniroute-cli-token`. ويُنشأ تلقائيًا في المهمة 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(غير معيّن)_ | `bin/cli/commands/setup-gemini.mjs` | جذر المجلد الرئيسي الدائم لـ Gemini؛ يستخدم التشغيل لمرة واحدة مجلدًا رئيسيًا مؤقتًا ومعزولًا. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | فترة السماح بالمللي ثانية قبل إنهاء العملية الفرعية لـ CLI قسرًا بعد إرسال إشارة إليها. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(غير معيّن)_ | `bin/omniroute.mjs` | اضبطه على 1 مع تحديد DATA_DIR صراحةً لتخطي ملف البيئة الافتراضي لدليل بيانات المستخدم. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | مهلة HTTP لكل محاولة (بالمللي ثانية) لطلبات CLI ← الخادم. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | أقصى مدة (بالمللي ثانية) ينتظرها CLI لنقطة نهاية سلامة الخادم قبل طباعة تحذير بانتهاء المهلة. وهي مفيدة لعمليات البدء البارد البطيئة (مثل Windows). ويمكن أيضًا ضبطها عبر `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | اضبطه على `1` لطباعة تشخيصات إعادة المحاولة/التراجع إلى stderr أثناء تنفيذ أوامر CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(غير معيّن)_ | `bin/cli/plugins.mjs` | دليل مخصص لاكتشاف إضافات CLI (حزم `omniroute-cmd-*`). القيمة الافتراضية هي `~/.omniroute/plugins/` عند عدم تعيينه. خاص بـ CLI فقط — ولا يصل مطلقًا إلى ماسح الإضافات على جانب الخادم، الذي يحدده `OMNIROUTE_PLUGINS_DIR` (القسم 2). |
|
||||
| المتغير | القيمة الافتراضية | الملف المصدر | الوصف |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(النظام)_ | `bin/cli/i18n.mjs` | يفرض لغة مخرجات CLI. تُستخدم لغة محلية بتنسيق BCP-47 (مثل `en` و`pt-BR`). ويتجاوز متغيرات البيئة الخاصة باللغة المحلية للنظام (LC_ALL وLC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(غير معيّن)_ | `bin/cli/runtime/processSupervisor.mjs` | اضبطه على `1` لتمرير stdout/stderr الخاصين بالخادم إلى الطرفية في الوضع الخاضع للإشراف. وهو مكافئ للخيار `--log` في `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(غير معيّن)_ | `bin/cli/api.mjs` | رمز مصادقة الجهاز الذي يُحقن في الترويسة `x-omniroute-cli-token`. ويُنشأ تلقائيًا في المهمة 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(غير معيّن)_ | `bin/cli/commands/setup-gemini.mjs` | جذر المجلد الرئيسي الدائم لـ Gemini؛ يستخدم التشغيل لمرة واحدة مجلدًا رئيسيًا مؤقتًا ومعزولًا. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | فترة السماح بالمللي ثانية قبل إنهاء العملية الفرعية لـ CLI قسرًا بعد إرسال إشارة إليها. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(غير معيّن)_ | `bin/omniroute.mjs` | اضبطه على 1 مع تحديد DATA_DIR صراحةً لتخطي ملف البيئة الافتراضي لدليل بيانات المستخدم. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | مهلة HTTP لكل محاولة (بالمللي ثانية) لطلبات CLI ← الخادم. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | أقصى مدة (بالمللي ثانية) ينتظرها CLI لنقطة نهاية سلامة الخادم قبل طباعة تحذير بانتهاء المهلة. وهي مفيدة لعمليات البدء البارد البطيئة (مثل Windows). ويمكن أيضًا ضبطها عبر `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | اضبطه على `1` لطباعة تشخيصات إعادة المحاولة/التراجع إلى stderr أثناء تنفيذ أوامر CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(غير معيّن)_ | `bin/cli/plugins.mjs` | دليل مخصص لاكتشاف إضافات CLI (حزم `omniroute-cmd-*`). القيمة الافتراضية هي `~/.omniroute/plugins/` عند عدم تعيينه. خاص بـ CLI فقط — ولا يصل مطلقًا إلى ماسح الإضافات على جانب الخادم، الذي يحدده `OMNIROUTE_PLUGINS_DIR` (القسم 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1188,6 +1192,7 @@ STREAM_HISTORY_MAX=10
|
|||
| `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. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(غير معيّن)_ | `open-sse/executors/cloudflare-playground.ts` | المسار الكامل لملف Chrome التنفيذي لسطح المكتب الخاص بمنفّذ Cloudflare AI Playground، ويُستخدم عندما يحظر فحص بصمة وضع التشغيل بلا واجهة رسومية إصدار Chromium المضمّن مع Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (الصين والدولي): افتراضيًا تُستبدل فقط تعليمات النظام التي تحمل علامة هوية وكيل برمجة بتعليمات محايدة لأن مرشح Tencent يرفضها؛ تُحفظ التعليمات الطويلة. عدد صحيح موجب يفعّل أيضًا استبدال التعليمات الأطول من هذا العدد من المحارف. عدم التعيين أو `0` أو قيمة غير صحيحة يعطّل حد الطول. يُسجّل سبب كل استبدال (الهوية أو الطول). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | تجاوز عنوان أساس Cloudflare REST API الذي تستخدمه أداة نشر مرحّل Workers لمجموعة الوكلاء (#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` | اضبطه على `false` لإخفاء خيار مرحّل Cloudflare Workers من علامة تبويب مجموعة الوكلاء. |
|
||||
|
|
|
|||
|
|
@ -212,6 +212,8 @@ curl -X POST http://localhost:20128/v1/chat/completions \
|
|||
| `quality` | 0.03 | إشارة لجودة المخرجات مدفوعة بالملاحظات من متتبع جودة أحداث التوجيه؛ يحصل المرشحون الذين ليست لديهم ملاحظات على قيمة محايدة قدرها 0.5 |
|
||||
| `reliability` | 0.00 | نسبة النجاح المرصودة، `1 - failureRate`، من سجل استخدام آخر 24 ساعة، بعد حد أدنى قدره عشر عينات (وإلا تُستخدم المقاييس الآنية)؛ تُقرأ قيمة المرشحين الذين ليست لديهم ملاحظات على أنها 1.0. معطل افتراضيًا |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**المجموع:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0` كما هو معلن في `DEFAULT_WEIGHTS`؛ ويُعاد تطبيع الأوزان التي يضبطها المستخدم إلى توزيع بواسطة `normalizeScoringWeights()` قبل التقييم.
|
||||
|
||||
## حزم الأوضاع
|
||||
|
|
|
|||
|
|
@ -83,6 +83,10 @@
|
|||
تعمل الأوضاع المفروضة على تقصير الدائرة **قبل** تشغيل الاستدلال التلقائي؛
|
||||
سلوك `auto` مطابق تمامًا للحاجز قبل PR-1.
|
||||
|
||||
#### نطاق مفتاح API (`visionBridgeKeyScope.ts`)
|
||||
|
||||
إذا قيّد مفتاح API الاتصالات أو مجموعات الحصص أو النماذج (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`)، فلا يختار مسارا إعادة التوجيه والوصف إلا النماذج والاتصالات المسموح بها للمفتاح. يمر الوصف دائمًا عبر الحلقة الذاتية في OmniRoute مع الترويسة `x-omniroute-self-loop-key-id` لإعادة تطبيق سياسة الاتصالات والنماذج. لا تقبل `enforceApiKeyPolicy()` الترويسة إلا مع رمز bearer الخاص بالحلقة؛ فهي تضيق الصلاحيات فقط، ويُرفض أي معرّف غير معروف. إن لم يُسمح للمفتاح بأي نموذج بصري، يُتجاوز الوصف ويمر الطلب دون تغيير، كما عند تعطيل الحماية (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). لا يتغير سلوك الطلبات بلا مفتاح أو المفاتيح بلا هذه القيود.
|
||||
|
||||
#### مطالبة الوصف الواعية بالمهمة (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
الافتراضي **صحيح**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) يلحق
|
||||
|
|
|
|||
|
|
@ -124,6 +124,8 @@
|
|||
بادئة `/api/providers/` بأكملها لالتقاطها، مما يوسع بشكل مفرط شجرة المسارات
|
||||
التي تستخدمها لوحات التحكم عن بعد بشكل مشروع لعمليات CRUD للموفرين.
|
||||
|
||||
يتجاهل محمّل لقطات حالة التشغيل هذه الإدخالات أيضاً من صف إعدادات مخزّن، ولا تكتب آلية استيراد JSON القديمة (`/api/settings/import-json`) مفاتيح التجاوز أبداً. يجب أن يكون كل إدخال في `LOCAL_ONLY_API_PREFIXES` ضمن قائمة المنع أو قد خضع للمراجعة وأُجيز تجاوزه. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**تدقيق الوصول** — للتحقق من عدم وصول أي شيء من خارج المضيف إلى هذه المسارات:
|
||||
|
||||
- افتح **جرد التخويل (Authorization Inventory)** على `/dashboard/settings/security`: يعرض قائمة البادئات `LOCAL_ONLY` المباشرة، والبادئات التي يمكن تجاوزها، ومجموعة العناصر القابلة للتوليد في وقت التجميع ("لا يمكن جعلها قابلة للتجاوز").
|
||||
|
|
|
|||
|
|
@ -437,6 +437,17 @@ sorğu tezliyi məhdudiyyətinə çatmasını əhatə edir. **Parametrlər → D
|
|||
`budgetMs`) ilə məhdudlaşdırılır. O, `quota_exhausted`
|
||||
(gecə yarısınadək kilidlənib) və ya autentifikasiya/tapılmadı səbəbləri üçün heç vaxt gözləmir.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Sorğu Növbəsinə Qəbul Nəzarəti (v3.8.49 · məsələ #6593)
|
||||
|
|
|
|||
|
|
@ -223,6 +223,8 @@ omniroute tokens scopes # üç əhatə dairəsini izah edir
|
|||
**Parametrlər → Giriş tokenləri** bölməsindən də idarə edə bilərsiniz (yaratmaq,
|
||||
ləğv etmək, bir dəfə kopyalamaq).
|
||||
|
||||
Token heç vaxt onu yaradanın malik olduğundan daha geniş səlahiyyətlərlə yaradıla bilməz. `admin` tokenini yalnız operator yarada bilər: idarəetmə paneli sessiyası, serverin özündəki yerli CLI, parolla `omniroute connect` və ya girişin deaktiv edildiyi instansiya vasitəsilə. Maşın autentifikasiya məlumatları (`admin` giriş tokeni və ya `manage`/`admin` əhatəli API açarı) yalnız `write` və `read` tokenləri yarada bilər; onlarla `--scope admin` tələb etmək `403` qaytarır.
|
||||
|
||||
---
|
||||
|
||||
## Uzaq kataloqdan proqramlaşdırma CLI-sinin konfiqurasiyası
|
||||
|
|
|
|||
|
|
@ -526,18 +526,22 @@ Image `USER node` kimi işləyir, buna görə də mount edilməmiş `/root` **et
|
|||
|
||||
Bu dəyişənlər yuxarıdakı sidecar aşkarlanmasını deyil, `omniroute` CLI binar faylının öz davranışını tənzimləyir.
|
||||
|
||||
| Dəyişən | İlkin dəyər | Mənbə faylı | Təsvir |
|
||||
| ------------------------------------- | ------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(sistem)_ | `bin/cli/i18n.mjs` | CLI çıxış dilini məcburi təyin edir. BCP-47 lokalı (məsələn, `en`, `pt-BR`). Sistem lokalı mühit dəyişənlərini (LC_ALL, LC_MESSAGES) üstələyir. |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(təyin edilməyib)_ | `bin/cli/runtime/processSupervisor.mjs` | Nəzarətli rejimdə serverin stdout/stderr çıxışını terminala yönləndirmək üçün `1` olaraq təyin edin. `omniroute serve` əmrindəki `--log` bayrağına ekvivalentdir. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(təyin edilməyib)_ | `bin/cli/api.mjs` | `x-omniroute-cli-token` başlığı kimi əlavə edilən maşın autentifikasiyası tokeni. 8.12 tapşırığında avtomatik yaradılır. |
|
||||
| `GEMINI_CLI_HOME` | _(təyin edilməyib)_ | `bin/cli/commands/setup-gemini.mjs` | Daimi Gemini ev kökü; birdəfəlik işə salma müvəqqəti, təcrid olunmuş ev qovluğundan istifadə edir. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Siqnal göndərilmiş CLI alt prosesinin məcburi dayandırılmasından əvvəl millisaniyə ilə möhlət müddəti. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(təyin edilməyib)_ | `bin/omniroute.mjs` | İlkin istifadəçinin məlumat qovluğu mühit faylını ötürmək üçün açıq şəkildə təyin edilmiş DATA_DIR ilə birlikdə `1` olaraq təyin edin. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → server sorğuları üçün hər cəhd üzrə HTTP taym-autu (ms). |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Taym-aut xəbərdarlığını göstərməzdən əvvəl CLI-nin serverin sağlamlıq endpoint-ini gözlədiyi maksimum müddət (ms). Yavaş soyuq başlanğıclar üçün faydalıdır (məsələn, Windows). `--ready-timeout` vasitəsilə də təyin edilə bilər. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI əmrləri zamanı təkrar cəhd/gecikmə diaqnostikasını stderr-ə çıxarmaq üçün `1` olaraq təyin edin. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(təyin edilməyib)_ | `bin/cli/plugins.mjs` | CLI plaginlərinin aşkarlanması üçün xüsusi qovluq (`omniroute-cmd-*` paketləri). Təyin edilmədikdə ilkin olaraq `~/.omniroute/plugins/` istifadə olunur. Yalnız CLI üçündür — `OMNIROUTE_PLUGINS_DIR` (bölmə 2) ilə göstərilən server tərəfli plagin skanerinə heç vaxt ötürülmür. |
|
||||
| Dəyişən | İlkin dəyər | Mənbə faylı | Təsvir |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(sistem)_ | `bin/cli/i18n.mjs` | CLI çıxış dilini məcburi təyin edir. BCP-47 lokalı (məsələn, `en`, `pt-BR`). Sistem lokalı mühit dəyişənlərini (LC_ALL, LC_MESSAGES) üstələyir. |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(təyin edilməyib)_ | `bin/cli/runtime/processSupervisor.mjs` | Nəzarətli rejimdə serverin stdout/stderr çıxışını terminala yönləndirmək üçün `1` olaraq təyin edin. `omniroute serve` əmrindəki `--log` bayrağına ekvivalentdir. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(təyin edilməyib)_ | `bin/cli/api.mjs` | `x-omniroute-cli-token` başlığı kimi əlavə edilən maşın autentifikasiyası tokeni. 8.12 tapşırığında avtomatik yaradılır. |
|
||||
| `GEMINI_CLI_HOME` | _(təyin edilməyib)_ | `bin/cli/commands/setup-gemini.mjs` | Daimi Gemini ev kökü; birdəfəlik işə salma müvəqqəti, təcrid olunmuş ev qovluğundan istifadə edir. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Siqnal göndərilmiş CLI alt prosesinin məcburi dayandırılmasından əvvəl millisaniyə ilə möhlət müddəti. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(təyin edilməyib)_ | `bin/omniroute.mjs` | İlkin istifadəçinin məlumat qovluğu mühit faylını ötürmək üçün açıq şəkildə təyin edilmiş DATA_DIR ilə birlikdə `1` olaraq təyin edin. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → server sorğuları üçün hər cəhd üzrə HTTP taym-autu (ms). |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Taym-aut xəbərdarlığını göstərməzdən əvvəl CLI-nin serverin sağlamlıq endpoint-ini gözlədiyi maksimum müddət (ms). Yavaş soyuq başlanğıclar üçün faydalıdır (məsələn, Windows). `--ready-timeout` vasitəsilə də təyin edilə bilər. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI əmrləri zamanı təkrar cəhd/gecikmə diaqnostikasını stderr-ə çıxarmaq üçün `1` olaraq təyin edin. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(təyin edilməyib)_ | `bin/cli/plugins.mjs` | CLI plaginlərinin aşkarlanması üçün xüsusi qovluq (`omniroute-cmd-*` paketləri). Təyin edilmədikdə ilkin olaraq `~/.omniroute/plugins/` istifadə olunur. Yalnız CLI üçündür — `OMNIROUTE_PLUGINS_DIR` (bölmə 2) ilə göstərilən server tərəfli plagin skanerinə heç vaxt ötürülmür. |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1176,50 +1180,51 @@ masaüstü quraşdırma üçün tənzimlənib.
|
|||
|
||||
## 20. Provayderə Xas Parametrlər
|
||||
|
||||
| Dəyişən | Standart dəyər | Mənbə faylı | Təsvir |
|
||||
| ---------------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 saat) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter model kataloqu keşinin TTL müddəti. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | `/v1/models` cavablarına göstərilmə üçün əlverişli `name` sahələrini daxil edir. Yalnız ID gözləyən klientlər üçün deaktiv edin. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 san.) | `src/app/api/v1/models/catalogCache.ts` | Birləşdirilmiş `GET /v1/models` kataloqunun yenidən qurulması üçün soyuq yolda gözləmə həddi (#12627). Vaxt bitdikdə, mövcuddursa, son uğurlu 200 cavabı təqdim edilir. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 gün) | `src/lib/db/models/activeSyncedCatalog.ts` | Bağlantının sinxronlaşdırılmış model siyahısının marşrutlaşdırma üçün etibarlı mənbə sayılmadığı və açıq xəta rejimində reyestrə keçdiyi yaş həddi (#12849). Heç vaxt vaxt nişanı təyin edilməmiş sətirlər köhnəlmiş sayılır. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 san.) | `src/lib/usage/analyticsResponseCache.ts` | Yavaş `GET /api/usage/analytics` cavabının eyni sorğu sətri üçün nə qədər müddət təkrar istifadə ediləcəyi (#15629). `0` keşi deaktiv edir. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 san.) | `src/lib/usage/analyticsResponseCache.ts` | Yalnız hazırlanması ən azı bu qədər vaxt çəkən analitika cavabları keşlənir, beləliklə kiçik instansiyalar həmişə aktual məlumatları görür. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana təsvir yaratma tapşırıqları üçün maksimum gözləmə müddəti. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana tapşırıqlarının sorğulanma tezliyi. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly miqyasartırma göndərişinin təkrar cəhdləri üçün eksponensial geriçəkilmənin baza gecikməsi. |
|
||||
| `AWS_REGION` | _(təyin edilməyib)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrock son nöqtələrini (Kiro, audio) yaratmaq üçün istifadə olunan region. |
|
||||
| `AWS_DEFAULT_REGION` | _(təyin edilməyib)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | `AWS_REGION` təyin edilmədikdə ehtiyat dəyər. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(təyin edilməyib)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI üçün hesab ID-si. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(təyin edilməyib)_ | `open-sse/executors/cloudflare-playground.ts` | Başsız rejimdə işləyən brauzerin rəqəmsal izinin yoxlanması Playwright ilə birlikdə təqdim olunan Chromium-u blokladıqda istifadə edilən Cloudflare AI Playground icraedicisi üçün masaüstü Chrome binar faylının tam yolu. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Proksi hovuzu Workers releyini yerləşdirən komponentin istifadə etdiyi Cloudflare REST API baza ünvanını əvəz edir (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Proksi hovuzunun "Releyi yerləşdir" modal pəncərəsində təklif olunan standart worker layihəsinin adı. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Cloudflare Workers reley seçimini Proksi Hovuzu nişanından gizlətmək üçün `false` təyin edin. |
|
||||
| `CLOUDFLARED_BIN` | avtomatik aşkarlama | `src/lib/cloudflaredTunnel.ts` | `cloudflared` binar faylına xüsusi yol. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunel nəqliyyat protokolu: `http2` (standart), `quic` və ya `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(təyin edilməyib)_ | `src/lib/cloudflaredTunnel.ts` | Lokal olaraq idarə edilən cloudflared `config.yml` faylına yol (`tunnel:`, `credentials-file:`, `ingress:` ilə). Təyin edildikdə, OmniRoute müvəqqəti sürətli tunel əvəzinə `tunnel --config <path> run` (adlandırılmış tunel) işlədir. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(konfiqurasiyanın ingress bölməsindən)_ | `src/lib/cloudflaredTunnel.ts` | `publicUrl`/`apiUrl` kimi bildirilən adlandırılmış tunelin ictimai host adı (məsələn, `ai.example.com`) üçün əvəzləyici dəyər. Təyin edilmədikdə, konfiqurasiyanın ilk `ingress` host adından oxunur. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Proksi hovuzu relesini yerləşdirən alətin istifadə etdiyi Deno Deploy REST API baza ünvanını əvəz edir (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Proksi hovuzunun "Releni yerləşdir" modal pəncərəsində təklif olunan standart Deno Deploy tətbiq adı. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Deno Deploy rele seçimini Proksi hovuzu tabından gizlətmək üçün `false` olaraq təyin edin. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 dəq) | `open-sse/services/searchCache.ts` | Axtarış API-si (Perplexity, Brave və s.) cavablarının keşlənməsi üçün TTL. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Yalnız Claude Code releləri üçün eksperimental CC-uyğun provayder interfeysini göstərir. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Daxili 9router instansiyasının dinlədiyi hostu əvəz edir. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Daxili 9router instansiyasının dinlədiyi portu əvəz edir. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Daxili xidmətin WebSocket proksisi üçün bağlanma hostu (standart olaraq yalnız geri döngə interfeysi). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Daxili xidmətin WebSocket proksi serveri üçün port. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI körpü hostu (köhnə inteqrasiya). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI körpü portu. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(boş)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | `cliproxyapi_api_key` parametri olmadıqda verilənlər müstəvisi açarı üçün ehtiyat dəyər. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(boş)_ | `src/lib/services/cliproxyAccountHealth.ts` | Xaricdən idarə olunan CLIProxyAPI instansiyasından hesab sağlamlığı məlumatlarını oxumaq üçün idarəetmə açarı. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI konfiqurasiya qovluğu. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose-un `cliproxyapi` yan konteynerini yayımladığı host interfeysi (#12578). Onun məlumat cildi provayder OAuth/API giriş məlumatlarını saxlayır və sabitlənmiş imicdə verilənlər müstəvisinin `api-keys` dəyərini mühit dəyişəni vasitəsilə əvəz etmək imkanı yoxdur (yalnız qoşulmuş `config.yaml` var), buna görə `0.0.0.0` giriş məlumatlarını ehtiva edən xidməti bütün LAN üçün əlçatan edir. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Daxili Mux (coder/mux) agent orkestrasiya demonunun dinlədiyi portu əvəz edir (həmişə 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Daxili open-wa (WhatsApp Web avtomatlaşdırması) demonunun dinlədiyi portu əvəz edir (həmişə 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin bağlanma/qoşulma hostu (standart olaraq yalnız geri döngə interfeysi). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin portu. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin bağlanma/qoşulma hostu (standart olaraq yalnız geri döngə interfeysi). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin portu. |
|
||||
| `LOCAL_HOSTNAMES` | _(boş)_ | `open-sse/config/providerRegistry.ts` | "Lokal" hesab edilən, vergüllə ayrılmış əlavə host adları (Docker xidmət adları və s.). |
|
||||
| Dəyişən | Standart dəyər | Mənbə faylı | Təsvir |
|
||||
| ---------------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 saat) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter model kataloqu keşinin TTL müddəti. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | `/v1/models` cavablarına göstərilmə üçün əlverişli `name` sahələrini daxil edir. Yalnız ID gözləyən klientlər üçün deaktiv edin. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 san.) | `src/app/api/v1/models/catalogCache.ts` | Birləşdirilmiş `GET /v1/models` kataloqunun yenidən qurulması üçün soyuq yolda gözləmə həddi (#12627). Vaxt bitdikdə, mövcuddursa, son uğurlu 200 cavabı təqdim edilir. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 gün) | `src/lib/db/models/activeSyncedCatalog.ts` | Bağlantının sinxronlaşdırılmış model siyahısının marşrutlaşdırma üçün etibarlı mənbə sayılmadığı və açıq xəta rejimində reyestrə keçdiyi yaş həddi (#12849). Heç vaxt vaxt nişanı təyin edilməmiş sətirlər köhnəlmiş sayılır. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 san.) | `src/lib/usage/analyticsResponseCache.ts` | Yavaş `GET /api/usage/analytics` cavabının eyni sorğu sətri üçün nə qədər müddət təkrar istifadə ediləcəyi (#15629). `0` keşi deaktiv edir. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 san.) | `src/lib/usage/analyticsResponseCache.ts` | Yalnız hazırlanması ən azı bu qədər vaxt çəkən analitika cavabları keşlənir, beləliklə kiçik instansiyalar həmişə aktual məlumatları görür. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana təsvir yaratma tapşırıqları üçün maksimum gözləmə müddəti. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana tapşırıqlarının sorğulanma tezliyi. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly miqyasartırma göndərişinin təkrar cəhdləri üçün eksponensial geriçəkilmənin baza gecikməsi. |
|
||||
| `AWS_REGION` | _(təyin edilməyib)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrock son nöqtələrini (Kiro, audio) yaratmaq üçün istifadə olunan region. |
|
||||
| `AWS_DEFAULT_REGION` | _(təyin edilməyib)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | `AWS_REGION` təyin edilmədikdə ehtiyat dəyər. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(təyin edilməyib)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI üçün hesab ID-si. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(təyin edilməyib)_ | `open-sse/executors/cloudflare-playground.ts` | Başsız rejimdə işləyən brauzerin rəqəmsal izinin yoxlanması Playwright ilə birlikdə təqdim olunan Chromium-u blokladıqda istifadə edilən Cloudflare AI Playground icraedicisi üçün masaüstü Chrome binar faylının tam yolu. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): standart olaraq yalnız proqramlaşdırma agentinin kimlik nişanı olan sistem təlimatı neytral təlimatla əvəz edilir (Tencent filtri bunu rədd edir); uzun təlimatlar saxlanılır. Müsbət tam ədəd verilərsə, bu sayda simvoldan uzun təlimatlar da əvəz edilir. Təyin edilməmiş, `0` və ya tam olmayan dəyər uzunluq həddini söndürür. Hər əvəzləmənin səbəbi (kimlik/uzunluq) jurnala yazılır. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Proksi hovuzu Workers releyini yerləşdirən komponentin istifadə etdiyi Cloudflare REST API baza ünvanını əvəz edir (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Proksi hovuzunun "Releyi yerləşdir" modal pəncərəsində təklif olunan standart worker layihəsinin adı. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Cloudflare Workers reley seçimini Proksi Hovuzu nişanından gizlətmək üçün `false` təyin edin. |
|
||||
| `CLOUDFLARED_BIN` | avtomatik aşkarlama | `src/lib/cloudflaredTunnel.ts` | `cloudflared` binar faylına xüsusi yol. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunel nəqliyyat protokolu: `http2` (standart), `quic` və ya `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(təyin edilməyib)_ | `src/lib/cloudflaredTunnel.ts` | Lokal olaraq idarə edilən cloudflared `config.yml` faylına yol (`tunnel:`, `credentials-file:`, `ingress:` ilə). Təyin edildikdə, OmniRoute müvəqqəti sürətli tunel əvəzinə `tunnel --config <path> run` (adlandırılmış tunel) işlədir. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(konfiqurasiyanın ingress bölməsindən)_ | `src/lib/cloudflaredTunnel.ts` | `publicUrl`/`apiUrl` kimi bildirilən adlandırılmış tunelin ictimai host adı (məsələn, `ai.example.com`) üçün əvəzləyici dəyər. Təyin edilmədikdə, konfiqurasiyanın ilk `ingress` host adından oxunur. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Proksi hovuzu relesini yerləşdirən alətin istifadə etdiyi Deno Deploy REST API baza ünvanını əvəz edir (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Proksi hovuzunun "Releni yerləşdir" modal pəncərəsində təklif olunan standart Deno Deploy tətbiq adı. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Deno Deploy rele seçimini Proksi hovuzu tabından gizlətmək üçün `false` olaraq təyin edin. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 dəq) | `open-sse/services/searchCache.ts` | Axtarış API-si (Perplexity, Brave və s.) cavablarının keşlənməsi üçün TTL. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Yalnız Claude Code releləri üçün eksperimental CC-uyğun provayder interfeysini göstərir. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Daxili 9router instansiyasının dinlədiyi hostu əvəz edir. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Daxili 9router instansiyasının dinlədiyi portu əvəz edir. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Daxili xidmətin WebSocket proksisi üçün bağlanma hostu (standart olaraq yalnız geri döngə interfeysi). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Daxili xidmətin WebSocket proksi serveri üçün port. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI körpü hostu (köhnə inteqrasiya). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI körpü portu. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(boş)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | `cliproxyapi_api_key` parametri olmadıqda verilənlər müstəvisi açarı üçün ehtiyat dəyər. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(boş)_ | `src/lib/services/cliproxyAccountHealth.ts` | Xaricdən idarə olunan CLIProxyAPI instansiyasından hesab sağlamlığı məlumatlarını oxumaq üçün idarəetmə açarı. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI konfiqurasiya qovluğu. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose-un `cliproxyapi` yan konteynerini yayımladığı host interfeysi (#12578). Onun məlumat cildi provayder OAuth/API giriş məlumatlarını saxlayır və sabitlənmiş imicdə verilənlər müstəvisinin `api-keys` dəyərini mühit dəyişəni vasitəsilə əvəz etmək imkanı yoxdur (yalnız qoşulmuş `config.yaml` var), buna görə `0.0.0.0` giriş məlumatlarını ehtiva edən xidməti bütün LAN üçün əlçatan edir. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Daxili Mux (coder/mux) agent orkestrasiya demonunun dinlədiyi portu əvəz edir (həmişə 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Daxili open-wa (WhatsApp Web avtomatlaşdırması) demonunun dinlədiyi portu əvəz edir (həmişə 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin bağlanma/qoşulma hostu (standart olaraq yalnız geri döngə interfeysi). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin portu. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin bağlanma/qoşulma hostu (standart olaraq yalnız geri döngə interfeysi). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario daxili xidmətinin portu. |
|
||||
| `LOCAL_HOSTNAMES` | _(boş)_ | `open-sse/config/providerRegistry.ts` | "Lokal" hesab edilən, vergüllə ayrılmış əlavə host adları (Docker xidmət adları və s.). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` yalnız Claude Code klientlərini eksklüziv şəkildə qəbul edən üçüncü tərəf retranslyatorları üçündür.
|
||||
OmniRoute sorğuları elə yenidən yazır ki, həmin retranslyatorlar onları qəbul etsin. Yalnız
|
||||
|
|
|
|||
|
|
@ -228,6 +228,8 @@ Avtomatik Kombinasiya Mühərriki **16 amilli qiymətləndirmə funksiyasından*
|
|||
| `quality` | 0.03 | Marşrutlaşdırma hadisələrinin keyfiyyət izləyicisindən alınan, rəyə əsaslanan çıxış keyfiyyəti siqnalı; müşahidəsi olmayan namizədlər neytral 0.5 alır |
|
||||
| `reliability` | 0.00 | On nümunəlik minimum hədd nəzərə alınmaqla 24 saatlıq istifadə tarixçəsindən əldə edilən müşahidə olunmuş uğur payı, `1 - failureRate` (əks halda real vaxt metrikaları); müşahidəsi olmayan namizədlər üçün bu göstərici 1.0 hesab olunur. Standart olaraq deaktivdir |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Cəm:** `DEFAULT_WEIGHTS` daxilində elan edildiyi kimi `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`; istifadəçi tərəfindən konfiqurasiya edilmiş çəkilər qiymətləndirmədən əvvəl `normalizeScoringWeights()` vasitəsilə paylanma şəklində yenidən normallaşdırılır.
|
||||
|
||||
## Rejim Paketləri
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ Axın:
|
|||
|
||||
Məcburi rejimlər avtomatik heuristika işə düşməzdən **əvvəl** qısaqapanma edir; `auto` davranışı PR-1-dən əvvəlki mühafizə mexanizmi ilə bayt-identikdir.
|
||||
|
||||
#### API açarının əhatəsi (`visionBridgeKeyScope.ts`)
|
||||
|
||||
API açarı bağlantıları, kvota hovuzlarını və ya modelləri məhdudlaşdırırsa (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), yönləndirmə və təsvir yalnız həmin açara icazə verilən model və bağlantıları seçir. Təsvir həmişə `x-omniroute-self-loop-key-id` başlığı ilə OmniRoute öz-dövrəsindən keçir və bağlantı/model siyasətini yenidən tətbiq edir. `enforceApiKeyPolicy()` başlığı yalnız həmin dövrənin bearer tokeni ilə qəbul edir: o, girişi yalnız daralda bilər, tapılmayan identifikator rədd edilir. İcazəli görmə modeli yoxdursa, təsvir ötürülür və sorğu söndürülmüş qoruyucuda olduğu kimi dəyişməz qalır (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Açarsız sorğular və bu məhdudiyyətləri olmayan açarlar əvvəlki kimi işləyir.
|
||||
|
||||
#### Tapşırığa uyğun təsvir sorğusu (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Varsayılan **doğru**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) **son istifadəçi mesajının** mətnini (500 simvola qədər qısaldılmış) əsas təsvir sorğusuna əlavə edir, təsviri istifadəçinin əslində nə soruşduğuna (codex-vision-proxy nümunəsi) yönəldir və görmə modelindən görünən mətni transkripsiya etməsini xahiş edir. Bayraq söndürüldükdə — və ya istifadəçi mətni olmadıqda — əsas sorğu dəyişdirilmədən istifadə olunur.
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ OmniRoute-u bir tərs proksi və ya tunel (nginx, Caddy, Cloudflare Tunnel, Tail
|
|||
- **403 səhvini müştəri IP-sini loopback kimi saxtalaşdıraraq "düzəltməyin".** `X-Forwarded-For: 127.0.0.1` təyin etmək və ya mənbə ünvanını loopback-ə yenidən yazan bir proksi, bu səviyyənin bağladığı RCE sinfini tam olaraq yenidən açır. İdarəetmə panelini/API-ni proksi vasitəsilə ifşa edin — heç vaxt işə salma qabiliyyətli yolları deyil.
|
||||
- **İdarəetmə sahəsinin keçidini minimal saxlayın.** Yalnız `/api/mcp/` keçid edilə bilər və yalnız `manage` sahəli API açarı ilə. `SPAWN_CAPABLE_PREFIXES` heç vaxt keçid siyahısına əlavə edilə bilməz — zod sxemi onları rədd edir və `isLocalOnlyBypassableByManageScope` onları işləmə zamanı rədd edir (dərin müdafiə), bu da idarəetmə panelinin "keçid edilə bilməz" deməkdir. `/api/providers/` altında dinamik seqment və statik yol işə salma qabiliyyətli yollar (məsələn, `/login`, `/refresh-cursor`) `src/shared/constants/spawnCapablePrefixes.ts` faylında regex əsaslı `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` yoldaşı tərəfindən əhatə olunur, düz `SPAWN_CAPABLE_PREFIXES` massivi tərəfindən deyil — düz massiv onları tutmaq üçün bütün `/api/providers/` prefiksini əhatə etməli olardı ki, bu da uzaq idarəetmə panellərinin provayder CRUD üçün qanuni olaraq istifadə etdiyi bir yol ağacını həddən artıq genişləndirərdi.
|
||||
|
||||
İcra vaxtı ani görüntü yükləyicisi belə qeydləri saxlanmış parametrlər sətrindən də çıxarır, köhnə JSON idxalı (`/api/settings/import-json`) isə yan keçmə açarlarını heç vaxt yazmır. Hər `LOCAL_ONLY_API_PREFIXES` qeydi ya qadağa siyahısında olmalı, ya da yoxlanılaraq yan keçməyə uyğun sayılmalıdır. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Girişin auditi** — heç bir şeyin bu yollara hostdan kənar çatmadığını yoxlamaq üçün:
|
||||
|
||||
- `/dashboard/settings/security` ünvanında **İcazə İnventarını** açın: o, canlı `LOCAL_ONLY` prefiks siyahısını, hansı prefikslərin bypass edilə bilən olduğunu və tərtib zamanı spawn-qabiliyyətli ("bypass edilə bilməyən") dəsti göstərir.
|
||||
|
|
|
|||
|
|
@ -432,6 +432,17 @@ glm-4.7=3
|
|||
`budgetMs`) в **Настройки → Устойчивост**. Никога не се изчаква при `quota_exhausted`
|
||||
(заключено до полунощ) или при причини, свързани с удостоверяване/ненамерен ресурс.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Контрол на допускането до опашката за заявки (v3.8.49 · проблем #6593)
|
||||
|
|
|
|||
|
|
@ -261,6 +261,8 @@ omniroute tokens scopes # обяснява трите обхват
|
|||
също да управлявате токени от таблото за управление под **Настройки → Токени за
|
||||
достъп** (създаване, отмяна, еднократно копиране).
|
||||
|
||||
Токен никога не може да бъде създаден с повече права, отколкото има създателят му. Само операторът може да създаде токен `admin`: чрез сесията в контролния панел, локалния CLI на самия сървър, `omniroute connect` с паролата или инстанция с изключено влизане. Машинните идентификационни данни (токен за достъп `admin` или API ключ с обхват `manage`/`admin`) могат да създават само токени `write` и `read`; заявка за `--scope admin` с тях връща `403`.
|
||||
|
||||
---
|
||||
|
||||
## Конфигуриране на CLI за програмиране от отдалечения каталог
|
||||
|
|
|
|||
|
|
@ -539,18 +539,22 @@ CLI_CLAUDE_BIN=/host-cli/bin/claude
|
|||
Тези променливи настройват поведението на самия CLI изпълним файл `omniroute` (а не
|
||||
откриването на страничния контейнер по-горе).
|
||||
|
||||
| Променлива | По подразбиране | Файл източник | Описание |
|
||||
| ------------------------------------- | --------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(системно)_ | `bin/cli/i18n.mjs` | Принудително задава езика на изхода на CLI. Локал по BCP-47 (напр. `en`, `pt-BR`). Има предимство пред системните променливи за локал (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(незададено)_ | `bin/cli/runtime/processSupervisor.mjs` | Задайте на `1`, за да препращате stdout/stderr на сървъра към терминала в контролиран режим. Еквивалентно на флага `--log` за `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(незададено)_ | `bin/cli/api.mjs` | Токен за машинно удостоверяване, добавян като заглавката `x-omniroute-cli-token`. Генерира се автоматично в задача 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(незададено)_ | `bin/cli/commands/setup-gemini.mjs` | Постоянна начална директория на Gemini; еднократното изпълнение използва временна изолирана начална директория. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Гратисен период в милисекунди преди принудителното прекратяване на CLI дъщерен процес, получил сигнал. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(незададено)_ | `bin/omniroute.mjs` | Задайте на 1 заедно с изрично зададена DATA_DIR, за да пропуснете файла с променливи на средата за директорията с данни на потребителя по подразбиране. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | HTTP изчакване за всеки опит (ms) при заявки от CLI към сървъра. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Максимално време (ms), през което CLI изчаква крайната точка за състоянието на сървъра, преди да изведе предупреждение за изтекло време. Полезно при бавно първоначално стартиране (напр. Windows). Може да се зададе и чрез `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Задайте на `1`, за да извеждате диагностична информация за повторните опити и изчакването между тях в stderr по време на CLI команди. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(незададено)_ | `bin/cli/plugins.mjs` | Персонализирана директория за откриване на CLI приставки (пакети `omniroute-cmd-*`). Когато не е зададена, по подразбиране се използва `~/.omniroute/plugins/`. Само за CLI — тя никога не достига до скенера за приставки от страна на сървъра, който се насочва чрез `OMNIROUTE_PLUGINS_DIR` (раздел 2). |
|
||||
| Променлива | По подразбиране | Файл източник | Описание |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(системно)_ | `bin/cli/i18n.mjs` | Принудително задава езика на изхода на CLI. Локал по BCP-47 (напр. `en`, `pt-BR`). Има предимство пред системните променливи за локал (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(незададено)_ | `bin/cli/runtime/processSupervisor.mjs` | Задайте на `1`, за да препращате stdout/stderr на сървъра към терминала в контролиран режим. Еквивалентно на флага `--log` за `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(незададено)_ | `bin/cli/api.mjs` | Токен за машинно удостоверяване, добавян като заглавката `x-omniroute-cli-token`. Генерира се автоматично в задача 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(незададено)_ | `bin/cli/commands/setup-gemini.mjs` | Постоянна начална директория на Gemini; еднократното изпълнение използва временна изолирана начална директория. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Гратисен период в милисекунди преди принудителното прекратяване на CLI дъщерен процес, получил сигнал. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(незададено)_ | `bin/omniroute.mjs` | Задайте на 1 заедно с изрично зададена DATA_DIR, за да пропуснете файла с променливи на средата за директорията с данни на потребителя по подразбиране. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | HTTP изчакване за всеки опит (ms) при заявки от CLI към сървъра. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Максимално време (ms), през което CLI изчаква крайната точка за състоянието на сървъра, преди да изведе предупреждение за изтекло време. Полезно при бавно първоначално стартиране (напр. Windows). Може да се зададе и чрез `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Задайте на `1`, за да извеждате диагностична информация за повторните опити и изчакването между тях в stderr по време на CLI команди. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(незададено)_ | `bin/cli/plugins.mjs` | Персонализирана директория за откриване на CLI приставки (пакети `omniroute-cmd-*`). Когато не е зададена, по подразбиране се използва `~/.omniroute/plugins/`. Само за CLI — тя никога не достига до скенера за приставки от страна на сървъра, който се насочва чрез `OMNIROUTE_PLUGINS_DIR` (раздел 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1197,6 +1201,7 @@ STREAM_HISTORY_MAX=10
|
|||
| `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. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(не е зададено)_ | `open-sse/executors/cloudflare-playground.ts` | Пълен път до двоичния файл на настолната версия на Chrome за изпълнителя на Cloudflare AI Playground, използван, когато проверката за идентификация в режим без графичен интерфейс блокира включения в Playwright Chromium. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): по подразбиране само системни инструкции с маркер за идентичност на програмиращ агент се заменят с неутрални (филтърът на Tencent ги отхвърля); дългите инструкции се запазват. Положително цяло число заменя и инструкциите с повече символи от него. Незададена стойност, `0` или нецяло число изключва ограничението за дължина. Всяка замяна записва причината (идентичност/дължина). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Заменя базовия адрес на Cloudflare REST API, използван от инструмента за разполагане на препредаващата услуга Workers на пула от проксита (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Име по подразбиране на worker проекта, предложено в модалния прозорец „Разполагане на препредаваща услуга“ на пула от проксита. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Задайте `false`, за да скриете опцията за препредаваща услуга на Cloudflare Workers от раздела „Пул от проксита“. |
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ curl -X POST http://localhost:20128/v1/chat/completions \
|
|||
| `quality` | 0.03 | Сигнал за качеството на изхода, базиран на обратна връзка от проследяването на качеството на събитията при маршрутизиране; кандидатите без наблюдения получават неутрална стойност 0.5 |
|
||||
| `reliability` | 0.00 | Наблюдаван дял на успешните заявки, `1 - failureRate`, от 24-часова хронология на използването при минимален праг от десет извадки (в противен случай се използват показатели в реално време); кандидатите без наблюдения получават стойност 1.0. Деактивирано по подразбиране |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Сбор:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, както е декларирано в `DEFAULT_WEIGHTS`; конфигурираните от потребителя тегла се нормализират повторно в разпределение чрез `normalizeScoringWeights()` преди оценяването.
|
||||
|
||||
## Пакети от режими
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@
|
|||
Принудителните режими се прекъсват **преди** да се изпълни автоматичната евристика; поведението на `auto`
|
||||
е идентично по байтове с предпазния механизъм преди PR-1.
|
||||
|
||||
#### Обхват на API ключа (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Ако API ключът ограничава връзки, пулове от квоти или модели (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), пренасочването и описанието избират само разрешените за него модели и връзки. Описанието винаги минава през собствения цикъл на OmniRoute с хедъра `x-omniroute-self-loop-key-id`, като политиката за връзки и модели се прилага отново. `enforceApiKeyPolicy()` приема хедъра само с bearer токена на цикъла: той може само да стеснява достъпа, а неизвестен идентификатор се отхвърля. Ако няма разрешен визуален модел, описанието се пропуска и заявката остава непроменена, както при изключена защита (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Заявки без ключ и ключове без тези ограничения работят както преди.
|
||||
|
||||
#### Подкана за описване, съобразена със задачата (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
По подразбиране **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) добавя
|
||||
|
|
|
|||
|
|
@ -97,6 +97,8 @@ API ключ с обхват `manage` (вижте [Изключение за о
|
|||
- **Не "поправяйте" 403 чрез фалшифициране на клиентския IP като loopback.** Задаването на `X-Forwarded-For: 127.0.0.1` или прокси, което презаписва изходния адрес на loopback, отново отваря точно класа RCE, който това ниво затваря. Изложете таблото за управление/API чрез проксито — никога маршрутите, способни да стартират процеси.
|
||||
- **Поддържайте заобикалянето на обхвата за управление минимално.** Само `/api/mcp/` може да бъде заобиколен и то само с API ключ с обхват `manage`. `SPAWN_CAPABLE_PREFIXES` никога не могат да бъдат добавени към списъка за заобикаляне — схемата zod ги отхвърля и `isLocalOnlyBypassableByManageScope` ги отказва по време на изпълнение (защита в дълбочина), което е това, което таблото за управление има предвид под "не може да бъде направено заобиколимо". Маршрутите, способни да стартират процеси с динамични сегменти и статични пътища под `/api/providers/` (напр. `/login`, `/refresh-cursor`), са обхванати от базирания на регулярен израз `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` в `src/shared/constants/spawnCapablePrefixes.ts`, а не от плоския масив `SPAWN_CAPABLE_PREFIXES` — плоският масив би трябвало да покрие целия префикс `/api/providers/`, за да ги улови, прекомерно разширявайки дърво от маршрути, които отдалечените табла за управление легитимно използват за CRUD на доставчици.
|
||||
|
||||
Зареждащият модул за моментни снимки по време на изпълнение отхвърля такива записи и от съхранен ред с настройки, а наследеният JSON импорт (`/api/settings/import-json`) никога не записва ключовете за заобикаляне. Всеки запис в `LOCAL_ONLY_API_PREFIXES` трябва да е в списъка със забрани или след преглед да е одобрен за заобикаляне. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Одит на достъпа** — за да се провери, че нищо извън хоста не достига до тези маршрути:
|
||||
|
||||
- Отворете **Инвентара за оторизация** на `/dashboard/settings/security`: той показва списъка с префикси на живо `LOCAL_ONLY`, кои префикси могат да бъдат заобиколени, и компилирания набор от spawn-capable ("не може да бъде направен заобиколим").
|
||||
|
|
|
|||
|
|
@ -420,6 +420,17 @@ concurrency**-এ এটি টগল করুন (`resilienceSettings.quotaSha
|
|||
`budgetMs`) দ্বারা সীমাবদ্ধ। এটি কখনোই `quota_exhausted` (মধ্যরাত পর্যন্ত লক করা)
|
||||
অথবা auth/not-found কারণের ক্ষেত্রে অপেক্ষা করে না।
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. রিকোয়েস্ট কিউ অ্যাডমিশন কন্ট্রোল (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -222,6 +222,8 @@ omniroute tokens scopes # তিনটি scope ব্যাখ্
|
|||
`tokens` command-এর জন্য একটি **admin** credential প্রয়োজন। আপনি ড্যাশবোর্ডের
|
||||
**Settings → Access Tokens** থেকেও token পরিচালনা করতে পারেন (তৈরি করা, revoke করা, একবার কপি করা)।
|
||||
|
||||
কোনো টোকেন তার স্রষ্টার চেয়ে বেশি বিশেষাধিকার নিয়ে তৈরি করা যায় না। শুধু অপারেটরই `admin` টোকেন তৈরি করতে পারেন: ড্যাশবোর্ড সেশন, সার্ভারের নিজের স্থানীয় CLI, পাসওয়ার্ডসহ `omniroute connect`, অথবা লগইন নিষ্ক্রিয় থাকা ইনস্ট্যান্সের মাধ্যমে। মেশিনের পরিচয়পত্র (`admin` অ্যাক্সেস টোকেন বা `manage`/`admin` স্কোপযুক্ত API কী) শুধু `write` ও `read` টোকেন তৈরি করতে পারে; সেগুলো দিয়ে `--scope admin` চাইলে `403` ফেরত আসে।
|
||||
|
||||
---
|
||||
|
||||
## রিমোট catalog থেকে একটি coding CLI কনফিগার করা
|
||||
|
|
|
|||
|
|
@ -530,18 +530,22 @@ image-টি `USER node` হিসেবে চলে, তাই mount না
|
|||
|
||||
এই ভেরিয়েবলগুলো `omniroute` CLI binary-এর নিজস্ব আচরণ নিয়ন্ত্রণ করে (উপরের sidecar শনাক্তকরণ নয়)।
|
||||
|
||||
| ভেরিয়েবল | ডিফল্ট | সোর্স ফাইল | বিবরণ |
|
||||
| ------------------------------------- | --------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(সিস্টেম)_ | `bin/cli/i18n.mjs` | CLI output-এর ভাষা নির্ধারণ করে। BCP-47 locale (যেমন `en`, `pt-BR`)। সিস্টেম locale env var (LC_ALL, LC_MESSAGES) override করে। |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(সেট করা নেই)_ | `bin/cli/runtime/processSupervisor.mjs` | supervised mode-এ server stdout/stderr terminal-এ পাঠাতে `1` হিসেবে সেট করুন। `omniroute serve`-এর `--log` flag-এর সমতুল্য। |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(সেট করা নেই)_ | `bin/cli/api.mjs` | `x-omniroute-cli-token` header হিসেবে inject করা 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-কে জোরপূর্বক বন্ধ করার আগের grace period, মিলিসেকেন্ডে। |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(সেট করা নেই)_ | `bin/omniroute.mjs` | ডিফল্ট ব্যবহারকারীর data-directory environment file এড়িয়ে যেতে একটি স্পষ্ট DATA_DIR-এর সঙ্গে `1` হিসেবে সেট করুন। |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → server request-এর প্রতিটি প্রচেষ্টার HTTP timeout (ms)। |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | timeout warning দেখানোর আগে CLI server-এর health endpoint-এর জন্য সর্বোচ্চ যতক্ষণ (ms) অপেক্ষা করে। ধীর cold start-এর ক্ষেত্রে উপযোগী (যেমন Windows)। `--ready-timeout` দিয়েও সেট করা যায়। |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI command চলাকালে stderr-এ retry/backoff diagnostic দেখাতে `1` হিসেবে সেট করুন। |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(সেট করা নেই)_ | `bin/cli/plugins.mjs` | CLI plugin discovery-এর জন্য custom directory (`omniroute-cmd-*` package)। সেট করা না থাকলে ডিফল্ট হলো `~/.omniroute/plugins/`। এটি শুধু CLI-এর জন্য — এটি কখনোই server-side plugin scanner-এ পৌঁছায় না, যেটি `OMNIROUTE_PLUGINS_DIR` (section 2) দ্বারা নির্দেশিত। |
|
||||
| ভেরিয়েবল | ডিফল্ট | সোর্স ফাইল | বিবরণ |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(সিস্টেম)_ | `bin/cli/i18n.mjs` | CLI output-এর ভাষা নির্ধারণ করে। BCP-47 locale (যেমন `en`, `pt-BR`)। সিস্টেম locale env var (LC_ALL, LC_MESSAGES) override করে। |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(সেট করা নেই)_ | `bin/cli/runtime/processSupervisor.mjs` | supervised mode-এ server stdout/stderr terminal-এ পাঠাতে `1` হিসেবে সেট করুন। `omniroute serve`-এর `--log` flag-এর সমতুল্য। |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(সেট করা নেই)_ | `bin/cli/api.mjs` | `x-omniroute-cli-token` header হিসেবে inject করা 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-কে জোরপূর্বক বন্ধ করার আগের grace period, মিলিসেকেন্ডে। |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(সেট করা নেই)_ | `bin/omniroute.mjs` | ডিফল্ট ব্যবহারকারীর data-directory environment file এড়িয়ে যেতে একটি স্পষ্ট DATA_DIR-এর সঙ্গে `1` হিসেবে সেট করুন। |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI → server request-এর প্রতিটি প্রচেষ্টার HTTP timeout (ms)। |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | timeout warning দেখানোর আগে CLI server-এর health endpoint-এর জন্য সর্বোচ্চ যতক্ষণ (ms) অপেক্ষা করে। ধীর cold start-এর ক্ষেত্রে উপযোগী (যেমন Windows)। `--ready-timeout` দিয়েও সেট করা যায়। |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | CLI command চলাকালে stderr-এ retry/backoff diagnostic দেখাতে `1` হিসেবে সেট করুন। |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(সেট করা নেই)_ | `bin/cli/plugins.mjs` | CLI plugin discovery-এর জন্য custom directory (`omniroute-cmd-*` package)। সেট করা না থাকলে ডিফল্ট হলো `~/.omniroute/plugins/`। এটি শুধু CLI-এর জন্য — এটি কখনোই server-side plugin scanner-এ পৌঁছায় না, যেটি `OMNIROUTE_PLUGINS_DIR` (section 2) দ্বারা নির্দেশিত। |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1172,50 +1176,51 @@ Adobe Firefly ওয়েব প্রোভাইডারের জন্য
|
|||
|
||||
## 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-কে ব্লক করলে ব্যবহৃত হয়। |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | প্রক্সি-পুল Workers রিলে ডিপ্লয়ার দ্বারা ব্যবহৃত Cloudflare REST API বেস ওভাররাইড করে (#4640 / 9router#1360)। |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | প্রক্সি-পুলের "Deploy Relay" মোডালে প্রস্তাবিত ডিফল্ট worker প্রকল্পের নাম। |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Proxy Pool ট্যাব থেকে Cloudflare Workers রিলে বিকল্পটি লুকাতে `false`-এ সেট করুন। |
|
||||
| `CLOUDFLARED_BIN` | স্বয়ংক্রিয়ভাবে শনাক্ত | `src/lib/cloudflaredTunnel.ts` | `cloudflared` বাইনারির কাস্টম পাথ। |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | টানেল ট্রান্সপোর্ট প্রোটোকল: `http2` (ডিফল্ট), `quic`, অথবা `auto`। |
|
||||
| `CLOUDFLARED_CONFIG` | _(সেট করা নেই)_ | `src/lib/cloudflaredTunnel.ts` | স্থানীয়ভাবে পরিচালিত cloudflared `config.yml`-এর পাথ (`tunnel:`, `credentials-file:`, `ingress:` সহ)। এটি সেট করা থাকলে OmniRoute একটি অস্থায়ী quick tunnel-এর পরিবর্তে `tunnel --config <path> run` (নামযুক্ত tunnel) চালায়। |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(config ingress থেকে)_ | `src/lib/cloudflaredTunnel.ts` | নামযুক্ত tunnel-এর সর্বজনীন hostname-এর ওভাররাইড (যেমন `ai.example.com`), যা `publicUrl`/`apiUrl` হিসেবে রিপোর্ট করা হয়। সেট করা না থাকলে এটি config-এর প্রথম `ingress` hostname থেকে পড়া হয়। |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | proxy-pool relay deployer-এর ব্যবহৃত Deno Deploy REST API base ওভাররাইড করুন (#4643 / 9router#1437)। |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | proxy-pool-এর "Deploy Relay" modal-এ প্রস্তাবিত ডিফল্ট Deno Deploy app-এর নাম। |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Proxy Pool tab থেকে Deno Deploy relay বিকল্পটি লুকাতে `false`-এ সেট করুন। |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (৫ মিনিট) | `open-sse/services/searchCache.ts` | search API (Perplexity, Brave ইত্যাদি)-এর response caching-এর TTL। |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | শুধুমাত্র Claude Code-এর relay-গুলোর জন্য পরীক্ষামূলক CC-compatible provider UI প্রকাশ করুন। |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | embedded 9router instance যে host-এ শোনে, সেটি ওভাররাইড করুন। |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | embedded 9router instance যে port-এ শোনে, সেটি ওভাররাইড করুন। |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | embedded-service WebSocket proxy-এর bind host (ডিফল্টভাবে শুধু loopback)। |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | embedded-service WebSocket proxy server-এর port। |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI bridge host (legacy integration)। |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI bridge port। |
|
||||
| `CLIPROXYAPI_API_KEY` | _(খালি)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | `cliproxyapi_api_key` setting অনুপস্থিত থাকলে data-plane key fallback। |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(খালি)_ | `src/lib/services/cliproxyAccountHealth.ts` | বাহ্যিকভাবে পরিচালিত CLIProxyAPI instance থেকে account-health পড়ার জন্য management key। |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI config directory। |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose যে host interface-এ `cliproxyapi` sidecar প্রকাশ করে (#12578)। এর data volume-এ provider OAuth/API credentials থাকে এবং pinned image-এ env-ভিত্তিক data-plane `api-keys` ওভাররাইড নেই (কেবল একটি mounted `config.yaml` আছে), তাই `0.0.0.0` পুরো LAN-এর কাছে credentials-সহ একটি service উন্মুক্ত করে দেয়। |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | embedded Mux (coder/mux) agent-orchestration daemon যে port-এ শোনে, সেটি ওভাররাইড করুন (সর্বদা 127.0.0.1)। |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | embedded open-wa (WhatsApp Web automation) daemon যে port-এ শোনে, সেটি ওভাররাইড করুন (সর্বদা 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 সার্ভিসের নাম ইত্যাদি)। |
|
||||
| ভেরিয়েবল | ডিফল্ট | সোর্স ফাইল | বিবরণ |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `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` বা অপূর্ণসংখ্যা দিলে দৈর্ঘ্যসীমা বন্ধ থাকে। প্রতিটি প্রতিস্থাপনের কারণ (পরিচয়/দৈর্ঘ্য) লগে লেখা হয়। |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | প্রক্সি-পুল Workers রিলে ডিপ্লয়ার দ্বারা ব্যবহৃত Cloudflare REST API বেস ওভাররাইড করে (#4640 / 9router#1360)। |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | প্রক্সি-পুলের "Deploy Relay" মোডালে প্রস্তাবিত ডিফল্ট worker প্রকল্পের নাম। |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Proxy Pool ট্যাব থেকে Cloudflare Workers রিলে বিকল্পটি লুকাতে `false`-এ সেট করুন। |
|
||||
| `CLOUDFLARED_BIN` | স্বয়ংক্রিয়ভাবে শনাক্ত | `src/lib/cloudflaredTunnel.ts` | `cloudflared` বাইনারির কাস্টম পাথ। |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | টানেল ট্রান্সপোর্ট প্রোটোকল: `http2` (ডিফল্ট), `quic`, অথবা `auto`। |
|
||||
| `CLOUDFLARED_CONFIG` | _(সেট করা নেই)_ | `src/lib/cloudflaredTunnel.ts` | স্থানীয়ভাবে পরিচালিত cloudflared `config.yml`-এর পাথ (`tunnel:`, `credentials-file:`, `ingress:` সহ)। এটি সেট করা থাকলে OmniRoute একটি অস্থায়ী quick tunnel-এর পরিবর্তে `tunnel --config <path> run` (নামযুক্ত tunnel) চালায়। |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(config ingress থেকে)_ | `src/lib/cloudflaredTunnel.ts` | নামযুক্ত tunnel-এর সর্বজনীন hostname-এর ওভাররাইড (যেমন `ai.example.com`), যা `publicUrl`/`apiUrl` হিসেবে রিপোর্ট করা হয়। সেট করা না থাকলে এটি config-এর প্রথম `ingress` hostname থেকে পড়া হয়। |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | proxy-pool relay deployer-এর ব্যবহৃত Deno Deploy REST API base ওভাররাইড করুন (#4643 / 9router#1437)। |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | proxy-pool-এর "Deploy Relay" modal-এ প্রস্তাবিত ডিফল্ট Deno Deploy app-এর নাম। |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Proxy Pool tab থেকে Deno Deploy relay বিকল্পটি লুকাতে `false`-এ সেট করুন। |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (৫ মিনিট) | `open-sse/services/searchCache.ts` | search API (Perplexity, Brave ইত্যাদি)-এর response caching-এর TTL। |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | শুধুমাত্র Claude Code-এর relay-গুলোর জন্য পরীক্ষামূলক CC-compatible provider UI প্রকাশ করুন। |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | embedded 9router instance যে host-এ শোনে, সেটি ওভাররাইড করুন। |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | embedded 9router instance যে port-এ শোনে, সেটি ওভাররাইড করুন। |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | embedded-service WebSocket proxy-এর bind host (ডিফল্টভাবে শুধু loopback)। |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | embedded-service WebSocket proxy server-এর port। |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI bridge host (legacy integration)। |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI bridge port। |
|
||||
| `CLIPROXYAPI_API_KEY` | _(খালি)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | `cliproxyapi_api_key` setting অনুপস্থিত থাকলে data-plane key fallback। |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(খালি)_ | `src/lib/services/cliproxyAccountHealth.ts` | বাহ্যিকভাবে পরিচালিত CLIProxyAPI instance থেকে account-health পড়ার জন্য management key। |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI config directory। |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | docker-compose যে host interface-এ `cliproxyapi` sidecar প্রকাশ করে (#12578)। এর data volume-এ provider OAuth/API credentials থাকে এবং pinned image-এ env-ভিত্তিক data-plane `api-keys` ওভাররাইড নেই (কেবল একটি mounted `config.yaml` আছে), তাই `0.0.0.0` পুরো LAN-এর কাছে credentials-সহ একটি service উন্মুক্ত করে দেয়। |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | embedded Mux (coder/mux) agent-orchestration daemon যে port-এ শোনে, সেটি ওভাররাইড করুন (সর্বদা 127.0.0.1)। |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | embedded open-wa (WhatsApp Web automation) daemon যে port-এ শোনে, সেটি ওভাররাইড করুন (সর্বদা 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 অনুরোধগুলো পুনর্লিখন করে, যাতে ওই রিলেগুলো সেগুলো গ্রহণ করে। আপনি যদি শুধু
|
||||
|
|
|
|||
|
|
@ -192,6 +192,8 @@ Auto-Combo Engine প্রতিটি অনুরোধের জন্য
|
|||
| `quality` | 0.03 | routing-event quality tracker থেকে প্রাপ্ত feedback-চালিত output-quality signal; observation-বিহীন candidate-গুলো নিরপেক্ষ 0.5 পায় |
|
||||
| `reliability` | 0.00 | দশটি sample-এর ন্যূনতম সীমা সাপেক্ষে ২৪ ঘণ্টার usage history থেকে পর্যবেক্ষিত সফলতার অংশ, `1 - failureRate` (অন্যথায় real-time metrics); observation-বিহীন candidate-গুলোর মান 1.0 হিসেবে গণ্য হয়। ডিফল্টভাবে নিষ্ক্রিয় |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**যোগফল:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, যেমনটি `DEFAULT_WEIGHTS`-এ ঘোষিত হয়েছে; ব্যবহারকারী-কনফিগার করা weight-গুলো scoring-এর আগে `normalizeScoringWeights()` দ্বারা একটি distribution-এ পুনরায় স্বাভাবিকীকরণ করা হয়।
|
||||
|
||||
## মোড প্যাকসমূহ
|
||||
|
|
|
|||
|
|
@ -50,6 +50,10 @@ Guardrail-গুলো OmniRoute ও upstream provider-গুলোর মধ্
|
|||
|
||||
জোরপূর্বক মোডগুলি স্বয়ংক্রিয় হিউরিস্টিক চলার **আগে** শর্ট-সার্কিট করে; `auto` আচরণটি প্রি-PR-1 গার্ডরেলের সাথে বাইট-আইডেন্টিক্যাল।
|
||||
|
||||
#### API কী-এর পরিসর (`visionBridgeKeyScope.ts`)
|
||||
|
||||
API কী সংযোগ, কোটা পুল বা মডেল সীমিত করলে (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), পুনর্নির্দেশ ও বর্ণনা শুধু সেই কী-এর অনুমোদিত মডেল ও সংযোগ বেছে নেয়। বর্ণনার কল সবসময় `x-omniroute-self-loop-key-id` হেডারসহ OmniRoute-এর নিজস্ব লুপ দিয়ে যায়, যাতে সংযোগ ও মডেলের নীতি আবার প্রয়োগ হয়। `enforceApiKeyPolicy()` শুধু ওই লুপের bearer টোকেনের সঙ্গে হেডারটি গ্রহণ করে; এটি কেবল প্রবেশাধিকার কমাতে পারে এবং অচেনা আইডি প্রত্যাখ্যাত হয়। অনুমোদিত ভিশন মডেল না থাকলে বর্ণনা বাদ যায় এবং নিষ্ক্রিয় গার্ডরেলের মতো অনুরোধ অপরিবর্তিত থাকে (meta `{ skipped: true, reason: "no_permitted_vision_model" }`)। কী-বিহীন অনুরোধ ও এই সীমাবদ্ধতা-বিহীন কী আগের মতোই কাজ করে।
|
||||
|
||||
#### টাস্ক-সচেতন বর্ণনা প্রম্পট (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
ডিফল্ট **সত্য**। `composeVisionPrompt()` (`visionBridgeHelpers.ts`) বেস বর্ণনা প্রম্পটে **শেষ ব্যবহারকারীর বার্তার** পাঠ্য (৫০০ অক্ষর পর্যন্ত সংক্ষিপ্ত) যুক্ত করে, ব্যবহারকারী আসলে কী জিজ্ঞাসা করেছে তার দিকে বর্ণনাকে চালিত করে (কোডেক্স-ভিশন-প্রক্সি প্যাটার্ন) এবং ভিশন মডেলকে দৃশ্যমান পাঠ্য প্রতিলিপি করতে বলে। ফ্ল্যাগ বন্ধ থাকলে — অথবা কোনো ব্যবহারকারীর পাঠ্য না থাকলে — বেস প্রম্পট অপরিবর্তিতভাবে ব্যবহৃত হয়।
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ OmniRoute-এর সব ম্যানেজমেন্ট API রুটকে
|
|||
- **একটি 403 কে ক্লায়েন্ট আইপি লুপব্যাক হিসাবে জাল করে "ঠিক" করবেন না।** `X-Forwarded-For: 127.0.0.1` সেট করা, অথবা একটি প্রক্সি যা সোর্স অ্যাড্রেসকে লুপব্যাকে পুনরায় লেখে, ঠিক সেই RCE ক্লাসটি পুনরায় খোলে যা এই স্তরটি বন্ধ করে। প্রক্সির মাধ্যমে ড্যাশবোর্ড/এপিআই প্রকাশ করুন — স্পন-সক্ষম রুটগুলি কখনই নয়।
|
||||
- **ম্যানেজ-স্কোপ বাইপাসকে ন্যূনতম রাখুন।** শুধুমাত্র `/api/mcp/` বাইপাসযোগ্য, এবং শুধুমাত্র একটি `manage`-স্কোপড API কী দিয়ে। `SPAWN_CAPABLE_PREFIXES` বাইপাস তালিকায় যোগ করা যাবে না — zod স্কিমা তাদের প্রত্যাখ্যান করে এবং `isLocalOnlyBypassableByManageScope` রানটাইমে তাদের অস্বীকার করে (defence-in-depth), যা ড্যাশবোর্ড "বাইপাসযোগ্য করা যাবে না" বলতে বোঝায়। `/api/providers/` এর অধীনে ডাইনামিক-সেগমেন্ট এবং স্ট্যাটিক-পাথ স্পন-সক্ষম রুটগুলি (যেমন `/login`, `/refresh-cursor`) `src/shared/constants/spawnCapablePrefixes.ts` এ regex-ভিত্তিক `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` সঙ্গী দ্বারা আচ্ছাদিত, ফ্ল্যাট `SPAWN_CAPABLE_PREFIXES` অ্যারে দ্বারা নয় — ফ্ল্যাট অ্যারেটিকে তাদের ধরার জন্য পুরো `/api/providers/` প্রিফিক্স কভার করতে হবে, যা দূরবর্তী ড্যাশবোর্ডগুলি সরবরাহকারী CRUD এর জন্য বৈধভাবে ব্যবহার করে এমন একটি রুট ট্রিকে অতিরিক্ত বিস্তৃত করবে।
|
||||
|
||||
রানটাইম স্ন্যাপশট লোডার সংরক্ষিত সেটিংস সারি থেকেও এমন এন্ট্রি বাদ দেয়, আর পুরোনো JSON আমদানি (`/api/settings/import-json`) কখনো বাইপাস কী লেখে না। `LOCAL_ONLY_API_PREFIXES`-এর প্রতিটি এন্ট্রি হয় নিষেধ তালিকায় থাকতে হবে, নয়তো পর্যালোচনার পর বাইপাসের যোগ্য হিসেবে অনুমোদিত হতে হবে। (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**অ্যাক্সেস নিরীক্ষা** — হোস্টের বাইরে থেকে এই রুটগুলিতে কিছু পৌঁছাচ্ছে না তা যাচাই করতে:
|
||||
|
||||
- `/dashboard/settings/security`-এ **Authorization Inventory** খুলুন: এটি লাইভ LOCAL_ONLY প্রিফিক্স তালিকা, কোন প্রিফিক্সগুলি বাইপাসযোগ্য, এবং কম্পাইল-টাইম স্পন-সক্ষম ("বাইপাসযোগ্য করা যাবে না") সেট রেন্ডার করে।
|
||||
|
|
|
|||
|
|
@ -435,6 +435,17 @@ dosegnu ograničenje brzine po modelu. Ograničeno je postavkom `comboCooldownWa
|
|||
Nikada ne čeka zbog razloga `quota_exhausted` (zaključano do ponoći) niti zbog
|
||||
autentifikacije/nepostojanja.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Kontrola prijema u red zahtjeva (v3.8.49 · problem #6593)
|
||||
|
|
|
|||
|
|
@ -202,6 +202,8 @@ omniroute tokens scopes # objasnite tri opsega
|
|||
|
||||
Komande `tokens` zahtijevaju **admin** akreditive. Tokenima takođe možete upravljati na kontrolnoj tabli pod **Settings → Access Tokens** (kreiranje, opoziv, kopiranje jednom).
|
||||
|
||||
Token se nikada ne može kreirati s više privilegija nego što ih ima njegov kreator. Token `admin` može kreirati samo operater: putem sesije kontrolne ploče, lokalnog CLI-ja na samom serveru, naredbom `omniroute connect` s lozinkom ili u instanci s onemogućenom prijavom. Mašinski pristupni podaci (pristupni token `admin` ili API ključ s opsegom `manage`/`admin`) mogu kreirati samo tokene `write` i `read`; zahtjev za `--scope admin` s njima vraća `403`.
|
||||
|
||||
---
|
||||
|
||||
## Konfigurisanje CLI-ja za kodiranje iz udaljenog kataloga
|
||||
|
|
|
|||
|
|
@ -537,18 +537,22 @@ zamjena.
|
|||
Ove varijable podešavaju ponašanje same CLI binarne datoteke `omniroute` (ne prethodno
|
||||
navedeno otkrivanje pomoćnog kontejnera).
|
||||
|
||||
| Varijabla | Zadana vrijednost | Izvorna datoteka | Opis |
|
||||
| ------------------------------------- | -------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(sistem)_ | `bin/cli/i18n.mjs` | Prisilno postavite jezik CLI izlaza. BCP-47 lokalizacija (npr. `en`, `pt-BR`). Nadjačava varijable sistemske lokalizacije (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(nije postavljeno)_ | `bin/cli/runtime/processSupervisor.mjs` | Postavite na `1` za prosljeđivanje serverskog stdout/stderr izlaza terminalu u nadziranom režimu. Ekvivalentno opciji `--log` za `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(nije postavljeno)_ | `bin/cli/api.mjs` | Token za mašinsku autentifikaciju koji se umeće kao zaglavlje `x-omniroute-cli-token`. Automatski se generira u zadatku 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(nije postavljeno)_ | `bin/cli/commands/setup-gemini.mjs` | Korijenski direktorij trajnog Gemini početnog direktorija; jednokratno pokretanje koristi privremeni izolirani početni direktorij. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Period odgode u milisekundama prije prisilnog prekidanja signaliziranog podređenog CLI procesa. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nije postavljeno)_ | `bin/omniroute.mjs` | Postavite na 1 uz izričito navedeni DATA_DIR kako biste preskočili datoteku okruženja direktorija podataka zadanog korisnika. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Vremensko ograničenje HTTP zahtjeva po pokušaju (ms) za CLI → server zahtjeve. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maksimalno vrijeme (ms) koje CLI čeka krajnju tačku stanja servera prije ispisivanja upozorenja o isteku vremena. Korisno za spora hladna pokretanja (npr. Windows). Može se postaviti i putem `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Postavite na `1` za ispis dijagnostike ponovnih pokušaja/progresivnog odgađanja na stderr tokom CLI naredbi. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(nije postavljeno)_ | `bin/cli/plugins.mjs` | Prilagođeni direktorij za otkrivanje CLI dodataka (paketi `omniroute-cmd-*`). Kada nije postavljeno, zadana vrijednost je `~/.omniroute/plugins/`. Samo za CLI — nikada ne dospijeva do skenera dodataka na strani servera, na koji upućuje `OMNIROUTE_PLUGINS_DIR` (odjeljak 2). |
|
||||
| Varijabla | Zadana vrijednost | Izvorna datoteka | Opis |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(sistem)_ | `bin/cli/i18n.mjs` | Prisilno postavite jezik CLI izlaza. BCP-47 lokalizacija (npr. `en`, `pt-BR`). Nadjačava varijable sistemske lokalizacije (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(nije postavljeno)_ | `bin/cli/runtime/processSupervisor.mjs` | Postavite na `1` za prosljeđivanje serverskog stdout/stderr izlaza terminalu u nadziranom režimu. Ekvivalentno opciji `--log` za `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(nije postavljeno)_ | `bin/cli/api.mjs` | Token za mašinsku autentifikaciju koji se umeće kao zaglavlje `x-omniroute-cli-token`. Automatski se generira u zadatku 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(nije postavljeno)_ | `bin/cli/commands/setup-gemini.mjs` | Korijenski direktorij trajnog Gemini početnog direktorija; jednokratno pokretanje koristi privremeni izolirani početni direktorij. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Period odgode u milisekundama prije prisilnog prekidanja signaliziranog podređenog CLI procesa. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nije postavljeno)_ | `bin/omniroute.mjs` | Postavite na 1 uz izričito navedeni DATA_DIR kako biste preskočili datoteku okruženja direktorija podataka zadanog korisnika. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Vremensko ograničenje HTTP zahtjeva po pokušaju (ms) za CLI → server zahtjeve. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maksimalno vrijeme (ms) koje CLI čeka krajnju tačku stanja servera prije ispisivanja upozorenja o isteku vremena. Korisno za spora hladna pokretanja (npr. Windows). Može se postaviti i putem `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Postavite na `1` za ispis dijagnostike ponovnih pokušaja/progresivnog odgađanja na stderr tokom CLI naredbi. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(nije postavljeno)_ | `bin/cli/plugins.mjs` | Prilagođeni direktorij za otkrivanje CLI dodataka (paketi `omniroute-cmd-*`). Kada nije postavljeno, zadana vrijednost je `~/.omniroute/plugins/`. Samo za CLI — nikada ne dospijeva do skenera dodataka na strani servera, na koji upućuje `OMNIROUTE_PLUGINS_DIR` (odjeljak 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1180,50 +1184,51 @@ instalaciji na desktop računaru.
|
|||
|
||||
## 20. Postavke specifične za pružaoce usluga
|
||||
|
||||
| Varijabla | Zadana vrijednost | Izvorna datoteka | Opis |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | TTL predmemorije kataloga OpenRouter modela. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Uključuje prikladna polja `name` u odgovorima `/v1/models`. Onemogućite za klijente koji očekuju samo ID-ove. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Ograničenje čekanja na hladnoj putanji za objedinjenu ponovnu izgradnju kataloga putem `GET /v1/models` (#12627). Ako dođe do isteka vremena, poslužuje se posljednji ispravan odgovor 200, ako postoji. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dana) | `src/lib/db/models/activeSyncedCatalog.ts` | Starost nakon koje sinhronizirana lista modela veze prestaje biti mjerodavna za usmjeravanje i dopušta nastavak prema registru u slučaju greške (#12849). Redovi bez vremenske oznake smatraju se zastarjelim. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Period tokom kojeg se spori odgovor na `GET /api/usage/analytics` ponovo koristi za isti niz upita (#15629). Vrijednost `0` onemogućava predmemoriju. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Predmemoriraju se samo analitički odgovori čija je izrada trajala najmanje ovoliko dugo, tako da male instance uvijek prikazuju svježe podatke. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maksimalno vrijeme čekanja na zadatke generisanja slika NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Učestalost provjere statusa NanoBanana zadataka. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Osnovno kašnjenje za eksponencijalno odgađanje ponovnih pokušaja slanja zahtjeva za Adobe Firefly povećanje rezolucije. |
|
||||
| `AWS_REGION` | _(nije postavljeno)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Regija koja se koristi za izradu AWS Bedrock krajnjih tačaka (Kiro, zvuk). |
|
||||
| `AWS_DEFAULT_REGION` | _(nije postavljeno)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Rezervna vrijednost kada `AWS_REGION` nije postavljena. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(nije postavljeno)_ | `open-sse/executors/cloudflare-ai.ts` | ID računa za Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nije postavljeno)_ | `open-sse/executors/cloudflare-playground.ts` | Puna putanja do binarne datoteke desktop verzije Chromea za izvršitelj Cloudflare AI Playground, koja se koristi kada provjera otiska preglednika bez korisničkog interfejsa blokira Chromium isporučen uz Playwright. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Zamjenjuje osnovnu adresu Cloudflare REST API-ja koju koristi implementator Workers releja za skup proxy servera (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Zadani naziv worker projekta predložen u modalu „Deploy Relay“ za skup proxy servera. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Postavite na `false` da biste sakrili opciju Cloudflare Workers releja na kartici Proxy Pool. |
|
||||
| `CLOUDFLARED_BIN` | automatsko otkrivanje | `src/lib/cloudflaredTunnel.ts` | Prilagođena putanja do binarne datoteke `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Transportni protokol tunela: `http2` (zadano), `quic` ili `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(nije postavljeno)_ | `src/lib/cloudflaredTunnel.ts` | Putanja do lokalno upravljane cloudflared datoteke `config.yml` (sa `tunnel:`, `credentials-file:`, `ingress:`). Kada je postavljeno, OmniRoute pokreće `tunnel --config <path> run` (imenovani tunel) umjesto privremenog brzog tunela. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(iz konfiguracije ingressa)_ | `src/lib/cloudflaredTunnel.ts` | Zamjena za javni naziv hosta imenovanog tunela (npr. `ai.example.com`), koji se prijavljuje kao `publicUrl`/`apiUrl`. Kada nije postavljeno, čita se iz prvog naziva hosta `ingress` u konfiguraciji. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Zamjenjuje osnovnu adresu Deno Deploy REST API-ja koju koristi program za implementaciju releja skupa proxyja (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Zadani naziv Deno Deploy aplikacije predložen u modalu „Implementiraj relej“ skupa proxyja. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Postavite na `false` da biste sakrili opciju Deno Deploy releja s kartice Skup proxyja. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | TTL za keširanje odgovora API-ja za pretragu (Perplexity, Brave itd.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Prikazuje eksperimentalno korisničko sučelje pružaoca kompatibilnog s CC-om za releje namijenjene isključivo za Claude Code. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Zamjenjuje host na kojem ugrađena instanca 9routera osluškuje. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Zamjenjuje port na kojem ugrađena instanca 9routera osluškuje. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Host za vezivanje WebSocket proxyja ugrađene usluge (zadano samo povratna petlja). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port za WebSocket proxy server ugrađene usluge. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Host CLIProxyAPI mosta (naslijeđena integracija). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port CLIProxyAPI mosta. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(prazno)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Rezervni ključ podatkovne ravni kada postavka `cliproxyapi_api_key` nije prisutna. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(prazno)_ | `src/lib/services/cliproxyAccountHealth.ts` | Upravljački ključ za očitavanje stanja računa iz eksterno upravljane CLIProxyAPI instance. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Direktorij konfiguracije CLIProxyAPI-ja. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Host interfejs na kojem docker-compose objavljuje pomoćni kontejner `cliproxyapi` (#12578). Njegov podatkovni volumen sadrži OAuth/API vjerodajnice pružaoca, a pričvršćena slika nema zamjenu `api-keys` podatkovne ravni zasnovanu na varijablama okruženja (samo montirani `config.yaml`), pa `0.0.0.0` izlaže uslugu koja sadrži vjerodajnice cijelom LAN-u. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Zamjenjuje port na kojem ugrađeni Mux (coder/mux) demon za orkestraciju agenata osluškuje (uvijek 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Zamjenjuje port na kojem ugrađeni open-wa demon (automatizacija WhatsApp Weba) osluškuje (uvijek 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host za povezivanje/slušanje ugrađenog Dario servisa (zadano samo povratna petlja). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port ugrađenog Dario servisa. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host za povezivanje/slušanje ugrađenog Dario servisa (zadano samo povratna petlja). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port ugrađenog Dario servisa. |
|
||||
| `LOCAL_HOSTNAMES` | _(prazno)_ | `open-sse/config/providerRegistry.ts` | Dodatni nazivi hostova, odvojeni zarezima, koji se smatraju „lokalnim“ (nazivi Docker servisa itd.). |
|
||||
| Varijabla | Zadana vrijednost | Izvorna datoteka | Opis |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | TTL predmemorije kataloga OpenRouter modela. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Uključuje prikladna polja `name` u odgovorima `/v1/models`. Onemogućite za klijente koji očekuju samo ID-ove. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Ograničenje čekanja na hladnoj putanji za objedinjenu ponovnu izgradnju kataloga putem `GET /v1/models` (#12627). Ako dođe do isteka vremena, poslužuje se posljednji ispravan odgovor 200, ako postoji. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dana) | `src/lib/db/models/activeSyncedCatalog.ts` | Starost nakon koje sinhronizirana lista modela veze prestaje biti mjerodavna za usmjeravanje i dopušta nastavak prema registru u slučaju greške (#12849). Redovi bez vremenske oznake smatraju se zastarjelim. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Period tokom kojeg se spori odgovor na `GET /api/usage/analytics` ponovo koristi za isti niz upita (#15629). Vrijednost `0` onemogućava predmemoriju. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Predmemoriraju se samo analitički odgovori čija je izrada trajala najmanje ovoliko dugo, tako da male instance uvijek prikazuju svježe podatke. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maksimalno vrijeme čekanja na zadatke generisanja slika NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Učestalost provjere statusa NanoBanana zadataka. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Osnovno kašnjenje za eksponencijalno odgađanje ponovnih pokušaja slanja zahtjeva za Adobe Firefly povećanje rezolucije. |
|
||||
| `AWS_REGION` | _(nije postavljeno)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Regija koja se koristi za izradu AWS Bedrock krajnjih tačaka (Kiro, zvuk). |
|
||||
| `AWS_DEFAULT_REGION` | _(nije postavljeno)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Rezervna vrijednost kada `AWS_REGION` nije postavljena. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(nije postavljeno)_ | `open-sse/executors/cloudflare-ai.ts` | ID računa za Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nije postavljeno)_ | `open-sse/executors/cloudflare-playground.ts` | Puna putanja do binarne datoteke desktop verzije Chromea za izvršitelj Cloudflare AI Playground, koja se koristi kada provjera otiska preglednika bez korisničkog interfejsa blokira Chromium isporučen uz Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): podrazumijevano se samo sistemske upute s oznakom identiteta programerskog agenta zamjenjuju neutralnim (Tencentov filter ih odbija); duge upute se čuvaju. Pozitivan cijeli broj zamjenjuje i upute duže od tog broja znakova. Nepostavljena vrijednost, `0` ili necijeli broj isključuje ograničenje dužine. Svaka zamjena bilježi razlog (identitet/dužina). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Zamjenjuje osnovnu adresu Cloudflare REST API-ja koju koristi implementator Workers releja za skup proxy servera (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Zadani naziv worker projekta predložen u modalu „Deploy Relay“ za skup proxy servera. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Postavite na `false` da biste sakrili opciju Cloudflare Workers releja na kartici Proxy Pool. |
|
||||
| `CLOUDFLARED_BIN` | automatsko otkrivanje | `src/lib/cloudflaredTunnel.ts` | Prilagođena putanja do binarne datoteke `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Transportni protokol tunela: `http2` (zadano), `quic` ili `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(nije postavljeno)_ | `src/lib/cloudflaredTunnel.ts` | Putanja do lokalno upravljane cloudflared datoteke `config.yml` (sa `tunnel:`, `credentials-file:`, `ingress:`). Kada je postavljeno, OmniRoute pokreće `tunnel --config <path> run` (imenovani tunel) umjesto privremenog brzog tunela. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(iz konfiguracije ingressa)_ | `src/lib/cloudflaredTunnel.ts` | Zamjena za javni naziv hosta imenovanog tunela (npr. `ai.example.com`), koji se prijavljuje kao `publicUrl`/`apiUrl`. Kada nije postavljeno, čita se iz prvog naziva hosta `ingress` u konfiguraciji. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Zamjenjuje osnovnu adresu Deno Deploy REST API-ja koju koristi program za implementaciju releja skupa proxyja (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Zadani naziv Deno Deploy aplikacije predložen u modalu „Implementiraj relej“ skupa proxyja. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Postavite na `false` da biste sakrili opciju Deno Deploy releja s kartice Skup proxyja. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | TTL za keširanje odgovora API-ja za pretragu (Perplexity, Brave itd.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Prikazuje eksperimentalno korisničko sučelje pružaoca kompatibilnog s CC-om za releje namijenjene isključivo za Claude Code. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Zamjenjuje host na kojem ugrađena instanca 9routera osluškuje. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Zamjenjuje port na kojem ugrađena instanca 9routera osluškuje. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Host za vezivanje WebSocket proxyja ugrađene usluge (zadano samo povratna petlja). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port za WebSocket proxy server ugrađene usluge. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Host CLIProxyAPI mosta (naslijeđena integracija). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port CLIProxyAPI mosta. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(prazno)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Rezervni ključ podatkovne ravni kada postavka `cliproxyapi_api_key` nije prisutna. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(prazno)_ | `src/lib/services/cliproxyAccountHealth.ts` | Upravljački ključ za očitavanje stanja računa iz eksterno upravljane CLIProxyAPI instance. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Direktorij konfiguracije CLIProxyAPI-ja. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Host interfejs na kojem docker-compose objavljuje pomoćni kontejner `cliproxyapi` (#12578). Njegov podatkovni volumen sadrži OAuth/API vjerodajnice pružaoca, a pričvršćena slika nema zamjenu `api-keys` podatkovne ravni zasnovanu na varijablama okruženja (samo montirani `config.yaml`), pa `0.0.0.0` izlaže uslugu koja sadrži vjerodajnice cijelom LAN-u. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Zamjenjuje port na kojem ugrađeni Mux (coder/mux) demon za orkestraciju agenata osluškuje (uvijek 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Zamjenjuje port na kojem ugrađeni open-wa demon (automatizacija WhatsApp Weba) osluškuje (uvijek 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host za povezivanje/slušanje ugrađenog Dario servisa (zadano samo povratna petlja). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port ugrađenog Dario servisa. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host za povezivanje/slušanje ugrađenog Dario servisa (zadano samo povratna petlja). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port ugrađenog Dario servisa. |
|
||||
| `LOCAL_HOSTNAMES` | _(prazno)_ | `open-sse/config/providerRegistry.ts` | Dodatni nazivi hostova, odvojeni zarezima, koji se smatraju „lokalnim“ (nazivi Docker servisa itd.). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` namijenjen je samo relejima trećih strana koji prihvataju isključivo
|
||||
Claude Code klijente. OmniRoute prepisuje zahtjeve kako bi ih ti releji prihvatili. Ako želite koristiti samo
|
||||
|
|
|
|||
|
|
@ -214,6 +214,8 @@ Mehanizam automatskih kombinacija dinamički bira najboljeg pružaoca/model za s
|
|||
| `quality` | 0.03 | Signal kvaliteta izlaza zasnovan na povratnim informacijama iz sistema za praćenje kvaliteta događaja usmjeravanja; kandidati bez zapažanja dobijaju neutralnu vrijednost 0.5 |
|
||||
| `reliability` | 0.00 | Zabilježeni udio uspješnosti, `1 - failureRate`, iz 24-satne historije korištenja uz minimalni prag od deset uzoraka (u suprotnom se koriste metrike u stvarnom vremenu); kandidati bez zapažanja imaju vrijednost 1.0. Podrazumijevano onemogućeno |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Zbir:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, kako je deklarisano u `DEFAULT_WEIGHTS`; težine koje konfiguriše korisnik ponovo se normalizuju u distribuciju pomoću `normalizeScoringWeights()` prije bodovanja.
|
||||
|
||||
## Paketi režima
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@ Tok:
|
|||
Prisilni načini rada kratko spajaju **prije** nego što se pokrene auto heuristika; ponašanje `auto`
|
||||
je bajt-identično zaštitnoj ogradi prije PR-1.
|
||||
|
||||
#### Opseg API ključa (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Ako API ključ ograničava veze, grupe kvota ili modele (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), preusmjeravanje i opis biraju samo modele i veze dozvoljene tom ključu. Opis uvijek prolazi kroz internu petlju OmniRoutea sa zaglavljem `x-omniroute-self-loop-key-id`, pa se pravila za veze i modele ponovo primjenjuju. `enforceApiKeyPolicy()` prihvata zaglavlje samo uz bearer token te petlje: može samo suziti pristup, a nepoznat identifikator se odbija. Ako nema dozvoljenog vizuelnog modela, opis se preskače i zahtjev ostaje nepromijenjen, kao uz isključenu zaštitu (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Zahtjevi bez ključa i ključevi bez tih ograničenja rade kao prije.
|
||||
|
||||
#### Prompt za opis svjestan zadatka (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Podrazumijevano **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) dodaje
|
||||
|
|
|
|||
|
|
@ -147,6 +147,8 @@ ostaju:
|
|||
`/api/providers/` prefiks da bi ih uhvatio, preširoko proširujući stablo
|
||||
ruta koje udaljene nadzorne ploče legitimno koriste za CRUD pružatelja.
|
||||
|
||||
Učitavač snimaka izvršavanja također odbacuje takve stavke iz sačuvanog reda postavki, a naslijeđeni JSON uvoz (`/api/settings/import-json`) nikada ne upisuje ključeve za zaobilaženje. Svaka stavka `LOCAL_ONLY_API_PREFIXES` mora biti na listi zabrana ili nakon pregleda odobrena za zaobilaženje. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Revizija pristupa** — za provjeru da ništa izvan hosta ne doseže ove rute:
|
||||
|
||||
- Otvorite **Inventar autorizacije** na `/dashboard/settings/security`: prikazuje
|
||||
|
|
|
|||
|
|
@ -395,6 +395,17 @@ Když odeslání v režimu sdílení kvóty cílí na připojení, které deklar
|
|||
|
||||
U každé strategie kombinace (je-li povolena) požadavek, který by vyústil v chybu 429 kvůli KRÁTKÉMU přechodnému období omezení, vyčká na jeho skončení a bude znovu odeslán namísto vrácení chyby 429 — to zahrnuje časová okna TPM/RPM třídy Gemini (~60s `retry-after`) u kombinací více modelů, například když oba cíle dvoumodelové kombinace narazí na limit rychlosti pro konkrétní model. Chování je omezeno nastavením `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) v části **Nastavení → Odolnost**. Nikdy nečeká při důvodu `quota_exhausted` (uzamčeno do půlnoci) ani při důvodech souvisejících s ověřením nebo nenalezením.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Řízení přijímání požadavků do fronty (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -257,6 +257,8 @@ omniroute tokens scopes # vysvětlení tří rozsahů
|
|||
Příkazy `tokens` vyžadují přihlašovací údaj s oprávněním **správce**. Tokeny lze také spravovat
|
||||
v řídicím panelu v části **Nastavení → Přístupové tokeny** (vytvoření, odvolání, jednorázové zkopírování).
|
||||
|
||||
Token nikdy nelze vytvořit s většími oprávněními, než má jeho tvůrce. Token `admin` může vytvořit pouze provozovatel: z relace řídicího panelu, místním CLI přímo na serveru, pomocí `omniroute connect` s heslem nebo v instanci s vypnutým přihlašováním. Strojové přihlašovací údaje (přístupový token `admin` nebo API klíč s rozsahem `manage`/`admin`) mohou vytvářet pouze tokeny `write` a `read`; požadavek na `--scope admin` s těmito údaji vrátí `403`.
|
||||
|
||||
---
|
||||
|
||||
## Konfigurace programátorského CLI ze vzdáleného katalogu
|
||||
|
|
|
|||
|
|
@ -536,18 +536,22 @@ přepsáním.
|
|||
Tyto proměnné upravují vlastní chování binárního souboru CLI `omniroute` (nikoli výše uvedenou
|
||||
detekci sidecaru).
|
||||
|
||||
| Proměnná | Výchozí hodnota | Zdrojový soubor | Popis |
|
||||
| ------------------------------------- | ----------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(systémové nastavení)_ | `bin/cli/i18n.mjs` | Vynutí jazyk výstupu CLI. Národní prostředí BCP-47 (např. `en`, `pt-BR`). Přepisuje systémové proměnné prostředí národního prostředí (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(nenastaveno)_ | `bin/cli/runtime/processSupervisor.mjs` | Nastavením na `1` se v režimu dohledu přesměrují stdout/stderr serveru do terminálu. Ekvivalent příznaku `--log` příkazu `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(nenastaveno)_ | `bin/cli/api.mjs` | Token strojového ověřování vložený jako hlavička `x-omniroute-cli-token`. Automaticky generován v úloze 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(nenastaveno)_ | `bin/cli/commands/setup-gemini.mjs` | Trvalý kořenový domovský adresář Gemini; jednorázové spuštění používá dočasný izolovaný domovský adresář. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Doba odkladu v milisekundách před vynuceným ukončením podřízeného procesu CLI, kterému byl odeslán signál. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nenastaveno)_ | `bin/omniroute.mjs` | Nastavte na 1 společně s explicitním DATA_DIR, chcete-li přeskočit soubor prostředí datového adresáře výchozího uživatele. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Časový limit HTTP pro jednotlivý pokus (ms) u požadavků CLI → server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maximální doba (ms), po kterou CLI čeká na koncový bod kontroly stavu serveru, než vypíše upozornění na vypršení časového limitu. Užitečné pro pomalé studené starty (např. ve Windows). Lze nastavit také pomocí `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Nastavením na `1` se během příkazů CLI vypisuje diagnostika opakovaných pokusů/exponenciálního čekání na stderr. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(nenastaveno)_ | `bin/cli/plugins.mjs` | Vlastní adresář pro vyhledávání pluginů CLI (balíčky `omniroute-cmd-*`). Pokud není nastaven, výchozí hodnotou je `~/.omniroute/plugins/`. Pouze pro CLI — nikdy se nepředává skeneru pluginů na straně serveru, který používá cestu určenou proměnnou `OMNIROUTE_PLUGINS_DIR` (část 2). |
|
||||
| Proměnná | Výchozí hodnota | Zdrojový soubor | Popis |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(systémové nastavení)_ | `bin/cli/i18n.mjs` | Vynutí jazyk výstupu CLI. Národní prostředí BCP-47 (např. `en`, `pt-BR`). Přepisuje systémové proměnné prostředí národního prostředí (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(nenastaveno)_ | `bin/cli/runtime/processSupervisor.mjs` | Nastavením na `1` se v režimu dohledu přesměrují stdout/stderr serveru do terminálu. Ekvivalent příznaku `--log` příkazu `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(nenastaveno)_ | `bin/cli/api.mjs` | Token strojového ověřování vložený jako hlavička `x-omniroute-cli-token`. Automaticky generován v úloze 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(nenastaveno)_ | `bin/cli/commands/setup-gemini.mjs` | Trvalý kořenový domovský adresář Gemini; jednorázové spuštění používá dočasný izolovaný domovský adresář. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Doba odkladu v milisekundách před vynuceným ukončením podřízeného procesu CLI, kterému byl odeslán signál. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nenastaveno)_ | `bin/omniroute.mjs` | Nastavte na 1 společně s explicitním DATA_DIR, chcete-li přeskočit soubor prostředí datového adresáře výchozího uživatele. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Časový limit HTTP pro jednotlivý pokus (ms) u požadavků CLI → server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maximální doba (ms), po kterou CLI čeká na koncový bod kontroly stavu serveru, než vypíše upozornění na vypršení časového limitu. Užitečné pro pomalé studené starty (např. ve Windows). Lze nastavit také pomocí `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Nastavením na `1` se během příkazů CLI vypisuje diagnostika opakovaných pokusů/exponenciálního čekání na stderr. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(nenastaveno)_ | `bin/cli/plugins.mjs` | Vlastní adresář pro vyhledávání pluginů CLI (balíčky `omniroute-cmd-*`). Pokud není nastaven, výchozí hodnotou je `~/.omniroute/plugins/`. Pouze pro CLI — nikdy se nepředává skeneru pluginů na straně serveru, který používá cestu určenou proměnnou `OMNIROUTE_PLUGINS_DIR` (část 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1194,6 +1198,7 @@ desktopovou instalaci.
|
|||
| `AWS_DEFAULT_REGION` | _(nenastaveno)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Záložní hodnota, pokud není nastavena proměnná `AWS_REGION`. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(nenastaveno)_ | `open-sse/executors/cloudflare-ai.ts` | ID účtu pro Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nenastaveno)_ | `open-sse/executors/cloudflare-playground.ts` | Úplná cesta k binárnímu souboru desktopové verze Chrome pro vykonavatel Cloudflare AI Playground, používaná v případě, že kontrola otisku prohlížeče v bezhlavém režimu zablokuje Chromium dodávané s Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): standardně se neutrálním textem nahrazují pouze systémové pokyny se značkou identity programovacího agenta (filtr Tencent je odmítá); dlouhé pokyny se zachovávají. Kladné celé číslo nahrazuje i pokyny delší než tento počet znaků. Nenastavená hodnota, `0` nebo necelé číslo limit délky vypíná. Každé nahrazení zaznamená důvod (identita/délka). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Přepíše základní adresu Cloudflare REST API používanou nasazovacím nástrojem přenosu Workers pro fond proxy (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Výchozí název projektu workeru navržený v dialogovém okně „Nasadit přenos“ pro fond proxy. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Nastavením na `false` skryjete možnost přenosu Cloudflare Workers na kartě Fondu proxy. |
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ Modul Auto-Combo dynamicky vybírá nejlepšího poskytovatele/model pro každý
|
|||
| `quality` | 0.03 | Signál kvality výstupu řízený zpětnou vazbou ze sledování kvality událostí směrování; kandidáti bez pozorování obdrží neutrální hodnotu 0.5 |
|
||||
| `reliability` | 0.00 | Pozorovaný podíl úspěšnosti, `1 - failureRate`, z historie využití za 24 hodin s minimálním limitem deseti vzorků (jinak metriky v reálném čase); kandidáti bez pozorování mají hodnotu 1.0. Ve výchozím nastavení vypnuto |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Součet:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, jak je deklarováno v `DEFAULT_WEIGHTS`; uživatelem nakonfigurované váhy jsou před bodováním pomocí `normalizeScoringWeights()` znovu normalizovány na rozdělení.
|
||||
|
||||
## Balíčky režimů
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@ Tok:
|
|||
Vynucené režimy se zkracují **před** spuštěním automatické heuristiky; chování
|
||||
`auto` je bitově identické s před-PR-1 zábranou.
|
||||
|
||||
#### Rozsah klíče API (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Pokud klíč API omezuje připojení, fondy kvót nebo modely (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), přesměrování i popis vybírají pouze modely a připojení povolené tomuto klíči. Popis vždy prochází vlastní smyčkou OmniRoute s hlavičkou `x-omniroute-self-loop-key-id`, která znovu uplatní zásady připojení a modelů. `enforceApiKeyPolicy()` uzná hlavičku pouze s bearer tokenem této smyčky: přístup může jen zúžit a neznámý identifikátor odmítne. Není-li povolen žádný vizuální model, popis se přeskočí a požadavek projde beze změny jako při vypnuté ochraně (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Požadavky bez klíče a klíče bez těchto omezení fungují jako dříve.
|
||||
|
||||
#### Prompt pro popis s ohledem na úkol (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Výchozí **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) připojí
|
||||
|
|
|
|||
|
|
@ -145,6 +145,8 @@ operátora:
|
|||
`/api/providers/`, aby je zachytilo, čímž by se příliš rozšířil strom cest,
|
||||
které vzdálené dashboardy legitimně používají pro CRUD poskytovatelů.
|
||||
|
||||
Zavaděč běhových snímků takové položky odstraňuje i z uloženého řádku nastavení a starší import JSON (`/api/settings/import-json`) nikdy nezapisuje klíče pro obejití ochrany. Každá položka `LOCAL_ONLY_API_PREFIXES` musí být na seznamu zákazů nebo musí být po kontrole schválena jako způsobilá k obejití. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Audit přístupu** — pro ověření, že se k těmto cestám nedostává nic mimo hostitele:
|
||||
|
||||
- Otevřete **Inventář autorizací** na `/dashboard/settings/security`: zobrazuje živý seznam prefixů LOCAL_ONLY, které prefixy lze obejít, a sadu kompilace schopnou spuštění ("nelze obejít").
|
||||
|
|
|
|||
|
|
@ -431,6 +431,17 @@ pr. model. Begrænset af `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttemp
|
|||
`budgetMs`) under **Indstillinger → Robusthed**. Den venter aldrig ved `quota_exhausted`
|
||||
(låst indtil midnat) eller årsager relateret til godkendelse/ikke fundet.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Adgangskontrol til anmodningskøen (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@ omniroute tokens scopes # forklar de tre scopes
|
|||
administrere tokens i dashboardet under **Indstillinger → Adgangstokens**
|
||||
(opret, tilbagekald, kopiér én gang).
|
||||
|
||||
Et token kan aldrig oprettes med flere rettigheder end dets opretter har. Kun operatøren kan oprette et `admin`-token: via dashboardsessionen, den lokale CLI på selve serveren, `omniroute connect` med adgangskoden eller en instans med login deaktiveret. Maskinlegitimationsoplysninger (et `admin`-adgangstoken eller en API-nøgle med omfanget `manage`/`admin`) kan kun oprette `write`- og `read`-tokens; en anmodning om `--scope admin` med dem returnerer `403`.
|
||||
|
||||
---
|
||||
|
||||
## Konfiguration af en kodnings-CLI fra fjernkataloget
|
||||
|
|
|
|||
|
|
@ -537,18 +537,22 @@ tilsidesættelse.
|
|||
Disse variabler justerer adfærden for selve `omniroute`-CLI-binærfilen (ikke
|
||||
sidecar-registreringen ovenfor).
|
||||
|
||||
| Variabel | Standardværdi | Kildefil | Beskrivelse |
|
||||
| ------------------------------------- | ---------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(system)_ | `bin/cli/i18n.mjs` | Gennemtving sproget for CLI-output. BCP-47-lokalitet (f.eks. `en`, `pt-BR`). Tilsidesætter systemets miljøvariabler for lokalitet (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(ikke angivet)_ | `bin/cli/runtime/processSupervisor.mjs` | Sæt til `1` for at videresende serverens stdout/stderr til terminalen i overvåget tilstand. Svarer til flaget `--log` på `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(ikke angivet)_ | `bin/cli/api.mjs` | Token til maskinautentificering, der indsættes som headeren `x-omniroute-cli-token`. Genereres automatisk i opgave 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(ikke angivet)_ | `bin/cli/commands/setup-gemini.mjs` | Vedvarende Gemini-hjemmerod; en engangskørsel bruger en midlertidig, isoleret hjemmemappe. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Henstandsperiode i millisekunder, før en signaleret underordnet CLI-proces tvangsafsluttes. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(ikke angivet)_ | `bin/omniroute.mjs` | Sæt til 1 sammen med en eksplicit DATA_DIR for at springe miljøfilen for standardbrugerens datamappe over. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | HTTP-timeout pr. forsøg (ms) for forespørgsler fra CLI → server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maksimal tid (ms), som CLI'en venter på serverens sundhedsslutpunkt, før der udskrives en timeoutadvarsel. Nyttigt ved langsomme koldstarter (f.eks. Windows). Kan også angives via `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Sæt til `1` for at udskrive diagnosticering om gentagne forsøg og ventetid til stderr under CLI-kommandoer. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(ikke angivet)_ | `bin/cli/plugins.mjs` | Brugerdefineret mappe til registrering af CLI-plugins (`omniroute-cmd-*`-pakker). Bruger som standard `~/.omniroute/plugins/`, når variablen ikke er angivet. Kun til CLI'en — den når aldrig scannerfunktionen til plugins på serversiden, som peges på af `OMNIROUTE_PLUGINS_DIR` (afsnit 2). |
|
||||
| Variabel | Standardværdi | Kildefil | Beskrivelse |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(system)_ | `bin/cli/i18n.mjs` | Gennemtving sproget for CLI-output. BCP-47-lokalitet (f.eks. `en`, `pt-BR`). Tilsidesætter systemets miljøvariabler for lokalitet (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(ikke angivet)_ | `bin/cli/runtime/processSupervisor.mjs` | Sæt til `1` for at videresende serverens stdout/stderr til terminalen i overvåget tilstand. Svarer til flaget `--log` på `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(ikke angivet)_ | `bin/cli/api.mjs` | Token til maskinautentificering, der indsættes som headeren `x-omniroute-cli-token`. Genereres automatisk i opgave 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(ikke angivet)_ | `bin/cli/commands/setup-gemini.mjs` | Vedvarende Gemini-hjemmerod; en engangskørsel bruger en midlertidig, isoleret hjemmemappe. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Henstandsperiode i millisekunder, før en signaleret underordnet CLI-proces tvangsafsluttes. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(ikke angivet)_ | `bin/omniroute.mjs` | Sæt til 1 sammen med en eksplicit DATA_DIR for at springe miljøfilen for standardbrugerens datamappe over. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | HTTP-timeout pr. forsøg (ms) for forespørgsler fra CLI → server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maksimal tid (ms), som CLI'en venter på serverens sundhedsslutpunkt, før der udskrives en timeoutadvarsel. Nyttigt ved langsomme koldstarter (f.eks. Windows). Kan også angives via `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Sæt til `1` for at udskrive diagnosticering om gentagne forsøg og ventetid til stderr under CLI-kommandoer. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(ikke angivet)_ | `bin/cli/plugins.mjs` | Brugerdefineret mappe til registrering af CLI-plugins (`omniroute-cmd-*`-pakker). Bruger som standard `~/.omniroute/plugins/`, når variablen ikke er angivet. Kun til CLI'en — den når aldrig scannerfunktionen til plugins på serversiden, som peges på af `OMNIROUTE_PLUGINS_DIR` (afsnit 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1178,50 +1182,51 @@ desktopinstallation.
|
|||
|
||||
## 20. Udbyderspecifikke indstillinger
|
||||
|
||||
| Variabel | Standardværdi | Kildefil | Beskrivelse |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 t.) | `src/lib/catalog/openrouterCatalog.ts` | Cache-TTL for OpenRouter-modelkataloget. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Medtag brugervenlige `name`-felter i svar fra `/v1/models`. Deaktiver dette for klienter, der kun forventer id'er. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 sek.) | `src/app/api/v1/models/catalogCache.ts` | Tidsgrænse for ventetid på den kolde sti ved en samlet genopbygning af `GET /v1/models`-kataloget (#12627). Ved timeout returneres det seneste gyldige 200-svar, hvis et sådant findes. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dage) | `src/lib/db/models/activeSyncedCatalog.ts` | Den alder, hvorefter en forbindelses synkroniserede modelliste ikke længere er autoritativ for routing, og der skiftes åbent til registreringsdatabasen (#12849). Rækker, der aldrig har fået et tidsstempel, betragtes som forældede. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 sek.) | `src/lib/usage/analyticsResponseCache.ts` | Hvor længe et langsomt svar fra `GET /api/usage/analytics` genbruges for den samme forespørgselsstreng (#15629). `0` deaktiverer cachen. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 sek.) | `src/lib/usage/analyticsResponseCache.ts` | Kun analysesvar, som tog mindst så lang tid at generere, caches, så små instanser altid får friske data. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maksimal ventetid for NanoBanana-billedgenereringsjob. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Hyppighed for polling af NanoBanana-job. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Basisforsinkelse for eksponentiel backoff ved gentagne indsendelsesforsøg til Adobe Firefly-opskalering. |
|
||||
| `AWS_REGION` | _(ikke angivet)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Område, der bruges til at konstruere AWS Bedrock-slutpunkter (Kiro, lyd). |
|
||||
| `AWS_DEFAULT_REGION` | _(ikke angivet)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Reserveværdi, når `AWS_REGION` ikke er angivet. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(ikke angivet)_ | `open-sse/executors/cloudflare-ai.ts` | Konto-id til Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(ikke angivet)_ | `open-sse/executors/cloudflare-playground.ts` | Fuld sti til Chrome-binærfilen til desktopbrug for Cloudflare AI Playground-eksekveringskomponenten. Bruges, når fingeraftrykskontrollen for headless-browsere blokerer Playwrights medfølgende Chromium. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Tilsidesæt den Cloudflare REST API-base, der bruges af installationskomponenten til proxy-puljens Workers-relæ (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Standardnavnet på worker-projektet, der foreslås i proxy-puljens "Installer relæ"-dialogboks. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Angiv som `false` for at skjule Cloudflare Workers-relæindstillingen på fanen Proxy-pulje. |
|
||||
| `CLOUDFLARED_BIN` | automatisk registrering | `src/lib/cloudflaredTunnel.ts` | Brugerdefineret sti til den binære `cloudflared`-fil. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunneltransportprotokol: `http2` (standard), `quic` eller `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(ikke angivet)_ | `src/lib/cloudflaredTunnel.ts` | Sti til en lokalt administreret cloudflared-`config.yml` (med `tunnel:`, `credentials-file:`, `ingress:`). Når den er angivet, kører OmniRoute `tunnel --config <path> run` (navngivet tunnel) i stedet for en midlertidig quick tunnel. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(fra konfigurationens ingress)_ | `src/lib/cloudflaredTunnel.ts` | Tilsidesættelse af den navngivne tunnels offentlige værtsnavn (f.eks. `ai.example.com`), rapporteret som `publicUrl`/`apiUrl`. Når den ikke er angivet, læses den fra værtsnavnet i konfigurationens første `ingress`. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Tilsidesæt den Deno Deploy REST API-base, der bruges af proxy-puljens relay-udruller (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Standardnavn på Deno Deploy-appen, som foreslås i proxy-puljens "Udrul relay"-dialogboks. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Indstil til `false` for at skjule Deno Deploy-relayindstillingen på fanen Proxy-pulje. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min.) | `open-sse/services/searchCache.ts` | TTL for caching af svar fra søge-API'er (Perplexity, Brave osv.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Vis den eksperimentelle brugergrænseflade for CC-kompatible udbydere til relays, der kun understøtter Claude Code. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Tilsidesæt værten, som den integrerede 9router-instans lytter på. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Tilsidesæt porten, som den integrerede 9router-instans lytter på. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Bindingsvært for den integrerede tjenestes WebSocket-proxy (som standard kun loopback). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port til den integrerede tjenestes WebSocket-proxyserver. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Vært for CLIProxyAPI-broen (ældre integration). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port til CLIProxyAPI-broen. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(tom)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Reservenøgle til datalaget, når indstillingen `cliproxyapi_api_key` mangler. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tom)_ | `src/lib/services/cliproxyAccountHealth.ts` | Administrationsnøgle til læsning af kontotilstand fra en eksternt administreret CLIProxyAPI-instans. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI-konfigurationsmappe. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Værtsgrænseflade, som docker-compose publicerer `cliproxyapi`-sidecar-containeren på (#12578). Dens datadisk indeholder udbyderens OAuth/API-legitimationsoplysninger, og det fastlåste image har ingen miljøbaseret tilsidesættelse af datalagets `api-keys` (kun en monteret `config.yaml`), så `0.0.0.0` eksponerer en tjeneste med legitimationsoplysninger for hele LAN'et. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Tilsidesæt porten, som den integrerede Mux-daemon (coder/mux) til agentorkestrering lytter på (altid 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Tilsidesæt porten, som den integrerede open-wa-daemon (WhatsApp Web-automatisering) lytter på (altid 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Vært til binding/forbindelse for Darios indlejrede tjeneste (kun loopback som standard). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port for Darios indlejrede tjeneste. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Vært til binding/forbindelse for Darios indlejrede tjeneste (kun loopback som standard). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port for Darios indlejrede tjeneste. |
|
||||
| `LOCAL_HOSTNAMES` | _(tom)_ | `open-sse/config/providerRegistry.ts` | Kommaseparerede yderligere værtsnavne, der behandles som "lokale" (Docker-tjenestenavne osv.). |
|
||||
| Variabel | Standardværdi | Kildefil | Beskrivelse |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 t.) | `src/lib/catalog/openrouterCatalog.ts` | Cache-TTL for OpenRouter-modelkataloget. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Medtag brugervenlige `name`-felter i svar fra `/v1/models`. Deaktiver dette for klienter, der kun forventer id'er. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 sek.) | `src/app/api/v1/models/catalogCache.ts` | Tidsgrænse for ventetid på den kolde sti ved en samlet genopbygning af `GET /v1/models`-kataloget (#12627). Ved timeout returneres det seneste gyldige 200-svar, hvis et sådant findes. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 dage) | `src/lib/db/models/activeSyncedCatalog.ts` | Den alder, hvorefter en forbindelses synkroniserede modelliste ikke længere er autoritativ for routing, og der skiftes åbent til registreringsdatabasen (#12849). Rækker, der aldrig har fået et tidsstempel, betragtes som forældede. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 sek.) | `src/lib/usage/analyticsResponseCache.ts` | Hvor længe et langsomt svar fra `GET /api/usage/analytics` genbruges for den samme forespørgselsstreng (#15629). `0` deaktiverer cachen. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 sek.) | `src/lib/usage/analyticsResponseCache.ts` | Kun analysesvar, som tog mindst så lang tid at generere, caches, så små instanser altid får friske data. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maksimal ventetid for NanoBanana-billedgenereringsjob. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Hyppighed for polling af NanoBanana-job. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Basisforsinkelse for eksponentiel backoff ved gentagne indsendelsesforsøg til Adobe Firefly-opskalering. |
|
||||
| `AWS_REGION` | _(ikke angivet)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Område, der bruges til at konstruere AWS Bedrock-slutpunkter (Kiro, lyd). |
|
||||
| `AWS_DEFAULT_REGION` | _(ikke angivet)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Reserveværdi, når `AWS_REGION` ikke er angivet. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(ikke angivet)_ | `open-sse/executors/cloudflare-ai.ts` | Konto-id til Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(ikke angivet)_ | `open-sse/executors/cloudflare-playground.ts` | Fuld sti til Chrome-binærfilen til desktopbrug for Cloudflare AI Playground-eksekveringskomponenten. Bruges, når fingeraftrykskontrollen for headless-browsere blokerer Playwrights medfølgende Chromium. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): Som standard erstattes kun systeminstruktioner med en kodeagents identitetsmarkør af neutrale instruktioner (Tencents filter afviser dem); lange instruktioner bevares. Et positivt heltal erstatter også instruktioner med flere tegn end dette tal. Udeladt værdi, `0` eller et ikke-heltal deaktiverer længdegrænsen. Hver erstatning logger årsagen (identitet/længde). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Tilsidesæt den Cloudflare REST API-base, der bruges af installationskomponenten til proxy-puljens Workers-relæ (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Standardnavnet på worker-projektet, der foreslås i proxy-puljens "Installer relæ"-dialogboks. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Angiv som `false` for at skjule Cloudflare Workers-relæindstillingen på fanen Proxy-pulje. |
|
||||
| `CLOUDFLARED_BIN` | automatisk registrering | `src/lib/cloudflaredTunnel.ts` | Brugerdefineret sti til den binære `cloudflared`-fil. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunneltransportprotokol: `http2` (standard), `quic` eller `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(ikke angivet)_ | `src/lib/cloudflaredTunnel.ts` | Sti til en lokalt administreret cloudflared-`config.yml` (med `tunnel:`, `credentials-file:`, `ingress:`). Når den er angivet, kører OmniRoute `tunnel --config <path> run` (navngivet tunnel) i stedet for en midlertidig quick tunnel. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(fra konfigurationens ingress)_ | `src/lib/cloudflaredTunnel.ts` | Tilsidesættelse af den navngivne tunnels offentlige værtsnavn (f.eks. `ai.example.com`), rapporteret som `publicUrl`/`apiUrl`. Når den ikke er angivet, læses den fra værtsnavnet i konfigurationens første `ingress`. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Tilsidesæt den Deno Deploy REST API-base, der bruges af proxy-puljens relay-udruller (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Standardnavn på Deno Deploy-appen, som foreslås i proxy-puljens "Udrul relay"-dialogboks. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Indstil til `false` for at skjule Deno Deploy-relayindstillingen på fanen Proxy-pulje. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min.) | `open-sse/services/searchCache.ts` | TTL for caching af svar fra søge-API'er (Perplexity, Brave osv.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Vis den eksperimentelle brugergrænseflade for CC-kompatible udbydere til relays, der kun understøtter Claude Code. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Tilsidesæt værten, som den integrerede 9router-instans lytter på. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Tilsidesæt porten, som den integrerede 9router-instans lytter på. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Bindingsvært for den integrerede tjenestes WebSocket-proxy (som standard kun loopback). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port til den integrerede tjenestes WebSocket-proxyserver. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Vært for CLIProxyAPI-broen (ældre integration). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port til CLIProxyAPI-broen. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(tom)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Reservenøgle til datalaget, når indstillingen `cliproxyapi_api_key` mangler. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tom)_ | `src/lib/services/cliproxyAccountHealth.ts` | Administrationsnøgle til læsning af kontotilstand fra en eksternt administreret CLIProxyAPI-instans. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI-konfigurationsmappe. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Værtsgrænseflade, som docker-compose publicerer `cliproxyapi`-sidecar-containeren på (#12578). Dens datadisk indeholder udbyderens OAuth/API-legitimationsoplysninger, og det fastlåste image har ingen miljøbaseret tilsidesættelse af datalagets `api-keys` (kun en monteret `config.yaml`), så `0.0.0.0` eksponerer en tjeneste med legitimationsoplysninger for hele LAN'et. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Tilsidesæt porten, som den integrerede Mux-daemon (coder/mux) til agentorkestrering lytter på (altid 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Tilsidesæt porten, som den integrerede open-wa-daemon (WhatsApp Web-automatisering) lytter på (altid 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Vært til binding/forbindelse for Darios indlejrede tjeneste (kun loopback som standard). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port for Darios indlejrede tjeneste. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Vært til binding/forbindelse for Darios indlejrede tjeneste (kun loopback som standard). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port for Darios indlejrede tjeneste. |
|
||||
| `LOCAL_HOSTNAMES` | _(tom)_ | `open-sse/config/providerRegistry.ts` | Kommaseparerede yderligere værtsnavne, der behandles som "lokale" (Docker-tjenestenavne osv.). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` er kun beregnet til tredjepartsrelæer, der udelukkende accepterer Claude Code-klienter.
|
||||
OmniRoute omskriver anmodninger, så disse relæer accepterer dem. Hvis du kun vil bruge
|
||||
|
|
|
|||
|
|
@ -194,6 +194,8 @@ Auto-Combo-motoren vælger dynamisk den bedste udbyder/model til hver anmodning
|
|||
| `quality` | 0.03 | Feedbackbaseret signal for outputkvalitet fra routinghændelsernes kvalitetssporing; kandidater uden observationer får den neutrale værdi 0.5 |
|
||||
| `reliability` | 0.00 | Observeret succesandel, `1 - failureRate`, fra 24 timers brugshistorik med et minimum på ti stikprøver (ellers målinger i realtid); kandidater uden observationer aflæses som 1.0. Deaktiveret som standard |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Sum:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0` som erklæret i `DEFAULT_WEIGHTS`; brugerkonfigurerede vægte normaliseres igen til en fordeling af `normalizeScoringWeights()` før beregningen af scoren.
|
||||
|
||||
## Tilstandspakker
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@ Flow:
|
|||
Tvungne tilstande kortslutter **før** auto-heuristikken kører; `auto`-adfærden
|
||||
er byte-identisk med pre-PR-1 guardrailen.
|
||||
|
||||
#### API-nøglens omfang (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Hvis API-nøglen begrænser forbindelser, kvotepuljer eller modeller (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), vælger omdirigering og beskrivelse kun modeller og forbindelser, som nøglen må bruge. Beskrivelsen går altid gennem OmniRoutes eget loop med headeren `x-omniroute-self-loop-key-id`, så forbindelses- og modelpolitikken håndhæves igen. `enforceApiKeyPolicy()` accepterer kun headeren sammen med loopets bearer-token: den kan kun indsnævre adgang, og et ukendt id afvises. Hvis ingen synsmodel er tilladt, springes beskrivelsen over, og anmodningen forbliver uændret som ved deaktiveret beskyttelse (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Anmodninger uden nøgle og nøgler uden disse begrænsninger fungerer som før.
|
||||
|
||||
#### Opgavebevidst beskrivelsesprompt (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Standard **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) tilføjer
|
||||
|
|
|
|||
|
|
@ -142,6 +142,8 @@ ikke kan nå en oprettelse. To operatøransvar forbliver:
|
|||
`/api/providers/`-præfikset for at fange dem, hvilket ville udvide et rutetræ,
|
||||
som fjern-dashboards legitimt bruger til udbyder-CRUD, for meget.
|
||||
|
||||
Indlæseren af runtime-snapshots fjerner også sådanne poster fra en gemt indstillingsrække, og den ældre JSON-import (`/api/settings/import-json`) skriver aldrig bypass-nøglerne. Hver post i `LOCAL_ONLY_API_PREFIXES` skal enten være på afvisningslisten eller være gennemgået og godkendt til bypass. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Revision af adgang** — for at verificere, at intet uden for værten når disse ruter:
|
||||
|
||||
- Åbn **Authorization Inventory** på `/dashboard/settings/security`: den viser den live LOCAL_ONLY præfiksliste, hvilke præfikser der kan omgås, og det compile-time spawn-capable ("kan ikke gøres omgåeligt") sæt.
|
||||
|
|
|
|||
|
|
@ -455,6 +455,17 @@ aus zwei Modellen auf ein Ratenlimit pro Modell treffen. Begrenzt durch `comboCo
|
|||
Bei `quota_exhausted` (bis Mitternacht gesperrt) oder Gründen im Zusammenhang mit Authentifizierung bzw.
|
||||
Nichtgefunden-Fehlern wird niemals gewartet.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Zulassungssteuerung für die Anfragewarteschlange (v3.8.49 · Issue #6593)
|
||||
|
|
|
|||
|
|
@ -249,6 +249,8 @@ omniroute tokens scopes # die drei Geltungsbereiche erläutern
|
|||
|
||||
`tokens`-Befehle erfordern Admin-Anmeldedaten. Sie können Tokens auch im Dashboard unter **Settings → Access Tokens** verwalten (erstellen, widerrufen, einmalig kopieren).
|
||||
|
||||
Ein Token kann niemals mit mehr Berechtigungen erstellt werden, als sein Ersteller besitzt. Nur der Betreiber kann ein `admin`-Token erstellen: über die Dashboard-Sitzung, die lokale CLI auf dem Server selbst, `omniroute connect` mit dem Passwort oder eine Instanz mit deaktivierter Anmeldung. Maschinen-Zugangsdaten (ein `admin`-Zugriffstoken oder ein API-Schlüssel mit dem Geltungsbereich `manage`/`admin`) können nur `write`- und `read`-Tokens erstellen; eine Anfrage mit `--scope admin` liefert damit `403` zurück.
|
||||
|
||||
---
|
||||
|
||||
## Eine Coding-CLI aus dem Remote-Katalog konfigurieren
|
||||
|
|
|
|||
|
|
@ -532,18 +532,22 @@ Das Image wird als `USER node` ausgeführt, daher ist ein nicht eingebundenes `/
|
|||
|
||||
Diese Variablen steuern das Verhalten des CLI-Binärprogramms `omniroute` selbst (nicht die oben beschriebene Sidecar-Erkennung).
|
||||
|
||||
| Variable | Standardwert | Quelldatei | Beschreibung |
|
||||
| ------------------------------------- | ----------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(System)_ | `bin/cli/i18n.mjs` | Erzwingt die Ausgabesprache der CLI. BCP-47-Gebietsschema (z. B. `en`, `pt-BR`). Überschreibt die Umgebungsvariablen des Systemgebietsschemas (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(nicht gesetzt)_ | `bin/cli/runtime/processSupervisor.mjs` | Auf `1` setzen, um stdout/stderr des Servers im überwachten Modus an das Terminal weiterzuleiten. Entspricht dem Flag `--log` für `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(nicht gesetzt)_ | `bin/cli/api.mjs` | Token für die Maschinenauthentifizierung, das als Header `x-omniroute-cli-token` eingefügt wird. Wird in Aufgabe 8.12 automatisch generiert. |
|
||||
| `GEMINI_CLI_HOME` | _(nicht gesetzt)_ | `bin/cli/commands/setup-gemini.mjs` | Persistentes Gemini-Home-Stammverzeichnis; eine einmalige Ausführung verwendet ein temporäres, isoliertes Home-Verzeichnis. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Karenzzeit in Millisekunden, bevor ein per Signal benachrichtigter untergeordneter CLI-Prozess zwangsweise beendet wird. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nicht gesetzt)_ | `bin/omniroute.mjs` | Auf `1` setzen und explizit DATA_DIR angeben, um die standardmäßige Umgebungsdatei des Datenverzeichnisses des Benutzers zu überspringen. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | HTTP-Zeitüberschreitung pro Versuch (ms) für Anfragen von der CLI an den Server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maximale Zeit (ms), die die CLI auf den Zustandsendpunkt des Servers wartet, bevor eine Zeitüberschreitungswarnung ausgegeben wird. Nützlich bei langsamen Kaltstarts (z. B. unter Windows). Kann auch über `--ready-timeout` festgelegt werden. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Auf `1` setzen, um während CLI-Befehlen Diagnoseinformationen zu Wiederholungsversuchen und Wartezeiten auf stderr auszugeben. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(nicht gesetzt)_ | `bin/cli/plugins.mjs` | Benutzerdefiniertes Verzeichnis für die Erkennung von CLI-Plug-ins (`omniroute-cmd-*`-Pakete). Ist standardmäßig `~/.omniroute/plugins/`, wenn nicht gesetzt. Nur für die CLI — erreicht niemals den serverseitigen Plug-in-Scanner, auf den `OMNIROUTE_PLUGINS_DIR` verweist (Abschnitt 2). |
|
||||
| Variable | Standardwert | Quelldatei | Beschreibung |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(System)_ | `bin/cli/i18n.mjs` | Erzwingt die Ausgabesprache der CLI. BCP-47-Gebietsschema (z. B. `en`, `pt-BR`). Überschreibt die Umgebungsvariablen des Systemgebietsschemas (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(nicht gesetzt)_ | `bin/cli/runtime/processSupervisor.mjs` | Auf `1` setzen, um stdout/stderr des Servers im überwachten Modus an das Terminal weiterzuleiten. Entspricht dem Flag `--log` für `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(nicht gesetzt)_ | `bin/cli/api.mjs` | Token für die Maschinenauthentifizierung, das als Header `x-omniroute-cli-token` eingefügt wird. Wird in Aufgabe 8.12 automatisch generiert. |
|
||||
| `GEMINI_CLI_HOME` | _(nicht gesetzt)_ | `bin/cli/commands/setup-gemini.mjs` | Persistentes Gemini-Home-Stammverzeichnis; eine einmalige Ausführung verwendet ein temporäres, isoliertes Home-Verzeichnis. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Karenzzeit in Millisekunden, bevor ein per Signal benachrichtigter untergeordneter CLI-Prozess zwangsweise beendet wird. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(nicht gesetzt)_ | `bin/omniroute.mjs` | Auf `1` setzen und explizit DATA_DIR angeben, um die standardmäßige Umgebungsdatei des Datenverzeichnisses des Benutzers zu überspringen. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | HTTP-Zeitüberschreitung pro Versuch (ms) für Anfragen von der CLI an den Server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maximale Zeit (ms), die die CLI auf den Zustandsendpunkt des Servers wartet, bevor eine Zeitüberschreitungswarnung ausgegeben wird. Nützlich bei langsamen Kaltstarts (z. B. unter Windows). Kann auch über `--ready-timeout` festgelegt werden. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Auf `1` setzen, um während CLI-Befehlen Diagnoseinformationen zu Wiederholungsversuchen und Wartezeiten auf stderr auszugeben. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(nicht gesetzt)_ | `bin/cli/plugins.mjs` | Benutzerdefiniertes Verzeichnis für die Erkennung von CLI-Plug-ins (`omniroute-cmd-*`-Pakete). Ist standardmäßig `~/.omniroute/plugins/`, wenn nicht gesetzt. Nur für die CLI — erreicht niemals den serverseitigen Plug-in-Scanner, auf den `OMNIROUTE_PLUGINS_DIR` verweist (Abschnitt 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1175,50 +1179,51 @@ Desktopinstallation abgestimmt.
|
|||
|
||||
## 20. Anbieterspezifische Einstellungen
|
||||
|
||||
| Variable | Standardwert | Quelldatei | Beschreibung |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 Std.) | `src/lib/catalog/openrouterCatalog.ts` | Cache-TTL des OpenRouter-Modellkatalogs. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Anzeigenfreundliche `name`-Felder in Antworten von `/v1/models` einschließen. Für Clients deaktivieren, die nur IDs erwarten. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 Sek.) | `src/app/api/v1/models/catalogCache.ts` | Maximale Wartezeit im Cold Path für eine zusammengefasste Neuerstellung des `GET /v1/models`-Katalogs (#12627). Bei einer Zeitüberschreitung wird eine zuletzt funktionierende 200-Antwort bereitgestellt, sofern eine vorhanden ist. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 Tage) | `src/lib/db/models/activeSyncedCatalog.ts` | Alter, nach dem die synchronisierte Modellliste einer Verbindung nicht mehr als maßgeblich für das Routing gilt und auf die Registry zurückgegriffen wird (#12849). Einträge ohne Zeitstempel gelten als veraltet. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 Sek.) | `src/lib/usage/analyticsResponseCache.ts` | Zeitraum, für den eine langsame Antwort von `GET /api/usage/analytics` für dieselbe Abfragezeichenfolge wiederverwendet wird (#15629). `0` deaktiviert den Cache. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 Sek.) | `src/lib/usage/analyticsResponseCache.ts` | Nur Analyseantworten, deren Erstellung mindestens so lange gedauert hat, werden zwischengespeichert, sodass kleine Instanzen stets aktuelle Daten erhalten. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maximale Wartezeit für Bildgenerierungsaufträge von NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Abfragehäufigkeit für NanoBanana-Aufträge. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Basisverzögerung für den exponentiellen Backoff bei erneuten Übermittlungsversuchen für Adobe Firefly Upscale. |
|
||||
| `AWS_REGION` | _(nicht gesetzt)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Region zum Erstellen von AWS-Bedrock-Endpunkten (Kiro, Audio). |
|
||||
| `AWS_DEFAULT_REGION` | _(nicht gesetzt)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Ausweichwert, wenn `AWS_REGION` nicht gesetzt ist. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(nicht gesetzt)_ | `open-sse/executors/cloudflare-ai.ts` | Konto-ID für Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nicht gesetzt)_ | `open-sse/executors/cloudflare-playground.ts` | Vollständiger Pfad zur Desktop-Chrome-Binärdatei für den Cloudflare AI Playground Executor. Wird verwendet, wenn die Headless-Fingerabdruckprüfung das mit Playwright gebündelte Chromium blockiert. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Überschreibt die vom Proxy-Pool-Workers-Relay-Deployer verwendete Basis-URL der Cloudflare-REST-API (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Standardmäßiger Worker-Projektname, der im Proxy-Pool-Modal „Relay bereitstellen“ vorgeschlagen wird. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Auf `false` setzen, um die Cloudflare-Workers-Relay-Option auf der Registerkarte „Proxy Pool“ auszublenden. |
|
||||
| `CLOUDFLARED_BIN` | automatische Erkennung | `src/lib/cloudflaredTunnel.ts` | Benutzerdefinierter Pfad zur Binärdatei `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunnel-Transportprotokoll: `http2` (Standard), `quic` oder `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(nicht gesetzt)_ | `src/lib/cloudflaredTunnel.ts` | Pfad zu einer lokal verwalteten cloudflared-`config.yml` (mit `tunnel:`, `credentials-file:`, `ingress:`). Wenn gesetzt, führt OmniRoute `tunnel --config <path> run` (benannter Tunnel) anstelle eines temporären Quick Tunnels aus. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(aus der ingress-Konfiguration)_ | `src/lib/cloudflaredTunnel.ts` | Überschreibung für den öffentlichen Hostnamen des benannten Tunnels (z. B. `ai.example.com`), der als `publicUrl`/`apiUrl` gemeldet wird. Wenn nicht gesetzt, wird er aus dem ersten `ingress`-Hostnamen der Konfiguration gelesen. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Überschreibt die vom Proxy-Pool-Relay-Deployment verwendete Basis-URL der 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` | Standardname der Deno-Deploy-App, der im Proxy-Pool-Dialog „Deploy Relay“ vorgeschlagen wird. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Auf `false` setzen, um die Deno-Deploy-Relay-Option auf der Registerkarte „Proxy Pool“ auszublenden. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 Min.) | `open-sse/services/searchCache.ts` | TTL für die Zwischenspeicherung von Antworten der Such-API (Perplexity, Brave usw.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Zeigt die experimentelle Benutzeroberfläche für CC-kompatible Anbieter für reine Claude-Code-Relays an. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Überschreibt den Host, auf dem die eingebettete 9router-Instanz lauscht. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Überschreibt den Port, auf dem die eingebettete 9router-Instanz lauscht. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Bindungs-Host für den WebSocket-Proxy des eingebetteten Dienstes (standardmäßig nur Loopback). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port für den WebSocket-Proxyserver des eingebetteten Dienstes. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Host der CLIProxyAPI-Bridge (Legacy-Integration). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port der CLIProxyAPI-Bridge. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(leer)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Fallback für den Data-Plane-Schlüssel, wenn die Einstellung `cliproxyapi_api_key` fehlt. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(leer)_ | `src/lib/services/cliproxyAccountHealth.ts` | Verwaltungsschlüssel zum Abrufen des Kontozustands von einer extern verwalteten CLIProxyAPI-Instanz. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI-Konfigurationsverzeichnis. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Hostschnittstelle, über die docker-compose den `cliproxyapi`-Sidecar veröffentlicht (#12578). Dessen Daten-Volume enthält OAuth-/API-Anmeldedaten der Anbieter, und das angeheftete Image bietet keine umgebungsvariablenbasierte Überschreibung der Data-Plane-`api-keys` (nur eine eingebundene `config.yaml`); daher macht `0.0.0.0` einen Dienst mit Anmeldedaten im gesamten LAN verfügbar. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Überschreibt den Port, auf dem der eingebettete Mux-Daemon (coder/mux) zur Agentenorchestrierung lauscht (immer 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Überschreibt den Port, auf dem der eingebettete open-wa-Daemon (WhatsApp-Web-Automatisierung) lauscht (immer 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Bindungs-/Verbindungshost des eingebetteten Dario-Dienstes (standardmäßig nur Loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port des eingebetteten Dario-Dienstes. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Bindungs-/Verbindungshost des eingebetteten Dario-Dienstes (standardmäßig nur Loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port des eingebetteten Dario-Dienstes. |
|
||||
| `LOCAL_HOSTNAMES` | _(leer)_ | `open-sse/config/providerRegistry.ts` | Durch Kommas getrennte zusätzliche Hostnamen, die als „lokal“ behandelt werden (Docker-Dienstnamen usw.). |
|
||||
| Variable | Standardwert | Quelldatei | Beschreibung |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 Std.) | `src/lib/catalog/openrouterCatalog.ts` | Cache-TTL des OpenRouter-Modellkatalogs. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Anzeigenfreundliche `name`-Felder in Antworten von `/v1/models` einschließen. Für Clients deaktivieren, die nur IDs erwarten. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 Sek.) | `src/app/api/v1/models/catalogCache.ts` | Maximale Wartezeit im Cold Path für eine zusammengefasste Neuerstellung des `GET /v1/models`-Katalogs (#12627). Bei einer Zeitüberschreitung wird eine zuletzt funktionierende 200-Antwort bereitgestellt, sofern eine vorhanden ist. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 Tage) | `src/lib/db/models/activeSyncedCatalog.ts` | Alter, nach dem die synchronisierte Modellliste einer Verbindung nicht mehr als maßgeblich für das Routing gilt und auf die Registry zurückgegriffen wird (#12849). Einträge ohne Zeitstempel gelten als veraltet. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 Sek.) | `src/lib/usage/analyticsResponseCache.ts` | Zeitraum, für den eine langsame Antwort von `GET /api/usage/analytics` für dieselbe Abfragezeichenfolge wiederverwendet wird (#15629). `0` deaktiviert den Cache. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 Sek.) | `src/lib/usage/analyticsResponseCache.ts` | Nur Analyseantworten, deren Erstellung mindestens so lange gedauert hat, werden zwischengespeichert, sodass kleine Instanzen stets aktuelle Daten erhalten. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Maximale Wartezeit für Bildgenerierungsaufträge von NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Abfragehäufigkeit für NanoBanana-Aufträge. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Basisverzögerung für den exponentiellen Backoff bei erneuten Übermittlungsversuchen für Adobe Firefly Upscale. |
|
||||
| `AWS_REGION` | _(nicht gesetzt)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Region zum Erstellen von AWS-Bedrock-Endpunkten (Kiro, Audio). |
|
||||
| `AWS_DEFAULT_REGION` | _(nicht gesetzt)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Ausweichwert, wenn `AWS_REGION` nicht gesetzt ist. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(nicht gesetzt)_ | `open-sse/executors/cloudflare-ai.ts` | Konto-ID für Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(nicht gesetzt)_ | `open-sse/executors/cloudflare-playground.ts` | Vollständiger Pfad zur Desktop-Chrome-Binärdatei für den Cloudflare AI Playground Executor. Wird verwendet, wenn die Headless-Fingerabdruckprüfung das mit Playwright gebündelte Chromium blockiert. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): Standardmäßig werden nur Systemanweisungen mit Identitätsmarkern eines Coding-Agenten durch neutrale ersetzt (Tencents Filter lehnt sie ab); lange Anweisungen bleiben erhalten. Eine positive Ganzzahl ersetzt zusätzlich Anweisungen mit mehr Zeichen als diesem Wert. Nicht gesetzt, `0` oder keine Ganzzahl deaktiviert die Längengrenze. Jede Ersetzung protokolliert den Grund (Identität/Länge). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Überschreibt die vom Proxy-Pool-Workers-Relay-Deployer verwendete Basis-URL der Cloudflare-REST-API (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Standardmäßiger Worker-Projektname, der im Proxy-Pool-Modal „Relay bereitstellen“ vorgeschlagen wird. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Auf `false` setzen, um die Cloudflare-Workers-Relay-Option auf der Registerkarte „Proxy Pool“ auszublenden. |
|
||||
| `CLOUDFLARED_BIN` | automatische Erkennung | `src/lib/cloudflaredTunnel.ts` | Benutzerdefinierter Pfad zur Binärdatei `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunnel-Transportprotokoll: `http2` (Standard), `quic` oder `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(nicht gesetzt)_ | `src/lib/cloudflaredTunnel.ts` | Pfad zu einer lokal verwalteten cloudflared-`config.yml` (mit `tunnel:`, `credentials-file:`, `ingress:`). Wenn gesetzt, führt OmniRoute `tunnel --config <path> run` (benannter Tunnel) anstelle eines temporären Quick Tunnels aus. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(aus der ingress-Konfiguration)_ | `src/lib/cloudflaredTunnel.ts` | Überschreibung für den öffentlichen Hostnamen des benannten Tunnels (z. B. `ai.example.com`), der als `publicUrl`/`apiUrl` gemeldet wird. Wenn nicht gesetzt, wird er aus dem ersten `ingress`-Hostnamen der Konfiguration gelesen. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Überschreibt die vom Proxy-Pool-Relay-Deployment verwendete Basis-URL der 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` | Standardname der Deno-Deploy-App, der im Proxy-Pool-Dialog „Deploy Relay“ vorgeschlagen wird. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Auf `false` setzen, um die Deno-Deploy-Relay-Option auf der Registerkarte „Proxy Pool“ auszublenden. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 Min.) | `open-sse/services/searchCache.ts` | TTL für die Zwischenspeicherung von Antworten der Such-API (Perplexity, Brave usw.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Zeigt die experimentelle Benutzeroberfläche für CC-kompatible Anbieter für reine Claude-Code-Relays an. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Überschreibt den Host, auf dem die eingebettete 9router-Instanz lauscht. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Überschreibt den Port, auf dem die eingebettete 9router-Instanz lauscht. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Bindungs-Host für den WebSocket-Proxy des eingebetteten Dienstes (standardmäßig nur Loopback). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port für den WebSocket-Proxyserver des eingebetteten Dienstes. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Host der CLIProxyAPI-Bridge (Legacy-Integration). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port der CLIProxyAPI-Bridge. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(leer)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Fallback für den Data-Plane-Schlüssel, wenn die Einstellung `cliproxyapi_api_key` fehlt. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(leer)_ | `src/lib/services/cliproxyAccountHealth.ts` | Verwaltungsschlüssel zum Abrufen des Kontozustands von einer extern verwalteten CLIProxyAPI-Instanz. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI-Konfigurationsverzeichnis. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Hostschnittstelle, über die docker-compose den `cliproxyapi`-Sidecar veröffentlicht (#12578). Dessen Daten-Volume enthält OAuth-/API-Anmeldedaten der Anbieter, und das angeheftete Image bietet keine umgebungsvariablenbasierte Überschreibung der Data-Plane-`api-keys` (nur eine eingebundene `config.yaml`); daher macht `0.0.0.0` einen Dienst mit Anmeldedaten im gesamten LAN verfügbar. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Überschreibt den Port, auf dem der eingebettete Mux-Daemon (coder/mux) zur Agentenorchestrierung lauscht (immer 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Überschreibt den Port, auf dem der eingebettete open-wa-Daemon (WhatsApp-Web-Automatisierung) lauscht (immer 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Bindungs-/Verbindungshost des eingebetteten Dario-Dienstes (standardmäßig nur Loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port des eingebetteten Dario-Dienstes. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Bindungs-/Verbindungshost des eingebetteten Dario-Dienstes (standardmäßig nur Loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port des eingebetteten Dario-Dienstes. |
|
||||
| `LOCAL_HOSTNAMES` | _(leer)_ | `open-sse/config/providerRegistry.ts` | Durch Kommas getrennte zusätzliche Hostnamen, die als „lokal“ behandelt werden (Docker-Dienstnamen usw.). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` ist ausschließlich für Drittanbieter-Relays vorgesehen, die nur Claude Code-Clients
|
||||
akzeptieren. OmniRoute schreibt Anfragen so um, dass diese Relays sie akzeptieren. Wenn Sie lediglich die
|
||||
|
|
|
|||
|
|
@ -209,6 +209,8 @@ Die Auto-Combo-Engine wählt mithilfe einer **Bewertungsfunktion mit 16 Faktoren
|
|||
| `quality` | 0.03 | Feedbackgesteuertes Signal für die Ausgabequalität aus dem Qualitäts-Tracker für Routing-Ereignisse; Kandidaten ohne Beobachtungen erhalten den neutralen Wert 0.5 |
|
||||
| `reliability` | 0.00 | Beobachteter Erfolgsanteil, `1 - failureRate`, aus dem Nutzungsverlauf der letzten 24 Stunden ab einer Mindestanzahl von zehn Stichproben (andernfalls Echtzeitmetriken); Kandidaten ohne Beobachtungen erhalten den Wert 1.0. Standardmäßig deaktiviert |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Summe:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, wie in `DEFAULT_WEIGHTS` deklariert; benutzerdefinierte Gewichtungen werden vor der Bewertung durch `normalizeScoringWeights()` neu zu einer Verteilung normalisiert.
|
||||
|
||||
## Modus-Pakete
|
||||
|
|
|
|||
|
|
@ -56,6 +56,10 @@ Ablauf:
|
|||
|
||||
Erzwungene Modi schalten **vor** der Ausführung der Auto-Heuristik kurz; das `auto`-Verhalten ist byte-identisch mit der Guardrail vor PR-1.
|
||||
|
||||
#### Geltungsbereich des API-Schlüssels (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Beschränkt der API-Schlüssel Verbindungen, Kontingent-Pools oder Modelle (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), wählen Umleitung und Beschreibung nur für diesen Schlüssel zulässige Modelle und Verbindungen. Die Beschreibung läuft immer über die OmniRoute-Selbstschleife mit dem Header `x-omniroute-self-loop-key-id`, sodass die Verbindungs- und Modellrichtlinie erneut greift. `enforceApiKeyPolicy()` berücksichtigt den Header nur zusammen mit dem Bearer-Token der Selbstschleife: Er kann den Zugriff nur einschränken; eine unbekannte ID wird abgewiesen. Ohne zulässiges Vision-Modell entfällt die Beschreibung, und die Anfrage bleibt wie bei deaktivierter Schutzfunktion unverändert (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Anfragen ohne Schlüssel und Schlüssel ohne diese Einschränkungen verhalten sich wie zuvor.
|
||||
|
||||
#### Aufgabenbewusster Beschreibungsprompt (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Standardmäßig **wahr**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) hängt den Text der **letzten Benutzernachricht** (auf 500 Zeichen gekürzt) an den Basis-Beschreibungsprompt an, lenkt die Beschreibung auf das, was der Benutzer tatsächlich gefragt hat (Codex-Vision-Proxy-Muster), und fordert das Vision-Modell auf, sichtbaren Text zu transkribieren. Wenn das Flag deaktiviert ist – oder kein Benutzertext vorhanden ist – wird der Basis-Prompt unverändert verwendet.
|
||||
|
|
|
|||
|
|
@ -108,6 +108,8 @@ Wenn Sie OmniRoute hinter einem Reverse-Proxy oder Tunnel (nginx, Caddy, Cloudfl
|
|||
- **Beheben Sie einen 403-Fehler nicht, indem Sie die Client-IP als Loopback fälschen.** Das Setzen von `X-Forwarded-For: 127.0.0.1` oder ein Proxy, der die Quelladresse auf Loopback umschreibt, öffnet genau die RCE-Klasse wieder, die diese Ebene schließt. Stellen Sie das Dashboard/die API über den Proxy bereit — niemals die spawn-fähigen Routen.
|
||||
- **Halten Sie den Manage-Scope-Bypass minimal.** Nur `/api/mcp/` ist umgehbar, und nur mit einem API-Schlüssel mit `manage`-Scope. Die `SPAWN_CAPABLE_PREFIXES` können niemals zur Bypass-Liste hinzugefügt werden — das Zod-Schema lehnt sie ab und `isLocalOnlyBypassableByManageScope` verweigert sie zur Laufzeit (Defence-in-Depth), was das Dashboard mit "cannot be made bypassable" meint. Dynamische Segment- und statische Pfad-Spawn-fähige Routen unter `/api/providers/` (z.B. `/login`, `/refresh-cursor`) werden durch die Regex-basierten `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` in `src/shared/constants/spawnCapablePrefixes.ts` abgedeckt, nicht durch das flache `SPAWN_CAPABLE_PREFIXES`-Array — das flache Array müsste das gesamte `/api/providers/`-Präfix abdecken, um sie zu erfassen, was einen Routenbaum, den Remote-Dashboards legitim für Provider-CRUD verwenden, zu stark erweitern würde.
|
||||
|
||||
Der Laufzeit-Snapshot-Loader verwirft solche Einträge auch aus einer gespeicherten Einstellungszeile, und der ältere JSON-Import (`/api/settings/import-json`) schreibt niemals die Bypass-Schlüssel. Jeder Eintrag in `LOCAL_ONLY_API_PREFIXES` muss auf der Sperrliste stehen oder nach Prüfung für einen Bypass zugelassen sein. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Zugriff auditieren** — um zu überprüfen, dass nichts von außerhalb des Hosts diese Routen erreicht:
|
||||
|
||||
- Öffnen Sie das **Autorisierungsinventar** unter `/dashboard/settings/security`: Es zeigt die
|
||||
|
|
|
|||
|
|
@ -431,6 +431,17 @@ Quota-share** (`resilienceSettings.quotaShareConcurrencyLimit.enabled`, ενερ
|
|||
`budgetMs`) στις **Ρυθμίσεις → Ανθεκτικότητα**. Δεν περιμένει ποτέ για λόγους `quota_exhausted`
|
||||
(κλειδωμένο μέχρι τα μεσάνυχτα) ή για λόγους ελέγχου ταυτότητας/μη εύρεσης.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Έλεγχος εισαγωγής στην ουρά αιτημάτων (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@ omniroute tokens scopes # επεξήγηση των τριών sco
|
|||
διαχειρίζεστε τα token στον πίνακα ελέγχου, στην ενότητα **Settings → Access
|
||||
Tokens** (δημιουργία, ανάκληση, αντιγραφή μία φορά).
|
||||
|
||||
Ένα token δεν μπορεί ποτέ να δημιουργηθεί με περισσότερα δικαιώματα από τον δημιουργό του. Μόνο ο διαχειριστής λειτουργίας μπορεί να δημιουργήσει token `admin`: μέσω της συνεδρίας του πίνακα ελέγχου, του τοπικού CLI στον ίδιο τον διακομιστή, του `omniroute connect` με τον κωδικό πρόσβασης ή μιας εγκατάστασης με απενεργοποιημένη σύνδεση. Τα διαπιστευτήρια μηχανής (token πρόσβασης `admin` ή κλειδί API με εμβέλεια `manage`/`admin`) μπορούν να δημιουργούν μόνο token `write` και `read`· ένα αίτημα `--scope admin` με αυτά επιστρέφει `403`.
|
||||
|
||||
---
|
||||
|
||||
## Ρύθμιση ενός CLI προγραμματισμού από τον απομακρυσμένο κατάλογο
|
||||
|
|
|
|||
|
|
@ -538,18 +538,22 @@ CLI_CLAUDE_BIN=/host-cli/bin/claude
|
|||
Αυτές οι μεταβλητές ρυθμίζουν τη συμπεριφορά του ίδιου του εκτελέσιμου CLI `omniroute` (όχι την ανίχνευση
|
||||
sidecar παραπάνω).
|
||||
|
||||
| Μεταβλητή | Προεπιλογή | Αρχείο προέλευσης | Περιγραφή |
|
||||
| ------------------------------------- | --------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(σύστημα)_ | `bin/cli/i18n.mjs` | Επιβάλλει τη γλώσσα εξόδου του CLI. Τοπικές ρυθμίσεις BCP-47 (π.χ. `en`, `pt-BR`). Παρακάμπτει τις μεταβλητές περιβάλλοντος τοπικών ρυθμίσεων (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(μη ορισμένο)_ | `bin/cli/runtime/processSupervisor.mjs` | Ορίστε το σε `1` για προώθηση των stdout/stderr του server στο τερματικό σε εποπτευόμενη λειτουργία. Ισοδυναμεί με τη σημαία `--log` στο `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(μη ορισμένο)_ | `bin/cli/api.mjs` | Διακριτικό ελέγχου ταυτότητας μηχανής που εισάγεται ως κεφαλίδα `x-omniroute-cli-token`. Δημιουργείται αυτόματα στην εργασία 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(μη ορισμένο)_ | `bin/cli/commands/setup-gemini.mjs` | Μόνιμος ριζικός προσωπικός κατάλογος του Gemini· η εφάπαξ εκτέλεση χρησιμοποιεί έναν προσωρινό, απομονωμένο προσωπικό κατάλογο. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Περίοδος χάριτος σε χιλιοστά του δευτερολέπτου πριν από τον εξαναγκασμένο τερματισμό μιας θυγατρικής διεργασίας CLI που έχει λάβει σήμα. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(μη ορισμένο)_ | `bin/omniroute.mjs` | Ορίστε το σε 1 μαζί με ένα ρητά καθορισμένο DATA_DIR, για να παραλειφθεί το αρχείο περιβάλλοντος του καταλόγου δεδομένων του προεπιλεγμένου χρήστη. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Χρονικό όριο HTTP ανά προσπάθεια (ms) για αιτήματα CLI → server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Μέγιστος χρόνος (ms) κατά τον οποίο το CLI περιμένει το endpoint υγείας του server πριν εμφανίσει προειδοποίηση λήξης χρονικού ορίου. Χρήσιμο για αργές ψυχρές εκκινήσεις (π.χ. Windows). Μπορεί επίσης να οριστεί μέσω του `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Ορίστε το σε `1` για εκτύπωση διαγνωστικών επαναπροσπάθειας/σταδιακής καθυστέρησης στο stderr κατά τη διάρκεια εντολών CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(μη ορισμένο)_ | `bin/cli/plugins.mjs` | Προσαρμοσμένος κατάλογος για τον εντοπισμό προσθέτων CLI (πακέτα `omniroute-cmd-*`). Όταν δεν έχει οριστεί, η προεπιλογή είναι `~/.omniroute/plugins/`. Αφορά μόνο το CLI — δεν φτάνει ποτέ στον σαρωτή προσθέτων της πλευράς του server, ο οποίος καθορίζεται από το `OMNIROUTE_PLUGINS_DIR` (ενότητα 2). |
|
||||
| Μεταβλητή | Προεπιλογή | Αρχείο προέλευσης | Περιγραφή |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(σύστημα)_ | `bin/cli/i18n.mjs` | Επιβάλλει τη γλώσσα εξόδου του CLI. Τοπικές ρυθμίσεις BCP-47 (π.χ. `en`, `pt-BR`). Παρακάμπτει τις μεταβλητές περιβάλλοντος τοπικών ρυθμίσεων (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(μη ορισμένο)_ | `bin/cli/runtime/processSupervisor.mjs` | Ορίστε το σε `1` για προώθηση των stdout/stderr του server στο τερματικό σε εποπτευόμενη λειτουργία. Ισοδυναμεί με τη σημαία `--log` στο `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(μη ορισμένο)_ | `bin/cli/api.mjs` | Διακριτικό ελέγχου ταυτότητας μηχανής που εισάγεται ως κεφαλίδα `x-omniroute-cli-token`. Δημιουργείται αυτόματα στην εργασία 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(μη ορισμένο)_ | `bin/cli/commands/setup-gemini.mjs` | Μόνιμος ριζικός προσωπικός κατάλογος του Gemini· η εφάπαξ εκτέλεση χρησιμοποιεί έναν προσωρινό, απομονωμένο προσωπικό κατάλογο. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Περίοδος χάριτος σε χιλιοστά του δευτερολέπτου πριν από τον εξαναγκασμένο τερματισμό μιας θυγατρικής διεργασίας CLI που έχει λάβει σήμα. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(μη ορισμένο)_ | `bin/omniroute.mjs` | Ορίστε το σε 1 μαζί με ένα ρητά καθορισμένο DATA_DIR, για να παραλειφθεί το αρχείο περιβάλλοντος του καταλόγου δεδομένων του προεπιλεγμένου χρήστη. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Χρονικό όριο HTTP ανά προσπάθεια (ms) για αιτήματα CLI → server. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Μέγιστος χρόνος (ms) κατά τον οποίο το CLI περιμένει το endpoint υγείας του server πριν εμφανίσει προειδοποίηση λήξης χρονικού ορίου. Χρήσιμο για αργές ψυχρές εκκινήσεις (π.χ. Windows). Μπορεί επίσης να οριστεί μέσω του `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Ορίστε το σε `1` για εκτύπωση διαγνωστικών επαναπροσπάθειας/σταδιακής καθυστέρησης στο stderr κατά τη διάρκεια εντολών CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(μη ορισμένο)_ | `bin/cli/plugins.mjs` | Προσαρμοσμένος κατάλογος για τον εντοπισμό προσθέτων CLI (πακέτα `omniroute-cmd-*`). Όταν δεν έχει οριστεί, η προεπιλογή είναι `~/.omniroute/plugins/`. Αφορά μόνο το CLI — δεν φτάνει ποτέ στον σαρωτή προσθέτων της πλευράς του server, ο οποίος καθορίζεται από το `OMNIROUTE_PLUGINS_DIR` (ενότητα 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1185,50 +1189,51 @@ STREAM_HISTORY_MAX=10
|
|||
|
||||
## 20. Ρυθμίσεις ανά πάροχο
|
||||
|
||||
| Μεταβλητή | Προεπιλογή | Αρχείο προέλευσης | Περιγραφή |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 ώρες) | `src/lib/catalog/openrouterCatalog.ts` | TTL της κρυφής μνήμης του καταλόγου μοντέλων του OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Συμπεριλαμβάνει φιλικά προς εμφάνιση πεδία `name` στις αποκρίσεις `/v1/models`. Απενεργοποιήστε το για πελάτες που αναμένουν μόνο αναγνωριστικά. |
|
||||
| `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. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(δεν έχει οριστεί)_ | `open-sse/executors/cloudflare-playground.ts` | Πλήρης διαδρομή προς το εκτελέσιμο αρχείο του Chrome για επιτραπέζιο υπολογιστή, για τον εκτελεστή Cloudflare AI Playground, η οποία χρησιμοποιείται όταν ο έλεγχος αποτυπώματος χωρίς γραφικό περιβάλλον αποκλείει το ενσωματωμένο Chromium του Playwright. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Παρακάμπτει τη βάση του Cloudflare REST API που χρησιμοποιείται από το εργαλείο ανάπτυξης της αναμετάδοσης Workers της ομάδας διακομιστών μεσολάβησης (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Προεπιλεγμένο όνομα έργου worker που προτείνεται στο παράθυρο «Deploy Relay» της ομάδας διακομιστών μεσολάβησης. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Ορίστε το σε `false` για να αποκρύψετε την επιλογή αναμετάδοσης Cloudflare Workers από την καρτέλα Proxy Pool. |
|
||||
| `CLOUDFLARED_BIN` | αυτόματη ανίχνευση | `src/lib/cloudflaredTunnel.ts` | Προσαρμοσμένη διαδρομή προς το εκτελέσιμο αρχείο `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Πρωτόκολλο μεταφοράς σήραγγας: `http2` (προεπιλογή), `quic` ή `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(δεν έχει οριστεί)_ | `src/lib/cloudflaredTunnel.ts` | Διαδρομή προς ένα τοπικά διαχειριζόμενο αρχείο `config.yml` του cloudflared (με `tunnel:`, `credentials-file:`, `ingress:`). Όταν οριστεί, το OmniRoute εκτελεί `tunnel --config <path> 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` | Παράκαμψη της βάσης του REST API του Deno Deploy που χρησιμοποιείται από το εργαλείο ανάπτυξης αναμεταδότη της ομάδας διακομιστών μεσολάβησης (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Προεπιλεγμένο όνομα εφαρμογής Deno Deploy που προτείνεται στο παράθυρο «Ανάπτυξη αναμεταδότη» της ομάδας διακομιστών μεσολάβησης. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Ορίστε το σε `false` για να αποκρύψετε την επιλογή αναμεταδότη Deno Deploy από την καρτέλα Ομάδα διακομιστών μεσολάβησης. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 λεπτά) | `open-sse/services/searchCache.ts` | TTL για την προσωρινή αποθήκευση αποκρίσεων του API αναζήτησης (Perplexity, Brave κ.λπ.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Εμφάνιση του πειραματικού περιβάλλοντος εργασίας παρόχου συμβατού με CC για αναμεταδότες αποκλειστικά για το Claude Code. |
|
||||
| `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 της ενσωματωμένης υπηρεσίας (μόνο loopback από προεπιλογή). |
|
||||
| `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 δημοσιεύει το sidecar `cliproxyapi` (#12578). Ο τόμος δεδομένων του περιέχει διαπιστευτήρια OAuth/API παρόχων και η καρφιτσωμένη εικόνα δεν διαθέτει παράκαμψη `api-keys` επιπέδου δεδομένων μέσω μεταβλητών περιβάλλοντος (μόνο μέσω προσαρτημένου `config.yaml`), επομένως το `0.0.0.0` εκθέτει μια υπηρεσία που περιέχει διαπιστευτήρια σε ολόκληρο το LAN. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Παράκαμψη της θύρας στην οποία ακούει ο ενσωματωμένος δαίμονας ενορχήστρωσης agent 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 (από προεπιλογή μόνο loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Θύρα της ενσωματωμένης υπηρεσίας Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Κεντρικός υπολογιστής δέσμευσης/σύνδεσης της ενσωματωμένης υπηρεσίας Dario (από προεπιλογή μόνο loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Θύρα της ενσωματωμένης υπηρεσίας Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(κενό)_ | `open-sse/config/providerRegistry.ts` | Πρόσθετα ονόματα κεντρικών υπολογιστών, διαχωρισμένα με κόμματα, που αντιμετωπίζονται ως «τοπικά» (ονόματα υπηρεσιών Docker κ.λπ.). |
|
||||
| Μεταβλητή | Προεπιλογή | Αρχείο προέλευσης | Περιγραφή |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 ώρες) | `src/lib/catalog/openrouterCatalog.ts` | TTL της κρυφής μνήμης του καταλόγου μοντέλων του OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Συμπεριλαμβάνει φιλικά προς εμφάνιση πεδία `name` στις αποκρίσεις `/v1/models`. Απενεργοποιήστε το για πελάτες που αναμένουν μόνο αναγνωριστικά. |
|
||||
| `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. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(δεν έχει οριστεί)_ | `open-sse/executors/cloudflare-playground.ts` | Πλήρης διαδρομή προς το εκτελέσιμο αρχείο του Chrome για επιτραπέζιο υπολογιστή, για τον εκτελεστή Cloudflare AI Playground, η οποία χρησιμοποιείται όταν ο έλεγχος αποτυπώματος χωρίς γραφικό περιβάλλον αποκλείει το ενσωματωμένο Chromium του Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): από προεπιλογή αντικαθίστανται με ουδέτερες μόνο οι οδηγίες συστήματος με δείκτη ταυτότητας πράκτορα προγραμματισμού (το φίλτρο Tencent τις απορρίπτει)· οι μεγάλες οδηγίες διατηρούνται. Ένας θετικός ακέραιος αντικαθιστά επίσης οδηγίες με περισσότερους χαρακτήρες από την τιμή του. Μη ορισμένη τιμή, `0` ή μη ακέραιος απενεργοποιεί το όριο μήκους. Κάθε αντικατάσταση καταγράφει την αιτία (ταυτότητα/μήκος). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Παρακάμπτει τη βάση του Cloudflare REST API που χρησιμοποιείται από το εργαλείο ανάπτυξης της αναμετάδοσης Workers της ομάδας διακομιστών μεσολάβησης (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Προεπιλεγμένο όνομα έργου worker που προτείνεται στο παράθυρο «Deploy Relay» της ομάδας διακομιστών μεσολάβησης. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Ορίστε το σε `false` για να αποκρύψετε την επιλογή αναμετάδοσης Cloudflare Workers από την καρτέλα Proxy Pool. |
|
||||
| `CLOUDFLARED_BIN` | αυτόματη ανίχνευση | `src/lib/cloudflaredTunnel.ts` | Προσαρμοσμένη διαδρομή προς το εκτελέσιμο αρχείο `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Πρωτόκολλο μεταφοράς σήραγγας: `http2` (προεπιλογή), `quic` ή `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(δεν έχει οριστεί)_ | `src/lib/cloudflaredTunnel.ts` | Διαδρομή προς ένα τοπικά διαχειριζόμενο αρχείο `config.yml` του cloudflared (με `tunnel:`, `credentials-file:`, `ingress:`). Όταν οριστεί, το OmniRoute εκτελεί `tunnel --config <path> 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` | Παράκαμψη της βάσης του REST API του Deno Deploy που χρησιμοποιείται από το εργαλείο ανάπτυξης αναμεταδότη της ομάδας διακομιστών μεσολάβησης (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Προεπιλεγμένο όνομα εφαρμογής Deno Deploy που προτείνεται στο παράθυρο «Ανάπτυξη αναμεταδότη» της ομάδας διακομιστών μεσολάβησης. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Ορίστε το σε `false` για να αποκρύψετε την επιλογή αναμεταδότη Deno Deploy από την καρτέλα Ομάδα διακομιστών μεσολάβησης. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 λεπτά) | `open-sse/services/searchCache.ts` | TTL για την προσωρινή αποθήκευση αποκρίσεων του API αναζήτησης (Perplexity, Brave κ.λπ.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Εμφάνιση του πειραματικού περιβάλλοντος εργασίας παρόχου συμβατού με CC για αναμεταδότες αποκλειστικά για το Claude Code. |
|
||||
| `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 της ενσωματωμένης υπηρεσίας (μόνο loopback από προεπιλογή). |
|
||||
| `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 δημοσιεύει το sidecar `cliproxyapi` (#12578). Ο τόμος δεδομένων του περιέχει διαπιστευτήρια OAuth/API παρόχων και η καρφιτσωμένη εικόνα δεν διαθέτει παράκαμψη `api-keys` επιπέδου δεδομένων μέσω μεταβλητών περιβάλλοντος (μόνο μέσω προσαρτημένου `config.yaml`), επομένως το `0.0.0.0` εκθέτει μια υπηρεσία που περιέχει διαπιστευτήρια σε ολόκληρο το LAN. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Παράκαμψη της θύρας στην οποία ακούει ο ενσωματωμένος δαίμονας ενορχήστρωσης agent 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 (από προεπιλογή μόνο loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Θύρα της ενσωματωμένης υπηρεσίας Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Κεντρικός υπολογιστής δέσμευσης/σύνδεσης της ενσωματωμένης υπηρεσίας Dario (από προεπιλογή μόνο loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Θύρα της ενσωματωμένης υπηρεσίας Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(κενό)_ | `open-sse/config/providerRegistry.ts` | Πρόσθετα ονόματα κεντρικών υπολογιστών, διαχωρισμένα με κόμματα, που αντιμετωπίζονται ως «τοπικά» (ονόματα υπηρεσιών Docker κ.λπ.). |
|
||||
|
||||
Το `ENABLE_CC_COMPATIBLE_PROVIDER` προορίζεται μόνο για αναμεταδότες τρίτων που δέχονται αποκλειστικά
|
||||
προγράμματα-πελάτες Claude Code. Το OmniRoute επανεγγράφει τα αιτήματα, ώστε αυτοί οι αναμεταδότες να τα αποδέχονται.
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ curl -X POST http://localhost:20128/v1/chat/completions \
|
|||
| `quality` | 0.03 | Σήμα ποιότητας εξόδου βάσει σχολίων από τον ιχνηλάτη ποιότητας συμβάντων δρομολόγησης· οι υποψήφιοι χωρίς παρατηρήσεις λαμβάνουν ουδέτερη τιμή 0.5 |
|
||||
| `reliability` | 0.00 | Παρατηρούμενο ποσοστό επιτυχίας, `1 - failureRate`, από ιστορικό χρήσης 24 ωρών με ελάχιστο όριο δέκα δειγμάτων (διαφορετικά χρησιμοποιούνται μετρικές πραγματικού χρόνου)· οι υποψήφιοι χωρίς παρατηρήσεις θεωρούνται ότι έχουν τιμή 1.0. Απενεργοποιημένο από προεπιλογή |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Άθροισμα:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, όπως δηλώνεται στο `DEFAULT_WEIGHTS`· τα βάρη που διαμορφώνονται από τον χρήστη κανονικοποιούνται εκ νέου σε μια κατανομή από τη `normalizeScoringWeights()` πριν από τη βαθμολόγηση.
|
||||
|
||||
## Πακέτα λειτουργίας
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@
|
|||
Οι αναγκαστικές λειτουργίες βραχυκυκλώνουν **πριν** εκτελεστεί η αυτόματη ευρετική· η συμπεριφορά `auto`
|
||||
είναι πανομοιότυπη με το guardrail πριν από το PR-1.
|
||||
|
||||
#### Εμβέλεια κλειδιού API (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Αν το κλειδί API περιορίζει συνδέσεις, ομάδες ποσοστώσεων ή μοντέλα (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), η αναδρομολόγηση και η περιγραφή επιλέγουν μόνο μοντέλα και συνδέσεις που επιτρέπονται στο κλειδί. Η περιγραφή περνά πάντα από τον εσωτερικό βρόχο του OmniRoute με την κεφαλίδα `x-omniroute-self-loop-key-id`, εφαρμόζοντας ξανά την πολιτική συνδέσεων και μοντέλων. Η `enforceApiKeyPolicy()` δέχεται την κεφαλίδα μόνο με το bearer token του βρόχου: μπορεί μόνο να περιορίζει την πρόσβαση και απορρίπτει άγνωστο αναγνωριστικό. Χωρίς επιτρεπόμενο μοντέλο όρασης, η περιγραφή παραλείπεται και το αίτημα μένει αμετάβλητο, όπως με απενεργοποιημένη προστασία (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Αιτήματα χωρίς κλειδί και κλειδιά χωρίς αυτούς τους περιορισμούς λειτουργούν όπως πριν.
|
||||
|
||||
#### Προτροπή περιγραφής με επίγνωση εργασίας (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Προεπιλογή **true**. Το `composeVisionPrompt()` (`visionBridgeHelpers.ts`) προσθέτει
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@
|
|||
- **Μην "διορθώνετε" ένα 403 πλαστογραφώντας την IP του πελάτη ως loopback.** Η ρύθμιση `X-Forwarded-For: 127.0.0.1`, ή ένας διακομιστής μεσολάβησης που ξαναγράφει τη διεύθυνση προέλευσης σε loopback, ανοίγει ξανά ακριβώς την κατηγορία RCE που κλείνει αυτό το επίπεδο. Εκθέστε τον πίνακα ελέγχου/API μέσω του διακομιστή μεσολάβησης — ποτέ τις διαδρομές με δυνατότητα εκκίνησης.
|
||||
- **Διατηρήστε την παράκαμψη πεδίου διαχείρισης στο ελάχιστο.** Μόνο το `/api/mcp/` μπορεί να παρακαμφθεί, και μόνο με ένα κλειδί API με πεδίο `manage`. Τα `SPAWN_CAPABLE_PREFIXES` δεν μπορούν ποτέ να προστεθούν στη λίστα παράκαμψης — το σχήμα zod τα απορρίπτει και το `isLocalOnlyBypassableByManageScope` τα αρνείται κατά την εκτέλεση (άμυνα σε βάθος), κάτι που είναι αυτό που εννοεί ο πίνακας ελέγχου με το "δεν μπορεί να γίνει παρακάμψιμο". Οι διαδρομές με δυνατότητα εκκίνησης δυναμικού τμήματος και στατικής διαδρομής κάτω από το `/api/providers/` (π.χ. `/login`, `/refresh-cursor`) καλύπτονται από το συνοδευτικό `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` που βασίζεται σε regex στο `src/shared/constants/spawnCapablePrefixes.ts`, όχι από τον επίπεδο πίνακα `SPAWN_CAPABLE_PREFIXES` — ο επίπεδος πίνακας θα έπρεπε να καλύπτει ολόκληρο το πρόθεμα `/api/providers/` για να τις πιάσει, διευρύνοντας υπερβολικά ένα δέντρο διαδρομών που οι απομακρυσμένοι πίνακες ελέγχου χρησιμοποιούν νόμιμα για CRUD παρόχων.
|
||||
|
||||
Ο φορτωτής στιγμιοτύπων χρόνου εκτέλεσης απορρίπτει επίσης αυτές τις εγγραφές από μια αποθηκευμένη γραμμή ρυθμίσεων, ενώ η παλαιά εισαγωγή JSON (`/api/settings/import-json`) δεν γράφει ποτέ τα κλειδιά παράκαμψης. Κάθε εγγραφή στο `LOCAL_ONLY_API_PREFIXES` πρέπει είτε να βρίσκεται στη λίστα άρνησης είτε να έχει ελεγχθεί και εγκριθεί για παράκαμψη. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Έλεγχος πρόσβασης** — για να επαληθεύσετε ότι τίποτα εκτός του κεντρικού υπολογιστή δεν φτάνει σε αυτές τις διαδρομές:
|
||||
|
||||
- Ανοίξτε το **Authorization Inventory** στο `/dashboard/settings/security`: εμφανίζει τη ζωντανή λίστα προθεμάτων LOCAL_ONLY, ποια προθέματα μπορούν να παρακαμφθούν και το σύνολο που μπορεί να δημιουργηθεί κατά τη μεταγλώττιση ("δεν μπορεί να γίνει παρακάμψιμο").
|
||||
|
|
|
|||
|
|
@ -407,6 +407,17 @@ por modelo. Está limitado por `comboCooldownWait` (`enabled`, `maxWaitMs`, `max
|
|||
`budgetMs`) en **Configuración → Resiliencia**. Nunca espera por `quota_exhausted`
|
||||
(bloqueado hasta medianoche) ni por motivos de autenticación o recurso no encontrado.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Control de admisión de la cola de solicitudes (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -256,6 +256,8 @@ Los comandos `tokens` requieren una credencial de **administrador**. También pu
|
|||
gestionar los tokens en el panel, en **Configuración → Tokens de acceso** (crear,
|
||||
revocar, copiar una sola vez).
|
||||
|
||||
Un token nunca puede crearse con más privilegios de los que tiene su creador. Solo el operador puede crear un token `admin`: desde la sesión del panel, la CLI local del propio servidor, `omniroute connect` con la contraseña o una instancia con el inicio de sesión desactivado. Las credenciales de máquina (un token de acceso `admin` o una clave de API con ámbito `manage`/`admin`) solo pueden crear tokens `write` y `read`; solicitar `--scope admin` con ellas devuelve `403`.
|
||||
|
||||
---
|
||||
|
||||
## Configurar una CLI de programación desde el catálogo remoto
|
||||
|
|
|
|||
|
|
@ -537,18 +537,22 @@ una sobrescritura válida.
|
|||
Estas variables ajustan el comportamiento propio del binario de la CLI `omniroute` (no la
|
||||
detección del sidecar descrita anteriormente).
|
||||
|
||||
| Variable | Valor predeterminado | Archivo de origen | Descripción |
|
||||
| ------------------------------------- | -------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(sistema)_ | `bin/cli/i18n.mjs` | Fuerza el idioma de salida de la CLI. Configuración regional BCP-47 (p. ej., `en`, `pt-BR`). Anula las variables de entorno de configuración regional del sistema (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(sin establecer)_ | `bin/cli/runtime/processSupervisor.mjs` | Establézcala en `1` para reenviar stdout/stderr del servidor al terminal en modo supervisado. Equivale a la opción `--log` de `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(sin establecer)_ | `bin/cli/api.mjs` | Token de autenticación de máquina inyectado como encabezado `x-omniroute-cli-token`. Se genera automáticamente en la tarea 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(sin establecer)_ | `bin/cli/commands/setup-gemini.mjs` | Directorio raíz personal persistente de Gemini; la ejecución única utiliza un directorio personal temporal y aislado. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Período de gracia en milisegundos antes de finalizar forzosamente un proceso secundario de la CLI al que se haya enviado una señal. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(sin establecer)_ | `bin/omniroute.mjs` | Establézcala en 1 junto con un DATA_DIR explícito para omitir el archivo de entorno predeterminado del directorio de datos del usuario. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Tiempo de espera HTTP por intento (ms) para las solicitudes de la CLI al servidor. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Tiempo máximo (ms) que la CLI espera al endpoint de estado del servidor antes de mostrar una advertencia de tiempo de espera agotado. Resulta útil para arranques en frío lentos (p. ej., Windows). También puede configurarse mediante `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Establézcala en `1` para imprimir diagnósticos de reintentos y espera exponencial en stderr durante los comandos de la CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(sin establecer)_ | `bin/cli/plugins.mjs` | Directorio personalizado para detectar plugins de la CLI (paquetes `omniroute-cmd-*`). Cuando no se establece, el valor predeterminado es `~/.omniroute/plugins/`. Solo para la CLI: nunca llega al detector de plugins del servidor, al cual apunta `OMNIROUTE_PLUGINS_DIR` (sección 2). |
|
||||
| Variable | Valor predeterminado | Archivo de origen | Descripción |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(sistema)_ | `bin/cli/i18n.mjs` | Fuerza el idioma de salida de la CLI. Configuración regional BCP-47 (p. ej., `en`, `pt-BR`). Anula las variables de entorno de configuración regional del sistema (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(sin establecer)_ | `bin/cli/runtime/processSupervisor.mjs` | Establézcala en `1` para reenviar stdout/stderr del servidor al terminal en modo supervisado. Equivale a la opción `--log` de `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(sin establecer)_ | `bin/cli/api.mjs` | Token de autenticación de máquina inyectado como encabezado `x-omniroute-cli-token`. Se genera automáticamente en la tarea 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(sin establecer)_ | `bin/cli/commands/setup-gemini.mjs` | Directorio raíz personal persistente de Gemini; la ejecución única utiliza un directorio personal temporal y aislado. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Período de gracia en milisegundos antes de finalizar forzosamente un proceso secundario de la CLI al que se haya enviado una señal. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(sin establecer)_ | `bin/omniroute.mjs` | Establézcala en 1 junto con un DATA_DIR explícito para omitir el archivo de entorno predeterminado del directorio de datos del usuario. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Tiempo de espera HTTP por intento (ms) para las solicitudes de la CLI al servidor. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Tiempo máximo (ms) que la CLI espera al endpoint de estado del servidor antes de mostrar una advertencia de tiempo de espera agotado. Resulta útil para arranques en frío lentos (p. ej., Windows). También puede configurarse mediante `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Establézcala en `1` para imprimir diagnósticos de reintentos y espera exponencial en stderr durante los comandos de la CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(sin establecer)_ | `bin/cli/plugins.mjs` | Directorio personalizado para detectar plugins de la CLI (paquetes `omniroute-cmd-*`). Cuando no se establece, el valor predeterminado es `~/.omniroute/plugins/`. Solo para la CLI: nunca llega al detector de plugins del servidor, al cual apunta `OMNIROUTE_PLUGINS_DIR` (sección 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1180,50 +1184,51 @@ normal de escritorio.
|
|||
|
||||
## 20. Configuración específica de proveedores
|
||||
|
||||
| Variable | Valor predeterminado | Archivo de origen | Descripción |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | TTL de la caché del catálogo de modelos de OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Incluye campos `name` fáciles de mostrar en las respuestas de `/v1/models`. Desactívelo para los clientes que solo esperan identificadores. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Límite de espera en la ruta fría para una reconstrucción agrupada del catálogo mediante `GET /v1/models` (#12627). Si se agota el tiempo de espera, se devuelve la última respuesta válida con estado 200, si existe. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 días) | `src/lib/db/models/activeSyncedCatalog.ts` | Tiempo tras el cual la lista de modelos sincronizada de una conexión deja de considerarse autoritativa para el enrutamiento y recurre al registro de forma permisiva (#12849). Las filas sin marca de tiempo se consideran obsoletas. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Tiempo durante el cual se reutiliza una respuesta lenta de `GET /api/usage/analytics` para la misma cadena de consulta (#15629). `0` desactiva la caché. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Solo se almacenan en caché las respuestas de análisis cuya generación haya tardado al menos este tiempo, por lo que las instancias pequeñas siempre reciben datos actualizados. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Tiempo máximo de espera para los trabajos de generación de imágenes de NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Frecuencia de consulta del estado de los trabajos de NanoBanana. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Retraso base para la espera exponencial entre reintentos de envío del escalado de Adobe Firefly. |
|
||||
| `AWS_REGION` | _(sin establecer)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Región utilizada para construir los endpoints de AWS Bedrock (Kiro, audio). |
|
||||
| `AWS_DEFAULT_REGION` | _(sin establecer)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Valor alternativo cuando `AWS_REGION` no está establecido. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(sin establecer)_ | `open-sse/executors/cloudflare-ai.ts` | Identificador de cuenta de Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(sin establecer)_ | `open-sse/executors/cloudflare-playground.ts` | Ruta completa al binario de Chrome de escritorio para el ejecutor de Cloudflare AI Playground, utilizada cuando la comprobación de huella digital sin interfaz gráfica bloquea la versión de Chromium incluida con Playwright. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Reemplaza la base de la API REST de Cloudflare utilizada por el implementador del relay de Workers del grupo de proxies (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Nombre predeterminado del proyecto de Worker sugerido en el modal «Implementar relay» del grupo de proxies. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Establézcalo en `false` para ocultar la opción de relay de Cloudflare Workers en la pestaña del grupo de proxies. |
|
||||
| `CLOUDFLARED_BIN` | detección automática | `src/lib/cloudflaredTunnel.ts` | Ruta personalizada al binario `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Protocolo de transporte del túnel: `http2` (predeterminado), `quic` o `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(sin definir)_ | `src/lib/cloudflaredTunnel.ts` | Ruta a un archivo `config.yml` de cloudflared administrado localmente (con `tunnel:`, `credentials-file:`, `ingress:`). Cuando se establece, OmniRoute ejecuta `tunnel --config <path> run` (túnel con nombre) en lugar de un túnel rápido efímero. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(desde ingress de la configuración)_ | `src/lib/cloudflaredTunnel.ts` | Reemplazo del nombre de host público del túnel con nombre (p. ej., `ai.example.com`), indicado como `publicUrl`/`apiUrl`. Cuando no se establece, se obtiene del nombre de host del primer `ingress` de la configuración. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Reemplaza la base de la API REST de Deno Deploy utilizada por el desplegador del relé del grupo de proxies (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Nombre predeterminado de la aplicación de Deno Deploy sugerido en el modal «Deploy Relay» del grupo de proxies. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Establézcalo en `false` para ocultar la opción de relé de Deno Deploy en la pestaña del grupo de proxies. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | TTL para almacenar en caché las respuestas de las API de búsqueda (Perplexity, Brave, etc.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Muestra la interfaz experimental de proveedores compatibles con CC para relés exclusivos de Claude Code. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Reemplaza el host en el que escucha la instancia integrada de 9router. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Reemplaza el puerto en el que escucha la instancia integrada de 9router. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Host de enlace para el proxy WebSocket del servicio integrado (solo bucle invertido de forma predeterminada). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Puerto del servidor proxy WebSocket del servicio integrado. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Host del puente CLIProxyAPI (integración heredada). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Puerto del puente CLIProxyAPI. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(vacío)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Clave alternativa del plano de datos cuando el ajuste `cliproxyapi_api_key` no está presente. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(vacío)_ | `src/lib/services/cliproxyAccountHealth.ts` | Clave de administración para consultar el estado de las cuentas desde una instancia de CLIProxyAPI administrada externamente. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Directorio de configuración de CLIProxyAPI. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Interfaz de host en la que docker-compose publica el contenedor auxiliar `cliproxyapi` (#12578). Su volumen de datos contiene las credenciales OAuth/API del proveedor y la imagen fijada no permite reemplazar las `api-keys` del plano de datos mediante variables de entorno (solo mediante un archivo `config.yaml` montado), por lo que `0.0.0.0` expone a toda la LAN un servicio que contiene credenciales. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Reemplaza el puerto en el que escucha el daemon integrado de orquestación de agentes Mux (coder/mux) (siempre 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Reemplaza el puerto en el que escucha el daemon integrado de open-wa (automatización de WhatsApp Web) (siempre 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host de enlace/conexión del servicio integrado Dario (solo loopback de forma predeterminada). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Puerto del servicio integrado Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host de enlace/conexión del servicio integrado Dario (solo loopback de forma predeterminada). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Puerto del servicio integrado Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(vacío)_ | `open-sse/config/providerRegistry.ts` | Nombres de host adicionales separados por comas que se tratan como «locales» (nombres de servicios de Docker, etc.). |
|
||||
| Variable | Valor predeterminado | Archivo de origen | Descripción |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | TTL de la caché del catálogo de modelos de OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Incluye campos `name` fáciles de mostrar en las respuestas de `/v1/models`. Desactívelo para los clientes que solo esperan identificadores. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Límite de espera en la ruta fría para una reconstrucción agrupada del catálogo mediante `GET /v1/models` (#12627). Si se agota el tiempo de espera, se devuelve la última respuesta válida con estado 200, si existe. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 días) | `src/lib/db/models/activeSyncedCatalog.ts` | Tiempo tras el cual la lista de modelos sincronizada de una conexión deja de considerarse autoritativa para el enrutamiento y recurre al registro de forma permisiva (#12849). Las filas sin marca de tiempo se consideran obsoletas. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Tiempo durante el cual se reutiliza una respuesta lenta de `GET /api/usage/analytics` para la misma cadena de consulta (#15629). `0` desactiva la caché. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Solo se almacenan en caché las respuestas de análisis cuya generación haya tardado al menos este tiempo, por lo que las instancias pequeñas siempre reciben datos actualizados. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Tiempo máximo de espera para los trabajos de generación de imágenes de NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Frecuencia de consulta del estado de los trabajos de NanoBanana. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Retraso base para la espera exponencial entre reintentos de envío del escalado de Adobe Firefly. |
|
||||
| `AWS_REGION` | _(sin establecer)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Región utilizada para construir los endpoints de AWS Bedrock (Kiro, audio). |
|
||||
| `AWS_DEFAULT_REGION` | _(sin establecer)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Valor alternativo cuando `AWS_REGION` no está establecido. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(sin establecer)_ | `open-sse/executors/cloudflare-ai.ts` | Identificador de cuenta de Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(sin establecer)_ | `open-sse/executors/cloudflare-playground.ts` | Ruta completa al binario de Chrome de escritorio para el ejecutor de Cloudflare AI Playground, utilizada cuando la comprobación de huella digital sin interfaz gráfica bloquea la versión de Chromium incluida con Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): de forma predeterminada, solo las instrucciones de sistema con un marcador de identidad de agente de programación se sustituyen por unas neutrales (el filtro de Tencent las rechaza); las largas se conservan. Un entero positivo también sustituye las que superan ese número de caracteres. Sin definir, `0` o un valor no entero desactiva el límite. Cada sustitución registra la causa (identidad/longitud). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Reemplaza la base de la API REST de Cloudflare utilizada por el implementador del relay de Workers del grupo de proxies (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Nombre predeterminado del proyecto de Worker sugerido en el modal «Implementar relay» del grupo de proxies. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Establézcalo en `false` para ocultar la opción de relay de Cloudflare Workers en la pestaña del grupo de proxies. |
|
||||
| `CLOUDFLARED_BIN` | detección automática | `src/lib/cloudflaredTunnel.ts` | Ruta personalizada al binario `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Protocolo de transporte del túnel: `http2` (predeterminado), `quic` o `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(sin definir)_ | `src/lib/cloudflaredTunnel.ts` | Ruta a un archivo `config.yml` de cloudflared administrado localmente (con `tunnel:`, `credentials-file:`, `ingress:`). Cuando se establece, OmniRoute ejecuta `tunnel --config <path> run` (túnel con nombre) en lugar de un túnel rápido efímero. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(desde ingress de la configuración)_ | `src/lib/cloudflaredTunnel.ts` | Reemplazo del nombre de host público del túnel con nombre (p. ej., `ai.example.com`), indicado como `publicUrl`/`apiUrl`. Cuando no se establece, se obtiene del nombre de host del primer `ingress` de la configuración. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Reemplaza la base de la API REST de Deno Deploy utilizada por el desplegador del relé del grupo de proxies (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Nombre predeterminado de la aplicación de Deno Deploy sugerido en el modal «Deploy Relay» del grupo de proxies. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Establézcalo en `false` para ocultar la opción de relé de Deno Deploy en la pestaña del grupo de proxies. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | TTL para almacenar en caché las respuestas de las API de búsqueda (Perplexity, Brave, etc.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Muestra la interfaz experimental de proveedores compatibles con CC para relés exclusivos de Claude Code. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Reemplaza el host en el que escucha la instancia integrada de 9router. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Reemplaza el puerto en el que escucha la instancia integrada de 9router. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Host de enlace para el proxy WebSocket del servicio integrado (solo bucle invertido de forma predeterminada). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Puerto del servidor proxy WebSocket del servicio integrado. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Host del puente CLIProxyAPI (integración heredada). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Puerto del puente CLIProxyAPI. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(vacío)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Clave alternativa del plano de datos cuando el ajuste `cliproxyapi_api_key` no está presente. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(vacío)_ | `src/lib/services/cliproxyAccountHealth.ts` | Clave de administración para consultar el estado de las cuentas desde una instancia de CLIProxyAPI administrada externamente. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Directorio de configuración de CLIProxyAPI. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Interfaz de host en la que docker-compose publica el contenedor auxiliar `cliproxyapi` (#12578). Su volumen de datos contiene las credenciales OAuth/API del proveedor y la imagen fijada no permite reemplazar las `api-keys` del plano de datos mediante variables de entorno (solo mediante un archivo `config.yaml` montado), por lo que `0.0.0.0` expone a toda la LAN un servicio que contiene credenciales. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Reemplaza el puerto en el que escucha el daemon integrado de orquestación de agentes Mux (coder/mux) (siempre 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Reemplaza el puerto en el que escucha el daemon integrado de open-wa (automatización de WhatsApp Web) (siempre 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host de enlace/conexión del servicio integrado Dario (solo loopback de forma predeterminada). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Puerto del servicio integrado Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Host de enlace/conexión del servicio integrado Dario (solo loopback de forma predeterminada). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Puerto del servicio integrado Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(vacío)_ | `open-sse/config/providerRegistry.ts` | Nombres de host adicionales separados por comas que se tratan como «locales» (nombres de servicios de Docker, etc.). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` está destinado únicamente a relés de terceros que aceptan clientes de Claude Code
|
||||
exclusivamente. OmniRoute reescribe las solicitudes para que esos relés las acepten. Si solo quieres usar
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ El motor de Auto-Combo selecciona dinámicamente el mejor proveedor/modelo para
|
|||
| `quality` | 0.03 | Señal de calidad de salida basada en comentarios procedente del rastreador de calidad de eventos de enrutamiento; los candidatos sin observaciones reciben un valor neutro de 0.5 |
|
||||
| `reliability` | 0.00 | Proporción de éxitos observada, `1 - failureRate`, a partir de 24 h de historial de uso, con un mínimo de diez muestras (de lo contrario, se usan métricas en tiempo real); los candidatos sin observaciones se interpretan como 1.0. Deshabilitada de forma predeterminada |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Suma:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, tal como se declara en `DEFAULT_WEIGHTS`; los pesos configurados por el usuario se vuelven a normalizar en una distribución mediante `normalizeScoringWeights()` antes de calcular la puntuación.
|
||||
|
||||
## Paquetes de modos
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ Flujo:
|
|||
|
||||
Los modos forzados se cortocircuitan **antes** de que se ejecute la heurística automática; el comportamiento `auto` es idéntico byte a byte a la barrera de seguridad anterior al PR-1.
|
||||
|
||||
#### Alcance de la clave API (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Si la clave API restringe conexiones, grupos de cuotas o modelos (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), la redirección y la descripción solo eligen modelos y conexiones permitidos para esa clave. La descripción siempre pasa por el bucle interno de OmniRoute con la cabecera `x-omniroute-self-loop-key-id`, que vuelve a aplicar las políticas de conexión y modelo. `enforceApiKeyPolicy()` solo acepta esa cabecera junto con el token bearer del bucle: únicamente puede reducir el acceso, y rechaza identificadores desconocidos. Si no hay un modelo visual permitido, se omite la descripción y la solicitud permanece intacta, como con la protección desactivada (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Las solicitudes sin clave y las claves sin estas restricciones se comportan como antes.
|
||||
|
||||
#### Prompt de descripción sensible a la tarea (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Predeterminado **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) añade el texto del **último mensaje del usuario** (truncado a 500 caracteres) al prompt de descripción base, dirigiendo la descripción hacia lo que el usuario realmente preguntó (patrón codex-vision-proxy) y pidiendo al modelo de visión que transcriba el texto visible. Con la bandera desactivada — o sin texto de usuario — se utiliza el prompt base sin cambios.
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ Si ejecuta OmniRoute detrás de un proxy inverso o túnel (nginx, Caddy, Cloudfl
|
|||
- **No "solucione" un 403 falsificando la IP del cliente como loopback.** Establecer `X-Forwarded-For: 127.0.0.1`, o un proxy que reescriba la dirección de origen a loopback, reabre exactamente la clase de RCE que esta capa cierra. Exponga el panel de control/API a través del proxy — nunca las rutas capaces de iniciar procesos.
|
||||
- **Mantenga la omisión del ámbito de gestión al mínimo.** Solo `/api/mcp/` es omitible, y solo con una clave API con ámbito `manage`. Los `SPAWN_CAPABLE_PREFIXES` nunca pueden añadirse a la lista de omisión — el esquema zod los rechaza y `isLocalOnlyBypassableByManageScope` los deniega en tiempo de ejecución (defensa en profundidad), que es lo que el panel de control quiere decir con "no se puede hacer omitible". Las rutas capaces de iniciar procesos con segmentos dinámicos y rutas estáticas bajo `/api/providers/` (por ejemplo, `/login`, `/refresh-cursor`) están cubiertas por el compañero basado en expresiones regulares `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` en `src/shared/constants/spawnCapablePrefixes.ts`, no por el array plano `SPAWN_CAPABLE_PREFIXES` — el array plano tendría que cubrir todo el prefijo `/api/providers/` para detectarlas, ampliando demasiado un árbol de rutas que los paneles de control remotos utilizan legítimamente para el CRUD del proveedor.
|
||||
|
||||
El cargador de instantáneas de ejecución también descarta esas entradas de una fila de configuración almacenada, y la importación JSON heredada (`/api/settings/import-json`) nunca escribe las claves de bypass. Cada entrada de `LOCAL_ONLY_API_PREFIXES` debe estar en la lista de denegación o haber sido revisada como apta para bypass. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Auditoría de acceso** — para verificar que nada fuera del host está llegando a estas rutas:
|
||||
|
||||
- Abrir el **Inventario de Autorización** en `/dashboard/settings/security`: muestra la lista de prefijos LOCAL_ONLY en vivo, qué prefijos son eludibles, y el conjunto compilado en tiempo de ejecución capaz de generar ("no se puede hacer eludible").
|
||||
|
|
|
|||
|
|
@ -393,6 +393,17 @@ Kui quota-share'i edastus sihib ühendust, mis määrab positiivse `max_concurre
|
|||
|
||||
Iga kombinatsioonistrateegia puhul (kui see on lubatud) ootab päring, mis muidu kinnistaks 429 vastuse LÜHIKESE ajutise ooteaja tõttu, ooteaja lõpuni ja edastatakse uuesti, selle asemel et 429 tagastada — see hõlmab Gemini-klassi TPM/RPM-i aknaid (~60 s `retry-after`) mitme mudeliga kombinatsioonides, näiteks kui kahe mudeliga kombinatsiooni mõlemad sihtmärgid jõuavad mudelipõhise kiiruspiiranguni. Piirangud määrab `comboCooldownWait` (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) jaotises **Seaded → Vastupidavus**. See ei oota kunagi põhjuse `quota_exhausted` (lukustatud keskööni) ega autentimis- või mitteleidmise põhjuste korral.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Päringujärjekorra vastuvõtukontroll (v3.8.49 · probleem #6593)
|
||||
|
|
|
|||
|
|
@ -255,6 +255,8 @@ omniroute tokens scopes # selgitab kolme ulatust
|
|||
`tokens`-käsud nõuavad **administraatori** identimisteavet. Pääsmikke saab hallata ka
|
||||
juhtpaneeli jaotises **Seaded → Juurdepääsupääsmikud** (loomine, tühistamine, ühekordne kopeerimine).
|
||||
|
||||
Tokenit ei saa kunagi luua suuremate õigustega kui selle loojal. Ainult operaator saab luua `admin`-tokeni: juhtpaneeli seansi, serveris endas töötava kohaliku CLI, parooliga `omniroute connect` käsu või keelatud sisselogimisega instantsi kaudu. Masina autentimisandmed (`admin`-pääsutoken või API-võti ulatusega `manage`/`admin`) saavad luua ainult `write`- ja `read`-tokeneid; nendega `--scope admin` taotlemine tagastab `403`.
|
||||
|
||||
---
|
||||
|
||||
## Kodeerimise CLI konfigureerimine kaugkataloogist
|
||||
|
|
|
|||
|
|
@ -536,18 +536,22 @@ sobiv asendus.
|
|||
Need muutujad häälestavad `omniroute` CLI-binaarfaili enda käitumist (mitte
|
||||
ülaltoodud külgkonteineri tuvastamist).
|
||||
|
||||
| Muutuja | Vaikeväärtus | Lähtefail | Kirjeldus |
|
||||
| ------------------------------------- | ------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(süsteem)_ | `bin/cli/i18n.mjs` | Sunnib CLI väljundkeele. BCP-47 lokaat (nt `en`, `pt-BR`). Alistab süsteemi lokaadi keskkonnamuutujad (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(määramata)_ | `bin/cli/runtime/processSupervisor.mjs` | Määrake väärtuseks `1`, et edastada serveri standardväljund ja standardne veaväljund järelevalverežiimis terminali. Samaväärne käsu `omniroute serve` lipuga `--log`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(määramata)_ | `bin/cli/api.mjs` | Masina autentimistõend, mis lisatakse päisena `x-omniroute-cli-token`. Genereeritakse automaatselt ülesandes 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(määramata)_ | `bin/cli/commands/setup-gemini.mjs` | Gemini püsiv kodujuurkataloog; ühekordne käivitus kasutab ajutist isoleeritud kodukataloogi. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Ooteaeg millisekundites enne signaali saanud CLI-alamprotsessi sundlõpetamist. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(määramata)_ | `bin/omniroute.mjs` | Määrake väärtuseks 1 koos selgesõnaliselt määratud muutujaga DATA_DIR, et jätta vaikekasutaja andmekataloogi keskkonnafail vahele. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Ühe katse HTTP-ajalõpp (ms) CLI → serveri päringutele. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maksimaalne aeg (ms), mille jooksul CLI ootab serveri tervisekontrolli lõpp-punkti enne ajalõpuhoiatuse kuvamist. Kasulik aeglaste külmkäivituste korral (nt Windowsis). Määratav ka lipuga `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Määrake väärtuseks `1`, et väljastada CLI-käskude ajal standardsele veaväljundile korduskatsete ja ooteaja järkjärgulise suurendamise diagnostika. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(määramata)_ | `bin/cli/plugins.mjs` | Kohandatud kataloog CLI-pluginate leidmiseks (`omniroute-cmd-*` paketid). Kui väärtus on määramata, kasutatakse vaikimisi `~/.omniroute/plugins/`. Ainult CLI jaoks — see ei jõua kunagi serveripoolse pluginate skannerini, millele osutab `OMNIROUTE_PLUGINS_DIR` (jaotis 2). |
|
||||
| Muutuja | Vaikeväärtus | Lähtefail | Kirjeldus |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(süsteem)_ | `bin/cli/i18n.mjs` | Sunnib CLI väljundkeele. BCP-47 lokaat (nt `en`, `pt-BR`). Alistab süsteemi lokaadi keskkonnamuutujad (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(määramata)_ | `bin/cli/runtime/processSupervisor.mjs` | Määrake väärtuseks `1`, et edastada serveri standardväljund ja standardne veaväljund järelevalverežiimis terminali. Samaväärne käsu `omniroute serve` lipuga `--log`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(määramata)_ | `bin/cli/api.mjs` | Masina autentimistõend, mis lisatakse päisena `x-omniroute-cli-token`. Genereeritakse automaatselt ülesandes 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(määramata)_ | `bin/cli/commands/setup-gemini.mjs` | Gemini püsiv kodujuurkataloog; ühekordne käivitus kasutab ajutist isoleeritud kodukataloogi. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Ooteaeg millisekundites enne signaali saanud CLI-alamprotsessi sundlõpetamist. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(määramata)_ | `bin/omniroute.mjs` | Määrake väärtuseks 1 koos selgesõnaliselt määratud muutujaga DATA_DIR, et jätta vaikekasutaja andmekataloogi keskkonnafail vahele. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Ühe katse HTTP-ajalõpp (ms) CLI → serveri päringutele. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Maksimaalne aeg (ms), mille jooksul CLI ootab serveri tervisekontrolli lõpp-punkti enne ajalõpuhoiatuse kuvamist. Kasulik aeglaste külmkäivituste korral (nt Windowsis). Määratav ka lipuga `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Määrake väärtuseks `1`, et väljastada CLI-käskude ajal standardsele veaväljundile korduskatsete ja ooteaja järkjärgulise suurendamise diagnostika. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(määramata)_ | `bin/cli/plugins.mjs` | Kohandatud kataloog CLI-pluginate leidmiseks (`omniroute-cmd-*` paketid). Kui väärtus on määramata, kasutatakse vaikimisi `~/.omniroute/plugins/`. Ainult CLI jaoks — see ei jõua kunagi serveripoolse pluginate skannerini, millele osutab `OMNIROUTE_PLUGINS_DIR` (jaotis 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1179,50 +1183,51 @@ töölauainstallatsiooni jaoks.
|
|||
|
||||
## 20. Teenusepakkuja-spetsiifilised sätted
|
||||
|
||||
| Muutuja | Vaikeväärtus | Lähtefail | Kirjeldus |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouteri mudelikataloogi vahemälu TTL. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Kaasab kasutajasõbralikud `name` väljad `/v1/models` vastustesse. Keelake klientide puhul, mis eeldavad ainult ID-sid. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Külma tee ooteaja piirang koondatud `GET /v1/models` kataloogi taasloomisel (#12627). Ajalõpu korral tagastatakse viimati toimiv vastus 200, kui see on olemas. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 päeva) | `src/lib/db/models/activeSyncedCatalog.ts` | Aeg, mille möödudes ühenduse sünkroonitud mudelite loend ei ole enam marsruutimisel autoriteetne ning kasutatakse registrit (#12849). Ilma ajatemplita read loetakse aegunuks. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Aeg, mille jooksul aeglast `GET /api/usage/analytics` vastust sama päringustringi jaoks taaskasutatakse (#15629). `0` keelab vahemälu. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Vahemällu salvestatakse ainult analüütikavastused, mille loomine võttis vähemalt nii kaua aega, et väikestes eksemplarides kuvataks alati värskeid andmeid. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana pildiloome tööde maksimaalne ooteaeg. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana tööde oleku kontrollimise sagedus. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly suurendamistöö saatmise korduskatsete eksponentsiaalse viivituse baasaeg. |
|
||||
| `AWS_REGION` | _(määramata)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrocki lõpp-punktide (Kiro, heli) koostamiseks kasutatav regioon. |
|
||||
| `AWS_DEFAULT_REGION` | _(määramata)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Varuväärtus, kui `AWS_REGION` pole määratud. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(määramata)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI konto ID. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(määramata)_ | `open-sse/executors/cloudflare-playground.ts` | Töölaua Chrome'i täisbinaarfaili tee Cloudflare AI Playgroundi täituri jaoks, mida kasutatakse siis, kui headless-režiimi sõrmejäljekontroll blokeerib Playwrightiga kaasasoleva Chromiumi. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Alistab puhverserverikogumi Workersi vahendaja juurutaja kasutatava Cloudflare'i REST API baasaadressi (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Puhverserverikogumi modaalis „Deploy Relay” soovitatav Workeri projekti vaikenimi. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Määrake väärtuseks `false`, et peita Cloudflare Workersi vahendaja suvand vahekaardilt Proxy Pool. |
|
||||
| `CLOUDFLARED_BIN` | automaattuvastus | `src/lib/cloudflaredTunnel.ts` | Kohandatud tee `cloudflared` binaarfailini. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunneli transpordiprotokoll: `http2` (vaikimisi), `quic` või `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(määramata)_ | `src/lib/cloudflaredTunnel.ts` | Kohalikult hallatava cloudflaredi `config.yml`-faili tee (sisaldab `tunnel:`, `credentials-file:`, `ingress:`). Kui see on määratud, käivitab OmniRoute ajutise kiirtunneli asemel käsu `tunnel --config <path> run` (nimeline tunnel). |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(konfiguratsiooni ingressist)_ | `src/lib/cloudflaredTunnel.ts` | Nimetatud tunneli avaliku hostinime alistus (nt `ai.example.com`), mis esitatakse väärtusena `publicUrl`/`apiUrl`. Kui see pole määratud, loetakse see konfiguratsiooni esimese `ingress`-kirje hostinimest. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Puhverserverikogumi relee juurutaja kasutatava Deno Deploy REST API baasaadressi alistus (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Deno Deployi rakenduse vaikenimi, mida soovitatakse puhverserverikogumi modaalaknas „Juuruta relee“. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Määrake väärtuseks `false`, et peita Deno Deployi relee valik vahekaardilt „Puhverserverikogum“. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | Otsingu-API (Perplexity, Brave jne) vastuste vahemälu TTL. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Kuvab eksperimentaalse CC-ga ühilduva teenusepakkuja kasutajaliidese ainult Claude Code'i releede jaoks. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Hostiaadressi alistus, millel manustatud 9routeri eksemplar kuulab. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Pordi alistus, millel manustatud 9routeri eksemplar kuulab. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Manustatud teenuse WebSocketi puhverserveri sidumishost (vaikimisi ainult loopback). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Manustatud teenuse WebSocketi puhverserveri port. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI silla host (pärandintegratsioon). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI silla port. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(tühi)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Andmetasandi varuvõti juhuks, kui säte `cliproxyapi_api_key` puudub. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tühi)_ | `src/lib/services/cliproxyAccountHealth.ts` | Haldusvõti kontode seisundi lugemiseks väliselt hallatavast CLIProxyAPI eksemplarist. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI konfiguratsioonikataloog. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Hostiliides, millel docker-compose avaldab `cliproxyapi` külgkonteineri (#12578). Selle andmeköide sisaldab teenusepakkuja OAuthi/API identimisteavet ja fikseeritud tõmmisel puudub keskkonnapõhine andmetasandi `api-keys`-alustus (kasutatakse ainult haagitud faili `config.yaml`), mistõttu `0.0.0.0` avaldab identimisteavet sisaldava teenuse kogu kohtvõrgule. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Pordi alistus, millel manustatud Muxi (coder/mux) agendiorkestreerimise deemon kuulab (alati 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Pordi alistus, millel manustatud open-wa (WhatsApp Webi automatiseerimise) deemon kuulab (alati 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse sidumis-/ühendushost (vaikimisi ainult tagasisideaadress). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse port. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse sidumis-/ühendushost (vaikimisi ainult tagasisideaadress). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse port. |
|
||||
| `LOCAL_HOSTNAMES` | _(tühi)_ | `open-sse/config/providerRegistry.ts` | Komadega eraldatud täiendavad hostinimed, mida käsitletakse „kohalikena” (Dockeri teenusenimed jne). |
|
||||
| Muutuja | Vaikeväärtus | Lähtefail | Kirjeldus |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouteri mudelikataloogi vahemälu TTL. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Kaasab kasutajasõbralikud `name` väljad `/v1/models` vastustesse. Keelake klientide puhul, mis eeldavad ainult ID-sid. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Külma tee ooteaja piirang koondatud `GET /v1/models` kataloogi taasloomisel (#12627). Ajalõpu korral tagastatakse viimati toimiv vastus 200, kui see on olemas. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 päeva) | `src/lib/db/models/activeSyncedCatalog.ts` | Aeg, mille möödudes ühenduse sünkroonitud mudelite loend ei ole enam marsruutimisel autoriteetne ning kasutatakse registrit (#12849). Ilma ajatemplita read loetakse aegunuks. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Aeg, mille jooksul aeglast `GET /api/usage/analytics` vastust sama päringustringi jaoks taaskasutatakse (#15629). `0` keelab vahemälu. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Vahemällu salvestatakse ainult analüütikavastused, mille loomine võttis vähemalt nii kaua aega, et väikestes eksemplarides kuvataks alati värskeid andmeid. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana pildiloome tööde maksimaalne ooteaeg. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana tööde oleku kontrollimise sagedus. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly suurendamistöö saatmise korduskatsete eksponentsiaalse viivituse baasaeg. |
|
||||
| `AWS_REGION` | _(määramata)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrocki lõpp-punktide (Kiro, heli) koostamiseks kasutatav regioon. |
|
||||
| `AWS_DEFAULT_REGION` | _(määramata)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Varuväärtus, kui `AWS_REGION` pole määratud. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(määramata)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI konto ID. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(määramata)_ | `open-sse/executors/cloudflare-playground.ts` | Töölaua Chrome'i täisbinaarfaili tee Cloudflare AI Playgroundi täituri jaoks, mida kasutatakse siis, kui headless-režiimi sõrmejäljekontroll blokeerib Playwrightiga kaasasoleva Chromiumi. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): vaikimisi asendatakse neutraalsega ainult programmeerimisagendi identiteedimarkeriga süsteemijuhised (Tencenti filter lükkab need tagasi); pikad juhised säilivad. Positiivne täisarv asendab ka sellest märgiarvust pikemad juhised. Määramata väärtus, `0` või mittetäisarv lülitab pikkusepiirangu välja. Iga asendus logib põhjuse (identiteet/pikkus). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Alistab puhverserverikogumi Workersi vahendaja juurutaja kasutatava Cloudflare'i REST API baasaadressi (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Puhverserverikogumi modaalis „Deploy Relay” soovitatav Workeri projekti vaikenimi. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Määrake väärtuseks `false`, et peita Cloudflare Workersi vahendaja suvand vahekaardilt Proxy Pool. |
|
||||
| `CLOUDFLARED_BIN` | automaattuvastus | `src/lib/cloudflaredTunnel.ts` | Kohandatud tee `cloudflared` binaarfailini. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunneli transpordiprotokoll: `http2` (vaikimisi), `quic` või `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(määramata)_ | `src/lib/cloudflaredTunnel.ts` | Kohalikult hallatava cloudflaredi `config.yml`-faili tee (sisaldab `tunnel:`, `credentials-file:`, `ingress:`). Kui see on määratud, käivitab OmniRoute ajutise kiirtunneli asemel käsu `tunnel --config <path> run` (nimeline tunnel). |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(konfiguratsiooni ingressist)_ | `src/lib/cloudflaredTunnel.ts` | Nimetatud tunneli avaliku hostinime alistus (nt `ai.example.com`), mis esitatakse väärtusena `publicUrl`/`apiUrl`. Kui see pole määratud, loetakse see konfiguratsiooni esimese `ingress`-kirje hostinimest. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Puhverserverikogumi relee juurutaja kasutatava Deno Deploy REST API baasaadressi alistus (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Deno Deployi rakenduse vaikenimi, mida soovitatakse puhverserverikogumi modaalaknas „Juuruta relee“. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Määrake väärtuseks `false`, et peita Deno Deployi relee valik vahekaardilt „Puhverserverikogum“. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | Otsingu-API (Perplexity, Brave jne) vastuste vahemälu TTL. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Kuvab eksperimentaalse CC-ga ühilduva teenusepakkuja kasutajaliidese ainult Claude Code'i releede jaoks. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Hostiaadressi alistus, millel manustatud 9routeri eksemplar kuulab. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Pordi alistus, millel manustatud 9routeri eksemplar kuulab. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Manustatud teenuse WebSocketi puhverserveri sidumishost (vaikimisi ainult loopback). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Manustatud teenuse WebSocketi puhverserveri port. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI silla host (pärandintegratsioon). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI silla port. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(tühi)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Andmetasandi varuvõti juhuks, kui säte `cliproxyapi_api_key` puudub. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tühi)_ | `src/lib/services/cliproxyAccountHealth.ts` | Haldusvõti kontode seisundi lugemiseks väliselt hallatavast CLIProxyAPI eksemplarist. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI konfiguratsioonikataloog. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Hostiliides, millel docker-compose avaldab `cliproxyapi` külgkonteineri (#12578). Selle andmeköide sisaldab teenusepakkuja OAuthi/API identimisteavet ja fikseeritud tõmmisel puudub keskkonnapõhine andmetasandi `api-keys`-alustus (kasutatakse ainult haagitud faili `config.yaml`), mistõttu `0.0.0.0` avaldab identimisteavet sisaldava teenuse kogu kohtvõrgule. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Pordi alistus, millel manustatud Muxi (coder/mux) agendiorkestreerimise deemon kuulab (alati 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Pordi alistus, millel manustatud open-wa (WhatsApp Webi automatiseerimise) deemon kuulab (alati 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse sidumis-/ühendushost (vaikimisi ainult tagasisideaadress). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse port. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse sidumis-/ühendushost (vaikimisi ainult tagasisideaadress). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Dario sisseehitatud teenuse port. |
|
||||
| `LOCAL_HOSTNAMES` | _(tühi)_ | `open-sse/config/providerRegistry.ts` | Komadega eraldatud täiendavad hostinimed, mida käsitletakse „kohalikena” (Dockeri teenusenimed jne). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` on mõeldud ainult kolmandate osapoolte vahendusteenustele, mis aktsepteerivad
|
||||
üksnes Claude Code'i kliente. OmniRoute kirjutab päringud ümber, et need vahendusteenused neid aktsepteeriksid.
|
||||
|
|
|
|||
|
|
@ -194,6 +194,8 @@ Auto-Combo mootor valib iga päringu jaoks dünaamiliselt parima teenusepakkuja/
|
|||
| `quality` | 0.03 | Marsruutimissündmuste kvaliteedijälgija tagasisidel põhinev väljundkvaliteedi signaal; vaatlusteta kandidaadid saavad neutraalse väärtuse 0.5 |
|
||||
| `reliability` | 0.00 | Vaadeldud edukate päringute osakaal, `1 - failureRate`, 24 tunni kasutusajaloost vähemalt kümne näidise olemasolul (vastasel juhul reaalajamõõdikud); vaatlusteta kandidaatide väärtuseks loetakse 1.0. Vaikimisi keelatud |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Summa:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, nagu on deklareeritud objektis `DEFAULT_WEIGHTS`; kasutaja seadistatud kaalud normaliseeritakse enne hindamist funktsiooniga `normalizeScoringWeights()` uuesti jaotuseks.
|
||||
|
||||
## Režiimipaketid
|
||||
|
|
|
|||
|
|
@ -56,6 +56,10 @@ Voog:
|
|||
|
||||
Sunnitud režiimid lühistavad **enne** automaatse heuristika käivitumist; `auto` käitumine on bait-identne PR-1 eelse kaitsepiirdega.
|
||||
|
||||
#### API-võtme ulatus (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Kui API-võti piirab ühendusi, kvoodirühmi või mudeleid (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), valivad ümbersuunamine ja kirjeldamine ainult sellele võtmele lubatud mudelid ja ühendused. Kirjeldus läbib alati OmniRoute'i enesesilmuse päisega `x-omniroute-self-loop-key-id`, rakendades ühenduse- ja mudelipoliitikat uuesti. `enforceApiKeyPolicy()` arvestab päist ainult koos silmuse bearer-tokeniga: see saab juurdepääsu üksnes kitsendada ning tundmatu ID lükatakse tagasi. Lubatud nägemismudeli puudumisel jäetakse kirjeldamine vahele ja päring jääb muutmata, nagu keelatud kaitse korral (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Võtmeta päringud ja nende piiranguteta võtmed toimivad nagu varem.
|
||||
|
||||
#### Ülesandeteadlik kirjeldamise viip (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Vaikimisi **tõene**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) lisab **viimase kasutajasõnumi** teksti (lühendatud 500 tähemärgini) baaskirjeldamise viibale, suunates kirjelduse selle poole, mida kasutaja tegelikult küsis (codex-vision-proxy muster) ja paludes nägemismudelil transkribeerida nähtavat teksti. Kui lipp on välja lülitatud — või puudub kasutajatekst — kasutatakse baasviipa muutmata kujul.
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ Kui käitate OmniRoute'i pöördproksi või tunneli taga (nginx, Caddy, Cloudfla
|
|||
- **Ärge "parandage" 403 viga, võltsides kliendi IP-d tagasisideahelaks.** `X-Forwarded-For: 127.0.0.1` seadistamine või proksi, mis kirjutab lähteaadressi tagasisideahelaks, avab uuesti täpselt selle RCE klassi, mille see tase sulgeb. Eksponeerige armatuurlaud/API proksi kaudu — mitte kunagi käivitamisvõimelisi teid.
|
||||
- **Hoidke halduse ulatuse möödapääs minimaalsena.** Ainult `/api/mcp/` on möödapääsetav ja ainult `manage`-ulatusega API võtmega. `SPAWN_CAPABLE_PREFIXES` ei saa kunagi lisada möödapääsude loendisse — zod skeem lükkab need tagasi ja `isLocalOnlyBypassableByManageScope` keelab need käitusajal (sügavuskaitse), mis on see, mida armatuurlaud mõtleb "ei saa möödapääsetavaks teha". Dünaamilise segmendi ja staatilise teega käivitamisvõimelised teed `/api/providers/` all (nt `/login`, `/refresh-cursor`) on kaetud regex-põhise `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` kaaslasega failis `src/shared/constants/spawnCapablePrefixes.ts`, mitte lameda `SPAWN_CAPABLE_PREFIXES` massiiviga — lame massiiv peaks neid hõlmama kogu `/api/providers/` prefiksi ulatuses, laiendades liigselt teepuud, mida kaugarvutite armatuurlauad seaduslikult pakkuja CRUD-i jaoks kasutavad.
|
||||
|
||||
Käitusaegse hetktõmmise laadija eemaldab sellised kirjed ka salvestatud seadistusrealt ning pärand-JSON-import (`/api/settings/import-json`) ei kirjuta kunagi möödapääsuvõtmeid. Iga `LOCAL_ONLY_API_PREFIXES` kirje peab olema keeluloendis või ülevaatuse järel möödapääsuks heaks kiidetud. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Juurdepääsu auditeerimine** — veendumaks, et ükski väljaspool hosti asuv süsteem nendele teedele ei pääse:
|
||||
|
||||
- Avage **Autoriseerimise inventuur** aadressil `/dashboard/settings/security`: see kuvab
|
||||
|
|
|
|||
|
|
@ -449,6 +449,17 @@ Gemini (حدود ۶۰ ثانیه retry-after) را در ترکیبهای چند
|
|||
`budgetMs`) در **تنظیمات → تابآوری** محدود میشود. این سازوکار هرگز برای
|
||||
`quota_exhausted` (قفلشده تا نیمهشب) یا دلایل احراز هویت/یافتنشدن منتظر نمیماند.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. کنترل پذیرش صف درخواست (v3.8.49 · مسئله #6593)
|
||||
|
|
|
|||
|
|
@ -241,6 +241,8 @@ omniroute tokens scopes # توضیح سه scope
|
|||
|
||||
فرمانهای `tokens` به یک اعتبارنامهٔ **admin** نیاز دارند. همچنین میتوانید tokenها را در داشبورد و از مسیر **Settings → Access Tokens** مدیریت کنید (ایجاد، لغو، کپی فقط برای یکبار).
|
||||
|
||||
یک توکن هرگز نمیتواند با اختیاراتی بیشتر از سازندهٔ خود ایجاد شود. فقط گرداننده میتواند توکن `admin` ایجاد کند: از طریق نشست داشبورد، CLI محلی روی خود سرور، `omniroute connect` با گذرواژه یا نمونهای که ورود در آن غیرفعال است. اعتبارنامههای ماشینی (توکن دسترسی `admin` یا کلید API با محدودهٔ `manage`/`admin`) فقط میتوانند توکنهای `write` و `read` ایجاد کنند؛ درخواست `--scope admin` با آنها پاسخ `403` میدهد.
|
||||
|
||||
---
|
||||
|
||||
## پیکربندی یک CLI برنامهنویسی از catalog راهدور
|
||||
|
|
|
|||
|
|
@ -530,18 +530,22 @@ image با `USER node` اجرا میشود، بنابراین `/root` بدون m
|
|||
|
||||
این متغیرها رفتار خود فایل اجرایی CLI به نام `omniroute` را تنظیم میکنند (نه تشخیص sidecar در بالا).
|
||||
|
||||
| متغیر | پیشفرض | فایل منبع | توضیحات |
|
||||
| ------------------------------------- | ------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(سیستم)_ | `bin/cli/i18n.mjs` | زبان خروجی CLI را بهاجبار تعیین میکند. locale با قالب BCP-47 (برای مثال `en` یا `pt-BR`). متغیرهای محیطی locale سیستم (LC_ALL، LC_MESSAGES) را override میکند. |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(تنظیمنشده)_ | `bin/cli/runtime/processSupervisor.mjs` | آن را روی `1` تنظیم کنید تا stdout/stderr سرور در حالت نظارتشده به ترمینال ارسال شود. معادل پرچم `--log` در `omniroute serve` است. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(تنظیمنشده)_ | `bin/cli/api.mjs` | توکن احراز هویت ماشین که بهصورت header با نام `x-omniroute-cli-token` تزریق میشود. در وظیفهٔ 8.12 بهطور خودکار ایجاد میشود. |
|
||||
| `GEMINI_CLI_HOME` | _(تنظیمنشده)_ | `bin/cli/commands/setup-gemini.mjs` | ریشهٔ پایدار home برای Gemini؛ اجرای یکباره از یک home موقت و ایزوله استفاده میکند. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | مهلت بر حسب میلیثانیه پیش از خاتمهٔ اجباری یک فرایند فرزند CLI که سیگنال دریافت کرده است. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(تنظیمنشده)_ | `bin/omniroute.mjs` | همراه با یک DATA_DIR صریح، روی 1 تنظیم کنید تا فایل محیطی پیشفرض دایرکتوری دادهٔ کاربر نادیده گرفته شود. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | timeout هر تلاش HTTP (بر حسب ms) برای درخواستهای CLI → سرور. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | حداکثر زمانی (بر حسب ms) که CLI پیش از چاپ هشدار timeout برای endpoint سلامت سرور منتظر میماند. برای cold startهای کند (برای مثال در Windows) مفید است. همچنین از طریق `--ready-timeout` قابل تنظیم است. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | روی `1` تنظیم کنید تا هنگام اجرای فرمانهای CLI، اطلاعات تشخیصی retry/backoff در stderr چاپ شود. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(تنظیمنشده)_ | `bin/cli/plugins.mjs` | دایرکتوری سفارشی برای کشف افزونههای CLI (packageهای `omniroute-cmd-*`). اگر تنظیم نشده باشد، پیشفرض آن `~/.omniroute/plugins/` است. فقط مخصوص CLI است — هرگز به اسکنر افزونهٔ سمت سرور نمیرسد؛ مسیر آن اسکنر توسط `OMNIROUTE_PLUGINS_DIR` تعیین میشود (بخش 2). |
|
||||
| متغیر | پیشفرض | فایل منبع | توضیحات |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(سیستم)_ | `bin/cli/i18n.mjs` | زبان خروجی CLI را بهاجبار تعیین میکند. locale با قالب BCP-47 (برای مثال `en` یا `pt-BR`). متغیرهای محیطی locale سیستم (LC_ALL، LC_MESSAGES) را override میکند. |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(تنظیمنشده)_ | `bin/cli/runtime/processSupervisor.mjs` | آن را روی `1` تنظیم کنید تا stdout/stderr سرور در حالت نظارتشده به ترمینال ارسال شود. معادل پرچم `--log` در `omniroute serve` است. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(تنظیمنشده)_ | `bin/cli/api.mjs` | توکن احراز هویت ماشین که بهصورت header با نام `x-omniroute-cli-token` تزریق میشود. در وظیفهٔ 8.12 بهطور خودکار ایجاد میشود. |
|
||||
| `GEMINI_CLI_HOME` | _(تنظیمنشده)_ | `bin/cli/commands/setup-gemini.mjs` | ریشهٔ پایدار home برای Gemini؛ اجرای یکباره از یک home موقت و ایزوله استفاده میکند. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | مهلت بر حسب میلیثانیه پیش از خاتمهٔ اجباری یک فرایند فرزند CLI که سیگنال دریافت کرده است. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(تنظیمنشده)_ | `bin/omniroute.mjs` | همراه با یک DATA_DIR صریح، روی 1 تنظیم کنید تا فایل محیطی پیشفرض دایرکتوری دادهٔ کاربر نادیده گرفته شود. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | timeout هر تلاش HTTP (بر حسب ms) برای درخواستهای CLI → سرور. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | حداکثر زمانی (بر حسب ms) که CLI پیش از چاپ هشدار timeout برای endpoint سلامت سرور منتظر میماند. برای cold startهای کند (برای مثال در Windows) مفید است. همچنین از طریق `--ready-timeout` قابل تنظیم است. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | روی `1` تنظیم کنید تا هنگام اجرای فرمانهای CLI، اطلاعات تشخیصی retry/backoff در stderr چاپ شود. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(تنظیمنشده)_ | `bin/cli/plugins.mjs` | دایرکتوری سفارشی برای کشف افزونههای CLI (packageهای `omniroute-cmd-*`). اگر تنظیم نشده باشد، پیشفرض آن `~/.omniroute/plugins/` است. فقط مخصوص CLI است — هرگز به اسکنر افزونهٔ سمت سرور نمیرسد؛ مسیر آن اسکنر توسط `OMNIROUTE_PLUGINS_DIR` تعیین میشود (بخش 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1173,50 +1177,51 @@ STREAM_HISTORY_MAX=10
|
|||
|
||||
## 20. تنظیمات مختص ارائهدهنده
|
||||
|
||||
| متغیر | پیشفرض | فایل منبع | توضیحات |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 ساعت) | `src/lib/catalog/openrouterCatalog.ts` | TTL حافظهٔ نهان کاتالوگ مدل OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | فیلدهای `name` مناسب برای نمایش را در پاسخهای `/v1/models` لحاظ میکند. برای کلاینتهایی که فقط انتظار شناسه دارند، غیرفعال کنید. |
|
||||
| `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` | مدتی که پس از آن، فهرست مدل همگامشدهٔ یک اتصال دیگر برای مسیریابی مرجع محسوب نمیشود و با حالت fail-open به رجیستری رجوع میکند (#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. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(تنظیمنشده)_ | `open-sse/executors/cloudflare-playground.ts` | مسیر کامل فایل اجرایی نسخهٔ دسکتاپ Chrome برای اجراکنندهٔ Cloudflare AI Playground که وقتی بررسی اثرانگشت حالت بدون رابط کاربری، Chromium همراه Playwright را مسدود میکند، استفاده میشود. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | بازنویسی نشانی پایهٔ REST API متعلق به Cloudflare که استقراردهندهٔ رلهٔ Workers در مخزن پروکسی از آن استفاده میکند (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | نام پیشفرض پروژهٔ worker که در پنجرهٔ «استقرار رله» مخزن پروکسی پیشنهاد میشود. |
|
||||
| `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` | مسیر فایل `config.yml` متعلق به cloudflared که بهصورت محلی مدیریت میشود (شامل `tunnel:`، `credentials-file:` و `ingress:`). در صورت تنظیم، OmniRoute بهجای یک تونل سریع موقت، دستور `tunnel --config <path> 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` | بازنویسی نشانی پایه REST API مربوط به Deno Deploy که استقراردهنده رله مجموعه پراکسی از آن استفاده میکند (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | نام پیشفرض برنامه Deno Deploy که در پنجره «استقرار رله» مجموعه پراکسی پیشنهاد میشود. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | برای پنهانکردن گزینه رله Deno Deploy از زبانه مجموعه پراکسی، روی `false` تنظیم کنید. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (۵ دقیقه) | `open-sse/services/searchCache.ts` | TTL ذخیرهسازی پاسخهای API جستوجو (Perplexity، Brave و غیره) در حافظه نهان. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | رابط کاربری آزمایشی ارائهدهنده سازگار با CC را برای رلههای مختص Claude Code نمایش میدهد. |
|
||||
| `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 سرویس تعبیهشده (بهطور پیشفرض فقط رابط loopback). |
|
||||
| `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 ارائهدهنده است و ایمیج سنجاقشده امکان بازنویسی `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 (بهطور پیشفرض فقط loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | پورت سرویس تعبیهشده Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | میزبان اتصال/پیوند سرویس تعبیهشده Dario (بهطور پیشفرض فقط loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | پورت سرویس تعبیهشده Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(خالی)_ | `open-sse/config/providerRegistry.ts` | نامهای میزبان اضافی جداشده با کاما که «محلی» در نظر گرفته میشوند (نام سرویسهای Docker و غیره). |
|
||||
| متغیر | پیشفرض | فایل منبع | توضیحات |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 ساعت) | `src/lib/catalog/openrouterCatalog.ts` | TTL حافظهٔ نهان کاتالوگ مدل OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | فیلدهای `name` مناسب برای نمایش را در پاسخهای `/v1/models` لحاظ میکند. برای کلاینتهایی که فقط انتظار شناسه دارند، غیرفعال کنید. |
|
||||
| `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` | مدتی که پس از آن، فهرست مدل همگامشدهٔ یک اتصال دیگر برای مسیریابی مرجع محسوب نمیشود و با حالت fail-open به رجیستری رجوع میکند (#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. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(تنظیمنشده)_ | `open-sse/executors/cloudflare-playground.ts` | مسیر کامل فایل اجرایی نسخهٔ دسکتاپ Chrome برای اجراکنندهٔ Cloudflare AI Playground که وقتی بررسی اثرانگشت حالت بدون رابط کاربری، Chromium همراه Playwright را مسدود میکند، استفاده میشود. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (چین و بینالمللی): بهطور پیشفرض فقط دستورهای سیستمی دارای نشان هویت عامل برنامهنویسی با دستور خنثی جایگزین میشوند (فیلتر Tencent آنها را رد میکند)؛ دستورهای طولانی حفظ میشوند. عدد صحیح مثبت، دستورهای بلندتر از آن تعداد نویسه را نیز جایگزین میکند. مقدار تنظیمنشده، `0` یا غیرصحیح محدودیت طول را غیرفعال میکند. علت هر جایگزینی (هویت/طول) ثبت میشود. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | بازنویسی نشانی پایهٔ REST API متعلق به Cloudflare که استقراردهندهٔ رلهٔ Workers در مخزن پروکسی از آن استفاده میکند (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | نام پیشفرض پروژهٔ worker که در پنجرهٔ «استقرار رله» مخزن پروکسی پیشنهاد میشود. |
|
||||
| `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` | مسیر فایل `config.yml` متعلق به cloudflared که بهصورت محلی مدیریت میشود (شامل `tunnel:`، `credentials-file:` و `ingress:`). در صورت تنظیم، OmniRoute بهجای یک تونل سریع موقت، دستور `tunnel --config <path> 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` | بازنویسی نشانی پایه REST API مربوط به Deno Deploy که استقراردهنده رله مجموعه پراکسی از آن استفاده میکند (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | نام پیشفرض برنامه Deno Deploy که در پنجره «استقرار رله» مجموعه پراکسی پیشنهاد میشود. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | برای پنهانکردن گزینه رله Deno Deploy از زبانه مجموعه پراکسی، روی `false` تنظیم کنید. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (۵ دقیقه) | `open-sse/services/searchCache.ts` | TTL ذخیرهسازی پاسخهای API جستوجو (Perplexity، Brave و غیره) در حافظه نهان. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | رابط کاربری آزمایشی ارائهدهنده سازگار با CC را برای رلههای مختص Claude Code نمایش میدهد. |
|
||||
| `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 سرویس تعبیهشده (بهطور پیشفرض فقط رابط loopback). |
|
||||
| `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 ارائهدهنده است و ایمیج سنجاقشده امکان بازنویسی `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 (بهطور پیشفرض فقط loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | پورت سرویس تعبیهشده Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | میزبان اتصال/پیوند سرویس تعبیهشده Dario (بهطور پیشفرض فقط loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | پورت سرویس تعبیهشده Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(خالی)_ | `open-sse/config/providerRegistry.ts` | نامهای میزبان اضافی جداشده با کاما که «محلی» در نظر گرفته میشوند (نام سرویسهای Docker و غیره). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` فقط برای رلههای شخص ثالثی است که منحصراً کلاینتهای Claude Code را
|
||||
میپذیرند. OmniRoute درخواستها را بازنویسی میکند تا آن رلهها آنها را بپذیرند. اگر فقط میخواهید از
|
||||
|
|
|
|||
|
|
@ -216,6 +216,8 @@ curl -X POST http://localhost:20128/v1/chat/completions \
|
|||
| `quality` | 0.03 | سیگنال کیفیت خروجی مبتنی بر بازخورد از ردیاب کیفیت رویدادهای مسیریابی؛ نامزدهای فاقد مشاهده، مقدار خنثی 0.5 دریافت میکنند |
|
||||
| `reliability` | 0.00 | سهم موفقیت مشاهدهشده، `1 - failureRate`، بر اساس ۲۴ ساعت سابقهٔ استفاده و مشروط به حداقل ده نمونه (در غیر این صورت، معیارهای بلادرنگ)؛ نامزدهای فاقد مشاهده، مقدار 1.0 میگیرند. بهطور پیشفرض غیرفعال است |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**مجموع:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`، همانگونه که در `DEFAULT_WEIGHTS` اعلام شده است؛ وزنهای پیکربندیشده توسط کاربر، پیش از امتیازدهی و بهوسیلهٔ `normalizeScoringWeights()` مجدداً به یک توزیع نرمالسازی میشوند.
|
||||
|
||||
## بستههای حالت
|
||||
|
|
|
|||
|
|
@ -83,6 +83,10 @@ OmniRoute و ارائهدهندگان بالادستی اعمال میکنند.
|
|||
حالتهای اجباری **قبل** از اجرای اکتشافی خودکار، مدار کوتاه میشوند؛ رفتار
|
||||
`auto` با گاردریل قبل از PR-1 کاملاً یکسان است.
|
||||
|
||||
#### دامنهٔ کلید API (`visionBridgeKeyScope.ts`)
|
||||
|
||||
اگر کلید API اتصالها، مخزنهای سهمیه یا مدلها را محدود کند (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`)، تغییر مسیر و توصیف فقط مدلها و اتصالهای مجاز برای همان کلید را انتخاب میکنند. توصیف همیشه از حلقهٔ داخلی OmniRoute با سرآیند `x-omniroute-self-loop-key-id` میگذرد تا سیاست اتصال و مدل دوباره اعمال شود. `enforceApiKeyPolicy()` سرآیند را فقط همراه توکن bearer همان حلقه میپذیرد؛ سرآیند فقط میتواند دسترسی را محدودتر کند و شناسهٔ ناشناخته رد میشود. اگر مدل بینایی مجازی وجود نداشته باشد، توصیف کنار گذاشته میشود و درخواست مانند حالت حفاظت غیرفعال بدون تغییر عبور میکند (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). درخواستهای بدون کلید و کلیدهای بدون این محدودیتها مانند قبل رفتار میکنند.
|
||||
|
||||
#### پرامپت توصیف آگاه از وظیفه (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
پیشفرض **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) متن
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@
|
|||
- **یک 403 را با جعل IP کلاینت به عنوان لوپبک "اصلاح" نکنید.** تنظیم `X-Forwarded-For: 127.0.0.1`، یا یک پروکسی که آدرس مبدأ را به لوپبک بازنویسی میکند، دقیقاً همان کلاس RCE را که این لایه مسدود میکند، دوباره باز میکند. داشبورد/API را از طریق پروکسی در معرض دید قرار دهید — هرگز مسیرهای قابل ایجاد را نه.
|
||||
- **دور زدن محدوده مدیریت را حداقل نگه دارید.** فقط `/api/mcp/` قابل دور زدن است، و فقط با یک کلید API با محدوده `manage`. `SPAWN_CAPABLE_PREFIXES` هرگز نمیتوانند به لیست دور زدن اضافه شوند — طرحواره zod آنها را رد میکند و `isLocalOnlyBypassableByManageScope` آنها را در زمان اجرا رد میکند (دفاع عمیق)، که منظور داشبورد از "نمیتوان آن را قابل دور زدن کرد" همین است. مسیرهای قابل ایجاد با بخش پویا و مسیر ثابت تحت `/api/providers/` (مانند `/login`, `/refresh-cursor`) توسط `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` مبتنی بر regex در `src/shared/constants/spawnCapablePrefixes.ts` پوشش داده میشوند، نه توسط آرایه مسطح `SPAWN_CAPABLE_PREFIXES` — آرایه مسطح باید کل پیشوند `/api/providers/` را پوشش دهد تا آنها را بگیرد، که باعث گسترش بیش از حد یک درخت مسیر میشود که داشبوردهای راه دور به طور قانونی برای CRUD ارائهدهنده از آن استفاده میکنند.
|
||||
|
||||
بارگذار تصویر وضعیت زمان اجرا این ورودیها را از ردیف تنظیمات ذخیرهشده نیز حذف میکند و واردسازی قدیمی JSON (`/api/settings/import-json`) هرگز کلیدهای دورزدن را نمینویسد. هر ورودی `LOCAL_ONLY_API_PREFIXES` باید در فهرست منع باشد یا پس از بررسی برای دورزدن مجاز شناخته شده باشد. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**ممیزی دسترسی** — برای تأیید اینکه هیچ چیز خارج از هاست به این مسیرها دسترسی ندارد:
|
||||
|
||||
- **فهرست موجودی مجوزها** را در `/dashboard/settings/security` باز کنید: این بخش لیست پیشوندهای فعال LOCAL_ONLY، پیشوندهایی که قابل دور زدن هستند، و مجموعه قابل تولید در زمان کامپایل ("نمیتوان آنها را قابل دور زدن کرد") را نمایش میدهد.
|
||||
|
|
|
|||
|
|
@ -392,6 +392,17 @@ Kun quota-share-välitys kohdistuu yhteyteen, joka määrittää positiivisen `m
|
|||
|
||||
Kun ominaisuus on käytössä, pyyntö, joka minkä tahansa yhdistelmästrategian yhteydessä johtaisi lyhyestä tilapäisestä jäähdytysjaksosta aiheutuvaan lopulliseen 429-virheeseen, odottaa jakson päättymistä ja välitetään uudelleen 429-virheen palauttamisen sijaan — tämä kattaa Gemini-tyyppiset TPM-/RPM-aikaikkunat (noin 60 sekunnin retry-after) usean mallin yhdistelmissä, esimerkiksi kun kahden mallin yhdistelmän molemmat kohteet saavuttavat mallikohtaisen pyyntönopeusrajan. Toimintaa rajoittavat `comboCooldownWait`-asetukset (`enabled`, `maxWaitMs`, `maxAttempts`, `budgetMs`) kohdassa **Asetukset → Häiriönsieto**. Se ei koskaan odota syyn ollessa `quota_exhausted` (lukittu keskiyöhön asti) tai todennukseen / puuttuvaan resurssiin liittyvä.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Pyyntöjonon sisäänpääsyn hallinta (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -261,6 +261,8 @@ omniroute tokens scopes # selitä kolme käyttöaluetta
|
|||
myös hallintapaneelin kohdassa **Asetukset → Käyttöoikeustunnukset** (luo, mitätöi,
|
||||
kopioi kerran).
|
||||
|
||||
Tokenia ei voi koskaan luoda laajemmilla oikeuksilla kuin sen luojalla on. Vain ylläpitäjä voi luoda `admin`-tokenin: hallintapaneelin istunnosta, palvelimella itsellään toimivasta paikallisesta CLI:stä, komennolla `omniroute connect` ja salasanalla tai instanssissa, jossa kirjautuminen on poistettu käytöstä. Konetunnukset (`admin`-käyttötoken tai API-avain, jonka oikeusalue on `manage`/`admin`) voivat luoda vain `write`- ja `read`-tokeneita; niillä tehty `--scope admin` -pyyntö palauttaa `403`.
|
||||
|
||||
---
|
||||
|
||||
## Ohjelmointi-CLI:n määrittäminen etäluettelosta
|
||||
|
|
|
|||
|
|
@ -532,18 +532,22 @@ Näköistiedosto suoritetaan käyttäjänä `USER node`, joten liittämätön `/
|
|||
|
||||
Nämä muuttujat säätävät itse `omniroute`-CLI-binäärin toimintaa (eivät yllä kuvattua sidecar-tunnistusta).
|
||||
|
||||
| Muuttuja | Oletusarvo | Lähdetiedosto | Kuvaus |
|
||||
| ------------------------------------- | ---------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(system)_ | `bin/cli/i18n.mjs` | Pakota CLI-tulosteen kieli. BCP-47-kielitunniste (esim. `en`, `pt-BR`). Ohittaa järjestelmän lokaaliympäristömuuttujat (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(unset)_ | `bin/cli/runtime/processSupervisor.mjs` | Aseta arvoksi `1`, jotta palvelimen stdout/stderr välitetään päätteeseen valvotussa tilassa. Vastaa komentoa `omniroute serve` käytettäessä valitsinta `--log`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(unset)_ | `bin/cli/api.mjs` | Konetodennuksen tunnus, joka lisätään `x-omniroute-cli-token`-otsakkeeseen. Luodaan automaattisesti tehtävässä 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(unset)_ | `bin/cli/commands/setup-gemini.mjs` | Pysyvä Geminin kotihakemiston juuri; kertaluonteinen suoritus käyttää väliaikaista eristettyä kotihakemistoa. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Armonaika millisekunteina ennen signaalin vastaanottaneen CLI-lapsiprosessin pakotettua lopettamista. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(unset)_ | `bin/omniroute.mjs` | Aseta arvoksi 1 yhdessä eksplisiittisen DATA_DIR-arvon kanssa, jotta oletuskäyttäjän datahakemiston ympäristötiedosto ohitetaan. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI:n palvelimelle lähettämien pyyntöjen HTTP-aikakatkaisu yritystä kohden (ms). |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Enimmäisaika (ms), jonka CLI odottaa palvelimen kuntotarkistuspäätepistettä ennen aikakatkaisuvaroituksen tulostamista. Hyödyllinen hitaissa kylmäkäynnistyksissä (esim. Windowsissa). Voidaan asettaa myös valitsimella `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Aseta arvoksi `1`, jotta uudelleenyritysten ja viiveiden diagnostiikka tulostetaan stderr-virtaan CLI-komentojen aikana. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(unset)_ | `bin/cli/plugins.mjs` | Mukautettu hakemisto CLI-liitännäisten etsimiseen (`omniroute-cmd-*`-paketit). Jos arvoa ei ole asetettu, oletusarvo on `~/.omniroute/plugins/`. Vain CLI-käyttöön — se ei koskaan välity palvelinpuolen liitännäisskannerille, jonka sijainnin määrittää `OMNIROUTE_PLUGINS_DIR` (osio 2). |
|
||||
| Muuttuja | Oletusarvo | Lähdetiedosto | Kuvaus |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(system)_ | `bin/cli/i18n.mjs` | Pakota CLI-tulosteen kieli. BCP-47-kielitunniste (esim. `en`, `pt-BR`). Ohittaa järjestelmän lokaaliympäristömuuttujat (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(unset)_ | `bin/cli/runtime/processSupervisor.mjs` | Aseta arvoksi `1`, jotta palvelimen stdout/stderr välitetään päätteeseen valvotussa tilassa. Vastaa komentoa `omniroute serve` käytettäessä valitsinta `--log`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(unset)_ | `bin/cli/api.mjs` | Konetodennuksen tunnus, joka lisätään `x-omniroute-cli-token`-otsakkeeseen. Luodaan automaattisesti tehtävässä 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(unset)_ | `bin/cli/commands/setup-gemini.mjs` | Pysyvä Geminin kotihakemiston juuri; kertaluonteinen suoritus käyttää väliaikaista eristettyä kotihakemistoa. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Armonaika millisekunteina ennen signaalin vastaanottaneen CLI-lapsiprosessin pakotettua lopettamista. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(unset)_ | `bin/omniroute.mjs` | Aseta arvoksi 1 yhdessä eksplisiittisen DATA_DIR-arvon kanssa, jotta oletuskäyttäjän datahakemiston ympäristötiedosto ohitetaan. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | CLI:n palvelimelle lähettämien pyyntöjen HTTP-aikakatkaisu yritystä kohden (ms). |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Enimmäisaika (ms), jonka CLI odottaa palvelimen kuntotarkistuspäätepistettä ennen aikakatkaisuvaroituksen tulostamista. Hyödyllinen hitaissa kylmäkäynnistyksissä (esim. Windowsissa). Voidaan asettaa myös valitsimella `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Aseta arvoksi `1`, jotta uudelleenyritysten ja viiveiden diagnostiikka tulostetaan stderr-virtaan CLI-komentojen aikana. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(unset)_ | `bin/cli/plugins.mjs` | Mukautettu hakemisto CLI-liitännäisten etsimiseen (`omniroute-cmd-*`-paketit). Jos arvoa ei ole asetettu, oletusarvo on `~/.omniroute/plugins/`. Vain CLI-käyttöön — se ei koskaan välity palvelinpuolen liitännäisskannerille, jonka sijainnin määrittää `OMNIROUTE_PLUGINS_DIR` (osio 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1175,50 +1179,51 @@ työpöytäasennusta varten.
|
|||
|
||||
## 20. Palveluntarjoajakohtaiset asetukset
|
||||
|
||||
| Muuttuja | Oletusarvo | Lähdetiedosto | Kuvaus |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter-malliluettelon välimuistin TTL. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Sisällytä käyttäjäystävälliset `name`-kentät `/v1/models`-vastauksiin. Poista käytöstä asiakkaille, jotka odottavat vain tunnuksia. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Yhdistetyn `GET /v1/models` -luettelon uudelleenmuodostuksen odotuksen enimmäiskesto kylmällä polulla (#12627). Aikakatkaisun yhteydessä palautetaan viimeisin kelvollinen 200-vastaus, jos sellainen on olemassa. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 päivää) | `src/lib/db/models/activeSyncedCatalog.ts` | Aika, jonka jälkeen yhteyden synkronoitua malliluetteloa ei enää pidetä ensisijaisena reitityksessä, vaan käytetään rekisteriä (#12849). Rivit, joille ei ole koskaan asetettu aikaleimaa, katsotaan vanhentuneiksi. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Kuinka pitkään hitaan `GET /api/usage/analytics` -pyynnön vastausta käytetään uudelleen samalle kyselymerkkijonolle (#15629). `0` poistaa välimuistin käytöstä. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Välimuistiin tallennetaan vain analytiikkavastaukset, joiden muodostaminen kesti vähintään näin kauan, jotta pienet instanssit saavat aina tuoretta tietoa. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana-kuvanluontitöiden enimmäisodotusaika. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana-töiden kyselytiheys. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly -skaalauksen lähetyksen uudelleenyritysten eksponentiaalisen viiveen perusviive. |
|
||||
| `AWS_REGION` | _(ei asetettu)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrock -päätepisteiden (Kiro, ääni) muodostamiseen käytettävä alue. |
|
||||
| `AWS_DEFAULT_REGION` | _(ei asetettu)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Vara-arvo, kun muuttujaa `AWS_REGION` ei ole asetettu. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(ei asetettu)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI:n tilitunnus. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(ei asetettu)_ | `open-sse/executors/cloudflare-playground.ts` | Työpöytä-Chromen binaaritiedoston täydellinen polku Cloudflare AI Playground -suorittimelle. Sitä käytetään, kun headless-sormenjälkitarkistus estää Playwrightin mukana toimitetun Chromiumin käytön. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Ohita välityspalvelinpoolin Workers-välityspalvelun käyttöönottajan käyttämä Cloudflare REST API:n perusosoite (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Välityspalvelinpoolin "Ota välityspalvelu käyttöön" -modaalissa ehdotettu Worker-projektin oletusnimi. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Aseta arvoksi `false`, jos haluat piilottaa Cloudflare Workers -välityspalveluvaihtoehdon Välityspalvelinpooli-välilehdeltä. |
|
||||
| `CLOUDFLARED_BIN` | automaattinen tunnistus | `src/lib/cloudflaredTunnel.ts` | Mukautettu polku `cloudflared`-binaaritiedostoon. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunnelin siirtoprotokolla: `http2` (oletus), `quic` tai `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(ei asetettu)_ | `src/lib/cloudflaredTunnel.ts` | Paikallisesti hallitun cloudflared-`config.yml`-tiedoston polku (sisältää `tunnel:`, `credentials-file:`, `ingress:`). Kun tämä on asetettu, OmniRoute suorittaa komennon `tunnel --config <path> run` (nimetty tunneli) väliaikaisen pikatunnelin sijaan. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(määrityksen ingress-asetuksesta)_ | `src/lib/cloudflaredTunnel.ts` | Nimetyn tunnelin julkisen isäntänimen ohitus (esim. `ai.example.com`), joka ilmoitetaan arvona `publicUrl`/`apiUrl`. Kun tätä ei ole asetettu, arvo luetaan määrityksen ensimmäisestä `ingress`-isäntänimestä. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Välityspalvelinvarannon välityspalvelun käyttöönotossa käytetyn Deno Deploy REST API -perusosoitteen ohitus (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Deno Deploy -sovelluksen oletusnimi, jota ehdotetaan välityspalvelinvarannon "Ota välityspalvelu käyttöön" -valintaikkunassa. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Piilota Deno Deploy -välityspalveluvaihtoehto Välityspalvelinvaranto-välilehdeltä asettamalla arvoksi `false`. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | Hakurajapinnan (Perplexity, Brave jne.) vastausvälimuistin TTL. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Näytä kokeellinen CC-yhteensopivan palveluntarjoajan käyttöliittymä vain Claude Code -välityspalveluille. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Ohita isäntä, jossa upotettu 9router-instanssi kuuntelee. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Ohita portti, jossa upotettu 9router-instanssi kuuntelee. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Upotetun palvelun WebSocket-välityspalvelun sidontaisäntä (oletusarvoisesti vain takaisinkytkentäosoite). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Upotetun palvelun WebSocket-välityspalvelimen portti. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI-sillan isäntä (vanha integraatio). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI-sillan portti. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(tyhjä)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Datatason vara-avain, kun `cliproxyapi_api_key`-asetusta ei ole. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tyhjä)_ | `src/lib/services/cliproxyAccountHealth.ts` | Hallinta-avain tilin kunnon lukemiseen ulkoisesti hallitusta CLIProxyAPI-instanssista. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI-määrityshakemisto. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Isäntäliittymä, jossa docker-compose julkaisee `cliproxyapi`-sivukontin (#12578). Sen datataltion sisältönä ovat palveluntarjoajan OAuth/API-tunnistetiedot, eikä kiinnitetty näköistiedosto tue ympäristömuuttujiin perustuvaa datatason `api-keys`-ohitusta (vain liitetty `config.yaml`), joten `0.0.0.0` altistaa tunnistetietoja sisältävän palvelun koko lähiverkolle. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Ohita portti, jossa upotettu Mux (coder/mux) -agenttien orkestrointipalvelu kuuntelee (aina 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Ohita portti, jossa upotettu open-wa (WhatsApp Web -automaatio) -palvelu kuuntelee (aina 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun sidonta-/yhteysisäntä (oletuksena vain loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun portti. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun sidonta-/yhteysisäntä (oletuksena vain loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun portti. |
|
||||
| `LOCAL_HOSTNAMES` | _(tyhjä)_ | `open-sse/config/providerRegistry.ts` | Pilkuin erotellut ylimääräiset isäntänimet, joita käsitellään paikallisina (Docker-palveluiden nimet jne.). |
|
||||
| Muuttuja | Oletusarvo | Lähdetiedosto | Kuvaus |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24 h) | `src/lib/catalog/openrouterCatalog.ts` | OpenRouter-malliluettelon välimuistin TTL. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Sisällytä käyttäjäystävälliset `name`-kentät `/v1/models`-vastauksiin. Poista käytöstä asiakkaille, jotka odottavat vain tunnuksia. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8 s) | `src/app/api/v1/models/catalogCache.ts` | Yhdistetyn `GET /v1/models` -luettelon uudelleenmuodostuksen odotuksen enimmäiskesto kylmällä polulla (#12627). Aikakatkaisun yhteydessä palautetaan viimeisin kelvollinen 200-vastaus, jos sellainen on olemassa. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 päivää) | `src/lib/db/models/activeSyncedCatalog.ts` | Aika, jonka jälkeen yhteyden synkronoitua malliluetteloa ei enää pidetä ensisijaisena reitityksessä, vaan käytetään rekisteriä (#12849). Rivit, joille ei ole koskaan asetettu aikaleimaa, katsotaan vanhentuneiksi. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60 s) | `src/lib/usage/analyticsResponseCache.ts` | Kuinka pitkään hitaan `GET /api/usage/analytics` -pyynnön vastausta käytetään uudelleen samalle kyselymerkkijonolle (#15629). `0` poistaa välimuistin käytöstä. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1 s) | `src/lib/usage/analyticsResponseCache.ts` | Välimuistiin tallennetaan vain analytiikkavastaukset, joiden muodostaminen kesti vähintään näin kauan, jotta pienet instanssit saavat aina tuoretta tietoa. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | NanoBanana-kuvanluontitöiden enimmäisodotusaika. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | NanoBanana-töiden kyselytiheys. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Adobe Firefly -skaalauksen lähetyksen uudelleenyritysten eksponentiaalisen viiveen perusviive. |
|
||||
| `AWS_REGION` | _(ei asetettu)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | AWS Bedrock -päätepisteiden (Kiro, ääni) muodostamiseen käytettävä alue. |
|
||||
| `AWS_DEFAULT_REGION` | _(ei asetettu)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Vara-arvo, kun muuttujaa `AWS_REGION` ei ole asetettu. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(ei asetettu)_ | `open-sse/executors/cloudflare-ai.ts` | Cloudflare Workers AI:n tilitunnus. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(ei asetettu)_ | `open-sse/executors/cloudflare-playground.ts` | Työpöytä-Chromen binaaritiedoston täydellinen polku Cloudflare AI Playground -suorittimelle. Sitä käytetään, kun headless-sormenjälkitarkistus estää Playwrightin mukana toimitetun Chromiumin käytön. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): oletuksena vain ohjelmointiagentin identiteettitunnisteen sisältävät järjestelmäohjeet korvataan neutraaleilla (Tencentin suodatin hylkää ne); pitkät ohjeet säilyvät. Positiivinen kokonaisluku korvaa myös tämän merkkimäärän ylittävät ohjeet. Asettamaton arvo, `0` tai muu kuin kokonaisluku poistaa pituusrajan käytöstä. Jokainen korvaus kirjaa syyn (identiteetti/pituus). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Ohita välityspalvelinpoolin Workers-välityspalvelun käyttöönottajan käyttämä Cloudflare REST API:n perusosoite (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Välityspalvelinpoolin "Ota välityspalvelu käyttöön" -modaalissa ehdotettu Worker-projektin oletusnimi. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Aseta arvoksi `false`, jos haluat piilottaa Cloudflare Workers -välityspalveluvaihtoehdon Välityspalvelinpooli-välilehdeltä. |
|
||||
| `CLOUDFLARED_BIN` | automaattinen tunnistus | `src/lib/cloudflaredTunnel.ts` | Mukautettu polku `cloudflared`-binaaritiedostoon. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Tunnelin siirtoprotokolla: `http2` (oletus), `quic` tai `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(ei asetettu)_ | `src/lib/cloudflaredTunnel.ts` | Paikallisesti hallitun cloudflared-`config.yml`-tiedoston polku (sisältää `tunnel:`, `credentials-file:`, `ingress:`). Kun tämä on asetettu, OmniRoute suorittaa komennon `tunnel --config <path> run` (nimetty tunneli) väliaikaisen pikatunnelin sijaan. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(määrityksen ingress-asetuksesta)_ | `src/lib/cloudflaredTunnel.ts` | Nimetyn tunnelin julkisen isäntänimen ohitus (esim. `ai.example.com`), joka ilmoitetaan arvona `publicUrl`/`apiUrl`. Kun tätä ei ole asetettu, arvo luetaan määrityksen ensimmäisestä `ingress`-isäntänimestä. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Välityspalvelinvarannon välityspalvelun käyttöönotossa käytetyn Deno Deploy REST API -perusosoitteen ohitus (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Deno Deploy -sovelluksen oletusnimi, jota ehdotetaan välityspalvelinvarannon "Ota välityspalvelu käyttöön" -valintaikkunassa. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Piilota Deno Deploy -välityspalveluvaihtoehto Välityspalvelinvaranto-välilehdeltä asettamalla arvoksi `false`. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 min) | `open-sse/services/searchCache.ts` | Hakurajapinnan (Perplexity, Brave jne.) vastausvälimuistin TTL. |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Näytä kokeellinen CC-yhteensopivan palveluntarjoajan käyttöliittymä vain Claude Code -välityspalveluille. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Ohita isäntä, jossa upotettu 9router-instanssi kuuntelee. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Ohita portti, jossa upotettu 9router-instanssi kuuntelee. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Upotetun palvelun WebSocket-välityspalvelun sidontaisäntä (oletusarvoisesti vain takaisinkytkentäosoite). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Upotetun palvelun WebSocket-välityspalvelimen portti. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI-sillan isäntä (vanha integraatio). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | CLIProxyAPI-sillan portti. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(tyhjä)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Datatason vara-avain, kun `cliproxyapi_api_key`-asetusta ei ole. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(tyhjä)_ | `src/lib/services/cliproxyAccountHealth.ts` | Hallinta-avain tilin kunnon lukemiseen ulkoisesti hallitusta CLIProxyAPI-instanssista. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | CLIProxyAPI-määrityshakemisto. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Isäntäliittymä, jossa docker-compose julkaisee `cliproxyapi`-sivukontin (#12578). Sen datataltion sisältönä ovat palveluntarjoajan OAuth/API-tunnistetiedot, eikä kiinnitetty näköistiedosto tue ympäristömuuttujiin perustuvaa datatason `api-keys`-ohitusta (vain liitetty `config.yaml`), joten `0.0.0.0` altistaa tunnistetietoja sisältävän palvelun koko lähiverkolle. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Ohita portti, jossa upotettu Mux (coder/mux) -agenttien orkestrointipalvelu kuuntelee (aina 127.0.0.1). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Ohita portti, jossa upotettu open-wa (WhatsApp Web -automaatio) -palvelu kuuntelee (aina 127.0.0.1). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun sidonta-/yhteysisäntä (oletuksena vain loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun portti. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun sidonta-/yhteysisäntä (oletuksena vain loopback). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Darion sisäisen palvelun portti. |
|
||||
| `LOCAL_HOSTNAMES` | _(tyhjä)_ | `open-sse/config/providerRegistry.ts` | Pilkuin erotellut ylimääräiset isäntänimet, joita käsitellään paikallisina (Docker-palveluiden nimet jne.). |
|
||||
|
||||
`ENABLE_CC_COMPATIBLE_PROVIDER` on tarkoitettu vain kolmannen osapuolen välityspalveluille, jotka hyväksyvät yksinomaan Claude Code -asiakasohjelmia.
|
||||
OmniRoute muokkaa pyynnöt uudelleen, jotta kyseiset välityspalvelut hyväksyvät ne. Jos haluat käyttää vain
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ Auto-Combo-moottori valitsee dynaamisesti kullekin pyynnölle parhaan palvelunta
|
|||
| `quality` | 0.03 | Reititystapahtumien laadunseurannan palautepohjainen tulosteen laatusignaali; ehdokkaat, joista ei ole havaintoja, saavat neutraalin arvon 0.5 |
|
||||
| `reliability` | 0.00 | Havaittu onnistumisosuus, `1 - failureRate`, viimeisen 24 tunnin käyttöhistoriasta vähintään kymmenen näytteen kynnyksellä (muutoin reaaliaikaiset mittarit); ehdokkaiden, joista ei ole havaintoja, arvoksi tulkitaan 1.0. Oletusarvoisesti pois käytöstä |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Summa:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, kuten kohdassa `DEFAULT_WEIGHTS` on määritelty; käyttäjän määrittämät painot normalisoidaan uudelleen jakaumaksi funktiolla `normalizeScoringWeights()` ennen pisteytystä.
|
||||
|
||||
## Tilapaketit
|
||||
|
|
|
|||
|
|
@ -85,6 +85,10 @@ Kulku:
|
|||
Pakotetut tilat oikosulkevat **ennen** automaattisen heuristiikan suorittamista; `auto`-käyttäytyminen
|
||||
on tavuittain identtinen PR-1:tä edeltävän suojakaiteen kanssa.
|
||||
|
||||
#### API-avaimen käyttöalue (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Jos API-avain rajoittaa yhteyksiä, kiintiöryhmiä tai malleja (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), uudelleenohjaus ja kuvaus valitsevat vain avaimelle sallitut mallit ja yhteydet. Kuvaus kulkee aina OmniRouten sisäisen silmukan kautta otsakkeella `x-omniroute-self-loop-key-id`, jolloin yhteys- ja mallikäytännöt tarkistetaan uudelleen. `enforceApiKeyPolicy()` hyväksyy otsakkeen vain silmukan bearer-tunnisteen kanssa: se voi ainoastaan supistaa pääsyä, ja tuntematon tunnus hylätään. Jos sallittua näkömallia ei ole, kuvaus ohitetaan ja pyyntö jatkaa muuttumattomana kuten suojauksen ollessa pois käytöstä (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Avaimettomat pyynnöt ja avaimet ilman näitä rajoituksia toimivat kuten ennen.
|
||||
|
||||
#### Tehtävätietoinen kuvauskehotus (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Oletus **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) liittää
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@ Jos käytät OmniRoutea käänteisen välityspalvelimen tai tunnelin (nginx, Cad
|
|||
- **Älä "korjaa" 403-virhettä väärentämällä asiakkaan IP-osoitetta loopbackiksi.** Asetus `X-Forwarded-For: 127.0.0.1` tai välityspalvelin, joka uudelleenkirjoittaa lähdeosoitteen loopbackiksi, avaa uudelleen juuri sen RCE-luokan, jonka tämä taso sulkee. Paljasta hallintapaneeli/API välityspalvelimen kautta — älä koskaan käynnistyskykyisiä reittejä.
|
||||
- **Pidä hallintalaajuuden ohitus minimaalisena.** Vain `/api/mcp/` on ohitettavissa, ja vain `manage`-laajuuden API-avaimella. `SPAWN_CAPABLE_PREFIXES`-listaa ei voi koskaan lisätä ohituslistaan — zod-skeema hylkää ne ja `isLocalOnlyBypassableByManageScope` estää ne ajon aikana (syvyyssuojaus), mikä tarkoittaa hallintapaneelin ilmaisua "ei voida tehdä ohitettavaksi". Dynaamiset segmentit ja staattiset polut käynnistyskykyisillä reiteillä `/api/providers/`-kohdassa (esim. `/login`, `/refresh-cursor`) katetaan regex-pohjaisella `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` -kumppanilla tiedostossa `src/shared/constants/spawnCapablePrefixes.ts`, ei tasaisella `SPAWN_CAPABLE_PREFIXES`-taulukolla — tasaisen taulukon pitäisi kattaa koko `/api/providers/`-etuliite niiden löytämiseksi, mikä laajentaisi liikaa reittipuuta, jota etähallintapaneelit laillisesti käyttävät palveluntarjoajan CRUD-toimintoihin.
|
||||
|
||||
Ajonaikaisen tilannekuvan lataaja poistaa tällaiset merkinnät myös tallennetulta asetusriviltä, eikä vanha JSON-tuonti (`/api/settings/import-json`) koskaan kirjoita ohitusavaimia. Jokaisen `LOCAL_ONLY_API_PREFIXES`-merkinnän on oltava estolistalla tai tarkastettu ohitukseen kelpaavaksi. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Pääsyn auditointi** — varmistaaksesi, ettei mikään isännän ulkopuolinen pääse näille reiteille:
|
||||
|
||||
- Avaa **valtuutusinventaario** osoitteessa `/dashboard/settings/security`: se näyttää reaaliaikaisen LOCAL_ONLY-etuliiteluettelon, mitkä etuliitteet ovat ohitettavissa, ja käännösaikaisen käynnistyskykyisen ("ei voida tehdä ohitettavaksi") joukon.
|
||||
|
|
|
|||
|
|
@ -440,6 +440,17 @@ par modèle. Ce comportement est borné par `comboCooldownWait` (`enabled`, `max
|
|||
`budgetMs`) dans **Paramètres → Résilience**. Il n’attend jamais en cas de `quota_exhausted`
|
||||
(verrouillé jusqu’à minuit) ni pour les motifs d’authentification ou de ressource introuvable.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Contrôle d’admission de la file d’attente des requêtes (v3.8.49 · issue #6593)
|
||||
|
|
|
|||
|
|
@ -257,6 +257,8 @@ omniroute tokens scopes # expliquer les trois portées
|
|||
Les commandes `tokens` nécessitent un identifiant **administrateur**. Vous pouvez également gérer les jetons dans
|
||||
le tableau de bord sous **Paramètres → Jetons d’accès** (création, révocation, copie unique).
|
||||
|
||||
Un jeton ne peut jamais être créé avec plus de privilèges que son créateur. Seul l’opérateur peut créer un jeton `admin` : via la session du tableau de bord, la CLI locale sur le serveur lui-même, `omniroute connect` avec le mot de passe ou une instance où la connexion est désactivée. Les identifiants machine (un jeton d’accès `admin` ou une clé API de portée `manage`/`admin`) ne peuvent créer que des jetons `write` et `read` ; demander `--scope admin` avec ces identifiants renvoie `403`.
|
||||
|
||||
---
|
||||
|
||||
## Configuration d’une CLI de programmation à partir du catalogue distant
|
||||
|
|
|
|||
|
|
@ -538,18 +538,22 @@ surcharge valide.
|
|||
Ces variables ajustent le comportement propre au binaire CLI `omniroute` (et non la détection
|
||||
du sidecar ci-dessus).
|
||||
|
||||
| Variable | Valeur par défaut | Fichier source | Description |
|
||||
| ------------------------------------- | ----------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(system)_ | `bin/cli/i18n.mjs` | Force la langue de sortie de la CLI. Paramètre régional BCP-47 (par ex. `en`, `pt-BR`). Remplace les variables d’environnement régionales du système (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(unset)_ | `bin/cli/runtime/processSupervisor.mjs` | Définissez cette variable sur `1` pour transférer stdout/stderr du serveur vers le terminal en mode supervisé. Équivaut à l’option `--log` de `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(unset)_ | `bin/cli/api.mjs` | Jeton d’authentification machine injecté dans l’en-tête `x-omniroute-cli-token`. Généré automatiquement dans la tâche 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(unset)_ | `bin/cli/commands/setup-gemini.mjs` | Racine persistante du répertoire personnel Gemini ; une exécution ponctuelle utilise un répertoire personnel temporaire isolé. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Délai de grâce en millisecondes avant l’arrêt forcé d’un processus enfant CLI ayant reçu un signal. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(unset)_ | `bin/omniroute.mjs` | Définissez cette variable sur 1 avec un DATA_DIR explicite pour ignorer le fichier d’environnement par défaut du répertoire de données de l’utilisateur. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Délai d’expiration HTTP par tentative (ms) pour les requêtes de la CLI vers le serveur. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Durée maximale (ms) pendant laquelle la CLI attend le point de terminaison d’état du serveur avant d’afficher un avertissement d’expiration. Utile pour les démarrages à froid lents (par ex. Windows). Également configurable via `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Définissez cette variable sur `1` pour afficher les diagnostics de nouvelle tentative et d’attente progressive sur stderr pendant les commandes CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(unset)_ | `bin/cli/plugins.mjs` | Répertoire personnalisé pour la découverte des plugins CLI (packages `omniroute-cmd-*`). Utilise par défaut `~/.omniroute/plugins/` lorsque la variable n’est pas définie. Réservé à la CLI — il n’atteint jamais l’analyseur de plugins côté serveur, qui est configuré via `OMNIROUTE_PLUGINS_DIR` (section 2). |
|
||||
| Variable | Valeur par défaut | Fichier source | Description |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(system)_ | `bin/cli/i18n.mjs` | Force la langue de sortie de la CLI. Paramètre régional BCP-47 (par ex. `en`, `pt-BR`). Remplace les variables d’environnement régionales du système (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(unset)_ | `bin/cli/runtime/processSupervisor.mjs` | Définissez cette variable sur `1` pour transférer stdout/stderr du serveur vers le terminal en mode supervisé. Équivaut à l’option `--log` de `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(unset)_ | `bin/cli/api.mjs` | Jeton d’authentification machine injecté dans l’en-tête `x-omniroute-cli-token`. Généré automatiquement dans la tâche 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(unset)_ | `bin/cli/commands/setup-gemini.mjs` | Racine persistante du répertoire personnel Gemini ; une exécution ponctuelle utilise un répertoire personnel temporaire isolé. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Délai de grâce en millisecondes avant l’arrêt forcé d’un processus enfant CLI ayant reçu un signal. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(unset)_ | `bin/omniroute.mjs` | Définissez cette variable sur 1 avec un DATA_DIR explicite pour ignorer le fichier d’environnement par défaut du répertoire de données de l’utilisateur. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Délai d’expiration HTTP par tentative (ms) pour les requêtes de la CLI vers le serveur. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | Durée maximale (ms) pendant laquelle la CLI attend le point de terminaison d’état du serveur avant d’afficher un avertissement d’expiration. Utile pour les démarrages à froid lents (par ex. Windows). Également configurable via `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Définissez cette variable sur `1` pour afficher les diagnostics de nouvelle tentative et d’attente progressive sur stderr pendant les commandes CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(unset)_ | `bin/cli/plugins.mjs` | Répertoire personnalisé pour la découverte des plugins CLI (packages `omniroute-cmd-*`). Utilise par défaut `~/.omniroute/plugins/` lorsque la variable n’est pas définie. Réservé à la CLI — il n’atteint jamais l’analyseur de plugins côté serveur, qui est configuré via `OMNIROUTE_PLUGINS_DIR` (section 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1196,6 +1200,7 @@ de bureau standard.
|
|||
| `AWS_DEFAULT_REGION` | _(non définie)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Valeur de repli lorsque `AWS_REGION` n’est pas définie. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(non définie)_ | `open-sse/executors/cloudflare-ai.ts` | Identifiant de compte pour Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(non définie)_ | `open-sse/executors/cloudflare-playground.ts` | Chemin complet vers le binaire de la version de bureau de Chrome pour l’exécuteur Cloudflare AI Playground, utilisé lorsque la vérification de l’empreinte sans interface graphique bloque la version de Chromium fournie avec Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International) : par défaut, seules les instructions système portant un marqueur d’identité d’agent de programmation sont remplacées par des instructions neutres (le filtre Tencent les rejette) ; les longues sont conservées. Un entier positif remplace aussi celles dépassant ce nombre de caractères. Une valeur absente, `0` ou non entière désactive la limite. Chaque remplacement journalise sa cause (identité/longueur). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Remplace la base de l’API REST Cloudflare utilisée par le déployeur du relais Workers du pool de proxys (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Nom de projet Worker proposé par défaut dans la fenêtre modale « Deploy Relay » du pool de proxys. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Définissez cette variable sur `false` pour masquer l’option de relais Cloudflare Workers dans l’onglet Proxy Pool. |
|
||||
|
|
|
|||
|
|
@ -213,6 +213,8 @@ L’Auto-Combo Engine sélectionne dynamiquement le meilleur fournisseur/modèle
|
|||
| `quality` | 0.03 | Signal de qualité de sortie fondé sur les retours du dispositif de suivi de la qualité des événements de routage ; les candidats sans observations reçoivent une valeur neutre de 0.5 |
|
||||
| `reliability` | 0.00 | Part de succès observée, `1 - failureRate`, sur 24 h d’historique d’utilisation avec un seuil minimal de dix échantillons (sinon, métriques en temps réel) ; les candidats sans observations sont considérés comme ayant une valeur de 1.0. Désactivé par défaut |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Somme :** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0`, comme déclaré dans `DEFAULT_WEIGHTS` ; les pondérations configurées par l’utilisateur sont renormalisées en une distribution par `normalizeScoringWeights()` avant le calcul du score.
|
||||
|
||||
## Packs de modes
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@ Flux:
|
|||
Les modes forcés court-circuitent **avant** l'exécution de l'heuristique automatique; le comportement
|
||||
`auto` est identique au garde-fou pré-PR-1.
|
||||
|
||||
#### Périmètre de la clé API (`visionBridgeKeyScope.ts`)
|
||||
|
||||
Si la clé API restreint les connexions, les pools de quotas ou les modèles (`allowedConnections`, `allowedQuotas`, `allowedModels` / `blockedModels` / `modelAccessMode: "restricted"` / `disableNonPublicModels`), la redirection et la description ne choisissent que les modèles et connexions autorisés pour cette clé. La description passe toujours par la boucle interne d'OmniRoute avec l'en-tête `x-omniroute-self-loop-key-id`, qui réapplique les politiques de connexion et de modèle. `enforceApiKeyPolicy()` n'accepte cet en-tête qu'avec le jeton bearer de la boucle : il peut uniquement réduire l'accès, et un identifiant inconnu est rejeté. Sans modèle visuel autorisé, la description est ignorée et la requête reste intacte, comme lorsque la protection est désactivée (meta `{ skipped: true, reason: "no_permitted_vision_model" }`). Les requêtes sans clé et les clés sans ces restrictions conservent leur comportement antérieur.
|
||||
|
||||
#### Invite de description sensible à la tâche (`modalityBridgeVisionTaskAware`)
|
||||
|
||||
Par défaut **true**. `composeVisionPrompt()` (`visionBridgeHelpers.ts`) ajoute
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@ Si vous exécutez OmniRoute derrière un proxy inverse ou un tunnel (nginx, Cadd
|
|||
- **Ne "réparez" pas une erreur 403 en falsifiant l'IP client en loopback.** Définir `X-Forwarded-For: 127.0.0.1`, ou un proxy qui réécrit l'adresse source en loopback, rouvre exactement la classe de RCE que ce niveau ferme. Exposez le tableau de bord/API via le proxy — jamais les routes capables de lancer des processus.
|
||||
- **Maintenez le contournement de la portée de gestion minimal.** Seul `/api/mcp/` est contournable, et uniquement avec une clé API de portée `manage`. Les `SPAWN_CAPABLE_PREFIXES` ne peuvent jamais être ajoutés à la liste de contournement — le schéma zod les rejette et `isLocalOnlyBypassableByManageScope` les refuse à l'exécution (défense en profondeur), ce qui est ce que le tableau de bord entend par "ne peut pas être rendu contournable". Les routes capables de lancer des processus à segment dynamique et à chemin statique sous `/api/providers/` (par exemple `/login`, `/refresh-cursor`) sont couvertes par le compagnon basé sur des expressions régulières `SPAWN_CAPABLE_PATTERNS` / `SPAWN_CAPABLE_PATTERN_ANCESTORS` dans `src/shared/constants/spawnCapablePrefixes.ts`, et non par le tableau plat `SPAWN_CAPABLE_PREFIXES` — le tableau plat devrait couvrir l'intégralité du préfixe `/api/providers/` pour les intercepter, élargissant excessivement une arborescence de routes que les tableaux de bord distants utilisent légitimement pour le CRUD des fournisseurs.
|
||||
|
||||
Le chargeur d’instantanés d’exécution supprime aussi ces entrées d’une ligne de paramètres enregistrée, et l’import JSON historique (`/api/settings/import-json`) n’écrit jamais les clés de contournement. Chaque entrée de `LOCAL_ONLY_API_PREFIXES` doit figurer dans la liste de refus ou avoir été examinée et jugée admissible au contournement. (`tests/unit/authz/local-only-bypass-spawn-denylist.test.ts`)
|
||||
|
||||
**Audit d'accès** — pour vérifier que rien d'extérieur à l'hôte n'atteint ces routes :
|
||||
|
||||
- Ouvrez l'**Inventaire des autorisations** sur `/dashboard/settings/security` : il affiche la liste des préfixes LOCAL_ONLY en direct, quels préfixes sont contournables, et l'ensemble des éléments capables d'être générés à la compilation ("ne peuvent pas être rendus contournables").
|
||||
|
|
|
|||
|
|
@ -449,6 +449,17 @@ in aghaidh na samhla. Tá sé teorannaithe ag `comboCooldownWait` (`enabled`, `m
|
|||
`budgetMs`) in **Socruithe → Athléimneacht**. Ní fhanann sé riamh ar `quota_exhausted`
|
||||
(faoi ghlas go meán oíche) ná ar chúiseanna fíordheimhnithe/gan aimsiú.
|
||||
|
||||
```text
|
||||
#16319 · comboCooldownWait · pre-dispatch (attempts = 0)
|
||||
all targets skipped + transient model lockout:
|
||||
enabled ∧ 0 < waitMs ≤ maxWaitMs ∧ attempt < maxAttempts ∧ budgetLeftMs ≥ waitMs
|
||||
→ wait → re-dispatch
|
||||
wait = false → HTTP 429 rate_limit_error
|
||||
retry_after / reset_at ← earliest transient lock expiry
|
||||
quota_exhausted / auth_error / not_found / not_found_local:
|
||||
no transient hint → HTTP 503 ALL_TARGETS_SKIPPED
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Rialú Iontrála do Scuaine Iarratas (v3.8.49 · saincheist #6593)
|
||||
|
|
|
|||
|
|
@ -262,6 +262,8 @@ Teastaíonn dintiúr **riarthóra** ó na horduithe `tokens`. Is féidir leat
|
|||
comharthaí a bhainistiú sa phainéal freisin faoi **Socruithe → Comharthaí
|
||||
Rochtana** (cruthaigh, cúlghair, cóipeáil uair amháin).
|
||||
|
||||
Ní féidir comhartha a chruthú riamh le níos mó pribhléidí ná mar atá ag a chruthaitheoir. Is é an t-oibreoir amháin atá in ann comhartha `admin` a chruthú: trí sheisiún an deais, an CLI áitiúil ar an bhfreastalaí féin, `omniroute connect` leis an bhfocal faire, nó in ásc ina bhfuil logáil isteach díchumasaithe. Ní féidir le dintiúir mheaisín (comhartha rochtana `admin` nó eochair API le scóip `manage`/`admin`) ach comharthaí `write` agus `read` a chruthú; tugann iarratas ar `--scope admin` leo `403` ar ais.
|
||||
|
||||
---
|
||||
|
||||
## CLI códúcháin a chumrú ón gcatalóg chianda
|
||||
|
|
|
|||
|
|
@ -535,18 +535,22 @@ Ritheann an íomhá mar `USER node`, mar sin **ní** sárú bailí é `/root` ne
|
|||
Tiúnann na hathróga seo iompar dhénártha CLI `omniroute` féin (ní an bhrath sidecar
|
||||
thuas).
|
||||
|
||||
| Athróg | Réamhshocrú | Comhad Foinse | Cur Síos |
|
||||
| ------------------------------------- | ------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(córas)_ | `bin/cli/i18n.mjs` | Cuir iallach ar theanga aschuir CLI. Logchaighdeán BCP-47 (m.sh. `en`, `pt-BR`). Sáraíonn sé athróga timpeallachta logchaighdeáin an chórais (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(gan socrú)_ | `bin/cli/runtime/processSupervisor.mjs` | Socraigh go `1` chun stdout/stderr an fhreastalaí a chur ar aghaidh chuig an teirminéal sa mhód maoirsithe. Comhionann leis an mbratach `--log` ar `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(gan socrú)_ | `bin/cli/api.mjs` | Comhartha fíordheimhnithe meaisín a instealltar mar an ceanntásc `x-omniroute-cli-token`. Gintear go huathoibríoch é i dtasc 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(gan socrú)_ | `bin/cli/commands/setup-gemini.mjs` | Fréamh bhaile mharthanach Gemini; úsáideann rith aonuaire baile sealadach leithlisithe. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Tréimhse chairde i milleasoicindí sula maraítear go héigeantach próiseas CLI mac ar seoladh comhartha chuige. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(gan socrú)_ | `bin/omniroute.mjs` | Socraigh go 1 é mar aon le DATA_DIR sainráite chun comhad timpeallachta eolaire sonraí an úsáideora réamhshocraithe a scipeáil. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Teorainn ama HTTP in aghaidh na hiarrachta (ms) d’iarratais CLI → freastalaí. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | An t-uasmhéid ama (ms) a fhanann an CLI le críochphointe sláinte an fhreastalaí sula bpriontálann sé rabhadh maidir le teorainn ama. Úsáideach do thosuithe fuara malla (m.sh. Windows). Is féidir é a shocrú freisin trí `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Socraigh go `1` chun diagnóisic atrialach/cúlaithe a phriontáil chuig stderr le linn orduithe CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(gan socrú)_ | `bin/cli/plugins.mjs` | Eolaire saincheaptha chun breiseáin CLI a aimsiú (pacáistí `omniroute-cmd-*`). Is é `~/.omniroute/plugins/` an réamhshocrú nuair nach mbíonn sé socraithe. Don CLI amháin — ní shroicheann sé scanóir breiseán thaobh an fhreastalaí riamh, atá dírithe ag `OMNIROUTE_PLUGINS_DIR` (rannán 2). |
|
||||
| Athróg | Réamhshocrú | Comhad Foinse | Cur Síos |
|
||||
| ------------------------------------- | --------------------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OMNIROUTE_LANG` | _(córas)_ | `bin/cli/i18n.mjs` | Cuir iallach ar theanga aschuir CLI. Logchaighdeán BCP-47 (m.sh. `en`, `pt-BR`). Sáraíonn sé athróga timpeallachta logchaighdeáin an chórais (LC_ALL, LC_MESSAGES). |
|
||||
| `OMNIROUTE_SHOW_LOG` | _(gan socrú)_ | `bin/cli/runtime/processSupervisor.mjs` | Socraigh go `1` chun stdout/stderr an fhreastalaí a chur ar aghaidh chuig an teirminéal sa mhód maoirsithe. Comhionann leis an mbratach `--log` ar `omniroute serve`. |
|
||||
| `OMNIROUTE_CLI_TOKEN` | _(gan socrú)_ | `bin/cli/api.mjs` | Comhartha fíordheimhnithe meaisín a instealltar mar an ceanntásc `x-omniroute-cli-token`. Gintear go huathoibríoch é i dtasc 8.12. |
|
||||
| `GEMINI_CLI_HOME` | _(gan socrú)_ | `bin/cli/commands/setup-gemini.mjs` | Fréamh bhaile mharthanach Gemini; úsáideann rith aonuaire baile sealadach leithlisithe. |
|
||||
| `OMNIROUTE_CHILD_SIGNAL_TIMEOUT_MS` | `5000` | `bin/cli/commands/run.mjs` | Tréimhse chairde i milleasoicindí sula maraítear go héigeantach próiseas CLI mac ar seoladh comhartha chuige. |
|
||||
| `OMNIROUTE_CLI_SKIP_DEFAULT_DATA_ENV` | _(gan socrú)_ | `bin/omniroute.mjs` | Socraigh go 1 é mar aon le DATA_DIR sainráite chun comhad timpeallachta eolaire sonraí an úsáideora réamhshocraithe a scipeáil. |
|
||||
| `OMNIROUTE_HTTP_TIMEOUT_MS` | `30000` | `bin/cli/api.mjs` | Teorainn ama HTTP in aghaidh na hiarrachta (ms) d’iarratais CLI → freastalaí. |
|
||||
| `OMNIROUTE_READY_TIMEOUT_MS` | `60000` | `bin/cli/utils/pid.mjs` | An t-uasmhéid ama (ms) a fhanann an CLI le críochphointe sláinte an fhreastalaí sula bpriontálann sé rabhadh maidir le teorainn ama. Úsáideach do thosuithe fuara malla (m.sh. Windows). Is féidir é a shocrú freisin trí `--ready-timeout`. |
|
||||
| `OMNIROUTE_VERBOSE` | `0` | `bin/cli/api.mjs` | Socraigh go `1` chun diagnóisic atrialach/cúlaithe a phriontáil chuig stderr le linn orduithe CLI. |
|
||||
| `OMNIROUTE_PLUGIN_PATH` | _(gan socrú)_ | `bin/cli/plugins.mjs` | Eolaire saincheaptha chun breiseáin CLI a aimsiú (pacáistí `omniroute-cmd-*`). Is é `~/.omniroute/plugins/` an réamhshocrú nuair nach mbíonn sé socraithe. Don CLI amháin — ní shroicheann sé scanóir breiseán thaobh an fhreastalaí riamh, atá dírithe ag `OMNIROUTE_PLUGINS_DIR` (rannán 2). |
|
||||
| `OMNIROUTE_NO_UPDATE_NOTIFIER` | `∅` | `bin/omniroute.mjs` | `value ≠ "" ⇒ 🔕`; `CI`, `--quiet / -q`, `--output ∈ {json,jsonl,csv} ⇒ 🔕` |
|
||||
| `OMNIROUTE_DOCTOR_LIVENESS_URL` | `↳ /api/health/degradation` | `bin/cli/commands/doctor.mjs` | `options.livenessUrl` → `process.env.OMNIROUTE_DOCTOR_LIVENESS_URL` → `<dashboard>/api/health/degradation` |
|
||||
| `OMNIROUTE_PROVIDER_CATALOG_PATH` | `src/shared/constants/providers/` | `bin/cli/provider-catalog.mjs` | `options.catalogPath` → `process.env.OMNIROUTE_PROVIDER_CATALOG_PATH`; `isAbsolute(configuredPath) ? configuredPath : resolve(rootDir, configuredPath)`; `src/shared/constants/providers/ → src/shared/constants/providers.ts` |
|
||||
| `OMNIROUTE_PROVIDER_TEST_MODEL` | `config.model` | `bin/cli/provider-test.mjs` | `input.defaultModel` → `process.env[providerEnvName(input.provider, "MODEL")]` → `process.env.OMNIROUTE_PROVIDER_TEST_MODEL` → `config.model` |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1176,50 +1180,51 @@ deisce.
|
|||
|
||||
## 20. Socruithe a Bhaineann go Sonrach le Soláthraithe
|
||||
|
||||
| Athróg | Réamhshocrú | Comhad Foinse | Cur Síos |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24u) | `src/lib/catalog/openrouterCatalog.ts` | TTL thaisce chatalóg samhlacha OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Cuir réimsí `name` atá oiriúnach lena dtaispeáint san áireamh i bhfreagraí `/v1/models`. Díchumasaigh é do chliaint nach mbíonn ag súil ach le haitheantóirí. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8s) | `src/app/api/v1/models/catalogCache.ts` | Teorainn feithimh ar an gcosán fuar d’atógáil chomhtháite chatalóg `GET /v1/models` (#12627). Ar dhul thar am, seirbheáiltear an freagra maith deireanach 200 nuair atá ceann ann. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 lá) | `src/lib/db/models/activeSyncedCatalog.ts` | An aois ar dá héis nach mbíonn liosta sioncronaithe samhlacha naisc údarásach a thuilleadh don ródú agus a n-aistrítear chuig an gclárlann i gcás teipe (#12849). Meastar sraitheanna nár stampáladh riamh le ham a bheith sean. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60s) | `src/lib/usage/analyticsResponseCache.ts` | An fad a athúsáidtear freagra mall `GET /api/usage/analytics` don teaghrán iarratais céanna (#15629). Díchumasaíonn `0` an taisce. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1s) | `src/lib/usage/analyticsResponseCache.ts` | Ní chuirtear i dtaisce ach freagraí anailísíochta ar thóg sé an méid ama seo ar a laghad iad a chruthú, ionas go bhfeiceann áscanna beaga sonraí úra i gcónaí. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Uastré feithimh do thascanna giniúna íomhánna NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Minicíocht vótaíochta thascanna NanoBanana. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Bunmhoill don chúlú easpónantúil agus iarracht á déanamh arís uas-scálú Adobe Firefly a chur isteach. |
|
||||
| `AWS_REGION` | _(gan socrú)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Réigiún a úsáidtear chun críochphointí AWS Bedrock a chruthú (Kiro, fuaim). |
|
||||
| `AWS_DEFAULT_REGION` | _(gan socrú)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Cúltaca nuair nach bhfuil `AWS_REGION` socraithe. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(gan socrú)_ | `open-sse/executors/cloudflare-ai.ts` | Aitheantas cuntais le haghaidh Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(gan socrú)_ | `open-sse/executors/cloudflare-playground.ts` | Conair iomlán dhénártha Chrome deisce do sheiceadóir Cloudflare AI Playground, a úsáidtear nuair a chuireann an tseiceáil méarloirg gan chomhéadan bac ar Chromium cuachta Playwright. |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Sáraigh bonn Cloudflare REST API a úsáideann imlonnóir athsheachadáin Workers na linne seachfhreastalaí (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Ainm réamhshocraithe an tionscadail oibrí a mholtar sa mhódal "Imlonnaigh Athsheachadán" don linn seachfhreastalaí. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Socraigh mar `false` é chun rogha athsheachadáin Cloudflare Workers a cheilt ón gcluaisín Linn Seachfhreastalaí. |
|
||||
| `CLOUDFLARED_BIN` | uathbhrath | `src/lib/cloudflaredTunnel.ts` | Conair shaincheaptha chuig dénártha `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Prótacal iompair tolláin: `http2` (réamhshocrú), `quic`, nó `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(gan socrú)_ | `src/lib/cloudflaredTunnel.ts` | Conair chuig `config.yml` cloudflared a bhainistítear go háitiúil (ina bhfuil `tunnel:`, `credentials-file:`, `ingress:`). Nuair a shocraítear é, ritheann OmniRoute `tunnel --config <path> run` (tollán ainmnithe) in ionad tolláin thapa shealadaigh. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(ón ingress cumraíochta)_ | `src/lib/cloudflaredTunnel.ts` | Sárú d'óstainm poiblí an tolláin ainmnithe (m.sh. `ai.example.com`), arna thuairisciú mar `publicUrl`/`apiUrl`. Nuair nach socraítear é, léitear é ón gcéad óstainm `ingress` sa chumraíocht. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Sáraigh bunús REST API Deno Deploy a úsáideann imlonnóir athsheachadáin an chomhthiomsaithe seachfhreastalaithe (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Ainm réamhshocraithe na haipe Deno Deploy a mholtar i módúil "Deploy Relay" an chomhthiomsaithe seachfhreastalaithe. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Socraigh mar `false` é chun rogha athsheachadáin Deno Deploy a chur i bhfolach ó chluaisín an Chomhthiomsaithe Seachfhreastalaithe. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 nóim) | `open-sse/services/searchCache.ts` | TTL do thaisceadh freagraí API cuardaigh (Perplexity, Brave, srl.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Taispeáin comhéadan turgnamhach an tsoláthraí atá comhoiriúnach le CC le haghaidh athsheachadán Claude Code amháin. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Sáraigh an t-óstach ar a n-éisteann an ásc leabaithe 9router. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Sáraigh an port ar a n-éisteann an ásc leabaithe 9router. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Óstach ceangail do sheachfhreastalaí WebSocket na seirbhíse leabaithe (aischúrsáil amháin de réir réamhshocraithe). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port do fhreastalaí seachfhreastalaí WebSocket na seirbhíse leabaithe. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Óstach droichid CLIProxyAPI (comhtháthú oidhreachta). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port droichid CLIProxyAPI. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(folamh)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Eochair chúltaca an phlána sonraí nuair atá an socrú `cliproxyapi_api_key` in easnamh. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(folamh)_ | `src/lib/services/cliproxyAccountHealth.ts` | Eochair bhainistíochta le haghaidh léamha sláinte cuntais ó ásc CLIProxyAPI a bhainistítear go seachtrach. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Comhadlann chumraíochta CLIProxyAPI. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Comhéadan ósta ar a bhfoilsíonn docker-compose an taobhcharr `cliproxyapi` (#12578). Coinníonn a imleabhar sonraí dintiúir OAuth/API an tsoláthraí agus níl aon sárú `api-keys` don phlána sonraí bunaithe ar an timpeallacht san íomhá phionnáilte (níl ann ach `config.yaml` gléasta), mar sin nochtann `0.0.0.0` seirbhís ina bhfuil dintiúir don LAN iomlán. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Sáraigh an port ar a n-éisteann deamhan leabaithe Mux (coder/mux) le haghaidh ceolfhoireannú gníomhairí (`127.0.0.1` i gcónaí). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Sáraigh an port ar a n-éisteann deamhan leabaithe open-wa (uathoibriú WhatsApp Web) (`127.0.0.1` i gcónaí). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Óstach ceangail/naisc na seirbhíse leabaithe Dario (aischúrsáil amháin de réir réamhshocraithe). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port na seirbhíse leabaithe Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Óstach ceangail/naisc na seirbhíse leabaithe Dario (aischúrsáil amháin de réir réamhshocraithe). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port na seirbhíse leabaithe Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(folamh)_ | `open-sse/config/providerRegistry.ts` | Óstainmneacha breise, scartha le camóga, a láimhseáiltear mar óstainmneacha "áitiúla" (ainmneacha seirbhíse Docker, etc.). |
|
||||
| Athróg | Réamhshocrú | Comhad Foinse | Cur Síos |
|
||||
| ---------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `OPENROUTER_CATALOG_TTL_MS` | `86400000` (24u) | `src/lib/catalog/openrouterCatalog.ts` | TTL thaisce chatalóg samhlacha OpenRouter. |
|
||||
| `MODEL_CATALOG_INCLUDE_NAMES` | `true` | `src/shared/constants/featureFlagDefinitions.ts` | Cuir réimsí `name` atá oiriúnach lena dtaispeáint san áireamh i bhfreagraí `/v1/models`. Díchumasaigh é do chliaint nach mbíonn ag súil ach le haitheantóirí. |
|
||||
| `CATALOG_BUILD_TIMEOUT_MS` | `8000` (8s) | `src/app/api/v1/models/catalogCache.ts` | Teorainn feithimh ar an gcosán fuar d’atógáil chomhtháite chatalóg `GET /v1/models` (#12627). Ar dhul thar am, seirbheáiltear an freagra maith deireanach 200 nuair atá ceann ann. |
|
||||
| `OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS` | `2592000000` (30 lá) | `src/lib/db/models/activeSyncedCatalog.ts` | An aois ar dá héis nach mbíonn liosta sioncronaithe samhlacha naisc údarásach a thuilleadh don ródú agus a n-aistrítear chuig an gclárlann i gcás teipe (#12849). Meastar sraitheanna nár stampáladh riamh le ham a bheith sean. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_TTL_MS` | `60000` (60s) | `src/lib/usage/analyticsResponseCache.ts` | An fad a athúsáidtear freagra mall `GET /api/usage/analytics` don teaghrán iarratais céanna (#15629). Díchumasaíonn `0` an taisce. |
|
||||
| `OMNIROUTE_ANALYTICS_CACHE_MIN_COMPUTE_MS` | `1000` (1s) | `src/lib/usage/analyticsResponseCache.ts` | Ní chuirtear i dtaisce ach freagraí anailísíochta ar thóg sé an méid ama seo ar a laghad iad a chruthú, ionas go bhfeiceann áscanna beaga sonraí úra i gcónaí. |
|
||||
| `NANOBANANA_POLL_TIMEOUT_MS` | `120000` | `open-sse/handlers/imageGeneration.ts` | Uastré feithimh do thascanna giniúna íomhánna NanoBanana. |
|
||||
| `NANOBANANA_POLL_INTERVAL_MS` | `2500` | `open-sse/handlers/imageGeneration.ts` | Minicíocht vótaíochta thascanna NanoBanana. |
|
||||
| `ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS` | `8000` | `open-sse/services/adobeFireflyUpscale.ts` | Bunmhoill don chúlú easpónantúil agus iarracht á déanamh arís uas-scálú Adobe Firefly a chur isteach. |
|
||||
| `AWS_REGION` | _(gan socrú)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Réigiún a úsáidtear chun críochphointí AWS Bedrock a chruthú (Kiro, fuaim). |
|
||||
| `AWS_DEFAULT_REGION` | _(gan socrú)_ | `src/lib/providers/validation.ts`, `open-sse/handlers/audioSpeech.ts` | Cúltaca nuair nach bhfuil `AWS_REGION` socraithe. |
|
||||
| `CLOUDFLARE_ACCOUNT_ID` | _(gan socrú)_ | `open-sse/executors/cloudflare-ai.ts` | Aitheantas cuntais le haghaidh Cloudflare Workers AI. |
|
||||
| `CLOUDFLARE_PLAYGROUND_CHROME_PATH` | _(gan socrú)_ | `open-sse/executors/cloudflare-playground.ts` | Conair iomlán dhénártha Chrome deisce do sheiceadóir Cloudflare AI Playground, a úsáidtear nuair a chuireann an tseiceáil méarloirg gan chomhéadan bac ar Chromium cuachta Playwright. |
|
||||
| `CODEBUDDY_SYSTEM_PROMPT_MAX_LEN` | ∅ (∞) | `open-sse/executors/codebuddy/shared.ts` | CodeBuddy (CN/International): de réir réamhshocraithe, ní chuirtear treoracha neodracha in ionad ach treoracha córais a bhfuil marcóir aitheantais gníomhaire códaithe iontu (diúltaíonn scagaire Tencent dóibh); coimeádtar treoracha fada. Le slánuimhir dheimhneach, cuirtear treoracha neodracha in ionad treoracha níos faide ná an líon sin carachtar freisin. Díchumasaíonn luach gan socrú, `0` nó luach nach slánuimhir é an teorainn. Logáiltear cúis gach athsholáthair (aitheantas/fad). |
|
||||
| `CLOUDFLARE_API_BASE` | `https://api.cloudflare.com/client/v4` | `src/app/api/settings/proxy/cloudflare-deploy/route.ts` | Sáraigh bonn Cloudflare REST API a úsáideann imlonnóir athsheachadáin Workers na linne seachfhreastalaí (#4640 / 9router#1360). |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT` | `omniroute-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx` | Ainm réamhshocraithe an tionscadail oibrí a mholtar sa mhódal "Imlonnaigh Athsheachadán" don linn seachfhreastalaí. |
|
||||
| `NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Socraigh mar `false` é chun rogha athsheachadáin Cloudflare Workers a cheilt ón gcluaisín Linn Seachfhreastalaí. |
|
||||
| `CLOUDFLARED_BIN` | uathbhrath | `src/lib/cloudflaredTunnel.ts` | Conair shaincheaptha chuig dénártha `cloudflared`. |
|
||||
| `CLOUDFLARED_PROTOCOL` | `http2` | `src/lib/cloudflaredTunnel.ts` | Prótacal iompair tolláin: `http2` (réamhshocrú), `quic`, nó `auto`. |
|
||||
| `CLOUDFLARED_CONFIG` | _(gan socrú)_ | `src/lib/cloudflaredTunnel.ts` | Conair chuig `config.yml` cloudflared a bhainistítear go háitiúil (ina bhfuil `tunnel:`, `credentials-file:`, `ingress:`). Nuair a shocraítear é, ritheann OmniRoute `tunnel --config <path> run` (tollán ainmnithe) in ionad tolláin thapa shealadaigh. |
|
||||
| `CLOUDFLARED_HOSTNAME` | _(ón ingress cumraíochta)_ | `src/lib/cloudflaredTunnel.ts` | Sárú d'óstainm poiblí an tolláin ainmnithe (m.sh. `ai.example.com`), arna thuairisciú mar `publicUrl`/`apiUrl`. Nuair nach socraítear é, léitear é ón gcéad óstainm `ingress` sa chumraíocht. |
|
||||
| `DENO_DEPLOY_API_BASE` | `https://api.deno.com/v2` | `src/app/api/settings/proxy/deno-deploy/route.ts` | Sáraigh bunús REST API Deno Deploy a úsáideann imlonnóir athsheachadáin an chomhthiomsaithe seachfhreastalaithe (#4643 / 9router#1437). |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT` | `omniroute-deno-relay` | `src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx` | Ainm réamhshocraithe na haipe Deno Deploy a mholtar i módúil "Deploy Relay" an chomhthiomsaithe seachfhreastalaithe. |
|
||||
| `NEXT_PUBLIC_DENO_RELAY_ENABLED` | `true` | `src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx` | Socraigh mar `false` é chun rogha athsheachadáin Deno Deploy a chur i bhfolach ó chluaisín an Chomhthiomsaithe Seachfhreastalaithe. |
|
||||
| `SEARCH_CACHE_TTL_MS` | `300000` (5 nóim) | `open-sse/services/searchCache.ts` | TTL do thaisceadh freagraí API cuardaigh (Perplexity, Brave, srl.). |
|
||||
| `ENABLE_CC_COMPATIBLE_PROVIDER` | `false` | `src/shared/utils/featureFlags.ts` | Taispeáin comhéadan turgnamhach an tsoláthraí atá comhoiriúnach le CC le haghaidh athsheachadán Claude Code amháin. |
|
||||
| `NINEROUTER_HOST` | `127.0.0.1` | `open-sse/executors/ninerouter.ts` | Sáraigh an t-óstach ar a n-éisteann an ásc leabaithe 9router. |
|
||||
| `NINEROUTER_PORT` | `20130` | `open-sse/executors/ninerouter.ts` | Sáraigh an port ar a n-éisteann an ásc leabaithe 9router. |
|
||||
| `EMBED_WS_PROXY_HOST` | `127.0.0.1` | `src/lib/services/embedWsProxy.ts` | Óstach ceangail do sheachfhreastalaí WebSocket na seirbhíse leabaithe (aischúrsáil amháin de réir réamhshocraithe). |
|
||||
| `EMBED_WS_PROXY_PORT` | `20131` | `src/lib/services/embedWsProxy.ts` | Port do fhreastalaí seachfhreastalaí WebSocket na seirbhíse leabaithe. |
|
||||
| `CLIPROXYAPI_HOST` | `127.0.0.1` | `open-sse/executors/cliproxyapi.ts` | Óstach droichid CLIProxyAPI (comhtháthú oidhreachta). |
|
||||
| `CLIPROXYAPI_PORT` | `5544` | `open-sse/executors/cliproxyapi.ts` | Port droichid CLIProxyAPI. |
|
||||
| `CLIPROXYAPI_API_KEY` | _(folamh)_ | `open-sse/handlers/chatCore/cliproxyapiCredentials.ts` | Eochair chúltaca an phlána sonraí nuair atá an socrú `cliproxyapi_api_key` in easnamh. |
|
||||
| `CLIPROXYAPI_MANAGEMENT_KEY` | _(folamh)_ | `src/lib/services/cliproxyAccountHealth.ts` | Eochair bhainistíochta le haghaidh léamha sláinte cuntais ó ásc CLIProxyAPI a bhainistítear go seachtrach. |
|
||||
| `CLIPROXYAPI_CONFIG_DIR` | `~/.cli-proxy-api` | `src/lib/versionManager/processManager.ts` | Comhadlann chumraíochta CLIProxyAPI. |
|
||||
| `CLIPROXY_BIND_HOST` | `127.0.0.1` | `docker-compose.yml` | Comhéadan ósta ar a bhfoilsíonn docker-compose an taobhcharr `cliproxyapi` (#12578). Coinníonn a imleabhar sonraí dintiúir OAuth/API an tsoláthraí agus níl aon sárú `api-keys` don phlána sonraí bunaithe ar an timpeallacht san íomhá phionnáilte (níl ann ach `config.yaml` gléasta), mar sin nochtann `0.0.0.0` seirbhís ina bhfuil dintiúir don LAN iomlán. |
|
||||
| `MUX_SERVICE_PORT` | `8322` | `src/lib/services/bootstrap.ts` | Sáraigh an port ar a n-éisteann deamhan leabaithe Mux (coder/mux) le haghaidh ceolfhoireannú gníomhairí (`127.0.0.1` i gcónaí). |
|
||||
| `OPENWA_SERVICE_PORT` | `8323` | `src/lib/services/bootstrap.ts` | Sáraigh an port ar a n-éisteann deamhan leabaithe open-wa (uathoibriú WhatsApp Web) (`127.0.0.1` i gcónaí). |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Óstach ceangail/naisc na seirbhíse leabaithe Dario (aischúrsáil amháin de réir réamhshocraithe). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port na seirbhíse leabaithe Dario. |
|
||||
| `DARIO_HOST` | `127.0.0.1` | `open-sse/executors/dario.ts` | Óstach ceangail/naisc na seirbhíse leabaithe Dario (aischúrsáil amháin de réir réamhshocraithe). |
|
||||
| `DARIO_PORT` | `3456` | `open-sse/executors/dario.ts` | Port na seirbhíse leabaithe Dario. |
|
||||
| `LOCAL_HOSTNAMES` | _(folamh)_ | `open-sse/config/providerRegistry.ts` | Óstainmneacha breise, scartha le camóga, a láimhseáiltear mar óstainmneacha "áitiúla" (ainmneacha seirbhíse Docker, etc.). |
|
||||
|
||||
Is le haghaidh athsheachadáin tríú páirtí a ghlacann le cliaint Claude Code go heisiach amháin atá `ENABLE_CC_COMPATIBLE_PROVIDER`.
|
||||
Athscríobhann OmniRoute iarratais ionas go nglacfaidh na hathsheachadáin sin leo. Mura mian leat ach
|
||||
|
|
|
|||
|
|
@ -195,6 +195,8 @@ Roghnaíonn an tInneall Uath-Theaglama go dinimiciúil an soláthraí/samhail is
|
|||
| `quality` | 0.03 | Comhartha cáilíochta aschuir atá bunaithe ar aiseolas ó rianaire cáilíochta na dteagmhas ródúcháin; faigheann iarrthóirí nach bhfuil aon bhreathnuithe acu luach neodrach 0.5 |
|
||||
| `reliability` | 0.00 | Cion na n-éachtaí breathnaithe, `1 - failureRate`, ó 24 uair an chloig de stair úsáide faoi réir íosmhéid deich sampla (méadrachtaí fíor-ama murach sin); léitear 1.0 d'iarrthóirí gan bhreathnuithe. Díchumasaithe de réir réamhshocraithe |
|
||||
|
||||
`quality` (`open-sse/services/routing/quality.ts`): `cold restart → ∅`; `observations = 0 → score 0.5`.
|
||||
|
||||
**Suim:** `0.1429 + 0.1605 + 0.1429 + 0.1143 + 0.0762 + (7 × 0.0476) + 0.00 + 0.00 + 0.03 + 0.00 = 1.0` mar a dhearbhaítear in `DEFAULT_WEIGHTS`; déanann `normalizeScoringWeights()` ualuithe atá cumraithe ag an úsáideoir a athnormalú ina ndáileadh roimh an scóráil.
|
||||
|
||||
## Pacáistí Móid
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue