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.de.md ADDED
@@ -0,0 +1,995 @@
1
+ <div align="center">
2
+ <img src="./images/omniroute.png" alt="OmniRoute Dashboard" width="800"/>
3
+
4
+ # 🚀 OmniRoute — Das kostenlose AI-Gateway
5
+
6
+ ### Höre nie auf zu programmieren. Intelligentes Routing zu **KOSTENLOSEN und günstigen KI-Modellen** mit automatischem Fallback.
7
+
8
+ _Dein universeller API-Proxy — ein Endpoint, 36+ Anbieter, null Ausfallzeit._
9
+
10
+ **Chat Completions • Embeddings • Bildgenerierung • Audio • Reranking • 100% TypeScript**
11
+
12
+ ---
13
+
14
+ ### 🤖 Kostenloser KI-Anbieter für deine Lieblings-Coding-Agenten
15
+
16
+ _Verbinde jedes KI-gesteuerte IDE- oder CLI-Tool über OmniRoute — kostenloses API-Gateway für unbegrenztes Programmieren._
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>📡 Alle Agenten verbinden sich über <code>http://localhost:20128/v1</code> oder <code>http://cloud.omniroute.online/v1</code> — eine Konfiguration, unbegrenzte Modelle und Kontingent</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) • [🚀 Schnellstart](#-schnellstart) • [💡 Funktionen](#-hauptfunktionen) • [📖 Doku](#-dokumentation) • [💰 Preise](#-preisübersicht)
105
+
106
+ 🌐 **Verfügbar 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
+
108
+ </div>
109
+
110
+ ---
111
+
112
+ ## 🤔 Warum OmniRoute?
113
+
114
+ **Hör auf, Geld zu verschwenden und an Limits zu stoßen:**
115
+
116
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Abo-Kontingent verfällt jeden Monat ungenutzt
117
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Rate-Limits stoppen dich mitten beim Programmieren
118
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Teure APIs ($20-50/Monat pro Anbieter)
119
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuelles Wechseln zwischen Anbietern
120
+
121
+ **OmniRoute löst das:**
122
+
123
+ - ✅ **Abos maximieren** — Kontingente tracken, alles vor dem Reset nutzen
124
+ - ✅ **Automatischer Fallback** — Abo → API Key → Günstig → Kostenlos, null Ausfallzeit
125
+ - ✅ **Multi-Account** — Round-Robin zwischen Konten pro Anbieter
126
+ - ✅ **Universal** — Funktioniert mit Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, jedem CLI-Tool
127
+
128
+ ---
129
+
130
+ ## 🔄 So funktioniert's
131
+
132
+ ```
133
+ ┌─────────────┐
134
+ │ Dein CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
135
+ │ Tool │
136
+ └──────┬──────┘
137
+ │ http://localhost:20128/v1
138
+
139
+ ┌─────────────────────────────────────────┐
140
+ │ OmniRoute (Smart Router) │
141
+ │ • Format-Übersetzung (OpenAI ↔ Claude) │
142
+ │ • Kontingent-Tracking + Embeddings + Bilder │
143
+ │ • Automatische Token-Erneuerung │
144
+ └──────┬──────────────────────────────────┘
145
+
146
+ ├─→ [Tier 1: ABO] Claude Code, Codex, Gemini CLI
147
+ │ ↓ Kontingent erschöpft
148
+ ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM usw.
149
+ │ ↓ Budget-Limit
150
+ ├─→ [Tier 3: GÜNSTIG] GLM ($0.6/1M), MiniMax ($0.2/1M)
151
+ │ ↓ Budget-Limit
152
+ └─→ [Tier 4: KOSTENLOS] iFlow, Qwen, Kiro (unbegrenzt)
153
+
154
+ Ergebnis: Nie aufhören zu programmieren, minimale Kosten
155
+ ```
156
+
157
+ ---
158
+
159
+ ## ⚡ Schnellstart
160
+
161
+ **1. Global installieren:**
162
+
163
+ ```bash
164
+ npm install -g omniroute
165
+ omniroute
166
+ ```
167
+
168
+ 🎉 Das Dashboard öffnet sich unter `http://localhost:20128`
169
+
170
+ | Befehl | Beschreibung |
171
+ | ----------------------- | ----------------------------------- |
172
+ | `omniroute` | Server starten (Standardport 20128) |
173
+ | `omniroute --port 3000` | Benutzerdefinierten Port verwenden |
174
+ | `omniroute --no-open` | Browser nicht automatisch öffnen |
175
+ | `omniroute --help` | Hilfe anzeigen |
176
+
177
+ **2. KOSTENLOSEN Anbieter verbinden:**
178
+
179
+ Dashboard → Anbieter → **Claude Code** oder **Antigravity** verbinden → OAuth Login → Fertig!
180
+
181
+ **3. In deinem CLI-Tool verwenden:**
182
+
183
+ ```
184
+ Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Einstellungen:
185
+ Endpoint: http://localhost:20128/v1
186
+ API Key: [vom Dashboard kopieren]
187
+ Model: if/kimi-k2-thinking
188
+ ```
189
+
190
+ **Das war's!** Beginne mit KOSTENLOSEN KI-Modellen zu programmieren.
191
+
192
+ **Alternative — aus Quellcode ausführen:**
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 ist als öffentliches Docker-Image auf [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute) verfügbar.
205
+
206
+ **Schnellstart:**
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
+ **Mit Umgebungsdatei:**
218
+
219
+ ```bash
220
+ # .env kopieren und bearbeiten
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
+ **Mit Docker Compose:**
233
+
234
+ ```bash
235
+ # Basisprofil (ohne CLI-Tools)
236
+ docker compose --profile base up -d
237
+
238
+ # CLI-Profil (Claude Code, Codex, OpenClaw integriert)
239
+ docker compose --profile cli up -d
240
+ ```
241
+
242
+ | Image | Tag | Größe | Beschreibung |
243
+ | ------------------------ | -------- | ------ | ------------------------ |
244
+ | `diegosouzapw/omniroute` | `latest` | ~250MB | Letztes stabiles Release |
245
+ | `diegosouzapw/omniroute` | `0.9.0` | ~250MB | Aktuelle Version |
246
+
247
+ ---
248
+
249
+ ## 💰 Preisübersicht
250
+
251
+ | Tier | Anbieter | Kosten | Kontingent-Reset | Am besten für |
252
+ | ---------------- | ----------------- | ---------------------------- | ------------------- | ----------------------- |
253
+ | **💳 ABO** | Claude Code (Pro) | $20/Monat | 5h + wöchentlich | Bereits abonniert |
254
+ | | Codex (Plus/Pro) | $20-200/Monat | 5h + wöchentlich | OpenAI-Nutzer |
255
+ | | Gemini CLI | **KOSTENLOS** | 180K/Monat + 1K/Tag | Alle! |
256
+ | | GitHub Copilot | $10-19/Monat | Monatlich | GitHub-Nutzer |
257
+ | **🔑 API KEY** | NVIDIA NIM | **KOSTENLOS** (1000 Credits) | Einmalig | Kostenloses Testen |
258
+ | | DeepSeek | Nach Verbrauch | Keiner | Bestes Preis-Leistung |
259
+ | | Groq | Gratis-Stufe + bezahlt | Begrenzt | Ultra-schnelle Inferenz |
260
+ | | xAI (Grok) | Nach Verbrauch | Keiner | Grok-Modelle |
261
+ | | Mistral | Gratis-Stufe + bezahlt | Begrenzt | Europäische KI |
262
+ | | OpenRouter | Nach Verbrauch | Keiner | 100+ Modelle |
263
+ | **💰 GÜNSTIG** | GLM-4.7 | $0.6/1M | Täglich 10h | Budget-Backup |
264
+ | | MiniMax M2.1 | $0.2/1M | 5h rotierend | Günstigste Option |
265
+ | | Kimi K2 | $9/Monat fest | 10M Token/Monat | Vorhersagbare Kosten |
266
+ | **🆓 KOSTENLOS** | iFlow | $0 | Unbegrenzt | 8 kostenlose Modelle |
267
+ | | Qwen | $0 | Unbegrenzt | 3 kostenlose Modelle |
268
+ | | Kiro | $0 | Unbegrenzt | Kostenloses Claude |
269
+
270
+ **💡 Profi-Tipp:** Starte mit Gemini CLI (180K gratis/Monat) + iFlow (unbegrenzt gratis) = $0 Kosten!
271
+
272
+ ---
273
+
274
+ ## 🎯 Anwendungsfälle
275
+
276
+ ### Fall 1: „Ich habe ein Claude Pro Abo"
277
+
278
+ **Problem:** Kontingent verfällt ungenutzt, Rate-Limits während intensivem Programmieren
279
+
280
+ ```
281
+ Combo: "maximize-claude"
282
+ 1. cc/claude-opus-4-6 (Abo voll ausnutzen)
283
+ 2. glm/glm-4.7 (günstiges Backup bei erschöpftem Kontingent)
284
+ 3. if/kimi-k2-thinking (kostenloser Notfall-Fallback)
285
+
286
+ Monatliche Kosten: $20 (Abo) + ~$5 (Backup) = $25 gesamt
287
+ vs. $20 + an Limits stoßen = Frustration
288
+ ```
289
+
290
+ ### Fall 2: „Ich will null Kosten"
291
+
292
+ **Problem:** Kann sich Abos nicht leisten, braucht zuverlässige KI zum Programmieren
293
+
294
+ ```
295
+ Combo: "free-forever"
296
+ 1. gc/gemini-3-flash (180K gratis/Monat)
297
+ 2. if/kimi-k2-thinking (unbegrenzt gratis)
298
+ 3. qw/qwen3-coder-plus (unbegrenzt gratis)
299
+
300
+ Monatliche Kosten: $0
301
+ Qualität: Produktionsreife Modelle
302
+ ```
303
+
304
+ ### Fall 3: „Ich muss 24/7 programmieren, ohne Unterbrechungen"
305
+
306
+ **Problem:** Enge Deadlines, kann sich keine Ausfallzeit leisten
307
+
308
+ ```
309
+ Combo: "always-on"
310
+ 1. cc/claude-opus-4-6 (beste Qualität)
311
+ 2. cx/gpt-5.2-codex (zweites Abo)
312
+ 3. glm/glm-4.7 (günstig, täglicher Reset)
313
+ 4. minimax/MiniMax-M2.1 (günstigste, 5h Reset)
314
+ 5. if/kimi-k2-thinking (unbegrenzt kostenlos)
315
+
316
+ Ergebnis: 5 Fallback-Ebenen = null Ausfallzeit
317
+ ```
318
+
319
+ ### Fall 4: „Ich will KOSTENLOSE KI in OpenClaw"
320
+
321
+ **Problem:** Braucht KI-Assistenz in Messaging-Apps, komplett kostenlos
322
+
323
+ ```
324
+ Combo: "openclaw-free"
325
+ 1. if/glm-4.7 (unbegrenzt kostenlos)
326
+ 2. if/minimax-m2.1 (unbegrenzt kostenlos)
327
+ 3. if/kimi-k2-thinking (unbegrenzt kostenlos)
328
+
329
+ Monatliche Kosten: $0
330
+ Zugang über: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
331
+ ```
332
+
333
+ ---
334
+
335
+ ## 💡 Hauptfunktionen
336
+
337
+ ### 🧠 Routing & Intelligenz
338
+
339
+ | Funktion | Was es macht |
340
+ | ------------------------------------ | ------------------------------------------------------------------------------ |
341
+ | 🎯 **Intelligenter 4-Tier-Fallback** | Auto-Routing: Abo → API Key → Günstig → Kostenlos |
342
+ | 📊 **Echtzeit-Kontingent-Tracking** | Live Token-Zählung + Reset-Countdown pro Anbieter |
343
+ | 🔄 **Format-Übersetzung** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro nahtlos |
344
+ | 👥 **Multi-Account-Unterstützung** | Mehrere Konten pro Anbieter mit intelligenter Auswahl |
345
+ | 🔄 **Auto-Token-Erneuerung** | OAuth-Token werden automatisch mit Wiederholungen erneuert |
346
+ | 🎨 **Benutzerdefinierte Combos** | 6 Strategien: fill-first, round-robin, p2c, random, least-used, cost-optimized |
347
+ | 🧩 **Benutzerdefinierte Modelle** | Jede Modell-ID zu jedem Anbieter hinzufügen |
348
+ | 🌐 **Wildcard-Router** | `provider/*` Muster dynamisch an jeden Anbieter routen |
349
+ | 🧠 **Reasoning-Budget** | Passthrough, auto, custom und adaptive Modi für Reasoning-Modelle |
350
+ | 💬 **System Prompt Injection** | Globaler System Prompt für alle Anfragen |
351
+ | 📄 **API Responses** | Volle Unterstützung der OpenAI Responses API (`/v1/responses`) für Codex |
352
+
353
+ ### 🎵 Multi-Modale APIs
354
+
355
+ | Funktion | Was es macht |
356
+ | -------------------------- | ------------------------------------------------- |
357
+ | 🖼️ **Bildgenerierung** | `/v1/images/generations` — 4 Anbieter, 9+ Modelle |
358
+ | 📐 **Embeddings** | `/v1/embeddings` — 6 Anbieter, 9+ Modelle |
359
+ | 🎤 **Audio-Transkription** | `/v1/audio/transcriptions` — Whisper-kompatibel |
360
+ | 🔊 **Text-zu-Sprache** | `/v1/audio/speech` — Multi-Anbieter Audiosynthese |
361
+ | 🛡️ **Moderationen** | `/v1/moderations` — Sicherheitsüberprüfungen |
362
+ | 🔀 **Reranking** | `/v1/rerank` — Dokumenten-Relevanz-Neuordnung |
363
+
364
+ ### 🛡️ Resilienz & Sicherheit
365
+
366
+ | Funktion | Was es macht |
367
+ | ------------------------------- | -------------------------------------------------------------------- |
368
+ | 🔌 **Circuit Breaker** | Auto-Öffnung/-Schließung pro Anbieter mit konfigurierbaren Schwellen |
369
+ | 🛡️ **Anti-Thundering Herd** | Mutex + Semaphor Rate-Limit für API-Key-Anbieter |
370
+ | 🧠 **Semantischer Cache** | Zwei-Ebenen-Cache (Signatur + Semantik) senkt Kosten und Latenz |
371
+ | ⚡ **Anfrage-Idempotenz** | 5s Dedup-Fenster für doppelte Anfragen |
372
+ | 🔒 **TLS-Fingerprint-Spoofing** | Bot-Erkennung umgehen via wreq-js |
373
+ | 🌐 **IP-Filterung** | Allowlist/Blocklist für API-Zugriffskontrolle |
374
+ | 📊 **Editierbare Rate-Limits** | Konfigurierbare RPM, minimaler Abstand, max. Konkurrenz |
375
+
376
+ ### 📊 Observability & Analytics
377
+
378
+ | Funktion | Was es macht |
379
+ | ---------------------------- | -------------------------------------------------------------- |
380
+ | 📝 **Anfrage-Logs** | Debug-Modus mit vollständigen Request/Response-Logs |
381
+ | 💾 **SQLite-Logs** | Persistente Proxy-Logs überleben Neustarts |
382
+ | 📊 **Analytics-Dashboard** | Recharts: Statistik-Karten, Nutzungsdiagramm, Anbieter-Tabelle |
383
+ | 📈 **Fortschritts-Tracking** | Opt-in SSE-Fortschrittsereignisse für Streaming |
384
+ | 🧪 **LLM-Evaluierungen** | Testen mit Golden Set und 4 Match-Strategien |
385
+ | 🔍 **Anfrage-Telemetrie** | p50/p95/p99 Latenz-Aggregation + X-Request-Id Tracking |
386
+ | 📋 **Logs + Kontingente** | Dedizierte Seiten für Log-Browsing und Kontingent-Tracking |
387
+ | 🏥 **Health Dashboard** | Uptime, Circuit-Breaker-Status, Lockouts, Cache-Statistiken |
388
+ | 💰 **Kosten-Tracking** | Budget-Management + Preiseinstellung pro Modell |
389
+
390
+ ### ☁️ Deployment & Sync
391
+
392
+ | Funktion | Was es macht |
393
+ | -------------------------- | ----------------------------------------------------------------------------- |
394
+ | 💾 **Cloud Sync** | Einstellungen zwischen Geräten via Cloudflare Workers synchronisieren |
395
+ | 🌐 **Überall deployen** | Localhost, VPS, Docker, Cloudflare Workers |
396
+ | 🔑 **API-Key-Verwaltung** | API-Keys pro Anbieter generieren, rotieren und einschränken |
397
+ | 🧙 **Setup-Assistent** | 4-Schritte geführtes Setup für neue Nutzer |
398
+ | 🔧 **CLI Tools Dashboard** | Ein-Klick-Konfiguration für Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
399
+ | 🔄 **DB-Backups** | Automatisches Backup und Wiederherstellung aller Einstellungen |
400
+
401
+ <details>
402
+ <summary><b>📖 Funktionsdetails</b></summary>
403
+
404
+ ### 🎯 Intelligenter 4-Tier-Fallback
405
+
406
+ Erstelle Combos mit automatischem Fallback:
407
+
408
+ ```
409
+ Combo: "my-coding-stack"
410
+ 1. cc/claude-opus-4-6 (dein Abo)
411
+ 2. nvidia/llama-3.3-70b (kostenlose NVIDIA API)
412
+ 3. glm/glm-4.7 (günstiges Backup, $0.6/1M)
413
+ 4. if/kimi-k2-thinking (kostenloser Fallback)
414
+
415
+ → Wechselt automatisch bei erschöpftem Kontingent oder Fehlern
416
+ ```
417
+
418
+ ### 📊 Echtzeit-Kontingent-Tracking
419
+
420
+ - Token-Verbrauch pro Anbieter
421
+ - Reset-Countdown (5 Stunden, täglich, wöchentlich)
422
+ - Kostenabschätzung für bezahlte Stufen
423
+ - Monatliche Ausgabenberichte
424
+
425
+ ### 🔄 Format-Übersetzung
426
+
427
+ Nahtlose Übersetzung zwischen Formaten:
428
+
429
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
430
+ - Dein CLI sendet OpenAI-Format → OmniRoute übersetzt → Anbieter empfängt natives Format
431
+ - Funktioniert mit jedem Tool, das benutzerdefinierte OpenAI-Endpoints unterstützt
432
+
433
+ ### 👥 Multi-Account-Unterstützung
434
+
435
+ - Mehrere Konten pro Anbieter hinzufügen
436
+ - Automatisches Round-Robin oder prioritätsbasiertes Routing
437
+ - Fallback zum nächsten Konto bei Kontingent-Erschöpfung
438
+
439
+ ### 🔄 Auto-Token-Erneuerung
440
+
441
+ - OAuth-Token werden automatisch vor Ablauf erneuert
442
+ - Keine manuelle Neuauthentifizierung nötig
443
+ - Nahtlose Erfahrung über alle Anbieter
444
+
445
+ ### 🎨 Benutzerdefinierte Combos
446
+
447
+ - Unbegrenzte Modell-Kombinationen erstellen
448
+ - 6 Strategien: fill-first, round-robin, power-of-two-choices, random, least-used, cost-optimized
449
+ - Combos zwischen Geräten mit Cloud Sync teilen
450
+
451
+ ### 🏥 Health Dashboard
452
+
453
+ - Systemstatus (Uptime, Version, Speichernutzung)
454
+ - Circuit-Breaker-Status pro Anbieter (Closed/Open/Half-Open)
455
+ - Rate-Limit-Status und aktive Lockouts
456
+ - Signatur-Cache-Statistiken
457
+ - Latenz-Telemetrie (p50/p95/p99) + Prompt-Cache
458
+ - Gesundheitsstatus mit einem Klick zurücksetzen
459
+
460
+ ### 🔧 Übersetzer-Playground
461
+
462
+ - Debug, Test und Visualisierung von API-Format-Übersetzungen
463
+ - Anfragen senden und sehen, wie OmniRoute zwischen Anbieter-Formaten übersetzt
464
+ - Unschätzbar für Integrationsprobleme
465
+
466
+ ### 💾 Cloud Sync
467
+
468
+ - Anbieter, Combos und Einstellungen zwischen Geräten synchronisieren
469
+ - Automatische Hintergrundsynchronisierung
470
+ - Sichere verschlüsselte Speicherung
471
+
472
+ </details>
473
+
474
+ ---
475
+
476
+ ## 📖 Einrichtungsanleitung
477
+
478
+ <details>
479
+ <summary><b>💳 Abo-Anbieter</b></summary>
480
+
481
+ ### Claude Code (Pro/Max)
482
+
483
+ ```bash
484
+ Dashboard → Anbieter → Claude Code verbinden
485
+ → OAuth Login → Automatische Token-Erneuerung
486
+ → 5h + wöchentliches Kontingent-Tracking
487
+
488
+ Modelle:
489
+ cc/claude-opus-4-6
490
+ cc/claude-sonnet-4-5-20250929
491
+ cc/claude-haiku-4-5-20251001
492
+ ```
493
+
494
+ **Profi-Tipp:** Opus für komplexe Aufgaben, Sonnet für Geschwindigkeit. OmniRoute trackt Kontingent pro Modell!
495
+
496
+ ### OpenAI Codex (Plus/Pro)
497
+
498
+ ```bash
499
+ Dashboard → Anbieter → Codex verbinden
500
+ → OAuth Login (Port 1455)
501
+ → 5h + wöchentlicher Reset
502
+
503
+ Modelle:
504
+ cx/gpt-5.2-codex
505
+ cx/gpt-5.1-codex-max
506
+ ```
507
+
508
+ ### Gemini CLI (KOSTENLOS 180K/Monat!)
509
+
510
+ ```bash
511
+ Dashboard → Anbieter → Gemini CLI verbinden
512
+ → Google OAuth
513
+ → 180K Completions/Monat + 1K/Tag
514
+
515
+ Modelle:
516
+ gc/gemini-3-flash-preview
517
+ gc/gemini-2.5-pro
518
+ ```
519
+
520
+ **Bester Wert:** Riesiger Gratis-Tarif! Vor bezahlten Stufen nutzen.
521
+
522
+ ### GitHub Copilot
523
+
524
+ ```bash
525
+ Dashboard → Anbieter → GitHub verbinden
526
+ → OAuth via GitHub
527
+ → Monatlicher Reset (1. des Monats)
528
+
529
+ Modelle:
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-Anbieter</b></summary>
539
+
540
+ ### NVIDIA NIM (KOSTENLOS 1000 Credits!)
541
+
542
+ 1. Registrieren: [build.nvidia.com](https://build.nvidia.com)
543
+ 2. Kostenlosen API-Key holen (1000 Inferenz-Credits inklusive)
544
+ 3. Dashboard → Anbieter hinzufügen → NVIDIA NIM:
545
+ - API Key: `nvapi-your-key`
546
+
547
+ **Modelle:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` und 50+ weitere
548
+
549
+ **Profi-Tipp:** OpenAI-kompatible API — funktioniert perfekt mit OmniRoutes Format-Übersetzung!
550
+
551
+ ### DeepSeek
552
+
553
+ 1. Registrieren: [platform.deepseek.com](https://platform.deepseek.com)
554
+ 2. API-Key holen
555
+ 3. Dashboard → Anbieter hinzufügen → DeepSeek
556
+
557
+ **Modelle:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
558
+
559
+ ### Groq (Gratis-Stufe verfügbar!)
560
+
561
+ 1. Registrieren: [console.groq.com](https://console.groq.com)
562
+ 2. API-Key holen (Gratis-Stufe inklusive)
563
+ 3. Dashboard → Anbieter hinzufügen → Groq
564
+
565
+ **Modelle:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
566
+
567
+ **Profi-Tipp:** Ultra-schnelle Inferenz — am besten für Echtzeit-Programmierung!
568
+
569
+ ### OpenRouter (100+ Modelle)
570
+
571
+ 1. Registrieren: [openrouter.ai](https://openrouter.ai)
572
+ 2. API-Key holen
573
+ 3. Dashboard → Anbieter hinzufügen → OpenRouter
574
+
575
+ **Modelle:** Zugang zu 100+ Modellen aller großen Anbieter über einen einzigen API-Key.
576
+
577
+ </details>
578
+
579
+ <details>
580
+ <summary><b>💰 Günstige Anbieter (Backup)</b></summary>
581
+
582
+ ### GLM-4.7 (Täglicher Reset, $0.6/1M)
583
+
584
+ 1. Registrieren: [Zhipu AI](https://open.bigmodel.cn/)
585
+ 2. API-Key aus dem Coding Plan holen
586
+ 3. Dashboard → API Key hinzufügen:
587
+ - Anbieter: `glm`
588
+ - API Key: `your-key`
589
+
590
+ **Nutze:** `glm/glm-4.7`
591
+
592
+ **Profi-Tipp:** Der Coding Plan bietet 3× Kontingent zu 1/7 der Kosten! Täglicher Reset um 10:00.
593
+
594
+ ### MiniMax M2.1 (5h Reset, $0.20/1M)
595
+
596
+ 1. Registrieren: [MiniMax](https://www.minimax.io/)
597
+ 2. API-Key holen
598
+ 3. Dashboard → API Key hinzufügen
599
+
600
+ **Nutze:** `minimax/MiniMax-M2.1`
601
+
602
+ **Profi-Tipp:** Günstigste Option für langen Kontext (1M Token)!
603
+
604
+ ### Kimi K2 ($9/Monat fest)
605
+
606
+ 1. Abonnieren: [Moonshot AI](https://platform.moonshot.ai/)
607
+ 2. API-Key holen
608
+ 3. Dashboard → API Key hinzufügen
609
+
610
+ **Nutze:** `kimi/kimi-latest`
611
+
612
+ **Profi-Tipp:** Feste $9/Monat für 10M Token = $0.90/1M effektive Kosten!
613
+
614
+ </details>
615
+
616
+ <details>
617
+ <summary><b>🆓 KOSTENLOSE Anbieter (Notfall-Backup)</b></summary>
618
+
619
+ ### iFlow (8 KOSTENLOSE Modelle)
620
+
621
+ ```bash
622
+ Dashboard → iFlow verbinden
623
+ → iFlow OAuth Login
624
+ → Unbegrenzte Nutzung
625
+
626
+ Modelle:
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 KOSTENLOSE Modelle)
635
+
636
+ ```bash
637
+ Dashboard → Qwen verbinden
638
+ → Geräte-Code-Autorisierung
639
+ → Unbegrenzte Nutzung
640
+
641
+ Modelle:
642
+ qw/qwen3-coder-plus
643
+ qw/qwen3-coder-flash
644
+ ```
645
+
646
+ ### Kiro (Kostenloses Claude)
647
+
648
+ ```bash
649
+ Dashboard → Kiro verbinden
650
+ → AWS Builder ID oder Google/GitHub
651
+ → Unbegrenzte Nutzung
652
+
653
+ Modelle:
654
+ kr/claude-sonnet-4.5
655
+ kr/claude-haiku-4.5
656
+ ```
657
+
658
+ </details>
659
+
660
+ <details>
661
+ <summary><b>🎨 Combos erstellen</b></summary>
662
+
663
+ ### Beispiel 1: Abo maximieren → Günstiges Backup
664
+
665
+ ```
666
+ Dashboard → Combos → Neues erstellen
667
+
668
+ Name: premium-coding
669
+ Modelle:
670
+ 1. cc/claude-opus-4-6 (Primäres Abo)
671
+ 2. glm/glm-4.7 (Günstiges Backup, $0.6/1M)
672
+ 3. minimax/MiniMax-M2.1 (Günstigster Fallback, $0.20/1M)
673
+
674
+ Im CLI nutzen: premium-coding
675
+ ```
676
+
677
+ ### Beispiel 2: Nur Kostenlos (Null Kosten)
678
+
679
+ ```
680
+ Name: free-combo
681
+ Modelle:
682
+ 1. gc/gemini-3-flash-preview (180K gratis/Monat)
683
+ 2. if/kimi-k2-thinking (unbegrenzt)
684
+ 3. qw/qwen3-coder-plus (unbegrenzt)
685
+
686
+ Kosten: Für immer $0!
687
+ ```
688
+
689
+ </details>
690
+
691
+ <details>
692
+ <summary><b>🔧 CLI-Integration</b></summary>
693
+
694
+ ### Cursor IDE
695
+
696
+ ```
697
+ Einstellungen → Modelle → Erweitert:
698
+ OpenAI API Base URL: http://localhost:20128/v1
699
+ OpenAI API Key: [aus OmniRoute Dashboard]
700
+ Model: cc/claude-opus-4-6
701
+ ```
702
+
703
+ ### Claude Code
704
+
705
+ Nutze die **CLI Tools** Seite im Dashboard für Ein-Klick-Konfiguration, oder bearbeite `~/.claude/settings.json` manuell.
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 (empfohlen):**
719
+
720
+ ```
721
+ Dashboard → CLI Tools → OpenClaw → Modell wählen → Anwenden
722
+ ```
723
+
724
+ **Option 2 — Manuell:** `~/.openclaw/openclaw.json` bearbeiten:
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
+ > **Hinweis:** OpenClaw funktioniert nur mit lokalem OmniRoute. Verwende `127.0.0.1` statt `localhost` um IPv6-Auflösungsprobleme zu vermeiden.
741
+
742
+ ### Cline / Continue / RooCode
743
+
744
+ ```
745
+ Einstellungen → API-Konfiguration:
746
+ Anbieter: OpenAI Compatible
747
+ Base URL: http://localhost:20128/v1
748
+ API Key: [aus OmniRoute Dashboard]
749
+ Model: if/kimi-k2-thinking
750
+ ```
751
+
752
+ </details>
753
+
754
+ ---
755
+
756
+ ## 📊 Verfügbare Modelle
757
+
758
+ <details>
759
+ <summary><b>Alle verfügbaren Modelle anzeigen</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/`)** - KOSTENLOS:
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/`)** - KOSTENLOSE Credits:
783
+
784
+ - `nvidia/llama-3.3-70b-instruct`
785
+ - `nvidia/mistral-7b-instruct`
786
+ - 50+ weitere Modelle auf [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/`)** - KOSTENLOS:
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/`)** - KOSTENLOS:
805
+
806
+ - `qw/qwen3-coder-plus`
807
+ - `qw/qwen3-coder-flash`
808
+
809
+ **Kiro (`kr/`)** - KOSTENLOS:
810
+
811
+ - `kr/claude-sonnet-4.5`
812
+ - `kr/claude-haiku-4.5`
813
+
814
+ **OpenRouter (`or/`)** - 100+ Modelle:
815
+
816
+ - `or/anthropic/claude-4-sonnet`
817
+ - `or/google/gemini-2.5-pro`
818
+ - Jedes Modell von [openrouter.ai/models](https://openrouter.ai/models)
819
+
820
+ </details>
821
+
822
+ ---
823
+
824
+ ## 🧪 Evaluierungen (Evals)
825
+
826
+ OmniRoute enthält ein integriertes Evaluierungs-Framework zum Testen der LLM-Antwortqualität gegen ein Golden Set. Zugang über **Analytics → Evals** im Dashboard.
827
+
828
+ ### Integriertes Golden Set
829
+
830
+ Das vorgeladene „OmniRoute Golden Set" enthält 10 Testfälle:
831
+
832
+ - Begrüßungen, Mathematik, Geographie, Code-Generierung
833
+ - JSON-Formatkonformität, Übersetzung, Markdown
834
+ - Sicherheitsablehnung (schädlicher Inhalt), Zählung, Boolesche Logik
835
+
836
+ ### Evaluierungsstrategien
837
+
838
+ | Strategie | Beschreibung | Beispiel |
839
+ | ---------- | ---------------------------------------------------------- | -------------------------------- |
840
+ | `exact` | Ausgabe muss exakt übereinstimmen | `"4"` |
841
+ | `contains` | Ausgabe muss Teilzeichenfolge enthalten (case-insensitive) | `"Paris"` |
842
+ | `regex` | Ausgabe muss Regex-Muster entsprechen | `"1.*2.*3"` |
843
+ | `custom` | Benutzerdefinierte JS-Funktion gibt true/false zurück | `(output) => output.length > 10` |
844
+
845
+ ---
846
+
847
+ ## 🐛 Fehlerbehebung
848
+
849
+ <details>
850
+ <summary><b>Klicke zum Erweitern der Fehlerbehebungsanleitung</b></summary>
851
+
852
+ **„Language model did not provide messages"**
853
+
854
+ - Anbieter-Kontingent erschöpft → Kontingent-Tracker im Dashboard prüfen
855
+ - Lösung: Combo mit Fallback nutzen oder zu günstigerer Stufe wechseln
856
+
857
+ **Rate Limiting**
858
+
859
+ - Abo-Kontingent erschöpft → Fallback zu GLM/MiniMax
860
+ - Combo hinzufügen: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
861
+
862
+ **OAuth-Token abgelaufen**
863
+
864
+ - Wird automatisch von OmniRoute erneuert
865
+ - Falls Problem bestehen bleibt: Dashboard → Anbieter → Neu verbinden
866
+
867
+ **Hohe Kosten**
868
+
869
+ - Nutzungsstatistiken unter Dashboard → Kosten prüfen
870
+ - Primärmodell auf GLM/MiniMax umstellen
871
+ - Gratis-Stufe (Gemini CLI, iFlow) für unkritische Aufgaben nutzen
872
+
873
+ **Dashboard öffnet sich auf falschem Port**
874
+
875
+ - `PORT=20128` und `NEXT_PUBLIC_BASE_URL=http://localhost:20128` setzen
876
+
877
+ **Cloud-Sync-Fehler**
878
+
879
+ - Prüfe dass `BASE_URL` auf deine laufende Instanz zeigt
880
+ - Prüfe dass `CLOUD_URL` auf den erwarteten Cloud-Endpoint zeigt
881
+ - `NEXT_PUBLIC_*` Werte mit Serverwerten synchron halten
882
+
883
+ **Erster Login funktioniert nicht**
884
+
885
+ - `INITIAL_PASSWORD` in `.env` prüfen
886
+ - Falls nicht gesetzt, Standard-Passwort ist `123456`
887
+
888
+ **Keine Anfrage-Logs**
889
+
890
+ - `ENABLE_REQUEST_LOGS=true` in `.env` setzen
891
+
892
+ **Verbindungstest zeigt „Invalid" für OpenAI-kompatible Anbieter**
893
+
894
+ - Viele Anbieter stellen den `/models` Endpoint nicht bereit
895
+ - OmniRoute v0.9.0+ enthält Fallback-Validierung via Chat Completions
896
+ - Stelle sicher, dass die Base URL den `/v1` Suffix enthält
897
+
898
+ </details>
899
+
900
+ ---
901
+
902
+ ## 🛠️ Technologie-Stack
903
+
904
+ - **Runtime**: Node.js 20+
905
+ - **Sprache**: TypeScript 5.9 — **100% TypeScript** in `src/` und `open-sse/` (v0.9.0)
906
+ - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
907
+ - **Datenbank**: LowDB (JSON) + SQLite (Domain-Status + Proxy-Logs)
908
+ - **Streaming**: Server-Sent Events (SSE)
909
+ - **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys
910
+ - **Testing**: Node.js Test Runner (368+ Unit-Tests)
911
+ - **CI/CD**: GitHub Actions (automatische npm + Docker Hub Veröffentlichung bei Release)
912
+ - **Website**: [omniroute.online](https://omniroute.online)
913
+ - **Paket**: [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
+ - **Resilienz**: Circuit Breaker, exponentieller Backoff, Anti-Thundering Herd, TLS-Spoofing
916
+
917
+ ---
918
+
919
+ ## 📖 Dokumentation
920
+
921
+ | Dokument | Beschreibung |
922
+ | ------------------------------------------ | ---------------------------------------------- |
923
+ | [Benutzerhandbuch](docs/USER_GUIDE.md) | Anbieter, Combos, CLI-Integration, Deploy |
924
+ | [API-Referenz](docs/API_REFERENCE.md) | Alle Endpoints mit Beispielen |
925
+ | [Fehlerbehebung](docs/TROUBLESHOOTING.md) | Häufige Probleme und Lösungen |
926
+ | [Architektur](docs/ARCHITECTURE.md) | Systemarchitektur und Interna |
927
+ | [Mitwirken](CONTRIBUTING.md) | Entwicklungs-Setup und Richtlinien |
928
+ | [OpenAPI-Spezifikation](docs/openapi.yaml) | OpenAPI 3.0 Spezifikation |
929
+ | [Sicherheitsrichtlinie](SECURITY.md) | Schwachstellen melden und Sicherheitspraktiken |
930
+
931
+ ---
932
+
933
+ ## 📧 Support
934
+
935
+ - **Website**: [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
+ - **Originalprojekt**: [9router von decolua](https://github.com/decolua/9router)
939
+
940
+ ---
941
+
942
+ ## 👥 Mitwirkende
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
+ ### Wie du mitwirken kannst
947
+
948
+ 1. Repository forken
949
+ 2. Feature-Branch erstellen (`git checkout -b feature/amazing-feature`)
950
+ 3. Änderungen committen (`git commit -m 'Add amazing feature'`)
951
+ 4. Branch pushen (`git push origin feature/amazing-feature`)
952
+ 5. Pull Request öffnen
953
+
954
+ Siehe [CONTRIBUTING.md](CONTRIBUTING.md) für detaillierte Richtlinien.
955
+
956
+ ### Neue Version veröffentlichen
957
+
958
+ ```bash
959
+ # Release erstellen — npm-Veröffentlichung erfolgt automatisch
960
+ gh release create v0.9.0 --title "v0.9.0" --generate-notes
961
+ ```
962
+
963
+ ---
964
+
965
+ ## 📊 Star-Verlauf
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
+ ## 🙏 Danksagungen
978
+
979
+ Besonderer Dank an **[9router](https://github.com/decolua/9router)** von **[decolua](https://github.com/decolua)** — das Originalprojekt, das diesen Fork inspiriert hat. OmniRoute baut auf diesem unglaublichen Fundament auf mit zusätzlichen Funktionen, Multi-Modalen APIs und einem vollständigen TypeScript-Rewrite.
980
+
981
+ Besonderer Dank an **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — die ursprüngliche Go-Implementierung, die diese JavaScript-Portierung inspiriert hat.
982
+
983
+ ---
984
+
985
+ ## 📄 Lizenz
986
+
987
+ MIT-Lizenz — siehe [LICENSE](LICENSE) für Details.
988
+
989
+ ---
990
+
991
+ <div align="center">
992
+ <sub>Mit ❤️ gemacht für Entwickler, die 24/7 programmieren</sub>
993
+ <br/>
994
+ <sub><a href="https://omniroute.online">omniroute.online</a></sub>
995
+ </div>