omniroute 3.4.5 → 3.4.6

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 (249) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +3 -3
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/audit/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cache/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cache/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/memory/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/_global-error.html +1 -1
  41. package/app/.next/server/app/_global-error.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  47. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/monitoring/health/route.js +3 -3
  49. package/app/.next/server/app/api/provider-models/route.js +2 -2
  50. package/app/.next/server/app/api/provider-nodes/[id]/route.js +2 -2
  51. package/app/.next/server/app/api/provider-nodes/route.js +3 -3
  52. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  53. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  54. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/providers/[id]/sync-models/route.js +3 -3
  56. package/app/.next/server/app/api/providers/[id]/sync-models/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/providers/[id]/test/route.js +6 -6
  58. package/app/.next/server/app/api/providers/route.js +4 -4
  59. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  60. package/app/.next/server/app/api/providers/test-batch/route.js +5 -5
  61. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  62. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  63. package/app/.next/server/app/api/system/version/route.js.nft.json +1 -1
  64. package/app/.next/server/app/api/usage/[connectionId]/route.js +2 -2
  65. package/app/.next/server/app/api/usage/provider-limits/route.js +5 -5
  66. package/app/.next/server/app/api/usage/provider-limits/route.js.nft.json +1 -1
  67. package/app/.next/server/app/api/v1/models/route.js +4 -4
  68. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  69. package/app/.next/server/app/api/v1/route.js +4 -4
  70. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  71. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  83. package/app/.next/server/chunks/[root-of-the-server]__0.7zz6j._.js +1 -1
  84. package/app/.next/server/chunks/[root-of-the-server]__0.lz97q._.js +1 -1
  85. package/app/.next/server/chunks/[root-of-the-server]__0.m9_5-._.js +1 -1
  86. package/app/.next/server/chunks/[root-of-the-server]__00-bzx_._.js +1 -1
  87. package/app/.next/server/chunks/[root-of-the-server]__00hsd7k._.js +1 -1
  88. package/app/.next/server/chunks/[root-of-the-server]__00i_ryi._.js +1 -1
  89. package/app/.next/server/chunks/[root-of-the-server]__01fudn9._.js +1 -1
  90. package/app/.next/server/chunks/[root-of-the-server]__024slax._.js +1 -1
  91. package/app/.next/server/chunks/[root-of-the-server]__030_-af._.js +2 -2
  92. package/app/.next/server/chunks/[root-of-the-server]__03gl9dh._.js +2 -2
  93. package/app/.next/server/chunks/[root-of-the-server]__03x69ll._.js +1 -1
  94. package/app/.next/server/chunks/[root-of-the-server]__047np0t._.js +2 -2
  95. package/app/.next/server/chunks/[root-of-the-server]__04lc9.m._.js +2 -2
  96. package/app/.next/server/chunks/[root-of-the-server]__05u48b-._.js +1 -1
  97. package/app/.next/server/chunks/[root-of-the-server]__06dr~pl._.js +1 -1
  98. package/app/.next/server/chunks/[root-of-the-server]__06hr_sx._.js +1 -1
  99. package/app/.next/server/chunks/[root-of-the-server]__06r5eje._.js +2 -2
  100. package/app/.next/server/chunks/[root-of-the-server]__07.ui7z._.js +1 -1
  101. package/app/.next/server/chunks/[root-of-the-server]__075j.5s._.js +1 -1
  102. package/app/.next/server/chunks/[root-of-the-server]__07ju0wx._.js +1 -1
  103. package/app/.next/server/chunks/[root-of-the-server]__07wj.c4._.js +1 -1
  104. package/app/.next/server/chunks/[root-of-the-server]__08-9vz.._.js +1 -1
  105. package/app/.next/server/chunks/[root-of-the-server]__0908q-_._.js +1 -1
  106. package/app/.next/server/chunks/[root-of-the-server]__09blmoy._.js +1 -1
  107. package/app/.next/server/chunks/[root-of-the-server]__09c50mp._.js +1 -1
  108. package/app/.next/server/chunks/[root-of-the-server]__0a.3c_r._.js +1 -1
  109. package/app/.next/server/chunks/[root-of-the-server]__0bkx9sd._.js +1 -1
  110. package/app/.next/server/chunks/[root-of-the-server]__0c4v_hg._.js +2 -2
  111. package/app/.next/server/chunks/[root-of-the-server]__0c5t729._.js +1 -1
  112. package/app/.next/server/chunks/[root-of-the-server]__0cem6i6._.js +1 -1
  113. package/app/.next/server/chunks/[root-of-the-server]__0d-qyrk._.js +2 -2
  114. package/app/.next/server/chunks/[root-of-the-server]__0d-rd-n._.js +1 -1
  115. package/app/.next/server/chunks/[root-of-the-server]__0djfz6n._.js +1 -1
  116. package/app/.next/server/chunks/[root-of-the-server]__0dmb7bd._.js +1 -1
  117. package/app/.next/server/chunks/[root-of-the-server]__0e7dp.z._.js +2 -2
  118. package/app/.next/server/chunks/[root-of-the-server]__0el_v65._.js +1 -1
  119. package/app/.next/server/chunks/[root-of-the-server]__0enebbv._.js +2 -2
  120. package/app/.next/server/chunks/[root-of-the-server]__0enecpa._.js +1 -1
  121. package/app/.next/server/chunks/[root-of-the-server]__0eps0zu._.js +1 -1
  122. package/app/.next/server/chunks/[root-of-the-server]__0fbv0zh._.js +1 -1
  123. package/app/.next/server/chunks/[root-of-the-server]__0fmf-tk._.js +1 -1
  124. package/app/.next/server/chunks/[root-of-the-server]__0fw0v5q._.js +2 -2
  125. package/app/.next/server/chunks/[root-of-the-server]__0g0b9au._.js +1 -1
  126. package/app/.next/server/chunks/[root-of-the-server]__0gukblk._.js +1 -1
  127. package/app/.next/server/chunks/[root-of-the-server]__0h-q5l0._.js +1 -1
  128. package/app/.next/server/chunks/[root-of-the-server]__0h1fgwr._.js +1 -1
  129. package/app/.next/server/chunks/[root-of-the-server]__0h86b7i._.js +1 -1
  130. package/app/.next/server/chunks/[root-of-the-server]__0h~a5f1._.js +1 -1
  131. package/app/.next/server/chunks/[root-of-the-server]__0irqapk._.js +1 -1
  132. package/app/.next/server/chunks/[root-of-the-server]__0j0ez8_._.js +2 -2
  133. package/app/.next/server/chunks/[root-of-the-server]__0jacr87._.js +1 -1
  134. package/app/.next/server/chunks/[root-of-the-server]__0jnihz9._.js +1 -1
  135. package/app/.next/server/chunks/[root-of-the-server]__0jp3yj4._.js +1 -1
  136. package/app/.next/server/chunks/[root-of-the-server]__0llqbda._.js +2 -2
  137. package/app/.next/server/chunks/[root-of-the-server]__0m-356c._.js +1 -1
  138. package/app/.next/server/chunks/[root-of-the-server]__0mj7x5~._.js +8 -8
  139. package/app/.next/server/chunks/[root-of-the-server]__0mpnloa._.js +1 -1
  140. package/app/.next/server/chunks/[root-of-the-server]__0n-~kvf._.js +1 -1
  141. package/app/.next/server/chunks/[root-of-the-server]__0n.gjo8._.js +2 -2
  142. package/app/.next/server/chunks/[root-of-the-server]__0n0nara._.js +1 -1
  143. package/app/.next/server/chunks/[root-of-the-server]__0ncz8xj._.js +1 -1
  144. package/app/.next/server/chunks/[root-of-the-server]__0oph175._.js +1 -1
  145. package/app/.next/server/chunks/[root-of-the-server]__0p3a7_l._.js +1 -1
  146. package/app/.next/server/chunks/[root-of-the-server]__0pl_899._.js +1 -1
  147. package/app/.next/server/chunks/[root-of-the-server]__0prott7._.js +2 -2
  148. package/app/.next/server/chunks/[root-of-the-server]__0pwiejj._.js +1 -1
  149. package/app/.next/server/chunks/[root-of-the-server]__0pxqo8v._.js +1 -1
  150. package/app/.next/server/chunks/[root-of-the-server]__0q04t~4._.js +1 -1
  151. package/app/.next/server/chunks/[root-of-the-server]__0q9h_5u._.js +1 -1
  152. package/app/.next/server/chunks/[root-of-the-server]__0qaruz-._.js +1 -1
  153. package/app/.next/server/chunks/[root-of-the-server]__0qka2s7._.js +1 -1
  154. package/app/.next/server/chunks/[root-of-the-server]__0rnvi83._.js +1 -1
  155. package/app/.next/server/chunks/[root-of-the-server]__0rpwwig._.js +1 -1
  156. package/app/.next/server/chunks/[root-of-the-server]__0rs2ec_._.js +1 -1
  157. package/app/.next/server/chunks/[root-of-the-server]__0s1dq3.._.js +1 -1
  158. package/app/.next/server/chunks/[root-of-the-server]__0s1ya.l._.js +5 -5
  159. package/app/.next/server/chunks/[root-of-the-server]__0svm~lc._.js +1 -1
  160. package/app/.next/server/chunks/[root-of-the-server]__0t83olx._.js +1 -1
  161. package/app/.next/server/chunks/[root-of-the-server]__0tsl88m._.js +1 -1
  162. package/app/.next/server/chunks/[root-of-the-server]__0uctzvq._.js +1 -1
  163. package/app/.next/server/chunks/[root-of-the-server]__0vkqjj1._.js +2 -2
  164. package/app/.next/server/chunks/[root-of-the-server]__0vwq47l._.js +1 -1
  165. package/app/.next/server/chunks/[root-of-the-server]__0vx1juw._.js +1 -1
  166. package/app/.next/server/chunks/[root-of-the-server]__0vzvfbd._.js +2 -2
  167. package/app/.next/server/chunks/[root-of-the-server]__0w39cdo._.js +1 -1
  168. package/app/.next/server/chunks/[root-of-the-server]__0wc__c~._.js +1 -1
  169. package/app/.next/server/chunks/[root-of-the-server]__0y2h760._.js +1 -1
  170. package/app/.next/server/chunks/[root-of-the-server]__0y_c7uk._.js +2 -2
  171. package/app/.next/server/chunks/[root-of-the-server]__0~8fltv._.js +1 -1
  172. package/app/.next/server/chunks/[root-of-the-server]__0~dj8ev._.js +2 -2
  173. package/app/.next/server/chunks/[root-of-the-server]__10.x-iq._.js +4 -4
  174. package/app/.next/server/chunks/[root-of-the-server]__10e1a_z._.js +2 -2
  175. package/app/.next/server/chunks/[root-of-the-server]__10o_k-p._.js +2 -2
  176. package/app/.next/server/chunks/[root-of-the-server]__10smy7g._.js +1 -1
  177. package/app/.next/server/chunks/[root-of-the-server]__11wa4b~._.js +1 -1
  178. package/app/.next/server/chunks/[root-of-the-server]__11xpr8u._.js +1 -1
  179. package/app/.next/server/chunks/[root-of-the-server]__122-jdl._.js +8 -8
  180. package/app/.next/server/chunks/[root-of-the-server]__12e9-l1._.js +1 -1
  181. package/app/.next/server/chunks/[root-of-the-server]__12gh.g1._.js +1 -1
  182. package/app/.next/server/chunks/[root-of-the-server]__136nal9._.js +1 -1
  183. package/app/.next/server/chunks/[root-of-the-server]__13_i443._.js +1 -1
  184. package/app/.next/server/chunks/[root-of-the-server]__13c-d_4._.js +2 -2
  185. package/app/.next/server/chunks/_0-jnvci._.js +1 -1
  186. package/app/.next/server/chunks/_0-~thzo._.js +1 -1
  187. package/app/.next/server/chunks/_00.pgsp._.js +1 -1
  188. package/app/.next/server/chunks/_013gowh._.js +1 -1
  189. package/app/.next/server/chunks/{_03c-j3o._.js → _02~yzex._.js} +2 -2
  190. package/app/.next/server/chunks/_036lxbr._.js +1 -1
  191. package/app/.next/server/chunks/_05reh6o._.js +1 -1
  192. package/app/.next/server/chunks/_0a3.3sc._.js +1 -1
  193. package/app/.next/server/chunks/_0c.abwr._.js +1 -1
  194. package/app/.next/server/chunks/_0due8oe._.js +2 -2
  195. package/app/.next/server/chunks/_0h-j8c2._.js +1 -1
  196. package/app/.next/server/chunks/_0k43pd6._.js +3 -3
  197. package/app/.next/server/chunks/_0vx-r0i._.js +2 -2
  198. package/app/.next/server/chunks/_10.rw9f._.js +1 -1
  199. package/app/.next/server/chunks/_13mo7j5._.js +1 -1
  200. package/app/.next/server/chunks/src_0f_le~m._.js +1 -1
  201. package/app/.next/server/chunks/ssr/_008ht2n._.js +2 -2
  202. package/app/.next/server/chunks/ssr/_0oo1f90._.js +2 -2
  203. package/app/.next/server/chunks/ssr/_0~laquj._.js +1 -1
  204. package/app/.next/server/chunks/ssr/src_04gjot1._.js +1 -1
  205. package/app/.next/server/chunks/ssr/src_app_(dashboard)_dashboard_cache_04_vca6._.js +1 -1
  206. package/app/.next/server/chunks/ssr/{src_app_(dashboard)_dashboard_settings_0ni3aus._.js → src_app_(dashboard)_dashboard_settings_09gq48u._.js} +2 -2
  207. package/app/.next/server/chunks/ssr/src_i18n_messages_en_json_[json]_cjs_13rg.m2._.js +1 -1
  208. package/app/.next/server/chunks/ssr/src_i18n_messages_pt-BR_json_[json]_cjs_01n5fvn._.js +1 -1
  209. package/app/.next/server/chunks/ssr/src_i18n_messages_pt_json_[json]_cjs_0fwb8p.._.js +1 -1
  210. package/app/.next/server/chunks/ssr/src_shared_0jy4djq._.js +3 -0
  211. package/app/.next/server/chunks/ssr/src_shared_components_0v5o286._.js +3 -0
  212. package/app/.next/server/middleware-build-manifest.js +3 -3
  213. package/app/.next/server/pages/500.html +1 -1
  214. package/app/.next/server/server-reference-manifest.js +1 -1
  215. package/app/.next/server/server-reference-manifest.json +1 -1
  216. package/app/.next/static/chunks/{03~_6b5~n101_.js → 0.ap2gsi3d-1e.js} +1 -1
  217. package/app/.next/static/chunks/08iujr48xci8k.js +1 -0
  218. package/app/.next/static/chunks/{0up_y.7qkqwxz.js → 08n6n76lz~vt6.js} +1 -1
  219. package/app/.next/static/chunks/{060zmf~qn1q6y.js → 0f611s~575pn8.js} +1 -1
  220. package/app/.next/static/chunks/0y5kx9rgeb6~_.js +1 -0
  221. package/app/.next/static/chunks/13xz-222deqiy.js +1 -0
  222. package/app/CHANGELOG.md +18 -0
  223. package/app/docs/openapi.yaml +1 -1
  224. package/app/llm.txt +2 -2
  225. package/app/open-sse/handlers/chatCore.ts +2 -2
  226. package/app/open-sse/package.json +1 -1
  227. package/app/open-sse/translator/request/claude-to-gemini.ts +17 -0
  228. package/app/open-sse/translator/request/openai-to-gemini.ts +14 -3
  229. package/app/open-sse/utils/stream.ts +2 -2
  230. package/app/package-lock.json +3 -3
  231. package/app/package.json +1 -1
  232. package/app/src/app/(dashboard)/dashboard/cache/components/CacheTrends.tsx +19 -12
  233. package/app/src/app/(dashboard)/dashboard/cache/page.tsx +0 -3
  234. package/app/src/app/(dashboard)/dashboard/memory/page.tsx +20 -20
  235. package/app/src/i18n/messages/en.json +55 -1
  236. package/app/src/i18n/messages/pt-BR.json +53 -0
  237. package/app/src/i18n/messages/pt.json +54 -1
  238. package/app/src/shared/constants/providers.ts +40 -0
  239. package/app/src/shared/constants/sidebarVisibility.ts +6 -0
  240. package/app/src/shared/utils/circuitBreaker.ts +14 -4
  241. package/package.json +1 -1
  242. package/app/.next/server/chunks/ssr/src_05ekey-._.js +0 -3
  243. package/app/.next/server/chunks/ssr/src_100xxow._.js +0 -3
  244. package/app/.next/static/chunks/05tcrkqknq.20.js +0 -1
  245. package/app/.next/static/chunks/0eng4c9gz1s4..js +0 -1
  246. package/app/.next/static/chunks/0go~kwn1zgxnd.js +0 -1
  247. /package/app/.next/static/{Dbb1D6OoD7WlyZuPBm3L6 → ImZm5czz4prt8gnJPx7vv}/_buildManifest.js +0 -0
  248. /package/app/.next/static/{Dbb1D6OoD7WlyZuPBm3L6 → ImZm5czz4prt8gnJPx7vv}/_clientMiddlewareManifest.js +0 -0
  249. /package/app/.next/static/{Dbb1D6OoD7WlyZuPBm3L6 → ImZm5czz4prt8gnJPx7vv}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- module.exports=[113792,a=>{"use strict";a.s(["default",0,{name:"omniroute",version:"3.4.5",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"node scripts/build-next-isolated.mjs","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"c8 --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 55 --lines 55 --functions 55 --branches 60 node --import tsx/esm --test tests/unit/*.test.mjs","test:coverage:legacy":"c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","coverage:report":"c8 report --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov","coverage:report:legacy":"c8 report --exclude=open-sse --reporter=text --reporter=text-summary","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@lobehub/icons":"^5.0.1","@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0","@swc/helpers":"0.5.19",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3","js-yaml":"^4.1.0",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.0.10","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",yazl:"^3.3.1",zod:"^4.3.6",zustand:"^5.0.10"},optionalDependencies:{keytar:"^7.9.0"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/keytar":"^4.4.0","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1",c8:"^11.0.0",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"^16.0.10",husky:"^9.1.7",jsdom:"^29.0.1","lint-staged":"^16.2.7",prettier:"^3.8.1","prop-types":"^15.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]},overrides:{"lodash-es":"^4.18.1",dompurify:"^3.3.2","path-to-regexp":"^8.4.0",react:"$react","react-dom":"$react-dom"}}])},978251,a=>a.a(async(b,c)=>{try{var d=a.i(677850),e=b([d]);[d]=e.then?(await e)():e;let f=d.z.object({id:d.z.string().min(1),alias:d.z.string().min(1).optional(),name:d.z.string().min(1),icon:d.z.string().min(1),color:d.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:d.z.string().optional(),website:d.z.string().url().optional(),passthroughModels:d.z.boolean().optional(),deprecated:d.z.boolean().optional(),deprecationReason:d.z.string().optional(),hasFree:d.z.boolean().optional(),freeNote:d.z.string().optional(),authHint:d.z.string().optional(),apiHint:d.z.string().optional()}),g=d.z.record(d.z.string(),f);a.s(["validateProviders",0,function(a,b){let c=g.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
2
- ${a}`),Error(`Provider validation failed for ${b}`)}}]),c()}catch(a){c(a)}},!1),549276,a=>a.a(async(b,c)=>{try{var d=a.i(978251),e=b([d]);[d]=e.then?(await e)():e;let f={qoder:{id:"qoder",alias:"if",name:"Qoder AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gemini-cli",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationReason:"Google restricts third-party OAuth usage for Gemini CLI (Mar 2026). Pro models require paid plans. Use 'gemini' (API key) provider instead."},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},g={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:void 0,name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},h={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"bailian-coding-plan":{id:"bailian-coding-plan",alias:"bcp",name:"Alibaba Coding Plan",icon:"code",color:"#FF6A00",textIcon:"BCP",website:"https://www.alibabacloud.com/help/en/model-studio/coding-plan"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},"kimi-coding-apikey":{id:"kimi-coding-apikey",alias:"kmca",name:"Kimi Coding (API Key)",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.com"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini (Google AI Studio)",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",hasFree:!0,freeNote:"Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",hasFree:!0,freeNote:"$25 signup credits + 3 permanently free models: Llama 3.3 70B, Vision, DeepSeek-R1 distill"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},synthetic:{id:"synthetic",alias:"synthetic",name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new",passthroughModels:!0},"kilo-gateway":{id:"kilo-gateway",alias:"kg",name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai",passthroughModels:!0},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"},zai:{id:"zai",alias:"zai",name:"Z.AI",icon:"psychology",color:"#2563EB",textIcon:"ZA",website:"https://open.bigmodel.cn",apiHint:"API key from https://open.bigmodel.cn/usercenter/apikeys"},"perplexity-search":{id:"perplexity-search",alias:"pplx-search",name:"Perplexity Search",icon:"search",color:"#20808D",textIcon:"PS",website:"https://docs.perplexity.ai/guides/search-quickstart",authHint:"Same API key as Perplexity (pplx-...)"},"serper-search":{id:"serper-search",alias:"serper-search",name:"Serper Search",icon:"search",color:"#4285F4",textIcon:"SP",website:"https://serper.dev",authHint:"API key from serper.dev dashboard"},"brave-search":{id:"brave-search",alias:"brave-search",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",authHint:"Subscription token from Brave Search API dashboard"},"exa-search":{id:"exa-search",alias:"exa-search",name:"Exa Search",icon:"neurology",color:"#1E40AF",textIcon:"EX",website:"https://exa.ai",authHint:"API key from dashboard.exa.ai"},"tavily-search":{id:"tavily-search",alias:"tavily-search",name:"Tavily Search",icon:"manage_search",color:"#5B4FDB",textIcon:"TV",website:"https://tavily.com",authHint:"API key from app.tavily.com (format: tvly-...)"},"opencode-zen":{id:"opencode-zen",alias:"opencode-zen",name:"OpenCode Zen",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen"},"opencode-go":{id:"opencode-go",alias:"opencode-go",name:"OpenCode Go",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen/go"},alibaba:{id:"alibaba",alias:"ali",name:"Alibaba Cloud (DashScope)",icon:"cloud_queue",color:"#FF6600",textIcon:"AL",website:"https://dashscope-intl.aliyuncs.com",hasFree:!1},longcat:{id:"longcat",alias:"lc",name:"LongCat AI",icon:"auto_awesome",color:"#FF6B9D",textIcon:"LC",website:"https://longcat.chat",hasFree:!0,freeNote:"50M tokens/day (Flash-Lite) + 500K/day (Chat/Thinking) — 100% free while public beta"},pollinations:{id:"pollinations",alias:"pol",name:"Pollinations AI",icon:"local_florist",color:"#4CAF50",textIcon:"PO",website:"https://pollinations.ai",hasFree:!0,freeNote:"No API key needed — access GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 free (1 req/15s)"},puter:{id:"puter",alias:"pu",name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",hasFree:!0,freeNote:"500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account",passthroughModels:!0,authHint:"Get token at puter.com/dashboard → Copy Auth Token"},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare Workers AI",icon:"cloud",color:"#F48120",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",hasFree:!0,freeNote:"Free 10K Neurons/day: ~150 LLM responses or 500s Whisper audio — edge inference globally",authHint:"Requires API Token AND Account ID (found at dash.cloudflare.com)"},scaleway:{id:"scaleway",alias:"scw",name:"Scaleway AI",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/ai/generative-apis/",hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B"},aimlapi:{id:"aimlapi",alias:"aiml",name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com",hasFree:!0,freeNote:"$0.025/day free credits — 200+ models (GPT-4o, Claude, Gemini, Llama) via single endpoint",passthroughModels:!0}},i={...f,...g,...h,cliproxyapi:{id:"cliproxyapi",alias:"cpa",name:"CLIProxyAPI",icon:"proxy",color:"#6366F1",textIcon:"CPA",website:"https://github.com/router-for-me/CLIProxyAPI",defaultPort:8317,healthEndpoint:"/v1/models",managementPrefix:"/v0/management",configDir:"~/.cli-proxy-api",binaryName:"cli-proxy-api",githubRepo:"router-for-me/CLIProxyAPI"}};Object.values(i).reduce((a,b)=>(b.alias&&(a[b.alias]=b.id),a),{}),Object.values(i).reduce((a,b)=>(a[b.id]=b.alias||b.id,a),{}),(0,d.validateProviders)(f,"FREE_PROVIDERS"),(0,d.validateProviders)(g,"OAUTH_PROVIDERS"),(0,d.validateProviders)(h,"APIKEY_PROVIDERS"),a.s(["AI_PROVIDERS",0,i,"APIKEY_PROVIDERS",0,h,"FREE_PROVIDERS",0,f,"OAUTH_PROVIDERS",0,g]),c()}catch(a){c(a)}},!1),728972,a=>a.a(async(b,c)=>{try{var d=a.i(958301),e=a.i(549276),f=b([e]);[e]=f.then?(await f)():f,Object.entries(e.AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),a.s([]),c()}catch(a){c(a)}},!1),895812,a=>a.a(async(b,c)=>{try{var d=a.i(113792),e=a.i(549276),f=a.i(728972),g=b([e,f]);[e,f]=g.then?(await g)():g;let h={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:d.default.version};a.s(["APP_CONFIG",0,h]),c()}catch(a){c(a)}},!1),831575,a=>a.a(async(b,c)=>{try{var d=a.i(907997),e=a.i(395936),f=a.i(442979),g=a.i(895812),h=a.i(549276),i=b([g,h]);[g,h]=i.then?(await i)():i;let k=[{path:"/v1/chat/completions",method:"POST",noteKey:"endpointChatNote"},{path:"/v1/responses",method:"POST",noteKey:"endpointResponsesNote"},{path:"/v1/models",method:"GET",noteKey:"endpointModelsNote"},{path:"/v1/embeddings",method:"POST",noteKey:"endpointEmbeddingsNote"},{path:"/v1/audio/transcriptions",method:"POST",noteKey:"endpointAudioNote"},{path:"/v1/audio/speech",method:"POST",noteKey:"endpointSpeechNote"},{path:"/v1/images/generations",method:"POST",noteKey:"endpointImagesNote"},{path:"/chat/completions",method:"POST",noteKey:"endpointRewriteChatNote"},{path:"/responses",method:"POST",noteKey:"endpointRewriteResponsesNote"},{path:"/models",method:"GET",noteKey:"endpointRewriteModelsNote"}],l=[{path:"/api/v1/management/proxies",method:"GET",noteKey:"mgmtProxiesListNote"},{path:"/api/v1/management/proxies",method:"POST",noteKey:"mgmtProxiesCreateNote"},{path:"/api/v1/management/proxies/health",method:"GET",noteKey:"mgmtProxiesHealthNote"},{path:"/api/v1/management/proxies/bulk-assign",method:"PUT",noteKey:"mgmtProxiesBulkAssignNote"},{path:"/api/v1/management/proxies/assignments",method:"GET",noteKey:"mgmtAssignmentsListNote"},{path:"/api/v1/management/proxies/assignments",method:"PUT",noteKey:"mgmtAssignmentsUpdateNote"},{path:"/api/settings/proxies/migrate",method:"POST",noteKey:"mgmtLegacyMigrationNote"}],m=[{icon:"hub",titleKey:"featureRoutingTitle",textKey:"featureRoutingText"},{icon:"layers",titleKey:"featureCombosTitle",textKey:"featureCombosText"},{icon:"bar_chart",titleKey:"featureUsageTitle",textKey:"featureUsageText"},{icon:"analytics",titleKey:"featureAnalyticsTitle",textKey:"featureAnalyticsText"},{icon:"health_and_safety",titleKey:"featureHealthTitle",textKey:"featureHealthText"},{icon:"terminal",titleKey:"featureCliTitle",textKey:"featureCliText"},{icon:"shield",titleKey:"featureSecurityTitle",textKey:"featureSecurityText"},{icon:"cloud_sync",titleKey:"featureCloudSyncTitle",textKey:"featureCloudSyncText"}],n=[{titleKey:"useCaseSingleEndpointTitle",textKey:"useCaseSingleEndpointText"},{titleKey:"useCaseFallbackTitle",textKey:"useCaseFallbackText"},{titleKey:"useCaseUsageVisibilityTitle",textKey:"useCaseUsageVisibilityText"}],o=["troubleshootingModelRouting","troubleshootingAmbiguousModels","troubleshootingCodexFamily","troubleshootingTestConnection","troubleshootingCircuitBreaker","troubleshootingOAuth"],p=[{href:"#quick-start",labelKey:"quickStart"},{href:"#features",labelKey:"features"},{href:"#supported-providers",labelKey:"supportedProvidersToc"},{href:"#use-cases",labelKey:"commonUseCases"},{href:"#client-compatibility",labelKey:"clientCompatibility"},{href:"#protocols",labelKey:"protocolsToc"},{href:"#api-reference",labelKey:"apiReference"},{href:"#management-api",labelKey:"managementApiReference"},{href:"#model-prefixes",labelKey:"modelPrefixes"},{href:"#troubleshooting",labelKey:"troubleshooting"}];function j({title:a,providers:b,colorDot:c}){let e=(0,f.useTranslations)("docs"),g=Object.values(b);return(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-bg p-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,d.jsx)("span",{className:`size-2.5 rounded-full ${c}`}),(0,d.jsx)("h3",{className:"font-semibold",children:a}),(0,d.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:e("providersCount",{count:g.length})})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm",children:g.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0",children:[(0,d.jsx)("span",{className:"font-medium",children:a.name}),(0,d.jsxs)("code",{className:"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle",children:[a.alias,"/"]})]},a.id))})]})}a.s(["default",0,function(){let a=(0,f.useTranslations)("docs"),b=Object.keys(h.FREE_PROVIDERS).length+Object.keys(h.OAUTH_PROVIDERS).length+Object.keys(h.APIKEY_PROVIDERS).length,c=k.map(b=>({...b,note:a(b.noteKey)})),i=l.map(b=>({...b,note:a(b.noteKey)})),q=m.map(b=>({...b,title:a(b.titleKey),text:a(b.textKey)})),r=n.map(b=>({...b,title:a(b.titleKey),text:a(b.textKey)})),s=o.map(b=>a(b)),t=p.map(b=>({...b,label:a(b.labelKey)})),u=[...Object.values(h.FREE_PROVIDERS).map(a=>({...a,type:"free"})),...Object.values(h.OAUTH_PROVIDERS).map(a=>({...a,type:"oauth"})),...Object.values(h.APIKEY_PROVIDERS).map(a=>({...a,type:"apiKey"}))];return(0,d.jsx)("div",{className:"min-h-screen bg-bg text-text-main",children:(0,d.jsxs)("div",{className:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8",children:[(0,d.jsx)("header",{className:"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xs uppercase tracking-wider text-text-muted",children:a("documentationVersion",{version:g.APP_CONFIG.version})}),(0,d.jsxs)("h1",{className:"text-3xl md:text-4xl font-bold mt-1",children:[g.APP_CONFIG.name," ",a("docsLabel")]}),(0,d.jsx)("p",{className:"text-sm md:text-base text-text-muted mt-2 max-w-3xl",children:a("docsHeroDescription")})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(e.default,{href:"/dashboard",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("openDashboard")}),(0,d.jsx)(e.default,{href:"/dashboard/endpoint",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("endpointPage")}),(0,d.jsxs)("a",{href:"https://github.com/diegosouzapw/OmniRoute",target:"_blank",rel:"noopener noreferrer",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors flex items-center gap-1",children:[a("github")," ",(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]}),(0,d.jsx)("a",{href:"https://github.com/diegosouzapw/OmniRoute/issues",target:"_blank",rel:"noopener noreferrer",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("reportIssue")})]})]})}),(0,d.jsxs)("nav",{className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wider text-text-muted mb-3",children:a("onThisPage")}),(0,d.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 text-sm",children:t.map(a=>(0,d.jsxs)("a",{href:a.href,className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"tag"}),a.label]},a.href))})]}),(0,d.jsxs)("section",{id:"quick-start",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("quickStart")}),(0,d.jsxs)("ol",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep1Title")}),(0,d.jsxs)("p",{className:"text-text-muted mt-1",children:[a("quickStartStep1Prefix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"npx omniroute"})," ",a("quickStartStep1Middle")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"npm start"}),"."]})]}),(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep2Title")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("quickStartStep2Text")})]}),(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep3Title")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("quickStartStep3Text")})]}),(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep4Title")}),(0,d.jsxs)("p",{className:"text-text-muted mt-1",children:[a("quickStartStep4Prefix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"https://<host>/v1"}),"."," ",a("quickStartStep4Suffix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"gh/gpt-5.1-codex"}),"."]})]})]})]}),(0,d.jsxs)("section",{id:"features",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("features")}),(0,d.jsx)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3",children:q.map(a=>(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg flex gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5",children:a.icon}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"font-semibold text-sm",children:a.title}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:a.text})]})]},a.titleKey))})]}),(0,d.jsxs)("section",{id:"supported-providers",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("supportedProviders")}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:a("providersAcrossConnectionTypes",{count:b})})]}),(0,d.jsx)(e.default,{href:"/dashboard/providers",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("manageProviders")})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-3",children:[(0,d.jsx)(j,{title:a("providerTypeFree"),providers:h.FREE_PROVIDERS,colorDot:"bg-green-500"}),(0,d.jsx)(j,{title:a("providerTypeOAuth"),providers:h.OAUTH_PROVIDERS,colorDot:"bg-blue-500"}),(0,d.jsx)(j,{title:a("providerTypeApiKey"),providers:h.APIKEY_PROVIDERS,colorDot:"bg-amber-500"})]})]}),(0,d.jsxs)("section",{id:"use-cases",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("commonUseCases")}),(0,d.jsx)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3",children:r.map(a=>(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a.title}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-2",children:a.text})]},a.titleKey))})]}),(0,d.jsxs)("section",{id:"client-compatibility",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("clientCompatibility")}),(0,d.jsxs)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientCherryStudioTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("baseUrlLabel"),":"," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"https://<host>/v1"})]}),(0,d.jsxs)("li",{children:[a("chatEndpointLabel"),":"," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"/chat/completions"})]}),(0,d.jsxs)("li",{children:[a("modelRecommendationLabel")," (",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"gh/..."}),","," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"cc/..."}),")"]})]})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientCodexTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("clientCodexBullet1")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"gh/"}),"."]}),(0,d.jsxs)("li",{children:[a("clientCodexBullet2")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"/responses"}),"."]}),(0,d.jsxs)("li",{children:[a("clientCodexBullet3")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"/chat/completions"}),"."]})]})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientCursorTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("clientCursorBullet1")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"cu/"})," ",a("clientCursorBullet1Suffix")]}),(0,d.jsx)("li",{children:a("clientCursorBullet2")}),(0,d.jsx)("li",{children:a("supportsChat")})]})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientClaudeTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("clientClaudeBullet1Prefix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"cc/"})," ",a("clientClaudeBullet1Middle")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"antigravity/"})," ",a("clientClaudeBullet1Suffix")]}),(0,d.jsx)("li",{children:a("oauthAutoRefresh")}),(0,d.jsx)("li",{children:a("fullStreaming")})]})]})]})]}),(0,d.jsxs)("section",{id:"protocols",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("protocolsTitle")}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-2",children:a("protocolsDescription")}),(0,d.jsxs)("div",{className:"mt-4 grid grid-cols-1 lg:grid-cols-2 gap-4 text-sm",children:[(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("protocolMcpTitle")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("protocolMcpDesc")}),(0,d.jsxs)("ol",{className:"mt-3 list-decimal list-inside space-y-1 text-text-muted",children:[(0,d.jsx)("li",{children:a("protocolMcpStep1")}),(0,d.jsx)("li",{children:a("protocolMcpStep2")}),(0,d.jsx)("li",{children:a("protocolMcpStep3")})]}),(0,d.jsx)("pre",{className:"mt-3 p-3 rounded-lg border border-border bg-bg overflow-x-auto text-xs",children:(0,d.jsx)("code",{children:"omniroute --mcp"})})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("protocolA2aTitle")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("protocolA2aDesc")}),(0,d.jsxs)("ol",{className:"mt-3 list-decimal list-inside space-y-1 text-text-muted",children:[(0,d.jsx)("li",{children:a("protocolA2aStep1")}),(0,d.jsx)("li",{children:a("protocolA2aStep2")}),(0,d.jsx)("li",{children:a("protocolA2aStep3")})]}),(0,d.jsx)("pre",{className:"mt-3 p-3 rounded-lg border border-border bg-bg overflow-x-auto text-xs",children:(0,d.jsx)("code",{children:`GET /.well-known/agent.json
1
+ module.exports=[113792,a=>{"use strict";a.s(["default",0,{name:"omniroute",version:"3.4.6",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"node scripts/build-next-isolated.mjs","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"c8 --exclude=tests/** --exclude=**/*.test.* --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov --check-coverage --statements 55 --lines 55 --functions 55 --branches 60 node --import tsx/esm --test tests/unit/*.test.mjs","test:coverage:legacy":"c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","coverage:report":"c8 report --exclude=tests/** --exclude=**/*.test.* --reporter=text --reporter=text-summary --reporter=html --reporter=json-summary --reporter=lcov","coverage:report:legacy":"c8 report --exclude=open-sse --reporter=text --reporter=text-summary","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@lobehub/icons":"^5.0.1","@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0","@swc/helpers":"0.5.19",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3","js-yaml":"^4.1.0",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.0.10","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",yazl:"^3.3.1",zod:"^4.3.6",zustand:"^5.0.10"},optionalDependencies:{keytar:"^7.9.0"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/keytar":"^4.4.0","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1",c8:"^11.0.0",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"^16.0.10",husky:"^9.1.7",jsdom:"^29.0.1","lint-staged":"^16.2.7",prettier:"^3.8.1","prop-types":"^15.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]},overrides:{"lodash-es":"^4.18.1",dompurify:"^3.3.2","path-to-regexp":"^8.4.0",react:"$react","react-dom":"$react-dom"}}])},978251,a=>a.a(async(b,c)=>{try{var d=a.i(677850),e=b([d]);[d]=e.then?(await e)():e;let f=d.z.object({id:d.z.string().min(1),alias:d.z.string().min(1).optional(),name:d.z.string().min(1),icon:d.z.string().min(1),color:d.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:d.z.string().optional(),website:d.z.string().url().optional(),passthroughModels:d.z.boolean().optional(),deprecated:d.z.boolean().optional(),deprecationReason:d.z.string().optional(),hasFree:d.z.boolean().optional(),freeNote:d.z.string().optional(),authHint:d.z.string().optional(),apiHint:d.z.string().optional()}),g=d.z.record(d.z.string(),f);a.s(["validateProviders",0,function(a,b){let c=g.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
2
+ ${a}`),Error(`Provider validation failed for ${b}`)}}]),c()}catch(a){c(a)}},!1),549276,a=>a.a(async(b,c)=>{try{var d=a.i(978251),e=b([d]);[d]=e.then?(await e)():e;let f={qoder:{id:"qoder",alias:"if",name:"Qoder AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gemini-cli",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationReason:"Google restricts third-party OAuth usage for Gemini CLI (Mar 2026). Pro models require paid plans. Use 'gemini' (API key) provider instead."},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},g={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:void 0,name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},h={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"bailian-coding-plan":{id:"bailian-coding-plan",alias:"bcp",name:"Alibaba Coding Plan",icon:"code",color:"#FF6A00",textIcon:"BCP",website:"https://www.alibabacloud.com/help/en/model-studio/coding-plan"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},"kimi-coding-apikey":{id:"kimi-coding-apikey",alias:"kmca",name:"Kimi Coding (API Key)",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.com"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini (Google AI Studio)",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",hasFree:!0,freeNote:"Free forever: 1,500 req/day for Gemini 2.5 Flash — no credit card, get key at aistudio.google.com"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",hasFree:!0,freeNote:"$25 signup credits + 3 permanently free models: Llama 3.3 70B, Vision, DeepSeek-R1 distill"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},synthetic:{id:"synthetic",alias:"synthetic",name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new",passthroughModels:!0},"kilo-gateway":{id:"kilo-gateway",alias:"kg",name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai",passthroughModels:!0},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"},zai:{id:"zai",alias:"zai",name:"Z.AI",icon:"psychology",color:"#2563EB",textIcon:"ZA",website:"https://open.bigmodel.cn",apiHint:"API key from https://open.bigmodel.cn/usercenter/apikeys"},"perplexity-search":{id:"perplexity-search",alias:"pplx-search",name:"Perplexity Search",icon:"search",color:"#20808D",textIcon:"PS",website:"https://docs.perplexity.ai/guides/search-quickstart",authHint:"Same API key as Perplexity (pplx-...)"},"serper-search":{id:"serper-search",alias:"serper-search",name:"Serper Search",icon:"search",color:"#4285F4",textIcon:"SP",website:"https://serper.dev",authHint:"API key from serper.dev dashboard"},"brave-search":{id:"brave-search",alias:"brave-search",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",authHint:"Subscription token from Brave Search API dashboard"},"exa-search":{id:"exa-search",alias:"exa-search",name:"Exa Search",icon:"neurology",color:"#1E40AF",textIcon:"EX",website:"https://exa.ai",authHint:"API key from dashboard.exa.ai"},"tavily-search":{id:"tavily-search",alias:"tavily-search",name:"Tavily Search",icon:"manage_search",color:"#5B4FDB",textIcon:"TV",website:"https://tavily.com",authHint:"API key from app.tavily.com (format: tvly-...)"},"opencode-zen":{id:"opencode-zen",alias:"opencode-zen",name:"OpenCode Zen",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen"},"opencode-go":{id:"opencode-go",alias:"opencode-go",name:"OpenCode Go",icon:"opencode",color:"#6366f1",website:"https://opencode.ai/zen/go"},alibaba:{id:"alibaba",alias:"ali",name:"Alibaba Cloud (DashScope)",icon:"cloud_queue",color:"#FF6600",textIcon:"AL",website:"https://dashscope-intl.aliyuncs.com",hasFree:!1},longcat:{id:"longcat",alias:"lc",name:"LongCat AI",icon:"auto_awesome",color:"#FF6B9D",textIcon:"LC",website:"https://longcat.chat",hasFree:!0,freeNote:"50M tokens/day (Flash-Lite) + 500K/day (Chat/Thinking) — 100% free while public beta"},pollinations:{id:"pollinations",alias:"pol",name:"Pollinations AI",icon:"local_florist",color:"#4CAF50",textIcon:"PO",website:"https://pollinations.ai",hasFree:!0,freeNote:"No API key needed — access GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 free (1 req/15s)"},puter:{id:"puter",alias:"pu",name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",hasFree:!0,freeNote:"500+ models (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3...) — Users pay via free Puter account",passthroughModels:!0,authHint:"Get token at puter.com/dashboard → Copy Auth Token"},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare Workers AI",icon:"cloud",color:"#F48120",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",hasFree:!0,freeNote:"Free 10K Neurons/day: ~150 LLM responses or 500s Whisper audio — edge inference globally",authHint:"Requires API Token AND Account ID (found at dash.cloudflare.com)"},scaleway:{id:"scaleway",alias:"scw",name:"Scaleway AI",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/ai/generative-apis/",hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris), Qwen3 235B & Llama 70B"},aimlapi:{id:"aimlapi",alias:"aiml",name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com",hasFree:!0,freeNote:"$0.025/day free credits — 200+ models (GPT-4o, Claude, Gemini, Llama) via single endpoint",passthroughModels:!0},novita:{id:"novita",alias:"novita",name:"Novita AI",icon:"auto_awesome",color:"#FF4081",textIcon:"NV",website:"https://novita.ai",passthroughModels:!0},piapi:{id:"piapi",alias:"pi",name:"PiAPI",icon:"api",color:"#7C4DFF",textIcon:"PI",website:"https://piapi.ai",passthroughModels:!0},getgoapi:{id:"getgoapi",alias:"ggo",name:"GoAPI",icon:"rocket_launch",color:"#FF6D00",textIcon:"GO",website:"https://api.getgoapi.com",passthroughModels:!0},laozhang:{id:"laozhang",alias:"lz",name:"LaoZhang AI",icon:"hub",color:"#FF1744",textIcon:"LZ",website:"https://api.laozhang.ai",passthroughModels:!0}},i={...f,...g,...h,cliproxyapi:{id:"cliproxyapi",alias:"cpa",name:"CLIProxyAPI",icon:"proxy",color:"#6366F1",textIcon:"CPA",website:"https://github.com/router-for-me/CLIProxyAPI",defaultPort:8317,healthEndpoint:"/v1/models",managementPrefix:"/v0/management",configDir:"~/.cli-proxy-api",binaryName:"cli-proxy-api",githubRepo:"router-for-me/CLIProxyAPI"}};Object.values(i).reduce((a,b)=>(b.alias&&(a[b.alias]=b.id),a),{}),Object.values(i).reduce((a,b)=>(a[b.id]=b.alias||b.id,a),{}),(0,d.validateProviders)(f,"FREE_PROVIDERS"),(0,d.validateProviders)(g,"OAUTH_PROVIDERS"),(0,d.validateProviders)(h,"APIKEY_PROVIDERS"),a.s(["AI_PROVIDERS",0,i,"APIKEY_PROVIDERS",0,h,"FREE_PROVIDERS",0,f,"OAUTH_PROVIDERS",0,g]),c()}catch(a){c(a)}},!1),728972,a=>a.a(async(b,c)=>{try{var d=a.i(958301),e=a.i(549276),f=b([e]);[e]=f.then?(await f)():f,Object.entries(e.AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),a.s([]),c()}catch(a){c(a)}},!1),895812,a=>a.a(async(b,c)=>{try{var d=a.i(113792),e=a.i(549276),f=a.i(728972),g=b([e,f]);[e,f]=g.then?(await g)():g;let h={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:d.default.version};a.s(["APP_CONFIG",0,h]),c()}catch(a){c(a)}},!1),831575,a=>a.a(async(b,c)=>{try{var d=a.i(907997),e=a.i(395936),f=a.i(442979),g=a.i(895812),h=a.i(549276),i=b([g,h]);[g,h]=i.then?(await i)():i;let k=[{path:"/v1/chat/completions",method:"POST",noteKey:"endpointChatNote"},{path:"/v1/responses",method:"POST",noteKey:"endpointResponsesNote"},{path:"/v1/models",method:"GET",noteKey:"endpointModelsNote"},{path:"/v1/embeddings",method:"POST",noteKey:"endpointEmbeddingsNote"},{path:"/v1/audio/transcriptions",method:"POST",noteKey:"endpointAudioNote"},{path:"/v1/audio/speech",method:"POST",noteKey:"endpointSpeechNote"},{path:"/v1/images/generations",method:"POST",noteKey:"endpointImagesNote"},{path:"/chat/completions",method:"POST",noteKey:"endpointRewriteChatNote"},{path:"/responses",method:"POST",noteKey:"endpointRewriteResponsesNote"},{path:"/models",method:"GET",noteKey:"endpointRewriteModelsNote"}],l=[{path:"/api/v1/management/proxies",method:"GET",noteKey:"mgmtProxiesListNote"},{path:"/api/v1/management/proxies",method:"POST",noteKey:"mgmtProxiesCreateNote"},{path:"/api/v1/management/proxies/health",method:"GET",noteKey:"mgmtProxiesHealthNote"},{path:"/api/v1/management/proxies/bulk-assign",method:"PUT",noteKey:"mgmtProxiesBulkAssignNote"},{path:"/api/v1/management/proxies/assignments",method:"GET",noteKey:"mgmtAssignmentsListNote"},{path:"/api/v1/management/proxies/assignments",method:"PUT",noteKey:"mgmtAssignmentsUpdateNote"},{path:"/api/settings/proxies/migrate",method:"POST",noteKey:"mgmtLegacyMigrationNote"}],m=[{icon:"hub",titleKey:"featureRoutingTitle",textKey:"featureRoutingText"},{icon:"layers",titleKey:"featureCombosTitle",textKey:"featureCombosText"},{icon:"bar_chart",titleKey:"featureUsageTitle",textKey:"featureUsageText"},{icon:"analytics",titleKey:"featureAnalyticsTitle",textKey:"featureAnalyticsText"},{icon:"health_and_safety",titleKey:"featureHealthTitle",textKey:"featureHealthText"},{icon:"terminal",titleKey:"featureCliTitle",textKey:"featureCliText"},{icon:"shield",titleKey:"featureSecurityTitle",textKey:"featureSecurityText"},{icon:"cloud_sync",titleKey:"featureCloudSyncTitle",textKey:"featureCloudSyncText"}],n=[{titleKey:"useCaseSingleEndpointTitle",textKey:"useCaseSingleEndpointText"},{titleKey:"useCaseFallbackTitle",textKey:"useCaseFallbackText"},{titleKey:"useCaseUsageVisibilityTitle",textKey:"useCaseUsageVisibilityText"}],o=["troubleshootingModelRouting","troubleshootingAmbiguousModels","troubleshootingCodexFamily","troubleshootingTestConnection","troubleshootingCircuitBreaker","troubleshootingOAuth"],p=[{href:"#quick-start",labelKey:"quickStart"},{href:"#features",labelKey:"features"},{href:"#supported-providers",labelKey:"supportedProvidersToc"},{href:"#use-cases",labelKey:"commonUseCases"},{href:"#client-compatibility",labelKey:"clientCompatibility"},{href:"#protocols",labelKey:"protocolsToc"},{href:"#api-reference",labelKey:"apiReference"},{href:"#management-api",labelKey:"managementApiReference"},{href:"#model-prefixes",labelKey:"modelPrefixes"},{href:"#troubleshooting",labelKey:"troubleshooting"}];function j({title:a,providers:b,colorDot:c}){let e=(0,f.useTranslations)("docs"),g=Object.values(b);return(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-bg p-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,d.jsx)("span",{className:`size-2.5 rounded-full ${c}`}),(0,d.jsx)("h3",{className:"font-semibold",children:a}),(0,d.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:e("providersCount",{count:g.length})})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-1 text-sm",children:g.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between py-1.5 border-b border-border/40 last:border-0",children:[(0,d.jsx)("span",{className:"font-medium",children:a.name}),(0,d.jsxs)("code",{className:"text-xs text-text-muted px-1.5 py-0.5 rounded bg-bg-subtle",children:[a.alias,"/"]})]},a.id))})]})}a.s(["default",0,function(){let a=(0,f.useTranslations)("docs"),b=Object.keys(h.FREE_PROVIDERS).length+Object.keys(h.OAUTH_PROVIDERS).length+Object.keys(h.APIKEY_PROVIDERS).length,c=k.map(b=>({...b,note:a(b.noteKey)})),i=l.map(b=>({...b,note:a(b.noteKey)})),q=m.map(b=>({...b,title:a(b.titleKey),text:a(b.textKey)})),r=n.map(b=>({...b,title:a(b.titleKey),text:a(b.textKey)})),s=o.map(b=>a(b)),t=p.map(b=>({...b,label:a(b.labelKey)})),u=[...Object.values(h.FREE_PROVIDERS).map(a=>({...a,type:"free"})),...Object.values(h.OAUTH_PROVIDERS).map(a=>({...a,type:"oauth"})),...Object.values(h.APIKEY_PROVIDERS).map(a=>({...a,type:"apiKey"}))];return(0,d.jsx)("div",{className:"min-h-screen bg-bg text-text-main",children:(0,d.jsxs)("div",{className:"mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10 md:py-14 flex flex-col gap-8",children:[(0,d.jsx)("header",{className:"rounded-2xl border border-border bg-bg-subtle p-6 md:p-8",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xs uppercase tracking-wider text-text-muted",children:a("documentationVersion",{version:g.APP_CONFIG.version})}),(0,d.jsxs)("h1",{className:"text-3xl md:text-4xl font-bold mt-1",children:[g.APP_CONFIG.name," ",a("docsLabel")]}),(0,d.jsx)("p",{className:"text-sm md:text-base text-text-muted mt-2 max-w-3xl",children:a("docsHeroDescription")})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(e.default,{href:"/dashboard",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("openDashboard")}),(0,d.jsx)(e.default,{href:"/dashboard/endpoint",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("endpointPage")}),(0,d.jsxs)("a",{href:"https://github.com/diegosouzapw/OmniRoute",target:"_blank",rel:"noopener noreferrer",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors flex items-center gap-1",children:[a("github")," ",(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]}),(0,d.jsx)("a",{href:"https://github.com/diegosouzapw/OmniRoute/issues",target:"_blank",rel:"noopener noreferrer",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("reportIssue")})]})]})}),(0,d.jsxs)("nav",{className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wider text-text-muted mb-3",children:a("onThisPage")}),(0,d.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 text-sm",children:t.map(a=>(0,d.jsxs)("a",{href:a.href,className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-border hover:bg-bg transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"tag"}),a.label]},a.href))})]}),(0,d.jsxs)("section",{id:"quick-start",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("quickStart")}),(0,d.jsxs)("ol",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep1Title")}),(0,d.jsxs)("p",{className:"text-text-muted mt-1",children:[a("quickStartStep1Prefix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"npx omniroute"})," ",a("quickStartStep1Middle")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"npm start"}),"."]})]}),(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep2Title")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("quickStartStep2Text")})]}),(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep3Title")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("quickStartStep3Text")})]}),(0,d.jsxs)("li",{className:"rounded-lg border border-border p-3 bg-bg",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("quickStartStep4Title")}),(0,d.jsxs)("p",{className:"text-text-muted mt-1",children:[a("quickStartStep4Prefix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"https://<host>/v1"}),"."," ",a("quickStartStep4Suffix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"gh/gpt-5.1-codex"}),"."]})]})]})]}),(0,d.jsxs)("section",{id:"features",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("features")}),(0,d.jsx)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3",children:q.map(a=>(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg flex gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary shrink-0 mt-0.5",children:a.icon}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"font-semibold text-sm",children:a.title}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:a.text})]})]},a.titleKey))})]}),(0,d.jsxs)("section",{id:"supported-providers",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("supportedProviders")}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:a("providersAcrossConnectionTypes",{count:b})})]}),(0,d.jsx)(e.default,{href:"/dashboard/providers",className:"px-3 py-2 rounded-lg border border-border text-sm hover:bg-bg transition-colors",children:a("manageProviders")})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-3",children:[(0,d.jsx)(j,{title:a("providerTypeFree"),providers:h.FREE_PROVIDERS,colorDot:"bg-green-500"}),(0,d.jsx)(j,{title:a("providerTypeOAuth"),providers:h.OAUTH_PROVIDERS,colorDot:"bg-blue-500"}),(0,d.jsx)(j,{title:a("providerTypeApiKey"),providers:h.APIKEY_PROVIDERS,colorDot:"bg-amber-500"})]})]}),(0,d.jsxs)("section",{id:"use-cases",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("commonUseCases")}),(0,d.jsx)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-3 gap-3",children:r.map(a=>(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a.title}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-2",children:a.text})]},a.titleKey))})]}),(0,d.jsxs)("section",{id:"client-compatibility",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("clientCompatibility")}),(0,d.jsxs)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientCherryStudioTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("baseUrlLabel"),":"," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"https://<host>/v1"})]}),(0,d.jsxs)("li",{children:[a("chatEndpointLabel"),":"," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"/chat/completions"})]}),(0,d.jsxs)("li",{children:[a("modelRecommendationLabel")," (",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"gh/..."}),","," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"cc/..."}),")"]})]})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientCodexTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("clientCodexBullet1")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"gh/"}),"."]}),(0,d.jsxs)("li",{children:[a("clientCodexBullet2")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"/responses"}),"."]}),(0,d.jsxs)("li",{children:[a("clientCodexBullet3")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"/chat/completions"}),"."]})]})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientCursorTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("clientCursorBullet1")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"cu/"})," ",a("clientCursorBullet1Suffix")]}),(0,d.jsx)("li",{children:a("clientCursorBullet2")}),(0,d.jsx)("li",{children:a("supportsChat")})]})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("clientClaudeTitle")}),(0,d.jsxs)("ul",{className:"mt-2 text-text-muted space-y-1",children:[(0,d.jsxs)("li",{children:[a("clientClaudeBullet1Prefix")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"cc/"})," ",a("clientClaudeBullet1Middle")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg-subtle",children:"antigravity/"})," ",a("clientClaudeBullet1Suffix")]}),(0,d.jsx)("li",{children:a("oauthAutoRefresh")}),(0,d.jsx)("li",{children:a("fullStreaming")})]})]})]})]}),(0,d.jsxs)("section",{id:"protocols",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("protocolsTitle")}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-2",children:a("protocolsDescription")}),(0,d.jsxs)("div",{className:"mt-4 grid grid-cols-1 lg:grid-cols-2 gap-4 text-sm",children:[(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("protocolMcpTitle")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("protocolMcpDesc")}),(0,d.jsxs)("ol",{className:"mt-3 list-decimal list-inside space-y-1 text-text-muted",children:[(0,d.jsx)("li",{children:a("protocolMcpStep1")}),(0,d.jsx)("li",{children:a("protocolMcpStep2")}),(0,d.jsx)("li",{children:a("protocolMcpStep3")})]}),(0,d.jsx)("pre",{className:"mt-3 p-3 rounded-lg border border-border bg-bg overflow-x-auto text-xs",children:(0,d.jsx)("code",{children:"omniroute --mcp"})})]}),(0,d.jsxs)("article",{className:"rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("protocolA2aTitle")}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:a("protocolA2aDesc")}),(0,d.jsxs)("ol",{className:"mt-3 list-decimal list-inside space-y-1 text-text-muted",children:[(0,d.jsx)("li",{children:a("protocolA2aStep1")}),(0,d.jsx)("li",{children:a("protocolA2aStep2")}),(0,d.jsx)("li",{children:a("protocolA2aStep3")})]}),(0,d.jsx)("pre",{className:"mt-3 p-3 rounded-lg border border-border bg-bg overflow-x-auto text-xs",children:(0,d.jsx)("code",{children:`GET /.well-known/agent.json
3
3
  POST /a2a (JSON-RPC: message/send | message/stream)`})})]})]}),(0,d.jsxs)("div",{className:"mt-4 rounded-lg border border-border p-4 bg-bg",children:[(0,d.jsx)("h3",{className:"font-semibold",children:a("protocolTroubleshootingTitle")}),(0,d.jsxs)("ul",{className:"mt-2 list-disc list-inside text-sm text-text-muted space-y-1",children:[(0,d.jsx)("li",{children:a("protocolTroubleshooting1")}),(0,d.jsx)("li",{children:a("protocolTroubleshooting2")}),(0,d.jsx)("li",{children:a("protocolTroubleshooting3")})]})]})]}),(0,d.jsxs)("section",{id:"api-reference",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("apiReference")}),(0,d.jsx)("div",{className:"mt-4 overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-sm border-collapse",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)("th",{className:"text-left py-2 pr-4",children:a("method")}),(0,d.jsx)("th",{className:"text-left py-2 pr-4",children:a("path")}),(0,d.jsx)("th",{className:"text-left py-2",children:a("notes")})]})}),(0,d.jsx)("tbody",{children:c.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border/60",children:[(0,d.jsx)("td",{className:"py-2 pr-4",children:(0,d.jsx)("code",{className:"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold",children:a.method})}),(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:a.path}),(0,d.jsx)("td",{className:"py-2 text-text-muted",children:a.note})]},a.path))})]})})]}),(0,d.jsxs)("section",{id:"model-prefixes",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("modelPrefixes")}),(0,d.jsxs)("p",{className:"text-sm text-text-muted mt-2 mb-4",children:[a("modelPrefixesDescriptionStart")," ",(0,d.jsx)("code",{className:"px-1 rounded bg-bg",children:"gh/gpt-5.1-codex"})," ",a("modelPrefixesDescriptionEnd")]}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-sm border-collapse",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)("th",{className:"text-left py-2 pr-4",children:a("prefix")}),(0,d.jsx)("th",{className:"text-left py-2 pr-4",children:a("provider")}),(0,d.jsx)("th",{className:"text-left py-2",children:a("type")})]})}),(0,d.jsx)("tbody",{children:u.map(b=>{var c;return(0,d.jsxs)("tr",{className:"border-b border-border/60",children:[(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:(0,d.jsxs)("code",{className:"px-1.5 py-0.5 rounded bg-bg",children:[b.alias,"/"]})}),(0,d.jsx)("td",{className:"py-2 pr-4",children:b.name}),(0,d.jsx)("td",{className:"py-2",children:(0,d.jsxs)("span",{className:`inline-flex items-center gap-1 text-xs ${"free"===b.type?"text-green-500":"oauth"===b.type?"text-blue-500":"text-amber-500"}`,children:[(0,d.jsx)("span",{className:`size-1.5 rounded-full ${"free"===b.type?"bg-green-500":"oauth"===b.type?"bg-blue-500":"bg-amber-500"}`}),(c=b.type,"free"===c?a("providerTypeFree"):"oauth"===c?a("providerTypeOAuth"):a("providerTypeApiKey"))]})})]},b.id)})})]})})]}),(0,d.jsxs)("section",{id:"management-api",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("managementApiReference")}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-2",children:a("managementApiDescription")}),(0,d.jsx)("div",{className:"mt-4 overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-sm border-collapse",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-border",children:[(0,d.jsx)("th",{className:"text-left py-2 pr-4",children:a("method")}),(0,d.jsx)("th",{className:"text-left py-2 pr-4",children:a("path")}),(0,d.jsx)("th",{className:"text-left py-2",children:a("notes")})]})}),(0,d.jsx)("tbody",{children:i.map(a=>(0,d.jsxs)("tr",{className:"border-b border-border/60",children:[(0,d.jsx)("td",{className:"py-2 pr-4",children:(0,d.jsx)("code",{className:"px-1.5 py-0.5 rounded bg-bg text-xs font-semibold",children:a.method})}),(0,d.jsx)("td",{className:"py-2 pr-4 font-mono",children:a.path}),(0,d.jsx)("td",{className:"py-2 text-text-muted",children:a.note})]},`${a.method}:${a.path}`))})]})})]}),(0,d.jsxs)("section",{id:"troubleshooting",className:"rounded-2xl border border-border bg-bg-subtle p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:a("troubleshooting")}),(0,d.jsx)("ul",{className:"mt-4 list-disc list-inside text-sm text-text-muted space-y-2",children:s.map(a=>(0,d.jsx)("li",{children:a},a))})]})]})})}]),c()}catch(a){c(a)}},!1),665554,a=>{a.n(a.i(831575))}];
4
4
 
5
5
  //# sourceMappingURL=_008ht2n._.js.map