omniroute 2.5.3 → 2.5.4

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 (670) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +42 -42
  3. package/app/.next/build-manifest.json +3 -3
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/required-server-files.json +3 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js +2 -2
  7. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/agents/page.js +2 -2
  10. package/app/.next/server/app/(dashboard)/dashboard/agents/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  13. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +2 -2
  16. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
  19. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js +2 -2
  22. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +4 -4
  25. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  28. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
  31. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  34. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
  37. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
  40. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js +2 -2
  46. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/media/page.js +2 -2
  49. package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
  52. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  55. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/playground/page.js +3 -3
  58. package/app/.next/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  61. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  64. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  67. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  70. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  73. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
  76. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
  79. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  82. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/.well-known/agent.json/route.js +1 -1
  85. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/400/page.js +2 -2
  87. package/app/.next/server/app/400/page.js.nft.json +1 -1
  88. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/401/page.js +2 -2
  90. package/app/.next/server/app/401/page.js.nft.json +1 -1
  91. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/403/page.js +2 -2
  93. package/app/.next/server/app/403/page.js.nft.json +1 -1
  94. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/408/page.js +2 -2
  96. package/app/.next/server/app/408/page.js.nft.json +1 -1
  97. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/429/page.js +2 -2
  99. package/app/.next/server/app/429/page.js.nft.json +1 -1
  100. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/500/page.js +2 -2
  102. package/app/.next/server/app/500/page.js.nft.json +1 -1
  103. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/502/page.js +2 -2
  105. package/app/.next/server/app/502/page.js.nft.json +1 -1
  106. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/503/page.js +2 -2
  108. package/app/.next/server/app/503/page.js.nft.json +1 -1
  109. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/_global-error/page.js +3 -3
  111. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/_global-error.html +2 -2
  113. package/app/.next/server/app/_global-error.rsc +5 -5
  114. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +5 -5
  115. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  116. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  117. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  118. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
  119. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  120. package/app/.next/server/app/_not-found/page.js +2 -2
  121. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  122. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/a2a/route.js +2 -2
  124. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/a2a/status/route.js +1 -1
  126. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route.js +1 -1
  128. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/a2a/tasks/[id]/route.js +1 -1
  130. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/a2a/tasks/route.js +1 -1
  132. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/acp/agents/route.js +1 -1
  134. package/app/.next/server/app/api/acp/agents/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/auth/login/route.js +1 -1
  137. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  140. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/auth/status/route.js +1 -1
  142. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/cache/route.js +1 -1
  144. package/app/.next/server/app/api/cache/route.js.nft.json +1 -1
  145. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/cache/stats/route.js +1 -1
  147. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  149. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  150. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  152. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
  154. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  156. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  159. package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  162. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  164. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  167. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
  170. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  172. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route.js +1 -1
  175. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  177. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  180. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  182. package/app/.next/server/app/api/cli-tools/status/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  185. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  188. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  189. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  191. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  194. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  197. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  198. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/combos/auto/route.js +1 -1
  200. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/combos/metrics/route.js +1 -1
  202. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/api/combos/route.js +1 -1
  204. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  205. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/combos/test/route.js +1 -1
  207. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  208. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  209. package/app/.next/server/app/api/compliance/audit-log/route.js +1 -1
  210. package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/api/db-backups/export/route.js +1 -1
  213. package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -1
  216. package/app/.next/server/app/api/db-backups/exportAll/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/db-backups/import/route.js +1 -1
  219. package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/db-backups/route.js +1 -1
  222. package/app/.next/server/app/api/db-backups/route.js.nft.json +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.js.nft.json +1 -1
  230. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  231. package/app/.next/server/app/api/init/route.js +1 -1
  232. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  235. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  236. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/keys/route.js +1 -1
  238. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  240. package/app/.next/server/app/api/logs/console/route.js +1 -1
  241. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/mcp/audit/route.js +2 -2
  243. package/app/.next/server/app/api/mcp/audit/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/api/mcp/audit/stats/route.js +2 -2
  246. package/app/.next/server/app/api/mcp/audit/stats/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/mcp/sse/route.js +1 -1
  249. package/app/.next/server/app/api/mcp/sse/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/api/mcp/status/route.js +1 -1
  252. package/app/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/mcp/stream/route.js +1 -1
  255. package/app/.next/server/app/api/mcp/stream/route.js.nft.json +1 -1
  256. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  257. package/app/.next/server/app/api/mcp/tools/route.js +1 -1
  258. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  259. package/app/.next/server/app/api/models/alias/route.js +1 -1
  260. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  262. package/app/.next/server/app/api/models/availability/route.js +1 -1
  263. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/models/catalog/route.js +1 -1
  265. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  267. package/app/.next/server/app/api/models/openrouter-catalog/route.js +1 -1
  268. package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/models/route.js +1 -1
  271. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  273. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  274. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  276. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  277. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  278. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  279. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  280. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  282. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  283. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  284. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  285. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  286. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  287. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  288. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  289. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  290. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  291. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  292. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  294. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  296. package/app/.next/server/app/api/policies/route.js +2 -2
  297. package/app/.next/server/app/api/policies/route.js.nft.json +1 -1
  298. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  299. package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
  300. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  301. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  302. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  303. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  304. package/app/.next/server/app/api/pricing/route.js +1 -1
  305. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  306. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  307. package/app/.next/server/app/api/pricing/sync/route.js +1 -1
  308. package/app/.next/server/app/api/pricing/sync/route.js.nft.json +1 -1
  309. package/app/.next/server/app/api/pricing/sync/route_client-reference-manifest.js +1 -1
  310. package/app/.next/server/app/api/provider-metrics/route.js +2 -2
  311. package/app/.next/server/app/api/provider-metrics/route.js.nft.json +1 -1
  312. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  313. package/app/.next/server/app/api/provider-models/route.js +1 -1
  314. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  315. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  316. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  317. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  318. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  319. package/app/.next/server/app/api/provider-nodes/route.js +2 -2
  320. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  321. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  322. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  323. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  324. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  325. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  326. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  327. package/app/.next/server/app/api/providers/[id]/refresh/route.js +1 -1
  328. package/app/.next/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -1
  329. package/app/.next/server/app/api/providers/[id]/refresh/route_client-reference-manifest.js +1 -1
  330. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  331. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  332. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  333. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  334. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  335. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  336. package/app/.next/server/app/api/providers/client/route.js +1 -1
  337. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  338. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  339. package/app/.next/server/app/api/providers/route.js +1 -1
  340. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  341. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  343. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  344. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  345. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  346. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  347. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  348. package/app/.next/server/app/api/rate-limit/route.js +1 -1
  349. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  350. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  351. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  352. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  353. package/app/.next/server/app/api/resilience/reset/route.js +1 -1
  354. package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -1
  355. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  356. package/app/.next/server/app/api/resilience/route.js +1 -1
  357. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  358. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  359. package/app/.next/server/app/api/restart/route.js +1 -1
  360. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  361. package/app/.next/server/app/api/sessions/route.js +1 -1
  362. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  363. package/app/.next/server/app/api/settings/background-degradation/route.js +1 -1
  364. package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +1 -1
  365. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  366. package/app/.next/server/app/api/settings/codex-service-tier/route.js +1 -1
  367. package/app/.next/server/app/api/settings/codex-service-tier/route.js.nft.json +1 -1
  368. package/app/.next/server/app/api/settings/codex-service-tier/route_client-reference-manifest.js +1 -1
  369. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  370. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/settings/ip-filter/route.js +1 -1
  373. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  374. package/app/.next/server/app/api/settings/model-aliases/route.js +1 -1
  375. package/app/.next/server/app/api/settings/model-aliases/route.js.nft.json +1 -1
  376. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  377. package/app/.next/server/app/api/settings/proxy/route.js +1 -1
  378. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  379. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  380. package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
  381. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  382. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  383. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  384. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  385. package/app/.next/server/app/api/settings/route.js +1 -1
  386. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  387. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  388. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  389. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  390. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  391. package/app/.next/server/app/api/settings/task-routing/route.js +1 -1
  392. package/app/.next/server/app/api/settings/task-routing/route.js.nft.json +1 -1
  393. package/app/.next/server/app/api/settings/task-routing/route_client-reference-manifest.js +1 -1
  394. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  395. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  396. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  397. package/app/.next/server/app/api/shutdown/route.js +1 -1
  398. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  399. package/app/.next/server/app/api/storage/health/route.js +1 -1
  400. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  401. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  402. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  403. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  404. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  405. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  406. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  407. package/app/.next/server/app/api/tags/route.js +1 -1
  408. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  409. package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
  410. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  411. package/app/.next/server/app/api/token-health/route.js +1 -1
  412. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  413. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/api/translator/detect/route.js +1 -1
  415. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  416. package/app/.next/server/app/api/translator/history/route.js +1 -1
  417. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  418. package/app/.next/server/app/api/translator/load/route.js +1 -1
  419. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  420. package/app/.next/server/app/api/translator/save/route.js +1 -1
  421. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  422. package/app/.next/server/app/api/translator/send/route.js +1 -1
  423. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  424. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  425. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  426. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  427. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  428. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  429. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  430. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  431. package/app/.next/server/app/api/usage/analytics/route.js +1 -1
  432. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  433. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  434. package/app/.next/server/app/api/usage/budget/route.js +2 -2
  435. package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
  436. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  437. package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
  438. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  439. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  440. package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
  441. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  442. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  443. package/app/.next/server/app/api/usage/history/route.js +1 -1
  444. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  445. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  446. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  447. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  448. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  449. package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
  450. package/app/.next/server/app/api/usage/proxy-logs/route.js.nft.json +1 -1
  451. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  452. package/app/.next/server/app/api/usage/quota/route.js +1 -1
  453. package/app/.next/server/app/api/usage/quota/route.js.nft.json +1 -1
  454. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  455. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  456. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  457. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  458. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  459. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  460. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  461. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  462. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  463. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  464. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  465. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  466. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  467. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  468. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  469. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  470. package/app/.next/server/app/api/v1/completions/route.js +1 -1
  471. package/app/.next/server/app/api/v1/completions/route.js.nft.json +1 -1
  472. package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
  473. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  474. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  475. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  476. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  477. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  478. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  479. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  480. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  481. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  482. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  483. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  484. package/app/.next/server/app/api/v1/models/route.js +1 -1
  485. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  486. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  487. package/app/.next/server/app/api/v1/moderations/route.js +1 -1
  488. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  489. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  490. package/app/.next/server/app/api/v1/music/generations/route.js +1 -1
  491. package/app/.next/server/app/api/v1/music/generations/route.js.nft.json +1 -1
  492. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  493. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
  494. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  495. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  496. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
  497. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  498. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  499. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  500. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  501. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  502. package/app/.next/server/app/api/v1/rerank/route.js +1 -1
  503. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  504. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  505. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  506. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  507. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  508. package/app/.next/server/app/api/v1/route.js +1 -1
  509. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  510. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  511. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  512. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  513. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  514. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  515. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  516. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  517. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  518. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  519. package/app/.next/server/app/callback/page.js +2 -2
  520. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  521. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  522. package/app/.next/server/app/docs/page.js +3 -3
  523. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  524. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  525. package/app/.next/server/app/forbidden/page.js +2 -2
  526. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  527. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  528. package/app/.next/server/app/forgot-password/page.js +2 -2
  529. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  530. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  531. package/app/.next/server/app/landing/page.js +2 -2
  532. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  533. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  534. package/app/.next/server/app/login/page.js +2 -2
  535. package/app/.next/server/app/login/page.js.nft.json +1 -1
  536. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  537. package/app/.next/server/app/maintenance/page.js +2 -2
  538. package/app/.next/server/app/maintenance/page.js.nft.json +1 -1
  539. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  540. package/app/.next/server/app/offline/page.js +2 -2
  541. package/app/.next/server/app/offline/page.js.nft.json +1 -1
  542. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  543. package/app/.next/server/app/page.js +2 -2
  544. package/app/.next/server/app/page.js.nft.json +1 -1
  545. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  546. package/app/.next/server/app/privacy/page.js +2 -2
  547. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  548. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  549. package/app/.next/server/app/status/page.js +2 -2
  550. package/app/.next/server/app/status/page.js.nft.json +1 -1
  551. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  552. package/app/.next/server/app/terms/page.js +2 -2
  553. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  554. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  555. package/app/.next/server/app-paths-manifest.json +42 -42
  556. package/app/.next/server/chunks/242.js +1 -1
  557. package/app/.next/server/chunks/2910.js +1 -1
  558. package/app/.next/server/chunks/3648.js +2 -2
  559. package/app/.next/server/chunks/438.js +1 -1
  560. package/app/.next/server/chunks/4488.js +1 -1
  561. package/app/.next/server/chunks/5248.js +1 -0
  562. package/app/.next/server/chunks/5979.js +1 -1
  563. package/app/.next/server/chunks/6743.js +1 -1
  564. package/app/.next/server/chunks/7109.js +1 -1
  565. package/app/.next/server/chunks/7327.js +1 -1
  566. package/app/.next/server/chunks/7889.js +2 -0
  567. package/app/.next/server/chunks/8020.js +3 -3
  568. package/app/.next/server/chunks/9548.js +1 -1
  569. package/app/.next/server/middleware-build-manifest.js +1 -1
  570. package/app/.next/server/middleware.js +2 -2
  571. package/app/.next/server/next-font-manifest.js +1 -1
  572. package/app/.next/server/next-font-manifest.json +1 -1
  573. package/app/.next/server/pages/500.html +2 -2
  574. package/app/.next/server/server-reference-manifest.js +1 -1
  575. package/app/.next/server/server-reference-manifest.json +1 -1
  576. package/app/.next/static/chunks/{5846-63e1f1f0bd63a6ad.js → 5846-df4fe851d063cfee.js} +1 -1
  577. package/app/.next/static/chunks/{647-bf8bc535ac3648d0.js → 647-62acab8e8736396d.js} +2 -2
  578. package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-43d6fa6b75cca497.js +1 -0
  579. package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/{page-576b27a05c09fba5.js → page-94aa33336637e74c.js} +1 -1
  580. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-49ae846d72948391.js +1 -0
  581. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/{page-6ab7701da3357bb9.js → page-bef5c045e7eae657.js} +1 -1
  582. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-71f65a8c11e24ee8.js +1 -0
  583. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +1 -0
  584. package/app/.next/static/chunks/app/(dashboard)/dashboard/auto-combo/{page-799e2f96e9af3fd9.js → page-fbf2315ef6ecc87a.js} +1 -1
  585. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1d9c62ff735ac65a.js +15 -0
  586. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-4e4d823fdc8705f5.js +1 -0
  587. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-8f6233f59f5277e9.js → page-7a233357dfbd2e05.js} +1 -1
  588. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-81a6632af8c82919.js +1 -0
  589. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/{page-1e1eb2f79d606ab2.js → page-66ee4e631429e0d8.js} +1 -1
  590. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-5ace323bdf990976.js +1 -0
  591. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-2d456b7ddbf3d41e.js → page-f08daa44ccbeb258.js} +1 -1
  592. package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-8e35334b9f393139.js +1 -0
  593. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-4e1629fc8404b3b9.js +1 -0
  594. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/{page-5378e9473a20cd6a.js → page-d424641c7e428be9.js} +1 -1
  595. package/app/.next/static/chunks/app/(dashboard)/dashboard/{page-799001b6cea7d5bc.js → page-fc5b6d46662747df.js} +1 -1
  596. package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/{page-0fff47edc56250ea.js → page-6d988d37ce3b0e60.js} +1 -1
  597. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-f248c93328119230.js +1 -0
  598. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{error-a5ae03ba05400b04.js → error-0400f175dd1372fa.js} +1 -1
  599. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-9552383fd2e11282.js +1 -0
  600. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-d57908b59d4b482c.js +1 -0
  601. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-fbf74ae2f3206efe.js → page-adbd858f2a6cd352.js} +1 -1
  602. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{error-ec9643134a96bbcd.js → error-c39d18f10fb7d3f6.js} +1 -1
  603. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{loading-3519a633b514f31a.js → loading-b5faf05c78a2cc54.js} +1 -1
  604. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-28ee6d0fc27b6ffe.js +1 -0
  605. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-aab023f14c6ff966.js → page-0325206d05e6f375.js} +1 -1
  606. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-8d6f629e0e29e796.js → page-f761c3ff75d56636.js} +2 -2
  607. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9e20463252daf023.js +1 -0
  608. package/app/.next/static/chunks/app/(dashboard)/{layout-7ae0c66c22bee8a1.js → layout-6d0afc53f5f2a538.js} +1 -1
  609. package/app/.next/static/chunks/app/400/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
  610. package/app/.next/static/chunks/app/401/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
  611. package/app/.next/static/chunks/app/403/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
  612. package/app/.next/static/chunks/app/408/{page-3b9079ea400ca287.js → page-3b77bf358909019a.js} +1 -1
  613. package/app/.next/static/chunks/app/429/page-3b77bf358909019a.js +1 -0
  614. package/app/.next/static/chunks/app/500/page-3b77bf358909019a.js +1 -0
  615. package/app/.next/static/chunks/app/502/page-3b77bf358909019a.js +1 -0
  616. package/app/.next/static/chunks/app/503/page-3b77bf358909019a.js +1 -0
  617. package/app/.next/static/chunks/app/callback/{page-0f0ebc0820dd18a5.js → page-585a53f7dc6a30f1.js} +1 -1
  618. package/app/.next/static/chunks/app/docs/{page-dc88e0a01d291518.js → page-9624e5fb8cabf7d8.js} +1 -1
  619. package/app/.next/static/chunks/app/{error-32c03f14529d3920.js → error-f7f595c541537e63.js} +1 -1
  620. package/app/.next/static/chunks/app/forbidden/page-b33079c1573b0bfa.js +1 -0
  621. package/app/.next/static/chunks/app/forgot-password/page-90cd6259c75badfc.js +1 -0
  622. package/app/.next/static/chunks/app/global-error-1dfd1c91ad5199fe.js +1 -0
  623. package/app/.next/static/chunks/app/landing/page-90df98c27fe0b5d9.js +1 -0
  624. package/app/.next/static/chunks/app/{layout-070972eb026af319.js → layout-108592eafb959363.js} +1 -1
  625. package/app/.next/static/chunks/app/{loading-da2f6e1471afc070.js → loading-e063375d5b12a2f7.js} +1 -1
  626. package/app/.next/static/chunks/app/login/page-c5dc0a31f8dc566f.js +1 -0
  627. package/app/.next/static/chunks/app/maintenance/page-3b77bf358909019a.js +1 -0
  628. package/app/.next/static/chunks/app/not-found-511518956bcae7bc.js +1 -0
  629. package/app/.next/static/chunks/app/offline/page-9d6ea493783a0219.js +1 -0
  630. package/app/.next/static/chunks/app/privacy/{page-dc88e0a01d291518.js → page-9624e5fb8cabf7d8.js} +1 -1
  631. package/app/.next/static/chunks/app/status/page-4e5e9b5a513aa474.js +1 -0
  632. package/app/.next/static/chunks/app/terms/{page-dc88e0a01d291518.js → page-9624e5fb8cabf7d8.js} +1 -1
  633. package/app/.next/static/chunks/{main-app-ae230f6bf51a5edb.js → main-app-c9da11a8061df107.js} +1 -1
  634. package/app/package.json +1 -1
  635. package/app/server.js +1 -1
  636. package/package.json +1 -1
  637. package/app/.env +0 -122
  638. package/app/.next/server/chunks/1909.js +0 -2
  639. package/app/.next/server/chunks/7167.js +0 -1
  640. package/app/.next/static/chunks/app/(dashboard)/dashboard/a2a/page-ed1f5b1ae0e01c02.js +0 -1
  641. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-6a2bb3ad980b05b9.js +0 -1
  642. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-8ee341b662a845dc.js +0 -1
  643. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c9b98846b8479f3f.js +0 -1
  644. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3c3f3b0b558e9302.js +0 -15
  645. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-3ed193e882fc0438.js +0 -1
  646. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-8b96e2f6d76d6f2d.js +0 -1
  647. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-ddce876357cb3ada.js +0 -1
  648. package/app/.next/static/chunks/app/(dashboard)/dashboard/mcp/page-d9b5c3282ec5d809.js +0 -1
  649. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-5ed5bdc9e926936c.js +0 -1
  650. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-389538ee27f0e405.js +0 -1
  651. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/loading-7deaa9f550841465.js +0 -1
  652. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-3ef302da4b756e50.js +0 -1
  653. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-df62bcc49944269c.js +0 -1
  654. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-8c8f2d59d0cbb516.js +0 -1
  655. package/app/.next/static/chunks/app/429/page-3b9079ea400ca287.js +0 -1
  656. package/app/.next/static/chunks/app/500/page-3b9079ea400ca287.js +0 -1
  657. package/app/.next/static/chunks/app/502/page-3b9079ea400ca287.js +0 -1
  658. package/app/.next/static/chunks/app/503/page-3b9079ea400ca287.js +0 -1
  659. package/app/.next/static/chunks/app/forbidden/page-8d8e1709a1e32585.js +0 -1
  660. package/app/.next/static/chunks/app/forgot-password/page-d5c9b77748aa9deb.js +0 -1
  661. package/app/.next/static/chunks/app/global-error-5840b1caa830f2ec.js +0 -1
  662. package/app/.next/static/chunks/app/landing/page-8f652c1fbc33efd2.js +0 -1
  663. package/app/.next/static/chunks/app/login/page-26d717c652d56032.js +0 -1
  664. package/app/.next/static/chunks/app/maintenance/page-3b9079ea400ca287.js +0 -1
  665. package/app/.next/static/chunks/app/not-found-faf36d2a9a452506.js +0 -1
  666. package/app/.next/static/chunks/app/offline/page-bf68bf461af876a3.js +0 -1
  667. package/app/.next/static/chunks/app/status/page-29a433b40631ce12.js +0 -1
  668. package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  669. /package/app/.next/static/{O9lSHUzWYvY1bYZSFuKAJ → qGXBolOylWgE1zjkbpj9E}/_buildManifest.js +0 -0
  670. /package/app/.next/static/{O9lSHUzWYvY1bYZSFuKAJ → qGXBolOylWgE1zjkbpj9E}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=7327,exports.ids=[4755,7136,7327],exports.modules={21020:(a,b,c)=>{c.d(b,{Pt:()=>t,Tr:()=>v,c1:()=>r,hp:()=>u,kI:()=>w,vk:()=>s});var d=c(75585),e=c(82742),f=c(74163),g=c(27976),h=c(6689);function i(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function j(a){return"string"==typeof a&&a.trim().length>0?a:null}function k(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function l(a){let b=i(a);return{id:j(b.id)||"",isActive:!0===b.isActive,rateLimitedUntil:j(b.rateLimitedUntil),testStatus:j(b.testStatus),apiKey:j(b.apiKey),accessToken:j(b.accessToken),refreshToken:j(b.refreshToken),tokenExpiresAt:j(b.tokenExpiresAt),expiresAt:j(b.expiresAt),projectId:j(b.projectId),providerSpecificData:i(b.providerSpecificData),lastUsedAt:j(b.lastUsedAt),consecutiveUseCount:k(b.consecutiveUseCount,0),priority:k(b.priority,999),lastError:j(b.lastError),lastErrorType:j(b.lastErrorType),lastErrorSource:j(b.lastErrorSource),errorCode:"string"==typeof b.errorCode||"number"==typeof b.errorCode?b.errorCode:null,backoffLevel:k(b.backoffLevel,0)}}function m(a,b){return"boolean"==typeof a?a:b}function n(a){if(!a)return null;let b=new Date(a).getTime();return!Number.isFinite(b)||b<=Date.now()?null:b}function o(a){return a.map(a=>({raw:a,ms:n(a)})).filter(a=>null!==a.ms).sort((a,b)=>a.ms-b.ms)[0]?.raw||null}let p=Promise.resolve(),q=new Map;async function r(a,b=null,c=null){let j,q=p;p=new Promise(a=>{j=a});try{let j;await q;let p=await (0,d.getProviderConnections)({provider:a,isActive:!0}),r=(Array.isArray(p)?p:[]).map(l).filter(a=>a.id.length>0);if(c&&c.length>0&&(r=r.filter(a=>c.includes(a.id))),g.debug("AUTH",`${a} | total connections: ${r.length}, excludeId: ${b||"none"}`),0===r.length){let b=await (0,d.getProviderConnections)({provider:a}),c=(Array.isArray(b)?b:[]).map(l).filter(a=>a.id.length>0);if(g.debug("AUTH",`${a} | all connections (incl inactive): ${c.length}`),c.length>0){let b=(0,f.UY)(c);if(b)return g.warn("AUTH",`${a} | all ${c.length} accounts rate limited (${(0,f.Qo)(b)})`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b)};g.warn("AUTH",`${a} | ${c.length} accounts found but none active`),c.forEach(a=>{g.debug("AUTH",` → ${a.id?.slice(0,8)} | isActive=${a.isActive} | rateLimitedUntil=${a.rateLimitedUntil||"none"} | testStatus=${a.testStatus}`)})}return g.warn("AUTH",`No credentials for ${a}`),null}let s=r.filter(a=>!(b&&a.id===b||(0,f.AO)(a.rateLimitedUntil)));if(g.debug("AUTH",`${a} | available: ${s.length}/${r.length}`),r.forEach(a=>{let c=b&&a.id===b,d=(0,f.AO)(a.rateLimitedUntil);(c||d)&&g.debug("AUTH",` → ${a.id?.slice(0,8)} | ${c?"excluded":""} ${d?`rateLimited until ${a.rateLimitedUntil}`:""}`)}),0===s.length){let b=(0,f.UY)(r);if(b){let c=r.filter(a=>a.rateLimitedUntil&&new Date(a.rateLimitedUntil).getTime()>Date.now()).sort((a,b)=>new Date(a.rateLimitedUntil||0).getTime()-new Date(b.rateLimitedUntil||0).getTime())[0];return g.warn("AUTH",`${a} | all ${r.length} active accounts rate limited (${(0,f.Qo)(b)}) | lastErrorCode=${c?.errorCode}, lastError=${c?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b),lastError:c?.lastError||null,lastErrorCode:c?.errorCode||null}}return g.warn("AUTH",`${a} | all ${r.length} accounts unavailable`),null}let t=s;if("codex"===a){let b=[];if(t=s.filter(a=>{var c;let d,f=(c=a.providerSpecificData,d=i(c.codexLimitPolicy),{use5h:m(d.use5h,!0),useWeekly:m(d.useWeekly,!0)}),g=f.use5h?(0,e.bQ)(a.id,"session",90):null,h=f.useWeekly?(0,e.bQ)(a.id,"weekly",90):null,j=[],k=[];if(f.use5h&&g?.reachedThreshold&&(j.push(`5h usage ${Math.round(g.usedPercentage)}%`),k.push(g.resetAt)),f.useWeekly&&h?.reachedThreshold&&(j.push(`weekly usage ${Math.round(h.usedPercentage)}%`),k.push(h.resetAt)),j.length>0){let c=o(k);return b.push({id:a.id,reasons:j,resetAt:c}),!1}return!0}),b.length>0&&g.info("AUTH",`${a} | quota policy filtered ${b.length} account(s): ${b.map(a=>`${a.id.slice(0,8)}(${a.reasons.join(", ")})`).join("; ")}`),0===t.length&&s.length>0){let a=o(b.map(a=>a.resetAt)),c=n(a),d=c?new Date(c).toISOString():new Date(Date.now()+3e5).toISOString();return{allRateLimited:!0,retryAfter:d,retryAfterHuman:(0,f.Qo)(d),lastError:"All Codex accounts reached configured quota threshold",lastErrorCode:429}}}let u=t.filter(a=>!(0,e.DC)(a.id)),v=t.filter(a=>(0,e.DC)(a.id)),w=u.length>0?[...u,...v]:t;v.length>0&&g.debug("AUTH",`${a} | quota-aware: ${u.length} with quota, ${v.length} exhausted`);let x=await (0,d.V7)(),y=x.fallbackStrategy||"fill-first";if("round-robin"===y){let c=k(x.stickyRoundRobinLimit,3);if(null!==b)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.info("AUTH",`${a} round-robin: FALLBACK MODE - excluded ${b?.slice(0,8)}..., picked LRU ${j.id?.slice(0,8)}...`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1});else{let b=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt).getTime()-new Date(a.lastUsedAt).getTime():-1:1:(a.priority||999)-(b.priority||999))[0],e=b?.consecutiveUseCount||0;b&&b.lastUsedAt&&e<c?(j=b,g.debug("AUTH",`${a} round-robin: staying with ${b.id?.slice(0,8)}... (count=${e}/${c})`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(j.consecutiveUseCount||0)+1})):(j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.debug("AUTH",`${a} round-robin: switching to LRU ${j.id?.slice(0,8)}... (current count=${e} >= limit=${c} or no lastUsedAt)`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}}else if("p2c"===y)if(w.length<=2)j=w[0];else{let a=Math.floor(Math.random()*w.length),b=Math.floor(Math.random()*(w.length-1));b>=a&&b++;let c=w[a],d=w[b],e=(c.consecutiveUseCount||0)+10*!!c.lastError,f=(d.consecutiveUseCount||0)+10*!!d.lastError;j=e<=f?c:d}else if("random"===y){let a=Math.floor(Math.random()*w.length);j=w[a]}else if("least-used"===y)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0];else if("cost-optimized"===y)j=[...w].sort((a,b)=>(a.priority||999)-(b.priority||999))[0];else if("strict-random"===y){let b=w.map(a=>a.id),c=(0,h.AN)(`conn:${a}`,b);j=w.find(a=>a.id===c)||w[0]}else j=w[0];return{apiKey:j.apiKey,accessToken:j.accessToken,refreshToken:j.refreshToken,expiresAt:j.tokenExpiresAt||j.expiresAt||null,projectId:j.projectId,copilotToken:"string"==typeof j.providerSpecificData.copilotToken?j.providerSpecificData.copilotToken:null,providerSpecificData:j.providerSpecificData,connectionId:j.id,testStatus:j.testStatus,lastError:j.lastError,lastErrorType:j.lastErrorType,lastErrorSource:j.lastErrorSource,errorCode:j.errorCode,rateLimitedUntil:j.rateLimitedUntil}}finally{j&&j()}}async function s(a,b,c,e=null,h=null){let i,j=q.get(a)||Promise.resolve();q.set(a,new Promise(a=>{i=a}));try{await j;let i=await (0,d.getProviderConnections)({provider:e}),k=(Array.isArray(i)?i:[]).map(l).filter(a=>a.id.length>0).find(b=>b.id===a),m=k?.backoffLevel||0;if(k?.rateLimitedUntil&&new Date(k.rateLimitedUntil).getTime()>Date.now())return g.info("AUTH",`${a.slice(0,8)} already marked unavailable (until ${k.rateLimitedUntil}), skipping duplicate mark`),{shouldFallback:!0,cooldownMs:new Date(k.rateLimitedUntil).getTime()-Date.now()};let{shouldFallback:n,cooldownMs:o,newBackoffLevel:p,reason:q}=(0,f.hk)(b,c,m,h,e);if(!n)return{shouldFallback:!1,cooldownMs:0};let r=(0,f.vp)(o),s="string"==typeof c?c.slice(0,100):"Provider error";return await (0,d.rj)(a,{rateLimitedUntil:r,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??m}),e&&h&&o>0&&(0,f.R7)(e,a,h,q||"unknown",o),e&&b&&s&&console.error(`❌ ${e} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:o}}finally{i&&i(),q.delete(a)}}async function t(a,b){(b.testStatus&&"active"!==b.testStatus||b.lastError||b.rateLimitedUntil||b.errorCode||b.lastErrorType||b.lastErrorSource)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,lastErrorType:null,lastErrorSource:null,errorCode:null,rateLimitedUntil:null,backoffLevel:0}),g.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}async function u(a){a?.connectionId&&await t(a.connectionId,a)}function v(a){let b=a.headers.get("Authorization");return b?.startsWith("Bearer ")?b.slice(7):null}async function w(a){return!!a&&await (0,d.ek)(a)}},27976:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>m,error:()=>p,info:()=>n,maskKey:()=>k.s9,request:()=>q,response:()=>r,stream:()=>s,warn:()=>o});var d=c(74552),e=c.n(d),f=c(33873),g=c(29021);function h(){let a="false"!==process.env.LOG_TO_FILE,b=process.env.LOG_FILE_PATH||(0,f.join)(process.cwd(),"logs/application/app.log");return{logToFile:a,logFilePath:b,maxFileSize:function(a){if(!a)return 0x3200000;let b=a.match(/^(\d+)\s*(k|m|g|kb|mb|gb)?$/i);if(!b)return 0x3200000;let c=parseInt(b[1],10);switch((b[2]||"").toLowerCase()){case"k":case"kb":return 1024*c;case"m":case"mb":return 1024*c*1024;case"g":case"gb":return 1024*c*1048576;default:return c}}(process.env.LOG_MAX_FILE_SIZE),retentionDays:parseInt(process.env.LOG_RETENTION_DAYS||String(7),10)}}let i={level:process.env.LOG_LEVEL||"info",base:{service:"omniroute"},timestamp:e().stdTimeFunctions.isoTime,formatters:{level:a=>({level:a})}},j=function(){let a=h(),b=i.level||"info";if(a.logToFile)try{let d=h();if(d.logToFile){var c;let a;c=d.logFilePath,a=(0,f.dirname)(c),(0,g.existsSync)(a)||(0,g.mkdirSync)(a,{recursive:!0}),function(a,b){try{if(!(0,g.existsSync)(a)||(0,g.statSync)(a).size<b)return;let c=(0,f.dirname)(a),d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=new Date,i=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}_${String(h.getHours()).padStart(2,"0")}${String(h.getMinutes()).padStart(2,"0")}${String(h.getSeconds()).padStart(2,"0")}`,j=(0,f.join)(c,`${e}.${i}${d}`);(0,g.renameSync)(a,j)}catch{}}(d.logFilePath,d.maxFileSize),function(a,b){try{let c=(0,f.dirname)(a);if(!(0,g.existsSync)(c))return;let d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=(0,g.readdirSync)(c),i=Date.now()-24*b*36e5;for(let b of h)if(b.startsWith(e+".")&&b.endsWith(d)&&b!==(0,f.basename)(a)){let a=(0,f.join)(c,b);try{(0,g.statSync)(a).mtimeMs<i&&(0,g.unlinkSync)(a)}catch{}}}catch{}}(d.logFilePath,d.retentionDays)}let j=(0,f.resolve)(a.logFilePath);return e()({...i,transport:{targets:[{target:"pino/file",options:{destination:1},level:b},{target:"pino/file",options:{destination:j,mkdir:!0},level:b}]}})}catch(c){console.warn("[logger] Failed to set up file transport, attempting sync fallback...",c?.message||c);try{let c=(0,f.resolve)(a.logFilePath),d=e().destination({dest:c,mkdir:!0,sync:!0});return e()(i,e().multistream([{stream:process.stdout,level:b},{stream:d,level:b}]))}catch(a){console.warn("[logger] Sync fallback also failed, falling back to console only",a?.message||a)}}return e()(i)}();var k=c(89794);let l=j.child({module:"sse"});function m(a,b,c){l.debug({tag:a,...t(c)},b)}function n(a,b,c){l.info({tag:a,...t(c)},b)}function o(a,b,c){l.warn({tag:a,...t(c)},b)}function p(a,b,c){l.error({tag:a,...t(c)},b)}function q(a,b,c){l.info({tag:"HTTP",method:a,path:b,...t(c)},`📥 ${a} ${b}`)}function r(a,b,c){l[a<400?"info":"error"]({tag:"HTTP",status:a,duration:b,...t(c)},`📤 ${a} (${b}ms)`)}function s(a,b){l.debug({tag:"STREAM",event:a,...t(b)},`🌊 ${a}`)}function t(a){return a?"string"==typeof a?{detail:a}:"object"==typeof a?a:{detail:String(a)}:{}}},50122:(a,b,c)=>{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()}},70884:(a,b,c)=>{c.d(b,{S:()=>j});var d=c(21020),e=c(75585),f=c(78790),g=c(71861),h=c(60293),i=c(27976);async function j(a,b){let c=(0,d.Tr)(a);if(!c)return{apiKey:null,apiKeyInfo:null,rejection:null};let j=null;try{j=await (0,e.v9)(c)}catch(a){return i.error("API_POLICY","Failed to fetch API key metadata. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:null,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"API key policy unavailable")}}if(!j)return{apiKey:c,apiKeyInfo:null,rejection:null};if(!1===j.isActive)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,"This API key is disabled")};if(j.accessSchedule&&j.accessSchedule.enabled&&!function(a){let b,c;if(!a.enabled)return!0;let d=new Date;try{b=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,hour:"2-digit",minute:"2-digit",hour12:!1}).format(d)}catch{return!0}let[e,f]=b.replace(/^24:/,"00:").split(":").map(Number),g=60*e+f;try{c=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,weekday:"short"}).format(d)}catch{return!0}let h={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6}[c]??d.getDay();if(!a.days.includes(h))return!1;let[i,j]=a.from.split(":").map(Number),[k,l]=a.until.split(":").map(Number),m=60*i+j,n=60*k+l;return n<m?g>=m||g<n:g>=m&&g<n}(j.accessSchedule)){let{from:a,until:b,tz:d}=j.accessSchedule;return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Access denied outside allowed hours (${a}–${b} ${d})`)}}if(b&&j.allowedModels&&j.allowedModels.length>0&&!await (0,e.Oo)(c,b))return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Model "${b}" is not allowed for this API key`)};if(j.id)try{let a=(0,f.Ik)(j.id);if(!a.allowed)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.RATE_LIMITED,a.reason||"Budget limit exceeded")}}catch(a){return i.error("API_POLICY","Budget check failed. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"Budget policy unavailable")}}return{apiKey:c,apiKeyInfo:j,rejection:null}}},78790:(a,b,c)=>{c.d(b,{Ik:()=>j,n5:()=>i,qV:()=>g,uN:()=>k});var d=c(97917);function e(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="number"==typeof c.cost?c.cost:Number(c.cost??0),d="number"==typeof c.timestamp?c.timestamp:Number(c.timestamp??0);Number.isFinite(a)&&Number.isFinite(d)&&b.push({cost:a,timestamp:d})}return b}let f=new Map;function g(a,b){let c={dailyLimitUsd:b.dailyLimitUsd,monthlyLimitUsd:b.monthlyLimitUsd||0,warningThreshold:b.warningThreshold??.8};f.set(a,c);try{(0,d.zd)(a,c)}catch{}}function h(a){if(f.has(a))return f.get(a);try{let b=(0,d.io)(a);if(b)return f.set(a,b),b}catch{}return null}function i(a,b){let c=Date.now();try{(0,d.tv)(a,b,c)}catch{}}function j(a,b=0){let c=h(a);if(!c)return{allowed:!0,dailyUsed:0,dailyLimit:0,warningReached:!1};let f=function(a){let b=new Date;b.setHours(0,0,0,0);let c=b.getTime();try{return e((0,d.qA)(a,c)).reduce((a,b)=>a+b.cost,0)}catch{return 0}}(a),g=f+b,i=g>=c.dailyLimitUsd*c.warningThreshold;return g>c.dailyLimitUsd?{allowed:!1,reason:`Daily budget exceeded: $${g.toFixed(4)} / $${c.dailyLimitUsd.toFixed(2)}`,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:!0}:{allowed:!0,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:i}}function k(a){let b=new Date,c=new Date(b);c.setHours(0,0,0,0);let f=new Date(b.getFullYear(),b.getMonth(),1);try{let b=e((0,d.qA)(a,c.getTime())),g=e((0,d.qA)(a,f.getTime())),i=b.reduce((a,b)=>a+b.cost,0),j=g.reduce((a,b)=>a+b.cost,0);return{dailyTotal:i,monthlyTotal:j,totalEntries:g.length,budget:h(a)}}catch{return{dailyTotal:0,monthlyTotal:0,totalEntries:0,budget:h(a)}}}},92556:(a,b,c)=>{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)=>{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)}}};
1
+ "use strict";exports.id=7327,exports.ids=[4755,7136,7327],exports.modules={21020:(a,b,c)=>{c.d(b,{Pt:()=>t,Tr:()=>v,c1:()=>r,hp:()=>u,kI:()=>w,vk:()=>s});var d=c(75585),e=c(82742),f=c(74163),g=c(27976),h=c(6689);function i(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function j(a){return"string"==typeof a&&a.trim().length>0?a:null}function k(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function l(a){let b=i(a);return{id:j(b.id)||"",isActive:!0===b.isActive,rateLimitedUntil:j(b.rateLimitedUntil),testStatus:j(b.testStatus),apiKey:j(b.apiKey),accessToken:j(b.accessToken),refreshToken:j(b.refreshToken),tokenExpiresAt:j(b.tokenExpiresAt),expiresAt:j(b.expiresAt),projectId:j(b.projectId),providerSpecificData:i(b.providerSpecificData),lastUsedAt:j(b.lastUsedAt),consecutiveUseCount:k(b.consecutiveUseCount,0),priority:k(b.priority,999),lastError:j(b.lastError),lastErrorType:j(b.lastErrorType),lastErrorSource:j(b.lastErrorSource),errorCode:"string"==typeof b.errorCode||"number"==typeof b.errorCode?b.errorCode:null,backoffLevel:k(b.backoffLevel,0)}}function m(a,b){return"boolean"==typeof a?a:b}function n(a){if(!a)return null;let b=new Date(a).getTime();return!Number.isFinite(b)||b<=Date.now()?null:b}function o(a){return a.map(a=>({raw:a,ms:n(a)})).filter(a=>null!==a.ms).sort((a,b)=>a.ms-b.ms)[0]?.raw||null}let p=Promise.resolve(),q=new Map;async function r(a,b=null,c=null){let j,q=p;p=new Promise(a=>{j=a});try{let j;await q;let p=await (0,d.getProviderConnections)({provider:a,isActive:!0}),r=(Array.isArray(p)?p:[]).map(l).filter(a=>a.id.length>0);if(c&&c.length>0&&(r=r.filter(a=>c.includes(a.id))),g.debug("AUTH",`${a} | total connections: ${r.length}, excludeId: ${b||"none"}`),0===r.length){let b=await (0,d.getProviderConnections)({provider:a}),c=(Array.isArray(b)?b:[]).map(l).filter(a=>a.id.length>0);if(g.debug("AUTH",`${a} | all connections (incl inactive): ${c.length}`),c.length>0){let b=(0,f.UY)(c);if(b)return g.warn("AUTH",`${a} | all ${c.length} accounts rate limited (${(0,f.Qo)(b)})`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b)};g.warn("AUTH",`${a} | ${c.length} accounts found but none active`),c.forEach(a=>{g.debug("AUTH",` → ${a.id?.slice(0,8)} | isActive=${a.isActive} | rateLimitedUntil=${a.rateLimitedUntil||"none"} | testStatus=${a.testStatus}`)})}return g.warn("AUTH",`No credentials for ${a}`),null}let s=r.filter(a=>!(b&&a.id===b||(0,f.AO)(a.rateLimitedUntil)));if(g.debug("AUTH",`${a} | available: ${s.length}/${r.length}`),r.forEach(a=>{let c=b&&a.id===b,d=(0,f.AO)(a.rateLimitedUntil);(c||d)&&g.debug("AUTH",` → ${a.id?.slice(0,8)} | ${c?"excluded":""} ${d?`rateLimited until ${a.rateLimitedUntil}`:""}`)}),0===s.length){let b=(0,f.UY)(r);if(b){let c=r.filter(a=>a.rateLimitedUntil&&new Date(a.rateLimitedUntil).getTime()>Date.now()).sort((a,b)=>new Date(a.rateLimitedUntil||0).getTime()-new Date(b.rateLimitedUntil||0).getTime())[0];return g.warn("AUTH",`${a} | all ${r.length} active accounts rate limited (${(0,f.Qo)(b)}) | lastErrorCode=${c?.errorCode}, lastError=${c?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:b,retryAfterHuman:(0,f.Qo)(b),lastError:c?.lastError||null,lastErrorCode:c?.errorCode||null}}return g.warn("AUTH",`${a} | all ${r.length} accounts unavailable`),null}let t=s;if("codex"===a){let b=[];if(t=s.filter(a=>{var c;let d,f=(c=a.providerSpecificData,d=i(c.codexLimitPolicy),{use5h:m(d.use5h,!0),useWeekly:m(d.useWeekly,!0)}),g=f.use5h?(0,e.bQ)(a.id,"session",90):null,h=f.useWeekly?(0,e.bQ)(a.id,"weekly",90):null,j=[],k=[];if(f.use5h&&g?.reachedThreshold&&(j.push(`5h usage ${Math.round(g.usedPercentage)}%`),k.push(g.resetAt)),f.useWeekly&&h?.reachedThreshold&&(j.push(`weekly usage ${Math.round(h.usedPercentage)}%`),k.push(h.resetAt)),j.length>0){let c=o(k);return b.push({id:a.id,reasons:j,resetAt:c}),!1}return!0}),b.length>0&&g.info("AUTH",`${a} | quota policy filtered ${b.length} account(s): ${b.map(a=>`${a.id.slice(0,8)}(${a.reasons.join(", ")})`).join("; ")}`),0===t.length&&s.length>0){let a=o(b.map(a=>a.resetAt)),c=n(a),d=c?new Date(c).toISOString():new Date(Date.now()+3e5).toISOString();return{allRateLimited:!0,retryAfter:d,retryAfterHuman:(0,f.Qo)(d),lastError:"All Codex accounts reached configured quota threshold",lastErrorCode:429}}}let u=t.filter(a=>!(0,e.DC)(a.id)),v=t.filter(a=>(0,e.DC)(a.id)),w=u.length>0?[...u,...v]:t;v.length>0&&g.debug("AUTH",`${a} | quota-aware: ${u.length} with quota, ${v.length} exhausted`);let x=await (0,d.V7)(),y=x.fallbackStrategy||"fill-first";if("round-robin"===y){let c=k(x.stickyRoundRobinLimit,3);if(null!==b)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.info("AUTH",`${a} round-robin: FALLBACK MODE - excluded ${b?.slice(0,8)}..., picked LRU ${j.id?.slice(0,8)}...`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1});else{let b=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt).getTime()-new Date(a.lastUsedAt).getTime():-1:1:(a.priority||999)-(b.priority||999))[0],e=b?.consecutiveUseCount||0;b&&b.lastUsedAt&&e<c?(j=b,g.debug("AUTH",`${a} round-robin: staying with ${b.id?.slice(0,8)}... (count=${e}/${c})`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(j.consecutiveUseCount||0)+1})):(j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0],g.debug("AUTH",`${a} round-robin: switching to LRU ${j.id?.slice(0,8)}... (current count=${e} >= limit=${c} or no lastUsedAt)`),await (0,d.rj)(j.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}}else if("p2c"===y)if(w.length<=2)j=w[0];else{let a=Math.floor(Math.random()*w.length),b=Math.floor(Math.random()*(w.length-1));b>=a&&b++;let c=w[a],d=w[b],e=(c.consecutiveUseCount||0)+10*!!c.lastError,f=(d.consecutiveUseCount||0)+10*!!d.lastError;j=e<=f?c:d}else if("random"===y){let a=Math.floor(Math.random()*w.length);j=w[a]}else if("least-used"===y)j=[...w].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt).getTime()-new Date(b.lastUsedAt).getTime():1:-1:(a.priority||999)-(b.priority||999))[0];else if("cost-optimized"===y)j=[...w].sort((a,b)=>(a.priority||999)-(b.priority||999))[0];else if("strict-random"===y){let b=w.map(a=>a.id),c=(0,h.AN)(`conn:${a}`,b);j=w.find(a=>a.id===c)||w[0]}else j=w[0];return{apiKey:j.apiKey,accessToken:j.accessToken,refreshToken:j.refreshToken,expiresAt:j.tokenExpiresAt||j.expiresAt||null,projectId:j.projectId,copilotToken:"string"==typeof j.providerSpecificData.copilotToken?j.providerSpecificData.copilotToken:null,providerSpecificData:j.providerSpecificData,connectionId:j.id,testStatus:j.testStatus,lastError:j.lastError,lastErrorType:j.lastErrorType,lastErrorSource:j.lastErrorSource,errorCode:j.errorCode,rateLimitedUntil:j.rateLimitedUntil}}finally{j&&j()}}async function s(a,b,c,e=null,h=null){let i,j=q.get(a)||Promise.resolve();q.set(a,new Promise(a=>{i=a}));try{await j;let i=await (0,d.getProviderConnections)({provider:e}),k=(Array.isArray(i)?i:[]).map(l).filter(a=>a.id.length>0).find(b=>b.id===a),m=k?.backoffLevel||0;if(k?.rateLimitedUntil&&new Date(k.rateLimitedUntil).getTime()>Date.now())return g.info("AUTH",`${a.slice(0,8)} already marked unavailable (until ${k.rateLimitedUntil}), skipping duplicate mark`),{shouldFallback:!0,cooldownMs:new Date(k.rateLimitedUntil).getTime()-Date.now()};let{shouldFallback:n,cooldownMs:o,newBackoffLevel:p,reason:q}=(0,f.hk)(b,c,m,h,e);if(!n)return{shouldFallback:!1,cooldownMs:0};let r=(0,f.vp)(o),s="string"==typeof c?c.slice(0,100):"Provider error";return await (0,d.rj)(a,{rateLimitedUntil:r,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??m}),e&&h&&o>0&&(0,f.R7)(e,a,h,q||"unknown",o),e&&b&&s&&console.error(`❌ ${e} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:o}}finally{i&&i(),q.delete(a)}}async function t(a,b){(b.testStatus&&"active"!==b.testStatus||b.lastError||b.rateLimitedUntil||b.errorCode||b.lastErrorType||b.lastErrorSource)&&(await (0,d.rj)(a,{testStatus:"active",lastError:null,lastErrorAt:null,lastErrorType:null,lastErrorSource:null,errorCode:null,rateLimitedUntil:null,backoffLevel:0}),g.info("AUTH",`Account ${a.slice(0,8)} error cleared`))}async function u(a){a?.connectionId&&await t(a.connectionId,a)}function v(a){let b=a.headers.get("Authorization");return b?.startsWith("Bearer ")?b.slice(7):null}async function w(a){return!!a&&await (0,d.ek)(a)}},27976:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>m,error:()=>p,info:()=>n,maskKey:()=>k.s9,request:()=>q,response:()=>r,stream:()=>s,warn:()=>o});var d=c(74552),e=c.n(d),f=c(33873),g=c(29021);function h(){let a="false"!==process.env.LOG_TO_FILE,b=process.env.LOG_FILE_PATH||(0,f.join)(process.cwd(),"logs/application/app.log");return{logToFile:a,logFilePath:b,maxFileSize:function(a){if(!a)return 0x3200000;let b=a.match(/^(\d+)\s*(k|m|g|kb|mb|gb)?$/i);if(!b)return 0x3200000;let c=parseInt(b[1],10);switch((b[2]||"").toLowerCase()){case"k":case"kb":return 1024*c;case"m":case"mb":return 1024*c*1024;case"g":case"gb":return 1024*c*1048576;default:return c}}(process.env.LOG_MAX_FILE_SIZE),retentionDays:parseInt(process.env.LOG_RETENTION_DAYS||String(7),10)}}let i={level:process.env.LOG_LEVEL||"info",base:{service:"omniroute"},timestamp:e().stdTimeFunctions.isoTime,formatters:{level:a=>({level:a})}},j=function(){let a=h(),b=i.level||"info",c=function(){let{formatters:a,...b}=i;if(!a)return b;let{level:c,...d}=a;return Object.keys(d).length>0?{...b,formatters:d}:b}();if(a.logToFile)try{let i=h();if(i.logToFile){var d;let a;d=i.logFilePath,a=(0,f.dirname)(d),(0,g.existsSync)(a)||(0,g.mkdirSync)(a,{recursive:!0}),function(a,b){try{if(!(0,g.existsSync)(a)||(0,g.statSync)(a).size<b)return;let c=(0,f.dirname)(a),d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=new Date,i=`${h.getFullYear()}-${String(h.getMonth()+1).padStart(2,"0")}-${String(h.getDate()).padStart(2,"0")}_${String(h.getHours()).padStart(2,"0")}${String(h.getMinutes()).padStart(2,"0")}${String(h.getSeconds()).padStart(2,"0")}`,j=(0,f.join)(c,`${e}.${i}${d}`);(0,g.renameSync)(a,j)}catch{}}(i.logFilePath,i.maxFileSize),function(a,b){try{let c=(0,f.dirname)(a);if(!(0,g.existsSync)(c))return;let d=(0,f.extname)(a),e=(0,f.basename)(a,d),h=(0,g.readdirSync)(c),i=Date.now()-24*b*36e5;for(let b of h)if(b.startsWith(e+".")&&b.endsWith(d)&&b!==(0,f.basename)(a)){let a=(0,f.join)(c,b);try{(0,g.statSync)(a).mtimeMs<i&&(0,g.unlinkSync)(a)}catch{}}}catch{}}(i.logFilePath,i.retentionDays)}let j=(0,f.resolve)(a.logFilePath);return e()({...c,transport:{targets:[{target:"pino/file",options:{destination:1},level:b},{target:"pino/file",options:{destination:j,mkdir:!0},level:b}]}})}catch(c){console.warn("[logger] Failed to set up file transport, attempting sync fallback...",c?.message||c);try{let c=(0,f.resolve)(a.logFilePath),d=e().destination({dest:c,mkdir:!0,sync:!0});return e()(i,e().multistream([{stream:process.stdout,level:b},{stream:d,level:b}]))}catch(a){console.warn("[logger] Sync fallback also failed, falling back to console only",a?.message||a)}}return e()(i)}();var k=c(89794);let l=j.child({module:"sse"});function m(a,b,c){l.debug({tag:a,...t(c)},b)}function n(a,b,c){l.info({tag:a,...t(c)},b)}function o(a,b,c){l.warn({tag:a,...t(c)},b)}function p(a,b,c){l.error({tag:a,...t(c)},b)}function q(a,b,c){l.info({tag:"HTTP",method:a,path:b,...t(c)},`📥 ${a} ${b}`)}function r(a,b,c){l[a<400?"info":"error"]({tag:"HTTP",status:a,duration:b,...t(c)},`📤 ${a} (${b}ms)`)}function s(a,b){l.debug({tag:"STREAM",event:a,...t(b)},`🌊 ${a}`)}function t(a){return a?"string"==typeof a?{detail:a}:"object"==typeof a?a:{detail:String(a)}:{}}},50122:(a,b,c)=>{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()}},70884:(a,b,c)=>{c.d(b,{S:()=>j});var d=c(21020),e=c(75585),f=c(78790),g=c(71861),h=c(60293),i=c(27976);async function j(a,b){let c=(0,d.Tr)(a);if(!c)return{apiKey:null,apiKeyInfo:null,rejection:null};let j=null;try{j=await (0,e.v9)(c)}catch(a){return i.error("API_POLICY","Failed to fetch API key metadata. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:null,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"API key policy unavailable")}}if(!j)return{apiKey:c,apiKeyInfo:null,rejection:null};if(!1===j.isActive)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,"This API key is disabled")};if(j.accessSchedule&&j.accessSchedule.enabled&&!function(a){let b,c;if(!a.enabled)return!0;let d=new Date;try{b=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,hour:"2-digit",minute:"2-digit",hour12:!1}).format(d)}catch{return!0}let[e,f]=b.replace(/^24:/,"00:").split(":").map(Number),g=60*e+f;try{c=new Intl.DateTimeFormat("en-US",{timeZone:a.tz,weekday:"short"}).format(d)}catch{return!0}let h={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6}[c]??d.getDay();if(!a.days.includes(h))return!1;let[i,j]=a.from.split(":").map(Number),[k,l]=a.until.split(":").map(Number),m=60*i+j,n=60*k+l;return n<m?g>=m||g<n:g>=m&&g<n}(j.accessSchedule)){let{from:a,until:b,tz:d}=j.accessSchedule;return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Access denied outside allowed hours (${a}–${b} ${d})`)}}if(b&&j.allowedModels&&j.allowedModels.length>0&&!await (0,e.Oo)(c,b))return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.FORBIDDEN,`Model "${b}" is not allowed for this API key`)};if(j.id)try{let a=(0,f.Ik)(j.id);if(!a.allowed)return{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.RATE_LIMITED,a.reason||"Budget limit exceeded")}}catch(a){return i.error("API_POLICY","Budget check failed. Request blocked.",{error:a}),{apiKey:c,apiKeyInfo:j,rejection:(0,g.yj)(h.gx.SERVICE_UNAVAILABLE,"Budget policy unavailable")}}return{apiKey:c,apiKeyInfo:j,rejection:null}}},78790:(a,b,c)=>{c.d(b,{Ik:()=>j,n5:()=>i,qV:()=>g,uN:()=>k});var d=c(97917);function e(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="number"==typeof c.cost?c.cost:Number(c.cost??0),d="number"==typeof c.timestamp?c.timestamp:Number(c.timestamp??0);Number.isFinite(a)&&Number.isFinite(d)&&b.push({cost:a,timestamp:d})}return b}let f=new Map;function g(a,b){let c={dailyLimitUsd:b.dailyLimitUsd,monthlyLimitUsd:b.monthlyLimitUsd||0,warningThreshold:b.warningThreshold??.8};f.set(a,c);try{(0,d.zd)(a,c)}catch{}}function h(a){if(f.has(a))return f.get(a);try{let b=(0,d.io)(a);if(b)return f.set(a,b),b}catch{}return null}function i(a,b){let c=Date.now();try{(0,d.tv)(a,b,c)}catch{}}function j(a,b=0){let c=h(a);if(!c)return{allowed:!0,dailyUsed:0,dailyLimit:0,warningReached:!1};let f=function(a){let b=new Date;b.setHours(0,0,0,0);let c=b.getTime();try{return e((0,d.qA)(a,c)).reduce((a,b)=>a+b.cost,0)}catch{return 0}}(a),g=f+b,i=g>=c.dailyLimitUsd*c.warningThreshold;return g>c.dailyLimitUsd?{allowed:!1,reason:`Daily budget exceeded: $${g.toFixed(4)} / $${c.dailyLimitUsd.toFixed(2)}`,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:!0}:{allowed:!0,dailyUsed:f,dailyLimit:c.dailyLimitUsd,warningReached:i}}function k(a){let b=new Date,c=new Date(b);c.setHours(0,0,0,0);let f=new Date(b.getFullYear(),b.getMonth(),1);try{let b=e((0,d.qA)(a,c.getTime())),g=e((0,d.qA)(a,f.getTime())),i=b.reduce((a,b)=>a+b.cost,0),j=g.reduce((a,b)=>a+b.cost,0);return{dailyTotal:i,monthlyTotal:j,totalEntries:g.length,budget:h(a)}}catch{return{dailyTotal:0,monthlyTotal:0,totalEntries:0,budget:h(a)}}}},92556:(a,b,c)=>{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)=>{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)}}};
@@ -0,0 +1,2 @@
1
+ exports.id=7889,exports.ids=[7889],exports.modules={2143:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.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}`)}}d()}catch(a){d(a)}})},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},7224:(a,b,c)=>{Promise.resolve().then(c.bind(c,67045))},7396:(a,b,c)=>{Promise.resolve().then(c.bind(c,95127))},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/runner/work/OmniRoute/OmniRoute/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/runner/work/OmniRoute/OmniRoute/src/app/not-found.tsx","default")},12608:(a,b,c)=>{Promise.resolve().then(c.bind(c,8979))},21280:(a,b,c)=>{"use strict";c.d(b,{S_:()=>o});var d=c(75585),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})}}},30758:a=>{"use strict";a.exports={rE:"2.5.4"}},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/runner/work/OmniRoute/OmniRoute/src/shared/components/ThemeProvider.tsx","ThemeProvider")},39710:(a,b,c)=>{Promise.resolve().then(c.bind(c,97507))},44438:(a,b,c)=>{Promise.resolve().then(c.bind(c,64385))},47695:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>k,F:()=>j});var e=c(31417),f=c(300),g=c(51729),h=a([g]);g=(h.then?(await h)():h)[0];let i=(0,e.v)()((0,f.Zr)((a,b)=>({theme:g.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=b().theme,d="dark"===c?"light":"dark";a({theme:d})},initTheme:()=>{let{theme:a,colorTheme:c,customColor:d}=b()}}),{name:g.B2.storageKey})),j={coral:"#e54d5e",blue:"#3b82f6",red:"#ef4444",green:"#22c55e",violet:"#8b5cf6",orange:"#f97316",cyan:"#06b6d4"},k=i;d()}catch(a){d(a)}})},47825:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{KC:()=>e.KC,Xg:()=>e.Xg});var e=c(97319),f=c(70689),g=a([f]);f=(g.then?(await g)():g)[0],Object.entries(f.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(e.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),d()}catch(a){d(a)}})},49226:(a,b,c)=>{"use strict";c.d(b,{A:()=>l});var d=c(90357),e=c(75585);let{dashboardPort:f}=(0,c(83238).z)(),g=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||process.env.NEXT_PUBLIC_APP_URL||`http://localhost:${f}`;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},51729:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{B2:()=>j,MA:()=>f.MA,Q2:()=>f.Q2,fg:()=>f.fg,vQ:()=>i,zN:()=>f.zN});var e=c(30758),f=c(70689),g=c(47825),h=a([f,g]);[f,g]=h.then?(await h)():h;let i={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:e.rE},j={storageKey:"theme",defaultTheme:"system"};d()}catch(a){d(a)}})},60548:(a,b,c)=>{Promise.resolve().then(c.bind(c,65909))},61135:()=>{},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/runner/work/OmniRoute/OmniRoute/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/runner/work/OmniRoute/OmniRoute/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..."})}},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"})]})]})})})}},69199:(a,b,c)=>{Promise.resolve().then(c.bind(c,86392)),Promise.resolve().then(c.bind(c,32444))},70689:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>o,IS:()=>k,JH:()=>n,MA:()=>q,Q2:()=>p,fg:()=>m,gb:()=>h,mq:()=>g,wG:()=>j,wb:()=>r,zN:()=>l,zt:()=>i});var e=c(2143),f=a([e]);e=(f.then?(await f)():f)[0];let k={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"}},l={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"}},m={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",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"}},n="openai-compatible-",o="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(n)}function h(a){return"string"==typeof a&&a.startsWith(o)}let p={...k,...l,...m},q={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}};function i(a){for(let b of Object.values(p))if(b.alias===a||b.id===a)return b;return null}function j(a){let b=p[a];return b?.alias||a}Object.values(p).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(p).reduce((a,b)=>(a[b.id]=b.alias,a),{});let r=["antigravity","kiro","github","codex","claude","kimi-coding"];(0,e.LA)(k,"FREE_PROVIDERS"),(0,e.LA)(l,"OAUTH_PROVIDERS"),(0,e.LA)(m,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},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"})]})]})}},75146:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{ThemeProvider:()=>h});var e=c(48249);c(67484);var f=c(47695),g=a([f]);function h({children:a}){let{initTheme:b}=(0,f.A)();return(0,e.jsx)(e.Fragment,{children:a})}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},76160:(a,b,c)=>{Promise.resolve().then(c.bind(c,73857))},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})})]})]})}},77447:(a,b,c)=>{Promise.resolve().then(c.bind(c,62626)),Promise.resolve().then(c.bind(c,75146))},78335:()=>{},79369:(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))},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/runner/work/OmniRoute/OmniRoute/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/runner/work/OmniRoute/OmniRoute/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"},89097:(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))},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/runner/work/OmniRoute/OmniRoute/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/runner/work/OmniRoute/OmniRoute/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.4",name:"GPT 5.4"},{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":"QwenCode/0.12.3 (linux; x64)","X-Dashscope-AuthType":"qwen-oauth","X-Dashscope-CacheControl":"enable","X-Dashscope-UserAgent":"QwenCode/0.12.3 (linux; x64)","X-Stainless-Arch":"x64","X-Stainless-Lang":"js","X-Stainless-Os":"Linux","X-Stainless-Package-Version":"5.11.0","X-Stainless-Retry-Count":"1","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":"v18.19.1",Connection:"keep-alive","Accept-Language":"*","Sec-Fetch-Mode":"cors"},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"},{id:"coder-model",name:"Qwen3.5 (Coder 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:"iflow-rome-30ba3b",name:"iFlow ROME"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 Vision Plus"},{id:"kimi-k2-0905",name:"Kimi K2 0905"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek-V3.2-Exp"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"deepseek-v3",name:"DeepSeek V3"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b",name:"Qwen3 235B"}]},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"},{id:"kimi-for-coding",name:"Kimi For Coding"}]},"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"}]},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",format:"openai",executor:"default",baseUrl:"https://api.ollama.com/v1/chat/completions",modelsUrl:"https://api.ollama.com/v1/models",authType:"apikey",authHeader:"bearer",models:[{id:"gemma3:27b",name:"Gemma 3 27B"},{id:"llama3.3:70b",name:"Llama 3.3 70B"},{id:"qwen3:72b",name:"Qwen3 72B"},{id:"devstral:24b",name:"Devstral 24B"},{id:"deepseek-r2:671b",name:"DeepSeek R2 671B"},{id:"phi4:14b",name:"Phi 4 14B"},{id:"mistral-small3.2:24b",name:"Mistral Small 3.2 24B"}],passthroughModels:!0},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"}]},huggingface:{id:"huggingface",alias:"hf",format:"openai",executor:"default",baseUrl:"https://router.huggingface.co/hf-inference/models/meta-llama/Meta-Llama-3.1-70B-Instruct/v1/chat/completions",authType:"apikey",authHeader:"bearer",models:[{id:"meta-llama/Meta-Llama-3.1-70B-Instruct",name:"Llama 3.1 70B Instruct"},{id:"meta-llama/Meta-Llama-3.1-8B-Instruct",name:"Llama 3.1 8B Instruct"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"mistralai/Mistral-7B-Instruct-v0.3",name:"Mistral 7B v0.3"},{id:"microsoft/Phi-3.5-mini-instruct",name:"Phi-3.5 Mini"}]},vertex:{id:"vertex",alias:"vertex",format:"gemini",executor:"default",baseUrl:"https://us-central1-aiplatform.googleapis.com/v1/projects",urlBuilder:(a,b,c)=>`https://generativelanguage.googleapis.com/v1beta/models/${b}:${c?"streamGenerateContent?alt=sse":"generateContent"}`,authType:"apikey",authHeader:"bearer",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Vertex)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (Vertex)"},{id:"gemini-2.0-flash-thinking-exp",name:"Gemini 2.0 Flash Thinking Exp (Vertex)"},{id:"gemma-2-27b-it",name:"Gemma 2 27B (Vertex)"},{id:"claude-opus-4-5@20251101",name:"Claude Opus 4.5 (Vertex)"},{id:"claude-sonnet-4-5@20251101",name:"Claude Sonnet 4.5 (Vertex)"}]}},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]||[]}},97496:(a,b,c)=>{Promise.resolve().then(c.bind(c,81227))},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"})]})]})}}};