omniroute 2.0.0 → 2.0.2

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 (576) hide show
  1. package/README.ar.md +4 -3
  2. package/README.bg.md +4 -3
  3. package/README.da.md +4 -2
  4. package/README.de.md +3 -2
  5. package/README.es.md +1 -0
  6. package/README.fi.md +1 -0
  7. package/README.fr.md +1 -0
  8. package/README.he.md +9 -8
  9. package/README.hu.md +1 -0
  10. package/README.id.md +1 -0
  11. package/README.in.md +9 -8
  12. package/README.it.md +1 -0
  13. package/README.ja.md +3 -0
  14. package/README.ko.md +9 -8
  15. package/README.md +17 -16
  16. package/README.ms.md +9 -8
  17. package/README.nl.md +9 -8
  18. package/README.no.md +1 -0
  19. package/README.phi.md +2 -1
  20. package/README.pl.md +9 -8
  21. package/README.pt-BR.md +3 -2
  22. package/README.pt.md +1 -0
  23. package/README.ro.md +2 -0
  24. package/README.ru.md +1 -0
  25. package/README.sk.md +1 -0
  26. package/README.sv.md +1 -0
  27. package/README.th.md +1 -0
  28. package/README.uk-UA.md +1 -0
  29. package/README.vi.md +1 -0
  30. package/README.zh-CN.md +10 -9
  31. package/app/.env +122 -0
  32. package/app/.next/BUILD_ID +1 -1
  33. package/app/.next/app-path-routes-manifest.json +54 -54
  34. package/app/.next/build-manifest.json +3 -3
  35. package/app/.next/prerender-manifest.json +3 -3
  36. package/app/.next/required-server-files.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +2 -2
  44. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
  47. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js +2 -2
  50. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js.nft.json +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +3 -3
  53. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  56. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
  59. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  62. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
  65. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
  68. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
  71. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js +2 -2
  74. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +1 -1
  75. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/media/page.js +2 -2
  77. package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +1 -1
  78. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
  80. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  81. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  83. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  84. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  86. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  87. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  89. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  90. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  92. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  93. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  95. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  96. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  98. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  99. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
  101. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  102. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
  104. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  105. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  107. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  108. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/.well-known/agent.json/route.js +1 -1
  110. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/400/page.js +2 -2
  112. package/app/.next/server/app/400/page.js.nft.json +1 -1
  113. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/401/page.js +2 -2
  115. package/app/.next/server/app/401/page.js.nft.json +1 -1
  116. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/403/page.js +2 -2
  118. package/app/.next/server/app/403/page.js.nft.json +1 -1
  119. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/408/page.js +2 -2
  121. package/app/.next/server/app/408/page.js.nft.json +1 -1
  122. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/429/page.js +2 -2
  124. package/app/.next/server/app/429/page.js.nft.json +1 -1
  125. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/500/page.js +2 -2
  127. package/app/.next/server/app/500/page.js.nft.json +1 -1
  128. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/502/page.js +2 -2
  130. package/app/.next/server/app/502/page.js.nft.json +1 -1
  131. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/503/page.js +2 -2
  133. package/app/.next/server/app/503/page.js.nft.json +1 -1
  134. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/_global-error/page.js +3 -3
  136. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/_global-error.html +2 -2
  138. package/app/.next/server/app/_global-error.rsc +5 -5
  139. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +5 -5
  140. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  141. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  142. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  143. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
  144. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  145. package/app/.next/server/app/_not-found/page.js +2 -2
  146. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  147. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/a2a/route.js +2 -2
  149. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/a2a/status/route.js +1 -1
  151. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route.js +1 -1
  153. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/a2a/tasks/[id]/route.js +1 -1
  155. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/a2a/tasks/route.js +1 -1
  157. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/auth/login/route.js +1 -1
  159. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  161. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/auth/status/route.js +1 -1
  163. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/cache/route.js +1 -1
  165. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/cache/stats/route.js +1 -1
  167. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  169. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +3 -3
  171. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
  173. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  175. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  177. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  179. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  181. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  183. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
  185. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  187. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route.js +1 -1
  189. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  191. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  193. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  195. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  197. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  199. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  201. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  203. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  205. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/combos/auto/route.js +1 -1
  207. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/combos/metrics/route.js +1 -1
  209. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/combos/route.js +1 -1
  211. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/api/combos/test/route.js +1 -1
  213. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/compliance/audit-log/route.js +1 -1
  215. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/db-backups/export/route.js +1 -1
  217. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -1
  219. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/db-backups/import/route.js +1 -1
  221. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/db-backups/route.js +1 -1
  223. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
  225. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/evals/route.js +1 -1
  227. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/api/fallback/chains/route.js +2 -2
  229. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/init/route.js +1 -1
  231. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  233. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/keys/route.js +1 -1
  235. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/logs/console/route.js +1 -1
  237. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/api/mcp/audit/route.js +2 -2
  239. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  240. package/app/.next/server/app/api/mcp/audit/stats/route.js +2 -2
  241. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/mcp/sse/route.js +1 -1
  243. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  244. package/app/.next/server/app/api/mcp/status/route.js +1 -1
  245. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/api/mcp/stream/route.js +1 -1
  247. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/mcp/tools/route.js +1 -1
  249. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  250. package/app/.next/server/app/api/models/alias/route.js +1 -1
  251. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  252. package/app/.next/server/app/api/models/availability/route.js +1 -1
  253. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/models/catalog/route.js +2 -2
  255. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  256. package/app/.next/server/app/api/models/route.js +2 -2
  257. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/api/monitoring/health/route.js +2 -2
  259. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  260. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  261. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  262. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  263. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  265. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  266. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  267. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  268. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  269. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  271. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  272. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  273. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  274. package/app/.next/server/app/api/policies/route.js +2 -2
  275. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  276. package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
  277. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  278. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  279. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  280. package/app/.next/server/app/api/pricing/route.js +1 -1
  281. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  282. package/app/.next/server/app/api/provider-metrics/route.js +2 -2
  283. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  284. package/app/.next/server/app/api/provider-models/route.js +1 -1
  285. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  286. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  287. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  288. package/app/.next/server/app/api/provider-nodes/route.js +2 -2
  289. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  291. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  292. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
  293. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  294. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  295. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  296. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  297. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  298. package/app/.next/server/app/api/providers/client/route.js +1 -1
  299. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/api/providers/route.js +2 -2
  301. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  303. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  304. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  305. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/rate-limit/route.js +1 -1
  307. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  308. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  309. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  310. package/app/.next/server/app/api/resilience/reset/route.js +1 -1
  311. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/resilience/route.js +1 -1
  313. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  314. package/app/.next/server/app/api/restart/route.js +1 -1
  315. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  316. package/app/.next/server/app/api/sessions/route.js +1 -1
  317. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  318. package/app/.next/server/app/api/settings/background-degradation/route.js +1 -1
  319. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  320. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  321. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  322. package/app/.next/server/app/api/settings/ip-filter/route.js +1 -1
  323. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  324. package/app/.next/server/app/api/settings/model-aliases/route.js +1 -1
  325. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  326. package/app/.next/server/app/api/settings/proxy/route.js +1 -1
  327. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  328. package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
  329. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  330. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  331. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  332. package/app/.next/server/app/api/settings/route.js +1 -1
  333. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  334. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  335. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  336. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  337. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  338. package/app/.next/server/app/api/shutdown/route.js +1 -1
  339. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  340. package/app/.next/server/app/api/storage/health/route.js +1 -1
  341. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  343. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  344. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  345. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  346. package/app/.next/server/app/api/tags/route.js +1 -1
  347. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  348. package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
  349. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  350. package/app/.next/server/app/api/token-health/route.js +1 -1
  351. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  352. package/app/.next/server/app/api/translator/detect/route.js +1 -1
  353. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  354. package/app/.next/server/app/api/translator/history/route.js +1 -1
  355. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  356. package/app/.next/server/app/api/translator/load/route.js +1 -1
  357. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  358. package/app/.next/server/app/api/translator/save/route.js +1 -1
  359. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  360. package/app/.next/server/app/api/translator/send/route.js +1 -1
  361. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  362. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  363. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  364. package/app/.next/server/app/api/usage/[connectionId]/route.js +2 -2
  365. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  366. package/app/.next/server/app/api/usage/analytics/route.js +1 -1
  367. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  368. package/app/.next/server/app/api/usage/budget/route.js +2 -2
  369. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  370. package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
  371. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
  373. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  374. package/app/.next/server/app/api/usage/history/route.js +1 -1
  375. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  376. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  377. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  378. package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
  379. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  380. package/app/.next/server/app/api/usage/quota/route.js +1 -1
  381. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  382. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  383. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  384. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  385. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  386. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  387. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  388. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  389. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  390. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  391. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  392. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  393. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  394. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  395. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  396. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  397. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  398. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  399. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  400. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  401. package/app/.next/server/app/api/v1/models/route.js +1 -1
  402. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  403. package/app/.next/server/app/api/v1/moderations/route.js +1 -1
  404. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/api/v1/music/generations/route.js +1 -1
  406. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  407. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
  408. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  409. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
  410. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  411. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  412. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  413. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/api/v1/rerank/route.js +1 -1
  415. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  416. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  417. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  418. package/app/.next/server/app/api/v1/route.js +1 -1
  419. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  420. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  421. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  422. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  423. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  424. package/app/.next/server/app/api/v1beta/models/route.js +2 -2
  425. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  426. package/app/.next/server/app/callback/page.js +2 -2
  427. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  428. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  429. package/app/.next/server/app/docs/page.js +4 -4
  430. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  431. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/forbidden/page.js +2 -2
  433. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  434. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  435. package/app/.next/server/app/forgot-password/page.js +2 -2
  436. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  437. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  438. package/app/.next/server/app/landing/page.js +2 -2
  439. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  440. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  441. package/app/.next/server/app/login/page.js +2 -2
  442. package/app/.next/server/app/login/page.js.nft.json +1 -1
  443. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  444. package/app/.next/server/app/maintenance/page.js +2 -2
  445. package/app/.next/server/app/maintenance/page.js.nft.json +1 -1
  446. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  447. package/app/.next/server/app/offline/page.js +2 -2
  448. package/app/.next/server/app/offline/page.js.nft.json +1 -1
  449. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  450. package/app/.next/server/app/page.js +2 -2
  451. package/app/.next/server/app/page.js.nft.json +1 -1
  452. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  453. package/app/.next/server/app/privacy/page.js +2 -2
  454. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  455. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  456. package/app/.next/server/app/status/page.js +2 -2
  457. package/app/.next/server/app/status/page.js.nft.json +1 -1
  458. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  459. package/app/.next/server/app/terms/page.js +2 -2
  460. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  461. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  462. package/app/.next/server/app-paths-manifest.json +54 -54
  463. package/app/.next/server/chunks/1033.js +1 -1
  464. package/app/.next/server/chunks/1909.js +2 -0
  465. package/app/.next/server/chunks/2180.js +1 -1
  466. package/app/.next/server/chunks/2901.js +1 -1
  467. package/app/.next/server/chunks/2910.js +1 -1
  468. package/app/.next/server/chunks/3498.js +1 -1
  469. package/app/.next/server/chunks/3969.js +1 -1
  470. package/app/.next/server/chunks/4488.js +1 -1
  471. package/app/.next/server/chunks/4631.js +2 -2
  472. package/app/.next/server/chunks/7109.js +1 -1
  473. package/app/.next/server/chunks/7167.js +1 -0
  474. package/app/.next/server/chunks/7669.js +1 -1
  475. package/app/.next/server/chunks/8020.js +3 -3
  476. package/app/.next/server/chunks/8369.js +1 -1
  477. package/app/.next/server/chunks/9548.js +1 -1
  478. package/app/.next/server/instrumentation.js +1 -1
  479. package/app/.next/server/middleware-build-manifest.js +1 -1
  480. package/app/.next/server/middleware.js +3 -3
  481. package/app/.next/server/next-font-manifest.js +1 -1
  482. package/app/.next/server/next-font-manifest.json +1 -1
  483. package/app/.next/server/pages/500.html +2 -2
  484. package/app/.next/server/server-reference-manifest.js +1 -1
  485. package/app/.next/server/server-reference-manifest.json +1 -1
  486. package/app/.next/static/chunks/{5846-c2071f4db5ecc3da.js → 5846-014698d5430bb218.js} +1 -1
  487. package/app/.next/static/chunks/{647-f42f77310d9d9936.js → 647-52d3e2e64d7de62e.js} +2 -2
  488. package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-ed1f5b1ae0e01c02.js +1 -0
  489. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-6a2bb3ad980b05b9.js +1 -0
  490. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/{page-bef5c045e7eae657.js → page-6ab7701da3357bb9.js} +1 -1
  491. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-027b3eb09d2d46e0.js +1 -0
  492. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c9b98846b8479f3f.js +1 -0
  493. package/app/.next/static/chunks/app/(dashboard)/dashboard/auto-combo/{page-8e609f4c9b26a901.js → page-851063ded34ab7a6.js} +1 -1
  494. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-86acc32f9984a4e2.js +15 -0
  495. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-ac5dcffbe54f77f9.js +1 -0
  496. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-7a233357dfbd2e05.js → page-8f6233f59f5277e9.js} +1 -1
  497. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-36f33de29eb978a1.js +1 -0
  498. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/{page-66ee4e631429e0d8.js → page-1e1eb2f79d606ab2.js} +1 -1
  499. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-e8a28e4cf62889bd.js +1 -0
  500. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-6e4bcb48b8731915.js → page-95e4b5e0bf023d76.js} +1 -1
  501. package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-d9b5c3282ec5d809.js +1 -0
  502. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-72b768421394b42c.js +1 -0
  503. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/{page-d424641c7e428be9.js → page-5378e9473a20cd6a.js} +1 -1
  504. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-40d20c1273f57206.js +1 -0
  505. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-350aed2e86512c23.js +1 -0
  506. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{error-0400f175dd1372fa.js → error-a5ae03ba05400b04.js} +1 -1
  507. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-7deaa9f550841465.js +1 -0
  508. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-3ef302da4b756e50.js +1 -0
  509. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-87f0d43ce6cca0cb.js → page-cd0feb6c545b8a49.js} +1 -1
  510. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{error-c39d18f10fb7d3f6.js → error-ec9643134a96bbcd.js} +1 -1
  511. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{loading-b5faf05c78a2cc54.js → loading-3519a633b514f31a.js} +1 -1
  512. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{page-6b38a30bfddf3b89.js → page-cbaa4b638a583fe9.js} +1 -1
  513. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-a4b8b03ffb39da1d.js → page-69eb8b0eb0e9de00.js} +1 -1
  514. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-b29f17c4dc7d449f.js → page-8cc93e616925f0a0.js} +1 -1
  515. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-8c8f2d59d0cbb516.js +1 -0
  516. package/app/.next/static/chunks/app/(dashboard)/{layout-6d0afc53f5f2a538.js → layout-7ae0c66c22bee8a1.js} +1 -1
  517. package/app/.next/static/chunks/app/400/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
  518. package/app/.next/static/chunks/app/401/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
  519. package/app/.next/static/chunks/app/403/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
  520. package/app/.next/static/chunks/app/408/{page-3b77bf358909019a.js → page-3b9079ea400ca287.js} +1 -1
  521. package/app/.next/static/chunks/app/429/page-3b9079ea400ca287.js +1 -0
  522. package/app/.next/static/chunks/app/500/page-3b9079ea400ca287.js +1 -0
  523. package/app/.next/static/chunks/app/502/page-3b9079ea400ca287.js +1 -0
  524. package/app/.next/static/chunks/app/503/page-3b9079ea400ca287.js +1 -0
  525. package/app/.next/static/chunks/app/callback/{page-585a53f7dc6a30f1.js → page-0f0ebc0820dd18a5.js} +1 -1
  526. package/app/.next/static/chunks/app/docs/{page-9624e5fb8cabf7d8.js → page-dc88e0a01d291518.js} +1 -1
  527. package/app/.next/static/chunks/app/{error-f7f595c541537e63.js → error-32c03f14529d3920.js} +1 -1
  528. package/app/.next/static/chunks/app/forbidden/page-8d8e1709a1e32585.js +1 -0
  529. package/app/.next/static/chunks/app/forgot-password/page-d5c9b77748aa9deb.js +1 -0
  530. package/app/.next/static/chunks/app/global-error-5840b1caa830f2ec.js +1 -0
  531. package/app/.next/static/chunks/app/landing/page-75b0c988db383cfc.js +1 -0
  532. package/app/.next/static/chunks/app/{layout-108592eafb959363.js → layout-070972eb026af319.js} +1 -1
  533. package/app/.next/static/chunks/app/{loading-e063375d5b12a2f7.js → loading-da2f6e1471afc070.js} +1 -1
  534. package/app/.next/static/chunks/app/login/{page-cf6b82187b09a701.js → page-26d717c652d56032.js} +1 -1
  535. package/app/.next/static/chunks/app/maintenance/page-3b9079ea400ca287.js +1 -0
  536. package/app/.next/static/chunks/app/not-found-faf36d2a9a452506.js +1 -0
  537. package/app/.next/static/chunks/app/offline/page-bf68bf461af876a3.js +1 -0
  538. package/app/.next/static/chunks/app/privacy/{page-9624e5fb8cabf7d8.js → page-dc88e0a01d291518.js} +1 -1
  539. package/app/.next/static/chunks/app/status/page-29a433b40631ce12.js +1 -0
  540. package/app/.next/static/chunks/app/terms/{page-9624e5fb8cabf7d8.js → page-dc88e0a01d291518.js} +1 -1
  541. package/app/.next/static/chunks/{main-app-c9da11a8061df107.js → main-app-ae230f6bf51a5edb.js} +1 -1
  542. package/app/logs/application/app.log +1 -0
  543. package/app/package.json +1 -1
  544. package/app/server.js +1 -1
  545. package/package.json +1 -1
  546. package/app/.next/server/chunks/5248.js +0 -1
  547. package/app/.next/server/chunks/7889.js +0 -2
  548. package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-43d6fa6b75cca497.js +0 -1
  549. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-49ae846d72948391.js +0 -1
  550. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-16f886b3711a6a50.js +0 -1
  551. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +0 -1
  552. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-d1e5ed188e14c618.js +0 -15
  553. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-8d4d2f071d114b90.js +0 -1
  554. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-7b1037d65eef97a8.js +0 -1
  555. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-d5e0c556e2b32478.js +0 -1
  556. package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-8e35334b9f393139.js +0 -1
  557. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-1d0ca9b5d3eaf7cd.js +0 -1
  558. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-d75ccdb976b36258.js +0 -1
  559. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-1abb3ea768844f2b.js +0 -1
  560. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-9552383fd2e11282.js +0 -1
  561. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-d57908b59d4b482c.js +0 -1
  562. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9e20463252daf023.js +0 -1
  563. package/app/.next/static/chunks/app/429/page-3b77bf358909019a.js +0 -1
  564. package/app/.next/static/chunks/app/500/page-3b77bf358909019a.js +0 -1
  565. package/app/.next/static/chunks/app/502/page-3b77bf358909019a.js +0 -1
  566. package/app/.next/static/chunks/app/503/page-3b77bf358909019a.js +0 -1
  567. package/app/.next/static/chunks/app/forbidden/page-b33079c1573b0bfa.js +0 -1
  568. package/app/.next/static/chunks/app/forgot-password/page-90cd6259c75badfc.js +0 -1
  569. package/app/.next/static/chunks/app/global-error-1dfd1c91ad5199fe.js +0 -1
  570. package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +0 -1
  571. package/app/.next/static/chunks/app/maintenance/page-3b77bf358909019a.js +0 -1
  572. package/app/.next/static/chunks/app/not-found-511518956bcae7bc.js +0 -1
  573. package/app/.next/static/chunks/app/offline/page-9d6ea493783a0219.js +0 -1
  574. package/app/.next/static/chunks/app/status/page-4e5e9b5a513aa474.js +0 -1
  575. /package/app/.next/static/{i4hXorUJfOXsVFs23YXiR → GDoUzLvy4YDqhnGqUCiZ0}/_buildManifest.js +0 -0
  576. /package/app/.next/static/{i4hXorUJfOXsVFs23YXiR → GDoUzLvy4YDqhnGqUCiZ0}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
