omniroute 0.8.5 → 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 (519) 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 +725 -101
  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 +25 -24
  11. package/app/.next/build-manifest.json +2 -2
  12. package/app/.next/prerender-manifest.json +27 -3
  13. package/app/.next/routes-manifest.json +6 -0
  14. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +5 -5
  18. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -0
  33. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -0
  34. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -0
  35. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/_global-error.html +2 -2
  67. package/app/.next/server/app/_global-error.rsc +1 -1
  68. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  69. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  70. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  71. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  72. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  73. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  74. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/_not-found.html +1 -1
  76. package/app/.next/server/app/_not-found.rsc +3 -3
  77. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  78. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  79. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  80. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  81. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  82. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  83. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  88. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  90. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  92. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  94. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  100. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  102. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  105. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  109. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  110. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  112. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  115. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
  117. package/app/.next/server/app/api/cli-tools/status/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
  130. package/app/.next/server/app/api/evals/[suiteId]/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/evals/route.js +1 -1
  133. package/app/.next/server/app/api/evals/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/fallback/chains/route.js +2 -2
  136. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/models/route.js +1 -1
  144. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/monitoring/health/route.js +2 -2
  146. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/policies/route.js +2 -2
  155. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/providers/route.js +1 -1
  169. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/resilience/route.js +1 -1
  176. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/usage/budget/route.js +2 -2
  203. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  209. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  219. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  223. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  225. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  229. package/app/.next/server/app/callback.html +1 -1
  230. package/app/.next/server/app/callback.rsc +3 -3
  231. package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
  232. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  233. package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
  234. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  235. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  236. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  237. package/app/.next/server/app/dashboard/analytics.html +1 -1
  238. package/app/.next/server/app/dashboard/analytics.rsc +5 -5
  239. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
  240. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  241. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
  244. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  245. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  246. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  247. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  248. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  249. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  250. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  253. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  254. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  255. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  256. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  257. package/app/.next/server/app/dashboard/combos.html +1 -1
  258. package/app/.next/server/app/dashboard/combos.rsc +5 -5
  259. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  260. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  261. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  262. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  263. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  264. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  265. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  266. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  267. package/app/.next/server/app/dashboard/costs.html +1 -1
  268. package/app/.next/server/app/dashboard/costs.rsc +5 -5
  269. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
  270. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
  271. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  272. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  273. package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +5 -5
  274. package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
  275. package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +3 -3
  276. package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +2 -2
  277. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  278. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  279. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  280. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  281. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  282. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  283. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  284. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  285. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  286. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  287. package/app/.next/server/app/dashboard/health.html +1 -1
  288. package/app/.next/server/app/dashboard/health.rsc +5 -5
  289. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
  290. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
  291. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  292. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  293. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +5 -5
  294. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
  295. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +3 -3
  296. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +2 -2
  297. package/app/.next/server/app/dashboard/limits.html +2 -0
  298. package/app/.next/server/app/dashboard/limits.meta +17 -0
  299. package/app/.next/server/app/dashboard/limits.rsc +24 -0
  300. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +9 -0
  301. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +4 -0
  302. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
  303. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  304. package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +24 -0
  305. package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +6 -0
  306. package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +9 -0
  307. package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +5 -0
  308. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  309. package/app/.next/server/app/dashboard/onboarding.rsc +4 -4
  310. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  311. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  312. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  313. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  314. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +4 -4
  315. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  316. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +3 -3
  317. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
  318. package/app/.next/server/app/dashboard/profile.html +1 -1
  319. package/app/.next/server/app/dashboard/profile.rsc +4 -4
  320. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  321. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  322. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  323. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  325. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  327. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  328. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  329. package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
  330. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  331. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  332. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  333. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  334. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  335. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  336. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  337. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  338. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  339. package/app/.next/server/app/dashboard/providers.html +1 -1
  340. package/app/.next/server/app/dashboard/providers.rsc +5 -5
  341. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  342. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  343. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  344. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  345. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  346. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  347. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  348. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  349. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  350. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  351. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  352. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  353. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  354. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  355. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  356. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  357. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  358. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  359. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  360. package/app/.next/server/app/dashboard/settings.html +1 -1
  361. package/app/.next/server/app/dashboard/settings.rsc +5 -5
  362. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  363. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  364. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  365. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  366. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +5 -5
  367. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  368. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +3 -3
  369. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
  370. package/app/.next/server/app/dashboard/translator.html +2 -2
  371. package/app/.next/server/app/dashboard/translator.rsc +5 -5
  372. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  373. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  374. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  375. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  376. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  377. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  378. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  379. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  380. package/app/.next/server/app/dashboard/usage.html +1 -1
  381. package/app/.next/server/app/dashboard/usage.rsc +5 -5
  382. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  383. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  384. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  385. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  386. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  387. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  388. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  389. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  390. package/app/.next/server/app/docs/page.js +1 -1
  391. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  392. package/app/.next/server/app/docs.html +1 -1
  393. package/app/.next/server/app/docs.rsc +3 -3
  394. package/app/.next/server/app/docs.segments/_full.segment.rsc +3 -3
  395. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  396. package/app/.next/server/app/docs.segments/_index.segment.rsc +3 -3
  397. package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  398. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  399. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  400. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  401. package/app/.next/server/app/forbidden.html +1 -1
  402. package/app/.next/server/app/forbidden.rsc +3 -3
  403. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +3 -3
  404. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
  405. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +3 -3
  406. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +2 -2
  407. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
  408. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
  409. package/app/.next/server/app/forgot-password/page.js +1 -1
  410. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  411. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  412. package/app/.next/server/app/forgot-password.html +1 -1
  413. package/app/.next/server/app/forgot-password.rsc +4 -4
  414. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +4 -4
  415. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  416. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +3 -3
  417. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  418. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
  419. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
  420. package/app/.next/server/app/index.html +1 -1
  421. package/app/.next/server/app/index.rsc +3 -3
  422. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  423. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  424. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  425. package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
  426. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  427. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  428. package/app/.next/server/app/landing.html +1 -1
  429. package/app/.next/server/app/landing.rsc +3 -3
  430. package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
  431. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  432. package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
  433. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  434. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  435. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  436. package/app/.next/server/app/login/page.js +1 -1
  437. package/app/.next/server/app/login/page.js.nft.json +1 -1
  438. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  439. package/app/.next/server/app/login.html +1 -1
  440. package/app/.next/server/app/login.rsc +4 -4
  441. package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
  442. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  443. package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
  444. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  445. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  446. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  447. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  448. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  449. package/app/.next/server/app/privacy.html +1 -1
  450. package/app/.next/server/app/privacy.rsc +3 -3
  451. package/app/.next/server/app/privacy.segments/_full.segment.rsc +3 -3
  452. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  453. package/app/.next/server/app/privacy.segments/_index.segment.rsc +3 -3
  454. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
  455. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  456. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  457. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  458. package/app/.next/server/app/terms.html +1 -1
  459. package/app/.next/server/app/terms.rsc +3 -3
  460. package/app/.next/server/app/terms.segments/_full.segment.rsc +3 -3
  461. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  462. package/app/.next/server/app/terms.segments/_index.segment.rsc +3 -3
  463. package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
  464. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  465. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  466. package/app/.next/server/app-paths-manifest.json +25 -24
  467. package/app/.next/server/chunks/1020.js +1 -1
  468. package/app/.next/server/chunks/239.js +2 -2
  469. package/app/.next/server/chunks/2620.js +2 -2
  470. package/app/.next/server/chunks/4277.js +1 -0
  471. package/app/.next/server/chunks/438.js +1 -0
  472. package/app/.next/server/chunks/5583.js +1 -1
  473. package/app/.next/server/chunks/7669.js +2 -2
  474. package/app/.next/server/chunks/8369.js +1 -1
  475. package/app/.next/server/chunks/9824.js +1 -1
  476. package/app/.next/server/pages/404.html +1 -1
  477. package/app/.next/server/pages/500.html +2 -2
  478. package/app/.next/server/server-reference-manifest.js +1 -1
  479. package/app/.next/server/server-reference-manifest.json +1 -1
  480. package/app/.next/static/8ACUE6hz9uxBNe_Q_ZH6y/_buildManifest.js +1 -0
  481. package/app/.next/static/chunks/1149-fefe7f95f0e9842f.js +1 -0
  482. package/app/.next/static/chunks/{5846-2708fad522c4092b.js → 5846-0541241939d8c7e3.js} +1 -1
  483. package/app/.next/static/chunks/{993-6be0cd05a02eb09b.js → 993-b74bac8c882e8d1a.js} +2 -2
  484. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-74ac2092c2a6b3dc.js +1 -0
  485. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-918d5f38d5cdbbc2.js +15 -0
  486. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-2cf4a7b419667452.js → page-421e732016c49ee4.js} +1 -1
  487. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-6913ad5d715dcc3f.js → page-9495b294cfe54d73.js} +1 -1
  488. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-a446f6fd8dc64f29.js → page-623e54048b5d4f69.js} +1 -1
  489. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-58ea3e55f475ea7b.js +1 -0
  490. package/app/.next/static/chunks/app/(dashboard)/dashboard/{usage/page-8e19076a0d9227ca.js → limits/page-3b7083be8adedc57.js} +1 -1
  491. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-3c840eaf6d7cd77d.js +1 -0
  492. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-26ec85a0bf8624f2.js +1 -0
  493. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-521cffebf9da74b1.js → page-200bed170f9ee2b0.js} +1 -1
  494. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-627628d3588d56d0.js → page-98c6b97d0c195a2c.js} +1 -1
  495. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-038687bc5d2c3bb5.js +1 -0
  496. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-c3cbea97c4f3a3b3.js → page-efca884c20a509a4.js} +1 -1
  497. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-51a813eac9d71eed.js +1 -0
  498. package/app/.next/static/chunks/app/(dashboard)/{layout-c498dd9c790d0115.js → layout-cf710bbfb7c3ba11.js} +1 -1
  499. package/app/.next/static/chunks/app/forgot-password/{page-3682163d66078655.js → page-373672767bb0aae4.js} +1 -1
  500. package/app/.next/static/chunks/app/login/{page-319adaa570f7cef2.js → page-8a9aa887783f2370.js} +1 -1
  501. package/app/.next/static/css/1c99dc691f001331.css +1 -0
  502. package/app/package.json +1 -1
  503. package/app/public/providers/ironclaw.png +0 -0
  504. package/app/public/providers/nanobot.png +0 -0
  505. package/app/public/providers/opencode.svg +18 -0
  506. package/app/public/providers/picoclaw.jpg +0 -0
  507. package/app/public/providers/zeroclaw.png +0 -0
  508. package/package.json +1 -1
  509. package/app/.next/server/chunks/2951.js +0 -1
  510. package/app/.next/static/4zh9cgkOJsay7eUxfk-tb/_buildManifest.js +0 -1
  511. package/app/.next/static/chunks/7013-718042994c9127fa.js +0 -1
  512. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a7a7e3485f278504.js +0 -1
  513. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1c6897612e762e03.js +0 -15
  514. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-d3f501b59334c3d5.js +0 -1
  515. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-7312e2dd8b5feff0.js +0 -1
  516. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-a9c594cf56c3465e.js +0 -1
  517. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-ae5e43ea2a576094.js +0 -1
  518. package/app/.next/static/css/c08bd521c418658c.css +0 -1
  519. /package/app/.next/static/{4zh9cgkOJsay7eUxfk-tb → 8ACUE6hz9uxBNe_Q_ZH6y}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -1,26 +1,110 @@
