omniroute 1.4.11 → 1.6.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 (377) 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 +47 -29
  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 +34 -34
  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.js +1 -1
  129. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  131. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  133. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  135. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  137. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/init/route.js +1 -1
  155. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/models/route.js +1 -1
  163. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  165. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/providers/route.js +1 -1
  187. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/settings/route.js +1 -1
  202. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  209. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  219. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  223. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  225. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  229. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  231. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  233. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  235. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  240. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  241. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  243. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  244. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/callback/page.js +2 -2
  247. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  248. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  249. package/app/.next/server/app/docs/page.js +2 -2
  250. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  251. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  252. package/app/.next/server/app/forbidden/page.js +2 -2
  253. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  254. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  255. package/app/.next/server/app/forgot-password/page.js +2 -2
  256. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  257. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/landing/page.js +2 -2
  259. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  260. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/login/page.js +2 -2
  262. package/app/.next/server/app/login/page.js.nft.json +1 -1
  263. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/page.js +1 -1
  265. package/app/.next/server/app/page.js.nft.json +1 -1
  266. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  267. package/app/.next/server/app/privacy/page.js +2 -2
  268. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  269. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/terms/page.js +2 -2
  271. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  272. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  273. package/app/.next/server/app-paths-manifest.json +34 -34
  274. package/app/.next/server/chunks/1248.js +1 -0
  275. package/app/.next/server/chunks/{3994.js → 1465.js} +2 -2
  276. package/app/.next/server/chunks/1526.js +1 -0
  277. package/app/.next/server/chunks/1584.js +1 -0
  278. package/app/.next/server/chunks/1623.js +1 -0
  279. package/app/.next/server/chunks/1880.js +1 -0
  280. package/app/.next/server/chunks/1960.js +1 -1
  281. package/app/.next/server/chunks/1990.js +1 -1
  282. package/app/.next/server/chunks/2214.js +1 -0
  283. package/app/.next/server/chunks/2372.js +1 -0
  284. package/app/.next/server/chunks/2594.js +1 -0
  285. package/app/.next/server/chunks/3371.js +1 -0
  286. package/app/.next/server/chunks/3498.js +1 -1
  287. package/app/.next/server/chunks/3911.js +1 -0
  288. package/app/.next/server/chunks/438.js +1 -0
  289. package/app/.next/server/chunks/496.js +1 -0
  290. package/app/.next/server/chunks/5047.js +1 -0
  291. package/app/.next/server/chunks/5094.js +1 -0
  292. package/app/.next/server/chunks/5097.js +1 -0
  293. package/app/.next/server/chunks/5393.js +2 -0
  294. package/app/.next/server/chunks/5521.js +1 -0
  295. package/app/.next/server/chunks/5945.js +1 -0
  296. package/app/.next/server/chunks/6118.js +1 -0
  297. package/app/.next/server/chunks/6928.js +1 -0
  298. package/app/.next/server/chunks/6930.js +1 -0
  299. package/app/.next/server/chunks/7011.js +1 -0
  300. package/app/.next/server/chunks/708.js +1 -0
  301. package/app/.next/server/chunks/7650.js +1 -0
  302. package/app/.next/server/chunks/8220.js +1 -0
  303. package/app/.next/server/chunks/8464.js +1 -0
  304. package/app/.next/server/chunks/8706.js +1 -0
  305. package/app/.next/server/chunks/8976.js +1 -0
  306. package/app/.next/server/chunks/9119.js +1 -0
  307. package/app/.next/server/chunks/944.js +1 -0
  308. package/app/.next/server/chunks/9824.js +1 -1
  309. package/app/.next/server/chunks/9837.js +1 -0
  310. package/app/.next/server/instrumentation.js +1 -1
  311. package/app/.next/server/pages/500.html +2 -2
  312. package/app/.next/server/server-reference-manifest.js +1 -1
  313. package/app/.next/server/server-reference-manifest.json +1 -1
  314. package/app/.next/static/chunks/{6458-085536744d592424.js → 1149-fefe7f95f0e9842f.js} +1 -1
  315. package/app/.next/static/chunks/{5846-19c878280decbd16.js → 5846-4d550ce248336a0a.js} +1 -1
  316. package/app/.next/static/chunks/{782-5e138760b7f7bf48.js → 8055-5844ff783b2e8a99.js} +3 -3
  317. package/app/.next/static/chunks/{993-e3050ebfd4f5032f.js → 993-cf9fe6c017bc7e67.js} +3 -3
  318. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-52f76c7c91444ec2.js +1 -0
  319. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-1dd4d0c348a7b0a6.js +1 -0
  320. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +1 -0
  321. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-11e68927df2ceb77.js +15 -0
  322. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-ede2315b6918315e.js → page-6abed29d64c46388.js} +1 -1
  323. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-3ed2a7685adf9b91.js +1 -0
  324. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-1420c3ca376f1585.js +1 -0
  325. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-9a6519bf1468f16e.js +1 -0
  326. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-f4a2d6d07df5ddc4.js +1 -0
  327. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-6ee69634597daee0.js → page-833d24f322a20f5a.js} +1 -1
  328. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-d424641c7e428be9.js +1 -0
  329. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-388840686801f3f5.js +1 -0
  330. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c8ffb212f855704.js +1 -0
  331. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-31cdb6e15134d8c2.js +1 -0
  332. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-1f022385b812b987.js +1 -0
  333. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-1393d4935fc087cf.js +1 -0
  334. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-77158451270c1852.js → page-f10a8d4bb8236913.js} +1 -1
  335. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-83b07523f81d6282.js +4 -0
  336. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9cc99ab874fc36e7.js +1 -0
  337. package/app/.next/static/chunks/app/(dashboard)/{layout-b23c2c5427e04dcf.js → layout-00d5d56af65098a9.js} +1 -1
  338. package/app/.next/static/chunks/app/callback/page-585a53f7dc6a30f1.js +1 -0
  339. package/app/.next/static/chunks/app/docs/page-2fe9dcbeb3f738c0.js +1 -0
  340. package/app/.next/static/chunks/app/forbidden/{page-4a39fedc08aaaf55.js → page-df886dfa2d5bd9fa.js} +1 -1
  341. package/app/.next/static/chunks/app/forgot-password/page-2a495f0b0c653ab4.js +1 -0
  342. package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +1 -0
  343. package/app/.next/static/chunks/app/login/page-121c612ee459e7c2.js +1 -0
  344. package/app/.next/static/chunks/app/privacy/page-2fe9dcbeb3f738c0.js +1 -0
  345. package/app/.next/static/chunks/app/terms/page-2fe9dcbeb3f738c0.js +1 -0
  346. package/app/.next/static/css/6f101b114a4a7286.css +1 -0
  347. package/app/package.json +3 -3
  348. package/bin/omniroute.mjs +27 -14
  349. package/package.json +3 -3
  350. package/app/.next/server/chunks/1259.js +0 -2
  351. package/app/.next/server/chunks/4509.js +0 -1
  352. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a50474b6ebdf468a.js +0 -1
  353. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-d806e4f28c15636a.js +0 -1
  354. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-27bc511cf3930e1e.js +0 -1
  355. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ad885fdf9806e9a6.js +0 -15
  356. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-08f3ed204d01b6a0.js +0 -1
  357. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-6e4f3ca7ac9778be.js +0 -1
  358. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-8725f1a181e558a3.js +0 -1
  359. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-fbe1442b61df950a.js +0 -1
  360. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-931fa0c45dca76c9.js +0 -1
  361. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-04bc41f9e9de17ef.js +0 -1
  362. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6b6d62c5872aee46.js +0 -1
  363. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-2dc2a865e90681dd.js +0 -1
  364. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-ac85ce5066cd9044.js +0 -1
  365. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-88cac9e6f2fbe335.js +0 -1
  366. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-b351778975cb8622.js +0 -4
  367. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-f0809c7842e4f5b4.js +0 -1
  368. package/app/.next/static/chunks/app/callback/page-e439cd5a287000d8.js +0 -1
  369. package/app/.next/static/chunks/app/docs/page-8f74097544a61b9d.js +0 -1
  370. package/app/.next/static/chunks/app/forgot-password/page-a440e0c1675842bf.js +0 -1
  371. package/app/.next/static/chunks/app/landing/page-09741814aaca7548.js +0 -1
  372. package/app/.next/static/chunks/app/login/page-164f6b6b41167c5a.js +0 -1
  373. package/app/.next/static/chunks/app/privacy/page-8f74097544a61b9d.js +0 -1
  374. package/app/.next/static/chunks/app/terms/page-8f74097544a61b9d.js +0 -1
  375. package/app/.next/static/css/e90887a86e63903f.css +0 -1
  376. /package/app/.next/static/{g7Mie-iq39oZ7ts610YtL → 8-doeVY8E2CPMK7rYufd5}/_buildManifest.js +0 -0
  377. /package/app/.next/static/{g7Mie-iq39oZ7ts610YtL → 8-doeVY8E2CPMK7rYufd5}/_ssgManifest.js +0 -0
