1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
67 KiB
CLI Tools — OmniRoute (ខ្មែរ)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
បានធ្វើបច្ចុប្បន្នភាពចុងក្រោយ៖ 2026-08-23
OmniRoute រួមបញ្ចូលជាមួយឧបករណ៍ CLI បីប្រភេទ ដែលបែងចែកនៅលើទំព័រផ្ទាំងគ្រប់គ្រងចំនួនបីដាច់ដោយឡែក៖
| ទំព័រ | Route | គោលគំនិត | ចំនួន |
|---|---|---|---|
| CLI Code's | /dashboard/cli-code |
ឧបករណ៍សរសេរកូដដែលអ្នកតម្រង់ទៅកាន់ OmniRoute (Client → CLI → OmniRoute → Provider) | 26 |
| CLI Agents | /dashboard/cli-agents |
Agent ស្វយ័តដែលអ្នកតម្រង់ទៅកាន់ OmniRoute (លំហូរដូចគ្នា ប៉ុន្តែមានវិសាលភាពទូលំទូលាយជាង) | 10 |
| ACP Agents | /dashboard/acp-agents |
CLI ដែល OmniRoute ដំណើរការជា backend តាមរយៈ stdio/ACP (លំហូរបញ្ច្រាស) | មើល registry |
Route ចាស់ៗបញ្ជូនបន្តតាមរយៈ 308៖ /dashboard/cli-tools → /dashboard/cli-code, /dashboard/agents → /dashboard/acp-agents.
របៀបដែលវាដំណើរការ
CLI Code's / CLI Agents (លំហូរប្រើប្រាស់):
Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ...
│
▼ (ទាំងអស់តម្រង់ទៅកាន់ OmniRoute)
http://YOUR_SERVER:20128/v1
│
▼ (OmniRoute បញ្ជូនទៅកាន់អ្នកផ្តល់សេវាដែលត្រឹមត្រូវ)
Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
ACP Agents (លំហូរបង្កើតបញ្ច្រាស):
សំណើរបស់ Client → OmniRoute → បង្កើត CLI តាម stdio/ACP → ការឆ្លើយតប
អត្ថប្រយោជន៍៖
- គ្រប់គ្រងឧបករណ៍ទាំងអស់ដោយប្រើ API key តែមួយ
- តាមដានការចំណាយរបស់ CLI ទាំងអស់នៅក្នុងផ្ទាំងគ្រប់គ្រង
- ប្ដូរម៉ូដែលដោយមិនចាំបាច់កំណត់រចនាសម្ព័ន្ធឧបករណ៍នីមួយៗឡើងវិញ
- ដំណើរការបានទាំងក្នុងម៉ាស៊ីនមូលដ្ឋាន និងនៅលើម៉ាស៊ីនមេពីចម្ងាយ (VPS, Docker, Akamai, Cloudflare Tunnel)
កំណត់រចនាសម្ព័ន្ធដោយស្វ័យប្រវត្តិជាមួយ setup-*
អ្នកមិនចាំបាច់សរសេរឯកសារកំណត់រចនាសម្ព័ន្ធរបស់ឧបករណ៍នីមួយៗដោយដៃទេ។ OmniRoute ភ្ជាប់មកជាមួយពាក្យបញ្ជា setup-*
មួយសម្រាប់ CLI នីមួយៗដែលគាំទ្រ ដែលអានកាតាឡុកម៉ូដែល កំពុងដំណើរការផ្ទាល់ ពី
OmniRoute ដែលកំពុងដំណើរការ (ក្នុងម៉ាស៊ីនមូលដ្ឋាន ឬពីចម្ងាយ) ហើយសរសេរឯកសារកំណត់រចនាសម្ព័ន្ធផ្ទាល់របស់ឧបករណ៍នៅលើម៉ាស៊ីនរបស់អ្នក៖
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
ពាក្យបញ្ជានីមួយៗទទួលយក --remote <url> --api-key <key> (កំណត់រចនាសម្ព័ន្ធឧបករណ៍ក្នុងម៉ាស៊ីនមូលដ្ឋានឱ្យប្រើជាមួយ
OmniRoute ពីចម្ងាយ), --dry-run (មើលជាមុនដោយមិនសរសេរ) និង --port។ ឧបករណ៍
ដែលមិនមានការរកឃើញម៉ូដែលដោយស្វ័យប្រវត្តិ (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) ទទួលយក
--model <id> (និង --yes សម្រាប់ការដំណើរការដែលមិនមានអន្តរកម្ម)។ setup-5dive គឺជា
រូបមន្តតែមួយគត់ដែលមិនសរសេរក្រោម $HOME៖ វាកំណត់រចនាសម្ព័ន្ធក្រុម agent របស់ 5dive ដោយ
សរសេរប្រូហ្វាល់ផ្ទៀងផ្ទាត់ដែលគ្រប់គ្រងដោយ root នៅលើម៉ាស៊ីនមេរបស់ក្រុម ដូច្នេះវាដំណើរការខ្លួនឯងឡើងវិញតាម sudo
ហើយមិនមានរបៀបពីចម្ងាយផ្ទាល់ខ្លួនទេ។ ដើម្បីបើកដំណើរការ CLI ដោយបញ្ចូល env
ដែលត្រឹមត្រូវ និងមិនសរសេរឯកសារកំណត់រចនាសម្ព័ន្ធអ្វីទាំងអស់ សូមប្រើកម្មវិធីបើកដំណើរការទូទៅ
omniroute run <target> (claude, codex, aider, goose, opencode, qwen,
gemini — target និង alias មកពី bin/cli/cli-manifest.mjs)។ កម្មវិធីបើកដំណើរការចាស់
សម្រាប់ឧបករណ៍នីមួយៗ omniroute launch (Claude Code) និង omniroute launch-codex
(Codex) នៅតែអាចប្រើបាន។ Gemini CLI អាចបើកដំណើរការបានតែប៉ុណ្ណោះ៖ វាជា target របស់ omniroute run
ប៉ុន្តែមិនមានរូបមន្ត setup-*/configure ទេ។
ឯកសារយោងពេញលេញ៖ តារាងមេ — អ្វីដែលពាក្យបញ្ជានីមួយៗសរសេរ flag ទាំងអស់ ការប្រើក្នុងម៉ាស៊ីនមូលដ្ឋានធៀបនឹងពីចម្ងាយ និងឧបករណ៍ណាខ្លះដែលត្រូវការបច្ច័យ
/v1— មាននៅក្នុង ការរួមបញ្ចូល CLI។
ការដំណើរការពាក្យបញ្ជាទាំងនេះនៅក្នុង container
ពាក្យបញ្ជា setup-* ដែលត្រូវបានប្រតិបត្តិនៅក្នុង container របស់ OmniRoute នឹងសរសេរទៅក្នុង
home ផ្ទាល់របស់ container ដែល CLI ណាមួយនៅលើ host មិនអាន ហើយវានឹងបាត់នៅពេល
container បាត់។ OmniRoute រកឃើញស្ថានភាពនេះ ហើយបិទដំណើរការជាមួយលេខកូដ 2 ព្រមទាំងបង្ហាញការណែនាំ ជំនួសឱ្យ
ការសរសេរ។ មានវិធីដែលគាំទ្រចំនួនពីរដើម្បីបន្ត — ដំឡើង CLI នៅលើ host ហើយ
ប្រើ omniroute connect ដើម្បីភ្ជាប់ទៅ container ឬ bind-mount ថតឯកសារកំណត់រចនាសម្ព័ន្ធ ហើយកំណត់
CLI_CONFIG_HOME (ប្រូហ្វាល់ host របស់ compose)។ រាល់ពាក្យបញ្ជា setup-* រួមទាំង
omniroute configure និង omniroute config set ទទួលយក
--allow-container-write នៅពេលការកំណត់រចនាសម្ព័ន្ធ CLI ផ្ទាល់របស់ container គឺជាអ្វីដែលអ្នក
ពិតជាចង់ធ្វើ។ OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true ក៏ធ្វើដូចគ្នាសម្រាប់
ម៉ាស៊ីនមេផងដែរ។ សូមមើល
មគ្គុទ្ទេសក៍ Docker → ការកំណត់រចនាសម្ព័ន្ធឧបករណ៍ CLI របស់ host។
apply endpoint របស់ផ្ទាំងគ្រប់គ្រង (POST /api/cli-tools/apply) អនុវត្ត
ការការពារដូចគ្នា៖ នៅក្នុង container ប្រតិបត្តិការសរសេរដែល target របស់វាមិនត្រូវបាន bind-mount ពី
host នឹងឆ្លើយតបដោយ 422 ជាមួយ containerEphemeralTarget: true អត្ថបទកំហុស
ដែលមានសុវត្ថិភាព និង — សម្រាប់ឧបករណ៍ដែលមានរូបមន្តសម្រាប់ host (claude, codex, opencode, cline,
kilo, continue) — hostSetupCommand មួយ (ឧ. omniroute setup-opencode) ដើម្បីដំណើរការ
នៅលើ host ជំនួសវិញ។ គ្មានអ្វីត្រូវបានសរសេរទេ។ dryRun: true នៅតែដំណើរការនៅក្នុងរបៀប container
ហើយត្រឡប់មាតិកាដែលបានបង្កើត + ផ្លូវ target ដោយមិនប៉ះពាល់ដល់ថាស ដូច្នេះ
អ្នកអាចមើលជាមុនពីផ្ទាំងគ្រប់គ្រង ហើយអនុវត្តនៅលើ host។ ឥរិយាបថនេះត្រូវបាន
បង្កើតឡើងដោយចេតនា និងត្រូវបានការពារពី regression ដោយ
tests/unit/api/cli-tools/apply-container-guard.test.ts — កុំ "ជួសជុល" 422
ដោយដកការការពារចេញ។
ប្រភពសេចក្តីពិត
កាតាឡុករួមស្ថិតនៅក្នុង src/shared/constants/cliTools.ts ជា CLI_TOOLS: Record<string, CliCatalogEntry>។
ធាតុនីមួយៗមានវាលទាំងនេះ (កំណត់នៅក្នុង src/shared/schemas/cliCatalog.ts)៖
| វាល | ប្រភេទ | ការពិពណ៌នា |
|---|---|---|
category |
"code" | "agent" |
ទំព័រដែលឧបករណ៍បង្ហាញនៅលើ |
vendor |
string |
ប្រភពដើមនៃឧបករណ៍ ("Anthropic", "OSS (P. Gauthier)") |
acpSpawnable |
boolean |
អាចប្រើជា ACP Agent ផងដែរ (មានបង្ហាញផ្លាកសម្គាល់) |
baseUrlSupport |
"full" | "partial" | "none" |
កម្រិតគាំទ្រចំណុចបញ្ចប់ផ្ទាល់ខ្លួន។ "none" = បញ្ជីការងារ MITM ដែលមិនទាន់បានធ្វើ |
configType |
"env" | "custom" | "guide" | "custom-builder" | "mitm" |
យន្តការកំណត់រចនាសម្ព័ន្ធ |
id, name, color, description, docsUrl |
ស្តង់ដារ | វាលស្នូលសម្រាប់ការបង្ហាញ |
ធាតុដែលមាន baseUrlSupport: "none" មិនត្រូវបានបង្ហាញ នៅក្នុងទំព័រផ្ទាំងគ្រប់គ្រងទេ — ពួកវាត្រូវបានចុះបញ្ជីក្នុងបញ្ជីការងារ MITM ដែលមិនទាន់បានធ្វើសម្រាប់ផែនការ 11 (សូមមើល _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md)។
កម្រិតសមត្ថភាព (មានក្នុងកាតាឡុក × អាចរកឃើញ × អាចកំណត់រចនាសម្ព័ន្ធ × អាចដំណើរការ)
មិនមែនគ្រប់ឧបករណ៍ដែលមានក្នុងកាតាឡុកទាំងអស់សុទ្ធតែអាចរកឃើញ កំណត់រចនាសម្ព័ន្ធ ឬដំណើរការបានទេ។ កម្រិតនីមួយៗមាន ប្រភពប្រកាសតែមួយ ហើយតេស្តរកភាពមិនស្របគ្នានឹងរក្សាឱ្យពួកវាស្របគ្នា៖
| កម្រិត | អត្ថន័យ | ប្រកាសនៅក្នុង |
|---|---|---|
| មានក្នុងកាតាឡុក | បង្ហាញក្នុងកាតាឡុកផ្ទាំងគ្រប់គ្រង (ឈ្មោះ អ្នកផ្គត់ផ្គង់ ឯកសារ ប្រភេទការកំណត់រចនាសម្ព័ន្ធ) | src/shared/constants/cliTools.ts (CLI_TOOLS) |
| អាចរកឃើញ | ការរកឃើញ binary/config ការត្រួតពិនិត្យស្ថានភាព និងទីតាំងកំណត់រចនាសម្ព័ន្ធ | src/shared/services/cliRuntime.ts (កាតាឡុកពេលដំណើរការ CLI_TOOLS) |
| អាចកំណត់រចនាសម្ព័ន្ធ | គាំទ្រដោយ omniroute configure <cli> (មានរូបមន្តរៀបចំ) |
bin/cli/cli-manifest.mjs (configure: true) |
| អាចដំណើរការ | គាំទ្រដោយ omniroute run <target> (បានកំណត់ការបញ្ចូល env/args) |
bin/cli/cli-manifest.mjs (run: true) |
bin/cli/cli-manifest.mjs គឺជា manifest ដែលអាចប្រតិបត្តិបានជាគោលសម្រាប់ផ្ទៃបញ្ជា CLI៖ run, configure និងកម្មវិធីបង្កើតការបំពេញពាក្យបញ្ជា shell ទាំងអស់សុទ្ធតែទាញយក
បញ្ជីគោលដៅ ការដោះស្រាយឈ្មោះហៅក្រៅ (ឧទាហរណ៍ kilocode/kilo-code/kilo_cli → kilo)
និងការភ្ជាប់ flag --model ពីវា។ ឧបករណ៍ការពារភាពមិនស្របគ្នា
tests/unit/cli/cli-manifest-drift.test.ts ផ្ទៀងផ្ទាត់ថា manifest កាតាឡុកពេលដំណើរការ
កាតាឡុក UI និងផ្ទៃប្រើប្រាស់នីមួយៗនៅតែមានភាពស៊ីសង្វាក់គ្នា — គោលដៅដែលបានបន្ថែមទៅ
ផ្ទៃមួយដោយគ្មានផ្ទៃផ្សេងទៀត នឹងធ្វើឱ្យសំណុំតេស្តបរាជ័យ ជំនួសឱ្យការប្រែប្រួលខុសគ្នាដោយស្ងៀមស្ងាត់។
1. បញ្ជីឧបករណ៍របស់ CLI Code (26 ឧបករណ៍)
ឧបករណ៍ទាំងអស់ដែលបង្ហាញនៅក្នុង /dashboard/cli-code។ ឧបករណ៍ដែលមាន baseUrlSupport: none ត្រូវបានតភ្ជាប់តាមរយៈ MITM ឬការណែនាំដោយដៃ ជំនួសឱ្យ URL មូលដ្ឋានផ្ទាល់ខ្លួន៖
| id | ឈ្មោះ | អ្នកផ្គត់ផ្គង់ | ការគាំទ្រ URL មូលដ្ឋាន | ប្រភេទការកំណត់រចនាសម្ព័ន្ធ | អាចបង្កើត ACP |
|---|---|---|---|---|---|
| claude | Claude Code | Anthropic | ពេញលេញ | បរិស្ថាន | បាទ |
| codex | OpenAI Codex CLI | OpenAI | ពេញលេញ | ផ្ទាល់ខ្លួន | បាទ |
| zcode | ZCode (គម្រោងសរសេរកូដ GLM) | Z.ai | គ្មាន | ផ្ទាល់ខ្លួន | ទេ |
| cline | Cline | OSS (អតីត Claude Dev) | ពេញលេញ | ផ្ទាល់ខ្លួន | បាទ |
| kilo | Kilo Code | Kilo-Org | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| roo | Roo Code | Roo (OSS) | ពេញលេញ | ការណែនាំ | ទេ |
| continue | Continue | continue.dev | ពេញលេញ | ការណែនាំ | ទេ |
| aider | Aider | OSS (P. Gauthier) | ពេញលេញ | ការណែនាំ | បាទ |
| forge | ForgeCode | Antinomy HQ | ពេញលេញ | ផ្ទាល់ខ្លួន | បាទ |
| jcode | jcode | 1jehuang (OSS) | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| codewhale | CodeWhale | Hmbown (OSS) | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| opencode | OpenCode | Anomaly (អតីត SST) | ពេញលេញ | ការណែនាំ | បាទ |
| droid | Factory Droid | Factory AI | មួយផ្នែក | ការណែនាំ | ទេ |
| copilot | GitHub Copilot CLI | GitHub/MS | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| cursor-cli | Cursor CLI | Anysphere | មួយផ្នែក | ការណែនាំ | បាទ |
| smelt | Smelt | leonardcser (OSS) | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| pi | Pi (pi-coding-agent) | M. Zechner (OSS) | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| grok-build | Grok Build | xAI | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| crush | Crush | OSS (Charm) | ពេញលេញ | ផ្ទាល់ខ្លួន | ទេ |
| qwen | Qwen Code | Alibaba | ពេញលេញ | ការណែនាំ | បាទ |
| cursor | Cursor | Anysphere | គ្មាន | ការណែនាំ | ទេ |
| antigravity | Antigravity | គ្មាន | MITM | ទេ | |
| hermes | Hermes | Nous Research | គ្មាន | ការណែនាំ | ទេ |
| kiro | Kiro AI | Amazon | គ្មាន | MITM | ទេ |
| custom | CLI ផ្ទាល់ខ្លួន | — | ពេញលេញ | ឧបករណ៍បង្កើតផ្ទាល់ខ្លួន | ទេ |
ឧបករណ៍ដែលមាន baseUrlSupport: "partial" បង្ហាញស្លាក "⚠ URL មូលដ្ឋានមួយផ្នែក" នៅក្នុងកាតផ្ទាំងគ្រប់គ្រង។
2. បញ្ជីភ្នាក់ងារ CLI (ឧបករណ៍ 10)
ភ្នាក់ងារស្វ័យប្រវត្តិដែលបង្ហាញនៅក្នុង /dashboard/cli-agents៖
| id | name | vendor | 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 (/dashboard/acp-agents)
ទំព័រនេះ (បានប្តូរឈ្មោះពី /dashboard/agents) បង្ហាញ CLI ដែល OmniRoute អាច បង្កើតដំណើរការ ជាម៉ាស៊ីនប្រតិបត្តិការ backend តាមរយៈពិធីការ stdio/ACP។ បញ្ជីនេះត្រូវបានថែទាំដោយឡែកនៅក្នុង src/lib/acp/registry.ts ហើយវា មិនមែន ដូចគ្នានឹង CLI_TOOLS ទេ។
4. បញ្ជីការងារ MITM ដែលនៅសល់ (មិនបង្ហាញក្នុង dashboard)
CLI ខាងក្រោមមិនគាំទ្រ base URL ផ្ទាល់ខ្លួនពីកំណើតទេ ហើយក៏ មិនត្រូវបានរាយបញ្ជី ក្នុងទំព័រ CLI Code ឬ CLI Agents ដែរ។ ពួកវាជាបេក្ខភាពសម្រាប់ការស្ទាក់ចាប់ MITM ក្នុងផែនការ 11៖
| CLI | មូលហេតុ |
|---|---|
| windsurf | BYOK ត្រូវបានកំណត់ត្រឹមម៉ូដែល Claude ដែលបានជ្រើសរើស + URL/token របស់សាជីវកម្ម |
| amp | ប្រព័ន្ធអេកូបិទជិត (Sourcegraph) |
| amazon-q / kiro-cli | ការផ្ទៀងផ្ទាត់ AWS SSO គ្មាន URL ផ្ទាល់ខ្លួន |
| cowork | Anthropic Desktop គ្មាន endpoint ដែលអាចកំណត់រចនាសម្ព័ន្ធបាន |
សូមមើល _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md សម្រាប់សេចក្ដីយោងឆ្លងពេញលេញ។
5. API សម្រាប់ការរកឃើញជាបាច់
ការរកឃើញឧបករណ៍ទាំងអស់ត្រូវបានប្រមូលផ្ដុំតាមរយៈ endpoint តែមួយ៖
GET /api/cli-tools/all-statuses
- ការផ្ទៀងផ្ទាត់៖
requireCliToolsAuth(request)(ដូចគ្នានឹង route/api/cli-tools/ផ្សេងទៀត) - ត្រឡប់៖
Record<toolId, ToolBatchStatus>(ប្រភេទ៖src/shared/types/cliBatchStatus.ts) - យុទ្ធសាស្ត្រ៖
Promise.allលើឧបករណ៍ទាំងអស់ ជាមួយរយៈពេលអតិបរមា 5 វិនាទីសម្រាប់ឧបករណ៍នីមួយៗ - ឃ្លាំងសម្ងាត់៖ LRU ក្នុងអង្គចងចាំ ដែលបានធ្វើលិបិក្រមតាម
mtimeរបស់ឯកសារកំណត់រចនាសម្ព័ន្ធ។ ឃ្លាំងសម្ងាត់នឹងត្រូវបានធ្វើឱ្យអសុពលភាព នៅពេលmtimeផ្លាស់ប្តូរ។ វានឹងត្រូវបានកំណត់ឡើងវិញ នៅពេល server ចាប់ផ្ដើមឡើងវិញ។
ទម្រង់ response សម្រាប់ឧបករណ៍នីមួយៗ៖
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; // បានសម្អាត គ្មាន stack trace
}
6. កម្មវិធីដោះស្រាយការកំណត់សម្រាប់ឧបករណ៍ថ្មី
ឧបករណ៍ថ្មីដែលមាន configType: "custom" មានផ្លូវ API សម្រាប់ការកំណត់ដោយឡែក៖
| ផ្លូវ | ឧបករណ៍ |
|---|---|
POST /api/cli-tools/forge-settings |
ForgeCode (.forge.toml) |
POST /api/cli-tools/jcode-settings |
jcode (--base-url flag) |
POST /api/cli-tools/deepseek-tui-settings |
DeepSeek TUI (OPENAI_BASE_URL, បែបចាស់) |
POST /api/cli-tools/codewhale-settings |
CodeWhale (OPENAI_BASE_URL, ចម្បង + ការធ្វើសមកាលកម្មបែបចាស់ ~/.deepseek) |
POST /api/cli-tools/smelt-settings |
Smelt |
POST /api/cli-tools/pi-settings |
ភ្នាក់ងារសរសេរកូដ Pi |
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 + គន្លឹះ .env ដោយឡែក) |
ផ្លូវទាំងអស់ប្រើ sanitizeErrorMessage() សម្រាប់ការឆ្លើយតបកំហុស (ច្បាប់តឹងរ៉ឹង #12)។
7. ស្ថាបត្យកម្មទំព័រផ្ទាំងគ្រប់គ្រង
កូដ CLI (/dashboard/cli-code)
src/app/(dashboard)/dashboard/cli-code/page.tsx— សមាសភាគម៉ាស៊ីនមេsrc/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx— ក្រឡាចត្រង្គផ្នែកម៉ាស៊ីនភ្ញៀវsrc/app/(dashboard)/dashboard/cli-code/[id]/page.tsx— ទំព័រព័ត៌មានលម្អិតឧបករណ៍src/app/(dashboard)/dashboard/cli-code/components/— កាតឧបករណ៍ឯកទេសចំនួន 12 +ToolDetailClient.tsx
ភ្នាក់ងារ CLI (/dashboard/cli-agents)
src/app/(dashboard)/dashboard/cli-agents/page.tsx— សមាសភាគម៉ាស៊ីនមេsrc/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx— ក្រឡាចត្រង្គផ្នែកម៉ាស៊ីនភ្ញៀវsrc/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx— ប្រើToolDetailClientឡើងវិញ
ភ្នាក់ងារ ACP (/dashboard/acp-agents)
src/app/(dashboard)/dashboard/acp-agents/page.tsx— សមាសភាគម៉ាស៊ីនមេ (បានផ្លាស់ទីពីagents/)
សមាសភាគ UI រួម (src/shared/components/cli/)
| ឯកសារ | គោលបំណង |
|---|---|
CliToolCard.tsx |
កាតស្ថានភាពឆ្លាតវៃ (ការរកឃើញ + ការកំណត់រចនាសម្ព័ន្ធ + ចំណុចបញ្ចប់) |
CliConceptCard.tsx |
កាតពន្យល់អំពីគោលគំនិតសម្រាប់ទំព័រនីមួយៗ |
CliComparisonCard.tsx |
ការប្រៀបធៀបបីជួរឈររវាងប្រភេទ CLI |
BaseUrlSelect.tsx |
បញ្ជីទម្លាក់ចុះសម្រាប់ចំណុចបញ្ចប់ (មូលដ្ឋាន/ក្លោដ/ផ្ទាល់ខ្លួន) |
ApiKeySelect.tsx |
ឧបករណ៍ជ្រើសរើស API key |
ManualConfigModal.tsx |
ម៉ូឌុលបំណែកការកំណត់រចនាសម្ព័ន្ធដែលអាចចម្លងបាន |
Hook រួម (src/shared/hooks/cli/)
| ឯកសារ | គោលបំណង |
|---|---|
useToolBatchStatuses.ts |
ទាញយក /api/cli-tools/all-statuses និងគ្រប់គ្រងស្ថានភាពកំពុងផ្ទុក/ផ្ទុកឡើងវិញ |
8. i18n
Namespace ថ្មីៗដែលបានបន្ថែមក្នុងផែនការ 14 F9៖
| Namespace | គោលបំណង |
|---|---|
cliCommon |
ខ្សែអក្សររួម (ស្លាកកាត អត្ថបទគោលគំនិត/ការប្រៀបធៀប ស្លាកទំព័រលម្អិត) |
cliCode |
ខ្សែអក្សរសម្រាប់ទំព័រ CLI Code |
cliAgents |
ខ្សែអក្សរសម្រាប់ទំព័រ CLI Agents |
acpAgents |
ខ្សែអក្សរសម្រាប់ទំព័រ ACP Agents |
ការបកប្រែពេញលេញជា PT-BR និង EN ត្រូវបានផ្តល់ជូន។ Locale ចំនួន 39 ផ្សេងទៀតនឹងប្រើ EN ដោយស្វ័យប្រវត្តិជំនួស តាមរយៈការបញ្ចូលគ្នាកម្រិត namespace នៅក្នុង src/i18n/request.ts។
9. ចាប់ផ្តើមរហ័ស
ជំហានទី 1 — ទទួលយក OmniRoute API Key
- បើក
/dashboard/api-manager→ បង្កើត API Key - ដាក់ឈ្មោះឱ្យវា (ឧ.
cli-tools) ហើយជ្រើសរើសសិទ្ធិទាំងអស់ - ចម្លង key នោះ — អ្នកនឹងត្រូវការវាសម្រាប់ CLI នីមួយៗខាងក្រោម
Key របស់អ្នកមានទម្រង់ដូចនេះ៖
sk-xxxxxxxxxxxxxxxx-xxxxxxxxx
ជំហានទី 2 — ដំឡើងឧបករណ៍ CLI
ឧបករណ៍ទាំងអស់ដែលផ្អែកលើ npm តម្រូវឱ្យមាន Node.js 22.22.2+ ឬ 24.x៖
# 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` → ផ្ទៃ /v1beta)
npm install -g @google/gemini-cli
# Aider
pip install aider-chat
# Smelt
cargo install smelt # ផ្អែកលើ Rust
# ភ្នាក់ងារសរសេរកូដ Pi
# សូមមើល https://github.com/zechnerj/pi-coding-agent សម្រាប់ការដំឡើង
# jcode
# សូមមើល https://github.com/1jehuang/jcode សម្រាប់ការដំឡើង
ជំហានទី 3 — កំណត់រចនាសម្ព័ន្ធតាមរយៈ Dashboard
- ចូលទៅកាន់
http://localhost:20128/dashboard/cli-code - ស្វែងរកឧបករណ៍របស់អ្នកនៅក្នុងក្រឡាចត្រង្គ
- ចុចលើកាតដើម្បីបើកទំព័រលម្អិតរបស់ឧបករណ៍
- ជ្រើសរើស API key និង base URL របស់អ្នក
- ចុច អនុវត្តការកំណត់រចនាសម្ព័ន្ធ ឬចម្លងសំណុំកូដកំណត់រចនាសម្ព័ន្ធដោយដៃ
ជំហានទី 4 — កំណត់អថេរបរិស្ថានសកល
# Endpoint សកលរបស់ OmniRoute
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 នៅ ROOT (SDK របស់វាភ្ជាប់ /v1beta/... ដោយខ្លួនឯង)
export GOOGLE_GEMINI_BASE_URL="http://localhost:20128"
export GEMINI_API_KEY="sk-your-omniroute-key"
សម្រាប់ ម៉ាស៊ីនមេពីចម្ងាយ សូមជំនួស
localhost:20128ដោយ IP ឬដែនរបស់ម៉ាស៊ីនមេ ឧ.http://<your-server-ip>:20128។
ជំហានទី 4 — កំណត់រចនាសម្ព័ន្ធឧបករណ៍នីមួយៗ
Claude Code
# បង្កើត ~/.claude/settings.json:
mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "sk-your-omniroute-key"
}
}
EOF
ប្រើ root របស់ Anthropic gateway រួមសម្រាប់ Claude Code។ កុំបន្ថែម /v1 នៅទីនេះ។
សាកល្បង៖ claude "say hello"
OpenAI Codex
Codex សម័យថ្មី (v0.137+) អានតែ ~/.codex/config.toml ប៉ុណ្ណោះ — config.yaml
ចាស់ជារបស់ npm CLI ជំនាន់មុន ហើយត្រូវបានរំលងដោយមិនបង្ហាញសារ។ API
key ត្រូវរក្សាទុកក្នុងអថេរបរិស្ថាន OMNIROUTE_API_KEY (env_key) ជានិច្ច និងមិនត្រូវដាក់
នៅក្នុងឯកសារឡើយ៖
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"
ឯកសារយោងពេញលេញ (profiles, wire_api, context windows)៖ CODEX-CLI-CONFIGURATION.md។
សាកល្បង៖ codex "what is 2+2?"
OpenCode
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
សាកល្បង៖ opencode
ប្រើ
opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant highដើម្បីផ្ញើ thinking variants។
Cline (CLI ឬ VS Code)
របៀប CLI៖
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៖
ការកំណត់របស់ផ្នែកបន្ថែម Cline → API Provider: OpenAI Compatible → Base URL: http://localhost:20128/v1
ឬប្រើ OmniRoute dashboard → ឧបករណ៍ CLI → Cline → អនុវត្តការកំណត់រចនាសម្ព័ន្ធ។
KiloCode (CLI ឬ VS Code)
របៀប CLI៖
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key
ការកំណត់ VS Code៖
{
"kilo-code.openAiBaseUrl": "http://localhost:20128/v1",
"kilo-code.apiKey": "sk-your-omniroute-key"
}
ឬប្រើ OmniRoute dashboard → ឧបករណ៍ CLI → KiloCode → អនុវត្តការកំណត់រចនាសម្ព័ន្ធ។
Continue (ផ្នែកបន្ថែម VS Code)
កែសម្រួល ~/.continue/config.yaml៖
models:
- name: OmniRoute
provider: openai
model: auto
apiBase: http://localhost:20128/v1
apiKey: sk-your-omniroute-key
default: true
ចាប់ផ្តើម VS Code ឡើងវិញបន្ទាប់ពីកែសម្រួល។
VS Code Insiders (chatLanguageModels.json)
ប្រើវិធីនេះនៅពេល VS Code Insiders ត្រូវបានកំណត់រចនាសម្ព័ន្ធសម្រាប់ម៉ូដែល custom endpoint ហើយអ្នកចង់ឱ្យ OmniRoute ដំណើរការដោយមិនមាន custom header field។
ទីតាំងដែលបានណែនាំ៖
- Linux:
~/.config/Code - Insiders/User/chatLanguageModels.json - Windows:
%APPDATA%/Code - Insiders/User/chatLanguageModels.json
ឧទាហរណ៍នៃការប្រើប្រាស់ឈ្មោះក្លែងក្លាយ OmniRoute ដែលមានថូខឹន៖
[
{
"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"
}
}
]
ចំណាំ៖
- ជំនួស
sk-your-omniroute-keyដោយ API key ដែលបានបង្កើតនៅក្នុង OmniRoute។ - វាល
urlគួរតែចង្អុលទៅ/api/v1/vscode/{token}/chat/completions។ - វាល
modelsUrlគួរតែចង្អុលទៅ/api/v1/vscode/{token}/models។ - គួរប្រើលំហូរធម្មតា
/v1+ Bearer header នៅពេល client គាំទ្រ custom headers។ - ថូខឹនដែលបានបង្កប់ក្នុង URL គឺជាជម្រើសបម្រុងសម្រាប់ភាពត្រូវគ្នា ហើយអាចបង្ហាញនៅក្នុងកំណត់ហេតុរបស់ editor ឬប្រវត្តិរបស់ proxy។
Kiro CLI (Amazon)
# ចូលគណនី AWS/Kiro របស់អ្នក៖
kiro-cli login
# CLI ប្រើការផ្ទៀងផ្ទាត់អត្តសញ្ញាណផ្ទាល់ខ្លួន — មិនចាំបាច់ប្រើ OmniRoute ជា backend សម្រាប់ Kiro CLI ខ្លួនវាទេ។
# ប្រើ kiro-cli រួមជាមួយ OmniRoute សម្រាប់ឧបករណ៍ផ្សេងទៀត។
kiro-cli status
សម្រាប់កម្មវិធីផ្ទៃតុ Kiro IDE សូមប្រើ MITM endpoint ដែល OmniRoute បានបើកផ្ដល់
នៅក្រោម /dashboard/cli-tools → Kiro។
10. OmniRoute CLI ខាងក្នុង
ឯកសារប្រតិបត្តិ omniroute ផ្តល់ពាក្យបញ្ជាសម្រាប់វដ្តជីវិតរបស់ម៉ាស៊ីនមេ ការដំឡើង ការវិនិច្ឆ័យបញ្ហា និងការគ្រប់គ្រងអ្នកផ្តល់សេវា។ ចំណុចចាប់ផ្តើម៖ bin/omniroute.mjs។
omniroute # ចាប់ផ្តើមម៉ាស៊ីនមេ (ច្រកលំនាំដើម 20128)
omniroute setup # អ្នកជំនួយការដំឡើងបែបអន្តរកម្ម
omniroute doctor # ពិនិត្យការកំណត់រចនាសម្ព័ន្ធ DB ច្រក និង runtime
omniroute providers list # ការតភ្ជាប់អ្នកផ្តល់សេវាដែលបានកំណត់រចនាសម្ព័ន្ធ
omniroute providers test-all # សាកល្បងរាល់ការតភ្ជាប់ដែលសកម្ម
omniroute reset-password # កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រងឡើងវិញ
omniroute logs # ផ្សាយបន្តផ្ទាល់កំណត់ហេតុសំណើ
omniroute health # ស្ថានភាពសុខភាពលម្អិត (breakers, cache, memory)
omniroute --version # បង្ហាញកំណែ
omniroute --help # បង្ហាញពាក្យបញ្ជាទាំងអស់
ការដំឡើង និងការចាប់ផ្តើម
omniroute setup # អ្នកជំនួយការដំឡើងបែបអន្តរកម្ម
omniroute setup --non-interactive # របៀប CI/ស្វ័យប្រវត្តិកម្ម (អាន env vars + flags)
omniroute setup --password '<value>' # កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រងដោយផ្ទាល់
omniroute setup --add-provider \
--provider openai \
--api-key '<value>' \
--test-provider # បន្ថែម និងសាកល្បងអ្នកផ្តល់សេវាក្នុងពេលតែមួយ
អថេរបរិស្ថានដែលត្រូវបានស្គាល់សម្រាប់ការដំឡើងមិនអន្តរកម្ម៖
| អថេរ | គោលបំណង |
|---|---|
OMNIROUTE_API_KEY |
សោ API របស់អ្នកផ្តល់សេវា (ភ្ជាប់ទៅ --api-key តាមរយៈ Commander .env()) |
DATA_DIR |
ជំនួសទីតាំងថតទិន្នន័យរបស់ OmniRoute |
ធាតុបញ្ចូលមិនអន្តរកម្មផ្សេងទៀតទាំងអស់ត្រូវបានបញ្ជូនជា flags មិនមែនអថេរបរិស្ថានទេ៖
--password, --provider, --provider-name, --provider-base-url, --default-model
(សូមមើលជម្រើស omniroute setup ខាងលើ)។
ការវិនិច្ឆ័យបញ្ហា
omniroute doctor # ពិនិត្យការកំណត់រចនាសម្ព័ន្ធ DB ច្រក runtime អង្គចងចាំ និងភាពរស់រវើក
omniroute doctor --json # JSON ដែលម៉ាស៊ីនអាចអានបាន
omniroute doctor --no-liveness # រំលងការស្ទង់ស្ថានភាពសុខភាព HTTP
omniroute doctor --host 0.0.0.0 # ជំនួស host សម្រាប់ការត្រួតពិនិត្យភាពរស់រវើក
omniroute doctor --liveness-url <url> # ជំនួស URL ពេញលេញរបស់ endpoint ស្ថានភាពសុខភាព
doctor ដំណើរការការត្រួតពិនិត្យទាំងនេះ៖ Config, Database, Storage/encryption,
Port availability, Node runtime, Native binary (better-sqlite3),
Memory និង Server liveness។ វានឹងបញ្ចប់ដោយលេខកូដមិនមែនសូន្យ ប្រសិនបើការត្រួតពិនិត្យណាមួយមានស្ថានភាព fail។
ការគ្រប់គ្រងអ្នកផ្តល់សេវា
omniroute providers available # កាតាឡុកអ្នកផ្តល់សេវា OmniRoute
omniroute providers available --search openai # ត្រងកាតាឡុកតាម id/name/alias/category
omniroute providers available --category api-key # ត្រងតាមប្រភេទ (api-key, oauth, free, ...)
omniroute providers available --json # JSON ដែលម៉ាស៊ីនអាចអានបាន
omniroute providers list # ការតភ្ជាប់អ្នកផ្តល់សេវាដែលបានកំណត់រចនាសម្ព័ន្ធ
omniroute providers list --json
omniroute providers test <id|name> # សាកល្បងការតភ្ជាប់ដែលបានកំណត់រចនាសម្ព័ន្ធមួយ
omniroute providers test-all # សាកល្បងរាល់ការតភ្ជាប់ដែលសកម្ម
omniroute providers validate # ផ្ទៀងផ្ទាត់រចនាសម្ព័ន្ធតែក្នុងមូលដ្ឋាន
omniroute providers add <provider> --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth <provider> # លំហូរ OAuth ដែលមានស្រាប់
omniroute providers edit <id|name> --default-model <model>
omniroute providers remove <id|name> --yes
providers add/import/auth/edit/remove ប្រើ API ជាចម្បង ដូច្នេះដំណើរការជាមួយ
context មូលដ្ឋាន ឬពីចម្ងាយដែលកំពុងសកម្ម។ ការបញ្ចូលព័ត៌មានសម្ងាត់គួរប្រើ
--credential-stdin ឬ --credential-env; --dry-run --json រាយការណ៍តែ
វត្តមាន/រូបរាងដែលបានលាក់បាំងប៉ុណ្ណោះ។ providers available អានកាតាឡុក OmniRoute;
providers list/test/test-all/validate រក្សាឥរិយាបថ SQLite មូលដ្ឋានរបស់ពួកវា និង
មិនតម្រូវឱ្យម៉ាស៊ីនមេកំពុងដំណើរការទេ។
ការសង្គ្រោះ និងការកំណត់ឡើងវិញ
omniroute reset-password # កំណត់ពាក្យសម្ងាត់អ្នកគ្រប់គ្រងឡើងវិញ (ឈ្មោះមួយទៀត៖ omniroute-reset-password)
omniroute reset-encrypted-columns # បង្ហាញការព្រមាន + dry-run សម្រាប់កំណត់ព័ត៌មានសម្ងាត់ដែលបានអ៊ិនគ្រីបឡើងវិញ
omniroute reset-encrypted-columns --force # ពិតជាកំណត់ព័ត៌មានសម្ងាត់ដែលបានអ៊ិនគ្រីបទៅជា null ក្នុង SQLite
ការនាំចេញព័ត៌មានសម្ងាត់ (⚠ ប្រើប្រាស់ដោយប្រុងប្រយ័ត្ន)
omniroute auth export # បង្ហាញការព្រមាន + ជំហានបញ្ជាក់ — មិនចូលប្រើ DB
omniroute auth export --force # នាំចេញព័ត៌មានសម្ងាត់ដែលបានឌិគ្រីបរបស់ការតភ្ជាប់ទាំងអស់ទៅ stdout ជា JSON
omniroute auth export --force --id <id> # នាំចេញតែការតភ្ជាប់ដែលត្រូវគ្នា
omniroute auth export --force --format env # បញ្ចេញបន្ទាត់ OMNIROUTE_<PROVIDER>_<FIELD>=<value>
omniroute auth export --force --out creds.json # សរសេរទៅឯកសារ (បង្កើតជាមួយសិទ្ធិ 0600)
auth export ដំណើរការ តែក្នុងមូលដ្ឋាន (អាន SQLite ដោយផ្ទាល់ ដោយគ្មាន HTTP route) ហើយបោះពុម្ព/សរសេរ
តម្លៃ apiKey/accessToken/refreshToken/idToken ជា អត្ថបទធម្មតា ដោយចេតនា — នេះជាមុខងារ មិនមែនជា
កំហុសទេ។ គ្មានអ្វីត្រូវបានអានពីមូលដ្ឋានទិន្នន័យ ហើយគ្មានអ្វីត្រូវបានឌិគ្រីបទេ បើគ្មាន --force។ ផ្ទាំង
ការព្រមាននៅ stderr តែងតែត្រូវបានបង្ហាញ មុនពេលអត្ថបទធម្មតាណាមួយត្រូវបានបញ្ចេញ។ តម្រូវឱ្យកំណត់ STORAGE_ENCRYPTION_KEY។
វាលដែលបរាជ័យក្នុងការឌិគ្រីប (សោហួសសុពលភាព ឬ ciphertext ខូច) ត្រូវបានរាយការណ៍ជា
<field>DecryptFailed: true ជំនួសឱ្យការបញ្ឈប់ការនាំចេញទាំងមូល ឬការលេចធ្លាយកំហុសមូលដ្ឋាន។
ពាក្យបញ្ជារងផ្សេងទៀត
ពាក្យបញ្ជាទាំងនេះសន្មតថាម៉ាស៊ីនមេ OmniRoute កំពុងដំណើរការ លើកលែងតែមានការកត់សម្គាល់ផ្សេងពីនេះ៖
omniroute status # ស្ថានភាពពេលដំណើរការដ៏ទូលំទូលាយ
omniroute logs # បង្ហាញលំហូរកំណត់ហេតុសំណើ (--json, --search, --follow)
omniroute config show # បង្ហាញការកំណត់រចនាសម្ព័ន្ធបច្ចុប្បន្ន
omniroute provider list # រាយបញ្ជីអ្នកផ្តល់សេវាដែលមាន (ឈ្មោះក្លែងក្លាយរបស់ providers list)
omniroute provider add # ចុះឈ្មោះ OmniRoute ជាអ្នកផ្តល់សេវានៅលើឧបករណ៍មួយ
omniroute keys add | list | remove # គ្រប់គ្រង API keys
omniroute models [provider] # រាយបញ្ជីម៉ូដែល (--json, --search)
omniroute combo list | switch | create | delete
omniroute backup # ថតចម្លងទុកការកំណត់រចនាសម្ព័ន្ធ + DB
omniroute restore # ស្តារឡើងវិញពីច្បាប់ចម្លងដែលបានថតទុកពីមុន
omniroute health # ស្ថានភាពសុខភាពលម្អិត (breakers, cache, memory)
omniroute quota # ការប្រើប្រាស់កូតារបស់អ្នកផ្តល់សេវា
omniroute cache # ស្ថានភាព cache
omniroute cache clear # សម្អាត semantic + signature caches
omniroute mcp status | restart # ស្ថានភាព / ការចាប់ផ្តើម MCP server ឡើងវិញ
omniroute a2a status | card # ស្ថានភាព A2A server / កាត agent
omniroute tunnel list | create | stop # គ្រប់គ្រង tunnels (cloudflare/tailscale/ngrok)
omniroute env show | get <k> | set <k> <v> # ពិនិត្យ / កំណត់ env vars (បណ្តោះអាសន្ន)
omniroute test # ការធ្វើតេស្តរហ័សលើការតភ្ជាប់របស់អ្នកផ្តល់សេវា
omniroute update # ពិនិត្យមើលបច្ចុប្បន្នភាព
omniroute completion # បង្កើតការបំពេញពាក្យបញ្ជា shell
ជម្រើសដែលប្រើជាទូទៅ
| ជម្រើស | សេចក្ដីពិពណ៌នា |
|---|---|
--no-open |
កុំបើកកម្មវិធីរុករកតាមអ៊ីនធឺណិតដោយស្វ័យប្រវត្តិនៅពេលចាប់ផ្តើម |
--port <n> |
កំណត់ API port ជំនួស (លំនាំដើម 20128) |
--mcp |
ដំណើរការជា MCP server តាមរយៈ stdio (សម្រាប់ IDEs) |
--non-interactive |
មុខងារ CI (គ្មានសំណួរបញ្ចូល; អានពី env/flags) |
--json |
លទ្ធផល JSON ដែលម៉ាស៊ីនអាចអានបាន (doctor, providers ជាដើម) |
--help, -h |
បង្ហាញជំនួយជាក់លាក់សម្រាប់ពាក្យបញ្ជា |
--version, -v |
បង្ហាញកំណែដែលបានដំឡើង |
API Endpoints ដែលមាន
| Endpoint | ការពិពណ៌នា | ប្រើសម្រាប់ |
|---|---|---|
/v1/chat/completions |
ការជជែកស្តង់ដារ (គ្រប់អ្នកផ្តល់សេវា) | ឧបករណ៍ទំនើបទាំងអស់ |
/v1/responses |
Responses API (ទម្រង់ OpenAI) | Codex, លំហូរការងារបែបភ្នាក់ងារ |
/v1/completions |
ការបំពេញអត្ថបទបែបចាស់ | ឧបករណ៍ចាស់ៗដែលប្រើ prompt: |
/v1/embeddings |
ការបង្កប់អត្ថបទ | RAG, ការស្វែងរក |
/v1/images/generations |
ការបង្កើតរូបភាព | GPT-Image, Flux ជាដើម |
/v1/audio/speech |
បំប្លែងអត្ថបទទៅជាសំឡេង | ElevenLabs, OpenAI TTS |
/v1/audio/transcriptions |
បំប្លែងសំឡេងទៅជាអត្ថបទ | Deepgram, AssemblyAI |
ឧទាហរណ៍ដែលអាចចម្លងទៅប្រើបានភ្លាមៗ ជាមួយ OmniRoute URL ដែលមាន token៖
ឧទាហរណ៍ token: sk-a3ab3c080beaee3a-69f4a4-070d71af
OpenAI base ស្តង់ដារ: http://localhost:20128/v1
ម៉ូដែល VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models
ការជជែក VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions
ការឆ្លើយតប VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses
ស្លាក Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags
ការជជែក Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat
ការដោះស្រាយបញ្ហា
| កំហុស | មូលហេតុ | ដំណោះស្រាយ |
|---|---|---|
Connection refused |
OmniRoute មិនកំពុងដំណើរការ | omniroute serve |
401 Unauthorized |
API key មិនត្រឹមត្រូវ | ពិនិត្យក្នុង /dashboard/api-manager |
No combo configured |
មិនមាន routing combo ដែលសកម្ម | រៀបចំក្នុង /dashboard/combos |
| CLI បង្ហាញ "មិនបានដំឡើង" | Binary មិនស្ថិតក្នុង PATH | ពិនិត្យ which <command> |
| Dashboard បង្ហាញ "រកមិនឃើញ" បន្ទាប់ពីដំឡើង | Cache ចាស់ហួសសម័យ | ចុច "⟳ ផ្ទុកការរកឃើញឡើងវិញ" ក្នុង dashboard |
តំណចាស់ /dashboard/cli-tools |
Bookmark មុន v3.8.6 | បញ្ជូនបន្តដោយស្វ័យប្រវត្តិទៅ /dashboard/cli-code (308) |
តំណចាស់ /dashboard/agents |
Bookmark មុន v3.8.6 | បញ្ជូនបន្តដោយស្វ័យប្រវត្តិទៅ /dashboard/acp-agents (308) |