1
1
  <div align="center">
2
2
  <img src="./images/omniroute.png" alt="OmniRoute Dashboard" width="800"/>
3
3
 
4
- # OmniRoute - Free AI Router
5
-
6
- **Never stop coding. Auto-route to FREE & cheap AI models with smart fallback.**
7
-
8
- **36+ Providers Embeddings Image Generation Audio Reranking • Full TypeScript**
9
-
10
- **Free AI Provider for OpenClaw.**
11
-
12
- <p align="center">
13
- <img src="./public/providers/openclaw.png" alt="OpenClaw" width="80"/>
14
- </p>
15
-
16
- > *This project is inspired by and originally forked from [9router](https://github.com/decolua/9router) by [decolua](https://github.com/decolua). Thank you for the incredible foundation!*
17
-
18
- [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute)
19
- [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)
20
- [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
21
- [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)
22
-
23
- [🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation)
4
+ # 🚀 OmniRoute The Free AI Gateway
5
+
6
+ ### Never stop coding. Smart routing to **FREE & low-cost AI models** with automatic fallback.
7
+
8
+ _Your universal API proxy one endpoint, 36+ providers, zero downtime._
9
+
10
+ **Chat Completions Embeddings • Image Generation • Audio • Reranking • 100% TypeScript**
11
+
12
+ ---
13
+
14
+ ### 🤖 Free AI Provider for your favorite coding agents
15
+
16
+ _Connect any AI-powered IDE or CLI tool through OmniRoute free API gateway for unlimited coding._
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>📡 All agents connect via <code>http://localhost:20128/v1</code> or <code>http://cloud.omniroute.online/v1</code> — one config, unlimited models and quota</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
+ [🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance)
105
+
106
+ 🌐 **Available in:** [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
+
24
108
  </div>
25
109
 
26
110
  ---
@@ -29,17 +113,17 @@
29
113
 
30
114
  **Stop wasting money and hitting limits:**
31
115
 
32
- - Subscription quota expires unused every month
33
- - Rate limits stop you mid-coding
34
- - Expensive APIs ($20-50/month per provider)
35
- - Manual switching between providers
116
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Subscription quota expires unused every month
117
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Rate limits stop you mid-coding
118
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Expensive APIs ($20-50/month per provider)
119
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manual switching between providers
36
120
 
37
121
  **OmniRoute solves this:**
38
122
 
39
123
  - ✅ **Maximize subscriptions** - Track quota, use every bit before reset
40
- - ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime
124
+ - ✅ **Auto fallback** - Subscription → API Key → Cheap → Free, zero downtime
41
125
  - ✅ **Multi-account** - Round-robin between accounts per provider
42
- - ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, any CLI tool
126
+ - ✅ **Universal** - Works with Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, any CLI tool
43
127
 
44
128
  ---
45
129
 
@@ -61,7 +145,7 @@
61
145
 
62
146
  ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
63
147
  │ ↓ quota exhausted
64
- ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, Together, etc.
148
+ ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
65
149
  │ ↓ budget limit
66
150
  ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
67
151
  │ ↓ budget limit
@@ -158,7 +242,93 @@ docker compose --profile cli up -d
158
242
  | Image | Tag | Size | Description |
159
243
  | ------------------------ | -------- | ------ | --------------------- |
160
244
  | `diegosouzapw/omniroute` | `latest` | ~250MB | Latest stable release |
161
- | `diegosouzapw/omniroute` | `0.8.5` | ~250MB | Current version |
245
+ | `diegosouzapw/omniroute` | `0.9.0` | ~250MB | Current version |
246
+
247
+ ---
248
+
249
+ ## 💰 Pricing at a Glance
250
+
251
+ | Tier | Provider | Cost | Quota Reset | Best For |
252
+ | ------------------- | ----------------- | ----------------------- | ---------------- | -------------------- |
253
+ | **💳 SUBSCRIPTION** | Claude Code (Pro) | $20/mo | 5h + weekly | Already subscribed |
254
+ | | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users |
255
+ | | Gemini CLI | **FREE** | 180K/mo + 1K/day | Everyone! |
256
+ | | GitHub Copilot | $10-19/mo | Monthly | GitHub users |
257
+ | **🔑 API KEY** | NVIDIA NIM | **FREE** (1000 credits) | One-time | Free tier testing |
258
+ | | DeepSeek | Pay-per-use | None | Best price/quality |
259
+ | | Groq | Free tier + paid | Rate limited | Ultra-fast inference |
260
+ | | xAI (Grok) | Pay-per-use | None | Grok models |
261
+ | | Mistral | Free tier + paid | Rate limited | European AI |
262
+ | | OpenRouter | Pay-per-use | None | 100+ models |
263
+ | **💰 CHEAP** | GLM-4.7 | $0.6/1M | Daily 10AM | Budget backup |
264
+ | | MiniMax M2.1 | $0.2/1M | 5-hour rolling | Cheapest option |
265
+ | | Kimi K2 | $9/mo flat | 10M tokens/mo | Predictable cost |
266
+ | **🆓 FREE** | iFlow | $0 | Unlimited | 8 models free |
267
+ | | Qwen | $0 | Unlimited | 3 models free |
268
+ | | Kiro | $0 | Unlimited | Claude free |
269
+
270
+ **💡 Pro Tip:** Start with Gemini CLI (180K free/month) + iFlow (unlimited free) combo = $0 cost!
271
+
272
+ ---
273
+
274
+ ## 🎯 Use Cases
275
+
276
+ ### Case 1: "I have Claude Pro subscription"
277
+
278
+ **Problem:** Quota expires unused, rate limits during heavy coding
279
+
280
+ ```
281
+ Combo: "maximize-claude"
282
+ 1. cc/claude-opus-4-6 (use subscription fully)
283
+ 2. glm/glm-4.7 (cheap backup when quota out)
284
+ 3. if/kimi-k2-thinking (free emergency fallback)
285
+
286
+ Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
287
+ vs. $20 + hitting limits = frustration
288
+ ```
289
+
290
+ ### Case 2: "I want zero cost"
291
+
292
+ **Problem:** Can't afford subscriptions, need reliable AI coding
293
+
294
+ ```
295
+ Combo: "free-forever"
296
+ 1. gc/gemini-3-flash (180K free/month)
297
+ 2. if/kimi-k2-thinking (unlimited free)
298
+ 3. qw/qwen3-coder-plus (unlimited free)
299
+
300
+ Monthly cost: $0
301
+ Quality: Production-ready models
302
+ ```
303
+
304
+ ### Case 3: "I need 24/7 coding, no interruptions"
305
+
306
+ **Problem:** Deadlines, can't afford downtime
307
+
308
+ ```
309
+ Combo: "always-on"
310
+ 1. cc/claude-opus-4-6 (best quality)
311
+ 2. cx/gpt-5.2-codex (second subscription)
312
+ 3. glm/glm-4.7 (cheap, resets daily)
313
+ 4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
314
+ 5. if/kimi-k2-thinking (free unlimited)
315
+
316
+ Result: 5 layers of fallback = zero downtime
317
+ ```
318
+
319
+ ### Case 4: "I want FREE AI in OpenClaw"
320
+
321
+ **Problem:** Need AI assistant in messaging apps, completely free
322
+
323
+ ```
324
+ Combo: "openclaw-free"
325
+ 1. if/glm-4.7 (unlimited free)
326
+ 2. if/minimax-m2.1 (unlimited free)
327
+ 3. if/kimi-k2-thinking (unlimited free)
328
+
329
+ Monthly cost: $0
330
+ Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
331
+ ```
162
332
 
163
333
  ---
164
334
 
@@ -166,19 +336,19 @@ docker compose --profile cli up -d
166
336
 
167
337
  ### 🧠 Core Routing & Intelligence
168
338
 
169
- | Feature | What It Does |
170
- | ------------------------------- | --------------------------------------------------------------------------------- |
171
- | 🎯 **Smart 4-Tier Fallback** | Auto-route: Subscription → API Key → Cheap → Free |
172
- | 📊 **Real-Time Quota Tracking** | Live token count + reset countdown per provider |
173
- | 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro seamless |
174
- | 👥 **Multi-Account Support** | Multiple accounts per provider with P2C selection |
175
- | 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically with retry |
176
- | 🎨 **Custom Combos** | 6 strategies: priority, weighted, round-robin, random, least-used, cost-optimized |
177
- | 🧩 **Custom Models** | Add any model ID to any provider |
178
- | 🌐 **Wildcard Router** | Route `provider/*` patterns to any provider dynamically |
179
- | 🧠 **Thinking Budget** | Passthrough, auto, custom, and adaptive modes for reasoning models |
180
- | 💬 **System Prompt Injection** | Global system prompt applied across all requests |
181
- | 📄 **Responses API** | Full OpenAI Responses API (`/v1/responses`) support for Codex |
339
+ | Feature | What It Does |
340
+ | ------------------------------- | ------------------------------------------------------------------------------ |
341
+ | 🎯 **Smart 4-Tier Fallback** | Auto-route: Subscription → API Key → Cheap → Free |
342
+ | 📊 **Real-Time Quota Tracking** | Live token count + reset countdown per provider |
343
+ | 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro seamless |
344
+ | 👥 **Multi-Account Support** | Multiple accounts per provider with intelligent selection |
345
+ | 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically with retry |
346
+ | 🎨 **Custom Combos** | 6 strategies: fill-first, round-robin, p2c, random, least-used, cost-optimized |
347
+ | 🧩 **Custom Models** | Add any model ID to any provider |
348
+ | 🌐 **Wildcard Router** | Route `provider/*` patterns to any provider dynamically |
349
+ | 🧠 **Thinking Budget** | Passthrough, auto, custom, and adaptive modes for reasoning models |
350
+ | 💬 **System Prompt Injection** | Global system prompt applied across all requests |
351
+ | 📄 **Responses API** | Full OpenAI Responses API (`/v1/responses`) support for Codex |
182
352
 
183
353
  ### 🎵 Multi-Modal APIs
184
354
 
@@ -193,34 +363,461 @@ docker compose --profile cli up -d
193
363
 
194
364
  ### 🛡️ Resilience & Security
195
365
 
196
- | Feature | What It Does |
197
- | ------------------------------- | ------------------------------------------------------------ |
198
- | 🔌 **Circuit Breaker** | Auto-open/close per-provider with configurable thresholds |
199
- | 🛡️ **Anti-Thundering Herd** | Mutex + semaphore rate-limit for API key providers |
200
- | 🧠 **Semantic Cache** | Two-tier cache (signature + semantic) reduces cost & latency |
201
- | ⚡ **Request Idempotency** | 5s dedup window for duplicate requests |
202
- | 🔒 **TLS Fingerprint Spoofing** | Bypass TLS-based bot detection via wreq-js |
203
- | 🌐 **IP Filtering** | Allowlist/blocklist for API access control |
204
- | 📋 **Compliance Audit Log** | Tamper-proof request logs with opt-out per API key |
366
+ | Feature | What It Does |
367
+ | ------------------------------- | ------------------------------------------------------------- |
368
+ | 🔌 **Circuit Breaker** | Auto-open/close per-provider with configurable thresholds |
369
+ | 🛡️ **Anti-Thundering Herd** | Mutex + semaphore rate-limit for API key providers |
370
+ | 🧠 **Semantic Cache** | Two-tier cache (signature + semantic) reduces cost & latency |
371
+ | ⚡ **Request Idempotency** | 5s dedup window for duplicate requests |
372
+ | 🔒 **TLS Fingerprint Spoofing** | Bypass TLS-based bot detection via wreq-js |
373
+ | 🌐 **IP Filtering** | Allowlist/blocklist for API access control |
374
+ | 📊 **Editable Rate Limits** | Configurable RPM, min gap, and max concurrent at system level |
205
375
 
206
376
  ### 📊 Observability & Analytics
207
377
 
208
- | Feature | What It Does |
209
- | ------------------------ | ------------------------------------------------------ |
210
- | 📝 **Request Logging** | Debug mode with full request/response logs |
211
- | 💾 **SQLite Proxy Logs** | Persistent proxy logs survive server restarts |
212
- | 📊 **Usage Analytics** | Track tokens, cost, trends over time |
213
- | 📈 **Progress Tracking** | Opt-in SSE progress events for streaming |
214
- | 🧪 **LLM Evaluations** | Golden set testing with 4 match strategies |
215
- | 🔍 **Request Telemetry** | p50/p95/p99 latency aggregation + X-Request-Id tracing |
378
+ | Feature | What It Does |
379
+ | ---------------------------- | --------------------------------------------------------------- |
380
+ | 📝 **Request Logging** | Debug mode with full request/response logs |
381
+ | 💾 **SQLite Proxy Logs** | Persistent proxy logs survive server restarts |
382
+ | 📊 **Analytics Dashboard** | Recharts-powered: stat cards, model usage chart, provider table |
383
+ | 📈 **Progress Tracking** | Opt-in SSE progress events for streaming |
384
+ | 🧪 **LLM Evaluations** | Golden set testing with 4 match strategies |
385
+ | 🔍 **Request Telemetry** | p50/p95/p99 latency aggregation + X-Request-Id tracing |
386
+ | 📋 **Request Logs + Quotas** | Dedicated pages for log browsing and limits/quotas tracking |
387
+ | 🏥 **Health Dashboard** | System uptime, circuit breaker states, lockouts, cache stats |
388
+ | 💰 **Cost Tracking** | Budget management + per-model pricing configuration |
216
389
 
217
390
  ### ☁️ Deployment & Sync
218
391
 
219
- | Feature | What It Does |
220
- | ------------------------- | ------------------------------------------------- |
221
- | 💾 **Cloud Sync** | Sync config across devices via Cloudflare Workers |
222
- | 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers |
223
- | 🔑 **API Key Management** | Generate, rotate, and scope API keys per provider |
392
+ | Feature | What It Does |
393
+ | -------------------------- | --------------------------------------------------------------------- |
394
+ | 💾 **Cloud Sync** | Sync config across devices via Cloudflare Workers |
395
+ | 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers |
396
+ | 🔑 **API Key Management** | Generate, rotate, and scope API keys per provider |
397
+ | 🧙 **Onboarding Wizard** | 4-step guided setup for first-time users |
398
+ | 🔧 **CLI Tools Dashboard** | One-click configure Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
399
+ | 🔄 **DB Backups** | Automatic backup and restore for all settings |
400
+
401
+ <details>
402
+ <summary><b>📖 Feature Details</b></summary>
403
+
404
+ ### 🎯 Smart 4-Tier Fallback
405
+
406
+ Create combos with automatic fallback:
407
+
408
+ ```
409
+ Combo: "my-coding-stack"
410
+ 1. cc/claude-opus-4-6 (your subscription)
411
+ 2. nvidia/llama-3.3-70b (free NVIDIA API)
412
+ 3. glm/glm-4.7 (cheap backup, $0.6/1M)
413
+ 4. if/kimi-k2-thinking (free fallback)
414
+
415
+ → Auto switches when quota runs out or errors occur
416
+ ```
417
+
418
+ ### 📊 Real-Time Quota Tracking
419
+
420
+ - Token consumption per provider
421
+ - Reset countdown (5-hour, daily, weekly)
422
+ - Cost estimation for paid tiers
423
+ - Monthly spending reports
424
+
425
+ ### 🔄 Format Translation
426
+
427
+ Seamless translation between formats:
428
+
429
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
430
+ - Your CLI tool sends OpenAI format → OmniRoute translates → Provider receives native format
431
+ - Works with any tool that supports custom OpenAI endpoints
432
+
433
+ ### 👥 Multi-Account Support
434
+
435
+ - Add multiple accounts per provider
436
+ - Auto round-robin or priority-based routing
437
+ - Fallback to next account when one hits quota
438
+
439
+ ### 🔄 Auto Token Refresh
440
+
441
+ - OAuth tokens automatically refresh before expiration
442
+ - No manual re-authentication needed
443
+ - Seamless experience across all providers
444
+
445
+ ### 🎨 Custom Combos
446
+
447
+ - Create unlimited model combinations
448
+ - 6 strategies: fill-first, round-robin, power-of-two-choices, random, least-used, cost-optimized
449
+ - Share combos across devices with Cloud Sync
450
+
451
+ ### 🏥 Health Dashboard
452
+
453
+ - System status (uptime, version, memory usage)
454
+ - Circuit breaker states per provider (Closed/Open/Half-Open)
455
+ - Rate limit status and active lockouts
456
+ - Signature cache statistics
457
+ - Latency telemetry (p50/p95/p99) + prompt cache
458
+ - Reset health status with one click
459
+
460
+ ### 🔧 Translator Playground
461
+
462
+ - Debug, test, and visualize API format translations
463
+ - Send requests and see how OmniRoute translates between provider formats
464
+ - Invaluable for troubleshooting integration issues
465
+
466
+ ### 💾 Cloud Sync
467
+
468
+ - Sync providers, combos, and settings across devices
469
+ - Automatic background sync
470
+ - Secure encrypted storage
471
+
472
+ </details>
473
+
474
+ ---
475
+
476
+ ## 📖 Setup Guide
477
+
478
+ <details>
479
+ <summary><b>💳 Subscription Providers</b></summary>
480
+
481
+ ### Claude Code (Pro/Max)
482
+
483
+ ```bash
484
+ Dashboard → Providers → Connect Claude Code
485
+ → OAuth login → Auto token refresh
486
+ → 5-hour + weekly quota tracking
487
+
488
+ Models:
489
+ cc/claude-opus-4-6
490
+ cc/claude-sonnet-4-5-20250929
491
+ cc/claude-haiku-4-5-20251001
492
+ ```
493
+
494
+ **Pro Tip:** Use Opus for complex tasks, Sonnet for speed. OmniRoute tracks quota per model!
495
+
496
+ ### OpenAI Codex (Plus/Pro)
497
+
498
+ ```bash
499
+ Dashboard → Providers → Connect Codex
500
+ → OAuth login (port 1455)
501
+ → 5-hour + weekly reset
502
+
503
+ Models:
504
+ cx/gpt-5.2-codex
505
+ cx/gpt-5.1-codex-max
506
+ ```
507
+
508
+ ### Gemini CLI (FREE 180K/month!)
509
+
510
+ ```bash
511
+ Dashboard → Providers → Connect Gemini CLI
512
+ → Google OAuth
513
+ → 180K completions/month + 1K/day
514
+
515
+ Models:
516
+ gc/gemini-3-flash-preview
517
+ gc/gemini-2.5-pro
518
+ ```
519
+
520
+ **Best Value:** Huge free tier! Use this before paid tiers.
521
+
522
+ ### GitHub Copilot
523
+
524
+ ```bash
525
+ Dashboard → Providers → Connect GitHub
526
+ → OAuth via GitHub
527
+ → Monthly reset (1st of month)
528
+
529
+ Models:
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 Providers</b></summary>
539
+
540
+ ### NVIDIA NIM (FREE 1000 credits!)
541
+
542
+ 1. Sign up: [build.nvidia.com](https://build.nvidia.com)
543
+ 2. Get free API key (1000 inference credits included)
544
+ 3. Dashboard → Add Provider → NVIDIA NIM:
545
+ - API Key: `nvapi-your-key`
546
+
547
+ **Models:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, and 50+ more
548
+
549
+ **Pro Tip:** OpenAI-compatible API — works seamlessly with OmniRoute's format translation!
550
+
551
+ ### DeepSeek
552
+
553
+ 1. Sign up: [platform.deepseek.com](https://platform.deepseek.com)
554
+ 2. Get API key
555
+ 3. Dashboard → Add Provider → DeepSeek
556
+
557
+ **Models:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
558
+
559
+ ### Groq (Free Tier Available!)
560
+
561
+ 1. Sign up: [console.groq.com](https://console.groq.com)
562
+ 2. Get API key (free tier included)
563
+ 3. Dashboard → Add Provider → Groq
564
+
565
+ **Models:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
566
+
567
+ **Pro Tip:** Ultra-fast inference — best for real-time coding!
568
+
569
+ ### OpenRouter (100+ Models)
570
+
571
+ 1. Sign up: [openrouter.ai](https://openrouter.ai)
572
+ 2. Get API key
573
+ 3. Dashboard → Add Provider → OpenRouter
574
+
575
+ **Models:** Access 100+ models from all major providers through a single API key.
576
+
577
+ </details>
578
+
579
+ <details>
580
+ <summary><b>💰 Cheap Providers (Backup)</b></summary>
581
+
582
+ ### GLM-4.7 (Daily reset, $0.6/1M)
583
+
584
+ 1. Sign up: [Zhipu AI](https://open.bigmodel.cn/)
585
+ 2. Get API key from Coding Plan
586
+ 3. Dashboard → Add API Key:
587
+ - Provider: `glm`
588
+ - API Key: `your-key`
589
+
590
+ **Use:** `glm/glm-4.7`
591
+
592
+ **Pro Tip:** Coding Plan offers 3× quota at 1/7 cost! Reset daily 10:00 AM.
593
+
594
+ ### MiniMax M2.1 (5h reset, $0.20/1M)
595
+
596
+ 1. Sign up: [MiniMax](https://www.minimax.io/)
597
+ 2. Get API key
598
+ 3. Dashboard → Add API Key
599
+
600
+ **Use:** `minimax/MiniMax-M2.1`
601
+
602
+ **Pro Tip:** Cheapest option for long context (1M tokens)!
603
+
604
+ ### Kimi K2 ($9/month flat)
605
+
606
+ 1. Subscribe: [Moonshot AI](https://platform.moonshot.ai/)
607
+ 2. Get API key
608
+ 3. Dashboard → Add API Key
609
+
610
+ **Use:** `kimi/kimi-latest`
611
+
612
+ **Pro Tip:** Fixed $9/month for 10M tokens = $0.90/1M effective cost!
613
+
614
+ </details>
615
+
616
+ <details>
617
+ <summary><b>🆓 FREE Providers (Emergency Backup)</b></summary>
618
+
619
+ ### iFlow (8 FREE models)
620
+
621
+ ```bash
622
+ Dashboard → Connect iFlow
623
+ → iFlow OAuth login
624
+ → Unlimited usage
625
+
626
+ Models:
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 FREE models)
635
+
636
+ ```bash
637
+ Dashboard → Connect Qwen
638
+ → Device code authorization
639
+ → Unlimited usage
640
+
641
+ Models:
642
+ qw/qwen3-coder-plus
643
+ qw/qwen3-coder-flash
644
+ ```
645
+
646
+ ### Kiro (Claude FREE)
647
+
648
+ ```bash
649
+ Dashboard → Connect Kiro
650
+ → AWS Builder ID or Google/GitHub
651
+ → Unlimited usage
652
+
653
+ Models:
654
+ kr/claude-sonnet-4.5
655
+ kr/claude-haiku-4.5
656
+ ```
657
+
658
+ </details>
659
+
660
+ <details>
661
+ <summary><b>🎨 Create Combos</b></summary>
662
+
663
+ ### Example 1: Maximize Subscription → Cheap Backup
664
+
665
+ ```
666
+ Dashboard → Combos → Create New
667
+
668
+ Name: premium-coding
669
+ Models:
670
+ 1. cc/claude-opus-4-6 (Subscription primary)
671
+ 2. glm/glm-4.7 (Cheap backup, $0.6/1M)
672
+ 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
673
+
674
+ Use in CLI: premium-coding
675
+ ```
676
+
677
+ ### Example 2: Free-Only (Zero Cost)
678
+
679
+ ```
680
+ Name: free-combo
681
+ Models:
682
+ 1. gc/gemini-3-flash-preview (180K free/month)
683
+ 2. if/kimi-k2-thinking (unlimited)
684
+ 3. qw/qwen3-coder-plus (unlimited)
685
+
686
+ Cost: $0 forever!
687
+ ```
688
+
689
+ </details>
690
+
691
+ <details>
692
+ <summary><b>🔧 CLI Integration</b></summary>
693
+
694
+ ### Cursor IDE
695
+
696
+ ```
697
+ Settings → Models → Advanced:
698
+ OpenAI API Base URL: http://localhost:20128/v1
699
+ OpenAI API Key: [from OmniRoute dashboard]
700
+ Model: cc/claude-opus-4-6
701
+ ```
702
+
703
+ ### Claude Code
704
+
705
+ Use the **CLI Tools** page in the dashboard for one-click configuration, or edit `~/.claude/settings.json` manually.
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
+ **Option 1 — Dashboard (recommended):**
719
+
720
+ ```
721
+ Dashboard → CLI Tools → OpenClaw → Select Model → Apply
722
+ ```
723
+
724
+ **Option 2 — Manual:** Edit `~/.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
+ > **Note:** OpenClaw only works with local OmniRoute. Use `127.0.0.1` instead of `localhost` to avoid IPv6 resolution issues.
741
+
742
+ ### Cline / Continue / RooCode
743
+
744
+ ```
745
+ Settings → API Configuration:
746
+ Provider: OpenAI Compatible
747
+ Base URL: http://localhost:20128/v1
748
+ API Key: [from OmniRoute dashboard]
749
+ Model: if/kimi-k2-thinking
750
+ ```
751
+
752
+ </details>
753
+
754
+ ---
755
+
756
+ ## 📊 Available Models
757
+
758
+ <details>
759
+ <summary><b>View all available models</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/`)** - FREE:
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/`)** - FREE credits:
783
+
784
+ - `nvidia/llama-3.3-70b-instruct`
785
+ - `nvidia/mistral-7b-instruct`
786
+ - 50+ more models on [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/`)** - FREE:
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/`)** - FREE:
805
+
806
+ - `qw/qwen3-coder-plus`
807
+ - `qw/qwen3-coder-flash`
808
+
809
+ **Kiro (`kr/`)** - FREE:
810
+
811
+ - `kr/claude-sonnet-4.5`
812
+ - `kr/claude-haiku-4.5`
813
+
814
+ **OpenRouter (`or/`)** - 100+ models:
815
+
816
+ - `or/anthropic/claude-4-sonnet`
817
+ - `or/google/gemini-2.5-pro`
818
+ - Any model from [openrouter.ai/models](https://openrouter.ai/models)
819
+
820
+ </details>
224
821
 
225
822
  ---
226
823
 
@@ -236,13 +833,6 @@ The pre-loaded "OmniRoute Golden Set" contains 10 test cases covering:
236
833
  - JSON format compliance, translation, markdown
237
834
  - Safety refusal (harmful content), counting, boolean logic
238
835
 
239
- ### How It Works
240
-
241
- 1. Click **"Run Eval"** on a suite in the dashboard
242
- 2. Each test case is sent to your proxy endpoint (`/v1/chat/completions`)
243
- 3. Real LLM responses are collected and evaluated against expected criteria
244
- 4. Results show pass/fail status, latency per case, and overall pass rate
245
-
246
836
  ### Evaluation Strategies
247
837
 
248
838
  | Strategy | Description | Example |
@@ -252,47 +842,67 @@ The pre-loaded "OmniRoute Golden Set" contains 10 test cases covering:
252
842
  | `regex` | Output must match regex pattern | `"1.*2.*3"` |
253
843
  | `custom` | Custom JS function returns true/false | `(output) => output.length > 10` |
254
844
 
255
- ### API Usage
845
+ ---
256
846
 
257
- ```bash
258
- # List all eval suites
259
- curl http://localhost:20128/api/evals
847
+ ## 🐛 Troubleshooting
260
848
 
