omniroute 0.8.8 → 0.9.0

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 (431) hide show
  1. package/README.de.md +995 -0
  2. package/README.es.md +995 -0
  3. package/README.fr.md +995 -0
  4. package/README.it.md +995 -0
  5. package/README.md +694 -72
  6. package/README.pt-BR.md +995 -0
  7. package/README.ru.md +995 -0
  8. package/README.zh-CN.md +995 -0
  9. package/app/.next/BUILD_ID +1 -1
  10. package/app/.next/app-path-routes-manifest.json +21 -21
  11. package/app/.next/build-manifest.json +2 -2
  12. package/app/.next/prerender-manifest.json +3 -3
  13. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/limits/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/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  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/_global-error/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/_global-error.html +2 -2
  33. package/app/.next/server/app/_global-error.rsc +1 -1
  34. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  36. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  37. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  38. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  39. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/_not-found.html +1 -1
  42. package/app/.next/server/app/_not-found.rsc +2 -2
  43. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  44. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  45. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  46. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  47. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  48. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  49. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  54. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  56. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  58. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  64. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/droid-settings/route.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.js +2 -2
  71. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  75. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
  77. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/models/route.js +1 -1
  98. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  100. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/providers/route.js +1 -1
  122. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/callback.html +1 -1
  181. package/app/.next/server/app/callback.rsc +2 -2
  182. package/app/.next/server/app/callback.segments/_full.segment.rsc +2 -2
  183. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  184. package/app/.next/server/app/callback.segments/_index.segment.rsc +2 -2
  185. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  186. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  187. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  188. package/app/.next/server/app/dashboard/analytics.html +1 -1
  189. package/app/.next/server/app/dashboard/analytics.rsc +4 -4
  190. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
  191. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  192. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  193. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  194. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  195. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  196. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +2 -2
  197. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  198. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  199. package/app/.next/server/app/dashboard/cli-tools.rsc +4 -4
  200. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  201. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  202. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  203. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  204. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  205. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  206. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +2 -2
  207. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  208. package/app/.next/server/app/dashboard/combos.html +1 -1
  209. package/app/.next/server/app/dashboard/combos.rsc +4 -4
  210. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  211. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  212. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  213. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  214. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  215. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  216. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +2 -2
  217. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  218. package/app/.next/server/app/dashboard/costs.html +1 -1
  219. package/app/.next/server/app/dashboard/costs.rsc +4 -4
  220. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
  221. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
  222. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  223. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  224. package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +4 -4
  225. package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
  226. package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +2 -2
  227. package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +1 -1
  228. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  229. package/app/.next/server/app/dashboard/endpoint.rsc +4 -4
  230. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  231. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  233. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  234. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  235. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  236. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +2 -2
  237. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  238. package/app/.next/server/app/dashboard/health.html +1 -1
  239. package/app/.next/server/app/dashboard/health.rsc +4 -4
  240. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
  241. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  243. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  244. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +4 -4
  245. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
  246. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +2 -2
  247. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +1 -1
  248. package/app/.next/server/app/dashboard/limits.html +2 -2
  249. package/app/.next/server/app/dashboard/limits.rsc +4 -4
  250. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +2 -2
  251. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  253. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  254. package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +4 -4
  255. package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +1 -1
  256. package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +2 -2
  257. package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +1 -1
  258. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  259. package/app/.next/server/app/dashboard/onboarding.rsc +3 -3
  260. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  261. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  262. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  263. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  264. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +3 -3
  265. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  266. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +2 -2
  267. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +1 -1
  268. package/app/.next/server/app/dashboard/profile.html +1 -1
  269. package/app/.next/server/app/dashboard/profile.rsc +3 -3
  270. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  271. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  272. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  273. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  274. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  275. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  276. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +2 -2
  277. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  278. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  279. package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
  280. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  281. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  282. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  283. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  284. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  285. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  286. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  287. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +2 -2
  288. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  289. package/app/.next/server/app/dashboard/providers.html +1 -1
  290. package/app/.next/server/app/dashboard/providers.rsc +4 -4
  291. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  292. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  293. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  294. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  295. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  296. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  297. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +2 -2
  298. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  299. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  300. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  301. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  302. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  303. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  304. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  305. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  306. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  307. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  308. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +2 -2
  309. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  310. package/app/.next/server/app/dashboard/settings.html +1 -1
  311. package/app/.next/server/app/dashboard/settings.rsc +4 -4
  312. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  313. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  314. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  315. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  316. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +4 -4
  317. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  318. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +2 -2
  319. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +1 -1
  320. package/app/.next/server/app/dashboard/translator.html +2 -2
  321. package/app/.next/server/app/dashboard/translator.rsc +4 -4
  322. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  323. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  324. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  325. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  326. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  327. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  328. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +2 -2
  329. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  330. package/app/.next/server/app/dashboard/usage.html +1 -1
  331. package/app/.next/server/app/dashboard/usage.rsc +4 -4
  332. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  333. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  334. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  335. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  336. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  337. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  338. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +2 -2
  339. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  340. package/app/.next/server/app/docs/page.js +1 -1
  341. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/docs.html +1 -1
  343. package/app/.next/server/app/docs.rsc +2 -2
  344. package/app/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  345. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  346. package/app/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  347. package/app/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  348. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  349. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  350. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  351. package/app/.next/server/app/forbidden.html +1 -1
  352. package/app/.next/server/app/forbidden.rsc +2 -2
  353. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +2 -2
  354. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
  355. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +2 -2
  356. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +1 -1
  357. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
  358. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
  359. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  360. package/app/.next/server/app/forgot-password.html +1 -1
  361. package/app/.next/server/app/forgot-password.rsc +3 -3
  362. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +3 -3
  363. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  364. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +2 -2
  365. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +1 -1
  366. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
  367. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
  368. package/app/.next/server/app/index.html +1 -1
  369. package/app/.next/server/app/index.rsc +2 -2
  370. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  371. package/app/.next/server/app/index.segments/_full.segment.rsc +2 -2
  372. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  373. package/app/.next/server/app/index.segments/_index.segment.rsc +2 -2
  374. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  375. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  376. package/app/.next/server/app/landing.html +1 -1
  377. package/app/.next/server/app/landing.rsc +2 -2
  378. package/app/.next/server/app/landing.segments/_full.segment.rsc +2 -2
  379. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  380. package/app/.next/server/app/landing.segments/_index.segment.rsc +2 -2
  381. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  382. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  383. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  384. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  385. package/app/.next/server/app/login.html +1 -1
  386. package/app/.next/server/app/login.rsc +3 -3
  387. package/app/.next/server/app/login.segments/_full.segment.rsc +3 -3
  388. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  389. package/app/.next/server/app/login.segments/_index.segment.rsc +2 -2
  390. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  391. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  392. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  393. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  394. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  395. package/app/.next/server/app/privacy.html +1 -1
  396. package/app/.next/server/app/privacy.rsc +2 -2
  397. package/app/.next/server/app/privacy.segments/_full.segment.rsc +2 -2
  398. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  399. package/app/.next/server/app/privacy.segments/_index.segment.rsc +2 -2
  400. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +1 -1
  401. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  402. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  403. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  404. package/app/.next/server/app/terms.html +1 -1
  405. package/app/.next/server/app/terms.rsc +2 -2
  406. package/app/.next/server/app/terms.segments/_full.segment.rsc +2 -2
  407. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  408. package/app/.next/server/app/terms.segments/_index.segment.rsc +2 -2
  409. package/app/.next/server/app/terms.segments/_tree.segment.rsc +1 -1
  410. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  411. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  412. package/app/.next/server/app-paths-manifest.json +21 -21
  413. package/app/.next/server/chunks/5583.js +1 -1
  414. package/app/.next/server/chunks/8369.js +1 -1
  415. package/app/.next/server/chunks/9824.js +1 -1
  416. package/app/.next/server/pages/404.html +1 -1
  417. package/app/.next/server/pages/500.html +2 -2
  418. package/app/.next/server/server-reference-manifest.js +1 -1
  419. package/app/.next/server/server-reference-manifest.json +1 -1
  420. package/app/.next/static/chunks/{5846-b70d10291438712b.js → 5846-0541241939d8c7e3.js} +1 -1
  421. package/app/.next/static/chunks/{993-d43d3ceef35b3300.js → 993-b74bac8c882e8d1a.js} +1 -1
  422. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{page-3ac21c16bcfde2e4.js → page-038687bc5d2c3bb5.js} +1 -1
  423. package/app/package.json +1 -1
  424. package/app/public/providers/ironclaw.png +0 -0
  425. package/app/public/providers/nanobot.png +0 -0
  426. package/app/public/providers/opencode.svg +18 -0
  427. package/app/public/providers/picoclaw.jpg +0 -0
  428. package/app/public/providers/zeroclaw.png +0 -0
  429. package/package.json +1 -1
  430. /package/app/.next/static/{xW2ax6VohvDsTIIwd1zWK → 8ACUE6hz9uxBNe_Q_ZH6y}/_buildManifest.js +0 -0
  431. /package/app/.next/static/{xW2ax6VohvDsTIIwd1zWK → 8ACUE6hz9uxBNe_Q_ZH6y}/_ssgManifest.js +0 -0
