omniroute 1.4.11 → 1.5.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 (370) hide show
  1. package/README.ar.md +1153 -0
  2. package/README.bg.md +1238 -0
  3. package/README.da.md +1238 -0
  4. package/README.de.md +1 -1
  5. package/README.es.md +1 -1
  6. package/README.fi.md +1238 -0
  7. package/README.fr.md +1 -1
  8. package/README.he.md +1238 -0
  9. package/README.hu.md +1238 -0
  10. package/README.id.md +1238 -0
  11. package/README.in.md +952 -0
  12. package/README.it.md +1 -1
  13. package/README.ja.md +1152 -0
  14. package/README.ko.md +1238 -0
  15. package/README.md +25 -20
  16. package/README.ms.md +1238 -0
  17. package/README.nl.md +1238 -0
  18. package/README.no.md +1238 -0
  19. package/README.phi.md +1238 -0
  20. package/README.pl.md +1238 -0
  21. package/README.pt-BR.md +16 -12
  22. package/README.pt.md +1238 -0
  23. package/README.ro.md +1238 -0
  24. package/README.ru.md +1 -1
  25. package/README.sk.md +1239 -0
  26. package/README.sv.md +1238 -0
  27. package/README.th.md +1229 -0
  28. package/README.uk-UA.md +1240 -0
  29. package/README.vi.md +1238 -0
  30. package/README.zh-CN.md +1 -1
  31. package/app/.next/BUILD_ID +1 -1
  32. package/app/.next/app-path-routes-manifest.json +28 -28
  33. package/app/.next/build-manifest.json +2 -2
  34. package/app/.next/prerender-manifest.json +3 -3
  35. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  36. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +6 -6
  45. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
  57. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
  60. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  69. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  75. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  78. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  81. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  84. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  85. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
  87. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  88. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
  90. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  91. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  93. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  94. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/_global-error.html +2 -2
  97. package/app/.next/server/app/_global-error.rsc +1 -1
  98. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  99. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  100. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  101. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  102. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  103. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  104. package/app/.next/server/app/_not-found/page.js +1 -1
  105. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  106. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  113. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  115. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  117. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  119. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  121. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  123. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  125. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  127. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  130. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  132. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  134. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  136. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/models/route.js +1 -1
  161. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  163. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/providers/route.js +1 -1
  185. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  209. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  219. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  223. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  225. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  229. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  231. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  233. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  235. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  240. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  241. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/callback/page.js +2 -2
  243. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  244. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/docs/page.js +2 -2
  246. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  247. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/forbidden/page.js +2 -2
  249. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  250. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/forgot-password/page.js +2 -2
  252. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  253. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/landing/page.js +2 -2
  255. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  256. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  257. package/app/.next/server/app/login/page.js +2 -2
  258. package/app/.next/server/app/login/page.js.nft.json +1 -1
  259. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  260. package/app/.next/server/app/page.js +1 -1
  261. package/app/.next/server/app/page.js.nft.json +1 -1
  262. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  263. package/app/.next/server/app/privacy/page.js +2 -2
  264. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  265. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  266. package/app/.next/server/app/terms/page.js +2 -2
  267. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  268. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  269. package/app/.next/server/app-paths-manifest.json +28 -28
  270. package/app/.next/server/chunks/1248.js +1 -0
  271. package/app/.next/server/chunks/{3994.js → 1465.js} +2 -2
  272. package/app/.next/server/chunks/1526.js +1 -0
  273. package/app/.next/server/chunks/1584.js +1 -0
  274. package/app/.next/server/chunks/1623.js +1 -0
  275. package/app/.next/server/chunks/1880.js +1 -0
  276. package/app/.next/server/chunks/1960.js +1 -1
  277. package/app/.next/server/chunks/1990.js +1 -1
  278. package/app/.next/server/chunks/2214.js +1 -0
  279. package/app/.next/server/chunks/2372.js +1 -0
  280. package/app/.next/server/chunks/2594.js +1 -0
  281. package/app/.next/server/chunks/3371.js +1 -0
  282. package/app/.next/server/chunks/3498.js +1 -1
  283. package/app/.next/server/chunks/3911.js +1 -0
  284. package/app/.next/server/chunks/438.js +1 -0
  285. package/app/.next/server/chunks/496.js +1 -0
  286. package/app/.next/server/chunks/5047.js +1 -0
  287. package/app/.next/server/chunks/5094.js +1 -0
  288. package/app/.next/server/chunks/5097.js +1 -0
  289. package/app/.next/server/chunks/5393.js +2 -0
  290. package/app/.next/server/chunks/5521.js +1 -0
  291. package/app/.next/server/chunks/5945.js +1 -0
  292. package/app/.next/server/chunks/6118.js +1 -0
  293. package/app/.next/server/chunks/6930.js +1 -0
  294. package/app/.next/server/chunks/7011.js +1 -0
  295. package/app/.next/server/chunks/708.js +1 -0
  296. package/app/.next/server/chunks/7650.js +1 -0
  297. package/app/.next/server/chunks/8220.js +1 -0
  298. package/app/.next/server/chunks/8464.js +1 -0
  299. package/app/.next/server/chunks/8706.js +1 -0
  300. package/app/.next/server/chunks/8976.js +1 -0
  301. package/app/.next/server/chunks/9119.js +1 -0
  302. package/app/.next/server/chunks/944.js +1 -0
  303. package/app/.next/server/chunks/9824.js +1 -1
  304. package/app/.next/server/chunks/9837.js +1 -0
  305. package/app/.next/server/pages/500.html +2 -2
  306. package/app/.next/server/server-reference-manifest.js +1 -1
  307. package/app/.next/server/server-reference-manifest.json +1 -1
  308. package/app/.next/static/chunks/{6458-085536744d592424.js → 1149-fefe7f95f0e9842f.js} +1 -1
  309. package/app/.next/static/chunks/{5846-19c878280decbd16.js → 5846-c6bffec2bf9757fa.js} +1 -1
  310. package/app/.next/static/chunks/{782-5e138760b7f7bf48.js → 8055-5844ff783b2e8a99.js} +3 -3
  311. package/app/.next/static/chunks/{993-e3050ebfd4f5032f.js → 993-cf9fe6c017bc7e67.js} +3 -3
  312. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-52f76c7c91444ec2.js +1 -0
  313. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-1dd4d0c348a7b0a6.js +1 -0
  314. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +1 -0
  315. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ce332ffdb491a4d8.js +15 -0
  316. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-ede2315b6918315e.js → page-6abed29d64c46388.js} +1 -1
  317. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-3ed2a7685adf9b91.js +1 -0
  318. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-1420c3ca376f1585.js +1 -0
  319. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-9a6519bf1468f16e.js +1 -0
  320. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-f4a2d6d07df5ddc4.js +1 -0
  321. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-6ee69634597daee0.js → page-833d24f322a20f5a.js} +1 -1
  322. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-ec914ae79f085e6f.js +1 -0
  323. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-388840686801f3f5.js +1 -0
  324. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c8ffb212f855704.js +1 -0
  325. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-31cdb6e15134d8c2.js +1 -0
  326. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-1f022385b812b987.js +1 -0
  327. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-1393d4935fc087cf.js +1 -0
  328. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-77158451270c1852.js → page-f10a8d4bb8236913.js} +1 -1
  329. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-83b07523f81d6282.js +4 -0
  330. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9cc99ab874fc36e7.js +1 -0
  331. package/app/.next/static/chunks/app/(dashboard)/{layout-b23c2c5427e04dcf.js → layout-00d5d56af65098a9.js} +1 -1
  332. package/app/.next/static/chunks/app/callback/page-585a53f7dc6a30f1.js +1 -0
  333. package/app/.next/static/chunks/app/docs/page-2fe9dcbeb3f738c0.js +1 -0
  334. package/app/.next/static/chunks/app/forbidden/{page-4a39fedc08aaaf55.js → page-df886dfa2d5bd9fa.js} +1 -1
  335. package/app/.next/static/chunks/app/forgot-password/page-2a495f0b0c653ab4.js +1 -0
  336. package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +1 -0
  337. package/app/.next/static/chunks/app/login/page-121c612ee459e7c2.js +1 -0
  338. package/app/.next/static/chunks/app/privacy/page-2fe9dcbeb3f738c0.js +1 -0
  339. package/app/.next/static/chunks/app/terms/page-2fe9dcbeb3f738c0.js +1 -0
  340. package/app/.next/static/css/6f101b114a4a7286.css +1 -0
  341. package/app/package.json +1 -1
  342. package/package.json +1 -1
  343. package/app/.next/server/chunks/1259.js +0 -2
  344. package/app/.next/server/chunks/4509.js +0 -1
  345. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a50474b6ebdf468a.js +0 -1
  346. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-d806e4f28c15636a.js +0 -1
  347. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-27bc511cf3930e1e.js +0 -1
  348. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ad885fdf9806e9a6.js +0 -15
  349. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-08f3ed204d01b6a0.js +0 -1
  350. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-6e4f3ca7ac9778be.js +0 -1
  351. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-8725f1a181e558a3.js +0 -1
  352. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-fbe1442b61df950a.js +0 -1
  353. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-931fa0c45dca76c9.js +0 -1
  354. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-04bc41f9e9de17ef.js +0 -1
  355. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6b6d62c5872aee46.js +0 -1
  356. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-2dc2a865e90681dd.js +0 -1
  357. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-ac85ce5066cd9044.js +0 -1
  358. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-88cac9e6f2fbe335.js +0 -1
  359. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-b351778975cb8622.js +0 -4
  360. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-f0809c7842e4f5b4.js +0 -1
  361. package/app/.next/static/chunks/app/callback/page-e439cd5a287000d8.js +0 -1
  362. package/app/.next/static/chunks/app/docs/page-8f74097544a61b9d.js +0 -1
  363. package/app/.next/static/chunks/app/forgot-password/page-a440e0c1675842bf.js +0 -1
  364. package/app/.next/static/chunks/app/landing/page-09741814aaca7548.js +0 -1
  365. package/app/.next/static/chunks/app/login/page-164f6b6b41167c5a.js +0 -1
  366. package/app/.next/static/chunks/app/privacy/page-8f74097544a61b9d.js +0 -1
  367. package/app/.next/static/chunks/app/terms/page-8f74097544a61b9d.js +0 -1
  368. package/app/.next/static/css/e90887a86e63903f.css +0 -1
  369. /package/app/.next/static/{g7Mie-iq39oZ7ts610YtL → XOdkUGO-Pm15MwsN4s6B3}/_buildManifest.js +0 -0
  370. /package/app/.next/static/{g7Mie-iq39oZ7ts610YtL → XOdkUGO-Pm15MwsN4s6B3}/_ssgManifest.js +0 -0