261
- # Run a suite with pre-collected outputs
262
- curl -X POST http://localhost:20128/api/evals \
263
- -H 'Content-Type: application/json' \
264
- -d '{"suiteId": "golden-set", "outputs": {"gs-01": "Hello there!", "gs-02": "4"}}'
849
+ <details>
850
+ <summary><b>Click to expand troubleshooting guide</b></summary>
265
851
 
266
- # Get suite details
267
- curl http://localhost:20128/api/evals/golden-set
268
- ```
852
+ **"Language model did not provide messages"**
269
853
 
270
- ### Custom Suites
854
+ - Provider quota exhausted → Check dashboard quota tracker
855
+ - Solution: Use combo fallback or switch to cheaper tier
271
856
 
272
- Register custom suites programmatically via `registerSuite()` in `src/lib/evals/evalRunner.ts`:
857
+ **Rate limiting**
273
858
 
274
- ```typescript
275
- registerSuite({
276
- id: "my-suite",
277
- name: "Custom Eval Suite",
278
- cases: [
279
- {
280
- id: "c-01",
281
- name: "API response",
282
- model: "gpt-4o",
283
- input: { messages: [{ role: "user", content: "Say OK" }] },
284
- expected: { strategy: "contains", value: "OK" },
285
- },
286
- ],
287
- });
288
- ```
859
+ - Subscription quota out → Fallback to GLM/MiniMax
860
+ - Add combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
861
+
862
+ **OAuth token expired**
863
+
864
+ - Auto-refreshed by OmniRoute
865
+ - If issues persist: Dashboard → Provider → Reconnect
866
+
867
+ **High costs**
868
+
869
+ - Check usage stats in Dashboard → Costs
870
+ - Switch primary model to GLM/MiniMax
871
+ - Use free tier (Gemini CLI, iFlow) for non-critical tasks
872
+
873
+ **Dashboard opens on wrong port**
874
+
875
+ - Set `PORT=20128` and `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
876
+
877
+ **Cloud sync errors**
878
+
879
+ - Verify `BASE_URL` points to your running instance
880
+ - Verify `CLOUD_URL` points to your expected cloud endpoint
881
+ - Keep `NEXT_PUBLIC_*` values aligned with server-side values
882
+
883
+ **First login not working**
884
+
885
+ - Check `INITIAL_PASSWORD` in `.env`
886
+ - If unset, fallback password is `123456`
887
+
888
+ **No request logs**
889
+
890
+ - Set `ENABLE_REQUEST_LOGS=true` in `.env`
891
+
892
+ **Connection test shows "Invalid" for OpenAI-compatible providers**
893
+
894
+ - Many providers don't expose a `/models` endpoint
895
+ - OmniRoute v0.9.0+ includes fallback validation via chat completions
896
+ - Ensure base URL includes `/v1` suffix
897
+
898
+ </details>
289
899
 