package/README.ru.md ADDED
@@ -0,0 +1,995 @@
1
+ <div align="center">
2
+ <img src="./images/omniroute.png" alt="OmniRoute Dashboard" width="800"/>
3
+
4
+ # 🚀 OmniRoute — Бесплатный AI Gateway
5
+
6
+ ### Никогда не прекращайте программировать. Умная маршрутизация к **БЕСПЛАТНЫМ и дешёвым AI-моделям** с автоматическим fallback.
7
+
8
+ _Ваш универсальный API-прокси — одна точка доступа, 36+ провайдеров, нулевой простой._
9
+
10
+ **Chat Completions • Embeddings • Генерация изображений • Аудио • Reranking • 100% TypeScript**
11
+
12
+ ---
13
+
14
+ ### 🤖 Бесплатный AI-провайдер для ваших любимых агентов программирования
15
+
16
+ _Подключайте любую IDE или CLI-инструмент с AI через OmniRoute — бесплатный API gateway для неограниченного программирования._
17
+
18
+ <table>
19
+ <tr>
20
+ <td align="center" width="110">
21
+ <a href="https://github.com/cline/cline">
22
+ <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
23
+ <b>OpenClaw</b>
24
+ </a><br/>
25
+ <sub>⭐ 205K</sub>
26
+ </td>
27
+ <td align="center" width="110">
28
+ <a href="https://github.com/HKUDS/nanobot">
29
+ <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
30
+ <b>NanoBot</b>
31
+ </a><br/>
32
+ <sub>⭐ 20.9K</sub>
33
+ </td>
34
+ <td align="center" width="110">
35
+ <a href="https://github.com/sipeed/picoclaw">
36
+ <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
37
+ <b>PicoClaw</b>
38
+ </a><br/>
39
+ <sub>⭐ 14.6K</sub>
40
+ </td>
41
+ <td align="center" width="110">
42
+ <a href="https://github.com/zeroclaw-labs/zeroclaw">
43
+ <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
44
+ <b>ZeroClaw</b>
45
+ </a><br/>
46
+ <sub>⭐ 9.9K</sub>
47
+ </td>
48
+ <td align="center" width="110">
49
+ <a href="https://github.com/nearai/ironclaw">
50
+ <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
51
+ <b>IronClaw</b>
52
+ </a><br/>
53
+ <sub>⭐ 2.1K</sub>
54
+ </td>
55
+ </tr>
56
+ <tr>
57
+ <td align="center" width="110">
58
+ <a href="https://github.com/anomalyco/opencode">
59
+ <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
60
+ <b>OpenCode</b>
61
+ </a><br/>
62
+ <sub>⭐ 106K</sub>
63
+ </td>
64
+ <td align="center" width="110">
65
+ <a href="https://github.com/openai/codex">
66
+ <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
67
+ <b>Codex CLI</b>
68
+ </a><br/>
69
+ <sub>⭐ 60.8K</sub>
70
+ </td>
71
+ <td align="center" width="110">
72
+ <a href="https://github.com/anthropics/claude-code">
73
+ <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
74
+ <b>Claude Code</b>
75
+ </a><br/>
76
+ <sub>⭐ 67.3K</sub>
77
+ </td>
78
+ <td align="center" width="110">
79
+ <a href="https://github.com/google-gemini/gemini-cli">
80
+ <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
81
+ <b>Gemini CLI</b>
82
+ </a><br/>
83
+ <sub>⭐ 94.7K</sub>
84
+ </td>
85
+ <td align="center" width="110">
86
+ <a href="https://github.com/Kilo-Org/kilocode">
87
+ <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
88
+ <b>Kilo Code</b>
89
+ </a><br/>
90
+ <sub>⭐ 15.5K</sub>
91
+ </td>
92
+ </tr>
93
+ </table>
94
+
95
+ <sub>📡 Все агенты подключаются через <code>http://localhost:20128/v1</code> или <code>http://cloud.omniroute.online/v1</code> — одна конфигурация, неограниченные модели и квота</sub>
96
+
97
+ ---
98
+
99
+ [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute)
100
+ [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)
101
+ [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
102
+ [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)
103
+
104
+ [🌐 Сайт](https://omniroute.online) • [🚀 Быстрый старт](#-быстрый-старт) • [💡 Функции](#-основные-функции) • [📖 Документация](#-документация) • [💰 Цены](#-обзор-цен)
105
+
106
+ 🌐 **Доступно на:** [English](README.md) | [Português](README.pt-BR.md) | [Español](README.es.md) | [Русский](README.ru.md) | [中文](README.zh-CN.md) | [Deutsch](README.de.md) | [Français](README.fr.md) | [Italiano](README.it.md)
107
+
108
+ </div>
109
+
110
+ ---
111
+
112
+ ## 🤔 Почему OmniRoute?
113
+
114
+ **Перестаньте тратить деньги и упираться в лимиты:**
115
+
116
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Квота подписки истекает неиспользованной каждый месяц
117
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Лимиты скорости останавливают вас посреди программирования
118
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Дорогие API ($20-50/месяц за провайдера)
119
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ручное переключение между провайдерами
120
+
121
+ **OmniRoute решает это:**
122
+
123
+ - ✅ **Максимизируйте подписки** — Отслеживайте квоты, используйте всё до сброса
124
+ - ✅ **Автоматический fallback** — Подписка → API Key → Дешёвый → Бесплатный, нулевой простой
125
+ - ✅ **Мульти-аккаунт** — Round-robin между аккаунтами каждого провайдера
126
+ - ✅ **Универсальный** — Работает с Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, любым CLI-инструментом
127
+
128
+ ---
129
+
130
+ ## 🔄 Как это работает
131
+
132
+ ```
133
+ ┌─────────────┐
134
+ │ Ваш CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
135
+ │ Tool │
136
+ └──────┬──────┘
137
+ │ http://localhost:20128/v1
138
+
139
+ ┌─────────────────────────────────────────┐
140
+ │ OmniRoute (Умный маршрутизатор) │
141
+ │ • Трансляция формата (OpenAI ↔ Claude) │
142
+ │ • Отслеживание квот + Embeddings + Изображения │
143
+ │ • Автообновление токенов │
144
+ └──────┬──────────────────────────────────┘
145
+
146
+ ├─→ [Tier 1: ПОДПИСКА] Claude Code, Codex, Gemini CLI
147
+ │ ↓ квота исчерпана
148
+ ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM и др.
149
+ │ ↓ лимит бюджета
150
+ ├─→ [Tier 3: ДЕШЁВЫЙ] GLM ($0.6/1M), MiniMax ($0.2/1M)
151
+ │ ↓ лимит бюджета
152
+ └─→ [Tier 4: БЕСПЛАТНЫЙ] iFlow, Qwen, Kiro (неограниченно)
153
+
154
+ Результат: Никогда не прекращайте программировать, минимальные затраты
155
+ ```
156
+
157
+ ---
158
+
159
+ ## ⚡ Быстрый старт
160
+
161
+ **1. Установите глобально:**
162
+
163
+ ```bash
164
+ npm install -g omniroute
165
+ omniroute
166
+ ```
167
+
168
+ 🎉 Dashboard открывается на `http://localhost:20128`
169
+
170
+ | Команда | Описание |
171
+ | ----------------------- | ------------------------------------------ |
172
+ | `omniroute` | Запустить сервер (порт по умолчанию 20128) |
173
+ | `omniroute --port 3000` | Использовать другой порт |
174
+ | `omniroute --no-open` | Не открывать браузер автоматически |
175
+ | `omniroute --help` | Показать справку |
176
+
177
+ **2. Подключите БЕСПЛАТНОГО провайдера:**
178
+
179
+ Dashboard → Провайдеры → Подключить **Claude Code** или **Antigravity** → OAuth вход → Готово!
180
+
181
+ **3. Используйте в CLI-инструменте:**
182
+
183
+ ```
184
+ Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Настройки:
185
+ Endpoint: http://localhost:20128/v1
186
+ API Key: [скопируйте из dashboard]
187
+ Model: if/kimi-k2-thinking
188
+ ```
189
+
190
+ **Готово!** Начните программировать с БЕСПЛАТНЫМИ AI-моделями.
191
+
192
+ **Альтернатива — запуск из исходного кода:**
193
+
194
+ ```bash
195
+ cp .env.example .env
196
+ npm install
197
+ PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
198
+ ```
199
+
200
+ ---
201
+
202
+ ## 🐳 Docker
203
+
204
+ OmniRoute доступен как публичный Docker-образ на [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
205
+
206
+ **Быстрый запуск:**
207
+
208
+ ```bash
209
+ docker run -d \
210
+ --name omniroute \
211
+ --restart unless-stopped \
212
+ -p 20128:20128 \
213
+ -v omniroute-data:/app/data \
214
+ diegosouzapw/omniroute:latest
215
+ ```
216
+
217
+ **С файлом окружения:**
218
+
219
+ ```bash
220
+ # Скопируйте и отредактируйте .env
221
+ cp .env.example .env
222
+
223
+ docker run -d \
224
+ --name omniroute \
225
+ --restart unless-stopped \
226
+ --env-file .env \
227
+ -p 20128:20128 \
228
+ -v omniroute-data:/app/data \
229
+ diegosouzapw/omniroute:latest
230
+ ```
231
+
232
+ **Используя Docker Compose:**
233
+
234
+ ```bash
235
+ # Базовый профиль (без CLI-инструментов)
236
+ docker compose --profile base up -d
237
+
238
+ # CLI-профиль (Claude Code, Codex, OpenClaw встроены)
239
+ docker compose --profile cli up -d
240
+ ```
241
+
242
+ | Образ | Тег | Размер | Описание |
243
+ | ------------------------ | -------- | ------ | -------------------------- |
244
+ | `diegosouzapw/omniroute` | `latest` | ~250MB | Последний стабильный релиз |
245
+ | `diegosouzapw/omniroute` | `0.9.0` | ~250MB | Текущая версия |
246
+
247
+ ---
248
+
249
+ ## 💰 Обзор цен
250
+
251
+ | Tier | Провайдер | Стоимость | Сброс квоты | Лучше всего для |
252
+ | ----------------- | ----------------- | ----------------------------- | ------------------ | -------------------------------- |
253
+ | **💳 ПОДПИСКА** | Claude Code (Pro) | $20/мес | 5ч + еженедельно | Уже подписан |
254
+ | | Codex (Plus/Pro) | $20-200/мес | 5ч + еженедельно | Пользователи OpenAI |
255
+ | | Gemini CLI | **БЕСПЛАТНО** | 180K/мес + 1K/день | Все! |
256
+ | | GitHub Copilot | $10-19/мес | Ежемесячно | Пользователи GitHub |
257
+ | **🔑 API KEY** | NVIDIA NIM | **БЕСПЛАТНО** (1000 кредитов) | Одноразово | Бесплатное тестирование |
258
+ | | DeepSeek | По использованию | Нет | Лучшее соотношение цена/качество |
259
+ | | Groq | Беспл. уровень + платный | Ограничено | Сверхбыстрый вывод |
260
+ | | xAI (Grok) | По использованию | Нет | Модели Grok |
261
+ | | Mistral | Беспл. уровень + платный | Ограничено | Европейский AI |
262
+ | | OpenRouter | По использованию | Нет | 100+ моделей |
263
+ | **💰 ДЕШЁВЫЙ** | GLM-4.7 | $0.6/1M | Ежедневно 10ч | Бюджетный бэкап |
264
+ | | MiniMax M2.1 | $0.2/1M | 5ч ротация | Самый дешёвый вариант |
265
+ | | Kimi K2 | $9/мес фикс | 10M токенов/мес | Предсказуемая цена |
266
+ | **🆓 БЕСПЛАТНЫЙ** | iFlow | $0 | Неограниченно | 8 бесплатных моделей |
267
+ | | Qwen | $0 | Неограниченно | 3 бесплатные модели |
268
+ | | Kiro | $0 | Неограниченно | Claude бесплатно |
269
+
270
+ **💡 Совет:** Начните с Gemini CLI (180K бесплатно/мес) + iFlow (неограниченно бесплатно) = $0!
271
+
272
+ ---
273
+
274
+ ## 🎯 Сценарии использования
275
+
276
+ ### Сценарий 1: «У меня подписка Claude Pro»
277
+
278
+ **Проблема:** Квота истекает неиспользованной, лимиты скорости во время интенсивного программирования
279
+
280
+ ```
281
+ Combo: "maximize-claude"
282
+ 1. cc/claude-opus-4-6 (используйте подписку полностью)
283
+ 2. glm/glm-4.7 (дешёвый бэкап при исчерпании квоты)
284
+ 3. if/kimi-k2-thinking (бесплатный аварийный fallback)
285
+
286
+ Месячная стоимость: $20 (подписка) + ~$5 (бэкап) = $25 итого
287
+ vs. $20 + упирание в лимиты = разочарование
288
+ ```
289
+
290
+ ### Сценарий 2: «Хочу нулевую стоимость»
291
+
292
+ **Проблема:** Не может позволить подписки, нужен надёжный AI для программирования
293
+
294
+ ```
295
+ Combo: "free-forever"
296
+ 1. gc/gemini-3-flash (180K бесплатно/мес)
297
+ 2. if/kimi-k2-thinking (неограниченно бесплатно)
298
+ 3. qw/qwen3-coder-plus (неограниченно бесплатно)
299
+
300
+ Месячная стоимость: $0
301
+ Качество: Модели готовые к продакшену
302
+ ```
303
+
304
+ ### Сценарий 3: «Мне нужно программировать 24/7, без перерывов»
305
+
306
+ **Проблема:** Дедлайны, не может позволить простой
307
+
308
+ ```
309
+ Combo: "always-on"
310
+ 1. cc/claude-opus-4-6 (лучшее качество)
311
+ 2. cx/gpt-5.2-codex (вторая подписка)
312
+ 3. glm/glm-4.7 (дешёвый, ежедневный сброс)
313
+ 4. minimax/MiniMax-M2.1 (самый дешёвый, сброс 5ч)
314
+ 5. if/kimi-k2-thinking (бесплатно неограниченно)
315
+
316
+ Результат: 5 уровней fallback = нулевой простой
317
+ ```
318
+
319
+ ### Сценарий 4: «Хочу БЕСПЛАТНЫЙ AI в OpenClaw»
320
+
321
+ **Проблема:** Нужен AI-ассистент в мессенджерах, полностью бесплатно
322
+
323
+ ```
324
+ Combo: "openclaw-free"
325
+ 1. if/glm-4.7 (неограниченно бесплатно)
326
+ 2. if/minimax-m2.1 (неограниченно бесплатно)
327
+ 3. if/kimi-k2-thinking (неограниченно бесплатно)
328
+
329
+ Месячная стоимость: $0
330
+ Доступ через: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
331
+ ```
332
+
333
+ ---
334
+
335
+ ## 💡 Основные функции
336
+
337
+ ### 🧠 Маршрутизация и интеллект
338
+
339
+ | Функция | Что делает |
340
+ | ------------------------------------------- | ----------------------------------------------------------------------------- |
341
+ | 🎯 **Умный 4-уровневый Fallback** | Авто-маршрутизация: Подписка → API Key → Дешёвый → Бесплатный |
342
+ | 📊 **Отслеживание квот в реальном времени** | Счётчик токенов в реальном времени + обратный отсчёт до сброса |
343
+ | 🔄 **Трансляция формата** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro бесшовно |
344
+ | 👥 **Мульти-аккаунт** | Несколько аккаунтов на провайдера с интеллектуальным выбором |
345
+ | 🔄 **Автообновление токенов** | OAuth-токены обновляются автоматически с повторами |
346
+ | 🎨 **Пользовательские комбо** | 6 стратегий: fill-first, round-robin, p2c, random, least-used, cost-optimized |
347
+ | 🧩 **Пользовательские модели** | Добавьте любой ID модели к любому провайдеру |
348
+ | 🌐 **Wildcard-маршрутизатор** | Маршрутизируйте паттерны `provider/*` к любому провайдеру динамически |
349
+ | 🧠 **Бюджет рассуждений** | Режимы passthrough, auto, custom и adaptive для моделей рассуждений |
350
+ | 💬 **Инъекция System Prompt** | Глобальный system prompt для всех запросов |
351
+ | 📄 **API Responses** | Полная поддержка OpenAI Responses API (`/v1/responses`) для Codex |
352
+
353
+ ### 🎵 Мультимодальные API
354
+
355
+ | Функция | Что делает |
356
+ | ---------------------------- | --------------------------------------------------- |
357
+ | 🖼️ **Генерация изображений** | `/v1/images/generations` — 4 провайдера, 9+ моделей |
358
+ | 📐 **Embeddings** | `/v1/embeddings` — 6 провайдеров, 9+ моделей |
359
+ | 🎤 **Транскрипция аудио** | `/v1/audio/transcriptions` — Совместимо с Whisper |
360
+ | 🔊 **Текст в речь** | `/v1/audio/speech` — Мульти-провайдерный синтез |
361
+ | 🛡️ **Модерация** | `/v1/moderations` — Проверки безопасности контента |
362
+ | 🔀 **Reranking** | `/v1/rerank` — Переранжирование релевантности |
363
+
364
+ ### 🛡️ Устойчивость и безопасность
365
+
366
+ | Функция | Что делает |
367
+ | -------------------------------- | -------------------------------------------------------------- |
368
+ | 🔌 **Circuit Breaker** | Авто-открытие/закрытие по провайдеру с настраиваемыми порогами |
369
+ | 🛡️ **Anti-Thundering Herd** | Mutex + семафор для API key провайдеров |
370
+ | 🧠 **Семантический кеш** | Двухуровневый кеш (сигнатура + семантика) снижает стоимость |
371
+ | ⚡ **Идемпотентность запросов** | 5с окно дедупликации для дублирующихся запросов |
372
+ | 🔒 **Спуфинг TLS Fingerprint** | Обход обнаружения ботов через wreq-js |
373
+ | 🌐 **Фильтрация IP** | Allowlist/blocklist для контроля доступа к API |
374
+ | 📊 **Настраиваемые Rate Limits** | Настраиваемые RPM, минимальный интервал, макс. конкуррентность |
375
+
376
+ ### 📊 Наблюдаемость и аналитика
377
+
378
+ | Функция | Что делает |
379
+ | ----------------------------- | ------------------------------------------------------------------------ |
380
+ | 📝 **Логи запросов** | Режим debug с полными логами запросов/ответов |
381
+ | 💾 **Логи SQLite** | Постоянные proxy-логи переживают перезапуски |
382
+ | 📊 **Dashboard аналитики** | Recharts: карточки статистики, график использования, таблица провайдеров |
383
+ | 📈 **Отслеживание прогресса** | Opt-in SSE-события прогресса для стриминга |
384
+ | 🧪 **Оценки LLM** | Тестирование с golden set и 4 стратегиями сравнения |
385
+ | 🔍 **Телеметрия запросов** | Агрегация латентности p50/p95/p99 + трекинг X-Request-Id |
386
+ | 📋 **Логи + Квоты** | Отдельные страницы для просмотра логов и отслеживания квот |
387
+ | 🏥 **Dashboard здоровья** | Uptime, состояния circuit breaker, блокировки, статистика кеша |
388
+ | 💰 **Отслеживание стоимости** | Управление бюджетом + настройка цен по моделям |
389
+
390
+ ### ☁️ Деплой и синхронизация
391
+
392
+ | Функция | Что делает |
393
+ | -------------------------- | --------------------------------------------------------------------------- |
394
+ | 💾 **Cloud Sync** | Синхронизация настроек между устройствами через Cloudflare Workers |
395
+ | 🌐 **Деплой куда угодно** | Localhost, VPS, Docker, Cloudflare Workers |
396
+ | 🔑 **Управление API Keys** | Генерация, ротация и настройка scope API keys по провайдерам |
397
+ | 🧙 **Мастер настройки** | 4-шаговая настройка для новых пользователей |
398
+ | 🔧 **Dashboard CLI Tools** | Настройка в один клик для Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
399
+ | 🔄 **Бэкапы БД** | Автоматическое резервное копирование и восстановление всех настроек |
400
+
401
+ <details>
402
+ <summary><b>📖 Подробности функций</b></summary>
403
+
404
+ ### 🎯 Умный 4-уровневый Fallback
405
+
406
+ Создавайте комбо с автоматическим fallback:
407
+
408
+ ```
409
+ Combo: "my-coding-stack"
410
+ 1. cc/claude-opus-4-6 (ваша подписка)
411
+ 2. nvidia/llama-3.3-70b (бесплатный NVIDIA API)
412
+ 3. glm/glm-4.7 (дешёвый бэкап, $0.6/1M)
413
+ 4. if/kimi-k2-thinking (бесплатный fallback)
414
+
415
+ → Автоматически переключается при исчерпании квоты или ошибках
416
+ ```
417
+
418
+ ### 📊 Отслеживание квот в реальном времени
419
+
420
+ - Потребление токенов по провайдерам
421
+ - Обратный отсчёт до сброса (5 часов, ежедневно, еженедельно)
422
+ - Оценка стоимости для платных уровней
423
+ - Ежемесячные отчёты о расходах
424
+
425
+ ### 🔄 Трансляция формата
426
+
427
+ Бесшовная трансляция между форматами:
428
+
429
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
430
+ - Ваш CLI отправляет формат OpenAI → OmniRoute транслирует → Провайдер получает нативный формат
431
+ - Работает с любым инструментом, поддерживающим пользовательские OpenAI endpoints
432
+
433
+ ### 👥 Мульти-аккаунт
434
+
435
+ - Добавляйте несколько аккаунтов на провайдера
436
+ - Автоматический round-robin или маршрутизация по приоритету
437
+ - Fallback на следующий аккаунт при исчерпании квоты
438
+
439
+ ### 🔄 Автообновление токенов
440
+
441
+ - OAuth-токены обновляются автоматически до истечения
442
+ - Без необходимости ручной повторной аутентификации
443
+ - Бесшовный опыт по всем провайдерам
444
+
445
+ ### 🎨 Пользовательские комбо
446
+
447
+ - Создавайте неограниченные комбинации моделей
448
+ - 6 стратегий: fill-first, round-robin, power-of-two-choices, random, least-used, cost-optimized
449
+ - Делитесь комбо между устройствами с Cloud Sync
450
+
451
+ ### 🏥 Dashboard здоровья
452
+
453
+ - Статус системы (uptime, версия, использование памяти)
454
+ - Состояния circuit breaker по провайдерам (Closed/Open/Half-Open)
455
+ - Статус rate limit и активные блокировки
456
+ - Статистика кеша сигнатур
457
+ - Телеметрия латентности (p50/p95/p99) + кеш промптов
458
+ - Сброс состояния здоровья одним кликом
459
+
460
+ ### 🔧 Playground транслятора
461
+
462
+ - Отладка, тестирование и визуализация трансляции форматов API
463
+ - Отправляйте запросы и смотрите, как OmniRoute транслирует между форматами провайдеров
464
+ - Бесценно для устранения проблем интеграции
465
+
466
+ ### 💾 Cloud Sync
467
+
468
+ - Синхронизация провайдеров, комбо и настроек между устройствами
469
+ - Автоматическая фоновая синхронизация
470
+ - Безопасное шифрованное хранилище
471
+
472
+ </details>
473
+
474
+ ---
475
+
476
+ ## 📖 Руководство по настройке
477
+
478
+ <details>
479
+ <summary><b>💳 Провайдеры по подписке</b></summary>
480
+
481
+ ### Claude Code (Pro/Max)
482
+
483
+ ```bash
484
+ Dashboard → Провайдеры → Подключить Claude Code
485
+ → OAuth вход → Автообновление токенов
486
+ → Отслеживание квоты 5ч + еженедельно
487
+
488
+ Модели:
489
+ cc/claude-opus-4-6
490
+ cc/claude-sonnet-4-5-20250929
491
+ cc/claude-haiku-4-5-20251001
492
+ ```
493
+
494
+ **Совет:** Используйте Opus для сложных задач, Sonnet для скорости. OmniRoute отслеживает квоту по моделям!
495
+
496
+ ### OpenAI Codex (Plus/Pro)
497
+
498
+ ```bash
499
+ Dashboard → Провайдеры → Подключить Codex
500
+ → OAuth вход (порт 1455)
501
+ → Сброс 5ч + еженедельно
502
+
503
+ Модели:
504
+ cx/gpt-5.2-codex
505
+ cx/gpt-5.1-codex-max
506
+ ```
507
+
508
+ ### Gemini CLI (БЕСПЛАТНО 180K/мес!)
509
+
510
+ ```bash
511
+ Dashboard → Провайдеры → Подключить Gemini CLI
512
+ → Google OAuth
513
+ → 180K completions/мес + 1K/день
514
+
515
+ Модели:
516
+ gc/gemini-3-flash-preview
517
+ gc/gemini-2.5-pro
518
+ ```
519
+
520
+ **Лучшая ценность:** Огромный бесплатный уровень! Используйте перед платными.
521
+
522
+ ### GitHub Copilot
523
+
524
+ ```bash
525
+ Dashboard → Провайдеры → Подключить GitHub
526
+ → OAuth через GitHub
527
+ → Ежемесячный сброс (1-е число)
528
+
529
+ Модели:
530
+ gh/gpt-5
531
+ gh/claude-4.5-sonnet
532
+ gh/gemini-3-pro
533
+ ```
534
+
535
+ </details>
536
+
537
+ <details>
538
+ <summary><b>🔑 Провайдеры по API Key</b></summary>
539
+
540
+ ### NVIDIA NIM (БЕСПЛАТНО 1000 кредитов!)
541
+
542
+ 1. Регистрация: [build.nvidia.com](https://build.nvidia.com)
543
+ 2. Получите бесплатный API key (1000 кредитов включены)
544
+ 3. Dashboard → Добавить провайдера → NVIDIA NIM:
545
+ - API Key: `nvapi-your-key`
546
+
547
+ **Модели:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` и 50+ других
548
+
549
+ **Совет:** OpenAI-совместимый API — работает идеально с трансляцией форматов OmniRoute!
550
+
551
+ ### DeepSeek
552
+
553
+ 1. Регистрация: [platform.deepseek.com](https://platform.deepseek.com)
554
+ 2. Получите API key
555
+ 3. Dashboard → Добавить провайдера → DeepSeek
556
+
557
+ **Модели:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
558
+
559
+ ### Groq (Бесплатный уровень доступен!)
560
+
561
+ 1. Регистрация: [console.groq.com](https://console.groq.com)
562
+ 2. Получите API key (бесплатный уровень включён)
563
+ 3. Dashboard → Добавить провайдера → Groq
564
+
565
+ **Модели:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
566
+
567
+ **Совет:** Сверхбыстрый вывод — лучший для программирования в реальном времени!
568
+
569
+ ### OpenRouter (100+ моделей)
570
+
571
+ 1. Регистрация: [openrouter.ai](https://openrouter.ai)
572
+ 2. Получите API key
573
+ 3. Dashboard → Добавить провайдера → OpenRouter
574
+
575
+ **Модели:** Доступ к 100+ моделям от всех основных провайдеров через один API key.
576
+
577
+ </details>
578
+
579
+ <details>
580
+ <summary><b>💰 Дешёвые провайдеры (Бэкап)</b></summary>
581
+
582
+ ### GLM-4.7 (Ежедневный сброс, $0.6/1M)
583
+
584
+ 1. Регистрация: [Zhipu AI](https://open.bigmodel.cn/)
585
+ 2. Получите API key из Coding Plan
586
+ 3. Dashboard → Добавить API Key:
587
+ - Провайдер: `glm`
588
+ - API Key: `your-key`
589
+
590
+ **Используйте:** `glm/glm-4.7`
591
+
592
+ **Совет:** Coding Plan предлагает 3× квоту по цене 1/7! Ежедневный сброс в 10:00.
593
+
594
+ ### MiniMax M2.1 (Сброс 5ч, $0.20/1M)
595
+
596
+ 1. Регистрация: [MiniMax](https://www.minimax.io/)
597
+ 2. Получите API key
598
+ 3. Dashboard → Добавить API Key
599
+
600
+ **Используйте:** `minimax/MiniMax-M2.1`
601
+
602
+ **Совет:** Самый дешёвый вариант для длинного контекста (1M токенов)!
603
+
604
+ ### Kimi K2 ($9/мес фикс)
605
+
606
+ 1. Подпишитесь: [Moonshot AI](https://platform.moonshot.ai/)
607
+ 2. Получите API key
608
+ 3. Dashboard → Добавить API Key
609
+
610
+ **Используйте:** `kimi/kimi-latest`
611
+
612
+ **Совет:** Фикс $9/мес за 10M токенов = $0.90/1M эффективная стоимость!
613
+
614
+ </details>
615
+
616
+ <details>
617
+ <summary><b>🆓 БЕСПЛАТНЫЕ провайдеры (Аварийный бэкап)</b></summary>
618
+
619
+ ### iFlow (8 БЕСПЛАТНЫХ моделей)
620
+
621
+ ```bash
622
+ Dashboard → Подключить iFlow
623
+ → OAuth вход iFlow
624
+ → Неограниченное использование
625
+
626
+ Модели:
627
+ if/kimi-k2-thinking
628
+ if/qwen3-coder-plus
629
+ if/glm-4.7
630
+ if/minimax-m2
631
+ if/deepseek-r1
632
+ ```
633
+
634
+ ### Qwen (3 БЕСПЛАТНЫЕ модели)
635
+
636
+ ```bash
637
+ Dashboard → Подключить Qwen
638
+ → Авторизация по коду устройства
639
+ → Неограниченное использование
640
+
641
+ Модели:
642
+ qw/qwen3-coder-plus
643
+ qw/qwen3-coder-flash
644
+ ```
645
+
646
+ ### Kiro (Claude БЕСПЛАТНО)
647
+
648
+ ```bash
649
+ Dashboard → Подключить Kiro
650
+ → AWS Builder ID или Google/GitHub
651
+ → Неограниченное использование
652
+
653
+ Модели:
654
+ kr/claude-sonnet-4.5
655
+ kr/claude-haiku-4.5
656
+ ```
657
+
658
+ </details>
659
+
660
+ <details>
661
+ <summary><b>🎨 Создание комбо</b></summary>
662
+
663
+ ### Пример 1: Максимизация подписки → Дешёвый бэкап
664
+
665
+ ```
666
+ Dashboard → Комбо → Создать новое
667
+
668
+ Название: premium-coding
669
+ Модели:
670
+ 1. cc/claude-opus-4-6 (Основная подписка)
671
+ 2. glm/glm-4.7 (Дешёвый бэкап, $0.6/1M)
672
+ 3. minimax/MiniMax-M2.1 (Самый дешёвый fallback, $0.20/1M)
673
+
674
+ Используйте в CLI: premium-coding
675
+ ```
676
+
677
+ ### Пример 2: Только бесплатные (Нулевая стоимость)
678
+
679
+ ```
680
+ Название: free-combo
681
+ Модели:
682
+ 1. gc/gemini-3-flash-preview (180K бесплатно/мес)
683
+ 2. if/kimi-k2-thinking (неограниченно)
684
+ 3. qw/qwen3-coder-plus (неограниченно)
685
+
686
+ Стоимость: $0 навсегда!
687
+ ```
688
+
689
+ </details>
690
+
691
+ <details>
692
+ <summary><b>🔧 Интеграция с CLI</b></summary>
693
+
694
+ ### Cursor IDE
695
+
696
+ ```
697
+ Настройки → Модели → Расширенные:
698
+ OpenAI API Base URL: http://localhost:20128/v1
699
+ OpenAI API Key: [из dashboard OmniRoute]
700
+ Model: cc/claude-opus-4-6
701
+ ```
702
+
703
+ ### Claude Code
704
+
705
+ Используйте страницу **CLI Tools** в dashboard для настройки в один клик, или редактируйте `~/.claude/settings.json` вручную.
706
+
707
+ ### Codex CLI
708
+
709
+ ```bash
710
+ export OPENAI_BASE_URL="http://localhost:20128"
711
+ export OPENAI_API_KEY="your-omniroute-api-key"
712
+
713
+ codex "your prompt"
714
+ ```
715
+
716
+ ### OpenClaw
717
+
718
+ **Вариант 1 — Dashboard (рекомендуется):**
719
+
720
+ ```
721
+ Dashboard → CLI Tools → OpenClaw → Выбрать модель → Применить
722
+ ```
723
+
724
+ **Вариант 2 — Вручную:** Редактируйте `~/.openclaw/openclaw.json`:
725
+
726
+ ```json
727
+ {
728
+ "models": {
729
+ "providers": {
730
+ "omniroute": {
731
+ "baseUrl": "http://127.0.0.1:20128/v1",
732
+ "apiKey": "sk_omniroute",
733
+ "api": "openai-completions"
734
+ }
735
+ }
736
+ }
737
+ }
738
+ ```
739
+
740
+ > **Примечание:** OpenClaw работает только с локальным OmniRoute. Используйте `127.0.0.1` вместо `localhost` для избежания проблем с IPv6.
741
+
742
+ ### Cline / Continue / RooCode
743
+
744
+ ```
745
+ Настройки → Конфигурация API:
746
+ Провайдер: OpenAI Compatible
747
+ Base URL: http://localhost:20128/v1
748
+ API Key: [из dashboard OmniRoute]
749
+ Model: if/kimi-k2-thinking
750
+ ```
751
+
752
+ </details>
753
+
754
+ ---
755
+
756
+ ## 📊 Доступные модели
757
+
758
+ <details>
759
+ <summary><b>Посмотреть все доступные модели</b></summary>
760
+
761
+ **Claude Code (`cc/`)** - Pro/Max:
762
+
763
+ - `cc/claude-opus-4-6`
764
+ - `cc/claude-sonnet-4-5-20250929`
765
+ - `cc/claude-haiku-4-5-20251001`
766
+
767
+ **Codex (`cx/`)** - Plus/Pro:
768
+
769
+ - `cx/gpt-5.2-codex`
770
+ - `cx/gpt-5.1-codex-max`
771
+
772
+ **Gemini CLI (`gc/`)** - БЕСПЛАТНО:
773
+
774
+ - `gc/gemini-3-flash-preview`
775
+ - `gc/gemini-2.5-pro`
776
+
777
+ **GitHub Copilot (`gh/`)**:
778
+
779
+ - `gh/gpt-5`
780
+ - `gh/claude-4.5-sonnet`
781
+
782
+ **NVIDIA NIM (`nvidia/`)** - БЕСПЛАТНЫЕ кредиты:
783
+
784
+ - `nvidia/llama-3.3-70b-instruct`
785
+ - `nvidia/mistral-7b-instruct`
786
+ - 50+ моделей на [build.nvidia.com](https://build.nvidia.com)
787
+
788
+ **GLM (`glm/`)** - $0.6/1M:
789
+
790
+ - `glm/glm-4.7`
791
+
792
+ **MiniMax (`minimax/`)** - $0.2/1M:
793
+
794
+ - `minimax/MiniMax-M2.1`
795
+
796
+ **iFlow (`if/`)** - БЕСПЛАТНО:
797
+
798
+ - `if/kimi-k2-thinking`
799
+ - `if/qwen3-coder-plus`
800
+ - `if/deepseek-r1`
801
+ - `if/glm-4.7`
802
+ - `if/minimax-m2`
803
+
804
+ **Qwen (`qw/`)** - БЕСПЛАТНО:
805
+
806
+ - `qw/qwen3-coder-plus`
807
+ - `qw/qwen3-coder-flash`
808
+
809
+ **Kiro (`kr/`)** - БЕСПЛАТНО:
810
+
811
+ - `kr/claude-sonnet-4.5`
812
+ - `kr/claude-haiku-4.5`
813
+
814
+ **OpenRouter (`or/`)** - 100+ моделей:
815
+
816
+ - `or/anthropic/claude-4-sonnet`
817
+ - `or/google/gemini-2.5-pro`
818
+ - Любая модель с [openrouter.ai/models](https://openrouter.ai/models)
819
+
820
+ </details>
821
+
822
+ ---
823
+
824
+ ## 🧪 Оценки (Evals)
825
+
826
+ OmniRoute включает встроенный фреймворк оценки для тестирования качества ответов LLM по golden set. Доступ через **Analytics → Evals** в dashboard.
827
+
828
+ ### Встроенный Golden Set
829
+
830
+ Предзагруженный «OmniRoute Golden Set» содержит 10 тестов:
831
+
832
+ - Приветствия, математика, география, генерация кода
833
+ - Соответствие формату JSON, перевод, markdown
834
+ - Отказ от небезопасного контента, подсчёт, булева логика
835
+
836
+ ### Стратегии оценки
837
+
838
+ | Стратегия | Описание | Пример |
839
+ | ---------- | ----------------------------------------------------- | -------------------------------- |
840
+ | `exact` | Вывод должен совпадать точно | `"4"` |
841
+ | `contains` | Вывод должен содержать подстроку (без учёта регистра) | `"Paris"` |
842
+ | `regex` | Вывод должен соответствовать regex-паттерну | `"1.*2.*3"` |
843
+ | `custom` | Пользовательская JS-функция возвращает true/false | `(output) => output.length > 10` |
844
+
845
+ ---
846
+
847
+ ## 🐛 Устранение неполадок
848
+
849
+ <details>
850
+ <summary><b>Нажмите для раскрытия руководства</b></summary>
851
+
852
+ **«Language model did not provide messages»**
853
+
854
+ - Квота провайдера исчерпана → Проверьте трекер квот в dashboard
855
+ - Решение: Используйте комбо с fallback или переключитесь на более дешёвый уровень
856
+
857
+ **Rate limiting**
858
+
859
+ - Квота подписки исчерпана → Fallback на GLM/MiniMax
860
+ - Добавьте комбо: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
861
+
862
+ **OAuth-токен истёк**
863
+
864
+ - Обновляется автоматически OmniRoute
865
+ - Если проблема сохраняется: Dashboard → Провайдер → Переподключить
866
+
867
+ **Высокие расходы**
868
+
869
+ - Проверьте статистику в Dashboard → Расходы
870
+ - Переключите основную модель на GLM/MiniMax
871
+ - Используйте бесплатный уровень (Gemini CLI, iFlow) для некритичных задач
872
+
873
+ **Dashboard открывается на неправильном порту**
874
+
875
+ - Установите `PORT=20128` и `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
876
+
877
+ **Ошибки cloud sync**
878
+
879
+ - Проверьте что `BASE_URL` указывает на ваш запущенный экземпляр
880
+ - Проверьте что `CLOUD_URL` указывает на правильный облачный endpoint
881
+ - Держите значения `NEXT_PUBLIC_*` синхронизированными с серверными значениями
882
+
883
+ **Первый вход не работает**
884
+
885
+ - Проверьте `INITIAL_PASSWORD` в `.env`
886
+ - Если не задан, пароль по умолчанию `123456`
887
+
888
+ **Нет логов запросов**
889
+
890
+ - Установите `ENABLE_REQUEST_LOGS=true` в `.env`
891
+
892
+ **Тест подключения показывает «Invalid» для OpenAI-совместимых провайдеров**
893
+
894
+ - Многие провайдеры не предоставляют endpoint `/models`
895
+ - OmniRoute v0.9.0+ включает fallback-валидацию через chat completions
896
+ - Убедитесь что base URL содержит суффикс `/v1`
897
+
898
+ </details>
899
+
900
+ ---
901
+
902
+ ## 🛠️ Технологический стек
903
+
904
+ - **Runtime**: Node.js 20+
905
+ - **Язык**: TypeScript 5.9 — **100% TypeScript** в `src/` и `open-sse/` (v0.9.0)
906
+ - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
907
+ - **База данных**: LowDB (JSON) + SQLite (состояние домена + proxy-логи)
908
+ - **Стриминг**: Server-Sent Events (SSE)
909
+ - **Аутентификация**: OAuth 2.0 (PKCE) + JWT + API Keys
910
+ - **Тестирование**: Node.js test runner (368+ юнит-тестов)
911
+ - **CI/CD**: GitHub Actions (авто-публикация npm + Docker Hub при релизе)
912
+ - **Сайт**: [omniroute.online](https://omniroute.online)
913
+ - **Пакет**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
914
+ - **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
915
+ - **Устойчивость**: Circuit breaker, экспоненциальный backoff, anti-thundering herd, TLS-спуфинг
916
+
917
+ ---
918
+
919
+ ## 📖 Документация
920
+
921
+ | Документ | Описание |
922
+ | ----------------------------------------------- | ------------------------------------------------ |
923
+ | [Руководство пользователя](docs/USER_GUIDE.md) | Провайдеры, комбо, интеграция CLI, деплой |
924
+ | [Справка API](docs/API_REFERENCE.md) | Все endpoints с примерами |
925
+ | [Устранение неполадок](docs/TROUBLESHOOTING.md) | Частые проблемы и решения |
926
+ | [Архитектура](docs/ARCHITECTURE.md) | Архитектура системы и внутреннее устройство |
927
+ | [Как внести вклад](CONTRIBUTING.md) | Настройка разработки и руководящие принципы |
928
+ | [Спецификация OpenAPI](docs/openapi.yaml) | Спецификация OpenAPI 3.0 |
929
+ | [Политика безопасности](SECURITY.md) | Сообщение об уязвимостях и практики безопасности |
930
+
931
+ ---
932
+
933
+ ## 📧 Поддержка
934
+
935
+ - **Сайт**: [omniroute.online](https://omniroute.online)
936
+ - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
937
+ - **Issues**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
938
+ - **Оригинальный проект**: [9router от decolua](https://github.com/decolua/9router)
939
+
940
+ ---
941
+
942
+ ## 👥 Участники
943
+
944
+ [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
945
+
946
+ ### Как внести вклад
947
+
948
+ 1. Сделайте fork репозитория
949
+ 2. Создайте ветку функции (`git checkout -b feature/amazing-feature`)
950
+ 3. Зафиксируйте изменения (`git commit -m 'Add amazing feature'`)
951
+ 4. Отправьте в ветку (`git push origin feature/amazing-feature`)
952
+ 5. Откройте Pull Request
953
+
954
+ См. [CONTRIBUTING.md](CONTRIBUTING.md) для подробных рекомендаций.
955
+
956
+ ### Выпуск новой версии
957
+
958
+ ```bash
959
+ # Создайте релиз — публикация в npm происходит автоматически
960
+ gh release create v0.9.0 --title "v0.9.0" --generate-notes
961
+ ```
962
+
963
+ ---
964
+
965
+ ## 📊 История звёзд
966
+
967
+ <a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
968
+ <picture>
969
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
970
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
971
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
972
+ </picture>
973
+ </a>
974
+
975
+ ---
976
+
977
+ ## 🙏 Благодарности
978
+
979
+ Особая благодарность **[9router](https://github.com/decolua/9router)** от **[decolua](https://github.com/decolua)** — оригинальному проекту, вдохновившему этот форк. OmniRoute строится на этом невероятном фундаменте с дополнительными функциями, мультимодальными API и полной переписью на TypeScript.
980
+
981
+ Особая благодарность **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — оригинальной реализации на Go, вдохновившей этот порт на JavaScript.
982
+
983
+ ---
984
+
985
+ ## 📄 Лицензия
986
+
987
+ Лицензия MIT — см. [LICENSE](LICENSE) для подробностей.
988
+
989
+ ---
990
+
991
+ <div align="center">
992
+ <sub>Сделано с ❤️ для разработчиков, которые программируют 24/7</sub>
993
+ <br/>
994
+ <sub><a href="https://omniroute.online">omniroute.online</a></sub>
995
+ </div>