package/README.no.md ADDED
@@ -0,0 +1,1238 @@
1
+ <div align="center">
2
+ <img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
3
+
4
+ # 🚀 OmniRoute — Den gratis AI-gatewayen
5
+
6
+ 🌐 **[English](#-omniroute--the-free-ai-gateway)** | **[Português (BR)](#-omniroute--gateway-de-ia-gratuito)**
7
+
8
+ ### Slutt aldri å kode. Smart ruting til **GRATIS og rimelige AI-modeller** med automatisk fallback.
9
+
10
+ _Din universelle API-proxy – ett endepunkt, 36+ leverandører, null nedetid._
11
+
12
+ **Chatfullføringer • Innebygginger • Bildegenerering • Lyd • Omrangering • 100 % TypeScript**
13
+
14
+ ---
15
+
16
+ ### 🤖 Gratis AI-leverandør for dine favorittkodeagenter
17
+
18
+ _Koble til ethvert AI-drevet IDE- eller CLI-verktøy gjennom OmniRoute – gratis API-gateway for ubegrenset koding._
19
+
20
+ <table>
21
+ <tr>
22
+ <td align="center" width="110">
23
+ <a href="https://github.com/cline/cline">
24
+ <img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
25
+ <b>OpenClaw</b>
26
+ </a><br/>
27
+ <sub>⭐ 205K</sub>
28
+ </td>
29
+ <td align="center" width="110">
30
+ <a href="https://github.com/HKUDS/nanobot">
31
+ <img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
32
+ <b>NanoBot</b>
33
+ </a><br/>
34
+ <sub>⭐ 20.9K</sub>
35
+ </td>
36
+ <td align="center" width="110">
37
+ <a href="https://github.com/sipeed/picoclaw">
38
+ <img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
39
+ <b>PicoClaw</b>
40
+ </a><br/>
41
+ <sub>⭐ 14.6K</sub>
42
+ </td>
43
+ <td align="center" width="110">
44
+ <a href="https://github.com/zeroclaw-labs/zeroclaw">
45
+ <img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
46
+ <b>ZeroClaw</b>
47
+ </a><br/>
48
+ <sub>⭐ 9.9K</sub>
49
+ </td>
50
+ <td align="center" width="110">
51
+ <a href="https://github.com/nearai/ironclaw">
52
+ <img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
53
+ <b>IronClaw</b>
54
+ </a><br/>
55
+ <sub>⭐ 2.1K</sub>
56
+ </td>
57
+ </tr>
58
+ <tr>
59
+ <td align="center" width="110">
60
+ <a href="https://github.com/anomalyco/opencode">
61
+ <img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
62
+ <b>OpenCode</b>
63
+ </a><br/>
64
+ <sub>⭐ 106K</sub>
65
+ </td>
66
+ <td align="center" width="110">
67
+ <a href="https://github.com/openai/codex">
68
+ <img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
69
+ <b>Codex CLI</b>
70
+ </a><br/>
71
+ <sub>⭐ 60.8K</sub>
72
+ </td>
73
+ <td align="center" width="110">
74
+ <a href="https://github.com/anthropics/claude-code">
75
+ <img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
76
+ <b>Claude Code</b>
77
+ </a><br/>
78
+ <sub>⭐ 67.3K</sub>
79
+ </td>
80
+ <td align="center" width="110">
81
+ <a href="https://github.com/google-gemini/gemini-cli">
82
+ <img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
83
+ <b>Gemini CLI</b>
84
+ </a><br/>
85
+ <sub>⭐ 94.7K</sub>
86
+ </td>
87
+ <td align="center" width="110">
88
+ <a href="https://github.com/Kilo-Org/kilocode">
89
+ <img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
90
+ <b>Kilo Code</b>
91
+ </a><br/>
92
+ <sub>⭐ 15.5K</sub>
93
+ </td>
94
+ </tr>
95
+ </table>
96
+
97
+ <sub>📡 Alle agenter kobler til via <code>http://localhost:20128/v1</code> eller <code>http://cloud.omniroute.online/v1</code>, —limited one models_245 kvote</sub>
98
+
99
+ ---
100
+
101
+ [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute)
102
+ [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)
103
+ [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
104
+ [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)
105
+ [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
106
+
107
+ [🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
108
+
109
+ 🌐 **Available in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italiano](README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी](README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [Magyar](README.hu.md) | 🇮🇩 [Bahasa Indonesia](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Nederlands](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Portugal)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Polski](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [Filipino](README.phi.md)
110
+
111
+ </div>
112
+
113
+ ---
114
+
115
+ ## 🤔 Hvorfor OmniRoute?
116
+
117
+ **Slutt å kaste bort penger og nå grensene:**
118
+
119
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Abonnementskvoten utløper ubrukt hver måned
120
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Takstgrenser stopper deg med midtkoding
121
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Dyre APIer ($20–50/måned per leverandør)
122
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuell veksling mellom tilbydere
123
+
124
+ **OmniRoute løser dette:**
125
+
126
+ - ✅ **Maksimer abonnementer** - Spor kvote, bruk hver bit før tilbakestilling
127
+ - ✅ **Automatisk fallback** - Abonnement → API-nøkkel → Billig → Gratis, null nedetid
128
+ - ✅ **Multi-konto** - Round-robin mellom kontoer per leverandør
129
+ - ✅ **Universal** - Fungerer med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, hvilket som helst CLI-verktøy
130
+
131
+ ---
132
+
133
+ ## 🔄 Hvordan det fungerer
134
+
135
+ ```
136
+ ┌─────────────┐
137
+ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
138
+ │ Tool │
139
+ └──────┬──────┘
140
+ │ http://localhost:20128/v1
141
+
142
+ ┌─────────────────────────────────────────┐
143
+ │ OmniRoute (Smart Router) │
144
+ │ • Format translation (OpenAI ↔ Claude) │
145
+ │ • Quota tracking + Embeddings + Images │
146
+ │ • Auto token refresh │
147
+ └──────┬──────────────────────────────────┘
148
+
149
+ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
150
+ │ ↓ quota exhausted
151
+ ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
152
+ │ ↓ budget limit
153
+ ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
154
+ │ ↓ budget limit
155
+ └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited)
156
+
157
+ Result: Never stop coding, minimal cost
158
+ ```
159
+
160
+ ---
161
+
162
+ ## ⚡ Hurtigstart
163
+
164
+ **1. Installer globalt:**
165
+
166
+ ```bash
167
+ npm install -g omniroute
168
+ omniroute
169
+ ```
170
+
171
+ 🎉 Dashboard åpner kl. `http://localhost:20128`
172
+
173
+ | Kommando | Beskrivelse |
174
+ | ----------------------- | ---------------------------------- |
175
+ | `omniroute` | Start server (standard port 20128) |
176
+ | `omniroute --port 3000` | Bruk tilpasset port |
177
+ | `omniroute --no-open` | Ikke åpne nettleseren automatisk |
178
+ | `omniroute --help` | Vis hjelp |
179
+
180
+ **2. Koble til en GRATIS leverandør:**
181
+
182
+ Dashboard → Leverandører → Koble til **Claude-kode** eller **Antigravity** → OAuth-pålogging → Ferdig!
183
+
184
+ **3. Bruk i CLI-verktøyet:**
185
+
186
+ ```
187
+ Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Settings:
188
+ Endpoint: http://localhost:20128/v1
189
+ API Key: [copy from dashboard]
190
+ Model: if/kimi-k2-thinking
191
+ ```
192
+
193
+ **Det var det!** Begynn å kode med GRATIS AI-modeller.
194
+
195
+ **Alternativt – kjør fra kilden:**
196
+
197
+ ```bash
198
+ cp .env.example .env
199
+ npm install
200
+ PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
201
+ ```
202
+
203
+ ---
204
+
205
+ ## 🐳 Docker
206
+
207
+ OmniRoute er tilgjengelig som et offentlig Docker-bilde på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
208
+
209
+ **Rask løp:**
210
+
211
+ ```bash
212
+ docker run -d \
213
+ --name omniroute \
214
+ --restart unless-stopped \
215
+ -p 20128:20128 \
216
+ -v omniroute-data:/app/data \
217
+ diegosouzapw/omniroute:latest
218
+ ```
219
+
220
+ **Med miljøfil:**
221
+
222
+ ```bash
223
+ # Copy and edit .env first
224
+ cp .env.example .env
225
+
226
+ docker run -d \
227
+ --name omniroute \
228
+ --restart unless-stopped \
229
+ --env-file .env \
230
+ -p 20128:20128 \
231
+ -v omniroute-data:/app/data \
232
+ diegosouzapw/omniroute:latest
233
+ ```
234
+
235
+ **Bruke Docker Compose:**
236
+
237
+ ```bash
238
+ # Base profile (no CLI tools)
239
+ docker compose --profile base up -d
240
+
241
+ # CLI profile (Claude Code, Codex, OpenClaw built-in)
242
+ docker compose --profile cli up -d
243
+ ```
244
+
245
+ | Bilde | Tag | Størrelse | Beskrivelse |
246
+ | ------------------------ | -------- | --------- | ----------------------- |
247
+ | `diegosouzapw/omniroute` | `latest` | ~250MB | Siste stabile utgivelse |
248
+ | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Gjeldende versjon |
249
+
250
+ ---
251
+
252
+ ## 💰 Priser på et øyeblikk
253
+
254
+ | Nivå | Leverandør | Kostnad | Kvote Tilbakestill | Best for |
255
+ | ----------------- | ----------------- | ----------------------------- | ----------------------- | -------------------- |
256
+ | **💳 ABONNEMENT** | Claude Code (Pro) | $20/md | 5t + ukentlig | Allerede abonnert |
257
+ | | Codex (Pluss/Pro) | $20-200/md | 5t + ukentlig | OpenAI-brukere |
258
+ | | Gemini CLI | **GRATIS** | 180K/mnd + 1K/dag | Alle sammen! |
259
+ | | GitHub Copilot | $10-19/md | Månedlig | GitHub-brukere |
260
+ | **🔑 API NØKKEL** | NVIDIA NIM | **GRATIS** (1000 studiepoeng) | Engangs | Gratis tier testing |
261
+ | | DeepSeek | Betal per bruk | Ingen | Beste pris/kvalitet |
262
+ | | Groq | Gratis lag + betalt | Begrenset pris | Ultrarask slutning |
263
+ | | xAI (Grok) | Betal per bruk | Ingen | Grok modeller |
264
+ | | Mistral | Gratis lag + betalt | Begrenset pris | Europeisk AI |
265
+ | | OpenRouter | Betal per bruk | Ingen | 100+ modeller |
266
+ | **💰 BILLIG** | GLM-4.7 | $0,6/1M | Daglig 10:00 | Budsjett backup |
267
+ | | MiniMax M2.1 | $0,2/1M | 5-timers rullende | Billigste alternativ |
268
+ | | Kimi K2 | $9/md leilighet | 10 millioner tokens/mnd | Forutsigbar kostnad |
269
+ | **🆓 GRATIS** | iFlow | $0 | Ubegrenset | 8 modeller gratis |
270
+ | | Qwen | $0 | Ubegrenset | 3 modeller gratis |
271
+ | | Kiro | $0 | Ubegrenset | Claude gratis |
272
+
273
+ **💡 Profftips:** Start med Gemini CLI (180K gratis/måned) + iFlow (ubegrenset gratis) kombinasjon = $0 kostnad!
274
+
275
+ ---
276
+
277
+ ## 🎯 Brukssaker
278
+
279
+ ### Sak 1: "Jeg har Claude Pro-abonnement"
280
+
281
+ **Problem:** Kvoten utløper ubrukt, satsgrenser under tung koding
282
+
283
+ ```
284
+ Combo: "maximize-claude"
285
+ 1. cc/claude-opus-4-6 (use subscription fully)
286
+ 2. glm/glm-4.7 (cheap backup when quota out)
287
+ 3. if/kimi-k2-thinking (free emergency fallback)
288
+
289
+ Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
290
+ vs. $20 + hitting limits = frustration
291
+ ```
292
+
293
+ ### Tilfelle 2: "Jeg vil ha null kostnad"
294
+
295
+ **Problem:** Har ikke råd til abonnementer, trenger pålitelig AI-koding
296
+
297
+ ```
298
+ Combo: "free-forever"
299
+ 1. gc/gemini-3-flash (180K free/month)
300
+ 2. if/kimi-k2-thinking (unlimited free)
301
+ 3. qw/qwen3-coder-plus (unlimited free)
302
+
303
+ Monthly cost: $0
304
+ Quality: Production-ready models
305
+ ```
306
+
307
+ ### Tilfelle 3: "Jeg trenger 24/7 koding, ingen avbrudd"
308
+
309
+ **Problem:** Tidsfrister, har ikke råd til nedetid
310
+
311
+ ```
312
+ Combo: "always-on"
313
+ 1. cc/claude-opus-4-6 (best quality)
314
+ 2. cx/gpt-5.2-codex (second subscription)
315
+ 3. glm/glm-4.7 (cheap, resets daily)
316
+ 4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
317
+ 5. if/kimi-k2-thinking (free unlimited)
318
+
319
+ Result: 5 layers of fallback = zero downtime
320
+ ```
321
+
322
+ ### Tilfelle 4: "Jeg vil ha GRATIS AI i OpenClaw"
323
+
324
+ **Problem:** Trenger AI-assistent i meldingsapper, helt gratis
325
+
326
+ ```
327
+ Combo: "openclaw-free"
328
+ 1. if/glm-4.7 (unlimited free)
329
+ 2. if/minimax-m2.1 (unlimited free)
330
+ 3. if/kimi-k2-thinking (unlimited free)
331
+
332
+ Monthly cost: $0
333
+ Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
334
+ ```
335
+
336
+ ---
337
+
338
+ ## 💡 Nøkkelfunksjoner
339
+
340
+ ### 🧠 Kjerneruting og intelligens
341
+
342
+ | Funksjon | Hva det gjør |
343
+ | ---------------------------------- | ---------------------------------------------------------------------------------------- |
344
+ | 🎯 **Smart 4-lags fallback** | Automatisk rute: Abonnement → API-nøkkel → Billig → Gratis |
345
+ | 📊 **Sanntidskvotesporing** | Live tokenantall + tilbakestilt nedtelling per leverandør |
346
+ | 🔄 **Formatoversettelse** | OpenAI ↔ Claude ↔ Gemini ↔ Markør ↔ Kiro sømløs + respons sanitization |
347
+ | 👥 **Støtte for flere kontoer** | Flere kontoer per leverandør med intelligent utvalg |
348
+ | 🔄 **Auto Token Refresh** | OAuth-tokens oppdateres automatisk med prøv på nytt |
349
+ | 🎨 **Egendefinerte kombinasjoner** | 6 strategier: fyll først, round-robin, p2c, tilfeldig, minst brukt, kostnadsoptimalisert |
350
+ | 🧩 **Egendefinerte modeller** | Legg til hvilken som helst modell-ID til en hvilken som helst leverandør |
351
+ | 🌐 **Wildcard-ruter** | Ruter `provider/*`-mønstre til enhver leverandør dynamisk |
352
+ | 🧠 **Tenkebudsjett** | Passthrough, auto, egendefinerte og adaptive moduser for resonnerende modeller |
353
+ | 💬 **Systemprompt-injeksjon** | Global systemforespørsel brukt på alle forespørsler |
354
+ | 📄 **Responses API** | Full støtte for OpenAI Responses API (`/v1/responses`) for Codex |
355
+
356
+ ### 🎵 Multi-Modal APIer
357
+
358
+ | Funksjon | Hva det gjør |
359
+ | ----------------------- | ------------------------------------------------------ |
360
+ | 🖼️ **Bildegenerering** | `/v1/images/generations` — 4 leverandører, 9+ modeller |
361
+ | 📐 **Innbygging** | `/v1/embeddings` — 6 leverandører, 9+ modeller |
362
+ | 🎤 **Lydtranskripsjon** | `/v1/audio/transcriptions` — Whisper-kompatibel |
363
+ | 🔊 **Tekst-til-tale** | `/v1/audio/speech` — Multi-leverandør lydsyntese |
364
+ | 🛡️ **Moderasjoner** | `/v1/moderations` — Innholdssikkerhetssjekker |
365
+ | 🔀 **Omrangering** | `/v1/rerank` — Rerangering av dokumentrelevans |
366
+
367
+ ### 🛡️ Spenst og sikkerhet
368
+
369
+ | Funksjon | Hva det gjør |
370
+ | --------------------------------- | ----------------------------------------------------------------------------- |
371
+ | 🔌 **Circuit Breaker** | Automatisk åpning/lukking per leverandør med konfigurerbare terskler |
372
+ | 🛡️ **Anti-tordenflokk** | Mutex + semaforhastighetsgrense for API-nøkkelleverandører |
373
+ | 🧠 **Semantisk cache** | To-lags cache (signatur + semantisk) reduserer kostnader og ventetid |
374
+ | ⚡ **Be om idempotens** | 5s dedup-vindu for dupliserte forespørsler |
375
+ | 🔒 **TLS-fingeravtrykkspoofing** | Omgå TLS-basert botdeteksjon via wreq-js |
376
+ | 🌐 **IP-filtrering** | Tillatelsesliste/blokkeringsliste for API-tilgangskontroll |
377
+ | 📊 **Redigerbare satsgrenser** | Konfigurerbar RPM, min gap og maks samtidig på systemnivå |
378
+ | 🛡 **API-endepunktbeskyttelse** | Auth-gate + leverandørblokkering for `/models`-endepunktet |
379
+ | 🔒 **Proxy-synlighet** | Fargekodede merker: 🟢 global, 🟡 leverandør, 🔵 per tilkobling med IP-skjerm |
380
+ | 🌐 **3-nivå proxy-konfigurasjon** | Konfigurer proxyer på globalt nivå, per leverandør eller per tilkoblingsnivå |
381
+
382
+ ### 📊 Observerbarhet og analyse
383
+
384
+ | Funksjon | Hva det gjør |
385
+ | -------------------------- | ----------------------------------------------------------------------------------- |
386
+ | 📝 **Be om logging** | Feilsøkingsmodus med fullstendige forespørsels-/svarlogger |
387
+ | 💾 **SQLite proxy-logger** | Vedvarende proxy-logger overlever omstart av server |
388
+ | 📊 **Analytics Dashboard** | Recharts-drevet: statistikkkort, modellbruksdiagram, leverandørtabell |
389
+ | 📈 **Fremdriftssporing** | Opt-in SSE-fremdriftshendelser for streaming |
390
+ | 🧪 **LLM-evalueringer** | Gylden sett-testing med 4 kampstrategier |
391
+ | 🔍 **Be om telemetri** | p50/p95/p99 latensaggregering + X-Request-Id-sporing |
392
+ | 📋 **Logger Dashboard** | Samlet side med 4 faner: Forespørselslogger, proxy-logger, revisjonslogger, konsoll |
393
+ | 🖥️ **Konsollloggvisning** | Viser i sanntid i terminalstil med nivåfilter, søk, automatisk rulling |
394
+ | 📑 **Filbasert logging** | Console interceptor fanger opp all utgang til JSON-loggfil med rotasjon |
395
+ | 🏥 **Helse Dashboard** | Systemoppetid, strømbrytertilstander, sperringer, cachestatistikk |
396
+ | 💰 **Kostnadssporing** | Budsjettadministrasjon + priskonfigurasjon per modell |
397
+
398
+ ### ☁️ Implementering og synkronisering
399
+
400
+ | Funksjon | Hva det gjør |
401
+ | -------------------------------- | ---------------------------------------------------------------------------------------- |
402
+ | 💾 **Cloud Sync** | Synkroniser konfigurasjon på tvers av enheter via Cloudflare Workers |
403
+ | 🌐 **Distribuer hvor som helst** | Localhost, VPS, Docker, Cloudflare Workers |
404
+ | 🔑 **API Key Management** | Generer, roter og omfang API-nøkler per leverandør |
405
+ | 🧙 **Onboarding Wizard** | 4-trinns veiledet oppsett for førstegangsbrukere |
406
+ | 🔧 **CLI Tools Dashboard** | Ett-klikk konfigurer Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
407
+ | 🔄 **DB-sikkerhetskopier** | Automatisk sikkerhetskopiering, gjenoppretting, eksport og import for alle innstillinger |
408
+ | 🌐 **Internasjonalisering** | Full i18n med neste-intl — støtte for engelsk + portugisisk (Brasil) |
409
+ | 🌍 **Språkvelger** | Globusikon i overskriften for sanntids språkbytte (🇺🇸/🇧🇷) |
410
+ | 📂 **Tilpasset datakatalog** | `DATA_DIR` env var for å overstyre standard `~/.omniroute` lagringsbane |
411
+
412
+ <details>
413
+ <summary><b>📖 Funksjonsdetaljer</b></summary>
414
+
415
+ ### 🎯 Smart 4-lags fallback
416
+
417
+ Lag kombinasjoner med automatisk fallback:
418
+
419
+ ```
420
+ Combo: "my-coding-stack"
421
+ 1. cc/claude-opus-4-6 (your subscription)
422
+ 2. nvidia/llama-3.3-70b (free NVIDIA API)
423
+ 3. glm/glm-4.7 (cheap backup, $0.6/1M)
424
+ 4. if/kimi-k2-thinking (free fallback)
425
+
426
+ → Auto switches when quota runs out or errors occur
427
+ ```
428
+
429
+ ### 📊 Sanntidskvotesporing
430
+
431
+ - Tokenforbruk per leverandør
432
+ - Tilbakestill nedtellingen (5 timer, daglig, ukentlig)
433
+ - Kostnadsestimat for betalte nivåer
434
+ - Månedlige utgiftsrapporter
435
+
436
+ ### 🔄 Formatoversettelse
437
+
438
+ Sømløs oversettelse mellom formater:
439
+
440
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI-svar**
441
+ - CLI-verktøyet ditt sender OpenAI-format → OmniRoute oversetter → Leverandøren mottar eget format
442
+ - Fungerer med alle verktøy som støtter tilpassede OpenAI-endepunkter
443
+ - **Responssanering** - Fjerner ikke-standardfelter for streng OpenAI SDK-kompatibilitet
444
+ - **Rollenormalisering** — `developer` → `system` for ikke-OpenAI; `system` → `user` for GLM/ERNIE-modeller
445
+ - **Tenk tag-utvinning** — `<think>` blokker → `reasoning_content` for tenkemodeller
446
+ - **Strukturert utgang** — `json_schema` → Gemini's `responseMimeType`/`responseSchema`
447
+
448
+ ### 👥 Støtte for flere kontoer
449
+
450
+ - Legg til flere kontoer per leverandør
451
+ - Auto round-robin eller prioritetsbasert ruting
452
+ - Tilbakeslag til neste konto når en når kvoten
453
+
454
+ ### 🔄 Automatisk tokenoppdatering
455
+
456
+ - OAuth-tokens oppdateres automatisk før utløp
457
+ - Ingen manuell re-autentisering nødvendig
458
+ - Sømløs opplevelse på tvers av alle leverandører
459
+
460
+ ### 🎨 Egendefinerte kombinasjoner
461
+
462
+ - Lag ubegrensede modellkombinasjoner
463
+ - 6 strategier: fyll-først, round-robin, kraft-av-to-valg, tilfeldig, minst brukt, kostnadsoptimalisert
464
+ - Del kombinasjoner på tvers av enheter med Cloud Sync
465
+
466
+ ### 🏥 Helse Dashboard
467
+
468
+ - Systemstatus (oppetid, versjon, minnebruk)
469
+ - Strømbrytertilstander per leverandør (lukket/åpen/halvåpen)
470
+ - Takstgrensestatus og aktive sperringer
471
+ - Signaturbufferstatistikk
472
+ - Latency-telemetri (p50/p95/p99) + hurtigbuffer
473
+ - Tilbakestill helsestatus med ett klikk
474
+
475
+ ### 🔧 Oversetter Lekeplass
476
+
477
+ OmniRoute inkluderer en kraftig innebygd oversetterlekeplass med **4 moduser** for feilsøking, testing og overvåking av API-oversettelser:
478
+
479
+ | Modus | Beskrivelse |
480
+ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
481
+ | **💻 Lekeplass** | Direkte formatoversettelse – lim inn hvilken som helst API-forespørselstekst og se umiddelbart hvordan OmniRoute oversetter den mellom leverandørformater (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Inkluderer eksempelmaler og automatisk gjenkjenning av formater. |
482
+ | **💬 Chat Tester** | Send ekte chatteforespørsler gjennom OmniRoute og se hele rundturen: innspillet ditt, den oversatte forespørselen, leverandørens svar og det oversatte svaret tilbake. Uvurderlig for validering av kombinasjonsruting. |
483
+ | **🧪 Testbenk** | Batch-testmodus – definer flere testtilfeller med forskjellige innganger og forventede utganger, kjør dem alle samtidig og sammenlign resultater på tvers av leverandører og modeller. |
484
+ | **📱 Live Monitor** | Sanntidsovervåking av forespørsler – se innkommende forespørsler mens de strømmer gjennom OmniRoute, se formatoversettelser som skjer live, og identifiser problemer umiddelbart. |
485
+
486
+ **Tilgang:** Dashboard → Oversetter (sidefelt)
487
+
488
+ ### 💾 Cloud Sync
489
+
490
+ - Synkroniser leverandører, kombinasjoner og innstillinger på tvers av enheter
491
+ - Automatisk bakgrunnssynkronisering
492
+ - Sikker kryptert lagring
493
+
494
+ </details>
495
+
496
+ ---
497
+
498
+ ## 📖 Oppsettveiledning
499
+
500
+ <details>
501
+ <summary><b>💳 Abonnementsleverandører</b></summary>
502
+
503
+ ### Claude Code (Pro/Max)
504
+
505
+ ```bash
506
+ Dashboard → Providers → Connect Claude Code
507
+ → OAuth login → Auto token refresh
508
+ → 5-hour + weekly quota tracking
509
+
510
+ Models:
511
+ cc/claude-opus-4-6
512
+ cc/claude-sonnet-4-5-20250929
513
+ cc/claude-haiku-4-5-20251001
514
+ ```
515
+
516
+ **Profftips:** Bruk Opus for komplekse oppgaver, Sonnet for hastighet. OmniRoute sporer kvote per modell!
517
+
518
+ ### OpenAI Codex (Plus/Pro)
519
+
520
+ ```bash
521
+ Dashboard → Providers → Connect Codex
522
+ → OAuth login (port 1455)
523
+ → 5-hour + weekly reset
524
+
525
+ Models:
526
+ cx/gpt-5.2-codex
527
+ cx/gpt-5.1-codex-max
528
+ ```
529
+
530
+ ### Gemini CLI (GRATIS 180K/måned!)
531
+
532
+ ```bash
533
+ Dashboard → Providers → Connect Gemini CLI
534
+ → Google OAuth
535
+ → 180K completions/month + 1K/day
536
+
537
+ Models:
538
+ gc/gemini-3-flash-preview
539
+ gc/gemini-2.5-pro
540
+ ```
541
+
542
+ **Mest verdi:** Enormt gratis nivå! Bruk dette før betalte nivåer.
543
+
544
+ ### GitHub Copilot
545
+
546
+ ```bash
547
+ Dashboard → Providers → Connect GitHub
548
+ → OAuth via GitHub
549
+ → Monthly reset (1st of month)
550
+
551
+ Models:
552
+ gh/gpt-5
553
+ gh/claude-4.5-sonnet
554
+ gh/gemini-3-pro
555
+ ```
556
+
557
+ </details>
558
+
559
+ <details>
560
+ <summary><b>🔑 API nøkkelleverandører</b></summary>
561
+
562
+ ### NVIDIA NIM (GRATIS 1000 studiepoeng!)
563
+
564
+ 1. Registrer deg: [build.nvidia.com](https://build.nvidia.com)
565
+ 2. Få gratis API-nøkkel (1000 slutningspoeng inkludert)
566
+ 3. Dashboard → Legg til leverandør → NVIDIA NIM:
567
+ - API-nøkkel: `nvapi-your-key`
568
+
569
+ **Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` og 50+ til
570
+
571
+ **Profftips:** OpenAI-kompatibel API — fungerer sømløst med OmniRoutes formatoversettelse!
572
+
573
+ ### DeepSeek
574
+
575
+ 1. Registrer deg: [platform.deepseek.com](https://platform.deepseek.com)
576
+ 2. Få API-nøkkel
577
+ 3. Dashboard → Legg til leverandør → DeepSeek
578
+
579
+ **Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
580
+
581
+ ### Groq (gratis nivå tilgjengelig!)
582
+
583
+ 1. Registrer deg: [console.groq.com](https://console.groq.com)
584
+ 2. Få API-nøkkel (gratis nivå inkludert)
585
+ 3. Dashboard → Legg til leverandør → Groq
586
+
587
+ **Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
588
+
589
+ **Profftips:** Ultrarask slutning — best for sanntidskoding!
590
+
591
+ ### OpenRouter (100+ modeller)
592
+
593
+ 1. Registrer deg: [openrouter.ai](https://openrouter.ai)
594
+ 2. Få API-nøkkel
595
+ 3. Dashboard → Legg til leverandør → OpenRouter
596
+
597
+ **Modeller:** Få tilgang til 100+ modeller fra alle store leverandører gjennom én enkelt API-nøkkel.
598
+
599
+ </details>
600
+
601
+ <details>
602
+ <summary><b>💰 Billige leverandører (backup)</b></summary>
603
+
604
+ ### GLM-4.7 (Daglig tilbakestilling, $0,6/1M)
605
+
606
+ 1. Registrer deg: [Zhipu AI](https://open.bigmodel.cn/)
607
+ 2. Få API-nøkkel fra Coding Plan
608
+ 3. Dashboard → Legg til API-nøkkel:
609
+ - Leverandør: `glm`
610
+ - API-nøkkel: `your-key`
611
+
612
+ **Bruk:** `glm/glm-4.7`
613
+
614
+ **Profftips:** Coding Plan tilbyr 3× kvote til 1/7 kostnad! Tilbakestill daglig 10:00.
615
+
616
+ ### MiniMax M2.1 (5t tilbakestilling, $0,20/1M)
617
+
618
+ 1. Registrer deg: [MiniMax](https://www.minimax.io/)
619
+ 2. Få API-nøkkel
620
+ 3. Dashboard → Legg til API-nøkkel
621
+
622
+ **Bruk:** `minimax/MiniMax-M2.1`
623
+
624
+ **Profftips:** Billigste alternativet for lang kontekst (1M tokens)!
625
+
626
+ ### Kimi K2 ($9/mnd leilighet)
627
+
628
+ 1. Abonner: [Moonshot AI](https://platform.moonshot.ai/)
629
+ 2. Få API-nøkkel
630
+ 3. Dashboard → Legg til API-nøkkel
631
+
632
+ **Bruk:** `kimi/kimi-latest`
633
+
634
+ **Profftips:** Fast $9/måned for 10M tokens = $0,90/1M effektiv kostnad!
635
+
636
+ </details>
637
+
638
+ <details>
639
+ <summary><b>🆓 GRATIS Leverandører (Emergency Backup)</b></summary>
640
+
641
+ ### iFlow (8 GRATIS modeller)
642
+
643
+ ```bash
644
+ Dashboard → Connect iFlow
645
+ → iFlow OAuth login
646
+ → Unlimited usage
647
+
648
+ Models:
649
+ if/kimi-k2-thinking
650
+ if/qwen3-coder-plus
651
+ if/glm-4.7
652
+ if/minimax-m2
653
+ if/deepseek-r1
654
+ ```
655
+
656
+ ### Qwen (3 GRATIS modeller)
657
+
658
+ ```bash
659
+ Dashboard → Connect Qwen
660
+ → Device code authorization
661
+ → Unlimited usage
662
+
663
+ Models:
664
+ qw/qwen3-coder-plus
665
+ qw/qwen3-coder-flash
666
+ ```
667
+
668
+ ### Kiro (Claude FREE)
669
+
670
+ ```bash
671
+ Dashboard → Connect Kiro
672
+ → AWS Builder ID or Google/GitHub
673
+ → Unlimited usage
674
+
675
+ Models:
676
+ kr/claude-sonnet-4.5
677
+ kr/claude-haiku-4.5
678
+ ```
679
+
680
+ </details>
681
+
682
+ <details>
683
+ <summary><b>🎨 Lag kombinasjoner</b></summary>
684
+
685
+ ### Eksempel 1: Maksimer abonnement → Billig sikkerhetskopi
686
+
687
+ ```
688
+ Dashboard → Combos → Create New
689
+
690
+ Name: premium-coding
691
+ Models:
692
+ 1. cc/claude-opus-4-6 (Subscription primary)
693
+ 2. glm/glm-4.7 (Cheap backup, $0.6/1M)
694
+ 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
695
+
696
+ Use in CLI: premium-coding
697
+ ```
698
+
699
+ ### Eksempel 2: Kun gratis (nullkostnad)
700
+
701
+ ```
702
+ Name: free-combo
703
+ Models:
704
+ 1. gc/gemini-3-flash-preview (180K free/month)
705
+ 2. if/kimi-k2-thinking (unlimited)
706
+ 3. qw/qwen3-coder-plus (unlimited)
707
+
708
+ Cost: $0 forever!
709
+ ```
710
+
711
+ </details>
712
+
713
+ <details>
714
+ <summary><b>🔧 CLI-integrasjon</b></summary>
715
+
716
+ ### Markør IDE
717
+
718
+ ```
719
+ Settings → Models → Advanced:
720
+ OpenAI API Base URL: http://localhost:20128/v1
721
+ OpenAI API Key: [from OmniRoute dashboard]
722
+ Model: cc/claude-opus-4-6
723
+ ```
724
+
725
+ ### Claude Code
726
+
727
+ Bruk **CLI Tools**-siden i dashbordet for ett-klikks konfigurasjon, eller rediger `~/.claude/settings.json` manuelt.
728
+
729
+ ### Codex CLI
730
+
731
+ ```bash
732
+ export OPENAI_BASE_URL="http://localhost:20128"
733
+ export OPENAI_API_KEY="your-omniroute-api-key"
734
+
735
+ codex "your prompt"
736
+ ```
737
+
738
+ ### OpenClaw
739
+
740
+ **Alternativ 1 – Dashboard (anbefalt):**
741
+
742
+ ```
743
+ Dashboard → CLI Tools → OpenClaw → Select Model → Apply
744
+ ```
745
+
746
+ **Alternativ 2 — Manuell:** Rediger `~/.openclaw/openclaw.json`:
747
+
748
+ ```json
749
+ {
750
+ "models": {
751
+ "providers": {
752
+ "omniroute": {
753
+ "baseUrl": "http://127.0.0.1:20128/v1",
754
+ "apiKey": "sk_omniroute",
755
+ "api": "openai-completions"
756
+ }
757
+ }
758
+ }
759
+ }
760
+ ```
761
+
762
+ > **Merk:** OpenClaw fungerer bare med lokale OmniRoute. Bruk `127.0.0.1` i stedet for `localhost` for å unngå problemer med IPv6-oppløsning.
763
+
764
+ ### Cline / Fortsett / RooCode
765
+
766
+ ```
767
+ Settings → API Configuration:
768
+ Provider: OpenAI Compatible
769
+ Base URL: http://localhost:20128/v1
770
+ API Key: [from OmniRoute dashboard]
771
+ Model: if/kimi-k2-thinking
772
+ ```
773
+
774
+ </details>
775
+
776
+ ---
777
+
778
+ ## 📊 Tilgjengelige modeller
779
+
780
+ <details>
781
+ <summary><b>Se alle tilgjengelige modeller</b></summary>
782
+
783
+ **Claude-kode (`cc/`)** - Pro/Max:
784
+
785
+ - `cc/claude-opus-4-6`
786
+ - `cc/claude-sonnet-4-5-20250929`
787
+ - `cc/claude-haiku-4-5-20251001`
788
+
789
+ **Kodex (`cx/`)** - Pluss/Proff:
790
+
791
+ - `cx/gpt-5.2-codex`
792
+ - `cx/gpt-5.1-codex-max`
793
+
794
+ **Gemini CLI (`gc/`)** - GRATIS:
795
+
796
+ - `gc/gemini-3-flash-preview`
797
+ - `gc/gemini-2.5-pro`
798
+
799
+ **GitHub Copilot (`gh/`)**:
800
+
801
+ - `gh/gpt-5`
802
+ - `gh/claude-4.5-sonnet`
803
+
804
+ **NVIDIA NIM (`nvidia/`)** - GRATIS kreditter:
805
+
806
+ - `nvidia/llama-3.3-70b-instruct`
807
+ - `nvidia/mistral-7b-instruct`
808
+ - 50+ flere modeller på [build.nvidia.com](https://build.nvidia.com)
809
+
810
+ **GLM (`glm/`)** - $0,6/1M:
811
+
812
+ - `glm/glm-4.7`
813
+
814
+ **MiniMax (`minimax/`)** - $0,2/1M:
815
+
816
+ - `minimax/MiniMax-M2.1`
817
+
818
+ **iFlow (`if/`)** - GRATIS:
819
+
820
+ - `if/kimi-k2-thinking`
821
+ - `if/qwen3-coder-plus`
822
+ - `if/deepseek-r1`
823
+ - `if/glm-4.7`
824
+ - `if/minimax-m2`
825
+
826
+ **Qwen (`qw/`)** - GRATIS:
827
+
828
+ - `qw/qwen3-coder-plus`
829
+ - `qw/qwen3-coder-flash`
830
+
831
+ **Kiro (`kr/`)** - GRATIS:
832
+
833
+ - `kr/claude-sonnet-4.5`
834
+ - `kr/claude-haiku-4.5`
835
+
836
+ **OpenRouter (`or/`)** - 100+ modeller:
837
+
838
+ - `or/anthropic/claude-4-sonnet`
839
+ - `or/google/gemini-2.5-pro`
840
+ - Alle modeller fra [openrouter.ai/models](https://openrouter.ai/models)
841
+
842
+ </details>
843
+
844
+ ---
845
+
846
+ ## 🧪 Evalueringer (evalueringer)
847
+
848
+ OmniRoute inkluderer et innebygd evalueringsrammeverk for å teste LLM-responskvaliteten mot et gyldent sett. Få tilgang til den via **Analytics → Evals** i dashbordet.
849
+
850
+ ### Innebygd gyldent sett
851
+
852
+ Det forhåndsinstallerte "OmniRoute Golden Set" inneholder 10 testcases som dekker:
853
+
854
+ - Hilsen, matematikk, geografi, kodegenerering
855
+ - JSON-formatoverholdelse, oversettelse, markdown
856
+ - Sikkerhetsavslag (skadelig innhold), telling, boolsk logikk
857
+
858
+ ### Evalueringsstrategier
859
+
860
+ | Strategi | Beskrivelse | Eksempel |
861
+ | ---------- | --------------------------------------------------------------------- | -------------------------------- |
862
+ | `exact` | Utdata må samsvare nøyaktig med | `"4"` |
863
+ | `contains` | Utdata må inneholde understreng (uavhengig av store og små bokstaver) | `"Paris"` |
864
+ | `regex` | Utdata må samsvare med regulært uttrykksmønster | `"1.*2.*3"` |
865
+ | `custom` | Egendefinert JS-funksjon returnerer true/false | `(output) => output.length > 10` |
866
+
867
+ ---
868
+
869
+ ## 🔐 OAuth em Servidor Remoto (Ekstern OAuth-oppsett)
870
+
871
+ <a name="oauth-em-servidor-remoto"></a>
872
+
873
+ > **⚠️ VIKTIG for bruk av OmniRoute med VPS/Docker/server-fjernkontroll**
874
+
875
+ ### Hva med OAuth gjør Antigravity / Gemini CLI falha em servidores remotos?
876
+
877
+ Os testedores **Antigravity** og **Gemini CLI** usam **Google OAuth 2.0** for autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console do aplicativo.
878
+
879
+ Som credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (eks: `https://omniroute.meuservidor.com`), o Google avviser autenticação com:
880
+
881
+ ```
882
+ Error 400: redirect_uri_mismatch
883
+ ```
884
+
885
+ ### Løsning: Konfigurer OAuth-tilbehør
886
+
887
+ Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com en URI for seu service.
888
+
889
+ #### Passo a passo
890
+
891
+ **1. Tilgang til Google Cloud Console**
892
+
893
+ Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
894
+
895
+ **2. Crie um novo OAuth 2.0 Client ID**
896
+
897
+ - Klikk dem **"+ Opprett legitimasjon"** → **"OAuth-klient-ID"**
898
+ - Tipo de aplicativo: **"Nettapplikasjon"**
899
+ - Navn: escolha qualquer nome (eks.: `OmniRoute Remote`)
900
+
901
+ **3. Adicione som autorisert omdirigerings-URI**
902
+
903
+ Ingen campo **"Authorized redirect URIs"**, adicione:
904
+
905
+ ```
906
+ https://seu-servidor.com/callback
907
+ ```
908
+
909
+ > Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`).
910
+
911
+ **4. Salve e copy as credenciais**
912
+
913
+ Após criar, o Google mostrará o **Client ID** e o **Client Secret**.
914
+
915
+ **5. Konfigurer som variáveis de ambiente**
916
+
917
+ No seu `.env` (ou nas variáveis de ambiente do Docker):
918
+
919
+ ```bash
920
+ # Para Antigravity:
921
+ ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
922
+ ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
923
+
924
+ # Para Gemini CLI:
925
+ GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
926
+ GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
927
+ GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
928
+ ```
929
+
930
+ **6. Reinicie o OmniRoute**
931
+
932
+ ```bash
933
+ # Se usando npm:
934
+ npm run dev
935
+
936
+ # Se usando Docker:
937
+ docker restart omniroute
938
+ ```
939
+
940
+ **7. Tente conectar novamente**
941
+
942
+ Dashboard → Leverandører → Antigravity (ou Gemini CLI) → OAuth
943
+
944
+ Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e autenticação funcionará.
945
+
946
+ ---
947
+
948
+ ### Midlertidig midlertidig løsning (som konfigureres på forhånd)
949
+
950
+ Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
951
+
952
+ 1. O OmniRoute abrirá en URL fra autorização til Google
953
+ 2. Após você autorizar, o Google tentará redirecionar for `localhost` (que falha no servidor remoto)
954
+ 3. **Kopier en URL fullført** da barra de endereço do seu nettleseren (mesmo que a página não carregue)
955
+ 4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
956
+ 5. Klikk på **"Koble til"**
957
+
958
+ > Este workaround funciona porque or código de autorização na URL é válido independente do redirect ter carregado or não.
959
+
960
+ ---
961
+
962
+ ## 🐛 Feilsøking
963
+
964
+ <details>
965
+ <summary><b>Klikk for å utvide feilsøkingsveiledningen</b></summary>
966
+
967
+ **«Språkmodellen ga ikke meldinger»**
968
+
969
+ - Leverandørkvoten er oppbrukt → Sjekk dashboardkvotesporing
970
+ - Løsning: Bruk kombinasjonsalternativ eller bytt til et billigere nivå
971
+
972
+ **Satsbegrensning**
973
+
974
+ - Abonnementskvote ut → Fallback til GLM/MiniMax
975
+ - Legg til kombinasjon: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
976
+
977
+ **OAuth-token er utløpt**
978
+
979
+ - Automatisk oppdatering av OmniRoute
980
+ - Hvis problemene vedvarer: Dashboard → Leverandør → Koble til på nytt
981
+
982
+ **Høye kostnader**
983
+
984
+ - Sjekk bruksstatistikk i Dashboard → Kostnader
985
+ - Bytt primærmodell til GLM/MiniMax
986
+ - Bruk gratis nivå (Gemini CLI, iFlow) for ikke-kritiske oppgaver
987
+
988
+ **Dashboard åpnes på feil port**
989
+
990
+ - Sett `PORT=20128` og `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
991
+
992
+ **Skysynkroniseringsfeil**
993
+
994
+ - Bekreft at `BASE_URL` peker på løpeforekomsten din
995
+ - Bekreft `CLOUD_URL` poeng til det forventede skyendepunktet
996
+ - Hold `NEXT_PUBLIC_*` verdier på linje med verdiene på tjenersiden
997
+
998
+ **Første pålogging fungerer ikke**
999
+
1000
+ - Sjekk `INITIAL_PASSWORD` i `.env`
1001
+ - Hvis det ikke er angitt, er reservepassordet `123456`
1002
+
1003
+ **Ingen forespørselslogger**
1004
+
1005
+ - Sett `ENABLE_REQUEST_LOGS=true` i `.env`
1006
+
1007
+ **Test viser «Ugyldig» for OpenAI-kompatible leverandører**
1008
+
1009
+ - Mange leverandører avslører ikke et `/models`-endepunkt
1010
+ - OmniRoute v1.0.6+ inkluderer reservevalidering via chatfullføringer
1011
+ - Sørg for at basis-URL inkluderer suffikset `/v1`
1012
+
1013
+ </details>
1014
+
1015
+ ---
1016
+
1017
+ ## 🛠️ Tech Stack
1018
+
1019
+ - **Kjøretid**: Node.js 18–22 LTS (⚠️ Node.js 24+ støttes **ikke** — `better-sqlite3` native binærfiler er inkompatible)
1020
+ - **Språk**: TypeScript 5.9 — **100 % TypeScript** på tvers av `src/` og `open-sse/` (v1.0.6)
1021
+ - **Rammeverk**: Next.js 16 + React 19 + Tailwind CSS 4
1022
+ - **Database**: LowDB (JSON) + SQLite (domenetilstand + proxy-logger)
1023
+ - **Streaming**: Server-sendte hendelser (SSE)
1024
+ - **Auth**: OAuth 2.0 (PKCE) + JWT + API-nøkler
1025
+ - **Test**: Node.js-testløper (368+ enhetstester)
1026
+ - **CI/CD**: GitHub-handlinger (automatisk npm-publisering + Docker Hub ved utgivelse)
1027
+ - **Nettsted**: [omniroute.online](https://omniroute.online)
1028
+ - **Pakke**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
1029
+ - **Dokker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
1030
+ - **Resiliens**: Strømbryter, eksponentiell backoff, anti-trdnende flokk, TLS-spoofing
1031
+
1032
+ ---
1033
+
1034
+ ## 📖 Dokumentasjon
1035
+
1036
+ | Dokument | Beskrivelse |
1037
+ | -------------------------------------------- | ---------------------------------------------------------- |
1038
+ | [User Guide](docs/USER_GUIDE.md) | Leverandører, kombinasjoner, CLI-integrasjon, distribusjon |
1039
+ | [API Reference](docs/API_REFERENCE.md) | Alle endepunkter med eksempler |
1040
+ | [Troubleshooting](docs/TROUBLESHOOTING.md) | Vanlige problemer og løsninger |
1041
+ | [Architecture](docs/ARCHITECTURE.md) | Systemarkitektur og innvendig |
1042
+ | [Contributing](CONTRIBUTING.md) | Utviklingsoppsett og retningslinjer |
1043
+ | [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-spesifikasjon |
1044
+ | [Security Policy](SECURITY.md) | Sårbarhetsrapportering og sikkerhetspraksis |
1045
+ | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Komplett guide: VM + nginx + Cloudflare-oppsett |
1046
+ | [Features Gallery](docs/FEATURES.md) | Visuell dashbordomvisning med skjermbilder |
1047
+
1048
+ ### 📸 Forhåndsvisning av dashbord
1049
+
1050
+ <details>
1051
+ <summary><b>Klikk for å se skjermbilder av dashbordet</b></summary>
1052
+
1053
+ | Side | Skjermbilde |
1054
+ | ----------------- | ------------------------------------------------- |
1055
+ | **Tilbydere** | ![Providers](docs/screenshots/01-providers.png) |
1056
+ | **Komboer** | ![Combos](docs/screenshots/02-combos.png) |
1057
+ | **Analyse** | ![Analytics](docs/screenshots/03-analytics.png) |
1058
+ | **Helse** | ![Health](docs/screenshots/04-health.png) |
1059
+ | **Oversetter** | ![Translator](docs/screenshots/05-translator.png) |
1060
+ | **Innstillinger** | ![Settings](docs/screenshots/06-settings.png) |
1061
+ | **CLI-verktøy** | ![CLI Tools](docs/screenshots/07-cli-tools.png) |
1062
+ | **Brukslogger** | ![Usage](docs/screenshots/08-usage.png) |
1063
+ | **Endepunkt** | ![Endpoint](docs/screenshots/09-endpoint.png) |
1064
+
1065
+ </details>
1066
+
1067
+ ---
1068
+
1069
+ ## 🗺️ Veikart
1070
+
1071
+ OmniRoute har **210+ funksjoner planlagt** på tvers av flere utviklingsfaser. Her er nøkkelområdene:
1072
+
1073
+ | Kategori | Planlagte funksjoner | Høydepunkter |
1074
+ | -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------- |
1075
+ | 🧠 **Routing og intelligens** | 25+ | Ruting med lavest ventetid, tag-basert ruting, forhåndskontroll av kvoter, valg av P2C-konto |
1076
+ | 🔒 **Sikkerhet og overholdelse** | 20+ | SSRF-herding, tilsløring av legitimasjon, hastighetsgrense per endepunkt, styringsnøkkelomfang |
1077
+ | 📊 **Observerbarhet** | 15+ | OpenTelemetry-integrasjon, kvoteovervåking i sanntid, kostnadssporing per modell |
1078
+ | 🔄 **Tilbyderintegrasjoner** | 20+ | Dynamisk modellregister, leverandørnedkjøling, multi-konto Codex, Copilot-kvoteparsing |
1079
+ | ⚡ **Ytelse** | 15+ | Dobbelt hurtigbufferlag, promptbuffer, svarbuffer, streaming keepalive, batch API |
1080
+ | 🌐 **Økosystem** | 10+ | WebSocket API, config hot-reload, distribuert config store, kommersiell modus |
1081
+
1082
+ ### 🔜 Kommer snart
1083
+
1084
+ - 🔗 **OpenCode Integration** — Innebygd leverandørstøtte for OpenCode AI-kodings-IDE
1085
+ - 🔗 **TRAE-integrasjon** — Full støtte for utviklingsrammeverket for TRAE AI
1086
+ - 📦 **Batch API** — Asynkron batchbehandling for bulkforespørsler
1087
+ - 🎯 **Tag-basert ruting** — Ruteforespørsler basert på tilpassede tagger og metadata
1088
+ - 💰 **Laveste kostnadsstrategi** — Velg automatisk den billigste tilgjengelige leverandøren
1089
+
1090
+ > 📝 Full funksjonsspesifikasjoner tilgjengelig i [link](docs/new-features/) (217 detaljerte spesifikasjoner)
1091
+
1092
+ ---
1093
+
1094
+ ## 📧 Støtte
1095
+
1096
+ > 💬 **Bli med i fellesskapet vårt!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Få hjelp, del tips og hold deg oppdatert.
1097
+
1098
+ - **Nettsted**: [omniroute.online](https://omniroute.online)
1099
+ - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
1100
+ - **Problemer**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
1101
+ - **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
1102
+ - **Originalt prosjekt**: [9router by decolua](https://github.com/decolua/9router)
1103
+
1104
+ ---
1105
+
1106
+ ## 👥 Bidragsytere
1107
+
1108
+ [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
1109
+
1110
+ ### Hvordan bidra
1111
+
1112
+ 1. Fordel depotet
1113
+ 2. Lag din funksjonsgren (`git checkout -b feature/amazing-feature`)
1114
+ 3. Bekreft endringene dine (`git commit -m 'Add amazing feature'`)
1115
+ 4. Skyv til grenen (`git push origin feature/amazing-feature`)
1116
+ 5. Åpne en pull-forespørsel
1117
+
1118
+ Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer.
1119
+
1120
+ ### Slipper en ny versjon
1121
+
1122
+ ```bash
1123
+ # Create a release — npm publish happens automatically
1124
+ gh release create v1.0.6 --title "v1.0.6" --generate-notes
1125
+ ```
1126
+
1127
+ ---
1128
+
1129
+ ## 📊 Stjernehistorie
1130
+
1131
+ <a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
1132
+ <picture>
1133
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
1134
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1135
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
1136
+ </picture>
1137
+ </a>
1138
+
1139
+ ---
1140
+
1141
+ ## 🙏 Anerkjennelser
1142
+
1143
+ Spesiell takk til **[9router](https://github.com/decolua/9router)** av **[decolua](https://github.com/decolua)** — det originale prosjektet som inspirerte denne gaffelen. OmniRoute bygger på det utrolige grunnlaget med tilleggsfunksjoner, multimodale APIer og en full TypeScript-omskriving.
1144
+
1145
+ Spesiell takk til **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — den originale Go-implementeringen som inspirerte denne JavaScript-porten.
1146
+
1147
+ ---
1148
+
1149
+ ## 📄 Lisens
1150
+
1151
+ MIT-lisens - se [LICENSE](LICENSE) for detaljer.
1152
+
1153
+ ---
1154
+
1155
+ ---
1156
+
1157
+ ## 🇧🇷 OmniRoute — Gateway de IA Gratuito
1158
+
1159
+ <a name="-omniroute--gateway-de-ia-gratuito"></a>
1160
+
1161
+ ### Nunca pare de codar. Roteamento inteligente for **modeller av IA GRATUITOS og de baixo custo** com reserve automático.
1162
+
1163
+ _Seu proxy universal de API — et endepunkt, 36+ tester, null nedetid._
1164
+
1165
+ ### 🌐 Internacionalização (i18n)
1166
+
1167
+ O dashbordet for OmniRoute støtter **multiplos idiomas**. Atualmente disponível em:
1168
+
1169
+ | Idioma | Kode | Status |
1170
+ | --------------------- | ------- | ----------- |
1171
+ | 🇺🇸 Engelsk | `en` | ✅ Komplett |
1172
+ | 🇧🇷 Português (Brasil) | `pt-BR` | ✅ Komplett |
1173
+
1174
+ **Para trocar o idioma:** Clique no selector de idioma (🇺🇸 EN) no header do dashboard → selection o idioma desejado.
1175
+
1176
+ **Tillegg et nytt uttrykk:**
1177
+
1178
+ 1. Crie `src/i18n/messages/{codigo}.json` baseado em `en.json`
1179
+ 2. Adicione o código em `src/i18n/config.ts` → `LOCALES` og `LANGUAGES`
1180
+ 3. Reinicie o servidor
1181
+
1182
+ ### ⚡ Início Rápido
1183
+
1184
+ ```bash
1185
+ # Instalar via npm
1186
+ npx omniroute@latest
1187
+
1188
+ # Ou rodar do código-fonte
1189
+ cp .env.example .env
1190
+ npm install
1191
+ PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
1192
+ ```
1193
+
1194
+ ### 🐳 Docker
1195
+
1196
+ ```bash
1197
+ docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest
1198
+ ```
1199
+
1200
+ ### 🔑 Funcionalidades Principais
1201
+
1202
+ - **36+ provedores de IA** - Claude, GPT, Gemini, Llama, Qwen, DeepSeek, e mais
1203
+ - **Roteamento inteligente** — Fallback automático entre provedores
1204
+ - **Tradução de formato** — OpenAI ↔ Claude ↔ Gemini automaticamente
1205
+ - **Multi-conta** — Multiplas-innhold for testing com seleção inteligente
1206
+ - **Cache semântico** — Reduz custos e latência
1207
+ - **OAuth automático** — Tokens renovam automaticamente
1208
+ - **Personlig kombinasjoner** — 6 estratégias de roteamento
1209
+ - **Dashboard komplett** — Monitoramento, logger, analyser, konfigurasjoner
1210
+ - **CLI Tools** — Konfigurer Claude Code, Codex, Cursor, Cline com um clique
1211
+ - **100 % TypeScript** — Código limpo e tipado
1212
+
1213
+ ### 📖 Dokumentasjon
1214
+
1215
+ | Documento | Beskrivelse |
1216
+ | ----------------------------------------------- | -------------------------------------------- |
1217
+ | [Guia do Usuário](docs/USER_GUIDE.md) | Provedores, combos, CLI, distribuere |
1218
+ | [Referência da API](docs/API_REFERENCE.md) | Todos os endepunkter med eksempler |
1219
+ | [Solução de Problemas](docs/TROUBLESHOOTING.md) | Problemas comuns e soluções |
1220
+ | [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura e internos do sistema |
1221
+ | [Contribuição](CONTRIBUTING.md) | Oppsett av desenvolvimento og retningslinjer |
1222
+ | [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | Fullfør: VM + nginx + Cloudflare |
1223
+
1224
+ ### 📧 Støtte
1225
+
1226
+ > 💬 **Entre para a comunidade!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Tire dúvidas, compartilhe dicas e fique atualizado.
1227
+
1228
+ - **Nettsted**: [omniroute.online](https://omniroute.online)
1229
+ - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
1230
+ - **Problemer**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
1231
+
1232
+ ---
1233
+
1234
+ <div align="center">
1235
+ <sub>Bygget med ❤️ for utviklere som koder 24/7</sub>
1236
+ <br/>
1237
+ <sub><a href="https://omniroute.online">omniroute.online</a></sub>
1238
+ </div>