package/README.id.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 — Gerbang AI Gratis
5
+
6
+ 🌐 **[English](#-omniroute--the-free-ai-gateway)** | **[Português (BR)](#-omniroute--gateway-de-ia-gratuito)**
7
+
8
+ ### Jangan pernah berhenti membuat kode. Perutean cerdas ke **model AI GRATIS & berbiaya rendah** dengan fallback otomatis.
9
+
10
+ _Proksi API universal Anda — satu titik akhir, 36+ penyedia, tanpa waktu henti._
11
+
12
+ **Penyelesaian Obrolan • Penyematan • Pembuatan Gambar • Audio • Pemeringkatan Ulang • 100% TypeScript**
13
+
14
+ ---
15
+
16
+ ### 🤖 Penyedia AI gratis untuk agen coding favorit Anda
17
+
18
+ _Hubungkan alat IDE atau CLI apa pun yang didukung AI melalui OmniRoute — gerbang API gratis untuk pengkodean tanpa batas._
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>📡 Semua agen terhubung melalui <code>http://localhost:20128/v1</code> atau <code>http://cloud.omniroute.online/v1</code> — satu konfigurasi, model tak terbatas, dan kuota</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
+ ## 🤔 Mengapa OmniRoute?
116
+
117
+ **Berhenti membuang-buang uang dan mencapai batas:**
118
+
119
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Kuota berlangganan habis tanpa terpakai setiap bulannya
120
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Batas kecepatan menghentikan Anda di tengah coding
121
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> API mahal ($20-50/bulan per penyedia)
122
+ - <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Peralihan antar penyedia secara manual
123
+
124
+ **OmniRoute memecahkan masalah ini:**
125
+
126
+ - ✅ **Maksimalkan langganan** - Lacak kuota, gunakan setiap bit sebelum menyetel ulang
127
+ - ✅ **Pengembalian otomatis** - Berlangganan → Kunci API → Murah → Gratis, tanpa downtime
128
+ - ✅ **Multi-akun** - Round-robin antar akun per penyedia
129
+ - ✅ **Universal** - Bekerja dengan Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, alat CLI apa pun
130
+
131
+ ---
132
+
133
+ ## 🔄 Cara Kerjanya
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
+ ## ⚡ Mulai Cepat
163
+
164
+ **1. Instal secara global:**
165
+
166
+ ```bash
167
+ npm install -g omniroute
168
+ omniroute
169
+ ```
170
+
171
+ 🎉 Dasbor terbuka di `http://localhost:20128`
172
+
173
+ | Perintah | Deskripsi |
174
+ | ----------------------- | --------------------------------- |
175
+ | `omniroute` | Mulai server (port default 20128) |
176
+ | `omniroute --port 3000` | Gunakan port khusus |
177
+ | `omniroute --no-open` | Jangan buka otomatis browser |
178
+ | `omniroute --help` | Tampilkan bantuan |
179
+
180
+ **2. Hubungkan penyedia GRATIS:**
181
+
182
+ Dasbor → Penyedia → Hubungkan **Kode Claude** atau **Antigravitasi** → Login OAuth → Selesai!
183
+
184
+ **3. Gunakan di alat CLI Anda:**
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
+ **Selesai!** Mulai coding dengan model AI GRATIS.
194
+
195
+ **Alternatif — dijalankan dari sumber:**
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
+ ## 🐳 buruh pelabuhan
206
+
207
+ OmniRoute tersedia sebagai image Docker publik di [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
208
+
209
+ **Lari cepat:**
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
+ **Dengan file lingkungan:**
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
+ **Menggunakan Docker Tulis:**
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
+ | Gambar | Tandai | Ukuran | Deskripsi |
246
+ | ------------------------ | -------- | ------- | -------------------- |
247
+ | `diegosouzapw/omniroute` | `latest` | ~250 MB | Rilis stabil terbaru |
248
+ | `diegosouzapw/omniroute` | `1.0.3` | ~250 MB | Versi saat ini |
249
+
250
+ ---
251
+
252
+ ## 💰 Sekilas tentang Harga
253
+
254
+ | Tingkat | Penyedia | Biaya | Reset Kuota | Terbaik Untuk |
255
+ | ------------------- | ----------------- | ------------------------- | ------------------------- | --------------------------- |
256
+ | **💳 BERLANGGANAN** | Kode Claude (Pro) | $20/bln | 5 jam + mingguan | Sudah berlangganan |
257
+ | | Kodeks (Plus/Pro) | $20-200/bln | 5 jam + mingguan | Pengguna OpenAI |
258
+ | | CLI Gemini | **GRATIS** | 180K/bln + 1K/hari | Setiap orang! |
259
+ | | Kopilot GitHub | $10-19/bln | Bulanan | Pengguna GitHub |
260
+ | **🔑 KUNCI API** | NVIDIA NIM | **GRATIS** (1000 sks) | Satu kali | Pengujian tingkat gratis |
261
+ | | Pencarian Dalam | Bayar per penggunaan | Tidak ada | Harga/kualitas terbaik |
262
+ | | Bagus | Tingkat gratis + berbayar | Tarif terbatas | Inferensi ultra-cepat |
263
+ | | xAI (Grok) | Bayar per penggunaan | Tidak ada | Model Grok |
264
+ | | Mistral | Tingkat gratis + berbayar | Tarif terbatas | AI Eropa |
265
+ | | BukaRouter | Bayar per penggunaan | Tidak ada | 100+ model |
266
+ | **💰 MURAH** | GLM-4.7 | $0,6/1 juta | Setiap hari pukul 10 pagi | Cadangan anggaran |
267
+ | | MiniMax M2.1 | $0,2/1 juta | 5 jam bergulir | Pilihan termurah |
268
+ | | Kimi K2 | $9/bln tetap | 10 juta token/bln | Biaya yang dapat diprediksi |
269
+ | **🆓 GRATIS** | iFlow | $0 | Tidak terbatas | 8 model gratis |
270
+ | | Qwen | $0 | Tidak terbatas | 3 model gratis |
271
+ | | Kiro | $0 | Tidak terbatas | Claude gratis |
272
+
273
+ **💡 Kiat Pro:** Mulai dengan Gemini CLI (gratis 180 ribu/bulan) + kombo iFlow (gratis tanpa batas) = ​​biaya $0!
274
+
275
+ ---
276
+
277
+ ## 🎯 Kasus Penggunaan
278
+
279
+ ### Kasus 1: "Saya berlangganan Claude Pro"
280
+
281
+ **Masalah:** Kuota habis tanpa terpakai, batas kecepatan selama coding berat
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
+ ### Kasus 2: "Saya ingin tanpa biaya"
294
+
295
+ **Masalah:** Tidak mampu berlangganan, memerlukan pengkodean AI yang andal
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
+ ### Kasus 3: "Saya memerlukan pengkodean 24/7, tanpa gangguan"
308
+
309
+ **Masalah:** Tenggat waktu, tidak mampu membayar downtime
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
+ ### Kasus 4: "Saya ingin AI GRATIS di OpenClaw"
323
+
324
+ **Masalah:** Membutuhkan asisten AI dalam aplikasi perpesanan, sepenuhnya 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
+ ## 💡 Fitur Utama
339
+
340
+ ### 🧠 Perutean & Kecerdasan Inti
341
+
342
+ | Fitur | Apa Fungsinya |
343
+ | ------------------------------------ | ---------------------------------------------------------------------------------- |
344
+ | 🎯 **Pengembalian 4 Tingkat Cerdas** | Rute otomatis: Berlangganan → Kunci API → Murah → Gratis |
345
+ | 📊 **Pelacakan Kuota Waktu Nyata** | Jumlah token langsung + setel ulang hitungan mundur per penyedia |
346
+ | 🔄 **Terjemahan Format** | OpenAI ↔ Claude ↔ Gemini ↔ Kursor ↔ Kiro mulus + sanitasi respons |
347
+ | 👥 **Dukungan Multi-Akun** | Banyak akun per penyedia dengan pilihan cerdas |
348
+ | 🔄 **Penyegaran Token Otomatis** | Token OAuth disegarkan secara otomatis dengan coba lagi |
349
+ | 🎨 **Kombo Khusus** | 6 strategi: isi dulu, round-robin, p2c, acak, paling jarang digunakan, hemat biaya |
350
+ | 🧩 **Model Khusus** | Tambahkan ID model apa pun ke penyedia mana pun |
351
+ | 🌐 **Router Wildcard** | Rutekan pola `provider/*` ke penyedia mana pun secara dinamis |
352
+ | 🧠 **Memikirkan Anggaran** | Mode passthrough, otomatis, kustom, dan adaptif untuk model penalaran |
353
+ | 💬 **Injeksi Perintah Sistem** | Perintah sistem global diterapkan di semua permintaan |
354
+ | 📄 **API Respons** | Dukungan penuh OpenAI Responses API (`/v1/responses`) untuk Codex |
355
+
356
+ ### 🎵 API Multi-Modal
357
+
358
+ | Fitur | Apa Fungsinya |
359
+ | -------------------------- | ------------------------------------------------------ |
360
+ | 🖼️ **Pembuatan Gambar** | `/v1/images/generations` — 4 penyedia, 9+ model |
361
+ | 📐 **Sematan** | `/v1/embeddings` — 6 penyedia, 9+ model |
362
+ | 🎤 **Transkripsi Audio** | `/v1/audio/transcriptions` — Kompatibel dengan bisikan |
363
+ | 🔊 **Teks-ke-Ucapan** | `/v1/audio/speech` — Sintesis audio multi-penyedia |
364
+ | 🛡️ **Moderasi** | `/v1/moderations` — Pemeriksaan keamanan konten |
365
+ | 🔀 **Pemeringkatan Ulang** | `/v1/rerank` — Pemeringkatan ulang relevansi dokumen |
366
+
367
+ ### 🛡️ Ketahanan & Keamanan
368
+
369
+ | Fitur | Apa Fungsinya |
370
+ | ------------------------------------ | ------------------------------------------------------------------------------------------ |
371
+ | 🔌 **Pemutus Arus** | Buka/tutup otomatis per penyedia dengan ambang batas yang dapat dikonfigurasi |
372
+ | 🛡️ **Kawanan Anti Guntur** | Batas kecepatan mutex + semaphore untuk penyedia kunci API |
373
+ | 🧠 **Cache Semantik** | Cache dua tingkat (tanda tangan + semantik) mengurangi biaya & latensi |
374
+ | ⚡ **Minta Idempotensi** | Jendela dedup 5 detik untuk permintaan duplikat |
375
+ | 🔒 **Spoofing Sidik Jari TLS** | Lewati deteksi bot berbasis TLS melalui wreq-js |
376
+ | 🌐 **Pemfilteran IP** | Daftar yang diizinkan/daftar blokir untuk kontrol akses API |
377
+ | 📊 **Batas Tarif yang Dapat Diedit** | RPM yang dapat dikonfigurasi, celah minimum, dan maks secara bersamaan pada tingkat sistem |
378
+ | 🛡 **Perlindungan Titik Akhir API** | Gerbang autentikasi + pemblokiran penyedia untuk titik akhir `/models` |
379
+ | 🔒 **Visibilitas Proksi** | Lencana berkode warna: 🟢 global, 🟡 penyedia, 🔵 per koneksi dengan tampilan IP |
380
+ | 🌐 **Konfigurasi Proksi 3 Tingkat** | Konfigurasikan proxy di tingkat global, per penyedia, atau per koneksi |
381
+
382
+ ### 📊 Observabilitas & Analisis
383
+
384
+ | Fitur | Apa Fungsinya |
385
+ | ---------------------------- | ------------------------------------------------------------------------------- |
386
+ | 📝 **Permintaan Pencatatan** | Mode debug dengan log permintaan/respons lengkap |
387
+ | 💾 **Log Proksi SQLite** | Log proksi persisten bertahan saat server dimulai ulang |
388
+ | 📊 **Dasbor Analitik** | Didukung grafik ulang: kartu stat, bagan penggunaan model, tabel penyedia |
389
+ | 📈 **Pelacakan Kemajuan** | Ikut serta dalam acara kemajuan SSE untuk streaming |
390
+ | 🧪 **Evaluasi LLM** | Pengujian set emas dengan 4 strategi pertandingan |
391
+ | 🔍 **Permintaan Telemetri** | agregasi latensi p50/p95/p99 + penelusuran X-Request-Id |
392
+ | 📋 **Dasbor Log** | Halaman 4 tab terpadu: Log Permintaan, Log Proksi, Log Audit, Konsol |
393
+ | 🖥️ **Penampil Log Konsol** | Penampil gaya terminal real-time dengan filter level, pencarian, gulir otomatis |
394
+ | 📑 **Logging Berbasis File** | Pencegat konsol menangkap semua output ke file log JSON dengan rotasi |
395
+ | 🏥 **Dasbor Kesehatan** | Waktu aktif sistem, status pemutus sirkuit, penguncian, statistik cache |
396
+ | 💰 **Pelacakan Biaya** | Manajemen anggaran + konfigurasi harga per model |
397
+
398
+ ### ☁️ Penerapan & Sinkronisasi
399
+
400
+ | Fitur | Apa Fungsinya |
401
+ | ---------------------------- | ---------------------------------------------------------------------------- |
402
+ | 💾 **Sinkronisasi Cloud** | Sinkronkan konfigurasi antar perangkat melalui Cloudflare Workers |
403
+ | 🌐 **Terapkan Di Mana Saja** | Localhost, VPS, Docker, Pekerja Cloudflare |
404
+ | 🔑 **Manajemen Kunci API** | Menghasilkan, memutar, dan mencakup kunci API per penyedia |
405
+ | 🧙 **Wizard Orientasi** | Penyiapan terpandu 4 langkah untuk pengguna pertama kali |
406
+ | 🔧 **Dasbor Alat CLI** | Konfigurasikan sekali klik Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
407
+ | 🔄 **Cadangan DB** | Pencadangan, pemulihan, ekspor & impor otomatis untuk semua pengaturan |
408
+ | 🌐 **Internasionalisasi** | I18n lengkap dengan next-intl — Dukungan Inggris + Portugis (Brasil) |
409
+ | 🌍 **Pemilih Bahasa** | Ikon bola dunia di header untuk peralihan bahasa secara real-time (🇮🇩/🇧🇷) |
410
+ | 📂 **Direktori Data Khusus** | `DATA_DIR` env var untuk mengganti jalur penyimpanan `~/.omniroute` default |
411
+
412
+ <details>
413
+ <summary><b>📖 Detail Fitur</b></summary>
414
+
415
+ ### 🎯 Penggantian 4 Tingkat yang Cerdas
416
+
417
+ Buat kombo dengan fallback otomatis:
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
+ ### 📊 Pelacakan Kuota Waktu Nyata
430
+
431
+ - Konsumsi token per penyedia
432
+ - Atur ulang hitungan mundur (5 jam, harian, mingguan)
433
+ - Estimasi biaya untuk tingkatan berbayar
434
+ - Laporan pengeluaran bulanan
435
+
436
+ ### 🔄 Format Terjemahan
437
+
438
+ Terjemahan mulus antar format:
439
+
440
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **Respon OpenAI**
441
+ - Alat CLI Anda mengirimkan format OpenAI → OmniRoute menerjemahkan → Penyedia menerima format asli
442
+ - Bekerja dengan alat apa pun yang mendukung titik akhir OpenAI khusus
443
+ - **Sanitasi respons** — Menghapus kolom non-standar untuk kompatibilitas OpenAI SDK yang ketat
444
+ - **Normalisasi peran** — `developer` → `system` untuk non-OpenAI; `system` → `user` untuk model GLM/ERNIE
445
+ - **Think tag ekstraksi** — `<think>` blok → `reasoning_content` untuk model berpikir
446
+ - **Keluaran terstruktur** — `json_schema` → `responseMimeType`/`responseSchema` Gemini
447
+
448
+ ### 👥 Dukungan Multi-Akun
449
+
450
+ - Tambahkan beberapa akun per penyedia
451
+ - Perutean otomatis round-robin atau berbasis prioritas
452
+ - Penggantian ke akun berikutnya ketika ada yang mencapai kuota
453
+
454
+ ### 🔄 Penyegaran Token Otomatis
455
+
456
+ - Token OAuth secara otomatis disegarkan sebelum masa berlakunya habis
457
+ - Tidak diperlukan otentikasi ulang manual
458
+ - Pengalaman mulus di semua penyedia
459
+
460
+ ### 🎨 Kombo Khusus
461
+
462
+ - Buat kombinasi model tanpa batas
463
+ - 6 strategi: isi pertama, round-robin, kekuatan dua pilihan, acak, paling jarang digunakan, hemat biaya
464
+ - Bagikan kombo di seluruh perangkat dengan Cloud Sync
465
+
466
+ ### 🏥 Dasbor Kesehatan
467
+
468
+ - Status sistem (waktu aktif, versi, penggunaan memori)
469
+ - Status pemutus sirkuit per penyedia (Tertutup/Terbuka/Setengah Terbuka)
470
+ - Status batas tarif dan penguncian aktif
471
+ - Statistik cache tanda tangan
472
+ - Telemetri latensi (p50/p95/p99) + cache cepat
473
+ - Atur ulang status kesehatan dengan satu klik
474
+
475
+ ### 🔧 Taman Bermain Penerjemah
476
+
477
+ OmniRoute menyertakan Taman Bermain Penerjemah bawaan yang canggih dengan **4 mode** untuk melakukan debug, menguji, dan memantau terjemahan API:
478
+
479
+ | Modus | Deskripsi |
480
+ | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
481
+ | **💻 Taman bermain** | Terjemahan format langsung — tempelkan isi permintaan API apa pun dan langsung lihat bagaimana OmniRoute menerjemahkannya antar format penyedia (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Termasuk contoh templat dan deteksi otomatis format. |
482
+ | **💬 Penguji Obrolan** | Kirim permintaan obrolan nyata melalui OmniRoute dan lihat perjalanan pulang pergi selengkapnya: masukan Anda, permintaan yang diterjemahkan, respons penyedia, dan respons yang diterjemahkan kembali. Sangat berharga untuk memvalidasi perutean kombo. |
483
+ | **🧪 Bangku Tes** | Mode pengujian batch — tentukan beberapa kasus pengujian dengan masukan berbeda dan keluaran yang diharapkan, jalankan semuanya sekaligus, dan bandingkan hasilnya di seluruh penyedia dan model. |
484
+ | **📱 Monitor Langsung** | Pemantauan permintaan waktu nyata — perhatikan permintaan masuk saat mengalir melalui OmniRoute, lihat terjemahan format yang terjadi secara langsung, dan identifikasi masalah secara instan. |
485
+
486
+ **Akses:** Dasbor → Penerjemah (bilah samping)
487
+
488
+ ### 💾 Sinkronisasi Awan
489
+
490
+ - Sinkronisasi penyedia, kombo, dan pengaturan di seluruh perangkat
491
+ - Sinkronisasi latar belakang otomatis
492
+ - Penyimpanan terenkripsi yang aman
493
+
494
+ </details>
495
+
496
+ ---
497
+
498
+ ## 📖 Panduan Pengaturan
499
+
500
+ <details>
501
+ <summary><b>💳 Penyedia Langganan</b></summary>
502
+
503
+ ### Kode Claude (Pro/Maks)
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
+ **Kiat Pro:** Gunakan Opus untuk tugas kompleks, Soneta untuk kecepatan. OmniRoute melacak kuota per model!
517
+
518
+ ### Kodeks OpenAI (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/bulan!)
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
+ **Nilai Terbaik:** Tingkat gratis yang sangat besar! Gunakan ini sebelum tingkatan berbayar.
543
+
544
+ ### Kopilot GitHub
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>🔑 Penyedia Kunci API</b></summary>
561
+
562
+ ### NVIDIA NIM (GRATIS 1000 kredit!)
563
+
564
+ 1. Daftar: [build.nvidia.com](https://build.nvidia.com)
565
+ 2. Dapatkan kunci API gratis (termasuk 1000 kredit inferensi)
566
+ 3. Dasbor → Tambah Penyedia → NVIDIA NIM:
567
+ - Kunci API: `nvapi-your-key`
568
+
569
+ **Model:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, dan 50+ lainnya
570
+
571
+ **Kiat Pro:** API yang kompatibel dengan OpenAI — bekerja secara lancar dengan terjemahan format OmniRoute!
572
+
573
+ ### Pencarian Dalam
574
+
575
+ 1. Daftar: [platform.deepseek.com](https://platform.deepseek.com)
576
+ 2. Dapatkan kunci API
577
+ 3. Dasbor → Tambah Penyedia → DeepSeek
578
+
579
+ **Model:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
580
+
581
+ ### Groq (Tersedia Tingkat Gratis!)
582
+
583
+ 1. Daftar: [console.groq.com](https://console.groq.com)
584
+ 2. Dapatkan kunci API (termasuk tingkat gratis)
585
+ 3. Dasbor → Tambah Penyedia → Groq
586
+
587
+ **Model:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
588
+
589
+ **Kiat Pro:** Inferensi ultra-cepat — terbaik untuk pengkodean waktu nyata!
590
+
591
+ ### OpenRouter (100+ Model)
592
+
593
+ 1. Daftar: [openrouter.ai](https://openrouter.ai)
594
+ 2. Dapatkan kunci API
595
+ 3. Dasbor → Tambah Penyedia → OpenRouter
596
+
597
+ **Model:** Akses 100+ model dari semua penyedia utama melalui satu kunci API.
598
+
599
+ </details>
600
+
601
+ <details>
602
+ <summary><b>💰 Penyedia Murah (Cadangan)</b></summary>
603
+
604
+ ### GLM-4.7 (Reset harian, $0,6/1 juta)
605
+
606
+ 1. Daftar: [Zhipu AI](https://open.bigmodel.cn/)
607
+ 2. Dapatkan kunci API dari Coding Plan
608
+ 3. Dasbor → Tambahkan Kunci API:
609
+ - Penyedia: `glm`
610
+ - Kunci API: `your-key`
611
+
612
+ **Gunakan:** `glm/glm-4.7`
613
+
614
+ **Tips Pro:** Paket Coding menawarkan 3× kuota dengan biaya 1/7! Reset setiap hari pukul 10.00.
615
+
616
+ ### MiniMax M2.1 (reset 5 jam, $0,20/1 juta)
617
+
618
+ 1. Daftar: [MiniMax](https://www.minimax.io/)
619
+ 2. Dapatkan kunci API
620
+ 3. Dasbor → Tambahkan Kunci API
621
+
622
+ **Gunakan:** `minimax/MiniMax-M2.1`
623
+
624
+ **Kiat Pro:** Opsi termurah untuk konteks panjang (1 juta token)!
625
+
626
+ ### Kimi K2 ($9/bulan tetap)
627
+
628
+ 1. Berlangganan: [Moonshot AI](https://platform.moonshot.ai/)
629
+ 2. Dapatkan kunci API
630
+ 3. Dasbor → Tambahkan Kunci API
631
+
632
+ **Gunakan:** `kimi/kimi-latest`
633
+
634
+ **Kiat Pro:** Memperbaiki $9/bulan untuk 10 juta token = biaya efektif $0,90/1 juta!
635
+
636
+ </details>
637
+
638
+ <details>
639
+ <summary><b>🆓 Penyedia GRATIS (Cadangan Darurat)</b></summary>
640
+
641
+ ### iFlow (8 model GRATIS)
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 model GRATIS)
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 GRATIS)
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>🎨 Buat Kombo</b></summary>
684
+
685
+ ### Contoh 1: Maksimalkan Langganan → Cadangan Murah
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
+ ### Contoh 2: Gratis Saja (Tanpa Biaya)
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>🔧 Integrasi CLI</b></summary>
715
+
716
+ ### IDE Kursor
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
+ ### Kode Claude
726
+
727
+ Gunakan halaman **Alat CLI** di dasbor untuk konfigurasi sekali klik, atau edit `~/.claude/settings.json` secara manual.
728
+
729
+ ### Kodeks 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
+ ### Buka Cakar
739
+
740
+ **Opsi 1 — Dasbor (disarankan):**
741
+
742
+ ```
743
+ Dashboard → CLI Tools → OpenClaw → Select Model → Apply
744
+ ```
745
+
746
+ **Opsi 2 — Panduan:** Sunting `~/.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
+ > **Catatan:** OpenClaw hanya berfungsi dengan OmniRoute lokal. Gunakan `127.0.0.1` alih-alih `localhost` untuk menghindari masalah resolusi IPv6.
763
+
764
+ ### Cline / Lanjutkan / 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
+ ## 📊 Model yang Tersedia
779
+
780
+ <details>
781
+ <summary><b>Lihat semua model yang tersedia</b></summary>
782
+
783
+ **Kode Claude (`cc/`)** - Pro/Maks:
784
+
785
+ - `cc/claude-opus-4-6`
786
+ - `cc/claude-sonnet-4-5-20250929`
787
+ - `cc/claude-haiku-4-5-20251001`
788
+
789
+ **Kodeks (`cx/`)** - Plus/Pro:
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
+ **Copilot GitHub (`gh/`)**:
800
+
801
+ - `gh/gpt-5`
802
+ - `gh/claude-4.5-sonnet`
803
+
804
+ **NVIDIA NIM (`nvidia/`)** - Kredit GRATIS:
805
+
806
+ - `nvidia/llama-3.3-70b-instruct`
807
+ - `nvidia/mistral-7b-instruct`
808
+ - 50+ model lainnya di [build.nvidia.com](https://build.nvidia.com)
809
+
810
+ **GLM (`glm/`)** - $0,6/1 juta:
811
+
812
+ - `glm/glm-4.7`
813
+
814
+ **MiniMax (`minimax/`)** - $0,2/1 juta:
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+ model:
837
+
838
+ - `or/anthropic/claude-4-sonnet`
839
+ - `or/google/gemini-2.5-pro`
840
+ - Model apa pun dari [openrouter.ai/models](https://openrouter.ai/models)
841
+
842
+ </details>
843
+
844
+ ---
845
+
846
+ ## 🧪 Evaluasi (Eval)
847
+
848
+ OmniRoute menyertakan kerangka evaluasi bawaan untuk menguji kualitas respons LLM terhadap rangkaian emas. Akses melalui **Analytics → Evals** di dasbor.
849
+
850
+ ### Set Emas Bawaan
851
+
852
+ "OmniRoute Golden Set" yang dimuat sebelumnya berisi 10 kasus uji yang meliputi:
853
+
854
+ - Salam, matematika, geografi, pembuatan kode
855
+ - Kepatuhan format JSON, terjemahan, penurunan harga
856
+ - Penolakan keamanan (konten berbahaya), penghitungan, logika boolean
857
+
858
+ ### Strategi Evaluasi
859
+
860
+ | Strategi | Deskripsi | Contoh |
861
+ | ---------- | ------------------------------------------------------------ | -------------------------------- |
862
+ | `exact` | Output harus sama persis | `"4"` |
863
+ | `contains` | Output harus berisi substring (tidak peka huruf besar-kecil) | `"Paris"` |
864
+ | `regex` | Output harus sesuai dengan pola regex | `"1.*2.*3"` |
865
+ | `custom` | Fungsi JS khusus mengembalikan benar/salah | `(output) => output.length > 10` |
866
+
867
+ ---
868
+
869
+ ## 🔐 OAuth em Servidor Remoto (Pengaturan OAuth Jarak Jauh)
870
+
871
+ <a name="oauth-em-servidor-remoto"></a>
872
+
873
+ > **⚠️ PENTING bagi pengguna dengan OmniRoute pada VPS/Docker/server jarak jauh**
874
+
875
+ ### Mengapa OAuth melakukan Antigravity / Gemini CLI gagal dalam layanan jarak jauh?
876
+
877
+ Pembuktiannya **Antigravitasi** dan **Gemini CLI** digunakan **Google OAuth 2.0** untuk autentikasi. Google meminta agar `redirect_uri` menggunakan OAuth yang terus berubah, jadi **exatamente** adalah URI yang sudah ada sebelumnya di Google Cloud Console yang dapat diterapkan.
878
+
879
+ Karena kredensial OAuth yang diberikan pada OmniRoute adalah kadastrada **apenas untuk `localhost`**. Ketika Anda mengakses OmniRoute dari server jarak jauh (misal: `https://omniroute.meuservidor.com`), atau Google meminta autenticação com:
880
+
881
+ ```
882
+ Error 400: redirect_uri_mismatch
883
+ ```
884
+
885
+ ### Solusi: Konfigurasikan akun OAuth Anda
886
+
887
+ Anda perlu membuat **ID Klien OAuth 2.0** di Google Cloud Console dengan URI di server Anda.
888
+
889
+ #### Lewati dulu
890
+
891
+ **1. Mengakses Google Cloud Console**
892
+
893
+ Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
894
+
895
+ **2. Inilah ID Klien OAuth 2.0 yang baru**
896
+
897
+ - Klik pada **"+ Buat Kredensial"** → **"ID klien OAuth"**
898
+ - Tip aplikasi: **"Aplikasi web"**
899
+ - Nama: nama escolha qualquer (misal: `OmniRoute Remote`)
900
+
901
+ **3. Tambahan sebagai URI Pengalihan Resmi**
902
+
903
+ Selain itu **"URI pengalihan resmi"**, tambahan:
904
+
905
+ ```
906
+ https://seu-servidor.com/callback
907
+ ```
908
+
909
+ > Pengganti `seu-servidor.com` pelo domínio atau IP ke server Anda (termasuk port yang diperlukan, misal: `http://45.33.32.156:20128/callback`).
910
+
911
+ **4. Salep dan salin sebagai kredensial**
912
+
913
+ Kemudian, Google menampilkan **ID Klien** dan **Rahasia Klien**.
914
+
915
+ **5. Konfigurasikan sebagai variáveis de ambiente**
916
+
917
+ Di `.env` (atau berbagai lingkungan di 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. Memulai kembali 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. Mari kita sambungkan lagi**
941
+
942
+ Dasbor → Penyedia → Antigravitasi (atau Gemini CLI) → OAuth
943
+
944
+ Sekarang o Google dialihkan langsung ke `https://seu-servidor.com/callback` dan autentikasi berfungsi.
945
+
946
+ ---
947
+
948
+ ### Solusi sementara (sem configurar credenciais próprias)
949
+
950
+ Jika Anda tidak ingin membuat kredensial pribadi sekarang, Anda mungkin dapat menggunakan fluks **panduan URL**:
951
+
952
+ 1. O OmniRoute membuka URL autoriza dari Google
953
+ 2. Setelah Anda autorizar, Google mengarahkan pengalihan ke `localhost` (yang gagal pada server jarak jauh)
954
+ 3. **Salin URL lengkap** dari bilah akhir browser Anda (meskipun halaman tidak dimuat)
955
+ 4. Gunakan URL ini karena tidak ada modal koneksi ke OmniRoute
956
+ 5. Klik pada **"Hubungkan"**
957
+
958
+ > Solusi ini berfungsi karena kode otorisasi pada URL valid secara independen untuk mengarahkan ulang ke akun atau tidak.
959
+
960
+ ---
961
+
962
+ ## 🐛 Pemecahan masalah
963
+
964
+ <details>
965
+ <summary><b>Klik untuk memperluas panduan pemecahan masalah</b></summary>
966
+
967
+ **"Model bahasa tidak memberikan pesan"**
968
+
969
+ - Kuota penyedia habis → Periksa dashboard pelacak kuota
970
+ - Solusi: Gunakan combo fallback atau beralih ke tier yang lebih murah
971
+
972
+ **Pembatasan tarif**
973
+
974
+ - Kuota berlangganan habis → Penggantian ke GLM/MiniMax
975
+ - Tambahkan kombo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
976
+
977
+ **Token OAuth kedaluwarsa**
978
+
979
+ - Disegarkan secara otomatis oleh OmniRoute
980
+ - Jika masalah terus berlanjut: Dasbor → Penyedia → Sambungkan kembali
981
+
982
+ **Biaya tinggi**
983
+
984
+ - Periksa statistik penggunaan di Dashboard → Biaya
985
+ - Ganti model utama ke GLM/MiniMax
986
+ - Gunakan tingkat gratis (Gemini CLI, iFlow) untuk tugas-tugas yang tidak penting
987
+
988
+ **Dasbor terbuka pada port yang salah**
989
+
990
+ - Tetapkan `PORT=20128` dan `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
991
+
992
+ **Kesalahan sinkronisasi cloud**
993
+
994
+ - Verifikasi `BASE_URL` poin ke instance Anda yang sedang berjalan
995
+ - Verifikasi `CLOUD_URL` poin ke titik akhir cloud yang Anda harapkan
996
+ - Jaga agar nilai `NEXT_PUBLIC_*` selaras dengan nilai sisi server
997
+
998
+ **Login pertama tidak berfungsi**
999
+
1000
+ - Periksa `INITIAL_PASSWORD` di `.env`
1001
+ - Jika tidak disetel, kata sandi cadangan adalah `123456`
1002
+
1003
+ **Tidak ada log permintaan**
1004
+
1005
+ - Tetapkan `ENABLE_REQUEST_LOGS=true` di `.env`
1006
+
1007
+ **Tes koneksi menunjukkan "Tidak Valid" untuk penyedia yang kompatibel dengan OpenAI**
1008
+
1009
+ - Banyak penyedia tidak mengekspos titik akhir `/models`
1010
+ - OmniRoute v1.0.6+ menyertakan validasi fallback melalui penyelesaian obrolan
1011
+ - Pastikan URL dasar menyertakan akhiran `/v1`
1012
+
1013
+ </details>
1014
+
1015
+ ---
1016
+
1017
+ ## 🛠️ Tumpukan Teknologi
1018
+
1019
+ - **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ **tidak didukung** — `better-sqlite3` biner asli tidak kompatibel)
1020
+ - **Bahasa**: TypeScript 5.9 — **100% TypeScript** di `src/` dan `open-sse/` (v1.0.6)
1021
+ - **Kerangka Kerja**: Next.js 16 + React 19 + Tailwind CSS 4
1022
+ - **Database**: LowDB (JSON) + SQLite (status domain + log proksi)
1023
+ - **Streaming**: Peristiwa Terkirim Server (SSE)
1024
+ - **Auth**: OAuth 2.0 (PKCE) + JWT + Kunci API
1025
+ - **Pengujian**: pelari pengujian Node.js (368+ pengujian unit)
1026
+ - **CI/CD**: Tindakan GitHub (publikasi npm otomatis + Docker Hub saat dirilis)
1027
+ - **Situs Web**: [omniroute.online](https://omniroute.online)
1028
+ - **Paket**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
1029
+ - **Pekerja Pelabuhan**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
1030
+ - **Ketahanan**: Pemutus sirkuit, kemunduran eksponensial, kawanan anti-guntur, spoofing TLS
1031
+
1032
+ ---
1033
+
1034
+ ## 📖 Dokumentasi
1035
+
1036
+ | Dokumen | Deskripsi |
1037
+ | -------------------------------------------- | --------------------------------------------------- |
1038
+ | [User Guide](docs/USER_GUIDE.md) | Penyedia, kombo, integrasi CLI, penerapan |
1039
+ | [API Reference](docs/API_REFERENCE.md) | Semua titik akhir dengan contoh |
1040
+ | [Troubleshooting](docs/TROUBLESHOOTING.md) | Masalah umum dan solusinya |
1041
+ | [Architecture](docs/ARCHITECTURE.md) | Arsitektur sistem dan internal |
1042
+ | [Contributing](CONTRIBUTING.md) | Pengaturan dan pedoman pengembangan |
1043
+ | [OpenAPI Spec](docs/openapi.yaml) | Spesifikasi OpenAPI 3.0 |
1044
+ | [Security Policy](SECURITY.md) | Pelaporan kerentanan dan praktik keamanan |
1045
+ | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Panduan lengkap: VM + nginx + Pengaturan Cloudflare |
1046
+ | [Features Gallery](docs/FEATURES.md) | Tur dasbor visual dengan tangkapan layar |
1047
+
1048
+ ### 📸 Pratinjau Dasbor
1049
+
1050
+ <details>
1051
+ <summary><b>Klik untuk melihat tangkapan layar dasbor</b></summary>
1052
+
1053
+ | Halaman | Tangkapan layar |
1054
+ | ------------------ | ------------------------------------------------- |
1055
+ | **Penyedia** | ![Providers](docs/screenshots/01-providers.png) |
1056
+ | **Kombo** | ![Combos](docs/screenshots/02-combos.png) |
1057
+ | **Analitik** | ![Analytics](docs/screenshots/03-analytics.png) |
1058
+ | **Kesehatan** | ![Health](docs/screenshots/04-health.png) |
1059
+ | **Penerjemah** | ![Translator](docs/screenshots/05-translator.png) |
1060
+ | **Pengaturan** | ![Settings](docs/screenshots/06-settings.png) |
1061
+ | **Alat CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) |
1062
+ | **Log Penggunaan** | ![Usage](docs/screenshots/08-usage.png) |
1063
+ | **Titik Akhir** | ![Endpoint](docs/screenshots/09-endpoint.png) |
1064
+
1065
+ </details>
1066
+
1067
+ ---
1068
+
1069
+ ## 🗺️ Peta Jalan
1070
+
1071
+ OmniRoute memiliki **210+ fitur yang direncanakan** di berbagai fase pengembangan. Berikut adalah bidang-bidang utamanya:
1072
+
1073
+ | Kategori | Fitur yang Direncanakan | Sorotan |
1074
+ | ---------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------- |
1075
+ | 🧠 **Perutean & Kecerdasan** | 25+ | Perutean latensi terendah, perutean berbasis tag, preflight kuota, pemilihan akun P2C |
1076
+ | 🔒 **Keamanan & Kepatuhan** | 20+ | Pengerasan SSRF, penyelubungan kredensial, batas tarif per titik akhir, pelingkupan kunci manajemen |
1077
+ | 📊 **Kemampuan Observasi** | 15+ | Integrasi OpenTelemetry, pemantauan kuota waktu nyata, pelacakan biaya per model |
1078
+ | 🔄 **Integrasi Penyedia** | 20+ | Registri model dinamis, cooldown penyedia, Codex multi-akun, penguraian kuota Salinan |
1079
+ | ⚡ **Kinerja** | 15+ | Lapisan cache ganda, cache cepat, cache respons, streaming keepalive, API batch |
1080
+ | 🌐 **Ekosistem** | 10+ | WebSocket API, konfigurasi hot-reload, penyimpanan konfigurasi terdistribusi, mode komersial |
1081
+
1082
+ ### 🔜 Segera Hadir
1083
+
1084
+ - 🔗 **Integrasi OpenCode** — Dukungan penyedia asli untuk IDE pengkodean AI OpenCode
1085
+ - 🔗 **Integrasi TRAE** — Dukungan penuh untuk kerangka pengembangan AI TRAE
1086
+ - 📦 **Batch API** — Pemrosesan batch asinkron untuk permintaan massal
1087
+ - 🎯 **Perutean Berbasis Tag** — Merutekan permintaan berdasarkan tag dan metadata khusus
1088
+ - 💰 **Strategi Biaya Terendah** — Secara otomatis memilih penyedia termurah yang tersedia
1089
+
1090
+ > 📝 Spesifikasi fitur lengkap tersedia di [link](docs/new-features/) (217 spesifikasi detail)
1091
+
1092
+ ---
1093
+
1094
+ ## 📧 Dukungan
1095
+
1096
+ > 💬 **Bergabunglah dengan komunitas kami!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Dapatkan bantuan, berbagi kiat, dan dapatkan informasi terbaru.
1097
+
1098
+ - **Situs Web**: [omniroute.online](https://omniroute.online)
1099
+ - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
1100
+ - **Masalah**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
1101
+ - **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
1102
+ - **Proyek Asli**: [9router by decolua](https://github.com/decolua/9router)
1103
+
1104
+ ---
1105
+
1106
+ ## 👥 Kontributor
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
+ ### Cara Berkontribusi
1111
+
1112
+ 1. Cabangkan repositori
1113
+ 2. Buat cabang fitur Anda (`git checkout -b feature/amazing-feature`)
1114
+ 3. Komit perubahan Anda (`git commit -m 'Add amazing feature'`)
1115
+ 4. Dorong ke cabang (`git push origin feature/amazing-feature`)
1116
+ 5. Buka Permintaan Tarik
1117
+
1118
+ Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduan detailnya.
1119
+
1120
+ ### Merilis Versi Baru
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
+ ## 📊 Sejarah Bintang
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
+ ## 🙏 Ucapan Terima Kasih
1142
+
1143
+ Terima kasih khusus kepada **[9router](https://github.com/decolua/9router)** oleh **[decolua](https://github.com/decolua)** — proyek asli yang menginspirasi fork ini. OmniRoute dibangun di atas fondasi luar biasa tersebut dengan fitur tambahan, API multi-modal, dan penulisan ulang TypeScript lengkap.
1144
+
1145
+ Terima kasih khusus kepada **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — implementasi Go asli yang menginspirasi port JavaScript ini.
1146
+
1147
+ ---
1148
+
1149
+ ## 📄 Lisensi
1150
+
1151
+ Lisensi MIT - lihat [LICENSE](LICENSE) untuk detailnya.
1152
+
1153
+ ---
1154
+
1155
+ ---
1156
+
1157
+ ## 🇧🇷 OmniRoute — Gerbang IA Gratis
1158
+
1159
+ <a name="-omniroute--gateway-de-ia-gratuito"></a>
1160
+
1161
+ ### Tidak ada kode apa pun. Roteamento cerdas untuk **model IA GRATIS dan hak istimewa** dengan fallback otomatis.
1162
+
1163
+ _Proksi universal API — um titik akhir, 36+ bukti, tanpa waktu henti._
1164
+
1165
+ ### 🌐 Internasionalisasi (i18n)
1166
+
1167
+ Pada dasbor, lakukan OmniRoute mendukung **beberapa idiom**. Saat ini kami telah membagikannya:
1168
+
1169
+ | Idiom | Kode | Status |
1170
+ | --------------------- | ------- | ---------- |
1171
+ | 🇮🇩 Bahasa Inggris | `en` | ✅ Lengkap |
1172
+ | 🇧🇷 Português (Brasil) | `pt-BR` | ✅ Lengkap |
1173
+
1174
+ **Untuk trocar o idioma:** Klik no selector de idioma (🇮🇩 EN) no header do dashboard → pilih idioma yang diinginkan.
1175
+
1176
+ **Untuk menambahkan idiom baru:**
1177
+
1178
+ 1. Teriak `src/i18n/messages/{codigo}.json` berdasarkan `en.json`
1179
+ 2. Tambahan kode pada `src/i18n/config.ts` → `LOCALES` dan `LANGUAGES`
1180
+ 3. Memulai kembali server
1181
+
1182
+ ### ⚡ Mulai Cepat
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
+ ### 🐳 buruh pelabuhan
1195
+
1196
+ ```bash
1197
+ docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest
1198
+ ```
1199
+
1200
+ ### 🔑 Prinsip Fungsionalidades
1201
+
1202
+ - **36+ bukti IA** — Claude, GPT, Gemini, Llama, Qwen, DeepSeek, dan lainnya
1203
+ - **Roteamento inteligente** — Penggantian otomatis ke seluruh bukti
1204
+ - **Penulisan format** — OpenAI ↔ Claude ↔ Gemini secara otomatis
1205
+ - **Multi-konta** — Multi-konta berdasarkan pilihan yang cerdas
1206
+ - **Cache semântico** — Memulihkan biaya dan latensi
1207
+ - **OAuth otomatis** — Token diperbarui secara otomatis
1208
+ - **Kombo yang dipersonalisasi** — 6 strategi roteamento
1209
+ - **Dasbor lengkap** — Monitor, log, analisis, konfigurasi
1210
+ - **Alat CLI** — Konfigurasikan Kode Claude, Codex, Kursor, Cline com um klik
1211
+ - **100% TypeScript** — Kode limpo dan tipado
1212
+
1213
+ ### 📖 Dokumentasi
1214
+
1215
+ | Dokumen | Deskripsi |
1216
+ | ----------------------------------------------- | ---------------------------------------- |
1217
+ | [Guia do Usuário](docs/USER_GUIDE.md) | Provedores, kombo, CLI, terapkan |
1218
+ | [Referência da API](docs/API_REFERENCE.md) | Semua titik akhir dengan contoh |
1219
+ | [Solução de Problemas](docs/TROUBLESHOOTING.md) | Masalah Umum dan Solusi |
1220
+ | [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura dan internal dalam sistem |
1221
+ | [Contribuição](CONTRIBUTING.md) | Menyiapkan pedoman desenvolvimento |
1222
+ | [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | Panduan lengkap: VM + nginx + Cloudflare |
1223
+
1224
+ ### 📧 Dukungan
1225
+
1226
+ > 💬 **Entre to a comunidade!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Ban dúvidas, compartilhe dicas dan fique aktualizado.
1227
+
1228
+ - **Situs Web**: [omniroute.online](https://omniroute.online)
1229
+ - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
1230
+ - **Masalah**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
1231
+
1232
+ ---
1233
+
1234
+ <div align="center">
1235
+ <sub>Dibangun dengan ❤️ untuk pengembang yang membuat kode 24/7</sub>
1236
+ <br/>
1237
+ <sub><a href="https://omniroute.online">omniroute.online</a></sub>
1238
+ </div>