omniroute 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/README.md +1 -1
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +55 -55
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/_global-error.html +2 -2
  42. package/app/.next/server/app/_global-error.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  47. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  48. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  49. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/models/route.js +1 -1
  107. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  109. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/providers/route.js +1 -1
  131. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/docs/page.js +1 -1
  195. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app-paths-manifest.json +55 -55
  207. package/app/.next/server/chunks/1909.js +1 -1
  208. package/app/.next/server/chunks/8252.js +1 -1
  209. package/app/.next/server/chunks/8907.js +1 -1
  210. package/app/.next/server/pages/500.html +2 -2
  211. package/app/.next/server/server-reference-manifest.js +1 -1
  212. package/app/.next/server/server-reference-manifest.json +1 -1
  213. package/app/.next/static/chunks/{5846-2907f9dda1834c88.js → 5846-d3aa3ba9dd16fa55.js} +1 -1
  214. package/app/package.json +1 -1
  215. package/package.json +1 -1
  216. package/README.ar.md +0 -1683
  217. package/README.bg.md +0 -1691
  218. package/README.da.md +0 -1692
  219. package/README.de.md +0 -1696
  220. package/README.es.md +0 -1436
  221. package/README.fi.md +0 -1586
  222. package/README.fr.md +0 -1435
  223. package/README.he.md +0 -1586
  224. package/README.hu.md +0 -1586
  225. package/README.id.md +0 -1586
  226. package/README.in.md +0 -1225
  227. package/README.it.md +0 -1434
  228. package/README.ja.md +0 -1583
  229. package/README.ko.md +0 -1586
  230. package/README.ms.md +0 -1587
  231. package/README.nl.md +0 -1586
  232. package/README.no.md +0 -1586
  233. package/README.phi.md +0 -1587
  234. package/README.pl.md +0 -1586
  235. package/README.pt-BR.md +0 -1499
  236. package/README.pt.md +0 -1586
  237. package/README.ro.md +0 -1588
  238. package/README.ru.md +0 -1433
  239. package/README.sk.md +0 -1590
  240. package/README.sv.md +0 -1587
  241. package/README.th.md +0 -1577
  242. package/README.uk-UA.md +0 -1592
  243. package/README.vi.md +0 -1586
  244. package/README.zh-CN.md +0 -1432
  245. /package/app/.next/static/{jBXsbnBQXxbuL3eAmEO72 → xYoMYiq2lWi73ieYn-e4s}/_buildManifest.js +0 -0
  246. /package/app/.next/static/{jBXsbnBQXxbuL3eAmEO72 → xYoMYiq2lWi73ieYn-e4s}/_ssgManifest.js +0 -0