290
900
  ---
291
901
 
292
902
  ## 🛠️ Tech Stack
293
903
 
294
904
  - **Runtime**: Node.js 20+
295
- - **Language**: TypeScript 5.9 — **100% TypeScript** across `src/` and `open-sse/` (v0.8.5)
905
+ - **Language**: TypeScript 5.9 — **100% TypeScript** across `src/` and `open-sse/` (v0.9.0)
296
906
  - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
297
907
  - **Database**: LowDB (JSON) + SQLite (domain state + proxy logs)
298
908
  - **Streaming**: Server-Sent Events (SSE)
@@ -347,14 +957,28 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
347
957
 
348
958
  ```bash
349
959
  # Create a release — npm publish happens automatically
350
- gh release create v0.8.5 --title "v0.8.5" --generate-notes
960
+ gh release create v0.9.0 --title "v0.9.0" --generate-notes
351
961
  ```
352
962
 
353
963
  ---
354
964
 
965
+ ## 📊 Star History
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
+
355
977
  ## 🙏 Acknowledgments
356
978
 
357
- Special thanks to **CLIProxyAPI** - the original Go implementation that inspired this JavaScript port.
979
+ Special thanks to **[9router](https://github.com/decolua/9router)** by **[decolua](https://github.com/decolua)** — the original project that inspired this fork. OmniRoute builds upon that incredible foundation with additional features, multi-modal APIs, and a full TypeScript rewrite.
980
+
981
+ Special thanks to **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — the original Go implementation that inspired this JavaScript port.
358
982
 
359
983
  ---
360
984