omniroute 0.8.8 → 1.0.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 (693) 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 +756 -81
  6. package/README.pt-BR.md +1048 -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 +33 -30
  11. package/app/.next/build-manifest.json +2 -2
  12. package/app/.next/prerender-manifest.json +3 -3
  13. package/app/.next/routes-manifest.json +18 -0
  14. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  31. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/_global-error.html +2 -2
  35. package/app/.next/server/app/_global-error.rsc +1 -1
  36. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  38. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  39. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  40. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  42. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/_not-found.html +1 -1
  44. package/app/.next/server/app/_not-found.rsc +3 -3
  45. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  46. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  48. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  51. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  56. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  58. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  73. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  75. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  77. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
  79. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/db-backups/export/route.js +1 -0
  90. package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -0
  91. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -0
  92. package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -0
  93. package/app/.next/server/app/api/db-backups/exportAll/route.js.nft.json +1 -0
  94. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -0
  95. package/app/.next/server/app/api/db-backups/import/route.js +1 -0
  96. package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -0
  97. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -0
  98. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/models/route.js +1 -1
  109. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  111. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/providers/route.js +1 -1
  133. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/callback.html +1 -1
  192. package/app/.next/server/app/callback.rsc +3 -3
  193. package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
  194. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  195. package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
  196. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  197. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  198. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  199. package/app/.next/server/app/dashboard/analytics.html +1 -1
  200. package/app/.next/server/app/dashboard/analytics.rsc +5 -5
  201. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
  202. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  203. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  204. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  205. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
  206. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  207. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  208. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  209. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  210. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  211. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  212. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  213. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  214. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  215. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  216. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  217. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  218. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  219. package/app/.next/server/app/dashboard/combos.html +1 -1
  220. package/app/.next/server/app/dashboard/combos.rsc +5 -5
  221. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  222. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  223. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  224. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  225. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  226. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  227. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  228. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  229. package/app/.next/server/app/dashboard/costs.html +1 -1
  230. package/app/.next/server/app/dashboard/costs.rsc +5 -5
  231. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
  232. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
  233. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  234. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  235. package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +5 -5
  236. package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
  237. package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +3 -3
  238. package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +2 -2
  239. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  240. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  241. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  242. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  243. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  244. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  245. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  246. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  247. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  248. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  249. package/app/.next/server/app/dashboard/health.html +1 -1
  250. package/app/.next/server/app/dashboard/health.rsc +5 -5
  251. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
  252. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
  253. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  254. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  255. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +5 -5
  256. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
  257. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +3 -3
  258. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +2 -2
  259. package/app/.next/server/app/dashboard/limits.html +2 -2
  260. package/app/.next/server/app/dashboard/limits.rsc +5 -5
  261. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +2 -2
  262. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +1 -1
  263. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  264. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  265. package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +5 -5
  266. package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +1 -1
  267. package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +3 -3
  268. package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +2 -2
  269. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  270. package/app/.next/server/app/dashboard/onboarding.rsc +4 -4
  271. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  272. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  273. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  274. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  275. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +4 -4
  276. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  277. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +3 -3
  278. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
  279. package/app/.next/server/app/dashboard/profile.html +1 -1
  280. package/app/.next/server/app/dashboard/profile.rsc +4 -4
  281. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  282. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  283. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  284. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  285. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  286. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  287. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  288. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  289. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  290. package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
  291. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  292. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  293. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  294. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  295. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  296. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  297. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  298. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  299. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  300. package/app/.next/server/app/dashboard/providers.html +1 -1
  301. package/app/.next/server/app/dashboard/providers.rsc +5 -5
  302. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  303. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  304. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  305. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  306. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  307. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  308. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  309. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  310. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  311. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  312. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  313. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  314. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  315. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  316. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  317. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  318. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  319. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  320. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  321. package/app/.next/server/app/dashboard/settings.html +1 -1
  322. package/app/.next/server/app/dashboard/settings.rsc +5 -5
  323. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  325. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +5 -5
  328. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  329. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +3 -3
  330. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
  331. package/app/.next/server/app/dashboard/translator.html +2 -2
  332. package/app/.next/server/app/dashboard/translator.rsc +5 -5
  333. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  334. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  335. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  336. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  337. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  338. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  339. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  340. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  341. package/app/.next/server/app/dashboard/usage.html +1 -1
  342. package/app/.next/server/app/dashboard/usage.rsc +5 -5
  343. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  344. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  345. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  346. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  347. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  348. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  349. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  350. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  351. package/app/.next/server/app/docs/page.js +1 -1
  352. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  353. package/app/.next/server/app/docs.html +1 -1
  354. package/app/.next/server/app/docs.rsc +3 -3
  355. package/app/.next/server/app/docs.segments/_full.segment.rsc +3 -3
  356. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  357. package/app/.next/server/app/docs.segments/_index.segment.rsc +3 -3
  358. package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  359. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  360. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  361. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  362. package/app/.next/server/app/forbidden.html +1 -1
  363. package/app/.next/server/app/forbidden.rsc +3 -3
  364. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +3 -3
  365. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
  366. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +3 -3
  367. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +2 -2
  368. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
  369. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
  370. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  371. package/app/.next/server/app/forgot-password.html +1 -1
  372. package/app/.next/server/app/forgot-password.rsc +4 -4
  373. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +4 -4
  374. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  375. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +3 -3
  376. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +2 -2
  377. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
  378. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
  379. package/app/.next/server/app/index.html +1 -1
  380. package/app/.next/server/app/index.rsc +3 -3
  381. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  382. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  383. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  384. package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
  385. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  386. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  387. package/app/.next/server/app/landing.html +1 -1
  388. package/app/.next/server/app/landing.rsc +3 -3
  389. package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
  390. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  391. package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
  392. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  393. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  394. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  395. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  396. package/app/.next/server/app/login.html +1 -1
  397. package/app/.next/server/app/login.rsc +4 -4
  398. package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
  399. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  400. package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
  401. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  402. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  403. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  404. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  406. package/app/.next/server/app/privacy.html +1 -1
  407. package/app/.next/server/app/privacy.rsc +3 -3
  408. package/app/.next/server/app/privacy.segments/_full.segment.rsc +3 -3
  409. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  410. package/app/.next/server/app/privacy.segments/_index.segment.rsc +3 -3
  411. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
  412. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  413. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  414. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  415. package/app/.next/server/app/terms.html +1 -1
  416. package/app/.next/server/app/terms.rsc +3 -3
  417. package/app/.next/server/app/terms.segments/_full.segment.rsc +3 -3
  418. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  419. package/app/.next/server/app/terms.segments/_index.segment.rsc +3 -3
  420. package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
  421. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  422. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  423. package/app/.next/server/app-paths-manifest.json +33 -30
  424. package/app/.next/server/chunks/5583.js +1 -1
  425. package/app/.next/server/chunks/8369.js +1 -1
  426. package/app/.next/server/chunks/9824.js +2 -2
  427. package/app/.next/server/pages/404.html +1 -1
  428. package/app/.next/server/pages/500.html +2 -2
  429. package/app/.next/server/server-reference-manifest.js +1 -1
  430. package/app/.next/server/server-reference-manifest.json +1 -1
  431. package/app/.next/static/chunks/{5846-b70d10291438712b.js → 5846-e5043393303d82cc.js} +1 -1
  432. package/app/.next/static/chunks/{993-d43d3ceef35b3300.js → 993-547810f7937fb3fe.js} +2 -2
  433. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-58b169603fdf1d6f.js +1 -0
  434. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-cdc5fc5dfecc1047.js +1 -0
  435. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-efca884c20a509a4.js → page-775e1506821cac94.js} +2 -2
  436. package/app/.next/static/chunks/app/_global-error/page-58b169603fdf1d6f.js +1 -0
  437. package/app/.next/static/chunks/app/_not-found/page-58b169603fdf1d6f.js +1 -0
  438. package/app/.next/static/chunks/app/api/auth/login/route-58b169603fdf1d6f.js +1 -0
  439. package/app/.next/static/chunks/app/api/auth/logout/route-58b169603fdf1d6f.js +1 -0
  440. package/app/.next/static/chunks/app/api/cache/route-58b169603fdf1d6f.js +1 -0
  441. package/app/.next/static/chunks/app/api/cache/stats/route-58b169603fdf1d6f.js +1 -0
  442. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-58b169603fdf1d6f.js +1 -0
  443. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-58b169603fdf1d6f.js +1 -0
  444. package/app/.next/static/chunks/app/api/cli-tools/backups/route-58b169603fdf1d6f.js +1 -0
  445. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-58b169603fdf1d6f.js +1 -0
  446. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-58b169603fdf1d6f.js +1 -0
  447. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-58b169603fdf1d6f.js +1 -0
  448. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-58b169603fdf1d6f.js +1 -0
  449. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-58b169603fdf1d6f.js +1 -0
  450. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-58b169603fdf1d6f.js +1 -0
  451. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-58b169603fdf1d6f.js +1 -0
  452. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-58b169603fdf1d6f.js +1 -0
  453. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-58b169603fdf1d6f.js +1 -0
  454. package/app/.next/static/chunks/app/api/cli-tools/status/route-58b169603fdf1d6f.js +1 -0
  455. package/app/.next/static/chunks/app/api/cloud/auth/route-58b169603fdf1d6f.js +1 -0
  456. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-58b169603fdf1d6f.js +1 -0
  457. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-58b169603fdf1d6f.js +1 -0
  458. package/app/.next/static/chunks/app/api/cloud/models/alias/route-58b169603fdf1d6f.js +1 -0
  459. package/app/.next/static/chunks/app/api/combos/[id]/route-58b169603fdf1d6f.js +1 -0
  460. package/app/.next/static/chunks/app/api/combos/metrics/route-58b169603fdf1d6f.js +1 -0
  461. package/app/.next/static/chunks/app/api/combos/route-58b169603fdf1d6f.js +1 -0
  462. package/app/.next/static/chunks/app/api/combos/test/route-58b169603fdf1d6f.js +1 -0
  463. package/app/.next/static/chunks/app/api/compliance/audit-log/route-58b169603fdf1d6f.js +1 -0
  464. package/app/.next/static/chunks/app/api/db-backups/export/route-58b169603fdf1d6f.js +1 -0
  465. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-58b169603fdf1d6f.js +1 -0
  466. package/app/.next/static/chunks/app/api/db-backups/import/route-58b169603fdf1d6f.js +1 -0
  467. package/app/.next/static/chunks/app/api/db-backups/route-58b169603fdf1d6f.js +1 -0
  468. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-58b169603fdf1d6f.js +1 -0
  469. package/app/.next/static/chunks/app/api/evals/route-58b169603fdf1d6f.js +1 -0
  470. package/app/.next/static/chunks/app/api/fallback/chains/route-58b169603fdf1d6f.js +1 -0
  471. package/app/.next/static/chunks/app/api/init/route-58b169603fdf1d6f.js +1 -0
  472. package/app/.next/static/chunks/app/api/keys/[id]/route-58b169603fdf1d6f.js +1 -0
  473. package/app/.next/static/chunks/app/api/keys/route-58b169603fdf1d6f.js +1 -0
  474. package/app/.next/static/chunks/app/api/models/alias/route-58b169603fdf1d6f.js +1 -0
  475. package/app/.next/static/chunks/app/api/models/availability/route-58b169603fdf1d6f.js +1 -0
  476. package/app/.next/static/chunks/app/api/models/catalog/route-58b169603fdf1d6f.js +1 -0
  477. package/app/.next/static/chunks/app/api/models/route-58b169603fdf1d6f.js +1 -0
  478. package/app/.next/static/chunks/app/api/monitoring/health/route-58b169603fdf1d6f.js +1 -0
  479. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-58b169603fdf1d6f.js +1 -0
  480. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-58b169603fdf1d6f.js +1 -0
  481. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-58b169603fdf1d6f.js +1 -0
  482. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-58b169603fdf1d6f.js +1 -0
  483. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-58b169603fdf1d6f.js +1 -0
  484. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-58b169603fdf1d6f.js +1 -0
  485. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-58b169603fdf1d6f.js +1 -0
  486. package/app/.next/static/chunks/app/api/policies/route-58b169603fdf1d6f.js +1 -0
  487. package/app/.next/static/chunks/app/api/pricing/defaults/route-58b169603fdf1d6f.js +1 -0
  488. package/app/.next/static/chunks/app/api/pricing/models/route-58b169603fdf1d6f.js +1 -0
  489. package/app/.next/static/chunks/app/api/pricing/route-58b169603fdf1d6f.js +1 -0
  490. package/app/.next/static/chunks/app/api/provider-metrics/route-58b169603fdf1d6f.js +1 -0
  491. package/app/.next/static/chunks/app/api/provider-models/route-58b169603fdf1d6f.js +1 -0
  492. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-58b169603fdf1d6f.js +1 -0
  493. package/app/.next/static/chunks/app/api/provider-nodes/route-58b169603fdf1d6f.js +1 -0
  494. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-58b169603fdf1d6f.js +1 -0
  495. package/app/.next/static/chunks/app/api/providers/[id]/models/route-58b169603fdf1d6f.js +1 -0
  496. package/app/.next/static/chunks/app/api/providers/[id]/route-58b169603fdf1d6f.js +1 -0
  497. package/app/.next/static/chunks/app/api/providers/[id]/test/route-58b169603fdf1d6f.js +1 -0
  498. package/app/.next/static/chunks/app/api/providers/client/route-58b169603fdf1d6f.js +1 -0
  499. package/app/.next/static/chunks/app/api/providers/route-58b169603fdf1d6f.js +1 -0
  500. package/app/.next/static/chunks/app/api/providers/test-batch/route-58b169603fdf1d6f.js +1 -0
  501. package/app/.next/static/chunks/app/api/providers/validate/route-58b169603fdf1d6f.js +1 -0
  502. package/app/.next/static/chunks/app/api/rate-limit/route-58b169603fdf1d6f.js +1 -0
  503. package/app/.next/static/chunks/app/api/rate-limits/route-58b169603fdf1d6f.js +1 -0
  504. package/app/.next/static/chunks/app/api/resilience/reset/route-58b169603fdf1d6f.js +1 -0
  505. package/app/.next/static/chunks/app/api/resilience/route-58b169603fdf1d6f.js +1 -0
  506. package/app/.next/static/chunks/app/api/restart/route-58b169603fdf1d6f.js +1 -0
  507. package/app/.next/static/chunks/app/api/sessions/route-58b169603fdf1d6f.js +1 -0
  508. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-58b169603fdf1d6f.js +1 -0
  509. package/app/.next/static/chunks/app/api/settings/ip-filter/route-58b169603fdf1d6f.js +1 -0
  510. package/app/.next/static/chunks/app/api/settings/proxy/route-58b169603fdf1d6f.js +1 -0
  511. package/app/.next/static/chunks/app/api/settings/proxy/test/route-58b169603fdf1d6f.js +1 -0
  512. package/app/.next/static/chunks/app/api/settings/require-login/route-58b169603fdf1d6f.js +1 -0
  513. package/app/.next/static/chunks/app/api/settings/route-58b169603fdf1d6f.js +1 -0
  514. package/app/.next/static/chunks/app/api/settings/system-prompt/route-58b169603fdf1d6f.js +1 -0
  515. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-58b169603fdf1d6f.js +1 -0
  516. package/app/.next/static/chunks/app/api/shutdown/route-58b169603fdf1d6f.js +1 -0
  517. package/app/.next/static/chunks/app/api/storage/health/route-58b169603fdf1d6f.js +1 -0
  518. package/app/.next/static/chunks/app/api/sync/cloud/route-58b169603fdf1d6f.js +1 -0
  519. package/app/.next/static/chunks/app/api/sync/initialize/route-58b169603fdf1d6f.js +1 -0
  520. package/app/.next/static/chunks/app/api/tags/route-58b169603fdf1d6f.js +1 -0
  521. package/app/.next/static/chunks/app/api/telemetry/summary/route-58b169603fdf1d6f.js +1 -0
  522. package/app/.next/static/chunks/app/api/token-health/route-58b169603fdf1d6f.js +1 -0
  523. package/app/.next/static/chunks/app/api/translator/detect/route-58b169603fdf1d6f.js +1 -0
  524. package/app/.next/static/chunks/app/api/translator/history/route-58b169603fdf1d6f.js +1 -0
  525. package/app/.next/static/chunks/app/api/translator/load/route-58b169603fdf1d6f.js +1 -0
  526. package/app/.next/static/chunks/app/api/translator/save/route-58b169603fdf1d6f.js +1 -0
  527. package/app/.next/static/chunks/app/api/translator/send/route-58b169603fdf1d6f.js +1 -0
  528. package/app/.next/static/chunks/app/api/translator/translate/route-58b169603fdf1d6f.js +1 -0
  529. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-58b169603fdf1d6f.js +1 -0
  530. package/app/.next/static/chunks/app/api/usage/analytics/route-58b169603fdf1d6f.js +1 -0
  531. package/app/.next/static/chunks/app/api/usage/budget/route-58b169603fdf1d6f.js +1 -0
  532. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-58b169603fdf1d6f.js +1 -0
  533. package/app/.next/static/chunks/app/api/usage/call-logs/route-58b169603fdf1d6f.js +1 -0
  534. package/app/.next/static/chunks/app/api/usage/history/route-58b169603fdf1d6f.js +1 -0
  535. package/app/.next/static/chunks/app/api/usage/logs/route-58b169603fdf1d6f.js +1 -0
  536. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-58b169603fdf1d6f.js +1 -0
  537. package/app/.next/static/chunks/app/api/usage/request-logs/route-58b169603fdf1d6f.js +1 -0
  538. package/app/.next/static/chunks/app/api/v1/api/chat/route-58b169603fdf1d6f.js +1 -0
  539. package/app/.next/static/chunks/app/api/v1/audio/speech/route-58b169603fdf1d6f.js +1 -0
  540. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-58b169603fdf1d6f.js +1 -0
  541. package/app/.next/static/chunks/app/api/v1/chat/completions/route-58b169603fdf1d6f.js +1 -0
  542. package/app/.next/static/chunks/app/api/v1/embeddings/route-58b169603fdf1d6f.js +1 -0
  543. package/app/.next/static/chunks/app/api/v1/images/generations/route-58b169603fdf1d6f.js +1 -0
  544. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-58b169603fdf1d6f.js +1 -0
  545. package/app/.next/static/chunks/app/api/v1/messages/route-58b169603fdf1d6f.js +1 -0
  546. package/app/.next/static/chunks/app/api/v1/models/route-58b169603fdf1d6f.js +1 -0
  547. package/app/.next/static/chunks/app/api/v1/moderations/route-58b169603fdf1d6f.js +1 -0
  548. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-58b169603fdf1d6f.js +1 -0
  549. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-58b169603fdf1d6f.js +1 -0
  550. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-58b169603fdf1d6f.js +1 -0
  551. package/app/.next/static/chunks/app/api/v1/rerank/route-58b169603fdf1d6f.js +1 -0
  552. package/app/.next/static/chunks/app/api/v1/responses/route-58b169603fdf1d6f.js +1 -0
  553. package/app/.next/static/chunks/app/api/v1/route-58b169603fdf1d6f.js +1 -0
  554. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-58b169603fdf1d6f.js +1 -0
  555. package/app/.next/static/chunks/app/api/v1beta/models/route-58b169603fdf1d6f.js +1 -0
  556. package/app/.next/static/chunks/app/page-58b169603fdf1d6f.js +1 -0
  557. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-58b169603fdf1d6f.js +1 -0
  558. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-58b169603fdf1d6f.js +1 -0
  559. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-58b169603fdf1d6f.js +1 -0
  560. package/app/.next/static/css/{1c99dc691f001331.css → 99e359b9e40091af.css} +1 -1
  561. package/app/.next/static/r6jUR903zdObDI9pgxvsU/_buildManifest.js +1 -0
  562. package/app/package.json +2 -2
  563. package/app/public/providers/ironclaw.png +0 -0
  564. package/app/public/providers/nanobot.png +0 -0
  565. package/app/public/providers/opencode.svg +18 -0
  566. package/app/public/providers/picoclaw.jpg +0 -0
  567. package/app/public/providers/zeroclaw.png +0 -0
  568. package/package.json +2 -2
  569. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-9dc1eebb90668f5a.js +0 -1
  570. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-3ac21c16bcfde2e4.js +0 -1
  571. package/app/.next/static/chunks/app/_global-error/page-9dc1eebb90668f5a.js +0 -1
  572. package/app/.next/static/chunks/app/_not-found/page-9dc1eebb90668f5a.js +0 -1
  573. package/app/.next/static/chunks/app/api/auth/login/route-9dc1eebb90668f5a.js +0 -1
  574. package/app/.next/static/chunks/app/api/auth/logout/route-9dc1eebb90668f5a.js +0 -1
  575. package/app/.next/static/chunks/app/api/cache/route-9dc1eebb90668f5a.js +0 -1
  576. package/app/.next/static/chunks/app/api/cache/stats/route-9dc1eebb90668f5a.js +0 -1
  577. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-9dc1eebb90668f5a.js +0 -1
  578. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-9dc1eebb90668f5a.js +0 -1
  579. package/app/.next/static/chunks/app/api/cli-tools/backups/route-9dc1eebb90668f5a.js +0 -1
  580. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-9dc1eebb90668f5a.js +0 -1
  581. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-9dc1eebb90668f5a.js +0 -1
  582. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-9dc1eebb90668f5a.js +0 -1
  583. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-9dc1eebb90668f5a.js +0 -1
  584. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-9dc1eebb90668f5a.js +0 -1
  585. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-9dc1eebb90668f5a.js +0 -1
  586. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-9dc1eebb90668f5a.js +0 -1
  587. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-9dc1eebb90668f5a.js +0 -1
  588. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-9dc1eebb90668f5a.js +0 -1
  589. package/app/.next/static/chunks/app/api/cli-tools/status/route-9dc1eebb90668f5a.js +0 -1
  590. package/app/.next/static/chunks/app/api/cloud/auth/route-9dc1eebb90668f5a.js +0 -1
  591. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-9dc1eebb90668f5a.js +0 -1
  592. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-9dc1eebb90668f5a.js +0 -1
  593. package/app/.next/static/chunks/app/api/cloud/models/alias/route-9dc1eebb90668f5a.js +0 -1
  594. package/app/.next/static/chunks/app/api/combos/[id]/route-9dc1eebb90668f5a.js +0 -1
  595. package/app/.next/static/chunks/app/api/combos/metrics/route-9dc1eebb90668f5a.js +0 -1
  596. package/app/.next/static/chunks/app/api/combos/route-9dc1eebb90668f5a.js +0 -1
  597. package/app/.next/static/chunks/app/api/combos/test/route-9dc1eebb90668f5a.js +0 -1
  598. package/app/.next/static/chunks/app/api/compliance/audit-log/route-9dc1eebb90668f5a.js +0 -1
  599. package/app/.next/static/chunks/app/api/db-backups/route-9dc1eebb90668f5a.js +0 -1
  600. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-9dc1eebb90668f5a.js +0 -1
  601. package/app/.next/static/chunks/app/api/evals/route-9dc1eebb90668f5a.js +0 -1
  602. package/app/.next/static/chunks/app/api/fallback/chains/route-9dc1eebb90668f5a.js +0 -1
  603. package/app/.next/static/chunks/app/api/init/route-9dc1eebb90668f5a.js +0 -1
  604. package/app/.next/static/chunks/app/api/keys/[id]/route-9dc1eebb90668f5a.js +0 -1
  605. package/app/.next/static/chunks/app/api/keys/route-9dc1eebb90668f5a.js +0 -1
  606. package/app/.next/static/chunks/app/api/models/alias/route-9dc1eebb90668f5a.js +0 -1
  607. package/app/.next/static/chunks/app/api/models/availability/route-9dc1eebb90668f5a.js +0 -1
  608. package/app/.next/static/chunks/app/api/models/catalog/route-9dc1eebb90668f5a.js +0 -1
  609. package/app/.next/static/chunks/app/api/models/route-9dc1eebb90668f5a.js +0 -1
  610. package/app/.next/static/chunks/app/api/monitoring/health/route-9dc1eebb90668f5a.js +0 -1
  611. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-9dc1eebb90668f5a.js +0 -1
  612. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-9dc1eebb90668f5a.js +0 -1
  613. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-9dc1eebb90668f5a.js +0 -1
  614. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-9dc1eebb90668f5a.js +0 -1
  615. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-9dc1eebb90668f5a.js +0 -1
  616. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-9dc1eebb90668f5a.js +0 -1
  617. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-9dc1eebb90668f5a.js +0 -1
  618. package/app/.next/static/chunks/app/api/policies/route-9dc1eebb90668f5a.js +0 -1
  619. package/app/.next/static/chunks/app/api/pricing/defaults/route-9dc1eebb90668f5a.js +0 -1
  620. package/app/.next/static/chunks/app/api/pricing/models/route-9dc1eebb90668f5a.js +0 -1
  621. package/app/.next/static/chunks/app/api/pricing/route-9dc1eebb90668f5a.js +0 -1
  622. package/app/.next/static/chunks/app/api/provider-metrics/route-9dc1eebb90668f5a.js +0 -1
  623. package/app/.next/static/chunks/app/api/provider-models/route-9dc1eebb90668f5a.js +0 -1
  624. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-9dc1eebb90668f5a.js +0 -1
  625. package/app/.next/static/chunks/app/api/provider-nodes/route-9dc1eebb90668f5a.js +0 -1
  626. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-9dc1eebb90668f5a.js +0 -1
  627. package/app/.next/static/chunks/app/api/providers/[id]/models/route-9dc1eebb90668f5a.js +0 -1
  628. package/app/.next/static/chunks/app/api/providers/[id]/route-9dc1eebb90668f5a.js +0 -1
  629. package/app/.next/static/chunks/app/api/providers/[id]/test/route-9dc1eebb90668f5a.js +0 -1
  630. package/app/.next/static/chunks/app/api/providers/client/route-9dc1eebb90668f5a.js +0 -1
  631. package/app/.next/static/chunks/app/api/providers/route-9dc1eebb90668f5a.js +0 -1
  632. package/app/.next/static/chunks/app/api/providers/test-batch/route-9dc1eebb90668f5a.js +0 -1
  633. package/app/.next/static/chunks/app/api/providers/validate/route-9dc1eebb90668f5a.js +0 -1
  634. package/app/.next/static/chunks/app/api/rate-limit/route-9dc1eebb90668f5a.js +0 -1
  635. package/app/.next/static/chunks/app/api/rate-limits/route-9dc1eebb90668f5a.js +0 -1
  636. package/app/.next/static/chunks/app/api/resilience/reset/route-9dc1eebb90668f5a.js +0 -1
  637. package/app/.next/static/chunks/app/api/resilience/route-9dc1eebb90668f5a.js +0 -1
  638. package/app/.next/static/chunks/app/api/restart/route-9dc1eebb90668f5a.js +0 -1
  639. package/app/.next/static/chunks/app/api/sessions/route-9dc1eebb90668f5a.js +0 -1
  640. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-9dc1eebb90668f5a.js +0 -1
  641. package/app/.next/static/chunks/app/api/settings/ip-filter/route-9dc1eebb90668f5a.js +0 -1
  642. package/app/.next/static/chunks/app/api/settings/proxy/route-9dc1eebb90668f5a.js +0 -1
  643. package/app/.next/static/chunks/app/api/settings/proxy/test/route-9dc1eebb90668f5a.js +0 -1
  644. package/app/.next/static/chunks/app/api/settings/require-login/route-9dc1eebb90668f5a.js +0 -1
  645. package/app/.next/static/chunks/app/api/settings/route-9dc1eebb90668f5a.js +0 -1
  646. package/app/.next/static/chunks/app/api/settings/system-prompt/route-9dc1eebb90668f5a.js +0 -1
  647. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-9dc1eebb90668f5a.js +0 -1
  648. package/app/.next/static/chunks/app/api/shutdown/route-9dc1eebb90668f5a.js +0 -1
  649. package/app/.next/static/chunks/app/api/storage/health/route-9dc1eebb90668f5a.js +0 -1
  650. package/app/.next/static/chunks/app/api/sync/cloud/route-9dc1eebb90668f5a.js +0 -1
  651. package/app/.next/static/chunks/app/api/sync/initialize/route-9dc1eebb90668f5a.js +0 -1
  652. package/app/.next/static/chunks/app/api/tags/route-9dc1eebb90668f5a.js +0 -1
  653. package/app/.next/static/chunks/app/api/telemetry/summary/route-9dc1eebb90668f5a.js +0 -1
  654. package/app/.next/static/chunks/app/api/token-health/route-9dc1eebb90668f5a.js +0 -1
  655. package/app/.next/static/chunks/app/api/translator/detect/route-9dc1eebb90668f5a.js +0 -1
  656. package/app/.next/static/chunks/app/api/translator/history/route-9dc1eebb90668f5a.js +0 -1
  657. package/app/.next/static/chunks/app/api/translator/load/route-9dc1eebb90668f5a.js +0 -1
  658. package/app/.next/static/chunks/app/api/translator/save/route-9dc1eebb90668f5a.js +0 -1
  659. package/app/.next/static/chunks/app/api/translator/send/route-9dc1eebb90668f5a.js +0 -1
  660. package/app/.next/static/chunks/app/api/translator/translate/route-9dc1eebb90668f5a.js +0 -1
  661. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-9dc1eebb90668f5a.js +0 -1
  662. package/app/.next/static/chunks/app/api/usage/analytics/route-9dc1eebb90668f5a.js +0 -1
  663. package/app/.next/static/chunks/app/api/usage/budget/route-9dc1eebb90668f5a.js +0 -1
  664. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-9dc1eebb90668f5a.js +0 -1
  665. package/app/.next/static/chunks/app/api/usage/call-logs/route-9dc1eebb90668f5a.js +0 -1
  666. package/app/.next/static/chunks/app/api/usage/history/route-9dc1eebb90668f5a.js +0 -1
  667. package/app/.next/static/chunks/app/api/usage/logs/route-9dc1eebb90668f5a.js +0 -1
  668. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-9dc1eebb90668f5a.js +0 -1
  669. package/app/.next/static/chunks/app/api/usage/request-logs/route-9dc1eebb90668f5a.js +0 -1
  670. package/app/.next/static/chunks/app/api/v1/api/chat/route-9dc1eebb90668f5a.js +0 -1
  671. package/app/.next/static/chunks/app/api/v1/audio/speech/route-9dc1eebb90668f5a.js +0 -1
  672. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-9dc1eebb90668f5a.js +0 -1
  673. package/app/.next/static/chunks/app/api/v1/chat/completions/route-9dc1eebb90668f5a.js +0 -1
  674. package/app/.next/static/chunks/app/api/v1/embeddings/route-9dc1eebb90668f5a.js +0 -1
  675. package/app/.next/static/chunks/app/api/v1/images/generations/route-9dc1eebb90668f5a.js +0 -1
  676. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-9dc1eebb90668f5a.js +0 -1
  677. package/app/.next/static/chunks/app/api/v1/messages/route-9dc1eebb90668f5a.js +0 -1
  678. package/app/.next/static/chunks/app/api/v1/models/route-9dc1eebb90668f5a.js +0 -1
  679. package/app/.next/static/chunks/app/api/v1/moderations/route-9dc1eebb90668f5a.js +0 -1
  680. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-9dc1eebb90668f5a.js +0 -1
  681. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-9dc1eebb90668f5a.js +0 -1
  682. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-9dc1eebb90668f5a.js +0 -1
  683. package/app/.next/static/chunks/app/api/v1/rerank/route-9dc1eebb90668f5a.js +0 -1
  684. package/app/.next/static/chunks/app/api/v1/responses/route-9dc1eebb90668f5a.js +0 -1
  685. package/app/.next/static/chunks/app/api/v1/route-9dc1eebb90668f5a.js +0 -1
  686. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-9dc1eebb90668f5a.js +0 -1
  687. package/app/.next/static/chunks/app/api/v1beta/models/route-9dc1eebb90668f5a.js +0 -1
  688. package/app/.next/static/chunks/app/page-9dc1eebb90668f5a.js +0 -1
  689. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-9dc1eebb90668f5a.js +0 -1
  690. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-9dc1eebb90668f5a.js +0 -1
  691. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9dc1eebb90668f5a.js +0 -1
  692. package/app/.next/static/xW2ax6VohvDsTIIwd1zWK/_buildManifest.js +0 -1
  693. /package/app/.next/static/{xW2ax6VohvDsTIIwd1zWK → r6jUR903zdObDI9pgxvsU}/_ssgManifest.js +0 -0