package/README.bg.md DELETED
@@ -1,1691 +0,0 @@
1
- # 🚀 OmniRoute — Безплатният AI Gateway
2
-
3
- ### Никога не спирайте да кодирате. Интелигентно маршрутизиране към **БЕЗПЛАТНИ и евтини AI модели** с автоматичен резервен вариант.
4
-
5
- _Вашият универсален API прокси — една крайна точка, 36+ доставчици, нулев престой. Сега с **MCP & A2A** агентска оркестрация._
6
-
7
- **Завършвания на чат • Вграждания • Генериране на изображения • Видео • Музика • Аудио • Прекласиране • MCP сървър • A2A протокол • 100% TypeScript**
8
-
9
- ---
10
-
11
- <div align="center">
12
-
13
- [![npm версия](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute)
14
- [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)
15
- [![Лиценз](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
16
- [![Уебсайт](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)
17
- [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
18
-
19
- [🌐 Уебсайт](https://omniroute.online) • [🚀 Бърз старт](#-quick-start) • [💡 Функции](#-key-features) • [📖 Документи](#-documentation) • [💰 Ценообразуване](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
20
-
21
- </div>
22
-
23
- 🌐 **Налично на:** 🇺🇸 [английски](README.md) | 🇧🇷 [Португалски (Бразилия)](README.pt-BR.md) | 🇪🇸 [Испански] (README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [италиански] (README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी] (README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [маджарски] (README.hu.md) | 🇮🇩 [бахаса Индонезия](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Нидерландия](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Португалия)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Полски](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [филипински] (README.phi.md)
24
-
25
- ---
26
-
27
- ## 🖼️ Главно табло за управление
28
-
29
- <div align="center">
30
- <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
31
- </div>
32
-
33
- ---
34
-
35
- ## 📸 Визуализация на таблото за управление
36
-
37
- <details>
38
- <summary><b>Щракнете, за да видите екранни снимки на таблото </b></summary>
39
-
40
- | Страница | Екранна снимка |
41
- | -------------------------- | ----------------------------------------------------- |
42
- | **Доставчици** | ![Доставчици](docs/screenshots/01-providers.png) |
43
- | **Комбота** | ![Комбота](docs/screenshots/02-combos.png) |
44
- | **Анализ** | ![Анализ](docs/screenshots/03-analytics.png) |
45
- | **Здраве** | ![Здраве](docs/screenshots/04-health.png) |
46
- | **Преводач** | ![Преводач](docs/screenshots/05-translator.png) |
47
- | **Настройки** | ![Настройки](docs/screenshots/06-settings.png) |
48
- | **CLI инструменти** | ![CLI инструменти](docs/screenshots/07-cli-tools.png) |
49
- | **Регистри за използване** | ![Използване](docs/screenshots/08-usage.png) |
50
- | **Крайна точка** | ![Крайна точка](docs/screenshots/09-endpoint.png) |
51
-
52
- </details>
53
-
54
- ---
55
-
56
- ### 🚀 New in v2.0.9+ — Playground, CLI Fingerprints & ACP
57
-
58
- | Feature | What It Does |
59
- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
60
- | 🎮 **Model Playground** | Dashboard page to test any model directly — provider/model/endpoint selectors, Monaco Editor, streaming, abort, timing |
61
- | 🔏 **CLI Fingerprint Matching** | Per-provider header/body ordering to match native CLI signatures — toggle per provider in Settings > Security. **Your proxy IP is preserved** |
62
- | 🤝 **ACP Support (Agent Client Protocol)** | CLI agent discovery (Codex, Claude, Goose, Gemini CLI, OpenClaw), process spawner, `/api/acp/agents` endpoint |
63
- | 🤖 **ACP Agents Dashboard** | Debug > Agents page — grid of 14 agents with install status, version, custom agent form for any CLI tool |
64
- | 🔧 **Custom Model `apiFormat` Routing** | Custom models with `apiFormat: "responses"` now correctly route to the Responses API translator |
65
- | 🏢 **Codex Workspace Isolation** | Multiple Codex workspaces per email — OAuth correctly separates connections by workspace ID |
66
- | 🔄 **Electron Auto-Update** | Desktop app checks for updates + auto-install on restart |
67
-
68
- ### 🤖 Безплатен доставчик на AI за вашите любими кодиращи агенти
69
-
70
- _Свържете всеки базиран на AI IDE или CLI инструмент чрез OmniRoute — безплатен API шлюз за неограничено кодиране._
71
-
72
- <table>
73
- <tr>
74
- <td align="center" width="110">
75
- <a href="https://github.com/openclaw/openclaw">
76
- <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
77
- <b>OpenClaw</b>
78
- </a><br/><sub>⭐ 205K</sub>
79
- </td>
80
- <td align="center" width="110">
81
- <a href="https://github.com/HKUDS/nanobot">
82
- <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
83
- <b>NanoBot</b>
84
- </a><br/>
85
- <sub>⭐ 20.9K</sub>
86
- </td>
87
- <td align="center" width="110">
88
- <a href="https://github.com/sipeed/picoclaw">
89
- <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
90
- <b>PicoClaw</b>
91
- </a><br/>
92
- <sub>⭐ 14.6K</sub>
93
- </td>
94
- <td align="center" width="110">
95
- <a href="https://github.com/zeroclaw-labs/zeroclaw">
96
- <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
97
- <b>ZeroClaw</b>
98
- </a><br/>
99
- <sub>⭐ 9.9K</sub>
100
- </td>
101
- <td align="center" width="110">
102
- <a href="https://github.com/nearai/ironclaw">
103
- <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
104
- <b>IronClaw</b>
105
- </a><br/>
106
- <sub>⭐ 2.1K</sub>
107
- </td>
108
- </tr>
109
- <tr>
110
- <td align="center" width="110">
111
- <a href="https://github.com/anomalyco/opencode">
112
- <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
113
- <b>OpenCode</b>
114
- </a><br/>
115
- <sub>⭐ 106K</sub>
116
- </td>
117
- <td align="center" width="110">
118
- <a href="https://github.com/openai/codex">
119
- <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
120
- <b>Кодекс CLI</b>
121
- </a><br/>
122
- <sub>⭐ 60.8K</sub>
123
- </td>
124
- <td align="center" width="110">
125
- <a href="https://github.com/anthropics/claude-code">
126
- <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
127
- <b>Код на Клод </b>
128
- </a><br/>
129
- <sub>⭐ 67.3K</sub>
130
- </td>
131
- <td align="center" width="110">
132
- <a href="https://github.com/google-gemini/gemini-cli">
133
- <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
134
- <b>Близнаци CLI</b>
135
- </a><br/>
136
- <sub>⭐ 94,7K</sub>
137
- </td>
138
- <td align="center" width="110">
139
- <a href="https://github.com/Kilo-Org/kilocode">
140
- <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
141
- <b>Kilo код </b>
142
- </a><br/>
143
- <sub>⭐ 15,5K</sub>
144
- </td>
145
- </tr>
146
- </table>
147
-
148
- <sub>📡 Всички агенти се свързват чрез <code>http://localhost:20128/v1</code> или <code>http://cloud.omniroute.online/v1</code> — една конфигурация, неограничени модели и квота</sub>
149
-
150
- ---
151
-
152
- ## 🤔 Защо OmniRoute?
153
-
154
- **Спрете да пилеете пари и да достигате лимити:**
155
-
156
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Абонаментната квота изтича неизползвана всеки месец
157
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ограниченията на скоростта ви спират да кодирате по средата
158
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Скъпи API ($20-50/месец на доставчик)
159
- - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ръчно превключване между доставчици
160
-
161
- **OmniRoute решава това:**
162
-
163
- - ✅ **Увеличете максимално абонаментите** - Проследете квотата, използвайте всеки бит преди нулиране
164
- - ✅ **Автоматично възстановяване** - Абонамент → API ключ → Евтино → Безплатно, нулево време на престой
165
- - ✅ **Множество акаунти** - Кръгови сметки между акаунти на доставчик
166
- - ✅ **Универсален** - Работи с Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, всеки CLI инструмент
167
-
168
- ---
169
-
170
- ## 📧 Поддръжка> 💬 **Присъединете се към нашата общност!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Получавайте помощ, споделяйте съвети и бъдете в течение.
171
-
172
- - **Уебсайт**: [omniroute.online](https://omniroute.online)
173
- - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
174
- - **Проблеми**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
175
- - **WhatsApp**: [Група на общността](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
176
- - **Принос**: Вижте [CONTRIBUTING.md](CONTRIBUTING.md), отворете PR или изберете `good first issue`
177
- - **Оригинален проект**: [9router от decolua](https://github.com/decolua/9router)
178
-
179
- ---
180
-
181
- ## 🔄 Как работи
182
-
183
- ```
184
- ┌─────────────┐
185
- │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
186
- │ Tool │
187
- └──────┬──────┘
188
- │ http://localhost:20128/v1
189
-
190
- ┌─────────────────────────────────────────┐
191
- │ OmniRoute (Smart Router) │
192
- │ • Format translation (OpenAI ↔ Claude) │
193
- │ • Quota tracking + Embeddings + Images │
194
- │ • Auto token refresh │
195
- └──────┬──────────────────────────────────┘
196
-
197
- ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
198
- │ ↓ quota exhausted
199
- ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
200
- │ ↓ budget limit
201
- ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
202
- │ ↓ budget limit
203
- └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited)
204
-
205
- Result: Never stop coding, minimal cost
206
- ```
207
-
208
- ---
209
-
210
- ## 🎯 Какво решава OmniRoute — 30 реални болни точки и случаи на употреба
211
-
212
- > **Всеки разработчик, използващ AI инструменти, се сблъсква с тези проблеми всеки ден.** OmniRoute е създаден, за да разреши всички тях — от преразход на разходите до регионални блокове, от повредени OAuth потоци до операции на протоколи и корпоративна наблюдаемост.
213
-
214
- <details>
215
- <summary><b>💸 1. „Плащам за скъп абонамент, но все още ме прекъсват ограничения“ </b></summary>
216
-
217
- Разработчиците плащат $20–200/месец за Claude Pro, Codex Pro или GitHub Copilot. Дори и да плащате, квотата има таван — 5 часа използване, седмични лимити или лимити на цените на минута. По средата на сесията на кодиране, доставчикът спира да отговаря и разработчикът губи поток и производителност.
218
-
219
- **Как OmniRoute го решава:**
220
-
221
- - **Smart 4-Tier Fallback** — Ако квотата за абонамент се изчерпи, автоматично пренасочва към API Key → Евтино → Безплатно с нулева ръчна намеса
222
- - **Проследяване на квоти в реално време** — Показва потреблението на токени в реално време с обратно отброяване за нулиране (5 часа, ежедневно, седмично)
223
- - **Поддръжка на няколко акаунта** — Множество акаунти на доставчик с автоматичен кръгов режим — когато единият свърши, превключва към следващия
224
- - **Персонализирани комбинации** — Възможност за персонализиране на резервни вериги с 6 стратегии за балансиране (първо попълване, кръгово, P2C, произволно, най-малко използвано, оптимизирано по отношение на разходите)
225
- - **Codex Business Quotas** — Мониторинг на квотите на работното пространство на бизнеса/екипа директно в таблото за управление
226
-
227
- </details>
228
-
229
- <details>
230
- <summary><b>🔌 2. „Трябва да използвам няколко доставчика, но всеки има различен API“ </b></summary>
231
-
232
- OpenAI използва един формат, Claude (Anthropic) използва друг, Gemini още един. Ако разработчикът иска да тества модели от различни доставчици или резервен вариант между тях, той трябва да преконфигурира SDK, да промени крайните точки, да се справи с несъвместими формати. Персонализираните доставчици (FriendLI, NIM) имат крайни точки на нестандартен модел.
233
-
234
- **Как OmniRoute го решава:**
235
-
236
- - **Unified Endpoint** — Единичен `http://localhost:20128/v1` служи като прокси за всички 36+ доставчици
237
- - **Превод на формат** — Автоматично и прозрачно: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
238
- - **Response Sanitization** — Премахва нестандартните полета (`x_groq`, `usage_breakdown`, `service_tier`), които нарушават OpenAI SDK v1.83+
239
- - **Нормализиране на ролята** — Преобразува `developer` → `system` за доставчици, които не са OpenAI; `system` → `user` за GLM/ERNIE
240
- - **Think Tag Extraction** — Извлича `<think>` блокове от модели като DeepSeek R1 в стандартизирани `reasoning_content`
241
- - **Структуриран изход за Gemini** — `json_schema` → `responseMimeType`/`responseSchema` автоматично преобразуване
242
- - **`stream` по подразбиране е `false`** — Подравнява се със спецификацията на OpenAI, като се избягват неочаквани SSE в SDK на Python/Rust/Go</details>
243
-
244
- <details>
245
- <summary><b>🌐 3. „Моят доставчик на AI блокира моя регион/държава“ </b></summary>
246
-
247
- Доставчици като OpenAI/Codex блокират достъпа от определени географски региони. Потребителите получават грешки като `unsupported_country_region_territory` по време на OAuth и API връзки. Това е особено разочароващо за разработчиците от развиващите се страни.
248
-
249
- **Как OmniRoute го решава:**
250
-
251
- - **3-Level Proxy Config** — Конфигурируем прокси на 3 нива: глобално (цял трафик), на доставчик (само един доставчик) и на връзка/ключ
252
- - **Цветно кодирани прокси значки** — Визуални индикатори: 🟢 глобален прокси, 🟡 прокси на доставчик, 🔵 прокси за връзка, винаги показващ IP
253
- - **OAuth Token Exchange Through Proxy** — OAuth потокът също минава през проксито, решавайки `unsupported_country_region_territory`
254
- - **Тестове за връзка чрез прокси** — Тестовете за връзка използват конфигурирания прокси (без повече директен байпас)
255
- - **SOCKS5 Support** — Пълна SOCKS5 прокси поддръжка за изходящо маршрутизиране
256
- - **TLS Fingerprint Spoofing** — подобен на браузър TLS пръстов отпечатък чрез `wreq-js` за заобикаляне на откриването на ботове
257
-
258
- </details>
259
-
260
- <details>
261
- <summary><b>🆓 4. „Искам да използвам AI за кодиране, но нямам пари“ </b></summary>
262
-
263
- Не всеки може да плаща $20-200/месец за абонаменти за AI. Студенти, разработчици от развиващи се страни, любители и фрийлансъри се нуждаят от достъп до качествени модели на нулева цена.
264
-
265
- **Как OmniRoute го решава:**
266
-
267
- - **Вградени доставчици на безплатни нива** — Вградена поддръжка за 100% безплатни доставчици: iFlow (8 неограничени модела), Qwen (3 неограничени модела), Kiro (Claude безплатно), Gemini CLI (180K/месец безплатно)
268
- - **Ollama Cloud** — Cloud-hosted Ollama models at `api.ollama.com` with free "Light usage" tier; use `ollamacloud/<model>` prefix
269
- - **Безплатни само комбинации** — Верига `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/месец с нулев престой
270
- - **NVIDIA NIM безплатни кредити** — интегрирани 1000 безплатни кредита
271
- - **Стратегия за оптимизиране на разходите** — Стратегия за маршрутизиране, която автоматично избира най-евтиния наличен доставчик
272
-
273
- </details>
274
-
275
- <details>
276
- <summary><b>🔒 5. „Трябва да защитя моя AI шлюз от неоторизиран достъп“ </b></summary>
277
-
278
- При излагане на AI шлюз към мрежата (LAN, VPS, Docker), всеки с адреса може да използва токените/квотата на разработчика. Без защита приложните програмни интерфейси (API) са уязвими за злоупотреба, незабавно инжектиране и злоупотреба.
279
-
280
- **Как OmniRoute го решава:**
281
-
282
- - **API Key Management** — Генериране, ротация и обхват за всеки доставчик със специална страница `/dashboard/api-manager`
283
- - **Разрешения на ниво модел** — Ограничете API ключовете до конкретни модели (`openai/*`, шаблони със заместващи символи), с превключвател Разрешаване на всички/Ограничаване
284
- - **API Endpoint Protection** — Изискване на ключ за `/v1/models` и блокиране на определени доставчици от списъка
285
- - **Auth Guard + CSRF Protection** — Всички маршрути на таблото са защитени с `withAuth` мидълуер + CSRF токени
286
- - **Ограничител на скоростта** — Ограничаване на скоростта на IP с конфигурируеми прозорци
287
- - **IP Filtering** — Списък с разрешени/списък с блокирани за контрол на достъпа
288
- - **Prompt Injection Guard** — Дезинфекция срещу злонамерени бързи модели
289
- - **AES-256-GCM криптиране** — Идентификационните данни са криптирани в покой
290
-
291
- </details>
292
-
293
- <details>
294
- <summary><b>🛑 6. „Доставчикът ми се срина и загубих потока на кодиране“ </b></summary>Доставчиците на AI могат да станат нестабилни, да върнат грешки 5xx или да достигнат временни лимити на скоростта. Ако разработчикът зависи от един доставчик, той е прекъснат. Без прекъсвачи многократните повторни опити могат да сринат приложението.
295
-
296
- **Как OmniRoute го решава:**
297
-
298
- - **Прекъсвач за всеки доставчик** — Автоматично отваряне/затваряне с конфигурируеми прагове и изчакване (затворено/отворено/полуотворено)
299
- - **Exponential Backoff** — Прогресивни забавяния при повторен опит
300
- - **Anti-Thundering Herd** — Mutex + семафорна защита срещу едновременни повторни бури
301
- - **Combo Fallback Chains** — Ако основният доставчик се провали, автоматично преминава през веригата без намеса
302
- - **Combo Circuit Breaker** — Автоматично деактивира неизправните доставчици в рамките на комбинирана верига
303
- | 🎯 **Endpoint-Aware Models** | Custom models declare supported endpoints + API format |
304
- - **Health Dashboard** — Мониторинг на времето на работа, състояния на прекъсвачи, блокировки, статистика на кеша, латентност на p50/p95/p99
305
-
306
- </details>
307
-
308
- <details>
309
- <summary><b>🔧 7. „Конфигурирането на всеки AI инструмент е досадно и повтарящо се“ </b></summary>
310
-
311
- Разработчиците използват Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Всеки инструмент се нуждае от различна конфигурация (крайна точка на API, ключ, модел). Преконфигурирането при смяна на доставчик или модел е загуба на време.
312
-
313
- **Как OmniRoute го решава:**
314
-
315
- - **CLI Tools Dashboard** — Специална страница с настройка с едно кликване за Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
316
- - **GitHub Copilot Config Generator** — Генерира `chatLanguageModels.json` за VS код с групов избор на модел
317
- - **Onboarding Wizard** — Насочвана настройка в 4 стъпки за потребители за първи път
318
- - **Една крайна точка, всички модели** — Конфигурирайте `http://localhost:20128/v1` веднъж, достъп до 36+ доставчици
319
-
320
- </details>
321
-
322
- <details>
323
- <summary><b>🔑 8. „Управлението на OAuth токени от множество доставчици е ад“ </b></summary>
324
-
325
- Claude Code, Codex, Gemini CLI, Copilot — всички използват OAuth 2.0 с изтичащи токени. Разработчиците трябва постоянно да се удостоверяват повторно, да се справят с `client_secret is missing`, `redirect_uri_mismatch` и повреди на отдалечени сървъри. OAuth на LAN/VPS е особено проблематичен.
326
-
327
- **Как OmniRoute го решава:**
328
-
329
- - **Auto Token Refresh** — OAuth токените се опресняват във фонов режим преди изтичане
330
- - **OAuth 2.0 (PKCE) Вграден** — Автоматичен поток за Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
331
- - **Multi-Account OAuth** — Множество акаунти на доставчик чрез JWT/ID извличане на токени
332
- - **OAuth LAN/Remote Fix** — Частно IP откриване за `redirect_uri` + ръчен URL режим за отдалечени сървъри
333
- - **OAuth зад Nginx** — Използва `window.location.origin` за обратна прокси съвместимост
334
- - **Отдалечено ръководство за OAuth** — Ръководство стъпка по стъпка за идентификационни данни на Google Cloud на VPS/Docker
335
-
336
- </details>
337
-
338
- <details>
339
- <summary><b>📊 9. „Не знам колко харча или къде“ </b></summary>
340
-
341
- Разработчиците използват множество платени доставчици, но нямат унифициран поглед върху разходите. Всеки доставчик има собствено табло за таксуване, но няма консолидиран изглед. Неочакваните разходи могат да се натрупат.
342
-
343
- **Как OmniRoute го решава:**
344
-
345
- - **Табло за анализ на разходите** — Проследяване на разходите за токени и управление на бюджета за доставчик
346
- - **Бюджетни ограничения за ниво** — Таван на разходите за ниво, което задейства автоматично резервно връщане
347
- - **Конфигурация на ценообразуване за модел** — Конфигурируеми цени за модел- **Статистика на използването на API ключ** — Брой заявки и последно използвано клеймо за всеки ключ
348
- - **Табло за управление на анализи** — Статистически карти, диаграма на използването на модела, таблица на доставчика с проценти на успех и закъснение
349
-
350
- </details>
351
-
352
- <details>
353
- <summary><b>🐛 10. „Не мога да диагностицирам грешки и проблеми в AI повиквания“ </b></summary>
354
-
355
- Когато обаждането е неуспешно, разработчикът не знае дали е ограничение на скоростта, изтекъл токен, грешен формат или грешка на доставчика. Фрагментирани регистрационни файлове в различни терминали. Без възможност за наблюдение отстраняването на грешки е метод проба-грешка.
356
-
357
- **Как OmniRoute го решава:**
358
-
359
- - **Табло за управление на унифицирани регистрационни файлове** — 4 раздела: регистрационни файлове за заявки, регистрационни файлове за прокси, регистрационни файлове за одит, конзола
360
- - **Console Log Viewer** — Преглед в стил терминал в реално време с цветно кодирани нива, автоматично превъртане, търсене, филтър
361
- - **SQLite Proxy Logs** — Постоянни регистрационни файлове, които оцеляват при рестартиране на сървъра
362
- - **Translator Playground** — 4 режима за отстраняване на грешки: Playground (превод на формат), Chat Tester (обиколно пътуване), Test Bench (партида), Live Monitor (в реално време)
363
- - **Заявка за телеметрия** — p50/p95/p99 латентност + проследяване на X-Request-Id
364
- - **Регистриране на базата на файлове с ротация** — Прехващачът на конзолата улавя всичко в JSON журнал с ротация, базирана на размера
365
-
366
- </details>
367
-
368
- <details>
369
- <summary><b>🏗️ 11. „Внедряването и поддържането на шлюза е сложно“ </b></summary>
370
-
371
- Инсталирането, конфигурирането и поддържането на AI прокси в различни среди (локални, VPS, Docker, облак) е трудоемко. Проблеми като твърдо кодирани пътища, `EACCES` в директории, конфликти на портове и междуплатформени компилации добавят триене.
372
-
373
- **Как OmniRoute го решава:**
374
-
375
- - **глобално инсталиране на npm** — `npm install -g omniroute && omniroute` — готово
376
- - **Docker Multi-Platform** — роден AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi)
377
- - **Docker Compose Profiles** — `base` (без CLI инструменти) и `cli` (с Claude Code, Codex, OpenClaw)
378
- - **Electron Desktop App** — родно приложение за Windows/macOS/Linux със системна област, автоматично стартиране, офлайн режим
379
- - **Split-Port Mode** — API и табло за управление на отделни портове за разширени сценарии (обратен прокси, контейнерна мрежа)
380
- - **Cloud Sync** — Конфигуриране на синхронизиране между устройства чрез Cloudflare Workers
381
- - **DB Backups** — Автоматично архивиране, възстановяване, експортиране и импортиране на всички настройки
382
-
383
- </details>
384
-
385
- <details>
386
- <summary><b>🌍 12. „Интерфейсът е само на английски и екипът ми не говори английски“ </b></summary>
387
-
388
- Екипите в неанглоговорящите страни, особено в Латинска Америка, Азия и Европа, се затрудняват с интерфейси само на английски. Езиковите бариери намаляват приемането и увеличават грешките в конфигурацията.
389
-
390
- **Как OmniRoute го решава:**
391
-
392
- - **Dashboard i18n — 30 езика** — Преведени всички 500+ клавиша, включително арабски, български, датски, немски, испански, фински, френски, иврит, хинди, унгарски, индонезийски, италиански, японски, корейски, малайски, холандски, норвежки, полски, португалски (PT/BR), румънски, руски, словашки, шведски, тайландски, украински, виетнамски, китайски, филипински, английски
393
- - **RTL Support** — Поддръжка отдясно наляво за арабски и иврит
394
- - **Многоезични READMEs** — 30 пълни превода на документация
395
- - **Избор на език** — Икона на глобус в заглавката за превключване в реално време</details>
396
-
397
- <details>
398
- <summary><b>🔄 13. „Имам нужда от повече от чат — имам нужда от вграждания, изображения, аудио“ </b></summary>
399
-
400
- AI не е просто завършване на чат. Разработчиците трябва да генерират изображения, да транскрибират аудио, да създават вграждания за RAG, да прекласират документи и да модерират съдържание. Всеки API има различна крайна точка и формат.
401
-
402
- **Как OmniRoute го решава:**
403
-
404
- - **Вграждания** — `/v1/embeddings` с 6 доставчика и 9+ модела
405
- - **Генериране на изображения** — `/v1/images/generations` с 10 доставчика и 20+ модела (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
406
- - **Текст към видео** — `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) и SD WebUI
407
- - **Текст към музика** — `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
408
- - **Аудио транскрипция** — `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
409
- - **Текст-към-говор** — `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, Inworld, Cartesia, PlayHT, + съществуващи доставчици
410
- - **Модерации** — `/v1/moderations` — Проверки за безопасност на съдържанието
411
- - **Прекласиране** — `/v1/rerank` — Прекласиране на уместността на документа
412
- - **API за отговори** — Пълна `/v1/responses` поддръжка за Codex
413
-
414
- </details>
415
-
416
- <details>
417
- <summary><b>🧪 14. „Нямам начин да тествам и сравнявам качеството между моделите“ </b></summary>
418
-
419
- Разработчиците искат да знаят кой модел е най-подходящ за техния случай на употреба – код, превод, разсъждения – но ръчното сравняване е бавно. Не съществуват интегрирани инструменти за оценка.
420
-
421
- **Как OmniRoute го решава:**
422
-
423
- - **Оценки на LLM** — Тестване със златен комплект с 10 предварително заредени случая, обхващащи поздрави, математика, география, генериране на код, съответствие с JSON, превод, маркдаун, отказ за безопасност
424
- - **4 стратегии за съвпадение** — `exact`, `contains`, `regex`, `custom` (JS функция)
425
- - **Translator Playground Test Bench** — Пакетно тестване с множество входове и очаквани изходи, сравнение между доставчици
426
- - **Chat Tester** — Пълно двупосочно пътуване с визуално изобразяване на отговора
427
- - **Монитор на живо** — Поток в реално време на всички заявки, преминаващи през проксито
428
-
429
- </details>
430
-
431
- <details>
432
- <summary><b>📈 15. „Трябва да мащабирам, без да губя производителност“ </b></summary>
433
-
434
- Тъй като обемът на заявките нараства, без кеширане едни и същи въпроси генерират дублиращи се разходи. Без идемпотентност, дубликат иска обработка на отпадъци. Трябва да се спазват ограниченията за тарифите за всеки доставчик.
435
-
436
- **Как OmniRoute го решава:**
437
-
438
- - **Семантичен кеш** — Двуслоен кеш (подпис + семантичен) намалява разходите и забавянето
439
- - **Request Idempotency** — 5s прозорец за дедупликация за идентични заявки
440
- - **Rate Limit Detection** — RPM на доставчик, минимална разлика и максимално едновременно проследяване
441
- - **Редактируеми ограничения на скоростта** — Конфигурируеми настройки по подразбиране в Настройки → Устойчивост с постоянство
442
- - **API Key Validation Cache** — 3-степенен кеш за производствена производителност
443
- - **Здравно табло с телеметрия** — p50/p95/p99 латентност, статистика на кеша, ъптайм
444
-
445
- </details>
446
-
447
- <details>
448
- <summary><b>🤖 16. „Искам да контролирам поведението на модела глобално“ </b></summary>Разработчици, които искат всички отговори на конкретен език, със специфичен тон или искат да ограничат токените за мотивиране. Конфигурирането на това във всеки инструмент/заявка е непрактично.
449
-
450
- **Как OmniRoute го решава:**
451
-
452
- - **Инжектиране на системна подкана** — Глобална подкана, приложена към всички заявки
453
- - **Thinking Budget Validation** — Разсъждаващ контрол на разпределението на токени за всяка заявка (преминаване, автоматично, персонализирано, адаптивно)
454
- - **6 стратегии за маршрутизиране** — Глобални стратегии, които определят как се разпределят заявките
455
- - **Wildcard Router** — моделите `provider/*` маршрутизират динамично към всеки доставчик
456
- - **Combo Enable/Disable Toggle** — Превключвайте комбинации директно от таблото за управление
457
- - **Превключване на доставчика** — Активирайте/деактивирайте всички връзки за доставчик с едно щракване
458
- - **Блокирани доставчици** — Изключете определени доставчици от списъка `/v1/models`
459
-
460
- </details>
461
-
462
- <details>
463
- <summary><b>🧰 17. „Имам нужда от MCP инструменти като първокласни продуктови възможности“ </b></summary>
464
-
465
- Много AI шлюзове разкриват MCP само като скрит детайл за изпълнение. Екипите се нуждаят от видим, управляем оперативен слой.
466
-
467
- **Как OmniRoute го решава:**
468
-
469
- - MCP се появява в раздела за навигация на таблото за управление и протокол на крайна точка
470
- - Специализирана страница за управление на MCP с процес, инструменти, обхвати и одит
471
- - Вграден бърз старт за `omniroute --mcp` и включване на клиента
472
-
473
- </details>
474
-
475
- <details>
476
- <summary><b>🧠 18. „Имам нужда от A2A оркестрация със синхронизиране + пътеки на задачи за поток“ </b></summary>
477
-
478
- Работните потоци на агентите се нуждаят както от директни отговори, така и от дълготрайно поточно изпълнение с контрол на жизнения цикъл.
479
-
480
- **Как OmniRoute го решава:**
481
-
482
- - A2A JSON-RPC крайна точка (`POST /a2a`) с `message/send` и `message/stream`
483
- - SSE поточно предаване с разпространение на състоянието на терминала
484
- - API на жизнения цикъл на задачата за `tasks/get` и `tasks/cancel`
485
-
486
- </details>
487
-
488
- <details>
489
- <summary><b>🛰️ 19. „Имам нужда от реално състояние на MCP процес, а не от познат статус“ </b></summary>
490
-
491
- Оперативните екипи трябва да знаят дали MCP действително е жив, а не само дали API е достъпен.
492
-
493
- **Как OmniRoute го решава:**
494
-
495
- - Сърдечен файл по време на изпълнение с PID, времеви отпечатъци, транспорт, брой инструменти и режим на обхват
496
- - API за състояние на MCP, комбиниращ сърдечен ритъм + скорошна активност
497
- - Карти за състояние на потребителския интерфейс за свежест на процеса/време на работа/пулс
498
-
499
- </details>
500
-
501
- <details>
502
- <summary><b>📋 20. „Имам нужда от изпълнение на MCP инструмент с възможност за проверка“ </b></summary>
503
-
504
- Когато инструментите променят конфигурацията или задействат оперативни действия, екипите се нуждаят от криминалистична проследимост.
505
-
506
- **Как OmniRoute го решава:**
507
-
508
- - Поддържано от SQLite одитно регистриране за извиквания на MCP инструмент
509
- - Филтрира по инструмент, успех/неуспех, API ключ и пагинация
510
- - Таблица за одит на таблото + статистически крайни точки за автоматизация
511
-
512
- </details>
513
-
514
- <details>
515
- <summary><b>🔐 21. „Имам нужда от MCP разрешения с обхват за интеграция“ </b></summary>
516
-
517
- Различните клиенти трябва да имат най-малко привилегирован достъп до категории инструменти.
518
-
519
- **Как OmniRoute го решава:**
520
-
521
- - 9 гранулирани MCP обхвата за контролиран достъп до инструмента
522
- - Налагане на обхват и видимост в потребителския интерфейс за управление на MCP
523
- - Безопасна поза по подразбиране за оперативни инструменти
524
-
525
- </details>
526
-
527
- <details><summary><b>⚙️ 22. „Имам нужда от оперативни контроли без повторно разполагане“ </b></summary>
528
-
529
- Екипите се нуждаят от бързи промени във времето на изпълнение по време на инциденти или разходни събития.
530
-
531
- **Как OmniRoute го решава:**
532
-
533
- - Превключете комбо активирането директно от таблото за управление на MCP
534
- - Прилагайте профили на устойчивост от предварително дефинирани пакети с правила
535
- - Нулирайте състоянието на прекъсвача от същия операционен панел
536
-
537
- </details>
538
-
539
- <details>
540
- <summary><b>🔄 23. „Имам нужда от видимост и анулиране на жизнения цикъл на задачите A2A на живо“ </b></summary>
541
-
542
- Без видимост на жизнения цикъл инцидентите със задачи стават трудни за сортиране.
543
-
544
- **Как OmniRoute го решава:**
545
-
546
- - Списък със задачи/филтриране по състояние/умение с пагинация
547
- - Разбивка на метаданни, събития и артефакти на задачи
548
- - Крайна точка за анулиране на задача и действие на потребителския интерфейс с потвърждение
549
-
550
- </details>
551
-
552
- <details>
553
- <summary><b>🌊 24. „Имам нужда от показатели за активен поток за A2A натоварване“ </b></summary>
554
-
555
- Поточните работни потоци изискват оперативно вникване в паралелността и живите връзки.
556
-
557
- **Как OmniRoute го решава:**
558
-
559
- - Броячи на активни потоци, интегрирани в статуса A2A
560
- - Времево клеймо на последната задача и брой на състоянието
561
- - A2A карти на таблото за наблюдение на операциите в реално време
562
-
563
- </details>
564
-
565
- <details>
566
- <summary><b>🪪 25. „Имам нужда от стандартно откриване на агент за клиенти“ </b></summary>
567
-
568
- Външните клиенти и оркестраторите се нуждаят от машинночетими метаданни за включване.
569
-
570
- **Как OmniRoute го решава:**
571
-
572
- - Карта на агент, изложена на `/.well-known/agent.json`
573
- - Възможности и умения, показани в потребителския интерфейс за управление
574
- - API за състояние A2A включва метаданни за откриване за автоматизация
575
-
576
- </details>
577
-
578
- <details>
579
- <summary><b>🧭 26. „Имам нужда от откриваемост на протокола в UX на продукта“ </b></summary>
580
-
581
- Ако потребителите не могат да открият повърхности на протокола, качеството на приемане и поддръжка пада.
582
-
583
- **Как OmniRoute го решава:**
584
-
585
- - Записи в страничната лента за MCP и A2A
586
- - Страница с крайна точка Раздел Протоколи с бърз старт и състояние
587
- - Връзки от преглед към специални табла за управление
588
-
589
- </details>
590
-
591
- <details>
592
- <summary><b>🧪 27. „Имам нужда от валидиране на протокол от край до край с реални клиенти“ </b></summary>
593
-
594
- Фалшивите тестове не са достатъчни за валидиране на съвместимостта на протокола преди пускане.
595
-
596
- **Как OmniRoute го решава:**
597
-
598
- - E2E пакет, който зарежда приложение и използва реален MCP SDK клиентски транспорт
599
- - Клиент A2A тества за потоци откриване, изпращане, поточно предаване, получаване и отмяна
600
- - Кръстосана проверка на твърдения срещу MCP одит и API на A2A задачи
601
-
602
- </details>
603
-
604
- <details>
605
- <summary><b>📡 28. „Имам нужда от унифицирана наблюдаемост във всички интерфейси“ </b></summary>
606
-
607
- Разделянето на наблюдаемостта по протокол създава слепи зони и по-дълъг MTTR.
608
-
609
- **Как OmniRoute го решава:**
610
-
611
- - Унифицирани табла за управление/логове/аналитика в един продукт
612
- - Здраве + одит + заявка за телеметрия в OpenAI, MCP и A2A слоеве
613
- - Оперативни API за статус и автоматизация
614
-
615
- </details>
616
-
617
- <details>
618
- <summary><b>💼 29. „Имам нужда от едно време за изпълнение за прокси + инструменти + оркестрация на агенти“ </b></summary>
619
-
620
- Изпълнението на много отделни услуги увеличава оперативните разходи и режимите на отказ.
621
-
622
- **Как OmniRoute го решава:**- OpenAI-съвместим прокси, MCP сървър и A2A сървър в един стек
623
-
624
- - Споделено удостоверяване, устойчивост, съхранение на данни и възможност за наблюдение
625
- - Последователен модел на политика във всички повърхности на взаимодействие
626
-
627
- </details>
628
-
629
- <details>
630
- <summary><b>🚀 30. „Трябва да изпратя агентски работни потоци без разрастване на лепен код“ </b></summary>
631
-
632
- Екипите губят скорост, когато свързват множество ad-hoc услуги и скриптове.
633
-
634
- **Как OmniRoute го решава:**
635
-
636
- - Единна стратегия за крайни точки за клиенти и агенти
637
- - Вграден потребителски интерфейс за управление на протоколи и пътеки за проверка на дим
638
- - Готови за производство основи (сигурност, регистриране, устойчивост, архивиране)
639
-
640
- </details>
641
-
642
- ### Примерни книги за игри (интегрирани случаи на употреба)
643
-
644
- **Playbook A: Увеличете максимално платения абонамент + евтино архивиране**
645
-
646
- ```txt
647
- Combo: "maximize-claude"
648
- 1. cc/claude-opus-4-6
649
- 2. glm/glm-4.7
650
- 3. if/kimi-k2-thinking
651
-
652
- Monthly cost: $20 + small backup spend
653
- Outcome: higher quality, near-zero interruption
654
- ```
655
-
656
- **Playbook B: Стек за кодиране с нулеви разходи**
657
-
658
- ```txt
659
- Combo: "free-forever"
660
- 1. gc/gemini-3-flash
661
- 2. if/kimi-k2-thinking
662
- 3. qw/qwen3-coder-plus
663
-
664
- Monthly cost: $0
665
- Outcome: stable free coding workflow
666
- ```
667
-
668
- **Playbook C: 24/7 винаги включена резервна верига**
669
-
670
- ```txt
671
- Combo: "always-on"
672
- 1. cc/claude-opus-4-6
673
- 2. cx/gpt-5.2-codex
674
- 3. glm/glm-4.7
675
- 4. minimax/MiniMax-M2.1
676
- 5. if/kimi-k2-thinking
677
-
678
- Outcome: deep fallback depth for deadline-critical workloads
679
- ```
680
-
681
- **Playbook D: Операции на агент с MCP + A2A**
682
-
683
- ```txt
684
- 1) Start MCP transport (`omniroute --mcp`) for tool-driven operations
685
- 2) Run A2A tasks via `message/send` and `message/stream`
686
- 3) Observe via /dashboard/mcp and /dashboard/a2a
687
- 4) Control incidents with resilience profile + task cancellation
688
- ```
689
-
690
- ---
691
-
692
- ## ⚡ Бърз старт
693
-
694
- ### 1) Инсталирайте и стартирайте
695
-
696
- ```bash
697
- npm install -g omniroute
698
- omniroute
699
- ```
700
-
701
- Таблото за управление се отваря на `http://localhost:20128` и основният URL адрес на API е `http://localhost:20128/v1`.
702
-
703
- | Команда | Описание |
704
- | ----------------------- | ---------------------------------------------------------------------------- |
705
- | `omniroute` | Стартиране на сървър (`PORT=20128`, API и табло за управление на същия порт) |
706
- | `omniroute --port 3000` | Задайте каноничен/API порт на 3000 |
707
- | `omniroute --mcp` | Стартирайте MCP сървър (stdio транспорт) |
708
- | `omniroute --no-open` | Без автоматично отваряне на браузъра |
709
- | `omniroute --help` | Показване на помощ |
710
-
711
- Допълнителен режим на разделен порт:
712
-
713
- ```bash
714
- PORT=20128 DASHBOARD_PORT=20129 omniroute
715
- # API: http://localhost:20128/v1
716
- # Dashboard: http://localhost:20129
717
- ```
718
-
719
- ### 2) Свържете доставчици и създайте своя API ключ
720
-
721
- 1. Отворете таблото за управление → `Providers` и свържете поне един доставчик (OAuth или API ключ).
722
- 2. Отворете таблото за управление → `Endpoint` и създайте API ключ.
723
- 3. (По избор) Отворете таблото за управление → `Combos` и задайте вашата резервна верига.
724
-
725
- ### 3) Насочете вашия инструмент за кодиране към OmniRoute
726
-
727
- ```txt
728
- Base URL: http://localhost:20128/v1
729
- API Key: [copy from Endpoint page]
730
- Model: if/kimi-k2-thinking (or any provider/model prefix)
731
- ```
732
-
733
- Работи с Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode и OpenAI-съвместими SDK.
734
-
735
- ### 4) Активиране и валидиране на протоколи (v2.0)
736
-
737
- **MCP (за операции, управлявани от инструмент):**
738
-
739
- ```bash
740
- omniroute --mcp
741
- ```
742
-
743
- След това свържете вашия MCP клиент през `stdio` и тествайте инструменти като:
744
-
745
- - `omniroute_get_health`
746
- - `omniroute_list_combos`
747
-
748
- **A2A (за работни процеси от агент към агент):**
749
-
750
- ```bash
751
- curl http://localhost:20128/.well-known/agent.json
752
- ```
753
-
754
- ```bash
755
- curl -X POST http://localhost:20128/a2a \
756
- -H 'content-type: application/json' \
757
- -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
758
- ```
759
-
760
- ### 5) Валидирайте всичко от край до край (препоръчително)
761
-
762
- ```bash
763
- npm run test:protocols:e2e
764
- ```
765
-
766
- Този пакет валидира реални MCP и A2A клиентски потоци срещу работещо приложение.
767
-
768
- ### Алтернатива: стартирайте от източника
769
-
770
- ```bash
771
- cp .env.example .env
772
- npm install
773
- PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
774
- ```
775
-
776
- ---
777
-
778
- ## 🐳 Докер
779
-
780
- OmniRoute се предлага като публично изображение на Docker в [Docker Hub] (https://hub.docker.com/r/diegosouzapw/omniroute).
781
-
782
- **Бързо бягане:**
783
-
784
- ```bash
785
- docker run -d \
786
- --name omniroute \
787
- --restart unless-stopped \
788
- -p 20128:20128 \
789
- -v omniroute-data:/app/data \
790
- diegosouzapw/omniroute:latest
791
- ```
792
-
793
- **С файл на средата:**
794
-
795
- ```bash
796
- # Copy and edit .env first
797
- cp .env.example .env
798
-
799
- docker run -d \
800
- --name omniroute \
801
- --restart unless-stopped \
802
- --env-file .env \
803
- -p 20128:20128 \
804
- -v omniroute-data:/app/data \
805
- diegosouzapw/omniroute:latest
806
- ```
807
-
808
- **Използване на Docker Compose:**
809
-
810
- ```bash
811
- # Base profile (no CLI tools)
812
- docker compose --profile base up -d
813
-
814
- # CLI profile (Claude Code, Codex, OpenClaw built-in)
815
- docker compose --profile cli up -d
816
- ```
817
-
818
- | Изображение | Етикет | Размер | Описание |
819
- | ------------------------ | -------- | ------ | -------------------------- |
820
- | `diegosouzapw/omniroute` | `latest` | ~250MB | Най-новата стабилна версия |
821
- | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Текуща версия |
822
-
823
- ---
824
-
825
- ## 🖥️
826
-
827
- Стартирайте OmniRoute като самостоятелно настолно приложение — без терминал, без браузър, без интернет, необходим за локалните модели. Базираното на Electron приложение включва:
828
-
829
- - 🖥️ **Собствен прозорец** — Специален прозорец на приложението с интеграция в системната област
830
- - 🔄 **Автоматично стартиране** — Стартирайте OmniRoute при влизане в системата
831
- - 🔔 **Нативни известия** — Получавайте сигнали за изчерпване на квотата или проблеми с доставчика
832
- - ⚡ **Инсталиране с едно щракване** — NSIS (Windows), DMG (macOS), AppImage (Linux)
833
- - 🌐 **Офлайн режим** — Работи напълно офлайн с пакетния сървър
834
-
835
- ### Бърз старт
836
-
837
- ```bash
838
- # Development mode
839
- npm run electron:dev
840
-
841
- # Build for your platform
842
- npm run electron:build # Current platform
843
- npm run electron:build:win # Windows (.exe)
844
- npm run electron:build:mac # macOS (.dmg) — x64 & arm64
845
- npm run electron:build:linux # Linux (.AppImage)
846
- ```
847
-
848
- ### Системна област
849
-
850
- Когато е минимизиран, OmniRoute живее в системната област с бързи действия:
851
-
852
- - Отворете таблото
853
- - Промяна на сървърния порт
854
- - Излезте от приложението
855
-
856
- 📖 Пълна документация: [`electron/README.md`](electron/README.md)
857
-
858
- ---
859
-
860
- ## 💰 Ценообразуването с един поглед
861
-
862
- | Ниво | Доставчик | Цена | Нулиране на квота | Най-добро за |
863
- | ------------------ | ----------------- | ---------------------------- | ----------------------- | ------------------------- |
864
- | **💳 АБОНАМЕНТ** | Claude Code (Pro) | $20/месец | 5 часа + седмично | Вече сте абонирани |
865
- | | Codex (Plus/Pro) | $20-200/месец | 5 часа + седмично | Потребители на OpenAI |
866
- | | Gemini CLI | **БЕЗПЛАТНО** | 180K/месец + 1K/ден | всички! |
867
- | | Копилот на GitHub | $10-19/месец | Месечно | Потребители на GitHub |
868
- | **🔑 КЛЮЧ ЗА API** | NVIDIA NIM | **БЕЗПЛАТНО** (1000 кредита) | Еднократно | Безплатно ниво тестване |
869
- | | DeepSeek | Плащане при използване | Няма | Най-добра цена/качество |
870
- | | Groq | Безплатно ниво + платено | Ограничена скорост | Свръхбърз извод |
871
- | | xAI (Grok) | Плащане при използване | Няма | Grok модели |
872
- | | Мистрал | Безплатно ниво + платено | Ограничена скорост | Европейски AI |
873
- | | OpenRouter | Плащане при използване | Няма | 100+ модела |
874
- | **💰 ЕВТИНО** | GLM-4.7 | $0,6/1 милион | Ежедневно 10 сутринта | Резервно копие на бюджета |
875
- | | MiniMax M2.1 | $0,2/1 милион | 5-часово търкаляне | Най-евтиният вариант |
876
- | | Кими К2 | $9/месец апартамент | 10 милиона токена/месец | Предвидими разходи |
877
- | **🆓 БЕЗПЛАТНО** | iFlow | $0 | Неограничен | 8 модела безплатно |
878
- | | Куен | $0 | Неограничен | 3 модела безплатно |
879
- | | Киро | $0 | Неограничен | Клод безплатно |
880
-
881
- **💡 Професионален съвет:** Започнете с Gemini CLI (180K безплатно/месец) + iFlow (неограничено безплатно) комбинация = $0 цена!
882
-
883
- ---
884
-
885
- ## 💡 Основни характеристики
886
-
887
- OmniRoute v2.0 е създаден като операционна платформа, а не просто релейно прокси.
888
-
889
- ### 🤖 Операции на агент и протокол (v2.0)| Характеристика | Какво прави |
890
-
891
- | ------------------------------------ | -------------------------------------------------------------------------------- |
892
- | 🔧 **MCP сървър (16 инструмента)** | Инструментите за IDE/агент контролират маршрутизиране, здраве, комбинации, ограничения и операции | IDE/agent tools via 3 transports: stdio, SSE (`/api/mcp/sse`), Streamable HTTP (`/api/mcp/stream`)
893
- | 🤝 **A2A сървър (JSON-RPC + SSE)** | Изпълнение на задачи от агент към агент със синхронизиране и поточно предаване |
894
- | 🧭 **Consolidated Endpoints Page** | Tabbed management page with Endpoint Proxy, MCP, A2A, and API Endpoints tabs |
895
- | 🎚️ **Service Enable/Disable Toggles** | ON/OFF switches for MCP and A2A with settings persistence (default: OFF) |
896
- | 🛰️ **MCP Runtime Heartbeat** | Реално състояние на процеса (pid, време на работа, възраст на сърдечния ритъм, транспорт, режим на обхвата) |
897
- | 📋 **MCP одитна пътека** | Филтрируеми журнали за одит с успех/неуспех и ключово приписване |
898
- | 🔐 **Прилагане на обхват на MCP** | 9 подробни разрешения за обхват за контролиран достъп до инструменти |
899
- | 📡 **A2A Управление на жизнения цикъл на задачите** | Списък/филтриране на задачи, проверка на събития/артефакти, отмяна на изпълнявани задачи |
900
- | 📋 **Откриване на карта на агент** | `/.well-known/agent.json` за автоматично откриване на клиент |
901
- | 🧪 **Протокол E2E Тестова система** | Истински MCP SDK + A2A клиентски потоци в `test:protocols:e2e` |
902
- | ⚙️ **Оперативни контроли** | Превключете комбо, приложете профили на устойчивост, нулирайте прекъсвачите от една контролна повърхност |
903
-
904
- ### 🧠 Маршрутизиране и разузнаване
905
-
906
- | Характеристика | Какво прави |
907
- | ----------------------------------------------- | ---------------------------------------------------------------------------- |
908
- | 🎯 **Интелигентен 4-степенен резервен вариант** | Автоматичен маршрут: Абонамент → API ключ → Евтини → Безплатно |
909
- | 📊 **Проследяване на квоти в реално време** | Брой токени на живо + нулиране на обратното броене на доставчик |
910
- | 🔄 **Форматиране на превода** | OpenAI ↔ Claude ↔ Gemini ↔ Отговори с безопасни за схема преобразувания |
911
- | 👥 **Поддръжка за множество акаунти** | Няколко акаунта на доставчик с интелигентен избор |
912
- | 🔄 **Автоматично опресняване на токени** | OAuth токените се опресняват автоматично с повторен опит |
913
- | 🎨 **Персонализирани комбинации** | 6 стратегии за балансиране + резервен контрол на веригата |
914
- | 🌐 **Wildcard Router** | `provider/*` динамично маршрутизиране |
915
- | 🧠 **Мислене за контрол на бюджета** | Лимити за преминаване, автоматични, персонализирани и адаптивни разсъждения |
916
- | 🔀 **Псевдоними на модели** | Вграден + персонализиран псевдоним на модела и безопасност на миграцията |
917
- | ⚡ **Влошаване на фона** | Насочване на фонови задачи с нисък приоритет към по-евтини модели |
918
- | 💬 **Системно бързо инжектиране** | Глобални контроли на поведението, прилагани последователно |
919
- | 📄 **Съвместимост с API за отговори** | Пълна `/v1/responses` поддръжка за Codex и разширени агентни работни процеси |
920
-
921
- ### 🎵 Мултимодални API
922
-
923
- | Характеристика | Какво прави || -------------------------- | ------------------------------------------------------------ |
924
- | 🖼️ **Генериране на изображения** | `/v1/images/generations` с облак и локален бекенд |
925
- | 📐 **Вграждания** | `/v1/embeddings` за търсене и RAG тръбопроводи |
926
- | 🎤 **Аудио транскрипция** | `/v1/audio/transcriptions` (Whisper и допълнителни доставчици) |
927
- | 🔊 **Текст към говор** | `/v1/audio/speech` (множество машини/доставчици) |
928
- | 🎬 **Видео генериране** | `/v1/videos/generations` (работни процеси ComfyUI + SD WebUI) |
929
- | 🎵 **Музикално поколение** | `/v1/music/generations` (работни процеси на ComfyUI) |
930
- | 🛡️ **Модерации** | `/v1/moderations` проверки за безопасност |
931
- | 🔀 **Прекласиране** | `/v1/rerank` за оценка на уместността |
932
-
933
- ### 🛡️ Устойчивост, сигурност и управление
934
-
935
- | Характеристика | Какво прави |
936
- | -------------------------------------------- | -------------------------------------------------------------------------------------- |
937
- | 🔌 **Прекъсвачи** | Пътуване/възстановяване на ниво доставчик с прагови контроли |
938
- | 🛡️ **Anti-Thundering Herd** | Защита на Mutex + семафор при събития за повторен опит/скорост |
939
- | 🧠 **Семантичен + кеш на подписа** | Намаляване на разходите/закъснението с два кеш слоя |
940
- | ⚡ **Искане на идемпотентност** | Дублиран защитен прозорец |
941
- | 🔒 **TLS Fingerprint Spoofing** | По-добра съвместимост с доставчици, филтрирани срещу бот |
942
- | 🔏 **CLI Fingerprint Matching** | Matches native CLI request signatures — **reduces ban risk while preserving proxy IP** |
943
- | 🌐 **IP филтриране** | Списък с разрешени/списъци с блокирани контроли за открити внедрявания |
944
- | 📊 **Редактируеми ограничения на скоростта** | Конфигурируеми глобални/на ниво доставчик ограничения с постоянство |
945
- | 🔑 **API Key Management + Scoping** | Сигурно издаване/ротация на ключове и контроли на модел/доставчик |
946
- | 🛡️ **Защитен `/models`** | Опционално удостоверяване и скриване на доставчик за каталог на модели |
947
-
948
- ### 📊 Наблюдаемост и анализ
949
-
950
- | Характеристика | Какво прави |
951
- | ---------------------------------------------------------------- | ------------------------------------------------------------------------ |
952
- | 📝 **Заявка + Регистриране на прокси сървър** | Пълно регистриране на заявка/отговор и прокси |
953
- | 📋 **Табло за управление на унифицирани регистрационни файлове** | Изгледи на заявка, прокси, одит и конзола на една страница |
954
- | 🔍 **Заявка за телеметрия** | p50/p95/p99 латентност и проследяване на заявки |
955
- | 🏥 **Здравно табло** | Време на работа, състояния на прекъсване, блокировки, статистика на кеша |
956
- | 💰 **Проследяване на разходите** | Контрол на бюджета и видимост на ценообразуването за модел |
957
- | 📈 **Аналитични визуализации** | Прозрения за използването на модел/доставчик и изгледи на тенденции |
958
- | 🧪 **Рамка за оценка** | Тестване на златен набор с конфигурируеми стратегии за мач |
959
-
960
- ### ☁️ Внедряване и платформа
961
-
962
- | Характеристика | Какво прави |
963
- | ----------------------------------------- | ------------------------------------------------------------------------- | --- | ----------------------------- | ------------------------------------------------------ |
964
- | 🌐 **Разполагане навсякъде** | Localhost, VPS, Docker, облачни среди | | 💾 **Синхронизиране в облак** | Синхронизиране на конфигурацията чрез облачен работник |
965
- | 🔄 **Архивиране/Възстановяване** | Експорт/импорт и потоци за възстановяване след бедствие |
966
- | 🧙 **Съветник за присъединяване** | Насочвана настройка при първо стартиране |
967
- | 🔧 **CLI Tools Dashboard** | Настройка с едно щракване за популярни инструменти за кодиране |
968
- | 🌐 **i18n (30 езика)** | Пълно табло за управление + езикова поддръжка на документи с RTL покритие |
969
- | 📂 **Директория с персонализирани данни** | `DATA_DIR` отмяна за място за съхранение |
970
-
971
- ### Функция Deep Dive
972
-
973
- #### Интелигентен резервен вариант с практичен контрол на разходите
974
-
975
- ```txt
976
- Combo: "my-coding-stack"
977
- 1. cc/claude-opus-4-6
978
- 2. nvidia/llama-3.3-70b
979
- 3. glm/glm-4.7
980
- 4. if/kimi-k2-thinking
981
- ```
982
-
983
- Когато квотата, скоростта или здравето са неуспешни, OmniRoute автоматично преминава към следващия кандидат без ръчно превключване.
984
-
985
- #### Управление на протоколи, което е видимо и работещо
986
-
987
- - MCP + A2A са откриваеми в UI и документи (не са скрити)
988
- - API за състояние на протокола разкриват оперативни данни на живо (`/api/mcp/*`, `/api/a2a/*`)
989
- - Таблата за управление включват действия за операции от ден 2 (комбо превключвания, нулиране на прекъсвача, анулиране на задача)
990
-
991
- #### Преводач + работен процес за валидиране
992
-
993
- Зоната за преводач включва:
994
-
995
- - **Playground**: поискайте проверки за трансформация
996
- - **Chat Tester**: пълна заявка/отговор двупосочно
997
- - **Тестова стенда**: множество случаи в едно изпълнение
998
- - **Монитор на живо**: изглед на трафика в реално време
999
-
1000
- Плюс валидиране на протокол с реални клиенти чрез `npm run test:protocols:e2e`.
1001
-
1002
- > 📖 **[MCP Server README](open-sse/mcp-server/README.md)** — Справка за инструмента, IDE конфигурации и примери за клиенти
1003
- >
1004
- > 📖 **[A2A Server README](src/lib/a2a/README.md)** — Умения, JSON-RPC методи, поточно предаване и жизнен цикъл на задачите
1005
-
1006
- ## 🧪 Оценки (Evals)
1007
-
1008
- OmniRoute включва вградена рамка за оценка за тестване на качеството на отговора на LLM спрямо златен набор. Достъп до него чрез **Analytics → Evals** в таблото за управление.
1009
-
1010
- ### Вграден златен комплект
1011
-
1012
- Предварително зареденият "OmniRoute Golden Set" съдържа тестови случаи за:
1013
-
1014
- - Поздрави, математика, география, генериране на код
1015
- - Съответствие с JSON формат, превод, генериране на маркдаун
1016
- - Отказ за безопасност (вредно съдържание), броене, булева логика
1017
-
1018
- ### Стратегии за оценка
1019
-
1020
- | Стратегия | Описание | Пример |
1021
- | ---------- | ----------------------------------------------------------------------- | -------------------------------- |
1022
- | `exact` | Изходът трябва да съвпада точно | `"4"` |
1023
- | `contains` | Изходът трябва да съдържа подниз (без значение за малки и големи букви) | `"Paris"` |
1024
- | `regex` | Изходът трябва да съответства на модела на регулярен израз | `"1.*2.*3"` |
1025
- | `custom` | Персонализираната JS функция връща true/false | `(output) => output.length > 10` |
1026
-
1027
- ---
1028
-
1029
- ## 📖 Ръководство за настройка
1030
-
1031
- ### Настройка на протокол (MCP + A2A)
1032
-
1033
- <details>
1034
- <summary><b>🧩 Настройка на MCP (протокол на контекста на модела) </b></summary>
1035
-
1036
- Стартирайте MCP транспорт в режим stdio:
1037
-
1038
- ```bash
1039
- omniroute --mcp
1040
- ```
1041
-
1042
- Препоръчителен поток за валидиране:
1043
-
1044
- 1. Свържете вашия MCP клиент през stdio.
1045
- 2. Стартирайте `omniroute_get_health`.
1046
- 3. Стартирайте `omniroute_list_combos`.
1047
- 4. Отворете `/dashboard/mcp`, за да потвърдите сърдечен ритъм, активност и проверка.
1048
-
1049
- Полезни API за автоматизация:
1050
-
1051
- - `GET /api/mcp/status`
1052
- - `GET /api/mcp/tools`
1053
- - `GET /api/mcp/audit`
1054
- - `GET /api/mcp/audit/stats`
1055
-
1056
- </details>
1057
-
1058
- <details><summary><b>🤝 Настройка на A2A (Agent2Agent)</b></summary>
1059
-
1060
- Открийте агента:
1061
-
1062
- ```bash
1063
- curl http://localhost:20128/.well-known/agent.json
1064
- ```
1065
-
1066
- Изпратете задача:
1067
-
1068
- ```bash
1069
- curl -X POST http://localhost:20128/a2a \
1070
- -H 'content-type: application/json' \
1071
- -d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'
1072
- ```
1073
-
1074
- Управление на жизнения цикъл:
1075
-
1076
- - `GET /api/a2a/status`
1077
- - `GET /api/a2a/tasks`
1078
- - `GET /api/a2a/tasks/:id`
1079
- - `POST /api/a2a/tasks/:id/cancel`
1080
-
1081
- Оперативен потребителски интерфейс:
1082
-
1083
- - `/dashboard/a2a` за видимост на задача/състояние/поток и димни действия
1084
-
1085
- </details>
1086
-
1087
- <details>
1088
- <summary><b>🧪 Проверка на протокол от край до край</b></summary>
1089
-
1090
- Валидирайте и двата протокола с реални клиенти:
1091
-
1092
- ```bash
1093
- npm run test:protocols:e2e
1094
- ```
1095
-
1096
- Това потвърждава:
1097
-
1098
- - MCP SDK клиент за свързване/списък/обаждане
1099
- - A2A откриване/изпращане/поток/получаване/отказ
1100
- - Кръстосана проверка на данни в MCP одит и API за управление на задачи A2A
1101
-
1102
- </details>
1103
-
1104
- <details>
1105
- <summary><b>💳 Доставчици на абонамент </b></summary>
1106
-
1107
- ### Claude Code (Pro/Max)
1108
-
1109
- ```bash
1110
- Dashboard → Providers → Connect Claude Code
1111
- → OAuth login → Auto token refresh
1112
- → 5-hour + weekly quota tracking
1113
-
1114
- Models:
1115
- cc/claude-opus-4-6
1116
- cc/claude-sonnet-4-5-20250929
1117
- cc/claude-haiku-4-5-20251001
1118
- ```
1119
-
1120
- **Професионален съвет:** Използвайте Opus за сложни задачи, Sonnet за скорост. OmniRoute проследява квота за модел!
1121
-
1122
- ### OpenAI Codex (Plus/Pro)
1123
-
1124
- ```bash
1125
- Dashboard → Providers → Connect Codex
1126
- → OAuth login (port 1455)
1127
- → 5-hour + weekly reset
1128
-
1129
- Models:
1130
- cx/gpt-5.2-codex
1131
- cx/gpt-5.1-codex-max
1132
- ```
1133
-
1134
- ### Gemini CLI (БЕЗПЛАТНО 180K/месец!)
1135
-
1136
- ```bash
1137
- Dashboard → Providers → Connect Gemini CLI
1138
- → Google OAuth
1139
- → 180K completions/month + 1K/day
1140
-
1141
- Models:
1142
- gc/gemini-3-flash-preview
1143
- gc/gemini-2.5-pro
1144
- ```
1145
-
1146
- **Най-добра стойност:** Огромно безплатно ниво! Използвайте това преди платените нива.
1147
-
1148
- ### Копилот на GitHub
1149
-
1150
- ```bash
1151
- Dashboard → Providers → Connect GitHub
1152
- → OAuth via GitHub
1153
- → Monthly reset (1st of month)
1154
-
1155
- Models:
1156
- gh/gpt-5
1157
- gh/claude-4.5-sonnet
1158
- gh/gemini-3-pro
1159
- ```
1160
-
1161
- </details>
1162
-
1163
- <details>
1164
- <summary><b>🔑 API ключови доставчици</b></summary>
1165
-
1166
- ### NVIDIA NIM (БЕЗПЛАТНИ 1000 кредита!)
1167
-
1168
- 1. Регистрирайте се: [build.nvidia.com](https://build.nvidia.com)
1169
- 2. Вземете безплатен API ключ (включени 1000 кредита за изводи)
1170
- 3. Табло → Добавяне на доставчик → NVIDIA NIM:
1171
- - API ключ: `nvapi-your-key`
1172
-
1173
- **Модели:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` и още 50+
1174
-
1175
- **Професионален съвет:** OpenAI-съвместим API — работи безпроблемно с превода на формати на OmniRoute!
1176
-
1177
- ### DeepSeek
1178
-
1179
- 1. Регистрирайте се: [platform.deepseek.com](https://platform.deepseek.com)
1180
- 2. Вземете API ключ
1181
- 3. Табло → Добавяне на доставчик → DeepSeek
1182
-
1183
- **Модели:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
1184
-
1185
- ### Groq (налично безплатно ниво!)
1186
-
1187
- 1. Регистрирайте се: [console.groq.com](https://console.groq.com)
1188
- 2. Вземете API ключ (включено безплатно ниво)
1189
- 3. Табло → Добавяне на доставчик → Groq
1190
-
1191
- **Модели:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
1192
-
1193
- **Професионален съвет:** Изключително бърз извод — най-добър за кодиране в реално време!
1194
-
1195
- ### OpenRouter (100+ модела)
1196
-
1197
- 1. Регистрирайте се: [openrouter.ai](https://openrouter.ai)
1198
- 2. Вземете API ключ
1199
- 3. Табло → Добавяне на доставчик → OpenRouter
1200
-
1201
- **Модели:** Достъп до 100+ модела от всички основни доставчици чрез един API ключ.
1202
-
1203
- </details>
1204
-
1205
- <details>
1206
- <summary><b>💰 Евтини доставчици (резервни) </b></summary>
1207
-
1208
- ### GLM-4.7 (Ежедневно нулиране, $0,6/1 млн.)
1209
-
1210
- 1. Регистрирайте се: [Zhipu AI](https://open.bigmodel.cn/)
1211
- 2. Вземете API ключ от Coding Plan
1212
- 3. Табло → Добавяне на API ключ:
1213
- - Доставчик: `glm`
1214
- - API ключ: `your-key`
1215
-
1216
- **Използване:** `glm/glm-4.7`
1217
-
1218
- **Професионален съвет:** Планът за кодиране предлага 3× квота на цена 1/7! Нулирайте всеки ден в 10:00 ч.
1219
-
1220
- ### MiniMax M2.1 (5 часа нулиране, $0,20/1 млн.)
1221
-
1222
- 1. Регистрирайте се: [MiniMax](https://www.minimax.io/)
1223
- 2. Вземете API ключ
1224
- 3. Табло → Добавяне на API ключ
1225
-
1226
- **Използване:** `minimax/MiniMax-M2.1`
1227
-
1228
- **Професионален съвет:** Най-евтината опция за дълъг контекст (1M токени)!
1229
-
1230
- ### Kimi K2 ($9/месец фиксиран)
1231
-
1232
- 1. Абонирайте се: [Moonshot AI](https://platform.moonshot.ai/)
1233
- 2. Вземете API ключ
1234
- 3. Табло → Добавяне на API ключ
1235
-
1236
- **Използване:** `kimi/kimi-latest`
1237
-
1238
- **Професионален съвет:** Фиксирани $9/месец за 10 милиона токена = $0,90/1 милион ефективна цена!
1239
-
1240
- </details>
1241
-
1242
- <details>
1243
- <summary><b>🆓 БЕЗПЛАТНИ доставчици (Спешно архивиране)</b></summary>
1244
-
1245
- ### iFlow (8 БЕЗПЛАТНИ модела)```bash
1246
-
1247
- Dashboard → Connect iFlow
1248
- → iFlow OAuth login
1249
- → Unlimited usage
1250
-
1251
- Models:
1252
- if/kimi-k2-thinking
1253
- if/qwen3-coder-plus
1254
- if/glm-4.7
1255
- if/minimax-m2
1256
- if/deepseek-r1
1257
-
1258
- ````
1259
-
1260
- ### Qwen (3 БЕЗПЛАТНИ модела)
1261
-
1262
- ```bash
1263
- Dashboard → Connect Qwen
1264
- → Device code authorization
1265
- → Unlimited usage
1266
-
1267
- Models:
1268
- qw/qwen3-coder-plus
1269
- qw/qwen3-coder-flash
1270
- ````
1271
-
1272
- ### Киро (Клод БЕЗПЛАТНО)
1273
-
1274
- ```bash
1275
- Dashboard → Connect Kiro
1276
- → AWS Builder ID or Google/GitHub
1277
- → Unlimited usage
1278
-
1279
- Models:
1280
- kr/claude-sonnet-4.5
1281
- kr/claude-haiku-4.5
1282
- ```
1283
-
1284
- </details>
1285
-
1286
- <details>
1287
- <summary><b>🎨 Създаване на комбинации</b></summary>
1288
-
1289
- ### Пример 1: Увеличаване на абонамента → Евтино архивиране
1290
-
1291
- ```
1292
- Dashboard → Combos → Create New
1293
-
1294
- Name: premium-coding
1295
- Models:
1296
- 1. cc/claude-opus-4-6 (Subscription primary)
1297
- 2. glm/glm-4.7 (Cheap backup, $0.6/1M)
1298
- 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
1299
-
1300
- Use in CLI: premium-coding
1301
- ```
1302
-
1303
- ### Пример 2: Само безплатно (нулева цена)
1304
-
1305
- ```
1306
- Name: free-combo
1307
- Models:
1308
- 1. gc/gemini-3-flash-preview (180K free/month)
1309
- 2. if/kimi-k2-thinking (unlimited)
1310
- 3. qw/qwen3-coder-plus (unlimited)
1311
-
1312
- Cost: $0 forever!
1313
- ```
1314
-
1315
- </details>
1316
-
1317
- <details>
1318
- <summary><b>🔧 CLI интеграция</b></summary>
1319
-
1320
- ### Курсор IDE
1321
-
1322
- ```
1323
- Settings → Models → Advanced:
1324
- OpenAI API Base URL: http://localhost:20128/v1
1325
- OpenAI API Key: [from OmniRoute dashboard]
1326
- Model: cc/claude-opus-4-6
1327
- ```
1328
-
1329
- ### Клод Код
1330
-
1331
- Използвайте страницата **CLI Tools** в таблото за управление за конфигурация с едно кликване или редактирайте `~/.claude/settings.json` ръчно.
1332
-
1333
- ### Codex CLI
1334
-
1335
- ```bash
1336
- export OPENAI_BASE_URL="http://localhost:20128"
1337
- export OPENAI_API_KEY="your-omniroute-api-key"
1338
-
1339
- codex "your prompt"
1340
- ```
1341
-
1342
- ### OpenClaw
1343
-
1344
- **Вариант 1 — Табло (препоръчително):**
1345
-
1346
- ```
1347
- Dashboard → CLI Tools → OpenClaw → Select Model → Apply
1348
- ```
1349
-
1350
- **Опция 2 — Ръчно:** Редактиране на `~/.openclaw/openclaw.json`:
1351
-
1352
- ```json
1353
- {
1354
- "models": {
1355
- "providers": {
1356
- "omniroute": {
1357
- "baseUrl": "http://127.0.0.1:20128/v1",
1358
- "apiKey": "sk_omniroute",
1359
- "api": "openai-completions"
1360
- }
1361
- }
1362
- }
1363
- }
1364
- ```
1365
-
1366
- > **Забележка:** OpenClaw работи само с локален OmniRoute. Използвайте `127.0.0.1` вместо `localhost`, за да избегнете проблеми с разрешаването на IPv6.
1367
-
1368
- ### Cline / Продължи / RooCode
1369
-
1370
- ```
1371
- Settings → API Configuration:
1372
- Provider: OpenAI Compatible
1373
- Base URL: http://localhost:20128/v1
1374
- API Key: [from OmniRoute dashboard]
1375
- Model: if/kimi-k2-thinking
1376
- ```
1377
-
1378
- ### OpenCode
1379
-
1380
- **Стъпка 1:** Добавете OmniRoute като персонализиран доставчик:
1381
-
1382
- ```bash
1383
- opencode
1384
- /connect
1385
- # Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
1386
- ```
1387
-
1388
- **Стъпка 2:** Създайте/редактирайте `opencode.json` в корена на вашия проект:
1389
-
1390
- ```json
1391
- {
1392
- "$schema": "https://opencode.ai/config.json",
1393
- "provider": {
1394
- "omniroute": {
1395
- "npm": "@ai-sdk/openai-compatible",
1396
- "name": "OmniRoute",
1397
- "options": {
1398
- "baseURL": "http://localhost:20128/v1"
1399
- },
1400
- "models": {
1401
- "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
1402
- "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
1403
- "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
1404
- }
1405
- }
1406
- }
1407
- }
1408
- ```
1409
-
1410
- **Стъпка 3:** Изберете модела в OpenCode:
1411
-
1412
- ```bash
1413
- /models
1414
- # Select any OmniRoute model from the list
1415
- ```
1416
-
1417
- > **Съвет:** Добавете всеки модел, наличен във вашата крайна точка OmniRoute `/v1/models`, към секцията `models`. Използвайте формата `provider/model-id` от таблото за управление на OmniRoute.
1418
-
1419
- </details>
1420
-
1421
- ---
1422
-
1423
- ## 🐛 Отстраняване на неизправности
1424
-
1425
- <details>
1426
- <summary><b>Щракнете, за да разширите ръководството за отстраняване на неизправности</b></summary>
1427
-
1428
- **„Езиковият модел не предостави съобщения“**
1429
-
1430
- - Квотата на доставчика е изчерпана → Проверете инструмента за проследяване на квотата на таблото за управление
1431
- - Решение: Използвайте комбо резервен вариант или преминете към по-евтино ниво
1432
-
1433
- **Ограничаване на скоростта**
1434
-
1435
- - Изчерпване на квотата за абонамент → Резервно връщане към GLM/MiniMax
1436
- - Добавяне на комбинация: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
1437
-
1438
- **OAuth токенът е изтекъл**
1439
-
1440
- - Автоматично опресняване от OmniRoute
1441
- - Ако проблемите продължават: Табло → Доставчик → Повторно свързване
1442
-
1443
- **Високи разходи**
1444
-
1445
- - Проверете статистическите данни за използването в Табло → Разходи
1446
- - Превключете основния модел към GLM/MiniMax
1447
- - Използвайте безплатно ниво (Gemini CLI, iFlow) за некритични задачи
1448
-
1449
- **Портовете на таблото/API са грешни**
1450
-
1451
- - `PORT` е каноничният базов порт (и API порт по подразбиране)
1452
- - `API_PORT` отменя само OpenAI-съвместим API слушател
1453
- - `DASHBOARD_PORT` отменя само слушателя на таблото за управление/Next.js
1454
- - Задайте `NEXT_PUBLIC_BASE_URL` на вашето табло за управление/публичен URL (за OAuth обратни извиквания)
1455
-
1456
- **Грешки при синхронизиране в облак**
1457
-
1458
- - Проверете дали `BASE_URL` сочи към вашия работещ екземпляр
1459
- - Уверете се, че `CLOUD_URL` сочи към вашата очаквана крайна точка в облака
1460
- - Поддържайте стойностите на `NEXT_PUBLIC_*` в съответствие със стойностите от страна на сървъра
1461
-
1462
- **Първото влизане не работи**
1463
-
1464
- - Проверете `INITIAL_PASSWORD` в `.env`
1465
- - Ако не е зададена, резервната парола е `123456`
1466
-
1467
- **Няма регистрационни файлове за заявки**
1468
-
1469
- - Задайте `ENABLE_REQUEST_LOGS=true` в `.env`
1470
-
1471
- **Тестът за връзка показва „Невалидно“ за OpenAI-съвместими доставчици**
1472
-
1473
- - Много доставчици не излагат крайна точка `/models`
1474
- - OmniRoute v1.0.6+ включва резервно валидиране чрез завършвания на чат
1475
- - Уверете се, че основният URL адрес включва суфикс `/v1`
1476
-
1477
- ### 🔐 OAuth
1478
-
1479
- <a name="oauth-em-servidor-remoto"></a>
1480
-
1481
- > **⚠️ ВАЖНО за ползване на OmniRoute em VPS/Docker/servidor remoto**
1482
-
1483
- #### OAuth
1484
-
1485
- Като удостоверение за OAuth не е OmniRoute estão cadastradas **apenas para `localhost`**. Ако имате достъп до OmniRoute в дистанционния сървър (напр.: `https://omniroute.meuservidor.com`), или Google rejeita a autenticação com:
1486
-
1487
- ```
1488
- Error 400: redirect_uri_mismatch
1489
- ```
1490
-
1491
- #### Решение: Конфигурирайте собствените си права за удостоверяване на OAuth
1492
-
1493
- Изпишете точно **OAuth 2.0 Client ID** без Google Cloud Console чрез URI на вашия сървър.
1494
-
1495
- #### Passo a passo
1496
-
1497
- **1. Достъп до Google Cloud Console**
1498
-
1499
- Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
1500
-
1501
- **2. Crie um novo OAuth 2.0 Client ID**
1502
-
1503
- - Кликнете върху **"+ Създаване на идентификационни данни"** → **"OAuth клиентски идентификатор"**
1504
- - Tipo de aplicativo: **"Уеб приложение"**
1505
- - Име: escolha qualquer nome (напр.: `OmniRoute Remote`)
1506
-
1507
- **3. Adicione като оторизирани URI адреси за пренасочване**
1508
-
1509
- Без поле **„Оторизирани URI адреси за пренасочване“**, добавете:
1510
-
1511
- ```
1512
- https://seu-servidor.com/callback
1513
- ```
1514
-
1515
- > Замяна на `seu-servidor.com` pelo domínio или IP на вашия сървър (включително необходим порт, напр.: `http://45.33.32.156:20128/callback`).
1516
-
1517
- **4. Salve e copie as credenciais**
1518
-
1519
- Например, Google показва **Клиентски идентификатор** и **Клиентска тайна**.
1520
-
1521
- **5. Конфигуриране като variáveis de ambiente**
1522
-
1523
- Нямате `.env` (или нашите варианти на околната среда на Docker):
1524
-
1525
- ```bash
1526
- # Para Antigravity:
1527
- ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
1528
- ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1529
-
1530
- # Para Gemini CLI:
1531
- GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
1532
- GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1533
- GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
1534
- ```
1535
-
1536
- **6. Reinicie o OmniRoute**
1537
-
1538
- ```bash
1539
- # Se usando npm:
1540
- npm run dev
1541
-
1542
- # Se usando Docker:
1543
- docker restart omniroute
1544
- ```
1545
-
1546
- **7. Tente conectar novamente**
1547
-
1548
- Табло → Доставчици → Антигравитация (или Gemini CLI) → OAuth
1549
-
1550
- Agora или Google пренасочва корекции за `https://seu-servidor.com/callback` и функционира автентичност.
1551
-
1552
- ---
1553
-
1554
- #### Временно заобиколно решение (само за конфигуриране на удостоверения)
1555
-
1556
- Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
1557
-
1558
- 1. O OmniRoute премахва URL адрес за авторизация от Google
1559
- 2. Ако не сте авторизирани, пренасочването на Google е пренасочено за `localhost` (което не е отдалечено от сървъра)
1560
- 3. **Копирайте пълния URL адрес** от страницата, която искате да прехвърлите в своя браузър (mesmo que a página não carregue)
1561
- 4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
1562
- 5. Щракнете върху **"Свързване"**
1563
-
1564
- > Това заобиколно решение функционира, ако кодът на авторизацията на URL е валиден независимо от пренасочването към пренасочване или не.
1565
-
1566
- </details>
1567
-
1568
- ---
1569
-
1570
- ## 🛠️
1571
-
1572
- <details>
1573
- <summary><b>Щракнете, за да разширите подробностите за технически стек </b></summary>
1574
-
1575
- - **Време на изпълнение**: Node.js 18–22 LTS (⚠️ Node.js 24+ **не се поддържа** — родните двоични файлове на `better-sqlite3` са несъвместими)
1576
- - **Език**: TypeScript 5.9 — **100% TypeScript** в `src/` и `open-sse/` (нула `any` в основните модули от v2.0)
1577
- - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
1578
- - **База данни**: LowDB (JSON) + SQLite (състояние на домейна + регистрационни файлове на прокси + MCP одит + решения за маршрутизиране)
1579
- - **Схеми**: Zod (валидиране на I/O инструмент за MCP, API договори)
1580
- - **Протоколи**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
1581
- - **Поточно предаване**: Изпратени от сървъра събития (SSE)
1582
- - **Auth**: OAuth 2.0 (PKCE) + JWT + API ключове + MCP оторизация с обхват
1583
- - **Тестване**: Node.js тестов инструмент + Vitest (900+ теста, включително модул, интеграция, E2E)- **CI/CD**: Действия на GitHub (автоматично публикуване на npm + Docker Hub при пускане)
1584
- - **Уебсайт**: [omniroute.online](https://omniroute.online)
1585
- - **Пакет**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
1586
- - **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
1587
- - **Устойчивост**: прекъсвач, експоненциално отдръпване, анти-гръмотевично стадо, TLS подправяне, автоматично комбинирано самолечение
1588
-
1589
- </details>
1590
-
1591
- ---
1592
-
1593
- ## 📖 Документация
1594
-
1595
- | Документ | Описание |
1596
- | ------------------------------------------------------------- | -------------------------------------------------------------- |
1597
- | [Ръководство на потребителя](docs/USER_GUIDE.md) | Доставчици, комбинации, CLI интеграция, внедряване |
1598
- | [API справка] (docs/API_REFERENCE.md) | Всички крайни точки с примери |
1599
- | [MCP сървър] (open-sse/mcp-server/README.md) | 16 MCP инструмента, IDE конфигурации, Python/TS/Go клиенти |
1600
- | [A2A сървър] (src/lib/a2a/README.md) | JSON-RPC 2.0 протокол, умения, стрийминг, управление на задачи |
1601
- | [Автоматичен комбиниран двигател] (docs/auto-combo.md) | 6-факторно оценяване, пакети с режими, самолечение |
1602
- | [Отстраняване на неизправности](docs/TROUBLESHOOTING.md) | Често срещани проблеми и решения |
1603
- | [Архитектура] (docs/ARCHITECTURE.md) | Системна архитектура и вътрешност |
1604
- | [Принос] (CONTRIBUTING.md) | Настройка и насоки за разработка |
1605
- | [Спецификация на OpenAPI] (docs/openapi.yaml) | Спецификация на OpenAPI 3.0 |
1606
- | [Правила за сигурност](SECURITY.md) | Отчитане на уязвимости и практики за сигурност |
1607
- | [Внедряване на VM] (docs/VM_DEPLOYMENT_GUIDE.md) | Пълно ръководство: Настройка на VM + nginx + Cloudflare |
1608
- | [Галерия с функции](docs/FEATURES.md) | Визуална обиколка на таблото с екранни снимки |
1609
- | [Списък за проверка на изданието] (docs/RELEASE_CHECKLIST.md) | Стъпки за валидиране преди пускане |
1610
-
1611
- ---
1612
-
1613
- ## 🗺️
1614
-
1615
- OmniRoute има **планирани 210+ функции** в множество фази на разработка. Ето основните области:
1616
-
1617
- | Категория | Планирани функции | Акценти |
1618
- | ----------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------- |
1619
- | 🧠 **Маршрутизиране и разузнаване** | 25+ | Маршрутизиране с най-ниска латентност, маршрутизиране на базата на маркери, предварителен полет на квота, избор на P2C акаунт |
1620
- | 🔒 **Сигурност и съответствие** | 20+ | SSRF укрепване, прикриване на идентификационни данни, ограничение на скоростта за крайна точка, обхват на ключ за управление |
1621
- | 📊 **Наблюдаемост** | 15+ | OpenTelemetry интеграция, мониторинг на квоти в реално време, проследяване на разходите за модел |
1622
- | 🔄 **Интеграции на доставчици** | 20+ | Регистър на динамичен модел, изчакване на доставчика, Codex за множество акаунти, анализ на квота на Copilot |
1623
- | ⚡ **Изпълнение** | 15+ | Слой с двоен кеш, кеш за подкани, кеш за отговор, поддържане на активността при поточно предаване, партиден API |
1624
- | 🌐 **Екосистема** | 10+ | WebSocket API, горещо презареждане на конфигурация, разпределено хранилище за конфигурация, търговски режим |
1625
-
1626
- ### 🔜 Очаквайте скоро- 🔗 **OpenCode Integration** — Поддръжка на родния доставчик за IDE за кодиране OpenCode AI
1627
-
1628
- - 🔗 **TRAE Integration** — Пълна поддръжка за рамката за разработка на TRAE AI
1629
- - 📦 **Batch API** — Асинхронна групова обработка за групови заявки
1630
- - 🎯 **Маршрутизиране на базата на етикети** — Маршрутизирайте заявки въз основа на персонализирани тагове и метаданни
1631
- - 💰 **Стратегия с най-ниска цена** — Автоматично изберете най-евтиния наличен доставчик
1632
-
1633
- > 📝 Пълните спецификации на функциите са налични в [`docs/new-features/`](docs/new-features/) (217 подробни спецификации)
1634
-
1635
- ---
1636
-
1637
- ## 👥 Сътрудници
1638
-
1639
- [![Сътрудници](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
1640
-
1641
- ### Как да допринесете
1642
-
1643
- 1. Разклонете хранилището
1644
- 2. Създайте своя клон на функция (`git checkout -b feature/amazing-feature`)
1645
- 3. Задайте вашите промени (`git commit -m 'Add amazing feature'`)
1646
- 4. Натиснете до клона (`git push origin feature/amazing-feature`)
1647
- 5. Отворете заявка за изтегляне
1648
-
1649
- Вижте [CONTRIBUTING.md](CONTRIBUTING.md) за подробни насоки.
1650
-
1651
- ### Пускане на нова версия
1652
-
1653
- ```bash
1654
- # Create a release — npm publish happens automatically
1655
- gh release create v2.0.0 --title "v2.0.0" --generate-notes
1656
- ```
1657
-
1658
- ---
1659
-
1660
- ## 📊 Звездна история
1661
-
1662
- <a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
1663
- <picture>
1664
- <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
1665
- <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1666
- <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1667
- </picture>
1668
- </a>
1669
-
1670
- ---
1671
-
1672
- ## 🙏 Благодарности
1673
-
1674
- Специални благодарности на **[9router](https://github.com/decolua/9router)** от **[decolua](https://github.com/decolua)** — оригиналният проект, който вдъхнови това разклонение. OmniRoute се основава на тази невероятна основа с допълнителни функции, мултимодални API и пълно пренаписване на TypeScript.
1675
-
1676
- Специални благодарности на **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — оригиналната реализация на Go, която вдъхнови този JavaScript порт.
1677
-
1678
- ---
1679
-
1680
- ## 📄 Лиценз
1681
-
1682
- Лиценз на MIT – вижте [ЛИЦЕНЗ](LICENSE) за подробности.
1683
-
1684
- ---
1685
-
1686
- <div align="center">
1687
- <sub>Създаден с ❤️ за разработчици, които кодират 24/7</sub>
1688
- <br/>
1689
- <sub><a href="https://omniroute.online">omniroute.online</a></sub>
1690
- </div>
1691
- <!-- GitHub Discussions enabled for community Q&A -->