# CLI Tools — OmniRoute (Oʻzbekcha) 🌐 **Languages:** 🇺🇸 [English](../../../../reference/CLI-TOOLS.md) · 🇪🇹 [am](../../../am/docs/reference/CLI-TOOLS.md) · 🇸🇦 [ar](../../../ar/docs/reference/CLI-TOOLS.md) · 🇦🇿 [az](../../../az/docs/reference/CLI-TOOLS.md) · 🇧🇬 [bg](../../../bg/docs/reference/CLI-TOOLS.md) · 🇧🇩 [bn](../../../bn/docs/reference/CLI-TOOLS.md) · 🇧🇦 [bs](../../../bs/docs/reference/CLI-TOOLS.md) · 🇨🇿 [cs](../../../cs/docs/reference/CLI-TOOLS.md) · 🇩🇰 [da](../../../da/docs/reference/CLI-TOOLS.md) · 🇩🇪 [de](../../../de/docs/reference/CLI-TOOLS.md) · 🇬🇷 [el](../../../el/docs/reference/CLI-TOOLS.md) · 🇪🇸 [es](../../../es/docs/reference/CLI-TOOLS.md) · 🇪🇪 [et](../../../et/docs/reference/CLI-TOOLS.md) · 🇮🇷 [fa](../../../fa/docs/reference/CLI-TOOLS.md) · 🇫🇮 [fi](../../../fi/docs/reference/CLI-TOOLS.md) · 🇫🇷 [fr](../../../fr/docs/reference/CLI-TOOLS.md) · 🇮🇪 [ga](../../../ga/docs/reference/CLI-TOOLS.md) · 🇮🇳 [gu](../../../gu/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ha](../../../ha/docs/reference/CLI-TOOLS.md) · 🇮🇱 [he](../../../he/docs/reference/CLI-TOOLS.md) · 🇮🇳 [hi](../../../hi/docs/reference/CLI-TOOLS.md) · 🇭🇷 [hr](../../../hr/docs/reference/CLI-TOOLS.md) · 🇭🇺 [hu](../../../hu/docs/reference/CLI-TOOLS.md) · 🇦🇲 [hy](../../../hy/docs/reference/CLI-TOOLS.md) · 🇮🇩 [id](../../../id/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ig](../../../ig/docs/reference/CLI-TOOLS.md) · 🇮🇹 [it](../../../it/docs/reference/CLI-TOOLS.md) · 🇯🇵 [ja](../../../ja/docs/reference/CLI-TOOLS.md) · 🇬🇪 [ka](../../../ka/docs/reference/CLI-TOOLS.md) · 🇰🇭 [km](../../../km/docs/reference/CLI-TOOLS.md) · 🇮🇳 [kn](../../../kn/docs/reference/CLI-TOOLS.md) · 🇰🇷 [ko](../../../ko/docs/reference/CLI-TOOLS.md) · 🇱🇹 [lt](../../../lt/docs/reference/CLI-TOOLS.md) · 🇱🇻 [lv](../../../lv/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ml](../../../ml/docs/reference/CLI-TOOLS.md) · 🇮🇳 [mr](../../../mr/docs/reference/CLI-TOOLS.md) · 🇲🇾 [ms](../../../ms/docs/reference/CLI-TOOLS.md) · 🇲🇹 [mt](../../../mt/docs/reference/CLI-TOOLS.md) · 🇲🇲 [my](../../../my/docs/reference/CLI-TOOLS.md) · 🇳🇵 [ne](../../../ne/docs/reference/CLI-TOOLS.md) · 🇳🇱 [nl](../../../nl/docs/reference/CLI-TOOLS.md) · 🇳🇴 [no](../../../no/docs/reference/CLI-TOOLS.md) · 🇮🇳 [or](../../../or/docs/reference/CLI-TOOLS.md) · 🇮🇳 [pa](../../../pa/docs/reference/CLI-TOOLS.md) · 🇵🇭 [phi](../../../phi/docs/reference/CLI-TOOLS.md) · 🇵🇱 [pl](../../../pl/docs/reference/CLI-TOOLS.md) · 🇵🇹 [pt](../../../pt/docs/reference/CLI-TOOLS.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/CLI-TOOLS.md) · 🇷🇴 [ro](../../../ro/docs/reference/CLI-TOOLS.md) · 🇷🇺 [ru](../../../ru/docs/reference/CLI-TOOLS.md) · 🇱🇰 [si](../../../si/docs/reference/CLI-TOOLS.md) · 🇸🇰 [sk](../../../sk/docs/reference/CLI-TOOLS.md) · 🇸🇮 [sl](../../../sl/docs/reference/CLI-TOOLS.md) · 🇷🇸 [sr](../../../sr/docs/reference/CLI-TOOLS.md) · 🇸🇪 [sv](../../../sv/docs/reference/CLI-TOOLS.md) · 🇰🇪 [sw](../../../sw/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ta](../../../ta/docs/reference/CLI-TOOLS.md) · 🇮🇳 [te](../../../te/docs/reference/CLI-TOOLS.md) · 🇹🇭 [th](../../../th/docs/reference/CLI-TOOLS.md) · 🇹🇷 [tr](../../../tr/docs/reference/CLI-TOOLS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/CLI-TOOLS.md) · 🇵🇰 [ur](../../../ur/docs/reference/CLI-TOOLS.md) · 🇻🇳 [vi](../../../vi/docs/reference/CLI-TOOLS.md) · 🇳🇬 [yo](../../../yo/docs/reference/CLI-TOOLS.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/CLI-TOOLS.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/CLI-TOOLS.md) --- Oxirgi yangilanish: 2026-08-23 OmniRoute uchta alohida boshqaruv paneli sahifasida joylashgan CLI vositalarining uchta toifasi bilan integratsiyalashadi: | Sahifa | Yoʻnalish | Tushuncha | Soni | | -------------- | ----------------------- | ------------------------------------------------------------------------------------------ | ---------------- | | **CLI Code's** | `/dashboard/cli-code` | OmniRoute’ga yoʻnaltiriladigan dasturlash vositalari (Mijoz → CLI → OmniRoute → Provayder) | 26 | | **CLI Agents** | `/dashboard/cli-agents` | OmniRoute’ga yoʻnaltiriladigan avtonom agentlar (xuddi shu oqim, kengroq qamrov) | 10 | | **ACP Agents** | `/dashboard/acp-agents` | OmniRoute stdio/ACP orqali backend sifatida ishga tushiradigan CLI’lar (teskari oqim) | reyestrga qarang | Eski yoʻnalishlar 308 orqali qayta yoʻnaltiriladi: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Bu qanday ishlaydi ``` CLI Code's / CLI Agents (isteʼmol oqimi): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (barchasi OmniRoute’ga yoʻnaltiriladi) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute soʻrovni tegishli provayderga yoʻnaltiradi) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... ACP Agents (teskari ishga tushirish oqimi): Mijoz soʻrovi → OmniRoute → stdio/ACP orqali CLI’ni ishga tushiradi → javob ``` **Afzalliklari:** - Barcha vositalarni boshqarish uchun bitta API kaliti - Boshqaruv panelida barcha CLI’lar boʻyicha xarajatlarni kuzatish - Har bir vositani qayta sozlamasdan modelni almashtirish - Mahalliy muhitda va masofaviy serverlarda ishlaydi (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## `setup-*` bilan avtomatik sozlash Har bir vosita konfiguratsiyasini qoʻlda yozishingiz shart emas. OmniRoute qoʻllab-quvvatlanadigan har bir CLI uchun ishlayotgan OmniRouteʼdan (mahalliy yoki masofaviy) **jonli** modellar katalogini oʻqiydigan va kompyuteringizda vositaning oʻz konfiguratsiyasini yozadigan `setup-*` buyrugʻini taqdim etadi: ```bash omniroute setup-codex omniroute setup-claude omniroute setup-opencode omniroute setup-cline omniroute setup-kilo omniroute setup-continue omniroute setup-cursor omniroute setup-roo omniroute setup-crush omniroute setup-goose omniroute setup-qwen omniroute setup-aider omniroute setup-5dive omniroute setup-zed ``` Har biri `--remote --api-key ` (mahalliy vositani masofaviy OmniRoute bilan ishlashga sozlash), `--dry-run` (yozmasdan oldindan koʻrish) va `--port` parametrlarini qabul qiladi. Modellarni avtomatik aniqlash imkoniyati boʻlmagan vositalar (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) `--model ` parametrini (interaktiv boʻlmagan ishga tushirishlar uchun esa `--yes` parametrini ham) qabul qiladi. `setup-5dive` — `$HOME` ichiga yozmaydigan yagona retsept: u flot xostida root egasiga tegishli autentifikatsiya profilini yozish orqali 5dive agentlar flotini sozlaydi, shuning uchun `sudo` orqali oʻzini qayta ishga tushiradi va oʻzining masofaviy rejimiga ega emas. Toʻgʻri muhit oʻzgaruvchilari kiritilgan holda va umuman hech qanday konfiguratsiya yozmasdan CLIʼni ishga tushirish uchun umumiy `omniroute run ` ishga tushirgichidan foydalaning (claude, codex, aider, goose, opencode, qwen, gemini — nishonlar va taxalluslar `bin/cli/cli-manifest.mjs` faylidan olinadi); har bir vosita uchun eski `omniroute launch` (Claude Code) va `omniroute launch-codex` (Codex) ishga tushirgichlari hamon mavjud. Gemini CLI faqat ishga tushirish uchun moʻljallangan: u `omniroute run` nishoni, ammo `setup-*`/`configure` retseptiga ega emas. > **Toʻliq maʼlumotnoma:** asosiy jadval — har bir buyruq nimalarni yozishi, barcha parametrlar, > mahalliy va masofaviy rejimlar oʻrtasidagi farqlar hamda qaysi vositalar `/v1` suffiksini talab qilishi — > **[CLI integratsiyalari](../guides/CLI-INTEGRATIONS.md)** sahifasida joylashgan. ### Bularni konteyner ichida ishga tushirish OmniRoute konteyneri ichida bajarilgan `setup-*` buyrugʻi konteynerning oʻz uy katalogiga yozadi; bu katalogni xostdagi hech bir CLI oʻqimaydi va u konteyner bilan birga yoʻqoladi. OmniRoute buni aniqlaydi va yozish oʻrniga koʻrsatmalar bilan `2` kodi orqali chiqadi. Davom etishning qoʻllab-quvvatlanadigan ikki usuli mavjud — CLIʼni xostga oʻrnatib, konteynerga `omniroute connect` orqali ulanish yoki konfiguratsiya kataloglarini bind-mount qilib, `CLI_CONFIG_HOME` qiymatini belgilash (composeʼning `host` profili). Har bir `setup-*` buyrugʻi, shuningdek `omniroute configure` va `omniroute config set`, agar aynan konteynerning oʻz CLIʼlarini sozlamoqchi boʻlsangiz, `--allow-container-write` parametrini qabul qiladi; server uchun `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` xuddi shu vazifani bajaradi. [Docker qoʻllanmasi → Xost CLI vositalarini sozlash](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker) boʻlimiga qarang. Boshqaruv panelining **qoʻllash endpointi** (`POST /api/cli-tools/apply`) ham xuddi shu himoyani taʼminlaydi: konteyner ichida xostdan bind-mount qilinmagan nishonga yozish soʻrovi xavfsiz xato matni, `containerEphemeralTarget: true` va — xost retseptiga ega vositalar (claude, codex, opencode, cline, kilo, continue) uchun — xostda ishga tushiriladigan `hostSetupCommand` (masalan, `omniroute setup-opencode`) bilan **`422`** javobini qaytaradi; hech narsa yozilmaydi. `dryRun: true` konteyner rejimida ishlashda davom etadi va diskka tegmasdan maxfiy qismlari yashirilgan oldindan koʻrish natijasi hamda nishon yoʻlini qaytaradi. Oldindan koʻrish tarkibi nusxalash yoki import qilish uchun moʻljallangan, hisob maʼlumotlarini oʻz ichiga oluvchi konfiguratsiya emas. Dastlabki vosita/asosiy URL/API kaliti/model kirish maʼlumotlari bilan xostda qoʻllang yoki koʻrsatilgan xost tomondagi sozlash buyrugʻidan foydalaning. Oldindan koʻrish sarlavhasi va soʻrov shartnomasi uchun [CLI konfiguratsiyasi xavfsizligi](../security/CLI-CONFIGURATION.md) sahifasiga qarang. Bu xatti-harakat ataylab joriy qilingan va `tests/unit/api/cli-tools/apply-container-guard.test.ts` orqali regressiyadan himoyalangan — himoyani olib tashlash orqali 422 xatosini hech qachon «tuzatmang». --- ## Haqiqatning asosiy manbasi Yagona katalog `src/shared/constants/cliTools.ts` faylida `CLI_TOOLS: Record` sifatida joylashgan. Har bir yozuv quyidagi maydonlarga ega (`src/shared/schemas/cliCatalog.ts` faylida belgilangan): | Maydon | Tur | Tavsif | | ----------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------- | | `category` | `"code" \| "agent"` | Vosita qaysi sahifada ko‘rsatilishi | | `vendor` | `string` | Vositaning kelib chiqishi ("Anthropic", "OSS (P. Gauthier)") | | `acpSpawnable` | `boolean` | ACP Agent sifatida ham foydalanish mumkin (belgi ko‘rsatiladi) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Maxsus endpoint’ni qo‘llab-quvvatlash darajasi. `"none"` = MITM navbati | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Konfiguratsiya mexanizmi | | `id`, `name`, `color`, `description`, `docsUrl` | standart | Asosiy ko‘rsatish maydonlari | `baseUrlSupport: "none"` bo‘lgan yozuvlar boshqaruv paneli sahifalarida **ko‘rsatilmaydi** — ular 11-reja uchun MITM navbatida ro‘yxatdan o‘tkazilgan (`_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` fayliga qarang). ### Imkoniyat darajalari (kataloglangan × aniqlanadigan × sozlanadigan × ishga tushiriladigan) Kataloglangan vositalarning hammasini ham aniqlash, sozlash yoki ishga tushirish mumkin emas. Har bir daraja uni e’lon qiluvchi bitta manbaga ega va nomuvofiqlik testi ularning o‘zaro mosligini saqlaydi: | Daraja | Ma’nosi | E’lon qilingan joy | | ------------------------ | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | **Kataloglangan** | Boshqaruv paneli katalogida ko‘rsatiladi (nomi, yetkazib beruvchisi, hujjatlari, konfiguratsiya turi) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Aniqlanadigan** | Binar fayl/konfiguratsiyani aniqlash, holat tekshiruvlari, konfiguratsiya yo‘llari | `src/shared/services/cliRuntime.ts` (`CLI_TOOLS` bajarilish muhiti katalogi) | | **Sozlanadigan** | `omniroute configure ` tomonidan qo‘llab-quvvatlanadi (sozlash retsepti mavjud) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Ishga tushiriladigan** | `omniroute run ` tomonidan qo‘llab-quvvatlanadi (muhit/argumentlarni kiritish belgilangan) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs` CLI buyruq interfeyslari uchun asosiy bajariladigan manifestdir: `run`, `configure` va qobiq uchun avtomatik to‘ldirish generatorlarining barchasi maqsadlar ro‘yxatini, taxalluslarni aniqlashni (masalan, `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) va `--model` bayrog‘ining ulanishini undan oladi. Nomuvofiqlikdan himoyalovchi `tests/unit/cli/cli-manifest-drift.test.ts` testi manifest, bajarilish muhiti katalogi, UI katalogi va har bir iste’molchi interfeysi sinxron holatda qolishini tekshiradi — boshqa interfeyslarga qo‘shilmasdan faqat bitta interfeysga qo‘shilgan maqsad sezdirmasdan nomuvofiqlashib ketish o‘rniga testlar to‘plamining muvaffaqiyatsiz tugashiga olib keladi. --- ## 1. CLI Code katalogi (27 ta vosita) `/dashboard/cli-code` sahifasida ko‘rsatiladigan barcha vositalar. `baseUrlSupport: none` qiymatiga ega vositalar maxsus asosiy URL o‘rniga MITM yoki qo‘llanma orqali sozlanadi: | id | nomi | yetkazib beruvchi | baseUrlSupport | configType | acpSpawnable | | ------------ | ----------------------- | ------------------- | -------------- | -------------- | ------------ | | claude | Claude Code | Anthropic | full | env | true | | codex | OpenAI Codex CLI | OpenAI | full | custom | true | | zcode | ZCode (GLM Coding Plan) | Z.ai | none | custom | false | | cline | Cline | OSS (ex-Claude Dev) | full | custom | true | | kilo | Kilo Code | Kilo-Org | full | custom | false | | roo | Roo Code | Roo (OSS) | full | guide | false | | continue | Continue | continue.dev | full | guide | false | | aider | Aider | OSS (P. Gauthier) | full | guide | true | | forge | ForgeCode | Antinomy HQ | full | custom | true | | jcode | jcode | 1jehuang (OSS) | full | custom | false | | deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | full | custom | false | | codewhale | CodeWhale | Hmbown (OSS) | full | custom | false | | opencode | OpenCode | Anomaly (ex-SST) | full | guide | true | | droid | Factory Droid | Factory AI | partial | guide | false | | copilot | GitHub Copilot CLI | GitHub/MS | full | custom | false | | cursor-cli | Cursor CLI | Anysphere | partial | guide | true | | smelt | Smelt | leonardcser (OSS) | full | custom | false | | pi | Pi (pi-coding-agent) | M. Zechner (OSS) | full | custom | false | | grok-build | Grok Build | xAI | full | custom | false | | crush | Crush | OSS (Charm) | full | custom | false | | qwen | Qwen Code | Alibaba | full | guide | true | | zed | Zed | Zed Industries | full | guide | false | | cursor | Cursor | Anysphere | none | guide | false | | antigravity | Antigravity | Google | none | mitm | false | | hermes | Hermes | Nous Research | none | guide | false | | kiro | Kiro AI | Amazon | none | mitm | false | | custom | Custom CLI | — | full | custom-builder | false | `baseUrlSupport: "partial"` qiymatiga ega vositalarning boshqaruv panelidagi kartasida «⚠ Qisman Base URL» nishoni ko‘rsatiladi. --- ## 2. CLI agentlari katalogi (10 ta vosita) `/dashboard/cli-agents` sahifasida ko‘rinadigan avtonom agentlar: | id | nomi | yetkazib beruvchi | baseUrlSupport | acpSpawnable | | ------------ | ---------------- | ------------------------ | -------------- | ------------ | | hermes-agent | Hermes Agent | Nous Research | full | false | | openclaw | OpenClaw | OSS (P. Steinberger) | full | true | | goose | Goose | Block / Linux Foundation | full | true | | interpreter | Open Interpreter | OSS | full | true | | warp | Warp AI | Warp Inc. | partial | true | | agent-deck | Agent Deck | asheshgoplani (OSS) | full | false | | omp | Oh My Pi | OSS | full | true | | letta | Letta CLI | Letta | full | false | | prime-agent | Prime Agent | Prime Intellect (OSS) | full | false | | 5dive | 5dive | OSS (5dive-ai) | full | false | --- ## 3. ACP agentlari (/dashboard/acp-agents) Bu sahifa (avval `/dashboard/agents` deb nomlangan) OmniRoute stdio/ACP protokoli orqali backend ijro mexanizmlari sifatida **ishga tushira oladigan** CLI’larni ko‘rsatadi. Katalog `src/lib/acp/registry.ts` faylida alohida yuritiladi va `CLI_TOOLS` bilan **bir xil emas**. --- ## 4. MITM bajarilmagan ishlar ro‘yxati (boshqaruv panelida ko‘rsatilmaydi) Quyidagi CLI’lar maxsus bazaviy URL’ni tabiiy ravishda qo‘llab-quvvatlamaydi va CLI Code yoki CLI Agents sahifalarida **ro‘yxatga kiritilmagan**. Ular 11-rejadagi MITM vositachilik mexanizmi uchun nomzodlardir: | CLI | Sabab | | ------------------- | ----------------------------------------------------------------------------- | | windsurf | BYOK faqat ayrim Claude modellari hamda korporativ URL/token bilan cheklangan | | amp | Yopiq ekotizim (Sourcegraph) | | amazon-q / kiro-cli | AWS SSO autentifikatsiyasi, maxsus URL mavjud emas | | cowork | Anthropic Desktop, sozlanadigan endpoint mavjud emas | To‘liq o‘zaro havolalar uchun `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` fayliga qarang. --- ## 5. Ommaviy aniqlash API’si Barcha vositalarni aniqlash natijalari yagona endpoint orqali jamlanadi: **`GET /api/cli-tools/all-statuses`** - Autentifikatsiya: `requireCliToolsAuth(request)` (boshqa `/api/cli-tools/` marshrutlari bilan bir xil) - Qaytaradi: `Record` (tur: `src/shared/types/cliBatchStatus.ts`) - Strategiya: barcha vositalar uchun `Promise.all`, har bir vosita uchun 5 soniyalik vaqt cheklovi - Kesh: konfiguratsiya faylining `mtime` qiymati bo‘yicha indekslangan xotiradagi LRU. `mtime` o‘zgarganda kesh bekor qilinadi. Server qayta ishga tushirilganda tozalanadi. Har bir vosita uchun javob tuzilishi: ```ts interface ToolBatchStatus { detection: { installed: boolean; runnable: boolean; version?: string; command?: string; commandPath?: string; reason?: string; }; config: { status: "configured" | "not_configured" | "not_installed" | "unknown" | "other"; endpoint?: string | null; lastConfiguredAt?: string | null; }; error?: string; // zararsizlantirilgan, stek treyslari mavjud emas } ``` --- ## 6. Yangi vositalar uchun sozlamalar ishlov beruvchilari `configType: "custom"` ga ega yangi vositalar uchun maxsus sozlamalar API marshrutlari mavjud: | Marshrut | Vosita | | ------------------------------------------- | -------------------------------------------------------------------- | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (--base-url bayrogʻi) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL, eski usul) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL, asosiy + eski `~/.deepseek` sinxronlash) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Pi dasturlash agenti | | `POST /api/cli-tools/grok-build-settings` | Grok Build (~/.grok/config.toml, `[model.omniroute]`) | | `POST /api/cli-tools/qwen-settings` | Qwen Code (`~/.qwen/settings.json` + maxsus `.env` kaliti) | Barcha marshrutlar xato javoblari uchun `sanitizeErrorMessage()` dan foydalanadi (Qatʼiy qoida #12). --- ## 7. Boshqaruv paneli sahifalari arxitekturasi ### CLI Code (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — server komponenti - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — mijoz tomoni toʻri - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — vosita tafsilotlari sahifasi - `src/app/(dashboard)/dashboard/cli-code/components/` — 12 ta ixtisoslashtirilgan vosita kartasi + `ToolDetailClient.tsx` ### CLI agentlari (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — server komponenti - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — mijoz tomoni toʻri - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — `ToolDetailClient` dan qayta foydalanadi ### ACP agentlari (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — server komponenti (`agents/` dan koʻchirilgan) ### Umumiy UI komponentlari (`src/shared/components/cli/`) | Fayl | Maqsad | | ----------------------- | ---------------------------------------------------------- | | `CliToolCard.tsx` | Aqlli holat kartasi (aniqlash + konfiguratsiya + endpoint) | | `CliConceptCard.tsx` | Har bir sahifa uchun tushuntirish kartasi | | `CliComparisonCard.tsx` | CLI turlari boʻyicha uch ustunli taqqoslash | | `BaseUrlSelect.tsx` | Endpoint ochiluvchi roʻyxati (Mahalliy/Bulutli/Maxsus) | | `ApiKeySelect.tsx` | API kaliti tanlagichi | | `ManualConfigModal.tsx` | Nusxalash mumkin boʻlgan konfiguratsiya parchasi modali | ### Umumiy hook (`src/shared/hooks/cli/`) | Fayl | Maqsad | | ------------------------- | ----------------------------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | `/api/cli-tools/all-statuses` dan maʼlumot oladi, yuklanish/yangilash holatini boshqaradi | --- ## 8. i18n 14 F9 rejasida yangi nomlar fazolari qoʻshildi: | Nomlar fazosi | Maqsadi | | ------------- | ------------------------------------------------------------------------------------------------- | | `cliCommon` | Umumiy satrlar (karta yorliqlari, tushuncha/taqqoslash matnlari, tafsilotlar sahifasi yorliqlari) | | `cliCode` | CLI Code sahifasi satrlari | | `cliAgents` | CLI Agents sahifasi satrlari | | `acpAgents` | ACP Agents sahifasi satrlari | Toʻliq PT-BR va EN tarjimalari taqdim etilgan. Qolgan 39 ta lokal `src/i18n/request.ts` faylidagi nomlar fazosi darajasidagi birlashtirish orqali avtomatik ravishda EN tarjimasiga qaytadi. --- ## 9. Tezkor boshlash ### 1-qadam — OmniRoute API kalitini olish 1. `/dashboard/api-manager` sahifasini oching → **API kalitini yaratish** 2. Unga nom bering (masalan, `cli-tools`) va barcha ruxsatlarni tanlang 3. Kalitdan nusxa oling — u quyidagi har bir CLI uchun kerak boʻladi > Kalitingiz quyidagicha koʻrinadi: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### 2-qadam — CLI vositalarini oʻrnatish npm asosidagi barcha vositalar Node.js 22.22.2+ yoki 24.x versiyasini talab qiladi: ```bash # Claude Code (Anthropic) npm install -g @anthropic-ai/claude-code # OpenAI Codex npm install -g @openai/codex # OpenCode npm install -g opencode-ai # Cline npm install -g cline # KiloCode npm install -g kilocode # Qwen Code npm install -g @qwen-code/qwen-code # Google Gemini CLI (`omniroute run gemini` orqali ishga tushiriladi → /v1beta interfeysi) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Rust asosida # Pi dasturlash agenti # o‘rnatish uchun https://github.com/zechnerj/pi-coding-agent sahifasiga qarang # jcode # o‘rnatish uchun https://github.com/1jehuang/jcode sahifasiga qarang ``` --- ### 3-qadam — Boshqaruv paneli orqali sozlash 1. `http://localhost:20128/dashboard/cli-code` manziliga oʻting 2. Vositalar toʻplamidan kerakli vositani toping 3. Vosita tafsilotlari sahifasini ochish uchun kartani bosing 4. API kalitingiz va asosiy URL manzilini tanlang 5. **Sozlamani qoʻllash** tugmasini bosing yoki qoʻlda sozlash parchasidan nusxa oling --- ### 4-qadam — Global muhit oʻzgaruvchilarini oʻrnatish ```bash # OmniRoute universal yakuniy nuqtasi export OPENAI_BASE_URL="http://localhost:20128/v1" export OPENAI_API_KEY="sk-your-omniroute-key" export ANTHROPIC_BASE_URL="http://localhost:20128" export ANTHROPIC_AUTH_TOKEN="sk-your-omniroute-key" # Gemini CLI GOOGLE_GEMINI_BASE_URL qiymatini ILDIZDAN o‘qiydi (uning SDK’si /v1beta/... qismini o‘zi qo‘shadi) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > **Masofaviy server** uchun `localhost:20128` qiymatini server IP manzili yoki domeni bilan almashtiring, > masalan, `http://:20128`. --- ### 4-qadam — Har bir vositani sozlash #### Claude Code ```bash # ~/.claude/settings.json faylini yarating: mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "sk-your-omniroute-key" } } EOF ``` Claude Code uchun birlashtirilgan Anthropic shlyuzining ildiz manzilidan foydalaning. Bu yerda `/v1` qoʻshmang. **Sinov:** `claude "say hello"` --- #### OpenAI Codex Zamonaviy Codex (v0.137+) faqat `~/.codex/config.toml` faylini oʻqiydi — eski `config.yaml` avvalgi npm CLI vositasiga tegishli va indamay eʼtiborsiz qoldiriladi. API kaliti fayl ichida emas, doimo `OMNIROUTE_API_KEY` muhit oʻzgaruvchisida (`env_key`) saqlanadi: ```bash mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOF model_provider = "omniroute" [model_providers.omniroute] name = "OmniRoute" base_url = "http://localhost:20128/v1" env_key = "OMNIROUTE_API_KEY" requires_openai_auth = false EOF export OMNIROUTE_API_KEY="sk-your-omniroute-key" ``` Toʻliq maʼlumotnoma (profillar, `wire_api`, kontekst oynalari): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Sinov:** `codex "what is 2+2?"` --- #### OpenCode ```bash mkdir -p ~/.config/opencode && cat > ~/.config/opencode/opencode.json << EOF { "\$schema": "https://opencode.ai/config.json", "provider": { "omniroute": { "npm": "@ai-sdk/openai-compatible", "name": "OmniRoute", "options": { "baseURL": "http://localhost:20128/v1", "apiKey": "sk-your-omniroute-key" }, "models": { "claude-sonnet-4-5": { "name": "claude-sonnet-4-5" }, "claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" }, "gemini-3-flash": { "name": "gemini-3-flash" } } } } } EOF ``` **Sinov:** `opencode` > Fikrlash variantlarini yuborish uchun > `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > buyrugʻidan foydalaning. --- #### Cline (CLI yoki VS Code) **CLI rejimi:** ```bash mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF { "apiProvider": "openai", "openAiBaseUrl": "http://localhost:20128/v1", "openAiApiKey": "sk-your-omniroute-key" } EOF ``` **VS Code rejimi:** Cline kengaytmasi sozlamalari → API provayderi: `OpenAI Compatible` → Asosiy URL: `http://localhost:20128/v1` Yoki OmniRoute boshqaruv panelidan foydalaning → **CLI vositalari → Cline → Sozlamani qoʻllash**. --- #### KiloCode (CLI yoki VS Code) **CLI rejimi:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **VS Code sozlamalari:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Yoki OmniRoute boshqaruv panelidan foydalaning → **CLI vositalari → KiloCode → Sozlamani qoʻllash**. --- #### Continue (VS Code kengaytmasi) `~/.continue/config.yaml` faylini tahrirlang: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Tahrirlashdan keyin VS Code dasturini qayta ishga tushiring. --- #### VS Code Insiders (`chatLanguageModels.json`) VS Code Insiders maxsus yakuniy nuqta modellari uchun sozlangan boʻlsa va OmniRoute maxsus sarlavha maydonisiz ishlashini istasangiz, bundan foydalaning. **Tavsiya etilgan joylashuv:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Tokenlashtirilgan OmniRoute taxallusidan foydalanish misoli:** ```json [ { "vendor": "customendpoint", "id": "auto", "name": "OmniRoute Auto", "family": "gpt-4", "version": "1.0.0", "url": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/chat/completions", "modelsUrl": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/models", "requestFormat": "openai-chat-completions", "contextWindow": 256000, "maxOutputTokens": 32768, "auth": { "type": "none" } } ] ``` **Eslatmalar:** - `sk-your-omniroute-key` o‘rniga OmniRoute’da yaratilgan API kalitini kiriting. - `url` maydoni `/api/v1/vscode/{token}/chat/completions` manziliga yo‘naltirilishi kerak. - `modelsUrl` maydoni `/api/v1/vscode/{token}/models` manziliga yo‘naltirilishi kerak. - Mijoz maxsus sarlavhalarni qo‘llab-quvvatlasa, odatiy `/v1` + Bearer sarlavhasi usulini afzal ko‘ring. - URL ichiga joylashtirilgan tokenlar moslik uchun zaxira usul bo‘lib, muharrir jurnallarida yoki proksi tarixida ko‘rinishi mumkin. --- #### Kiro CLI (Amazon) ```bash # AWS/Kiro hisobingizga kiring: kiro-cli login # CLI o‘z autentifikatsiyasidan foydalanadi — Kiro CLI’ning o‘zi uchun OmniRoute backend sifatida kerak emas. # Boshqa vositalar uchun kiro-cli’dan OmniRoute bilan birga foydalaning. kiro-cli status ``` **Kiro IDE** ish stoli ilovasi uchun OmniRoute tomonidan taqdim etilgan MITM endpointidan `/dashboard/cli-tools → Kiro` ostida foydalaning. --- ## 10. Ichki OmniRoute CLI `omniroute` bajariluvchi fayli serverning hayotiy sikli, sozlash, diagnostika va provayderlarni boshqarish uchun buyruqlarni taqdim etadi. Kirish nuqtasi: `bin/omniroute.mjs`. ```bash omniroute # Serverni ishga tushirish (standart port 20128) omniroute setup # Interaktiv sozlash ustasi omniroute doctor # Konfiguratsiya, DB, portlar va bajarilish muhitini tekshirish omniroute providers list # Sozlangan provayder ulanishlari omniroute providers test-all # Har bir faol ulanishni sinash omniroute reset-password # Administrator parolini tiklash omniroute logs # Soʻrov jurnallarini uzatish omniroute health # Batafsil holat (uzgichlar, kesh, xotira) omniroute --version # Versiyani chiqarish omniroute --help # Barcha buyruqlarni koʻrsatish ``` ### Sozlash va ishga tayyorlash ```bash omniroute setup # Interaktiv sozlash ustasi omniroute setup --non-interactive # CI/avtomatlashtirish rejimi (muhit oʻzgaruvchilari va bayroqlarni oʻqiydi) omniroute setup --password '' # Administrator parolini bevosita oʻrnatish omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Provayderni bir urinishda qoʻshish va sinash ``` Interaktiv boʻlmagan sozlash uchun tan olinadigan muhit oʻzgaruvchilari: | Oʻzgaruvchi | Maqsad | | ------------------- | ----------------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | Provayder API kaliti (Commander `.env()` orqali `--api-key` bilan bogʻlangan) | | `DATA_DIR` | OmniRoute maʼlumotlar katalogini almashtirish | Boshqa barcha interaktiv boʻlmagan kirish maʼlumotlari muhit oʻzgaruvchilari emas, balki bayroqlar sifatida uzatiladi: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (yuqoridagi `omniroute setup` parametrlariga qarang). ### Diagnostika ```bash omniroute doctor # Konfiguratsiya, DB, portlar, bajarilish muhiti, xotira va ishlayotganlikni tekshirish omniroute doctor --json # Mashina oʻqiy oladigan JSON omniroute doctor --no-liveness # HTTP holat tekshiruvini oʻtkazib yuborish omniroute doctor --host 0.0.0.0 # Ishlayotganlik xostini almashtirish omniroute doctor --liveness-url # Toʻliq holat yakuniy nuqtasi URL manzilini almashtirish ``` doctor quyidagi tekshiruvlarni bajaradi: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory` va `Server liveness`. Agar biror tekshiruv natijasi `fail` boʻlsa, u noldan farqli kod bilan yakunlanadi. ### Provayderlarni boshqarish ```bash omniroute providers available # OmniRoute provayderlar katalogi omniroute providers available --search openai # Katalogni id/nom/taxallus/toifa boʻyicha filtrlash omniroute providers available --category api-key # Toifa boʻyicha filtrlash (api-key, oauth, free, ...) omniroute providers available --json # Mashina oʻqiy oladigan JSON omniroute providers list # Sozlangan provayder ulanishlari omniroute providers list --json omniroute providers test # Bitta sozlangan ulanishni sinash omniroute providers test-all # Har bir faol ulanishni sinash omniroute providers validate # Faqat mahalliy tuzilmaviy tekshiruv omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Mavjud OAuth jarayoni omniroute providers edit --default-model omniroute providers remove --yes ``` `providers add/import/auth/edit/remove` birinchi navbatda API orqali ishlaydi va shu sababli faol mahalliy yoki masofaviy kontekst bilan ishlaydi. Hisob maʼlumotlarini kiritish uchun `--credential-stdin` yoki `--credential-env` ishlatilishi kerak; `--dry-run --json` faqat tahrirlangan mavjudlik/shaklni bildiradi. `providers available` OmniRoute katalogini oʻqiydi; `providers list/test/test-all/validate` oʻzining mahalliy SQLite xatti-harakatini saqlab qoladi va server ishlayotgan boʻlishini talab qilmaydi. Maxsus OpenAI-mos yoki Anthropic-mos tugun uchun hisob maʼlumotlarini `omniroute nodes add` qaytargan tugun ID raqamiga `omniroute keys add "$NODE_ID" --stdin` yordamida biriktiring. Buning uchun faol kontekstda ishlayotgan server va boshqaruv autentifikatsiyasi talab qilinadi. CLI `POST /api/providers` dan foydalanadi; u tugunni tekshiradi va uning yakuniy nuqta sozlamalarini ulanishga nusxalaydi. Tugun mavjud boʻlmasa, avtorizatsiya muvaffaqiyatsiz tugasa yoki server mavjud boʻlmasa, mahalliy zaxira hisob maʼlumotlari yaratilmasdan xato qaytariladi. `nodes add --base-url` tugun yakuniy nuqtasini oʻrnatadi; u `OMNIROUTE_BASE_URL` dagi server manzilidan farq qiladi. OpenAPI fayllari uchun `omniroute openapi dump --format json --out ./openapi.json` dan foydalaning; global `--output` manzil fayli nomini emas, CLI koʻrsatish formatini tanlaydi. ### Tiklash va qayta oʻrnatish ```bash omniroute reset-password # Administrator parolini tiklash (shuningdek: omniroute-reset-password) omniroute reset-encrypted-columns # Shifrlangan hisob maʼlumotlarini tiklash uchun ogohlantirish va sinov rejimini koʻrsatish omniroute reset-encrypted-columns --force # SQLite ichidagi shifrlangan hisob maʼlumotlarini haqiqatan ham null qilish ``` ### Hisob maʼlumotlarini eksport qilish (⚠ ehtiyotkorlik bilan ishlating) ```bash omniroute auth export # Ogohlantirish va tasdiqlash toʻsigʻini koʻrsatish — DB ga kirilmaydi omniroute auth export --force # BARCHA ulanishlarning SHIFRI YECHILGAN hisob maʼlumotlarini stdout ga JSON sifatida eksport qilish omniroute auth export --force --id # Faqat mos keladigan ulanishni eksport qilish omniroute auth export --force --format env # OMNIROUTE__= qatorlarini chiqarish omniroute auth export --force --out creds.json # Faylga yozish (0600 ruxsatlari bilan yaratiladi) ``` `auth export` **faqat mahalliy rejimda** ishlaydi (SQLiteʼdan bevosita oʻqiydi, HTTP marshruti yoʻq) va ataylab `apiKey`/`accessToken`/`refreshToken`/`idToken` qiymatlarini **ochiq matn** koʻrinishida chiqaradi/yozadi — bu xato emas, balki funksiyaning maqsadidir. `--force` parametrisiz maʼlumotlar bazasidan hech narsa oʻqilmaydi va hech narsa shifrdan chiqarilmaydi. Har qanday ochiq matn chiqarilishidan oldin stderrʼga har doim ogohlantirish banneri chiqariladi. `STORAGE_ENCRYPTION_KEY` sozlangan boʻlishi talab qilinadi. Shifrdan chiqarib boʻlmaydigan maydon (eskirgan kalit, buzilgan shifrlangan matn) butun eksportni toʻxtatish yoki asosiy xatoni oshkor qilish oʻrniga `DecryptFailed: true` sifatida qayd etiladi. ### Boshqa quyi buyruqlar Alohida qayd etilmagan boʻlsa, ular ishlayotgan OmniRoute serverini talab qiladi: ```bash omniroute status # Ishlash holati haqida batafsil maʼlumot omniroute logs # Soʻrov jurnallarini oqimda koʻrsatish (--json, --search, --follow) omniroute config list # Sozlangan CLI vositalarini koʻrsatish omniroute provider list # Mavjud provayderlarni roʻyxatlash (providers list taxallusi) omniroute provider add # OmniRouteʼni vositada provayder sifatida roʻyxatdan oʻtkazish omniroute keys add | list | remove # API kalitlarini boshqarish omniroute models [provider] # Modellarni roʻyxatlash (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Konfiguratsiya va maʼlumotlar bazasi oniy nusxasini yaratish omniroute restore # Oldingi oniy nusxadan tiklash omniroute health # Batafsil holat (uzgichlar, kesh, xotira) omniroute quota # Provayder kvotasidan foydalanish omniroute cache # Kesh holati omniroute cache clear # Semantik va imzo keshlarini tozalash omniroute mcp status | restart # MCP serverining holati / qayta ishga tushirish omniroute a2a status | card # A2A serverining holati / agent kartasi omniroute tunnel list | create | stop # Tunnellarni boshqarish (cloudflare/tailscale/ngrok) omniroute env show | get | set # Muhit oʻzgaruvchilarini koʻrish / sozlash (vaqtincha) omniroute test # Provayder ulanishini tezkor tekshirish omniroute update # Yangilanishlarni tekshirish omniroute completion # Qobiq uchun avtomatik toʻldirishni yaratish ``` ### Umumiy bayroqlar | Bayroq | Tavsif | | ------------------- | --------------------------------------------------------------------- | | `--no-open` | Ishga tushganda brauzerni avtomatik ochmaslik | | `--port ` | API portini almashtirish (standart qiymat: 20128) | | `--mcp` | stdio orqali MCP serveri sifatida ishga tushirish (IDEʼlar uchun) | | `--non-interactive` | CI rejimi (soʻrovlar yoʻq; muhit/bayroqlardan oʻqiydi) | | `--json` | Mashina oʻqiy oladigan JSON chiqishi (doctor, providers va boshqalar) | | `--help`, `-h` | Buyruqqa xos yordamni koʻrsatish | | `--version`, `-v` | Oʻrnatilgan versiyani chiqarish | --- ## Mavjud API soʻnggi nuqtalari | Soʻnggi nuqta | Tavsif | Qoʻllanishi | | -------------------------- | ----------------------------------- | ------------------------------------- | | `/v1/chat/completions` | Standart chat (barcha provayderlar) | Barcha zamonaviy vositalar | | `/v1/responses` | Responses API (OpenAI formati) | Codex, agentli ish jarayonlari | | `/v1/completions` | Eski matn davomlarini yaratish | `prompt:` ishlatadigan eski vositalar | | `/v1/embeddings` | Matn embeddinglari | RAG, qidiruv | | `/v1/images/generations` | Tasvir yaratish | GPT-Image, Flux va boshqalar | | `/v1/audio/speech` | Matndan nutqqa | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Nutqdan matnga | Deepgram, AssemblyAI | Token qoʻshilgan OmniRoute URL manzillari bilan ishlatishga tayyor misollar: ```txt Token misoli: sk-a3ab3c080beaee3a-69f4a4-070d71af Standart OpenAI bazaviy manzili: http://localhost:20128/v1 VS Code modellari: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models VS Code chati: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions VS Code javoblari: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Ollama teglari: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Ollama chati: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Muammolarni bartaraf etish | Xato | Sabab | Yechim | | ------------------------------------------------------------------ | ------------------------------------- | ---------------------------------------------------------------- | | `Connection refused` | OmniRoute ishlamayapti | `omniroute serve` | | `401 Unauthorized` | API kaliti notoʻgʻri | `/dashboard/api-manager` ichida tekshiring | | `No combo configured` | Faol marshrutlash kombinatsiyasi yoʻq | `/dashboard/combos` ichida sozlang | | CLI “oʻrnatilmagan” deb koʻrsatmoqda | Binar fayl PATH ichida emas | `which ` orqali tekshiring | | Oʻrnatishdan keyin boshqaruv paneli “aniqlanmadi” deb koʻrsatmoqda | Kesh eskirgan | Boshqaruv panelida “⟳ Aniqlashni yangilash” tugmasini bosing | | Eski havola `/dashboard/cli-tools` | v3.8.6 dan oldingi xatchoʻp | `/dashboard/cli-code` manziliga avtomatik yoʻnaltiriladi (308) | | Eski havola `/dashboard/agents` | v3.8.6 dan oldingi xatchoʻp | `/dashboard/acp-agents` manziliga avtomatik yoʻnaltiriladi (308) | ## OmniRoute CLI yordamida inference-key siyosatini boshqarish Mavjud inference kalitini uning ID raqami boʻyicha tekshirish yoki yangilash uchun autentifikatsiyalangan boshqaruv kontekstidan foydalaning ([Masofaviy rejim](../guides/REMOTE-MODE.md) boʻlimiga qarang): ```bash omniroute --output json keys policy show KEY_ID omniroute keys policy set KEY_ID --unrestricted omniroute --output json keys policy show KEY_ID ``` `--unrestricted` — `--model-access-mode all` uchun taxallus. Yangilanish modellar ruxsat roʻyxatini tozalaydi. U qamrovlar, ulanish qoidalari, bloklangan modellar, tezlik cheklovlari va xarajat cheklovlarini saqlab qoladi, shu sababli boshqa boshqaruv vositalari soʻrovni baribir rad etishi mumkin. Aniq koʻrsatilgan `--allowed-models ""` ham `all` rejimini tanlaydi; ruxsat etilgan modellari boʻlmagan cheklangan kalitni saqlash uchun uni `--model-access-mode restricted` bilan birga ishlating. Vergul bilan ajratilgan boʻsh boʻlmagan roʻyxat, agar boshqacha aniq koʻrsatilmagan boʻlsa, `restricted` rejimini tanlaydi. Bir-biriga zid boʻlgan `all` va boʻsh boʻlmagan ruxsat roʻyxati soʻrov yuborilishidan oldin rad etiladi. `--rate-limit 30` daqiqasiga soʻrovlar sonini belgilaydi va boshqa vaqt oraliqlari uchun qoidalarni saqlab qoladi. `--max-cost 5` haftalik cheklovni oʻzgartirmasdan kunlik USD limitini yoqadi; `--max-cost 0` kunlik limitni olib tashlaydi hamda mavjud foydalanish limiti almashtirgichi va haftalik limitni saqlab qoladi. Koʻrsatilmagan siyosat maydonlari oʻzgarishsiz qoladi. Tezlikka oid oʻzgarishlar avval joriy siyosatni oʻqiydi; bir kalitning tezlik cheklovi massivini bir vaqtda tahrirlashdan saqlaning. Siyosat buyruqlari autentifikatsiyalangan `GET`/`PATCH /api/keys/{id}` dan foydalanadi hamda faol kontekst va global `--api-key` parametrini hisobga oladi. JSON chiqishi faqat siyosat maydonlarini oʻz ichiga oladi, saqlangan kalit yoki uning niqoblangan koʻrinishini emas. Faqat inference uchun moʻljallangan hisob maʼlumotlari boshqaruv oʻzgarishlarini avtorizatsiya qila olmaydi. 401/403 xatosi boshqaruv hisob maʼlumotlari va kontekstni tekshirishni talab qiladi; bu mahalliy CLI tokeni yoki salt xatosi mavjudligini tasdiqlamaydi. Alohida mahalliy autentifikatsiya kelishuvi uchun [CLI tokeni](../security/CLI_TOKEN.md) boʻlimiga qarang.