1
  exports.id=1033,exports.ids=[1033,4755],exports.modules={9415:(a,b,c)=>{"use strict";c.d(b,{wR:()=>f});var d=c(55649),e=c(65573);async function f(a){let b=a.headers.get("authorization");if(b?.startsWith("Bearer ")){let a=b.slice(7);try{let{validateApiKey:b}=await Promise.resolve().then(c.bind(c,80500));if(await b(a))return!0}catch{}}if(process.env.JWT_SECRET)try{let a=await (0,e.UL)(),b=a.get("auth_token")?.value;if(b){let a=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,d.V)(b,a),!0}}catch{}return!1}c(22901)},15102:(a,b,c)=>{"use strict";c.d(b,{Uk:()=>f,bV:()=>e,lw:()=>g});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[{id:"gemini-2.5-flash-preview-image-generation",name:"Nano Banana"}],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,supportedSizes:c.supportedSizes});return a}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},30255:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>d.PROVIDER_ID_TO_ALIAS,eh:()=>e,vq:()=>d.vq});var d=c(23969);Object.entries(c(82216).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},33136:(a,b,c)=>{"use strict";c.d(b,{$q:()=>f,lR:()=>h,m:()=>g});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"stable-audio-open",name:"Stable Audio Open"},{id:"musicgen-medium",name:"MusicGen Medium"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},55649:(a,b,c)=>{"use strict";c.d(b,{V:()=>s});var d=c(56642),e=c(30121),f=c(48682),g=c(63952);async function h(a,b,c,d){let h=await (0,g.j)(a,b,"verify");(0,f.O)(a,h);let i=(0,e.B)(a,h.algorithm);try{return await crypto.subtle.verify(i,h,c,d)}catch{return!1}}var i=c(99129),j=c(73575),k=c(41842),l=c(36281),m=c(24762),n=c(80308),o=c(55956);async function p(a,b,c){let e,f;if(!(0,l.G)(a))throw new i.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new i.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new i.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new i.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new i.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,l.G)(a.header))throw new i.Ye("JWS Unprotected Header incorrect type");let g={};if(a.protected)try{let b=(0,d.D)(a.protected);g=JSON.parse(j.D0.decode(b))}catch{throw new i.Ye("JWS Protected Header is invalid")}if(!(0,k.f)(g,a.header))throw new i.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let p={...g,...a.header},q=(0,n.n)(i.Ye,new Map([["b64",!0]]),c?.crit,g,p),r=!0;if(q.has("b64")&&"boolean"!=typeof(r=g.b64))throw new i.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=p;if("string"!=typeof s||!s)throw new i.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let t=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(t&&!t.has(s))throw new i.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(r){if("string"!=typeof a.payload)throw new i.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new i.Ye("JWS Payload must be a string or an Uint8Array instance");let u=!1;"function"==typeof b&&(b=await b(g,a),u=!0),(0,m.y)(s,b,"verify");let v=(0,j.xW)(void 0!==a.protected?(0,j.lF)(a.protected):new Uint8Array,(0,j.lF)("."),"string"==typeof a.payload?r?(0,j.lF)(a.payload):j.Rd.encode(a.payload):a.payload);try{e=(0,d.D)(a.signature)}catch{throw new i.Ye("Failed to base64url decode the signature")}let w=await (0,o.l)(b,s);if(!await h(s,w,e,v))throw new i.h2;if(r)try{f=(0,d.D)(a.payload)}catch{throw new i.Ye("Failed to base64url decode the payload")}else f="string"==typeof a.payload?j.Rd.encode(a.payload):a.payload;let x={payload:f};return(void 0!==a.protected&&(x.protectedHeader=g),void 0!==a.header&&(x.unprotectedHeader=a.header),u)?{...x,key:w}:x}async function q(a,b,c){if(a instanceof Uint8Array&&(a=j.D0.decode(a)),"string"!=typeof a)throw new i.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new i.Ye("Invalid Compact JWS");let h=await p({payload:e,protected:d,signature:f},b,c),k={payload:h.payload,protectedHeader:h.protectedHeader};return"function"==typeof b?{...k,key:h.key}:k}var r=c(17347);async function s(a,b,c){let d=await q(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new i.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,r.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},66436:(a,b,c)=>{"use strict";function d(a,b){if(!a)return{provider:null,model:null};for(let[c]of Object.entries(b))if(a.startsWith(c+"/"))return{provider:c,model:a.slice(c.length+1)};for(let[c,d]of Object.entries(b))if(d.models.some(b=>b.id===a))return{provider:c,model:a};return{provider:null,model:a}}function e(a,b){let c=[];for(let[d,e]of Object.entries(a)){let a=b?b(d,e):{};for(let b of e.models)c.push({id:`${d}/${b.id}`,name:b.name,provider:d,...a})}return c}function f(a,b){if("none"===a.authType||"none"===a.authHeader||!b)return{};switch(a.authHeader){case"token":return{Authorization:`Token ${b}`};case"xi-api-key":return{"xi-api-key":b};case"x-api-key":return{"x-api-key":b};default:return{Authorization:`Bearer ${b}`}}}c.d(b,{AA:()=>d,fn:()=>f,tv:()=>e})},78335:()=>{},81249:(a,b,c)=>{"use strict";c.d(b,{Ct:()=>k,i2:()=>f,kP:()=>l});var d=c(42910);function e(){try{return(0,d.sm)()}catch{return null}}function f(a={}){let b=e();if(!b)return[];let c=[],d=[];a.action&&(c.push("action = ?"),d.push(a.action)),a.actor&&(c.push("actor = ?"),d.push(a.actor));let g=c.length>0?`WHERE ${c.join(" AND ")}`:"",h=a.limit||100,i=a.offset||0;return b.prepare(`SELECT * FROM audit_log ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`).all(...d,h,i).map(a=>({...a,details:a.details?JSON.parse(String(a.details)):null}))}parseInt(process.env.LOG_RETENTION_DAYS||"90",10);let g=new Set,h=new Map,i=!1,j=!1;for(let a of(process.env.NO_LOG_API_KEY_IDS||"").split(",").map(a=>a.trim()).filter(Boolean))g.add(a);function k(a,b){b?g.add(a):g.delete(a),h.set(a,{value:b,timestamp:Date.now()})}function l(a){if(!a)return!1;if(g.has(a))return!0;let b=function(a){let b=e();if(!b||!a||!function(a){if(i)return j;try{j=a.prepare("PRAGMA table_info(api_keys)").all().some(a=>"no_log"===a.name)}catch{j=!1}return i=!0,j}(b))return!1;let c=h.get(a);if(c&&Date.now()-c.timestamp<3e4)return c.value;try{let c=b.prepare("SELECT no_log FROM api_keys WHERE id = ?").get(a),d=!!(c&&1===Number(c.no_log));return h.set(a,{value:d,timestamp:Date.now()}),d}catch{return!1}}(a);return b&&g.add(a),b}},81565:(a,b,c)=>{"use strict";c.d(b,{FW:()=>i,Yj:()=>f,ah:()=>k,pD:()=>j,uM:()=>g});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcription",name:"GPT-4o Transcription"}]},groq:{id:"groq",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]},deepgram:{id:"deepgram",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]},assemblyai:{id:"assemblyai",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",async:!0,format:"assemblyai",models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"nvidia-asr",models:[{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B"}]},huggingface:{id:"huggingface",baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]},qwen:{id:"qwen",baseUrl:"http://localhost:8000/v1/audio/transcriptions",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-asr",name:"Qwen3 ASR"}]}},e={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",models:[{id:"tts-1",name:"TTS 1"},{id:"tts-1-hd",name:"TTS 1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]},deepgram:{id:"deepgram",baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"aura-asteria-en",name:"Aura Asteria (EN)"},{id:"aura-luna-en",name:"Aura Luna (EN)"},{id:"aura-stella-en",name:"Aura Stella (EN)"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"nvidia/fastpitch",name:"FastPitch"},{id:"nvidia/tacotron2",name:"Tacotron2"}]},elevenlabs:{id:"elevenlabs",baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},huggingface:{id:"huggingface",baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},coqui:{id:"coqui",baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},tortoise:{id:"tortoise",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},qwen:{id:"qwen",baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]}};function f(a){return d[a]||null}function g(a){return e[a]||null}function h(a,b){if(!a)return{provider:null,model:null};for(let[c,d]of Object.entries(b))if(a.startsWith(c+"/"))return{provider:c,model:a.slice(c.length+1)};for(let[c,d]of Object.entries(b))if(d.models.some(b=>b.id===a))return{provider:c,model:a};return{provider:null,model:a}}function i(a){return h(a,d)}function j(a){return h(a,e)}function k(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,subtype:"transcription"});for(let[b,c]of Object.entries(e))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,subtype:"speech"});return a}},82216:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>o,js:()=>p,DI:()=>l,fg:()=>j,IS:()=>h,zN:()=>i,JH:()=>k,gb:()=>n,mq:()=>m});var d=c(50292);let e=d.Ikc({id:d.YjP().min(1),alias:d.YjP().min(1),name:d.YjP().min(1),icon:d.YjP().min(1),color:d.YjP().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:d.YjP().optional(),website:d.YjP().url().optional(),passthroughModels:d.zMY().optional()}),f=d.g1P(d.YjP(),e);function g(a,b){let c=f.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}`)}}let h={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",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"}},j={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"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},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://developer.nvidia.com/nim"},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"}},k="openai-compatible-",l="anthropic-compatible-";function m(a){return"string"==typeof a&&a.startsWith(k)}function n(a){return"string"==typeof a&&a.startsWith(l)}let o={...h,...i,...j},p=Object.values(o).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(o).reduce((a,b)=>(a[b.id]=b.alias,a),{}),g(h,"FREE_PROVIDERS"),g(i,"OAUTH_PROVIDERS"),g(j,"APIKEY_PROVIDERS")},83262:(a,b,c)=>{"use strict";c.d(b,{Lb:()=>e,QG:()=>f,zD:()=>g});let d={nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]},openai:{id:"openai",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]},mistral:{id:"mistral",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};let b=a.indexOf("/");if(b>0){for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};return{provider:a.slice(0,b),model:a.slice(b+1)}}for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,dimensions:d.dimensions});return a}},88258:(a,b,c)=>{"use strict";c.d(b,{y:()=>q});var d=c(92556),e=c(30255),f=c(82216),g=c(22901),h=c(9415),i=c(83262),j=c(15102),k=c(94954),l=c(81565),m=c(96721),n=c(90416),o=c(33136);let p={ag:"antigravity",cc:"claude",cl:"cline",cu:"cursor",cx:"codex",gc:"gemini-cli",gh:"github",if:"iflow",kc:"kilocode",kmc:"kimi-coding",kr:"kiro",qw:"qwen"};async function q(a,b={"Access-Control-Allow-Origin":d.J5}){try{let c={};try{c=await (0,g.V7)()}catch{}if(!0===c.requireAuthForModels&&!await (0,h.wR)(a))return Response.json({error:{message:"Authentication required",type:"invalid_request_error",code:"invalid_api_key"}},{status:401});let{aliasToProviderId:d,providerIdToAlias:q}=function(){let a={},b={};for(let c of Object.values(f.Q2)){let d=c?.id,e=c?.alias||d;d&&(a[d]=d,a[e]=d,b[d]||(b[d]=e))}for(let[b,c]of Object.entries(e.Xg)){if(e.vq[b]){a[b]=a[b]||c;continue}if(e.vq[c]){a[c]=a[c]||b;continue}a[c]=a[c]||b}for(let b of Object.keys(e.vq))a[b]||(a[b]=b);for(let[c,d]of Object.entries(a))b[d]||(b[d]=c);for(let[c,d]of Object.entries(p))a[c]||(a[c]=d),a[d]||(a[d]=d),b[d]||(b[d]=c);return{aliasToProviderId:a,providerIdToAlias:b}}(),r=new Set(Array.isArray(c.blockedProviders)?c.blockedProviders:[]),s=[];try{(s=await (0,g.getProviderConnections)()).length,s=s.filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, showing only combos/custom models")}let t=[];try{t=await (0,g.Fh)()}catch(a){console.log("Could not fetch provider nodes")}let u={},v={};for(let a of t)a.prefix&&(u[a.id]=a.prefix),a.type&&(v[a.id]=a.type);let w=[];try{w=await (0,g.Uv)()}catch(a){console.log("Could not fetch combos")}let x=new Set;for(let a of s){let b=q[a.provider]||a.provider;x.add(b),x.add(a.provider)}let y=[],z=Math.floor(Date.now()/1e3);for(let a of w)!1!==a.isActive&&y.push({id:a.name,object:"model",created:z,owned_by:"combo",permission:[],root:a.name,parent:null});for(let[a,b]of Object.entries(e.vq)){let c=d[a]||a,e=p[a]||c;if(!(r.has(a)||r.has(e))&&(x.has(a)||x.has(e)))for(let c of b){let b=`${a}/${c.id}`;y.push({id:b,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:null}),e!==a&&y.push({id:`${e}/${c.id}`,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:b})}}let A=a=>{if(0===x.size)return!1;let b=q[a]||a;return x.has(b)||x.has(a)};for(let a of(0,i.zD)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"embedding",dimensions:a.dimensions});for(let a of(0,j.lw)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"image",supported_sizes:a.supportedSizes});for(let a of(0,k.xt)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"rerank"});for(let a of(0,l.ah)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"audio",subtype:a.subtype});for(let a of(0,m.iI)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"moderation"});for(let a of(0,n.nC)()){let b=(0,n.L4)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"video"})}for(let a of(0,o.lR)()){let b=(0,o.$q)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"music"})}try{let a=await (0,g.NL)();for(let[b,c]of Object.entries(a)){let a=Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[],d=u[b],e=d||q[b]||b,f=p[e]||b,g=v[b];if(x.has(e)||x.has(f)||x.has(b)||g&&x.has(g))for(let b of a){let a="string"==typeof b.id?b.id:null;if(!a)continue;let c=`${e}/${a}`;if(!y.some(a=>a.id===c)&&(y.push({id:c,object:"model",created:z,owned_by:f,permission:[],root:a,parent:null,custom:!0}),f!==e&&!d)){let b=`${f}/${a}`;if(y.some(a=>a.id===b))continue;y.push({id:b,object:"model",created:z,owned_by:f,permission:[],root:a,parent:c,custom:!0})}}}}catch(a){console.log("Could not fetch custom models")}return Response.json({object:"list",data:y},{headers:b})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},90416:(a,b,c)=>{"use strict";c.d(b,{L4:()=>f,Y3:()=>g,nC:()=>h});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"animatediff",name:"AnimateDiff"},{id:"svd-xt",name:"Stable Video Diffusion XT"}]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860",authType:"none",authHeader:"none",format:"sdwebui-video",models:[{id:"animatediff-webui",name:"AnimateDiff (WebUI)"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},92556:(a,b,c)=>{"use strict";c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},94954:(a,b,c)=>{"use strict";c.d(b,{AN:()=>f,Bo:()=>e,xt:()=>g});let d={cohere:{id:"cohere",baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v3.5",name:"Rerank v3.5"},{id:"rerank-english-v3.0",name:"Rerank English v3.0"},{id:"rerank-multilingual-v3.0",name:"Rerank Multilingual v3.0"}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"Salesforce/Llama-Rank-V2",name:"Llama Rank V2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/ranking",authType:"apikey",authHeader:"bearer",format:"nvidia",models:[{id:"nvidia/nv-rerankqa-mistral-4b-v3",name:"NV RerankQA Mistral 4B v3"}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/nomic-rerank-v1",name:"Nomic Rerank v1"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}},96487:()=>{},96721:(a,b,c)=>{"use strict";c.d(b,{iI:()=>g,mX:()=>e,vb:()=>f});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/moderations",authType:"apikey",authHeader:"bearer",models:[{id:"omni-moderation-latest",name:"Omni Moderation Latest"},{id:"text-moderation-latest",name:"Text Moderation Latest"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}}};
2
+ ${a}`),Error(`Provider validation failed for ${b}`)}}let h={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",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"}},j={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"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},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://developer.nvidia.com/nim"},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"}},k="openai-compatible-",l="anthropic-compatible-";function m(a){return"string"==typeof a&&a.startsWith(k)}function n(a){return"string"==typeof a&&a.startsWith(l)}let o={...h,...i,...j},p=Object.values(o).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(o).reduce((a,b)=>(a[b.id]=b.alias,a),{}),g(h,"FREE_PROVIDERS"),g(i,"OAUTH_PROVIDERS"),g(j,"APIKEY_PROVIDERS")},83262:(a,b,c)=>{"use strict";c.d(b,{Lb:()=>e,QG:()=>f,zD:()=>g});let d={nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]},openai:{id:"openai",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]},mistral:{id:"mistral",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};let b=a.indexOf("/");if(b>0){for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};return{provider:a.slice(0,b),model:a.slice(b+1)}}for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,dimensions:d.dimensions});return a}},88258:(a,b,c)=>{"use strict";c.d(b,{y:()=>q});var d=c(92556),e=c(30255),f=c(82216),g=c(22901),h=c(9415),i=c(83262),j=c(15102),k=c(94954),l=c(81565),m=c(96721),n=c(90416),o=c(33136);let p={ag:"antigravity",cc:"claude",cl:"cline",cu:"cursor",cx:"codex",gc:"gemini-cli",gh:"github",if:"iflow",kc:"kilocode",kmc:"kimi-coding",kr:"kiro",qw:"qwen"};async function q(a,b={"Access-Control-Allow-Origin":d.J5}){try{let c={};try{c=await (0,g.V7)()}catch{}if(!0===c.requireAuthForModels&&!await (0,h.wR)(a))return Response.json({error:{message:"Authentication required",type:"invalid_request_error",code:"invalid_api_key"}},{status:401});let{aliasToProviderId:d,providerIdToAlias:q}=function(){let a={},b={};for(let c of Object.values(f.Q2)){let d=c?.id,e=c?.alias||d;d&&(a[d]=d,a[e]=d,b[d]||(b[d]=e))}for(let[b,c]of Object.entries(e.Xg)){if(e.vq[b]){a[b]=a[b]||c;continue}if(e.vq[c]){a[c]=a[c]||b;continue}a[c]=a[c]||b}for(let b of Object.keys(e.vq))a[b]||(a[b]=b);for(let[c,d]of Object.entries(a))b[d]||(b[d]=c);for(let[c,d]of Object.entries(p))a[c]||(a[c]=d),a[d]||(a[d]=d),b[d]||(b[d]=c);return{aliasToProviderId:a,providerIdToAlias:b}}(),r=new Set(Array.isArray(c.blockedProviders)?c.blockedProviders:[]),s=[];try{(s=await (0,g.getProviderConnections)()).length,s=s.filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, showing only combos/custom models")}let t=[];try{t=await (0,g.Fh)()}catch(a){console.log("Could not fetch provider nodes")}let u={},v={};for(let a of t)a.prefix&&(u[a.id]=a.prefix),a.type&&(v[a.id]=a.type);let w=[];try{w=await (0,g.Uv)()}catch(a){console.log("Could not fetch combos")}let x=new Set;for(let a of s){let b=q[a.provider]||a.provider;x.add(b),x.add(a.provider)}let y=[],z=Math.floor(Date.now()/1e3);for(let a of w)!1!==a.isActive&&y.push({id:a.name,object:"model",created:z,owned_by:"combo",permission:[],root:a.name,parent:null});for(let[a,b]of Object.entries(e.vq)){let c=d[a]||a,e=p[a]||c;if(!(r.has(a)||r.has(e))&&(x.has(a)||x.has(e)))for(let c of b){let b=`${a}/${c.id}`;y.push({id:b,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:null}),e!==a&&y.push({id:`${e}/${c.id}`,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:b})}}let A=a=>{if(0===x.size)return!1;let b=q[a]||a;return x.has(b)||x.has(a)};for(let a of(0,i.zD)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"embedding",dimensions:a.dimensions});for(let a of(0,j.lw)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"image",supported_sizes:a.supportedSizes});for(let a of(0,k.xt)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"rerank"});for(let a of(0,l.ah)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"audio",subtype:a.subtype});for(let a of(0,m.iI)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"moderation"});for(let a of(0,n.nC)()){let b=(0,n.L4)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"video"})}for(let a of(0,o.lR)()){let b=(0,o.$q)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"music"})}try{let a=await (0,g.NL)();for(let[b,c]of Object.entries(a)){let a=Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[],d=u[b],e=d||q[b]||b,f=p[e]||b,g=v[b];if(x.has(e)||x.has(f)||x.has(b)||g&&x.has(g))for(let b of a){let a,c="string"==typeof b.id?b.id:null;if(!c)continue;let g=`${e}/${c}`;if(y.some(a=>a.id===g))continue;let h=Array.isArray(b.supportedEndpoints)?b.supportedEndpoints:["chat"],i="string"==typeof b.apiFormat?b.apiFormat:"chat-completions";if(h.includes("embeddings")?a="embedding":h.includes("images")?a="image":h.includes("audio")&&(a="audio"),y.push({id:g,object:"model",created:z,owned_by:f,permission:[],root:c,parent:null,custom:!0,...a?{type:a}:{},..."chat-completions"!==i?{api_format:i}:{},...h.length>1||!h.includes("chat")?{supported_endpoints:h}:{}}),f!==e&&!d){let b=`${f}/${c}`;if(y.some(a=>a.id===b))continue;y.push({id:b,object:"model",created:z,owned_by:f,permission:[],root:c,parent:g,custom:!0,...a?{type:a}:{}})}}}}catch(a){console.log("Could not fetch custom models")}return Response.json({object:"list",data:y},{headers:b})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},90416:(a,b,c)=>{"use strict";c.d(b,{L4:()=>f,Y3:()=>g,nC:()=>h});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"animatediff",name:"AnimateDiff"},{id:"svd-xt",name:"Stable Video Diffusion XT"}]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860",authType:"none",authHeader:"none",format:"sdwebui-video",models:[{id:"animatediff-webui",name:"AnimateDiff (WebUI)"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},92556:(a,b,c)=>{"use strict";c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},94954:(a,b,c)=>{"use strict";c.d(b,{AN:()=>f,Bo:()=>e,xt:()=>g});let d={cohere:{id:"cohere",baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v3.5",name:"Rerank v3.5"},{id:"rerank-english-v3.0",name:"Rerank English v3.0"},{id:"rerank-multilingual-v3.0",name:"Rerank Multilingual v3.0"}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"Salesforce/Llama-Rank-V2",name:"Llama Rank V2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/ranking",authType:"apikey",authHeader:"bearer",format:"nvidia",models:[{id:"nvidia/nv-rerankqa-mistral-4b-v3",name:"NV RerankQA Mistral 4B v3"}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/nomic-rerank-v1",name:"Nomic Rerank v1"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}},96487:()=>{},96721:(a,b,c)=>{"use strict";c.d(b,{iI:()=>g,mX:()=>e,vb:()=>f});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/moderations",authType:"apikey",authHeader:"bearer",models:[{id:"omni-moderation-latest",name:"Omni Moderation Latest"},{id:"text-moderation-latest",name:"Text Moderation Latest"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}}};
@@ -0,0 +1,2 @@
1
+ exports.id=1909,exports.ids=[1909],exports.modules={3845:(a,b,c)=>{var d={"./ar.json":[48464,8464],"./bg.json":[60944,944],"./da.json":[18976,8976],"./de.json":[22372,2372],"./en.json":[31960,1960],"./es.json":[87011,7011],"./fi.json":[96118,6118],"./fr.json":[53911,3911],"./he.json":[51248,1248],"./hu.json":[50496,496],"./id.json":[16930,6930],"./in.json":[30708,708],"./it.json":[32594,2594],"./ja.json":[37650,7650],"./ko.json":[79837,9837],"./ms.json":[55752,3371],"./nl.json":[35097,5097],"./no.json":[88220,8220],"./phi.json":[28706,8706],"./pl.json":[99119,9119],"./pt-BR.json":[41990,1990],"./pt.json":[11623,1623],"./ro.json":[71880,1880],"./ru.json":[61526,1526],"./sk.json":[25945,5945],"./sv.json":[85094,5094],"./th.json":[55047,5047],"./uk-UA.json":[11584,1584],"./vi.json":[22214,2214],"./zh-CN.json":[65521,5521]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=3845,a.exports=e},8979:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/diegosouzapw/dev/proxys/9router/src/app/not-found.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/diegosouzapw/dev/proxys/9router/src/app/not-found.tsx","default")},14004:(a,b,c)=>{Promise.resolve().then(c.bind(c,81227))},14521:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},15336:(a,b,c)=>{Promise.resolve().then(c.bind(c,95127))},17084:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>o,DI:()=>l,fg:()=>j,MA:()=>p,IS:()=>h,zN:()=>i,JH:()=>k,wb:()=>s,wG:()=>r,zt:()=>q,gb:()=>n,mq:()=>m});var d=c(60258);let e=d.Ikc({id:d.YjP().min(1),alias:d.YjP().min(1),name:d.YjP().min(1),icon:d.YjP().min(1),color:d.YjP().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:d.YjP().optional(),website:d.YjP().url().optional(),passthroughModels:d.zMY().optional()}),f=d.g1P(d.YjP(),e);function g(a,b){let c=f.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}`)}}let h={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",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"}},j={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"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},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"},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",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},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"},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"},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://www.cerebras.ai"},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://developer.nvidia.com/nim"},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"}},k="openai-compatible-",l="anthropic-compatible-";function m(a){return"string"==typeof a&&a.startsWith(k)}function n(a){return"string"==typeof a&&a.startsWith(l)}let o={...h,...i,...j},p={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function q(a){for(let b of Object.values(o))if(b.alias===a||b.id===a)return b;return null}function r(a){let b=o[a];return b?.alias||a}Object.values(o).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(o).reduce((a,b)=>(a[b.id]=b.alias,a),{});let s=["antigravity","kiro","github","codex","claude"];g(h,"FREE_PROVIDERS"),g(i,"OAUTH_PROVIDERS"),g(j,"APIKEY_PROVIDERS")},21280:(a,b,c)=>{"use strict";c.d(b,{S_:()=>o});var d=c(22901),e=c(87068);let f="[HealthCheck]",g=new Set(["1","true","yes","on"]);function h(a){let b=process.env[a];return!!b&&g.has(b.trim().toLowerCase())}let i=null,j=0,k=null;async function l(){if(h("OMNIROUTE_HIDE_HEALTHCHECK_LOGS"))return!0;let a=Date.now();return null!==i&&a-j<3e4?i:null!==k?k:k=(async()=>{try{let b=await (0,d.V7)();return i=!0===b.hideHealthCheckLogs,j=a,i}catch{return!1}finally{k=null}})()}function m(a,...b){l().then(c=>{c||console.log(a,...b)})}function n(a,...b){l().then(c=>{c||console.error(a,...b)})}function o(){i=null,j=0}let p=!1;async function q(){try{let a=await (0,d.getProviderConnections)({authType:"oauth"});if(!a||0===a.length)return;for(let b of a)try{await r(b)}catch(a){n(`${f} Error checking ${b.name||b.id}:`,a.message)}}catch(a){n(`${f} Sweep error:`,a.message)}}async function r(a){let b=a.healthCheckInterval??60;if(b<=0||!a.isActive||!a.refreshToken||"string"!=typeof a.refreshToken||"expired"===a.testStatus)return;if(!(0,e.Ny)(a.provider)){let b=new Date().toISOString();await (0,d.rj)(a.id,{lastHealthCheckAt:b}),m(`${f} Skipping ${a.provider}/${a.name||a.email||a.id} (refresh unsupported)`);return}let c=a.lastHealthCheckAt?new Date(a.lastHealthCheckAt).getTime():0;if(Date.now()-c<60*b*1e3)return;m(`${f} Refreshing ${a.provider}/${a.name||a.email||a.id} (interval: ${b}min)`);let g={refreshToken:a.refreshToken,accessToken:a.accessToken,expiresAt:a.tokenExpiresAt,providerSpecificData:a.providerSpecificData},h=await l(),i=await (0,e.iD)(a.provider,g,{info:(a,b)=>{h||console.log(`${f} [${a}] ${b}`)},warn:(a,b)=>{h||console.warn(`${f} [${a}] ${b}`)},error:(a,b,c)=>{h||console.error(`${f} [${a}] ${b}`,c||"")}}),j=new Date().toISOString();if((0,e.jT)(i)){await (0,d.rj)(a.id,{lastHealthCheckAt:j,testStatus:"expired",lastError:`Refresh token consumed (${i.error}). Please re-authenticate this account.`,lastErrorAt:j,lastErrorType:i.error,lastErrorSource:"oauth",errorCode:i.error,isActive:!1,refreshToken:null}),n(`${f} ✗ ${a.provider}/${a.name||a.email||a.id} — Refresh token is permanently invalid (${i.error}). Connection deactivated. Re-authenticate to restore.`);return}if(i&&i.accessToken){let b={accessToken:i.accessToken,lastHealthCheckAt:j,testStatus:"active",lastError:null,lastErrorAt:null,lastErrorType:null,lastErrorSource:null,errorCode:null};i.refreshToken&&(b.refreshToken=i.refreshToken),i.expiresIn&&(b.tokenExpiresAt=new Date(Date.now()+1e3*i.expiresIn).toISOString()),await (0,d.rj)(a.id,b),m(`${f} ✓ ${a.provider}/${a.name||a.email||a.id} refreshed`)}else await (0,d.rj)(a.id,{lastHealthCheckAt:j,testStatus:"error",lastError:"Health check: token refresh failed",lastErrorAt:j,lastErrorType:"token_refresh_failed",lastErrorSource:"oauth",errorCode:"refresh_failed"}),function(a,...b){l().then(c=>{c||console.warn(a,...b)})}(`${f} ✗ ${a.provider}/${a.name||a.email||a.id} refresh failed`)}h("OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK")||(p=!0,m(`${f} Starting proactive token health-check (tick every 60s)`),setTimeout(()=>{q(),setInterval(q,6e4)},1e4))},22746:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>j,PageLoading:()=>h,Skeleton:()=>i,Spinner:()=>g,default:()=>k});var d=c(48249),e=c(31846);let f={sm:"size-4",md:"size-6",lg:"size-8",xl:"size-12"};function g({size:a="md",className:b,label:c="Loading"}){return(0,d.jsxs)("span",{role:"status","aria-live":"polite","aria-label":c,className:(0,e.cn)("inline-flex",b),children:[(0,d.jsx)("span",{className:"sr-only",children:c}),(0,d.jsx)("span",{"aria-hidden":"true",className:(0,e.cn)("material-symbols-outlined text-primary animate-spin motion-reduce:animate-none",f[a]),children:"progress_activity"})]})}function h({message:a="Loading...",className:b}){return(0,d.jsxs)("div",{className:(0,e.cn)("fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg px-6",b),role:"status","aria-live":"polite","aria-busy":"true",children:[(0,d.jsx)(g,{size:"xl"}),(0,d.jsx)("p",{className:"mt-4 text-text-muted text-center",children:a})]})}function i({className:a,...b}){return(0,d.jsx)("div",{"aria-hidden":"true",className:(0,e.cn)("animate-pulse motion-reduce:animate-none rounded-lg bg-border",a),...b})}function j(){return(0,d.jsxs)("div",{className:"p-6 rounded-xl border border-border bg-surface","aria-hidden":"true",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4 gap-4",children:[(0,d.jsx)(i,{className:"h-4 w-24"}),(0,d.jsx)(i,{className:"size-10 rounded-lg"})]}),(0,d.jsx)(i,{className:"h-8 w-16 mb-2"}),(0,d.jsx)(i,{className:"h-3 w-20"})]})}function k({type:a="spinner",className:b,message:c,size:e,label:f,...k}){switch(a){case"page":return(0,d.jsx)(h,{message:c,className:b});case"skeleton":return(0,d.jsx)(i,{className:b,...k});case"card":return(0,d.jsx)(j,{});default:return(0,d.jsx)(g,{size:e,className:b,label:f})}}},30807:(a,b,c)=>{Promise.resolve().then(c.bind(c,62626)),Promise.resolve().then(c.bind(c,75146))},31846:(a,b,c)=>{"use strict";function d(...a){return a.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}c.d(b,{cn:()=>d})},32444:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/diegosouzapw/dev/proxys/9router/src/shared/components/ThemeProvider.tsx","ThemeProvider")},33314:(a,b,c)=>{Promise.resolve().then(c.bind(c,64385))},45300:(a,b,c)=>{Promise.resolve().then(c.bind(c,8979))},47508:(a,b,c)=>{Promise.resolve().then(c.bind(c,73857))},47695:(a,b,c)=>{"use strict";c.d(b,{A:()=>i,F:()=>h});var d=c(31417),e=c(300),f=c(73959);let g=(0,d.v)()((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,colorTheme:"coral",customColor:"#3b82f6",setTheme:b=>{a({theme:b})},setColorTheme:c=>{a({colorTheme:c}),b().customColor},setCustomColorTheme:b=>{let c=function(a){let b=(a||"").trim(),c=b.startsWith("#")?b:`#${b}`;return/^#([0-9a-fA-F]{6})$/.test(c)?c.toLowerCase():"#3b82f6"}(b);a({colorTheme:"custom",customColor:c})},toggleTheme:()=>{let c="dark"===b().theme?"light":"dark";a({theme:c})},initTheme:()=>{let{theme:a,colorTheme:c,customColor:d}=b()}}),{name:f.B2.storageKey})),h={coral:"#e54d5e",blue:"#3b82f6",red:"#ef4444",green:"#22c55e",violet:"#8b5cf6",orange:"#f97316",cyan:"#06b6d4"},i=g},47825:(a,b,c)=>{"use strict";c.d(b,{KC:()=>d.KC,Xg:()=>d.Xg});var d=c(97319);Object.entries(c(17084).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},49226:(a,b,c)=>{"use strict";c.d(b,{A:()=>l});var d=c(90357),e=c(22901);let{dashboardPort:f}=(0,c(83238).z)(),g=process.env.BASE_URL||"http://localhost:20128";class h{constructor(a=null,b=15){this.machineId=a,this.intervalMinutes=b,this.intervalId=null}async initializeMachineId(){this.machineId||(this.machineId=await (0,d.Xj)())}async start(){this.intervalId||(await this.initializeMachineId(),setTimeout(()=>{this.syncWithRetry().catch(()=>{})},3e4),this.intervalId=setInterval(()=>{this.syncWithRetry().catch(()=>{})},60*this.intervalMinutes*1e3))}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}async syncWithRetry(a=1){for(let b=1;b<=a;b++)try{return await this.sync()}catch(d){if(b===a)return null;let c=Math.min(1e3*Math.pow(2,b),1e4);await new Promise(a=>setTimeout(a,c))}}async sync(){if(!await (0,e.Nx)())return null;await this.initializeMachineId();let a=await fetch(`${g}/api/sync/cloud`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({machineId:this.machineId,action:"sync"})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Sync failed");return await a.json()}isRunning(){return null!==this.intervalId}}let i=null;async function j(a=null,b=15){return i||(i=new h(a,b)),i}async function k(){try{await (0,e.bI)();let a=await j(null,15);return await a.start(),a}catch(a){throw console.error("[CloudSync] Error initializing scheduler:",a),a}}a=c.hmd(a),c.c[c.s]===a&&k().catch(a=>console.error("[CloudSync] init failed:",a));let l=k},50969:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},51466:(a,b,c)=>{Promise.resolve().then(c.bind(c,97507))},61135:()=>{},62536:(a,b,c)=>{Promise.resolve().then(c.bind(c,65909))},64385:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/diegosouzapw/dev/proxys/9router/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/diegosouzapw/dev/proxys/9router/src/app/error.tsx","default")},65909:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(48249),e=c(22746);function f(){return(0,d.jsx)(e.PageLoading,{message:"Loading OmniRoute..."})}},66740:(a,b,c)=>{Promise.resolve().then(c.bind(c,67045))},67045:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(48249);function e({error:a,reset:b}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{className:"flex flex-col items-center justify-center min-h-screen p-6 bg-bg text-text-main font-[system-ui,-apple-system,sans-serif] text-center m-0",children:(0,d.jsxs)("main",{role:"alert","aria-live":"assertive",className:"flex flex-col items-center",children:[(0,d.jsx)("div",{className:"text-[64px] mb-4","aria-hidden":"true",children:"⚠️"}),(0,d.jsx)("h1",{className:"text-[28px] font-bold mb-2",children:"Something went wrong"}),(0,d.jsx)("p",{className:"text-[15px] text-text-muted max-w-[400px] leading-relaxed mb-6",children:"An unexpected error occurred. This has been logged and our team will investigate."}),!1,(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-3",children:[(0,d.jsx)("button",{onClick:b,"aria-label":"Retry loading the page",className:"px-8 py-3 rounded-[10px] text-white border-none text-sm font-semibold cursor-pointer transition-transform duration-200 motion-reduce:transition-none motion-reduce:transform-none shadow-warm hover:-translate-y-0.5 bg-gradient-to-br from-primary to-primary-hover focus:outline-2 focus:outline-offset-2 focus:outline-primary",children:"Try Again"}),(0,d.jsx)("a",{href:"/status",className:"px-8 py-3 rounded-[10px] text-sm font-semibold border border-[var(--color-border)] hover:bg-[var(--color-bg-alt)] no-underline focus:outline-2 focus:outline-offset-2 focus:outline-primary","aria-label":"Open system status",children:"System Status"})]})]})})})}},70559:(a,b,c)=>{Promise.resolve().then(c.bind(c,86392)),Promise.resolve().then(c.bind(c,32444))},73857:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(48249),e=c(2116),f=c.n(e);function g(){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-screen p-6 bg-bg text-text-main text-center",role:"main","aria-labelledby":"not-found-title",children:[(0,d.jsx)("div",{className:"text-[96px] font-extrabold leading-none mb-2 bg-gradient-to-br from-primary to-primary-hover bg-clip-text text-transparent","aria-hidden":"true",children:"404"}),(0,d.jsx)("h1",{id:"not-found-title",className:"text-2xl font-semibold mb-2",children:"Page not found"}),(0,d.jsx)("p",{className:"text-[15px] text-text-muted max-w-[400px] leading-relaxed mb-8",children:"The page you're looking for doesn't exist or has been moved."}),(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row items-center gap-3",children:[(0,d.jsx)(f(),{href:"/dashboard",className:"px-8 py-3 rounded-xl text-white text-sm font-medium no-underline transition-all duration-200 motion-reduce:transition-none shadow-warm hover:-translate-y-0.5 bg-gradient-to-br from-primary to-primary-hover hover:shadow-elevated focus:outline-2 focus:outline-offset-2 focus:outline-primary","aria-label":"Return to dashboard",children:"Go to Dashboard"}),(0,d.jsx)(f(),{href:"/status",className:"px-8 py-3 rounded-xl text-sm font-medium no-underline border border-border hover:bg-bg-alt transition-colors duration-200 motion-reduce:transition-none focus:outline-2 focus:outline-offset-2 focus:outline-primary","aria-label":"Open system status page",children:"System Status"})]})]})}},73959:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>d.Q2,fg:()=>d.fg,vQ:()=>e,MA:()=>d.MA,zN:()=>d.zN,B2:()=>f});var d=c(17084);c(47825);let e={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:"2.0.2"},f={storageKey:"theme",defaultTheme:"system"}},75146:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(48249);c(67484);var e=c(47695);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},76537:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>m,metadata:()=>l});var d=c(5735),e=c(50609),f=c.n(e);c(61135);var g=c(32444);c(91057);var h=c(68625),i=c(62026),j=c(28440),k=c(83750);let l={title:"OmniRoute — AI Gateway for Multi-Provider LLMs",description:"OmniRoute is an AI gateway for multi-provider LLMs. One endpoint for all your AI providers.",icons:{icon:"/favicon.svg",apple:"/apple-touch-icon.svg"}};async function m({children:a}){let b=await (0,i.A)(),c=await (0,j.A)(),e=k.rB.includes(b);return(0,d.jsxs)("html",{lang:b,dir:e?"rtl":"ltr",suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,d.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap",rel:"stylesheet"})]}),(0,d.jsxs)("body",{className:`${f().variable} font-sans antialiased`,suppressHydrationWarning:!0,children:[(0,d.jsx)("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg",children:"Skip to content"}),(0,d.jsx)(h.A,{locale:b,messages:c,children:(0,d.jsx)(g.ThemeProvider,{children:a})})]})]})}},78335:()=>{},79803:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(29389),e=c(65573),f=c(83750);let g=(0,d.A)(async()=>{let a=await (0,e.UL)(),b=a.get(f.CL)?.value||"";b||(b=(await (0,e.b3)()).get("x-locale")||""),f.YZ.includes(b)||(b=f.Xn);let d=(await c(3845)(`./${b}.json`)).default;return{locale:b,messages:d}})},81227:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/diegosouzapw/dev/proxys/9router/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/diegosouzapw/dev/proxys/9router/src/app/global-error.tsx","default")},83238:(a,b,c)=>{"use strict";function d(a,b){if(!a)return b;let c=Number.parseInt(String(a),10);return!Number.isFinite(c)||c<1||c>65535?b:c}function e(){let a=d(process.env.OMNIROUTE_PORT||process.env.PORT,20128),b=!!process.env.API_PORT,c=!!process.env.DASHBOARD_PORT;return{port:a,apiPort:d(process.env.API_PORT,a),dashboardPort:d(process.env.DASHBOARD_PORT,a),apiPortExplicit:b,dashboardPortExplicit:c}}c.d(b,{z:()=>e})},83750:(a,b,c)=>{"use strict";c.d(b,{CL:()=>g,Xn:()=>e,YZ:()=>d,rB:()=>f});let d=["en","pt-BR","es","fr","it","ru","zh-CN","de","in","th","uk-UA","ar","ja","vi","bg","da","fi","he","hu","id","ko","ms","nl","no","pt","ro","pl","sk","sv","phi"],e="en",f=["ar","he"],g="NEXT_LOCALE"},90357:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},91057:(a,b,c)=>{"use strict";var d=c(49226);c(21280);let e=!1;(async function(){if(!e)try{await (0,d.A)(),e=!0}catch(a){console.error("[ServerInit] Error initializing cloud sync:",a)}return e})().catch(a=>console.error("[CloudSync] ensure failed:",a))},95127:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/diegosouzapw/dev/proxys/9router/src/app/loading.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/diegosouzapw/dev/proxys/9router/src/app/loading.tsx","default")},96487:()=>{},97319:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>g,vq:()=>f,KC:()=>h});let d={claude:{id:"claude",alias:"cc",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/1.0.83 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.55.1","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"60"},oauth:{clientIdEnv:"CLAUDE_OAUTH_CLIENT_ID",clientIdDefault:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://console.anthropic.com/v1/oauth/token"},models:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}]},gemini:{id:"gemini",alias:"gemini",format:"gemini",executor:"default",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",urlBuilder:(a,b,c)=>`${a}/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"apikey",authHeader:"x-goog-api-key",oauth:{clientIdEnv:"GEMINI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3.0 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3.0 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},"gemini-cli":{id:"gemini-cli",alias:"gc",format:"gemini-cli",executor:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",urlBuilder:(a,b,c)=>`${a}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"oauth",authHeader:"bearer",oauth:{clientIdEnv:"GEMINI_CLI_OAUTH_CLIENT_ID",clientIdDefault:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecretEnv:"GEMINI_CLI_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3.0 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3.0 Pro Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}]},codex:{id:"codex",alias:"cx",format:"openai-responses",executor:"codex",baseUrl:"https://chatgpt.com/backend-api/codex/responses",authType:"oauth",authHeader:"bearer",headers:{Version:"0.92.0","Openai-Beta":"responses=experimental","User-Agent":"codex-cli/0.92.0 (Windows 10.0.26100; x64)"},oauth:{clientIdEnv:"CODEX_OAUTH_CLIENT_ID",clientIdDefault:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecretEnv:"CODEX_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://auth.openai.com/oauth/token"},models:[{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}]},qwen:{id:"qwen",alias:"qw",format:"openai",executor:"default",baseUrl:"https://portal.qwen.ai/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},oauth:{clientIdEnv:"QWEN_OAUTH_CLIENT_ID",clientIdDefault:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"}]},iflow:{id:"iflow",alias:"if",format:"openai",executor:"iflow",baseUrl:"https://apis.iflow.cn/v1/chat/completions",authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"iFlow-Cli"},oauth:{clientIdEnv:"IFLOW_OAUTH_CLIENT_ID",clientIdDefault:"10009311001",clientSecretEnv:"IFLOW_OAUTH_CLIENT_SECRET",clientSecretDefault:"",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3.2-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-v3.2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"minimax-m2.1",name:"MiniMax M2.1"},{id:"glm-4.7",name:"GLM 4.7"}]},antigravity:{id:"antigravity",alias:"ag",format:"antigravity",executor:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://cloudcode-pa.googleapis.com"],urlBuilder:(a,b,c)=>`${a}${c?"/v1internal:streamGenerateContent?alt=sse":"/v1internal:generateContent"}`,authType:"oauth",authHeader:"bearer",headers:{"User-Agent":"antigravity/1.104.0 darwin/arm64"},oauth:{clientIdEnv:"ANTIGRAVITY_OAUTH_CLIENT_ID",clientIdDefault:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecretEnv:"ANTIGRAVITY_OAUTH_CLIENT_SECRET",clientSecretDefault:""},models:[{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.1-flash",name:"Gemini 3.1 Flash"},{id:"gemini-3-flash",name:"Gemini 3.0 Flash"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}]},github:{id:"github",alias:"gh",format:"openai",executor:"github",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesBaseUrl:"https://api.githubcopilot.com/responses",authType:"oauth",authHeader:"bearer",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},models:[{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini",targetFormat:"openai-responses"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",targetFormat:"openai-responses"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",targetFormat:"openai-responses"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5 (Full ID)"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}]},kiro:{id:"kiro",alias:"kr",format:"kiro",executor:"kiro",baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",authType:"oauth",authHeader:"bearer",headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},oauth:{tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},models:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"}]},cursor:{id:"cursor",alias:"cu",format:"cursor",executor:"cursor",baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",authType:"oauth",authHeader:"bearer",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"1.1.3",models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"}]},openai:{id:"openai",alias:"openai",format:"openai",executor:"default",baseUrl:"https://api.openai.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}]},anthropic:{id:"anthropic",alias:"anthropic",format:"claude",executor:"default",baseUrl:"https://api.anthropic.com/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01"},models:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}]},openrouter:{id:"openrouter",alias:"openrouter",format:"openai",executor:"default",baseUrl:"https://openrouter.ai/api/v1/chat/completions",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},models:[{id:"auto",name:"Auto (Best Available)"}]},glm:{id:"glm",alias:"glm",format:"claude",executor:"default",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"},{id:"glm-4.6",name:"GLM 4.6"},{id:"glm-4.5v",name:"GLM 4.5V (Vision)"},{id:"glm-4.5",name:"GLM 4.5"},{id:"glm-4.5-air",name:"GLM 4.5 Air"},{id:"glm-4-32b",name:"GLM 4 32B"}]},kimi:{id:"kimi",alias:"kimi",format:"openai",executor:"default",baseUrl:"https://api.moonshot.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}]},"kimi-coding":{id:"kimi-coding",alias:"kmc",format:"claude",executor:"default",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",authType:"oauth",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},oauth:{clientIdEnv:"KIMI_CODING_OAUTH_CLIENT_ID",clientIdDefault:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",authUrl:"https://auth.kimi.com/api/oauth/device_authorization"},models:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}]},kilocode:{id:"kilocode",alias:"kc",format:"openrouter",executor:"openrouter",baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",modelsUrl:"https://api.kilo.ai/api/openrouter/models",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},models:[{id:"openrouter/free",name:"Free Models Router"},{id:"qwen/qwen3-vl-235b-a22b-thinking",name:"Qwen3 VL 235B A22B Thinking"},{id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen/qwen3-vl-30b-a3b-thinking",name:"Qwen3 VL 30B A3B Thinking"},{id:"stepfun/step-3.5-flash:free",name:"StepFun Step 3.5 Flash"},{id:"arcee-ai/trinity-large-preview:free",name:"Arcee AI Trinity Large Preview"},{id:"openai/gpt-4o-mini",name:"GPT-4o Mini"},{id:"openai/gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"openai/gpt-5-nano",name:"GPT-5 Nano"},{id:"openai/gpt-5-mini",name:"GPT-5 Mini"},{id:"anthropic/claude-3-haiku",name:"Claude 3 Haiku"},{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek V3.1"},{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-scout",name:"Llama 4 Scout"},{id:"meta-llama/llama-4-maverick",name:"Llama 4 Maverick"},{id:"qwen/qwen3-8b",name:"Qwen3 8B"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"qwen/qwen3-coder",name:"Qwen3 Coder 480B"},{id:"qwen/qwq-32b",name:"QwQ 32B"},{id:"mistralai/mistral-small-24b-instruct-2501",name:"Mistral Small 3"},{id:"mistralai/mistral-7b-instruct",name:"Mistral 7B"},{id:"x-ai/grok-code-fast-1",name:"Grok Code Fast 1"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"}],passthroughModels:!0},cline:{id:"cline",alias:"cl",format:"openai",executor:"openai",baseUrl:"https://api.cline.bot/api/v1/chat/completions",authType:"oauth",authHeader:"Authorization",authPrefix:"Bearer ",oauth:{tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",authUrl:"https://api.cline.bot/api/v1/auth/authorize"},extraHeaders:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"}],passthroughModels:!0},minimax:{id:"minimax",alias:"minimax",format:"claude",executor:"default",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",format:"claude",executor:"default",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",authType:"apikey",authHeader:"x-api-key",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},models:[{id:"MiniMax-M2.1",name:"MiniMax M2.1"}]},deepseek:{id:"deepseek",alias:"ds",format:"openai",executor:"default",baseUrl:"https://api.deepseek.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}]},groq:{id:"groq",alias:"groq",format:"openai",executor:"default",baseUrl:"https://api.groq.com/openai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"}]},blackbox:{id:"blackbox",alias:"bb",format:"openai",executor:"default",baseUrl:"https://api.blackbox.ai/v1/chat/completions",modelsUrl:"https://api.blackbox.ai/v1/models",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"deepseek-v3",name:"DeepSeek V3"},{id:"blackboxai",name:"Blackbox AI"},{id:"blackboxai-pro",name:"Blackbox AI Pro"}]},xai:{id:"xai",alias:"xai",format:"openai",executor:"default",baseUrl:"https://api.x.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}]},mistral:{id:"mistral",alias:"mistral",format:"openai",executor:"default",baseUrl:"https://api.mistral.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}]},perplexity:{id:"perplexity",alias:"pplx",format:"openai",executor:"default",baseUrl:"https://api.perplexity.ai/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}]},together:{id:"together",alias:"together",format:"openai",executor:"default",baseUrl:"https://api.together.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"}]},fireworks:{id:"fireworks",alias:"fireworks",format:"openai",executor:"default",baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"}]},cerebras:{id:"cerebras",alias:"cerebras",format:"openai",executor:"default",baseUrl:"https://api.cerebras.ai/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},cohere:{id:"cohere",alias:"cohere",format:"openai",executor:"default",baseUrl:"https://api.cohere.com/v2/chat",authType:"apikey",authHeader:"bearer",models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},nvidia:{id:"nvidia",alias:"nvidia",format:"openai",executor:"default",baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"deepseek-ai/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"nvidia/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"deepseek/deepseek-r1",name:"DeepSeek R1"}]},nebius:{id:"nebius",alias:"nebius",format:"openai",executor:"default",baseUrl:"https://api.tokenfactory.nebius.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}]},siliconflow:{id:"siliconflow",alias:"siliconflow",format:"openai",executor:"default",baseUrl:"https://api.siliconflow.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}]},hyperbolic:{id:"hyperbolic",alias:"hyp",format:"openai",executor:"default",baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]}},e=new Map;for(let a of Object.values(d))a.alias&&a.alias!==a.id&&e.set(a.alias,a);let f=function(){let a={};for(let b of Object.values(d))if(b.models&&b.models.length>0){let c=b.alias||b.id;a[c]||(a[c]=b.models)}return a}(),g=function(){let a={};for(let b of Object.values(d))a[b.id]=b.alias||b.id;return a}();function h(a){return f[g[a]||a]||[]}},97507:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(48249);function e({error:a,reset:b}){return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-[60vh] p-6 text-center",role:"alert","aria-live":"assertive",children:[(0,d.jsx)("div",{className:"text-[64px] mb-4","aria-hidden":"true",children:"\uD83D\uDD27"}),(0,d.jsx)("h1",{className:"text-[28px] font-bold mb-2 text-[var(--color-text-main)]",children:"Internal Server Error"}),(0,d.jsx)("p",{className:"text-[15px] text-[var(--color-text-muted)] max-w-[400px] leading-relaxed mb-2",children:"Something went wrong while processing your request. Our team has been notified and is working on a fix."}),a?.digest&&(0,d.jsxs)("p",{className:"text-xs text-[var(--color-text-muted)] mb-6 font-mono",children:["Error ID: ",a.digest]}),!1,(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("button",{onClick:b,"aria-label":"Retry loading the page",className:"px-6 py-2.5 rounded-lg text-white text-sm font-semibold cursor-pointer transition-all duration-200 motion-reduce:transition-none bg-[var(--color-accent)] hover:bg-[var(--color-accent-hover)] focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]",children:"Try Again"}),(0,d.jsx)("a",{href:"/dashboard",className:"px-6 py-2.5 rounded-lg text-[var(--color-text-main)] text-sm font-semibold cursor-pointer transition-all duration-200 motion-reduce:transition-none border border-[var(--color-border)] hover:bg-[var(--color-bg-alt)] no-underline focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]","aria-label":"Return to dashboard",children:"Go to Dashboard"}),(0,d.jsx)("a",{href:"/status",className:"px-6 py-2.5 rounded-lg text-[var(--color-text-main)] text-sm font-semibold cursor-pointer transition-all duration-200 motion-reduce:transition-none border border-[var(--color-border)] hover:bg-[var(--color-bg-alt)] no-underline focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]","aria-label":"Open system status",children:"System Status"})]})]})}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=2180,exports.ids=[2180,4488],exports.modules={44488:(a,b,c)=>{c.d(b,{getDbInstance:()=>y});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(48161),k=c.n(j);let l="omniroute";function m(){try{return k().homedir()}catch{return process.cwd()}}function n(a){if("string"!=typeof a)return null;let b=a.trim();return b?g().resolve(b):null}function o(){return g().join(m(),`.${l}`)}var p=c(73136);let q=function(){try{let a="file:///home/runner/work/OmniRoute/OmniRoute/src/lib/db/migrationRunner.ts";if(a&&a.startsWith("file://")){let b=(0,p.fileURLToPath)(a);return g().join(g().dirname(b),"migrations")}}catch{}return g().join(process.cwd(),"src","lib","db","migrations")}(),r="object"==typeof globalThis.caches&&null!==globalThis.caches,s="phase-production-build"===process.env.NEXT_PHASE,t=function({isCloud:a=!1}={}){if(a)return"/tmp";let b=n(process.env.DATA_DIR);if(b)return b;let c=m();if("win32"===process.platform){let a=process.env.APPDATA||g().join(c,"AppData","Roaming");return g().join(a,l)}let d=n(process.env.XDG_CONFIG_HOME);return d?g().join(d,l):o()}({isCloud:r});r||o();let u=r?null:g().join(t,"storage.sqlite"),v=r?null:g().join(t,"db.json");if(r||g().join(t,"db_backups"),!r&&!i().existsSync(t))try{i().mkdirSync(t,{recursive:!0})}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`[DB] Cannot create data directory '${t}': ${a}
1
+ "use strict";exports.id=2180,exports.ids=[2180,4488],exports.modules={44488:(a,b,c)=>{c.d(b,{getDbInstance:()=>y});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(48161),k=c.n(j);let l="omniroute";function m(){try{return k().homedir()}catch{return process.cwd()}}function n(a){if("string"!=typeof a)return null;let b=a.trim();return b?g().resolve(b):null}function o(){return g().join(m(),`.${l}`)}var p=c(73136);let q=function(){try{let a="file:///home/diegosouzapw/dev/proxys/9router/src/lib/db/migrationRunner.ts";if(a&&a.startsWith("file://")){let b=(0,p.fileURLToPath)(a);return g().join(g().dirname(b),"migrations")}}catch{}return g().join(process.cwd(),"src","lib","db","migrations")}(),r="object"==typeof globalThis.caches&&null!==globalThis.caches,s="phase-production-build"===process.env.NEXT_PHASE,t=function({isCloud:a=!1}={}){if(a)return"/tmp";let b=n(process.env.DATA_DIR);if(b)return b;let c=m();if("win32"===process.platform){let a=process.env.APPDATA||g().join(c,"AppData","Roaming");return g().join(a,l)}let d=n(process.env.XDG_CONFIG_HOME);return d?g().join(d,l):o()}({isCloud:r});r||o();let u=r?null:g().join(t,"storage.sqlite"),v=r?null:g().join(t,"db.json");if(r||g().join(t,"db_backups"),!r&&!i().existsSync(t))try{i().mkdirSync(t,{recursive:!0})}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`[DB] Cannot create data directory '${t}': ${a}
2
2
  [DB] Set the DATA_DIR environment variable to a writable path, e.g.:
3
3
  [DB] DATA_DIR=/path/to/writable/dir omniroute`)}let w=`
4
4
  CREATE TABLE IF NOT EXISTS provider_connections (
@@ -42,4 +42,4 @@
42
42
  UPDATE provider_nodes SET type = @type, name = @name, prefix = @prefix,
43
43
  api_type = @apiType, base_url = @baseUrl, updated_at = @updatedAt
44
44
  WHERE id = @id
45
- `).run({id:a,type:g.type,name:g.name,prefix:g.prefix||null,apiType:g.apiType||null,baseUrl:g.baseUrl||null,updatedAt:g.updatedAt}),(0,f.lR)("pre-write"),g}async function G(a){let b=(0,e.sm)(),c=b.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(a);return c?(b.prepare("DELETE FROM provider_nodes WHERE id = ?").run(a),(0,f.lR)("pre-write"),(0,e.kB)(c)):null}function H(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{};return{key:"string"==typeof b.key?b.key:null,value:"string"==typeof b.value?b.value:null}}async function I(){let a=(0,e.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),b={};for(let c of a){let{key:a,value:d}=H(c);a&&null!==d&&(b[a]=JSON.parse(d))}return b}async function J(a,b){(0,e.sm)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(a,JSON.stringify(b)),(0,f.lR)("pre-write")}async function K(a){(0,e.sm)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(a),(0,f.lR)("pre-write")}async function L(a){let b=(0,e.sm)();if(a){let c=H(b.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(a)).value;return c?JSON.parse(c):{}}let c=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),d={};for(let a of c){let{key:b,value:c}=H(a);b&&null!==c&&(d[b]=JSON.parse(c))}return d}async function M(a,b){(0,e.sm)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(a,JSON.stringify(b||{})),(0,f.lR)("pre-write")}async function N(a){let b=(0,e.sm)();if(a){let c=H(b.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a)).value;return c?JSON.parse(c):[]}let c=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),d={};for(let a of c){let{key:b,value:c}=H(a);b&&null!==c&&(d[b]=JSON.parse(c))}return d}async function O(){let a=(0,e.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),b={};for(let c of a){let{key:a,value:d}=H(c);a&&null!==d&&(b[a]=JSON.parse(d))}return b}async function P(a,b,c,d="manual"){let g=(0,e.sm)(),h=H(g.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a)).value,i=h?JSON.parse(h):[],j=i.find(a=>a.id===b);if(j)return j;let k={id:b,name:c||b,source:d};return i.push(k),g.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(a,JSON.stringify(i)),(0,f.lR)("pre-write"),k}async function Q(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a);if(!d)return!1;let g=H(d).value;if(!g)return!1;let h=JSON.parse(g),i=h.length,j=h.filter(a=>a.id!==b);return j.length!==i&&(0===j.length?c.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(a):c.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(j),a),(0,f.lR)("pre-write"),!0)}function R(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{};return"string"==typeof b.data?b.data:null}async function S(){return(0,e.sm)().prepare("SELECT data FROM combos ORDER BY name").all().map(a=>R(a)).filter(a=>null!==a).map(a=>JSON.parse(a))}async function T(a){let b=R((0,e.sm)().prepare("SELECT data FROM combos WHERE id = ?").get(a));return b?JSON.parse(b):null}async function U(a){let b=R((0,e.sm)().prepare("SELECT data FROM combos WHERE name = ?").get(a));return b?JSON.parse(b):null}async function V(a){let b=(0,e.sm)(),c=new Date().toISOString(),g={id:(0,d.A)(),name:a.name,models:a.models||[],strategy:a.strategy||"priority",config:a.config||{},createdAt:c,updatedAt:c};return b.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(g.id,g.name,JSON.stringify(g),c,c),(0,f.lR)("pre-write"),g}async function W(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT data FROM combos WHERE id = ?").get(a);if(!d)return null;let g=R(d);if(!g)return null;let h={...JSON.parse(g),...b,updatedAt:new Date().toISOString()};return c.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(h.name,JSON.stringify(h),h.updatedAt,a),(0,f.lR)("pre-write"),h}async function X(a){return 0!==(0,e.sm)().prepare("DELETE FROM combos WHERE id = ?").run(a).changes&&((0,f.lR)("pre-write"),!0)}var Y=c(80500),Z=c(9679)},80500:(a,b,c)=>{c.d(b,{Iq:()=>B,Jg:()=>C,Lh:()=>D,Oo:()=>G,PX:()=>x,v9:()=>F,validateApiKey:()=>E,yg:()=>y});var d=c(94755),e=c(42910),f=c(39948),g=c(954),h=c(81249);let i=!1,j=new Map,k=new Map,l=new Map,m=new Map,n=null,o=null,p=null,q=null,r=null,s=null;function t(){j.clear(),k.clear(),m.clear()}function u(a){return a&&"object"==typeof a?a:{}}function v(a){if(a.size>1e3){let b=Math.floor(200),c=0;for(let d of a.keys()){if(c++>=b)break;a.delete(d)}}}function w(a){if(!i)try{let b=a.prepare("PRAGMA table_info(api_keys)").all(),c=new Set(b.map(a=>String(a.name??"")));c.has("allowed_models")||(a.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),c.has("no_log")||(a.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),i=!0}catch(a){console.warn("[DB] Failed to verify api_keys schema:",a instanceof Error?a.message:String(a))}if(n&&o&&p&&q&&r&&s||(n=a.prepare("SELECT * FROM api_keys ORDER BY created_at"),o=a.prepare("SELECT * FROM api_keys WHERE id = ?"),p=a.prepare("SELECT 1 FROM api_keys WHERE key = ?"),q=a.prepare("SELECT id, name, machine_id, allowed_models, no_log FROM api_keys WHERE key = ?"),r=a.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),s=a.prepare("DELETE FROM api_keys WHERE id = ?")),!n||!o||!p||!q||!r||!s)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:n,getKeyById:o,validateKey:p,getKeyMetadata:q,insertKey:r,deleteKey:s}}async function x(){return w((0,e.sm)()).getAllKeys.all().map(a=>{let b=u((0,e.kB)(a));return b.allowedModels=z(b.allowedModels),b.noLog=A(b.noLog),"string"==typeof b.id&&b.id.length>0&&(0,h.Ct)(b.id,!0===b.noLog),b})}async function y(a){let b=w((0,e.sm)()).getKeyById.get(a);if(!b)return null;let c=u((0,e.kB)(b));return c.allowedModels=z(c.allowedModels),c.noLog=A(c.noLog),"string"==typeof c.id&&c.id.length>0&&(0,h.Ct)(c.id,!0===c.noLog),c}function z(a){if(!a||"string"!=typeof a||""===a.trim())return[];try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}function A(a){return!0===a||1===a||"1"===a}async function B(a,b){if(!b)throw Error("machineId is required");let g=(0,e.sm)(),i=new Date().toISOString(),{generateApiKeyWithMachine:j}=await c.e(2286).then(c.bind(c,62286)),k=j(b),l={id:(0,d.A)(),name:a,key:k.key,machineId:b,allowedModels:[],noLog:!1,createdAt:i};return w(g).insertKey.run(l.id,l.name,l.key,l.machineId,"[]",0,l.createdAt),(0,h.Ct)(l.id,!1),(0,f.lR)("pre-write"),l}async function C(a,b){let c=(0,e.sm)();w(c);let d=Array.isArray(b)||void 0===b?{allowedModels:b||[]}:{allowedModels:b.allowedModels,noLog:b.noLog};if(void 0===d.allowedModels&&void 0===d.noLog)return!1;let g=[],i={id:a};return void 0!==d.allowedModels&&(g.push("allowed_models = @allowedModels"),i.allowedModels=JSON.stringify(d.allowedModels||[])),void 0!==d.noLog&&(g.push("no_log = @noLog"),i.noLog=+!!d.noLog),0!==c.prepare(`UPDATE api_keys SET ${g.join(", ")} WHERE id = @id`).run(i).changes&&(void 0!==d.noLog&&(0,h.Ct)(a,d.noLog),t(),(0,f.lR)("pre-write"),!0)}async function D(a){return 0!==w((0,e.sm)()).deleteKey.run(a).changes&&((0,h.Ct)(a,!1),t(),(0,f.lR)("pre-write"),!0)}async function E(a){if(!a||"string"!=typeof a)return!1;let b=Date.now(),c=j.get(a);if(c&&b-c.timestamp<6e4)return c.valid;let d=!!w((0,e.sm)()).validateKey.get(a);return d&&(v(j),j.set(a,{valid:!0,timestamp:b})),d}async function F(a){if(!a||"string"!=typeof a)return null;let b=Date.now(),c=k.get(a);if(c&&b-c.timestamp<6e4)return c.value;let d=w((0,e.sm)()).getKeyMetadata.get(a);if(!d)return null;let f=u(d),g="string"==typeof f.id?f.id:"",i="string"==typeof f.name?f.name:"",j=f.machine_id??f.machineId,l={id:g,name:i,machineId:"string"==typeof j?j:null,allowedModels:z(f.allowed_models??f.allowedModels),noLog:A(f.no_log??f.noLog)};return l.id?((0,h.Ct)(l.id,!0===l.noLog),v(k),k.set(a,{value:l,timestamp:b}),l):null}async function G(a,b){if(!a)return!0;if(!b)return!1;let c=`${a}:${b}`,d=Date.now(),e=m.get(c);if(e&&d-e.timestamp<6e4)return e.allowed;let f=await F(a);if(!f)return!1;let{allowedModels:g}=f;if(!g||0===g.length)return!0;let h=!1;for(let a of g){if(a===b){h=!0;break}if(a.endsWith("/*")){let c=a.slice(0,-2);if(b.startsWith(c+"/")||b.startsWith(c)){h=!0;break}}if(a.includes("*")&&(function(a){let b=l.get(a);if(!b){let c=a.replace(/\*/g,".*");if(b=RegExp(`^${c}$`),l.set(a,b),l.size>100){let a=l.keys().next().value;a&&l.delete(a)}}return b})(a).test(b)){h=!0;break}}return v(m),m.set(c,{allowed:h,timestamp:d}),h}(0,g.D)(function(){n=null,o=null,p=null,q=null,r=null,s=null,i=!1,t(),m.clear(),l.clear()})}};
45
+ `).run({id:a,type:g.type,name:g.name,prefix:g.prefix||null,apiType:g.apiType||null,baseUrl:g.baseUrl||null,updatedAt:g.updatedAt}),(0,f.lR)("pre-write"),g}async function G(a){let b=(0,e.sm)(),c=b.prepare("SELECT * FROM provider_nodes WHERE id = ?").get(a);return c?(b.prepare("DELETE FROM provider_nodes WHERE id = ?").run(a),(0,f.lR)("pre-write"),(0,e.kB)(c)):null}function H(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{};return{key:"string"==typeof b.key?b.key:null,value:"string"==typeof b.value?b.value:null}}async function I(){let a=(0,e.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'modelAliases'").all(),b={};for(let c of a){let{key:a,value:d}=H(c);a&&null!==d&&(b[a]=JSON.parse(d))}return b}async function J(a,b){(0,e.sm)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('modelAliases', ?, ?)").run(a,JSON.stringify(b)),(0,f.lR)("pre-write")}async function K(a){(0,e.sm)().prepare("DELETE FROM key_value WHERE namespace = 'modelAliases' AND key = ?").run(a),(0,f.lR)("pre-write")}async function L(a){let b=(0,e.sm)();if(a){let c=H(b.prepare("SELECT value FROM key_value WHERE namespace = 'mitmAlias' AND key = ?").get(a)).value;return c?JSON.parse(c):{}}let c=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'mitmAlias'").all(),d={};for(let a of c){let{key:b,value:c}=H(a);b&&null!==c&&(d[b]=JSON.parse(c))}return d}async function M(a,b){(0,e.sm)().prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('mitmAlias', ?, ?)").run(a,JSON.stringify(b||{})),(0,f.lR)("pre-write")}async function N(a){let b=(0,e.sm)();if(a){let c=H(b.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a)).value;return c?JSON.parse(c):[]}let c=b.prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),d={};for(let a of c){let{key:b,value:c}=H(a);b&&null!==c&&(d[b]=JSON.parse(c))}return d}async function O(){let a=(0,e.sm)().prepare("SELECT key, value FROM key_value WHERE namespace = 'customModels'").all(),b={};for(let c of a){let{key:a,value:d}=H(c);a&&null!==d&&(b[a]=JSON.parse(d))}return b}async function P(a,b,c,d="manual",g="chat-completions",h=["chat"]){let i=(0,e.sm)(),j=H(i.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a)).value,k=j?JSON.parse(j):[],l=k.find(a=>a.id===b);if(l)return l;let m={id:b,name:c||b,source:d,apiFormat:g,supportedEndpoints:h};return k.push(m),i.prepare("INSERT OR REPLACE INTO key_value (namespace, key, value) VALUES ('customModels', ?, ?)").run(a,JSON.stringify(k)),(0,f.lR)("pre-write"),m}async function Q(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT value FROM key_value WHERE namespace = 'customModels' AND key = ?").get(a);if(!d)return!1;let g=H(d).value;if(!g)return!1;let h=JSON.parse(g),i=h.length,j=h.filter(a=>a.id!==b);return j.length!==i&&(0===j.length?c.prepare("DELETE FROM key_value WHERE namespace = 'customModels' AND key = ?").run(a):c.prepare("UPDATE key_value SET value = ? WHERE namespace = 'customModels' AND key = ?").run(JSON.stringify(j),a),(0,f.lR)("pre-write"),!0)}function R(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{};return"string"==typeof b.data?b.data:null}async function S(){return(0,e.sm)().prepare("SELECT data FROM combos ORDER BY name").all().map(a=>R(a)).filter(a=>null!==a).map(a=>JSON.parse(a))}async function T(a){let b=R((0,e.sm)().prepare("SELECT data FROM combos WHERE id = ?").get(a));return b?JSON.parse(b):null}async function U(a){let b=R((0,e.sm)().prepare("SELECT data FROM combos WHERE name = ?").get(a));return b?JSON.parse(b):null}async function V(a){let b=(0,e.sm)(),c=new Date().toISOString(),g={id:(0,d.A)(),name:a.name,models:a.models||[],strategy:a.strategy||"priority",config:a.config||{},createdAt:c,updatedAt:c};return b.prepare("INSERT INTO combos (id, name, data, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(g.id,g.name,JSON.stringify(g),c,c),(0,f.lR)("pre-write"),g}async function W(a,b){let c=(0,e.sm)(),d=c.prepare("SELECT data FROM combos WHERE id = ?").get(a);if(!d)return null;let g=R(d);if(!g)return null;let h={...JSON.parse(g),...b,updatedAt:new Date().toISOString()};return c.prepare("UPDATE combos SET name = ?, data = ?, updated_at = ? WHERE id = ?").run(h.name,JSON.stringify(h),h.updatedAt,a),(0,f.lR)("pre-write"),h}async function X(a){return 0!==(0,e.sm)().prepare("DELETE FROM combos WHERE id = ?").run(a).changes&&((0,f.lR)("pre-write"),!0)}var Y=c(80500),Z=c(9679)},80500:(a,b,c)=>{c.d(b,{Iq:()=>B,Jg:()=>C,Lh:()=>D,Oo:()=>G,PX:()=>x,v9:()=>F,validateApiKey:()=>E,yg:()=>y});var d=c(94755),e=c(42910),f=c(39948),g=c(954),h=c(81249);let i=!1,j=new Map,k=new Map,l=new Map,m=new Map,n=null,o=null,p=null,q=null,r=null,s=null;function t(){j.clear(),k.clear(),m.clear()}function u(a){return a&&"object"==typeof a?a:{}}function v(a){if(a.size>1e3){let b=Math.floor(200),c=0;for(let d of a.keys()){if(c++>=b)break;a.delete(d)}}}function w(a){if(!i)try{let b=a.prepare("PRAGMA table_info(api_keys)").all(),c=new Set(b.map(a=>String(a.name??"")));c.has("allowed_models")||(a.exec("ALTER TABLE api_keys ADD COLUMN allowed_models TEXT"),console.log("[DB] Added api_keys.allowed_models column")),c.has("no_log")||(a.exec("ALTER TABLE api_keys ADD COLUMN no_log INTEGER NOT NULL DEFAULT 0"),console.log("[DB] Added api_keys.no_log column")),i=!0}catch(a){console.warn("[DB] Failed to verify api_keys schema:",a instanceof Error?a.message:String(a))}if(n&&o&&p&&q&&r&&s||(n=a.prepare("SELECT * FROM api_keys ORDER BY created_at"),o=a.prepare("SELECT * FROM api_keys WHERE id = ?"),p=a.prepare("SELECT 1 FROM api_keys WHERE key = ?"),q=a.prepare("SELECT id, name, machine_id, allowed_models, no_log FROM api_keys WHERE key = ?"),r=a.prepare("INSERT INTO api_keys (id, name, key, machine_id, allowed_models, no_log, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)"),s=a.prepare("DELETE FROM api_keys WHERE id = ?")),!n||!o||!p||!q||!r||!s)throw Error("Failed to initialize API key prepared statements");return{getAllKeys:n,getKeyById:o,validateKey:p,getKeyMetadata:q,insertKey:r,deleteKey:s}}async function x(){return w((0,e.sm)()).getAllKeys.all().map(a=>{let b=u((0,e.kB)(a));return b.allowedModels=z(b.allowedModels),b.noLog=A(b.noLog),"string"==typeof b.id&&b.id.length>0&&(0,h.Ct)(b.id,!0===b.noLog),b})}async function y(a){let b=w((0,e.sm)()).getKeyById.get(a);if(!b)return null;let c=u((0,e.kB)(b));return c.allowedModels=z(c.allowedModels),c.noLog=A(c.noLog),"string"==typeof c.id&&c.id.length>0&&(0,h.Ct)(c.id,!0===c.noLog),c}function z(a){if(!a||"string"!=typeof a||""===a.trim())return[];try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}function A(a){return!0===a||1===a||"1"===a}async function B(a,b){if(!b)throw Error("machineId is required");let g=(0,e.sm)(),i=new Date().toISOString(),{generateApiKeyWithMachine:j}=await c.e(2286).then(c.bind(c,62286)),k=j(b),l={id:(0,d.A)(),name:a,key:k.key,machineId:b,allowedModels:[],noLog:!1,createdAt:i};return w(g).insertKey.run(l.id,l.name,l.key,l.machineId,"[]",0,l.createdAt),(0,h.Ct)(l.id,!1),(0,f.lR)("pre-write"),l}async function C(a,b){let c=(0,e.sm)();w(c);let d=Array.isArray(b)||void 0===b?{allowedModels:b||[]}:{allowedModels:b.allowedModels,noLog:b.noLog};if(void 0===d.allowedModels&&void 0===d.noLog)return!1;let g=[],i={id:a};return void 0!==d.allowedModels&&(g.push("allowed_models = @allowedModels"),i.allowedModels=JSON.stringify(d.allowedModels||[])),void 0!==d.noLog&&(g.push("no_log = @noLog"),i.noLog=+!!d.noLog),0!==c.prepare(`UPDATE api_keys SET ${g.join(", ")} WHERE id = @id`).run(i).changes&&(void 0!==d.noLog&&(0,h.Ct)(a,d.noLog),t(),(0,f.lR)("pre-write"),!0)}async function D(a){return 0!==w((0,e.sm)()).deleteKey.run(a).changes&&((0,h.Ct)(a,!1),t(),(0,f.lR)("pre-write"),!0)}async function E(a){if(!a||"string"!=typeof a)return!1;let b=Date.now(),c=j.get(a);if(c&&b-c.timestamp<6e4)return c.valid;let d=!!w((0,e.sm)()).validateKey.get(a);return d&&(v(j),j.set(a,{valid:!0,timestamp:b})),d}async function F(a){if(!a||"string"!=typeof a)return null;let b=Date.now(),c=k.get(a);if(c&&b-c.timestamp<6e4)return c.value;let d=w((0,e.sm)()).getKeyMetadata.get(a);if(!d)return null;let f=u(d),g="string"==typeof f.id?f.id:"",i="string"==typeof f.name?f.name:"",j=f.machine_id??f.machineId,l={id:g,name:i,machineId:"string"==typeof j?j:null,allowedModels:z(f.allowed_models??f.allowedModels),noLog:A(f.no_log??f.noLog)};return l.id?((0,h.Ct)(l.id,!0===l.noLog),v(k),k.set(a,{value:l,timestamp:b}),l):null}async function G(a,b){if(!a)return!0;if(!b)return!1;let c=`${a}:${b}`,d=Date.now(),e=m.get(c);if(e&&d-e.timestamp<6e4)return e.allowed;let f=await F(a);if(!f)return!1;let{allowedModels:g}=f;if(!g||0===g.length)return!0;let h=!1;for(let a of g){if(a===b){h=!0;break}if(a.endsWith("/*")){let c=a.slice(0,-2);if(b.startsWith(c+"/")||b.startsWith(c)){h=!0;break}}if(a.includes("*")&&(function(a){let b=l.get(a);if(!b){let c=a.replace(/\*/g,".*");if(b=RegExp(`^${c}$`),l.set(a,b),l.size>100){let a=l.keys().next().value;a&&l.delete(a)}}return b})(a).test(b)){h=!0;break}}return v(m),m.set(c,{allowed:h,timestamp:d}),h}(0,g.D)(function(){n=null,o=null,p=null,q=null,r=null,s=null,i=!1,t(),m.clear(),l.clear()})}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=2910,exports.ids=[2910],exports.modules={42910:(a,b,c)=>{c.d(b,{nJ:()=>o,NJ:()=>r,oh:()=>p,G6:()=>u,sm:()=>w,I8:()=>n,m1:()=>m,jX:()=>x,kB:()=>t});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(88189),k=c(73136);let l=function(){try{let a="file:///home/runner/work/OmniRoute/OmniRoute/src/lib/db/migrationRunner.ts";if(a&&a.startsWith("file://")){let b=(0,k.fileURLToPath)(a);return g().join(g().dirname(b),"migrations")}}catch{}return g().join(process.cwd(),"src","lib","db","migrations")}(),m="object"==typeof globalThis.caches&&null!==globalThis.caches,n="phase-production-build"===process.env.NEXT_PHASE,o=(0,j._3)({isCloud:m});m||(0,j.sm)();let p=m?null:g().join(o,"storage.sqlite"),q=m?null:g().join(o,"db.json"),r=m?null:g().join(o,"db_backups");if(!m&&!i().existsSync(o))try{i().mkdirSync(o,{recursive:!0})}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`[DB] Cannot create data directory '${o}': ${a}
1
+ "use strict";exports.id=2910,exports.ids=[2910],exports.modules={42910:(a,b,c)=>{c.d(b,{nJ:()=>o,NJ:()=>r,oh:()=>p,G6:()=>u,sm:()=>w,I8:()=>n,m1:()=>m,jX:()=>x,kB:()=>t});var d=c(87550),e=c.n(d),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(88189),k=c(73136);let l=function(){try{let a="file:///home/diegosouzapw/dev/proxys/9router/src/lib/db/migrationRunner.ts";if(a&&a.startsWith("file://")){let b=(0,k.fileURLToPath)(a);return g().join(g().dirname(b),"migrations")}}catch{}return g().join(process.cwd(),"src","lib","db","migrations")}(),m="object"==typeof globalThis.caches&&null!==globalThis.caches,n="phase-production-build"===process.env.NEXT_PHASE,o=(0,j._3)({isCloud:m});m||(0,j.sm)();let p=m?null:g().join(o,"storage.sqlite"),q=m?null:g().join(o,"db.json"),r=m?null:g().join(o,"db_backups");if(!m&&!i().existsSync(o))try{i().mkdirSync(o,{recursive:!0})}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`[DB] Cannot create data directory '${o}': ${a}
2
2
  [DB] Set the DATA_DIR environment variable to a writable path, e.g.:
3
3
  [DB] DATA_DIR=/path/to/writable/dir omniroute`)}let s=`
4
4
  CREATE TABLE IF NOT EXISTS provider_connections (