@@ -0,0 +1,995 @@
1
+ <div align="center">
2
+ <img src="./images/omniroute.png" alt="OmniRoute Dashboard" width="800"/>
3
+
4
+ # 🚀 OmniRoute — 免费 AI 网关
5
+
6
+ ### 永不停止编程。智能路由至**免费和低成本 AI 模型**,自动故障转移。
7
+
8
+ _您的通用 API 代理 — 一个端点,36+ 提供商,零停机时间。_
9
+
10
+ **Chat Completions • Embeddings • 图像生成 • 音频 • Reranking • 100% TypeScript**
11
+
12
+ ---
13
+
14
+ ### 🤖 为您最爱的编程代理提供免费 AI
15
+
16
+ _通过 OmniRoute 连接任何 AI 驱动的 IDE 或 CLI 工具 — 免费 API 网关,无限编程。_
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
+ - ✅ **自动故障转移** — 订阅 → API Key → 低价 → 免费,零停机
125
+ - ✅ **多账号** — 每个提供商的账号轮询
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
+ │ 工具 │
136
+ └──────┬──────┘
137
+ │ http://localhost:20128/v1
138
+
139
+ ┌─────────────────────────────────────────┐
140
+ │ OmniRoute(智能路由器) │
141
+ │ • 格式转换(OpenAI ↔ Claude) │
142
+ │ • 配额追踪 + Embeddings + 图像 │
143
+ │ • 自动令牌刷新 │
144
+ └──────┬──────────────────────────────────┘
145
+
146
+ ├─→ [第1层: 订阅] Claude Code, Codex, Gemini CLI
147
+ │ ↓ 配额用完
148
+ ├─→ [第2层: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM 等
149
+ │ ↓ 预算限制
150
+ ├─→ [第3层: 低价] GLM ($0.6/1M), MiniMax ($0.2/1M)
151
+ │ ↓ 预算限制
152
+ └─→ [第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
+ 🎉 仪表板在 `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
+ 仪表板 → 提供商 → 连接 **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: [从仪表板复制]
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
+ | 层级 | 提供商 | 费用 | 配额重置 | 最适合 |
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 Token | 可预测成本 |
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 (免费应急后备)
285
+
286
+ 每月成本:$20(订阅)+ ~$5(备用)= $25 总计
287
+ 对比:$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 层故障转移 = 零停机
317
+ ```
318
+
319
+ ### 场景 4:"我想在 OpenClaw 中使用免费 AI"
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 层故障转移** | 自动路由:订阅 → API Key → 低价 → 免费 |
342
+ | 📊 **实时配额追踪** | 实时 Token 计数 + 每个提供商的重置倒计时 |
343
+ | 🔄 **格式转换** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro 无缝切换 |
344
+ | 👥 **多账号支持** | 每个提供商多个账号,智能选择 |
345
+ | 🔄 **自动令牌刷新** | OAuth 令牌自动刷新并重试 |
346
+ | 🎨 **自定义组合** | 6 种策略:fill-first、round-robin、p2c、random、least-used、cost-optimized |
347
+ | 🧩 **自定义模型** | 为任何提供商添加任何模型 ID |
348
+ | 🌐 **通配符路由** | 动态路由 `provider/*` 模式到任何提供商 |
349
+ | 🧠 **推理预算** | passthrough、auto、custom 和 adaptive 模式用于推理模型 |
350
+ | 💬 **System Prompt 注入** | 全局 System Prompt 应用于所有请求 |
351
+ | 📄 **Responses API** | 完整支持 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
+ | 🔀 **重排序** | `/v1/rerank` — 文档相关性重排序 |
363
+
364
+ ### 🛡️ 弹性与安全
365
+
366
+ | 功能 | 功能描述 |
367
+ | --------------------- | -------------------------------------- |
368
+ | 🔌 **断路器** | 每个提供商自动打开/关闭,可配置阈值 |
369
+ | 🛡️ **反惊群** | Mutex + 信号量限速用于 API Key 提供商 |
370
+ | 🧠 **语义缓存** | 两层缓存(签名 + 语义)降低成本和延迟 |
371
+ | ⚡ **请求幂等性** | 5 秒去重窗口防止重复请求 |
372
+ | 🔒 **TLS 指纹伪装** | 通过 wreq-js 绕过基于 TLS 的机器人检测 |
373
+ | 🌐 **IP 过滤** | 白名单/黑名单用于 API 访问控制 |
374
+ | 📊 **可编辑速率限制** | 可配置的 RPM、最小间隔和最大并发 |
375
+
376
+ ### 📊 可观察性与分析
377
+
378
+ | 功能 | 功能描述 |
379
+ | ------------------ | ------------------------------------------ |
380
+ | 📝 **请求日志** | 调试模式,完整的请求/响应日志 |
381
+ | 💾 **SQLite 日志** | 持久化代理日志,服务器重启后仍然保留 |
382
+ | 📊 **分析仪表板** | Recharts:统计卡片、使用量图表、提供商表格 |
383
+ | 📈 **进度追踪** | 流式传输的 SSE 进度事件(可选) |
384
+ | 🧪 **LLM 评估** | 黄金集测试,4 种匹配策略 |
385
+ | 🔍 **请求遥测** | p50/p95/p99 延迟聚合 + X-Request-Id 追踪 |
386
+ | 📋 **日志 + 配额** | 专用页面用于日志浏览和配额追踪 |
387
+ | 🏥 **健康仪表板** | 运行时间、断路器状态、锁定、缓存统计 |
388
+ | 💰 **成本追踪** | 预算管理 + 每模型定价配置 |
389
+
390
+ ### ☁️ 部署与同步
391
+
392
+ | 功能 | 功能描述 |
393
+ | --------------------- | ---------------------------------------------------------- |
394
+ | 💾 **Cloud Sync** | 通过 Cloudflare Workers 在设备间同步配置 |
395
+ | 🌐 **随处部署** | Localhost、VPS、Docker、Cloudflare Workers |
396
+ | 🔑 **API Key 管理** | 按提供商生成、轮换和设定 API Key 范围 |
397
+ | 🧙 **配置向导** | 4 步引导式设置,面向新用户 |
398
+ | 🔧 **CLI 工具仪表板** | 一键配置 Claude、Codex、Cline、OpenClaw、Kilo、Antigravity |
399
+ | 🔄 **数据库备份** | 自动备份和恢复所有设置 |
400
+
401
+ <details>
402
+ <summary><b>📖 功能详情</b></summary>
403
+
404
+ ### 🎯 智能 4 层故障转移
405
+
406
+ 创建带自动故障转移的组合:
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 (免费后备)
414
+
415
+ → 配额用完或出错时自动切换
416
+ ```
417
+
418
+ ### 📊 实时配额追踪
419
+
420
+ - 每个提供商的 Token 消耗
421
+ - 重置倒计时(5 小时、每日、每周)
422
+ - 付费层级的成本估算
423
+ - 月度支出报告
424
+
425
+ ### 🔄 格式转换
426
+
427
+ 格式间的无缝转换:
428
+
429
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
430
+ - 您的 CLI 发送 OpenAI 格式 → OmniRoute 转换 → 提供商接收原生格式
431
+ - 适用于任何支持自定义 OpenAI 端点的工具
432
+
433
+ ### 👥 多账号支持
434
+
435
+ - 每个提供商添加多个账号
436
+ - 自动轮询或基于优先级的路由
437
+ - 当一个账号达到配额时自动切换到下一个
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
+ ### 🏥 健康仪表板
452
+
453
+ - 系统状态(运行时间、版本、内存使用)
454
+ - 每个提供商的断路器状态(Closed/Open/Half-Open)
455
+ - 速率限制状态和活动锁定
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
+ 仪表板 → 提供商 → 连接 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
+ 仪表板 → 提供商 → 连接 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
+ 仪表板 → 提供商 → 连接 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
+ 仪表板 → 提供商 → 连接 GitHub
526
+ → 通过 GitHub OAuth
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. 仪表板 → 添加提供商 → 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. 仪表板 → 添加提供商 → 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. 仪表板 → 添加提供商 → 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. 仪表板 → 添加提供商 → OpenRouter
574
+
575
+ **模型:** 通过一个 API key 访问所有主要提供商的 100+ 模型。
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. 从 Coding Plan 获取 API key
586
+ 3. 仪表板 → 添加 API Key:
587
+ - 提供商:`glm`
588
+ - API Key:`your-key`
589
+
590
+ **使用:** `glm/glm-4.7`
591
+
592
+ **专业建议:** Coding Plan 以 1/7 的价格提供 3 倍配额!每日 10:00 AM 重置。
593
+
594
+ ### MiniMax M2.1(5 小时重置,$0.20/1M)
595
+
596
+ 1. 注册:[MiniMax](https://www.minimax.io/)
597
+ 2. 获取 API key
598
+ 3. 仪表板 → 添加 API Key
599
+
600
+ **使用:** `minimax/MiniMax-M2.1`
601
+
602
+ **专业建议:** 长上下文(1M Token)最便宜的选项!
603
+
604
+ ### Kimi K2($9/月固定)
605
+
606
+ 1. 订阅:[Moonshot AI](https://platform.moonshot.ai/)
607
+ 2. 获取 API key
608
+ 3. 仪表板 → 添加 API Key
609
+
610
+ **使用:** `kimi/kimi-latest`
611
+
612
+ **专业建议:** 固定 $9/月 10M Token = $0.90/1M 有效成本!
613
+
614
+ </details>
615
+
616
+ <details>
617
+ <summary><b>🆓 免费提供商(应急备用)</b></summary>
618
+
619
+ ### iFlow(8 个免费模型)
620
+
621
+ ```bash
622
+ 仪表板 → 连接 iFlow
623
+ → iFlow OAuth 登录
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
+ 仪表板 → 连接 Qwen
638
+ → 设备码授权
639
+ → 无限使用
640
+
641
+ 模型:
642
+ qw/qwen3-coder-plus
643
+ qw/qwen3-coder-flash
644
+ ```
645
+
646
+ ### Kiro(免费 Claude)
647
+
648
+ ```bash
649
+ 仪表板 → 连接 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
+ 仪表板 → 组合 → 创建新的
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(最便宜的后备,$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: [从 OmniRoute 仪表板获取]
700
+ Model: cc/claude-opus-4-6
701
+ ```
702
+
703
+ ### Claude Code
704
+
705
+ 使用仪表板中的 **CLI Tools** 页面一键配置,或手动编辑 `~/.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 — 仪表板(推荐):**
719
+
720
+ ```
721
+ 仪表板 → 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: [从 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 响应质量。通过仪表板中的 **Analytics → Evals** 访问。
827
+
828
+ ### 内置黄金集
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` | 输出必须匹配正则表达式模式 | `"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
+ - 提供商配额已耗尽 → 检查仪表板配额追踪器
855
+ - 解决方案:使用组合故障转移或切换到更便宜的层级
856
+
857
+ **速率限制**
858
+
859
+ - 订阅配额耗尽 → 回退到 GLM/MiniMax
860
+ - 添加组合:`cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
861
+
862
+ **OAuth 令牌过期**
863
+
864
+ - OmniRoute 自动刷新
865
+ - 如果问题持续:仪表板 → 提供商 → 重新连接
866
+
867
+ **高成本**
868
+
869
+ - 在仪表板 → 成本中检查使用统计
870
+ - 将主要模型切换为 GLM/MiniMax
871
+ - 对非关键任务使用免费层(Gemini CLI、iFlow)
872
+
873
+ **仪表板在错误端口打开**
874
+
875
+ - 设置 `PORT=20128` 和 `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
876
+
877
+ **Cloud sync 错误**
878
+
879
+ - 验证 `BASE_URL` 指向您正在运行的实例
880
+ - 验证 `CLOUD_URL` 指向预期的云端点
881
+ - 保持 `NEXT_PUBLIC_*` 值与服务器端值一致
882
+
883
+ **首次登录不工作**
884
+
885
+ - 检查 `.env` 中的 `INITIAL_PASSWORD`
886
+ - 如未设置,默认密码为 `123456`
887
+
888
+ **没有请求日志**
889
+
890
+ - 在 `.env` 中设置 `ENABLE_REQUEST_LOGS=true`
891
+
892
+ **兼容 OpenAI 的提供商连接测试显示 "Invalid"**
893
+
894
+ - 许多提供商不暴露 `/models` 端点
895
+ - OmniRoute v0.9.0+ 包含通过 chat completions 的回退验证
896
+ - 确保 base URL 包含 `/v1` 后缀
897
+
898
+ </details>
899
+
900
+ ---
901
+
902
+ ## 🛠️ 技术栈
903
+
904
+ - **运行时**: Node.js 20+
905
+ - **语言**: TypeScript 5.9 — `src/` 和 `open-sse/` 中 **100% TypeScript**(v0.9.0)
906
+ - **框架**: Next.js 16 + React 19 + Tailwind CSS 4
907
+ - **数据库**: LowDB (JSON) + SQLite(领域状态 + 代理日志)
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
+ - **弹性**: 断路器、指数退避、反惊群、TLS 伪装
916
+
917
+ ---
918
+
919
+ ## 📖 文档
920
+
921
+ | 文档 | 描述 |
922
+ | ----------------------------------- | ---------------------------- |
923
+ | [用户指南](docs/USER_GUIDE.md) | 提供商、组合、CLI 集成、部署 |
924
+ | [API 参考](docs/API_REFERENCE.md) | 所有端点及示例 |
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
+ - **原始项目**: [decolua 的 9router](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
+ ## 📊 Star 历史
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
+ 特别感谢 **[decolua](https://github.com/decolua)** 的 **[9router](https://github.com/decolua/9router)** — 启发了本 fork 的原始项目。OmniRoute 在这个令人难以置信的基础上添加了额外功能、多模态 API 和完整的 TypeScript 重写。
980
+
981
+ 特别感谢 **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — 启发了本 JavaScript 移植的原始 Go 实现。
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>