n9router 0.3.88 → 0.3.90

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 (292) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  4. package/.next/standalone/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  5. package/.next/standalone/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  22. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  30. package/.next/standalone/.next/server/app/_not-found.rsc +11 -11
  31. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  32. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  33. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  34. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  35. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  36. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  37. package/.next/standalone/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/callback.html +1 -1
  56. package/.next/standalone/.next/server/app/callback.rsc +13 -13
  57. package/.next/standalone/.next/server/app/callback.segments/_full.segment.rsc +13 -13
  58. package/.next/standalone/.next/server/app/callback.segments/_head.segment.rsc +4 -4
  59. package/.next/standalone/.next/server/app/callback.segments/_index.segment.rsc +6 -6
  60. package/.next/standalone/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  61. package/.next/standalone/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  62. package/.next/standalone/.next/server/app/callback.segments/callback.segment.rsc +3 -3
  63. package/.next/standalone/.next/server/app/dashboard/basic-chat.html +1 -1
  64. package/.next/standalone/.next/server/app/dashboard/basic-chat.rsc +14 -14
  65. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  66. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +3 -3
  67. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  68. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  69. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +14 -14
  70. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +4 -4
  71. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +6 -6
  72. package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  73. package/.next/standalone/.next/server/app/dashboard/cli-tools.html +1 -1
  74. package/.next/standalone/.next/server/app/dashboard/cli-tools.rsc +14 -14
  75. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  76. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +3 -3
  77. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  78. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  79. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +14 -14
  80. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +4 -4
  81. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +6 -6
  82. package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  83. package/.next/standalone/.next/server/app/dashboard/combos.html +1 -1
  84. package/.next/standalone/.next/server/app/dashboard/combos.rsc +15 -15
  85. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
  86. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +3 -3
  87. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  88. package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  89. package/.next/standalone/.next/server/app/dashboard/combos.segments/_full.segment.rsc +15 -15
  90. package/.next/standalone/.next/server/app/dashboard/combos.segments/_head.segment.rsc +4 -4
  91. package/.next/standalone/.next/server/app/dashboard/combos.segments/_index.segment.rsc +6 -6
  92. package/.next/standalone/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  93. package/.next/standalone/.next/server/app/dashboard/endpoint.html +1 -1
  94. package/.next/standalone/.next/server/app/dashboard/endpoint.rsc +14 -14
  95. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  96. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +3 -3
  97. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  98. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  99. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +14 -14
  100. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +4 -4
  101. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +6 -6
  102. package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/dashboard/mitm.html +1 -1
  104. package/.next/standalone/.next/server/app/dashboard/mitm.rsc +14 -14
  105. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  106. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +3 -3
  107. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  108. package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  109. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +14 -14
  110. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +4 -4
  111. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +6 -6
  112. package/.next/standalone/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/dashboard/profile.html +1 -1
  114. package/.next/standalone/.next/server/app/dashboard/profile.rsc +15 -15
  115. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
  116. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +3 -3
  117. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  118. package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  119. package/.next/standalone/.next/server/app/dashboard/profile.segments/_full.segment.rsc +15 -15
  120. package/.next/standalone/.next/server/app/dashboard/profile.segments/_head.segment.rsc +4 -4
  121. package/.next/standalone/.next/server/app/dashboard/profile.segments/_index.segment.rsc +6 -6
  122. package/.next/standalone/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/dashboard/providers/new.html +1 -1
  124. package/.next/standalone/.next/server/app/dashboard/providers/new.rsc +15 -15
  125. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
  126. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +3 -3
  127. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
  128. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  129. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  130. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +15 -15
  131. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +4 -4
  132. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +6 -6
  133. package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  134. package/.next/standalone/.next/server/app/dashboard/providers.html +1 -1
  135. package/.next/standalone/.next/server/app/dashboard/providers.rsc +15 -15
  136. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  137. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
  138. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  139. package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  140. package/.next/standalone/.next/server/app/dashboard/providers.segments/_full.segment.rsc +15 -15
  141. package/.next/standalone/.next/server/app/dashboard/providers.segments/_head.segment.rsc +4 -4
  142. package/.next/standalone/.next/server/app/dashboard/providers.segments/_index.segment.rsc +6 -6
  143. package/.next/standalone/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  144. package/.next/standalone/.next/server/app/dashboard/proxy-pools.html +1 -1
  145. package/.next/standalone/.next/server/app/dashboard/proxy-pools.rsc +15 -15
  146. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
  147. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +3 -3
  148. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  149. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  150. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +15 -15
  151. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +4 -4
  152. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +6 -6
  153. package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  154. package/.next/standalone/.next/server/app/dashboard/quota.html +2 -2
  155. package/.next/standalone/.next/server/app/dashboard/quota.rsc +15 -15
  156. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  157. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +3 -3
  158. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  159. package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  160. package/.next/standalone/.next/server/app/dashboard/quota.segments/_full.segment.rsc +15 -15
  161. package/.next/standalone/.next/server/app/dashboard/quota.segments/_head.segment.rsc +4 -4
  162. package/.next/standalone/.next/server/app/dashboard/quota.segments/_index.segment.rsc +6 -6
  163. package/.next/standalone/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  164. package/.next/standalone/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/dashboard/settings/pricing.html +1 -1
  166. package/.next/standalone/.next/server/app/dashboard/settings/pricing.rsc +13 -13
  167. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +13 -13
  168. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +4 -4
  169. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +6 -6
  170. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  171. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  172. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +3 -3
  173. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +3 -3
  174. package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +3 -3
  175. package/.next/standalone/.next/server/app/dashboard/translator.html +1 -1
  176. package/.next/standalone/.next/server/app/dashboard/translator.rsc +15 -15
  177. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
  178. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +3 -3
  179. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  180. package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  181. package/.next/standalone/.next/server/app/dashboard/translator.segments/_full.segment.rsc +15 -15
  182. package/.next/standalone/.next/server/app/dashboard/translator.segments/_head.segment.rsc +4 -4
  183. package/.next/standalone/.next/server/app/dashboard/translator.segments/_index.segment.rsc +6 -6
  184. package/.next/standalone/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  185. package/.next/standalone/.next/server/app/dashboard/usage.html +1 -1
  186. package/.next/standalone/.next/server/app/dashboard/usage.rsc +15 -15
  187. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
  188. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +3 -3
  189. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  190. package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  191. package/.next/standalone/.next/server/app/dashboard/usage.segments/_full.segment.rsc +15 -15
  192. package/.next/standalone/.next/server/app/dashboard/usage.segments/_head.segment.rsc +4 -4
  193. package/.next/standalone/.next/server/app/dashboard/usage.segments/_index.segment.rsc +6 -6
  194. package/.next/standalone/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  195. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  196. package/.next/standalone/.next/server/app/dashboard.rsc +14 -14
  197. package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  198. package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  199. package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
  200. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +14 -14
  201. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +4 -4
  202. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +6 -6
  203. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  204. package/.next/standalone/.next/server/app/index.html +1 -1
  205. package/.next/standalone/.next/server/app/index.rsc +11 -11
  206. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  207. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +11 -11
  208. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  209. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +6 -6
  210. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  211. package/.next/standalone/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/landing.html +1 -1
  213. package/.next/standalone/.next/server/app/landing.rsc +13 -13
  214. package/.next/standalone/.next/server/app/landing.segments/_full.segment.rsc +13 -13
  215. package/.next/standalone/.next/server/app/landing.segments/_head.segment.rsc +4 -4
  216. package/.next/standalone/.next/server/app/landing.segments/_index.segment.rsc +6 -6
  217. package/.next/standalone/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  218. package/.next/standalone/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  219. package/.next/standalone/.next/server/app/landing.segments/landing.segment.rsc +3 -3
  220. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/login.html +1 -1
  222. package/.next/standalone/.next/server/app/login.rsc +13 -13
  223. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +13 -13
  224. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +4 -4
  225. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +6 -6
  226. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  227. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  228. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +3 -3
  229. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.yvcis._.js +1 -1
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0148t9m._.js +1 -1
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b802lh._.js +1 -1
  233. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kpc-o6._.js +1 -1
  234. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lc~.sk._.js +1 -1
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lp_pm5._.js +1 -1
  236. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pwrfp1._.js +1 -1
  237. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uw3x8s._.js +1 -1
  238. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y.reft._.js +1 -1
  239. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y5ae.7._.js +1 -1
  240. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0z-kiuj._.js +1 -1
  241. package/.next/standalone/.next/server/chunks/_0amvca6._.js +1 -1
  242. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0415gym._.js +1 -1
  243. package/.next/standalone/.next/server/chunks/ssr/_00c58qj._.js +1 -1
  244. package/.next/standalone/.next/server/chunks/ssr/_049j5t_._.js +3 -0
  245. package/.next/standalone/.next/server/chunks/ssr/_0ss815q._.js +3 -0
  246. package/.next/standalone/.next/server/chunks/ssr/_0tlv512._.js +3 -0
  247. package/.next/standalone/.next/server/chunks/ssr/src_0_xhepz._.js +1 -1
  248. package/.next/standalone/.next/server/chunks/ssr/src_app_(dashboard)_dashboard_providers_[id]_page_0-3xvzc.js +1 -1
  249. package/.next/standalone/.next/server/chunks/ssr/src_shared_constants_cliTools_09iru_o.js +1 -1
  250. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  251. package/.next/standalone/.next/server/pages/404.html +1 -1
  252. package/.next/standalone/.next/server/pages/500.html +1 -1
  253. package/.next/standalone/.next/static/chunks/026p3rpdycbyo.css +1 -0
  254. package/.next/standalone/.next/static/chunks/{08kho~qudyqxf.js → 06l6ck_q1o~m9.js} +3 -3
  255. package/.next/standalone/.next/static/chunks/0b285gqd-hcvu.js +1 -0
  256. package/.next/standalone/.next/static/chunks/{00~ibgir0ac-0.js → 0pwbnjvdm7lt_.js} +2 -2
  257. package/.next/{static/chunks/0epj7i9.s2-m2.js → standalone/.next/static/chunks/0~p0472sbmye6.js} +1 -1
  258. package/.next/standalone/.next/static/chunks/{0a84s1t0dt8-h.js → 148_2lu2ra629.js} +1 -1
  259. package/.next/standalone/.next/static/chunks/{0f56a6ti-axtc.js → 17~_6lx17xr8z.js} +3 -3
  260. package/.next/standalone/mitm/server.js +8 -8
  261. package/.next/standalone/mitm/tokenPool.js +79 -17
  262. package/.next/standalone/package-lock.json +2 -2
  263. package/.next/standalone/package.json +1 -1
  264. package/.next/standalone/src/app/(dashboard)/dashboard/cli-tools/components/TokenSwapPoolCard.js +331 -50
  265. package/.next/standalone/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js +11 -4
  266. package/.next/standalone/src/app/(dashboard)/dashboard/providers/[id]/page.js +2 -1
  267. package/.next/standalone/src/app/api/providers/[id]/route.js +4 -0
  268. package/.next/standalone/src/lib/localDb.js +3 -1
  269. package/.next/standalone/src/mitm/server.js +8 -8
  270. package/.next/standalone/src/mitm/tokenPool.js +79 -17
  271. package/.next/standalone/tests/unit/tokenPool.test.js +55 -14
  272. package/.next/static/chunks/026p3rpdycbyo.css +1 -0
  273. package/.next/static/chunks/{08kho~qudyqxf.js → 06l6ck_q1o~m9.js} +3 -3
  274. package/.next/static/chunks/0b285gqd-hcvu.js +1 -0
  275. package/.next/static/chunks/{00~ibgir0ac-0.js → 0pwbnjvdm7lt_.js} +2 -2
  276. package/.next/{standalone/.next/static/chunks/0epj7i9.s2-m2.js → static/chunks/0~p0472sbmye6.js} +1 -1
  277. package/.next/static/chunks/{0a84s1t0dt8-h.js → 148_2lu2ra629.js} +1 -1
  278. package/.next/static/chunks/{0f56a6ti-axtc.js → 17~_6lx17xr8z.js} +3 -3
  279. package/package.json +1 -1
  280. package/.next/standalone/.next/server/chunks/ssr/_0wr~fjn._.js +0 -3
  281. package/.next/standalone/.next/server/chunks/ssr/_0z7gqwv._.js +0 -3
  282. package/.next/standalone/.next/server/chunks/ssr/_12us7s0._.js +0 -3
  283. package/.next/standalone/.next/static/chunks/09g0cm09ynuao.js +0 -1
  284. package/.next/standalone/.next/static/chunks/0lkbvidbb15ld.css +0 -1
  285. package/.next/static/chunks/09g0cm09ynuao.js +0 -1
  286. package/.next/static/chunks/0lkbvidbb15ld.css +0 -1
  287. /package/.next/standalone/.next/static/{Fr7ipSei0ydO_aZHViw9O → eALv8q_pKhx9-bE-9KiDB}/_buildManifest.js +0 -0
  288. /package/.next/standalone/.next/static/{Fr7ipSei0ydO_aZHViw9O → eALv8q_pKhx9-bE-9KiDB}/_clientMiddlewareManifest.js +0 -0
  289. /package/.next/standalone/.next/static/{Fr7ipSei0ydO_aZHViw9O → eALv8q_pKhx9-bE-9KiDB}/_ssgManifest.js +0 -0
  290. /package/.next/static/{Fr7ipSei0ydO_aZHViw9O → eALv8q_pKhx9-bE-9KiDB}/_buildManifest.js +0 -0
  291. /package/.next/static/{Fr7ipSei0ydO_aZHViw9O → eALv8q_pKhx9-bE-9KiDB}/_clientMiddlewareManifest.js +0 -0
  292. /package/.next/static/{Fr7ipSei0ydO_aZHViw9O → eALv8q_pKhx9-bE-9KiDB}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96521,e=>{"use strict";var t=e.i(10092);e.s(["Card",()=>t.default])},20956,e=>{"use strict";var t=e.i(41691);e.s(["ModelSelectModal",()=>t.default])},35918,e=>{"use strict";var t=e.i(55937);e.s(["calculatePercentage",0,function(e,t){return t&&0!==t?!e||e<0?100:e>=t?0:Math.round((t-e)/t*100):0},"formatResetTime",0,function(e){if(!e)return"-";try{let t="string"==typeof e?new Date(e):e,r=new Date,i=t-r;if(i<=0)return"-";let a=Math.ceil(i/6e4);if(a<60)return`${a}m`;let n=Math.floor(a/60),o=a%60;if(n<24)return`${n}h ${o}m`;let l=Math.floor(n/24);return`${l}d ${n%24}h ${o}m`}catch(e){return"-"}},"parseQuotaData",0,function(e,r){if(!r||"object"!=typeof r)return[];let i=[];try{switch(e.toLowerCase()){case"github":default:r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:t.remainingPercentage})});break;case"codex":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"kiro":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"claude":r.message?i.push({name:"error",used:0,total:0,resetAt:null,message:r.message}):r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let a=(0,t.getModelsByProviderId)(e);if(a.length>0){let e=new Map(a.map((e,t)=>[e.id,t]));i.sort((t,r)=>{let i=t.modelKey||t.name,a=r.modelKey||r.name;return(e.get(i)??999)-(e.get(a)??999)})}return i}])},51916,e=>{"use strict";var t=e.i(64920);e.s(["Badge",()=>t.default])},88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:n,objectFit:o}){let l=r?40*r:e,s=a?40*a:t,u=l&&s?`viewBox='0 0 ${l} ${s}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${u}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${u?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return o}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=["default","imgix","cloudinary","akamai","custom"],o={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(33525);let i=e.r(43369),a=e.r(88143),n=e.r(87690),o=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:f,className:p,quality:g,width:m,height:h,fill:b=!1,style:v,overrideSrc:y,onLoad:w,onLoadingComplete:_,placeholder:j="empty",blurDataURL:P,fetchPriority:x,decoding:S="async",layout:E,objectFit:O,objectPosition:C,lazyBoundary:R,lazyRoot:M,...I},A){var $;let k,z,D,{imgConf:q,showAltText:T,blurComplete:N,defaultLoader:L}=A,U=q||n.imageConfigDefault;if("allSizes"in U)k=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),r=U.qualities?.sort((e,t)=>e-t);k={...U,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=I.loader||L;delete I.loader,delete I.srcSet;let F="__next_img_default"in B;if(F){if("custom"===k.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:r,...i}=t;return e(i)}}if(E){"fill"===E&&(b=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[E];e&&(v={...v,...e});let r={responsive:"100vw",fill:"100vw"}[E];r&&!t&&(t=r)}let W="",G=s(m),V=s(h);if(($=e)&&"object"==typeof $&&(l($)||void 0!==$.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(z=t.blurWidth,D=t.blurHeight,P=P||t.blurDataURL,W=t.src,!b)if(G||V){if(G&&!V){let e=G/t.width;V=Math.round(t.height*e)}else if(!G&&V){let e=V/t.height;G=Math.round(t.width*e)}}else G=t.width,V=t.height}let X=!d&&!c&&("lazy"===f||void 0===f);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,X=!1),k.unoptimized&&(r=!0),F&&!k.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let H=s(g),K=Object.assign(b?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:O,objectPosition:C}:{},T?{}:{color:"transparent"},v),Q=N||"empty"===j?null:"blur"===j?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:G,heightInt:V,blurWidth:z,blurHeight:D,blurDataURL:P||"",objectFit:K.objectFit})}")`:`url("${j}")`,J=o.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Y=Q?{backgroundSize:J,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Q}:{},Z=function({config:e,src:t,unoptimized:r,width:a,quality:n,sizes:o,loader:l}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,i.getDeploymentId)();if(e){let r=t.indexOf("?");if(-1!==r){let i=new URLSearchParams(t.slice(r+1));i.get("dpl")||(i.append("dpl",e),t=t.slice(0,r)+"?"+i.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=r.exec(i);)a.push(parseInt(e[2]));if(a.length){let r=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,o),d=s.length-1;return{sizes:o||"w"!==u?o:"100vw",srcSet:s.map((r,i)=>`${l({config:e,src:t,quality:n,width:r})} ${"w"===u?r:i+1}${u}`).join(", "),src:l({config:e,src:t,quality:n,width:s[d]})}}({config:k,src:e,unoptimized:r,width:G,quality:H,sizes:t,loader:B}),ee=X?"lazy":f;return{props:{...I,loading:ee,fetchPriority:x,width:G,height:V,decoding:S,className:p,style:{...K,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:y||Z.src},meta:{unoptimized:r,preload:c||d,placeholder:j,fill:b}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let i=e.r(71645),a="u"<typeof window,n=a?()=>{}:i.useLayoutEffect,o=a?()=>{}:i.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return a&&(t?.mountedInstances?.add(e.children),l()),n(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),n(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return m},defaultHead:function(){return c}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),o=e.r(90809),l=e.r(43476),s=o._(e.r(71645)),u=n._(e.r(98879)),d=e.r(42732);function c(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,i,a;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,i=new Set,a={},e=>{let n=!0,o=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){o=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?n=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?n=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?n=!1:i.add(r);else{let t=e.props[r],i=a[r]||new Set;("name"!==r||!o)&&i.has(t)?n=!1:(i.add(t),a[r]=i)}}}return n})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(d.HeadManagerContext);return(0,l.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return n}});let i=e.r(55682)._(e.r(71645)),a=e.r(87690),n=i.default.createContext(a.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,t.qualities[0]):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let i=e.r(70965),a=e.r(43369);function n({config:e,src:t,width:r,quality:o}){let l=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),i=r.get("dpl");if(i){l=i,r.delete("dpl");let a=r.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let s=(0,i.findClosestQuality)(o,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${s}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}n.__next_img_default=!0;let o=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let i=e.r(55682),a=e.r(90809),n=e.r(43476),o=a._(e.r(71645)),l=i._(e.r(74080)),s=i._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,i,a,n,o){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,a=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:a,decoding:l,className:s,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:v,onLoadingCompleteRef:y,setBlurComplete:w,setShowAltText:_,sizesInput:j,onLoad:P,onError:x,...S},E)=>{let O=(0,o.useCallback)(e=>{e&&(x&&(e.src=e.src),e.complete&&h(e,c,v,y,w,p,j))},[e,c,v,y,w,x,p,j]),C=(0,g.useMergedRef)(E,O);return(0,n.jsx)("img",{...S,...b(d),loading:f,width:a,height:i,decoding:l,"data-nimg":m?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,v,y,w,p,j)},onError:e=>{_(!0),"empty"!==c&&w(!0),x&&x(e)}})});function y({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,n.jsx)(s.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),i=(0,o.useContext)(c.ImageConfigContext),a=(0,o.useMemo)(()=>{let e=m||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:a,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:l,onLoadingComplete:s}=e,g=(0,o.useRef)(l);(0,o.useEffect)(()=>{g.current=l},[l]);let h=(0,o.useRef)(s);(0,o.useEffect)(()=>{h.current=s},[s]);let[b,w]=(0,o.useState)(!1),[_,j]=(0,o.useState)(!1),{props:P,meta:x}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:b,showAltText:_});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(v,{...P,unoptimized:x.unoptimized,placeholder:x.placeholder,fill:x.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),x.preload?(0,n.jsx)(y,{isAppRouter:!r,imgAttributes:P}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),o=e.r(8927),l=e.r(5500),s=n._(e.r(1948));function u(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=l.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},18312,e=>{"use strict";e.i(47167);var t=e.i(43476),r=e.i(71645);e.i(38730);var i=e.i(50832),a=e.i(66104);e.i(4565);var n=e.i(55937);e.i(83806);var o=e.i(10215),o=o,l=e.i(63750),l=l,s=e.i(52816),s=s,u=e.i(81446),u=u,d=e.i(38512),d=d,c=e.i(22634),c=c;let f="https://9router.com",p={claude:"/api/cli-tools/claude-settings",codex:"/api/cli-tools/codex-settings",opencode:"/api/cli-tools/opencode-settings",droid:"/api/cli-tools/droid-settings",openclaw:"/api/cli-tools/openclaw-settings"};e.s(["default",0,function({machineId:e}){let g,m,h,[b,v]=(0,r.useState)([]),[y,w]=(0,r.useState)(!0),[_,j]=(0,r.useState)(null),[P,x]=(0,r.useState)({}),[S,E]=(0,r.useState)(!1),[O,C]=(0,r.useState)(!1),[R,M]=(0,r.useState)(""),[I,A]=(0,r.useState)([]),[$,k]=(0,r.useState)({});(0,r.useEffect)(()=>{T(),D(),q(),z()},[]);let z=async()=>{try{let e=await Promise.all(Object.entries(p).map(async([e,t])=>{try{let r=await fetch(t),i=await r.json();return[e,i]}catch{return[e,null]}}));k(Object.fromEntries(e))}catch(e){console.log("Error fetching tool statuses:",e)}},D=async()=>{try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status")]);if(e.ok){let t=await e.json();E(t.cloudEnabled||!1)}if(t.ok){let e=await t.json();C(e.enabled||!1),M(e.publicUrl||"")}}catch(e){console.log("Error loading settings:",e)}},q=async()=>{try{let e=await fetch("/api/keys");if(e.ok){let t=await e.json();A(t.keys||[])}}catch(e){console.log("Error fetching API keys:",e)}},T=async()=>{try{let e=await fetch("/api/providers"),t=await e.json();e.ok&&v(t.connections||[])}catch(e){console.log("Error fetching connections:",e)}finally{w(!1)}},N=()=>b.filter(e=>!1!==e.isActive),L=(0,r.useCallback)((e,t,r)=>{x(i=>i[e]?.[t]===r?i:{...i,[e]:{...i[e],[t]:r}})},[]);if(y)return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(i.CardSkeleton,{}),(0,t.jsx)(i.CardSkeleton,{}),(0,t.jsx)(i.CardSkeleton,{})]});let U=(g=N(),m=[],h=new Set,g.forEach(e=>{let t=n.PROVIDER_ID_TO_ALIAS[e.provider]||e.provider;(0,n.getModelsByProviderId)(e.provider).forEach(r=>{let i=`${t}/${r.id}`;h.has(i)||(h.add(i),m.push({value:i,label:`${t}/${r.id}`,provider:e.provider,alias:t,connectionName:e.name,modelId:r.id}))})}),m).length>0,B=Object.entries(a.CLI_TOOLS);return(0,t.jsx)("div",{className:"flex flex-col gap-6",children:(0,t.jsx)("div",{className:"flex flex-col gap-4",children:B.map(([e,r])=>((e,r)=>{let i={tool:r,isExpanded:_===e,onToggle:()=>j(_===e?null:e),baseUrl:O&&R?R:S&&f?f:window.location.origin,apiKeys:I};switch(e){case"claude":return(0,t.jsx)(o.default,{...i,activeProviders:N(),modelMappings:P[e]||{},onModelMappingChange:(t,r)=>L(e,t,r),hasActiveProviders:U,cloudEnabled:S,initialStatus:$.claude},e);case"codex":return(0,t.jsx)(l.default,{...i,activeProviders:N(),cloudEnabled:S,initialStatus:$.codex},e);case"opencode":return(0,t.jsx)(c.default,{...i,activeProviders:N(),cloudEnabled:S,initialStatus:$.opencode},e);case"droid":return(0,t.jsx)(s.default,{...i,activeProviders:N(),hasActiveProviders:U,cloudEnabled:S,initialStatus:$.droid},e);case"openclaw":return(0,t.jsx)(u.default,{...i,activeProviders:N(),hasActiveProviders:U,cloudEnabled:S,initialStatus:$.openclaw},e);default:return(0,t.jsx)(d.default,{toolId:e,...i,activeProviders:N(),cloudEnabled:S,tunnelEnabled:O},e)}})(e,r))})})}],18312)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20956,e=>{"use strict";var t=e.i(41691);e.s(["ModelSelectModal",()=>t.default])},35918,e=>{"use strict";var t=e.i(55937);e.s(["calculatePercentage",0,function(e,t){return t&&0!==t?!e||e<0?100:e>=t?0:Math.round((t-e)/t*100):0},"formatResetTime",0,function(e){if(!e)return"-";try{let t="string"==typeof e?new Date(e):e,r=new Date,i=t-r;if(i<=0)return"-";let a=Math.ceil(i/6e4);if(a<60)return`${a}m`;let n=Math.floor(a/60),o=a%60;if(n<24)return`${n}h ${o}m`;let s=Math.floor(n/24);return`${s}d ${n%24}h ${o}m`}catch(e){return"-"}},"parseQuotaData",0,function(e,r){if(!r||"object"!=typeof r)return[];let i=[];try{switch(e.toLowerCase()){case"github":default:r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:t.remainingPercentage})});break;case"codex":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"kiro":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"claude":r.message?i.push({name:"error",used:0,total:0,resetAt:null,message:r.message}):r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let a=(0,t.getModelsByProviderId)(e);if(a.length>0){let e=new Map(a.map((e,t)=>[e.id,t]));i.sort((t,r)=>{let i=t.modelKey||t.name,a=r.modelKey||r.name;return(e.get(i)??999)-(e.get(a)??999)})}return i}])},96521,e=>{"use strict";var t=e.i(10092);e.s(["Card",()=>t.default])},75634,e=>{"use strict";var t=e.i(88577);e.s(["Toggle",()=>t.default])},51916,e=>{"use strict";var t=e.i(64920);e.s(["Badge",()=>t.default])},88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:n,objectFit:o}){let s=r?40*r:e,l=a?40*a:t,u=s&&l?`viewBox='0 0 ${s} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${u}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${u?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return o}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=["default","imgix","cloudinary","akamai","custom"],o={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(33525);let i=e.r(43369),a=e.r(88143),n=e.r(87690),o=["-moz-initial","fill","none","scale-down",void 0];function s(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:f,className:p,quality:g,width:m,height:h,fill:b=!1,style:v,overrideSrc:y,onLoad:w,onLoadingComplete:_,placeholder:j="empty",blurDataURL:P,fetchPriority:x,decoding:S="async",layout:E,objectFit:O,objectPosition:C,lazyBoundary:R,lazyRoot:M,...I},A){var $;let k,z,D,{imgConf:T,showAltText:q,blurComplete:N,defaultLoader:L}=A,U=T||n.imageConfigDefault;if("allSizes"in U)k=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),r=U.qualities?.sort((e,t)=>e-t);k={...U,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=I.loader||L;delete I.loader,delete I.srcSet;let F="__next_img_default"in B;if(F){if("custom"===k.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
+ Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:r,...i}=t;return e(i)}}if(E){"fill"===E&&(b=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[E];e&&(v={...v,...e});let r={responsive:"100vw",fill:"100vw"}[E];r&&!t&&(t=r)}let W="",G=l(m),V=l(h);if(($=e)&&"object"==typeof $&&(s($)||void 0!==$.src)){let t=s(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(z=t.blurWidth,D=t.blurHeight,P=P||t.blurDataURL,W=t.src,!b)if(G||V){if(G&&!V){let e=G/t.width;V=Math.round(t.height*e)}else if(!G&&V){let e=V/t.height;G=Math.round(t.width*e)}}else G=t.width,V=t.height}let X=!d&&!c&&("lazy"===f||void 0===f);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,X=!1),k.unoptimized&&(r=!0),F&&!k.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let H=l(g),K=Object.assign(b?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:O,objectPosition:C}:{},q?{}:{color:"transparent"},v),Q=N||"empty"===j?null:"blur"===j?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:G,heightInt:V,blurWidth:z,blurHeight:D,blurDataURL:P||"",objectFit:K.objectFit})}")`:`url("${j}")`,J=o.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Y=Q?{backgroundSize:J,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Q}:{},Z=function({config:e,src:t,unoptimized:r,width:a,quality:n,sizes:o,loader:s}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,i.getDeploymentId)();if(e){let r=t.indexOf("?");if(-1!==r){let i=new URLSearchParams(t.slice(r+1));i.get("dpl")||(i.append("dpl",e),t=t.slice(0,r)+"?"+i.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:u}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=r.exec(i);)a.push(parseInt(e[2]));if(a.length){let r=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,o),d=l.length-1;return{sizes:o||"w"!==u?o:"100vw",srcSet:l.map((r,i)=>`${s({config:e,src:t,quality:n,width:r})} ${"w"===u?r:i+1}${u}`).join(", "),src:s({config:e,src:t,quality:n,width:l[d]})}}({config:k,src:e,unoptimized:r,width:G,quality:H,sizes:t,loader:B}),ee=X?"lazy":f;return{props:{...I,loading:ee,fetchPriority:x,width:G,height:V,decoding:S,className:p,style:{...K,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:y||Z.src},meta:{unoptimized:r,preload:c||d,placeholder:j,fill:b}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let i=e.r(71645),a="u"<typeof window,n=a?()=>{}:i.useLayoutEffect,o=a?()=>{}:i.useEffect;function s(e){let{headManager:t,reduceComponentsToState:r}=e;function s(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return a&&(t?.mountedInstances?.add(e.children),s()),n(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),n(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return m},defaultHead:function(){return c}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),o=e.r(90809),s=e.r(43476),l=o._(e.r(71645)),u=n._(e.r(98879)),d=e.r(42732);function c(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,i,a;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,i=new Set,a={},e=>{let n=!0,o=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){o=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?n=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?n=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?n=!1:i.add(r);else{let t=e.props[r],i=a[r]||new Set;("name"!==r||!o)&&i.has(t)?n=!1:(i.add(t),a[r]=i)}}}return n})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,l.useContext)(d.HeadManagerContext);return(0,s.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return n}});let i=e.r(55682)._(e.r(71645)),a=e.r(87690),n=i.default.createContext(a.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,t.qualities[0]):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let i=e.r(70965),a=e.r(43369);function n({config:e,src:t,width:r,quality:o}){let s=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),i=r.get("dpl");if(i){s=i,r.delete("dpl");let a=r.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,i.findClosestQuality)(o,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&s?`&dpl=${s}`:""}`}n.__next_img_default=!0;let o=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let i=e.r(55682),a=e.r(90809),n=e.r(43476),o=a._(e.r(71645)),s=i._(e.r(74080)),l=i._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,i,a,n,o){let s=e?.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,a=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function b(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let v=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:a,decoding:s,className:l,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:v,onLoadingCompleteRef:y,setBlurComplete:w,setShowAltText:_,sizesInput:j,onLoad:P,onError:x,...S},E)=>{let O=(0,o.useCallback)(e=>{e&&(x&&(e.src=e.src),e.complete&&h(e,c,v,y,w,p,j))},[e,c,v,y,w,x,p,j]),C=(0,g.useMergedRef)(E,O);return(0,n.jsx)("img",{...S,...b(d),loading:f,width:a,height:i,decoding:s,"data-nimg":m?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,v,y,w,p,j)},onError:e=>{_(!0),"empty"!==c&&w(!0),x&&x(e)}})});function y({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&s.default.preload?(s.default.preload(t.src,r),null):(0,n.jsx)(l.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),i=(0,o.useContext)(c.ImageConfigContext),a=(0,o.useMemo)(()=>{let e=m||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:a,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:s,onLoadingComplete:l}=e,g=(0,o.useRef)(s);(0,o.useEffect)(()=>{g.current=s},[s]);let h=(0,o.useRef)(l);(0,o.useEffect)(()=>{h.current=l},[l]);let[b,w]=(0,o.useState)(!1),[_,j]=(0,o.useState)(!1),{props:P,meta:x}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:b,showAltText:_});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(v,{...P,unoptimized:x.unoptimized,placeholder:x.placeholder,fill:x.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),x.preload?(0,n.jsx)(y,{isAppRouter:!r,imgAttributes:P}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),o=e.r(8927),s=e.r(5500),l=n._(e.r(1948));function u(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=s.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},18312,e=>{"use strict";e.i(47167);var t=e.i(43476),r=e.i(71645);e.i(38730);var i=e.i(50832),a=e.i(66104);e.i(4565);var n=e.i(55937);e.i(83806);var o=e.i(10215),o=o,s=e.i(63750),s=s,l=e.i(52816),l=l,u=e.i(81446),u=u,d=e.i(38512),d=d,c=e.i(22634),c=c;let f="https://9router.com",p={claude:"/api/cli-tools/claude-settings",codex:"/api/cli-tools/codex-settings",opencode:"/api/cli-tools/opencode-settings",droid:"/api/cli-tools/droid-settings",openclaw:"/api/cli-tools/openclaw-settings"};e.s(["default",0,function({machineId:e}){let g,m,h,[b,v]=(0,r.useState)([]),[y,w]=(0,r.useState)(!0),[_,j]=(0,r.useState)(null),[P,x]=(0,r.useState)({}),[S,E]=(0,r.useState)(!1),[O,C]=(0,r.useState)(!1),[R,M]=(0,r.useState)(""),[I,A]=(0,r.useState)([]),[$,k]=(0,r.useState)({});(0,r.useEffect)(()=>{q(),D(),T(),z()},[]);let z=async()=>{try{let e=await Promise.all(Object.entries(p).map(async([e,t])=>{try{let r=await fetch(t),i=await r.json();return[e,i]}catch{return[e,null]}}));k(Object.fromEntries(e))}catch(e){console.log("Error fetching tool statuses:",e)}},D=async()=>{try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status")]);if(e.ok){let t=await e.json();E(t.cloudEnabled||!1)}if(t.ok){let e=await t.json();C(e.enabled||!1),M(e.publicUrl||"")}}catch(e){console.log("Error loading settings:",e)}},T=async()=>{try{let e=await fetch("/api/keys");if(e.ok){let t=await e.json();A(t.keys||[])}}catch(e){console.log("Error fetching API keys:",e)}},q=async()=>{try{let e=await fetch("/api/providers"),t=await e.json();e.ok&&v(t.connections||[])}catch(e){console.log("Error fetching connections:",e)}finally{w(!1)}},N=()=>b.filter(e=>!1!==e.isActive),L=(0,r.useCallback)((e,t,r)=>{x(i=>i[e]?.[t]===r?i:{...i,[e]:{...i[e],[t]:r}})},[]);if(y)return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(i.CardSkeleton,{}),(0,t.jsx)(i.CardSkeleton,{}),(0,t.jsx)(i.CardSkeleton,{})]});let U=(g=N(),m=[],h=new Set,g.forEach(e=>{let t=n.PROVIDER_ID_TO_ALIAS[e.provider]||e.provider;(0,n.getModelsByProviderId)(e.provider).forEach(r=>{let i=`${t}/${r.id}`;h.has(i)||(h.add(i),m.push({value:i,label:`${t}/${r.id}`,provider:e.provider,alias:t,connectionName:e.name,modelId:r.id}))})}),m).length>0,B=Object.entries(a.CLI_TOOLS);return(0,t.jsx)("div",{className:"flex flex-col gap-6",children:(0,t.jsx)("div",{className:"flex flex-col gap-4",children:B.map(([e,r])=>((e,r)=>{let i={tool:r,isExpanded:_===e,onToggle:()=>j(_===e?null:e),baseUrl:O&&R?R:S&&f?f:window.location.origin,apiKeys:I};switch(e){case"claude":return(0,t.jsx)(o.default,{...i,activeProviders:N(),modelMappings:P[e]||{},onModelMappingChange:(t,r)=>L(e,t,r),hasActiveProviders:U,cloudEnabled:S,initialStatus:$.claude},e);case"codex":return(0,t.jsx)(s.default,{...i,activeProviders:N(),cloudEnabled:S,initialStatus:$.codex},e);case"opencode":return(0,t.jsx)(c.default,{...i,activeProviders:N(),cloudEnabled:S,initialStatus:$.opencode},e);case"droid":return(0,t.jsx)(l.default,{...i,activeProviders:N(),hasActiveProviders:U,cloudEnabled:S,initialStatus:$.droid},e);case"openclaw":return(0,t.jsx)(u.default,{...i,activeProviders:N(),hasActiveProviders:U,cloudEnabled:S,initialStatus:$.openclaw},e);default:return(0,t.jsx)(d.default,{toolId:e,...i,activeProviders:N(),cloudEnabled:S,tunnelEnabled:O},e)}})(e,r))})})}],18312)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,99165,e=>{"use strict";var t=e.i(43476),i=e.i(71645),a=e.i(45009),s=e.i(18566),l=e.i(22016),r=e.i(57688);e.i(38730);var o=e.i(96521),n=e.i(39114),d=e.i(51916),c=e.i(95541),p=e.i(85011),u=e.i(50832),m=e.i(10444),x=e.i(29852),x=x,h=e.i(30115),h=h,f=e.i(27927),f=f,y=e.i(59497),y=y,g=e.i(75634),b=e.i(4539),v=e.i(85035);e.i(4565);var j=e.i(55937),N=e.i(29370);let k=new Map,C={"openrouter-free":e=>e.filter(e=>e.pricing?.prompt==="0"&&e.pricing?.completion==="0"&&e.context_length>=2e5).map(e=>({id:e.id,name:e.name,contextLength:e.context_length})).sort((e,t)=>t.contextLength-e.contextLength)};async function w(e){if(!e?.url||!e?.type)return[];let t=k.get(e.url);if(t&&Date.now()<t.expiresAt)return t.data;try{let t=await fetch(e.url);if(!t.ok)return[];let i=await t.json(),a=i.data??i.models??i,s=C[e.type],l=s?s(Array.isArray(a)?a:[]):[];return k.set(e.url,{data:l,expiresAt:Date.now()+6e5}),l}catch{return[]}}function S({model:e,fullModel:i,alias:a,copied:s,onCopy:l,testStatus:r,isCustom:o,isFree:n,onDeleteAlias:d,onTest:c,isTesting:p}){let u="ok"===r?"#22c55e":"error"===r?"#ef4444":void 0;return(0,t.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===r?"border-green-500/40":"error"===r?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-base",style:u?{color:u}:void 0,children:"ok"===r?"check_circle":"error"===r?"cancel":"smart_toy"}),(0,t.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:i}),c&&(0,t.jsxs)("div",{className:"relative group/btn",children:[(0,t.jsx)("button",{onClick:c,disabled:p,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${p?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",style:p?{animation:"spin 1s linear infinite"}:void 0,children:p?"progress_activity":"science"})}),(0,t.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:p?"Testing...":"Test"})]}),(0,t.jsxs)("div",{className:"relative group/btn",children:[(0,t.jsx)("button",{onClick:()=>l(i,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:s===`model-${e.id}`?"check":"content_copy"})}),(0,t.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:s===`model-${e.id}`?"Copied!":"Copy"})]}),o&&(0,t.jsx)("button",{onClick:d,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function A({modelId:e,fullModel:i,copied:a,onCopy:s,onDeleteAlias:l,onTest:r,testStatus:o,isTesting:n,isFree:d}){let c="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,t.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:c?{color:c}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:e}),(0,t.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,t.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:i}),d&&(0,t.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded bg-green-500/10 text-green-600 dark:text-green-400",children:"Free"}),(0,t.jsxs)("div",{className:"relative group/btn",children:[(0,t.jsx)("button",{onClick:()=>s(i,`model-${e}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e}`?"check":"content_copy"})}),(0,t.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e}`?"Copied!":"Copy"})]}),r&&(0,t.jsxs)("div",{className:"relative group/btn",children:[(0,t.jsx)("button",{onClick:r,disabled:n,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",style:n?{animation:"spin 1s linear infinite"}:void 0,children:n?"progress_activity":"science"})}),(0,t.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:n?"Testing...":"Test"})]})]})]}),(0,t.jsx)("button",{onClick:l,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function P({providerStorageAlias:e,providerDisplayAlias:a,modelAliases:s,copied:l,onCopy:r,onSetAlias:o,onDeleteAlias:d,connections:c,isAnthropic:p}){let[u,m]=(0,i.useState)(""),[x,h]=(0,i.useState)(!1),[f,y]=(0,i.useState)(!1),[g,b]=(0,i.useState)(null),[v,j]=(0,i.useState)({}),N=async t=>{if(!g){b(t);try{let i=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${e}/${t}`})}),a=await i.json();j(e=>({...e,[t]:a.ok?"ok":"error"}))}catch{j(e=>({...e,[t]:"error"}))}finally{b(null)}}},k=Object.entries(s).filter(([,t])=>t.startsWith(`${e}/`)).map(([t,i])=>({modelId:i.replace(`${e}/`,""),fullModel:i,alias:t})),C=t=>{let i,l=`${e}/${t}`;if(Object.values(s).includes(l))return null;let r=(i=t.split("/"))[i.length-1];if(!s[r])return r;let o=`${a}-${r}`;return s[o]?null:o},w=async()=>{if(!u.trim()||x)return;let t=u.trim(),i=C(t);if(!i)return void alert("All suggested aliases already exist. Please choose a different model or remove conflicting aliases.");h(!0);try{await o(t,i,e),m("")}catch(e){console.log("Error adding model:",e)}finally{h(!1)}},S=async()=>{if(f)return;let t=c.find(e=>!1!==e.isActive);if(t){y(!0);try{let i=await fetch(`/api/providers/${t.id}/models`),a=await i.json();if(!i.ok)return void alert(a.error||"Failed to import models");let s=a.models||[];if(0===s.length)return void alert("No models returned from /models.");let l=0;for(let t of s){let i=t.id||t.name||t.model;if(!i)continue;let a=C(i);a&&(await o(i,a,e),l+=1)}0===l&&alert("No new models were added.")}catch(e){console.log("Error importing models:",e)}finally{y(!1)}}},T=c.some(e=>!1!==e.isActive);return(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",p?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,t.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,t.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,t.jsx)("input",{id:"new-compatible-model-input",type:"text",value:u,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&w(),placeholder:p?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,t.jsx)(n.Button,{size:"sm",icon:"add",onClick:w,disabled:!u.trim()||x,children:x?"Adding...":"Add"}),(0,t.jsx)(n.Button,{size:"sm",variant:"secondary",icon:"download",onClick:S,disabled:!T||f,children:f?"Importing...":"Import from /models"})]}),!T&&(0,t.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),k.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-3",children:k.map(({modelId:e,fullModel:i,alias:s})=>(0,t.jsx)(A,{modelId:e,fullModel:`${a}/${e}`,copied:l,onCopy:r,onDeleteAlias:()=>d(s),onTest:c.length>0?()=>N(e):void 0,testStatus:v[e],isTesting:g===e},i))})]})}function T({until:e}){let[a,s]=(0,i.useState)("");return((0,i.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let i=Math.floor(t/1e3);if(i<60)s(`${i}s`);else if(i<3600)s(`${Math.floor(i/60)}m ${i%60}s`);else{let e=Math.floor(i/3600),t=Math.floor(i%3600/60);s(`${e}h ${t}m`)}};t();let i=setInterval(t,1e3);return()=>clearInterval(i)},[e]),a)?(0,t.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",a]}):null}function R({connection:e,proxyPools:a,isOAuth:s,isFirst:l,isLast:r,onMoveUp:o,onMoveDown:n,onToggleActive:c,onUpdateProxy:p,onEdit:u,onDelete:m}){let[x,h]=(0,i.useState)(!1),[f,y]=(0,i.useState)(!1),b=(0,i.useRef)(null),v=new Map((a||[]).map(e=>[e.id,e])),j=e.providerSpecificData?.proxyPoolId||null,N=j?v.get(j):null,k=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,C=!!j||k,w=N?`Pool: ${N.name}`:j?`Pool: ${j} (inactive/missing)`:k?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",S="";if(N?.proxyUrl||e.providerSpecificData?.connectionProxyUrl){let t=N?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;try{let e=new URL(t);S=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{S=t}}let A=N?.noProxy||e.providerSpecificData?.connectionNoProxy||"",P="default";N?.isActive===!0?P="success":(j||k)&&(P="error"),(0,i.useEffect)(()=>{if(!x)return;let e=e=>{b.current&&!b.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[x]);let I=async e=>{y(!0);try{await p("__none__"===e?null:e)}finally{y(!1),h(!1)}},O=s?e.name||e.email||e.displayName||"OAuth Account":e.name,[$,E]=(0,i.useState)(!1),_=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,i.useEffect)(()=>{let t=()=>{E(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let i=_?setInterval(t,1e3):null;return()=>{i&&clearInterval(i)}},[_]);let D="unavailable"!==e.testStatus||$?e.testStatus:"active";return(0,t.jsxs)("div",{className:`group flex items-center justify-between p-3 rounded-lg hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("button",{onClick:o,disabled:l,className:`p-0.5 rounded ${l?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,t.jsx)("button",{onClick:n,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:s?"lock":"key"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:O}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,t.jsx)(d.Badge,{variant:!1===e.isActive?"default":"active"===D||"success"===D?"success":"error"===D||"expired"===D||"unavailable"===D?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":D||"Unknown"}),C&&(0,t.jsx)(d.Badge,{variant:P,size:"sm",children:"Proxy"}),$&&!1!==e.isActive&&(0,t.jsx)(T,{until:_}),e.lastError&&!1!==e.isActive&&(0,t.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,t.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]}),e.globalPriority&&(0,t.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",e.globalPriority]})]}),C&&(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,t.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:w,children:w}),S&&(0,t.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:S}),A&&(0,t.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:A,children:["no_proxy: ",A]})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex gap-1",children:[(a||[]).length>0&&(0,t.jsxs)("div",{className:"relative",ref:b,children:[(0,t.jsxs)("button",{onClick:()=>h(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${C?"text-primary":"text-text-muted hover:text-primary"}`,disabled:f,children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:f?"progress_activity":"lan"}),(0,t.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),x&&(0,t.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,t.jsx)("button",{onClick:()=>I("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!j?"text-primary font-medium":"text-text-main"}`,children:"None"}),(a||[]).map(e=>(0,t.jsx)("button",{onClick:()=>I(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${j===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,t.jsxs)("button",{onClick:u,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,t.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,t.jsxs)("button",{onClick:m,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,t.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,t.jsx)(g.Toggle,{size:"sm",checked:e.isActive??!0,onChange:c,title:e.isActive??!0?"Disable connection":"Enable connection"})]})]})}function I({isOpen:e,provider:a,providerName:s,isCompatible:l,isAnthropic:r,proxyPools:o,onSave:u,onClose:m}){let x="__none__",[h,f]=(0,i.useState)({name:"",apiKey:"",priority:1,proxyPoolId:x}),[y,g]=(0,i.useState)(!1),[v,j]=(0,i.useState)(null),[N,k]=(0,i.useState)(!1),C=async()=>{g(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,apiKey:h.apiKey})}),t=await e.json();j(t.valid?"success":"failed")}catch{j("failed")}finally{g(!1)}},w=async()=>{if(a&&h.apiKey){k(!0);try{let e=!1;try{g(!0),j(null);let t=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,apiKey:h.apiKey})});e=!!(await t.json()).valid,j(e?"success":"failed")}catch{j("failed")}finally{g(!1)}await u({name:h.name,apiKey:h.apiKey,priority:h.priority,proxyPoolId:h.proxyPoolId===x?null:h.proxyPoolId,testStatus:e?"active":"unknown",providerSpecificData:void 0})}finally{k(!1)}}};return a?(0,t.jsx)(p.Modal,{isOpen:e,title:`Add ${s||a} API Key`,onClose:m,children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(c.Input,{label:"Name",value:h.name,onChange:e=>f({...h,name:e.target.value}),placeholder:"Production Key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(c.Input,{label:"API Key",type:"password",value:h.apiKey,onChange:e=>f({...h,apiKey:e.target.value}),className:"flex-1"}),(0,t.jsx)("div",{className:"pt-6",children:(0,t.jsx)(n.Button,{onClick:C,disabled:!h.apiKey||y||N,variant:"secondary",children:y?"Checking...":"Check"})})]}),v&&(0,t.jsx)(d.Badge,{variant:"success"===v?"success":"error",children:"success"===v?"Valid":"Invalid"}),l&&(0,t.jsx)("p",{className:"text-xs text-text-muted",children:r?`Validation checks ${s||"Anthropic Compatible"} by verifying the API key.`:`Validation checks ${s||"OpenAI Compatible"} via /models on your base URL.`}),(0,t.jsx)(c.Input,{label:"Priority",type:"number",value:h.priority,onChange:e=>f({...h,priority:Number.parseInt(e.target.value)||1})}),(0,t.jsx)(b.Select,{label:"Proxy Pool",value:h.proxyPoolId,onChange:e=>f({...h,proxyPoolId:e.target.value}),options:[{value:x,label:"None"},...(o||[]).map(e=>({value:e.id,label:e.name}))],placeholder:"None"}),0===(o||[]).length&&(0,t.jsx)("p",{className:"text-xs text-text-muted",children:"No active proxy pools available. Create one in Proxy Pools page first."}),(0,t.jsx)("p",{className:"text-xs text-text-muted",children:"Legacy manual proxy fields are still accepted by API for backward compatibility."}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(n.Button,{onClick:w,fullWidth:!0,disabled:!h.name||!h.apiKey||N,children:N?"Saving...":"Save"}),(0,t.jsx)(n.Button,{onClick:m,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function O({isOpen:e,connection:a,proxyPools:s,onSave:l,onClose:r}){let[o,u]=(0,i.useState)({name:"",priority:1,apiKey:""}),[m,x]=(0,i.useState)(!1),[h,f]=(0,i.useState)(null),[y,g]=(0,i.useState)(!1),[b,j]=(0,i.useState)(null),[N,k]=(0,i.useState)(!1);(0,i.useEffect)(()=>{a&&(u({name:a.name||"",priority:a.priority||1,apiKey:""}),f(null),j(null))},[a]);let C=async()=>{if(a?.provider){x(!0),f(null);try{let e=await fetch(`/api/providers/${a.id}/test`,{method:"POST"}),t=await e.json();f(t.valid?"success":"failed")}catch{f("failed")}finally{x(!1)}}},w=async()=>{if(a?.provider&&o.apiKey){g(!0),j(null);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a.provider,apiKey:o.apiKey})}),t=await e.json();j(t.valid?"success":"failed")}catch{j("failed")}finally{g(!1)}}},S=async()=>{k(!0);try{let e={name:o.name,priority:o.priority};if(!A&&o.apiKey){e.apiKey=o.apiKey;let t="success"===b;if(!t)try{g(!0),j(null);let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a.provider,apiKey:o.apiKey})});t=!!(await e.json()).valid,j(t?"success":"failed")}catch{j("failed")}finally{g(!1)}t&&(e.testStatus="active",e.lastError=null,e.lastErrorAt=null)}await l(e)}finally{k(!1)}};if(!a)return null;let A="oauth"===a.authType,P=(0,v.isOpenAICompatibleProvider)(a.provider)||(0,v.isAnthropicCompatibleProvider)(a.provider);return(0,t.jsx)(p.Modal,{isOpen:e,title:"Edit Connection",onClose:r,children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(c.Input,{label:"Name",value:o.name,onChange:e=>u({...o,name:e.target.value}),placeholder:A?"Account name":"Production Key"}),A&&a.email&&(0,t.jsxs)("div",{className:"bg-sidebar/50 p-3 rounded-lg",children:[(0,t.jsx)("p",{className:"text-sm text-text-muted mb-1",children:"Email"}),(0,t.jsx)("p",{className:"font-medium",children:a.email})]}),(0,t.jsx)(c.Input,{label:"Priority",type:"number",value:o.priority,onChange:e=>u({...o,priority:Number.parseInt(e.target.value)||1})}),!A&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(c.Input,{label:"API Key",type:"password",value:o.apiKey,onChange:e=>u({...o,apiKey:e.target.value}),placeholder:"Enter new API key",hint:"Leave blank to keep the current API key.",className:"flex-1"}),(0,t.jsx)("div",{className:"pt-6",children:(0,t.jsx)(n.Button,{onClick:w,disabled:!o.apiKey||y||N,variant:"secondary",children:y?"Checking...":"Check"})})]}),b&&(0,t.jsx)(d.Badge,{variant:"success"===b?"success":"error",children:"success"===b?"Valid":"Invalid"})]}),!P&&(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(n.Button,{onClick:C,variant:"secondary",disabled:m,children:m?"Testing...":"Test Connection"}),h&&(0,t.jsx)(d.Badge,{variant:"success"===h?"success":"error",children:"success"===h?"Valid":"Failed"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(n.Button,{onClick:S,fullWidth:!0,disabled:N,children:N?"Saving...":"Save"}),(0,t.jsx)(n.Button,{onClick:r,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function $({isOpen:e,node:a,onSave:s,onClose:l,isAnthropic:r}){let[o,u]=(0,i.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[m,x]=(0,i.useState)(!1),[h,f]=(0,i.useState)(""),[y,g]=(0,i.useState)(""),[v,j]=(0,i.useState)(!1),[N,k]=(0,i.useState)(null);(0,i.useEffect)(()=>{a&&u({name:a.name||"",prefix:a.prefix||"",apiType:a.apiType||"chat",baseUrl:a.baseUrl||(r?"https://api.anthropic.com/v1":"https://api.openai.com/v1")})},[a,r]);let C=async()=>{if(o.name.trim()&&o.prefix.trim()&&o.baseUrl.trim()){x(!0);try{let e={name:o.name,prefix:o.prefix,baseUrl:o.baseUrl};r||(e.apiType=o.apiType),await s(e)}finally{x(!1)}}},w=async()=>{j(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:o.baseUrl,apiKey:h,type:r?"anthropic-compatible":"openai-compatible",modelId:y.trim()||void 0})}),t=await e.json();k(t.valid?"success":"failed")}catch{k("failed")}finally{j(!1)}};return a?(0,t.jsx)(p.Modal,{isOpen:e,title:`Edit ${r?"Anthropic":"OpenAI"} Compatible`,onClose:l,children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(c.Input,{label:"Name",value:o.name,onChange:e=>u({...o,name:e.target.value}),placeholder:`${r?"Anthropic":"OpenAI"} Compatible (Prod)`,hint:"Required. A friendly label for this node."}),(0,t.jsx)(c.Input,{label:"Prefix",value:o.prefix,onChange:e=>u({...o,prefix:e.target.value}),placeholder:r?"ac-prod":"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),!r&&(0,t.jsx)(b.Select,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:o.apiType,onChange:e=>u({...o,apiType:e.target.value})}),(0,t.jsx)(c.Input,{label:"Base URL",value:o.baseUrl,onChange:e=>u({...o,baseUrl:e.target.value}),placeholder:r?"https://api.anthropic.com/v1":"https://api.openai.com/v1",hint:`Use the base URL (ending in /v1) for your ${r?"Anthropic":"OpenAI"}-compatible API.`}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(c.Input,{label:"API Key (for Check)",type:"password",value:h,onChange:e=>f(e.target.value),className:"flex-1"}),(0,t.jsx)("div",{className:"pt-6",children:(0,t.jsx)(n.Button,{onClick:w,disabled:!h||v||!o.baseUrl.trim(),variant:"secondary",children:v?"Checking...":"Check"})})]}),(0,t.jsx)(c.Input,{label:"Model ID (optional)",value:y,onChange:e=>g(e.target.value),placeholder:"e.g. my-model-id",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),N&&(0,t.jsx)(d.Badge,{variant:"success"===N?"success":"error",children:"success"===N?"Valid":"Invalid"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(n.Button,{onClick:C,fullWidth:!0,disabled:!o.name.trim()||!o.prefix.trim()||!o.baseUrl.trim()||m,children:m?"Saving...":"Save"}),(0,t.jsx)(n.Button,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function E({isOpen:e,providerAlias:a,providerDisplayAlias:s,onSave:l,onClose:r}){let[o,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(null),[m,x]=(0,i.useState)(""),[h,f]=(0,i.useState)(!1);(0,i.useEffect)(()=>{e&&(d(""),u(null),x(""))},[e]);let y=async()=>{if(o.trim()){u("testing"),x("");try{let e=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${a}/${o.trim()}`})}),t=await e.json();u(t.ok?"ok":"error"),x(t.error||"")}catch(e){u("error"),x(e.message)}}},g=async()=>{if(o.trim()&&!h){f(!0);try{await l(o.trim())}finally{f(!1)}}};return(0,t.jsx)(p.Modal,{isOpen:e,onClose:r,title:"Add Custom Model",children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Model ID"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"text",value:o,onChange:e=>{d(e.target.value),u(null),x("")},onKeyDown:e=>{"Enter"===e.key&&y()},placeholder:"e.g. claude-opus-4-5",className:"flex-1 px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",autoFocus:!0}),(0,t.jsx)(n.Button,{variant:"secondary",icon:"science",loading:"testing"===c,onClick:y,disabled:!o.trim()||"testing"===c,children:"testing"===c?"Testing...":"Test"})]}),(0,t.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Sent to provider as: ",(0,t.jsx)("code",{className:"font-mono bg-sidebar px-1 rounded",children:o.trim()||"model-id"})]})]}),"ok"===c&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-base",children:"check_circle"}),"Model is reachable"]}),"error"===c&&(0,t.jsxs)("div",{className:"flex items-start gap-2 text-sm text-red-500",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-base shrink-0",children:"cancel"}),(0,t.jsx)("span",{children:m||"Model not reachable"})]}),(0,t.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,t.jsx)(n.Button,{onClick:r,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,t.jsx)(n.Button,{onClick:g,fullWidth:!0,size:"sm",disabled:!o.trim()||h,children:h?"Adding...":"Add Model"})]})]})})}S.propTypes={model:a.default.shape({id:a.default.string.isRequired}).isRequired,fullModel:a.default.string.isRequired,alias:a.default.string,copied:a.default.string,onCopy:a.default.func.isRequired,testStatus:a.default.oneOf(["ok","error"]),isCustom:a.default.bool,isFree:a.default.bool,onDeleteAlias:a.default.func,onTest:a.default.func,isTesting:a.default.bool},a.default.string.isRequired,a.default.object.isRequired,a.default.string,a.default.func.isRequired,a.default.func.isRequired,a.default.func.isRequired,A.propTypes={modelId:a.default.string.isRequired,fullModel:a.default.string.isRequired,copied:a.default.string,onCopy:a.default.func.isRequired,onDeleteAlias:a.default.func.isRequired,onTest:a.default.func,testStatus:a.default.oneOf(["ok","error"]),isTesting:a.default.bool,isFree:a.default.bool},P.propTypes={providerStorageAlias:a.default.string.isRequired,providerDisplayAlias:a.default.string.isRequired,modelAliases:a.default.object.isRequired,copied:a.default.string,onCopy:a.default.func.isRequired,onSetAlias:a.default.func.isRequired,onDeleteAlias:a.default.func.isRequired,connections:a.default.arrayOf(a.default.shape({id:a.default.string,isActive:a.default.bool})).isRequired,isAnthropic:a.default.bool},T.propTypes={until:a.default.string.isRequired},R.propTypes={connection:a.default.shape({id:a.default.string,name:a.default.string,email:a.default.string,displayName:a.default.string,modelLockUntil:a.default.string,testStatus:a.default.string,isActive:a.default.bool,lastError:a.default.string,priority:a.default.number,globalPriority:a.default.number}).isRequired,proxyPools:a.default.arrayOf(a.default.shape({id:a.default.string,name:a.default.string,proxyUrl:a.default.string,noProxy:a.default.string,isActive:a.default.bool})),isOAuth:a.default.bool.isRequired,isFirst:a.default.bool.isRequired,isLast:a.default.bool.isRequired,onMoveUp:a.default.func.isRequired,onMoveDown:a.default.func.isRequired,onToggleActive:a.default.func.isRequired,onUpdateProxy:a.default.func,onEdit:a.default.func.isRequired,onDelete:a.default.func.isRequired},I.propTypes={isOpen:a.default.bool.isRequired,provider:a.default.string,providerName:a.default.string,isCompatible:a.default.bool,isAnthropic:a.default.bool,proxyPools:a.default.arrayOf(a.default.shape({id:a.default.string,name:a.default.string})),onSave:a.default.func.isRequired,onClose:a.default.func.isRequired},O.propTypes={isOpen:a.default.bool.isRequired,connection:a.default.shape({id:a.default.string,name:a.default.string,email:a.default.string,priority:a.default.number,authType:a.default.string,provider:a.default.string,providerSpecificData:a.default.object}),proxyPools:a.default.arrayOf(a.default.shape({id:a.default.string,name:a.default.string})),onSave:a.default.func.isRequired,onClose:a.default.func.isRequired},$.propTypes={isOpen:a.default.bool.isRequired,node:a.default.shape({id:a.default.string,name:a.default.string,prefix:a.default.string,apiType:a.default.string,baseUrl:a.default.string}),onSave:a.default.func.isRequired,onClose:a.default.func.isRequired,isAnthropic:a.default.bool},E.propTypes={isOpen:a.default.bool.isRequired,providerAlias:a.default.string.isRequired,providerDisplayAlias:a.default.string.isRequired,onSave:a.default.func.isRequired,onClose:a.default.func.isRequired},e.s(["default",0,function(){let e=(0,s.useParams)(),a=(0,s.useRouter)(),d=e.id,[c,k]=(0,i.useState)([]),[C,A]=(0,i.useState)(!0),[T,_]=(0,i.useState)(null),[D,U]=(0,i.useState)([]),[q,K]=(0,i.useState)(!1),[B,M]=(0,i.useState)(!1),[L,F]=(0,i.useState)(!1),[J,z]=(0,i.useState)(!1),[V,W]=(0,i.useState)(!1),[H,G]=(0,i.useState)(!1),[Y,Q]=(0,i.useState)(!1),[X,Z]=(0,i.useState)(null),[ee,et]=(0,i.useState)(null),[ei,ea]=(0,i.useState)({}),[es,el]=(0,i.useState)(!1),[er,eo]=(0,i.useState)({}),[en,ed]=(0,i.useState)(""),[ec,ep]=(0,i.useState)(null),[eu,em]=(0,i.useState)(!1),[ex,eh]=(0,i.useState)([]),[ef,ey]=(0,i.useState)("__none__"),[eg,eb]=(0,i.useState)(!1),[ev,ej]=(0,i.useState)(null),[eN,ek]=(0,i.useState)(""),[eC,ew]=(0,i.useState)([]),[eS,eA]=(0,i.useState)([]),{copied:eP,copy:eT}=(0,N.useCopyToClipboard)(),eR=T?{id:T.id,name:T.name||("anthropic-compatible"===T.type?"Anthropic Compatible":"OpenAI Compatible"),color:"anthropic-compatible"===T.type?"#D97757":"#10A37F",textIcon:"anthropic-compatible"===T.type?"AC":"OC",apiType:T.apiType,baseUrl:T.baseUrl,type:T.type}:v.OAUTH_PROVIDERS[d]||v.APIKEY_PROVIDERS[d]||v.FREE_PROVIDERS[d]||v.FREE_TIER_PROVIDERS[d],eI=!!v.OAUTH_PROVIDERS[d]||!!v.FREE_PROVIDERS[d],eO=(0,j.getModelsByProviderId)(d),e$=(0,v.getProviderAlias)(d),eE=(0,v.isOpenAICompatibleProvider)(d),e_=(0,v.isAnthropicCompatibleProvider)(d),eD=eE||e_,eU=eD?d:e$,eq=eD?T?.prefix||d:e$,eK=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&ea(t.aliases||{})}catch(e){console.log("Error fetching aliases:",e)}},[]);(0,i.useEffect)(()=>{"kilocode"===d&&fetch("/api/providers/kilo/free-models").then(e=>e.json()).then(e=>{e.models?.length&&eA(e.models)}).catch(()=>{})},[d]);let eB=(0,i.useCallback)(async()=>{try{let[e,t,i,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/provider-nodes",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),s=await e.json(),l=await t.json(),r=await i.json(),o=a.ok?await a.json():{};if(e.ok){let e=(s.connections||[]).filter(e=>e.provider===d);k(e)}i.ok&&U(r.proxyPools||[]);let n=(o.providerStrategies||{})[d]||{};if(ej(n.fallbackStrategy||null),ek(null!=n.stickyRoundRobinLimit?String(n.stickyRoundRobinLimit):"1"),t.ok){let e=(l.nodes||[]).find(e=>e.id===d)||null;if(!e&&eD)for(let t=0;t<3;t+=1){await new Promise(e=>setTimeout(e,150));let t=await fetch("/api/provider-nodes",{cache:"no-store"});if(t.ok&&(e=((await t.json()).nodes||[]).find(e=>e.id===d)||null))break}_(e)}}catch(e){console.log("Error fetching connections:",e)}finally{A(!1)}},[d,eD]),eM=async e=>{try{let t=await fetch(`/api/provider-nodes/${d}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),i=await t.json();t.ok&&(_(i.node),await eB(),W(!1))}catch(e){console.log("Error updating provider node:",e)}},eL=async(e,t)=>{try{let i=await fetch("/api/settings",{cache:"no-store"}),a=(i.ok?await i.json():{}).providerStrategies||{},s={};e&&(s.fallbackStrategy=e),"round-robin"===e&&""!==t&&(s.stickyRoundRobinLimit=Number(t)||3);let l={...a};0===Object.keys(s).length?delete l[d]:l[d]=s,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:l})})}catch(e){console.log("Error saving provider strategy:",e)}};(0,i.useEffect)(()=>{eB(),eK()},[eB,eK]),(0,i.useEffect)(()=>{let e=(v.OAUTH_PROVIDERS[d]||v.APIKEY_PROVIDERS[d]||v.FREE_PROVIDERS[d]||v.FREE_TIER_PROVIDERS[d])?.modelsFetcher;e&&w(e).then(ew)},[d]);let eF=async(e,t,i=e$)=>{let a=`${i}/${e}`;try{let e=await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a,alias:t})});if(e.ok)await eK();else{let t=await e.json();alert(t.error||"Failed to set alias")}}catch(e){console.log("Error setting alias:",e)}},eJ=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await eK()}catch(e){console.log("Error deleting alias:",e)}},ez=async e=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&k(c.filter(t=>t.id!==e))}catch(e){console.log("Error deleting connection:",e)}},eV=()=>{eB(),K(!1)},eW=async e=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:d,...e})})).ok&&(await eB(),F(!1))}catch(e){console.log("Error saving connection:",e)}},eH=async e=>{try{(await fetch(`/api/providers/${ee.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await eB(),z(!1))}catch(e){console.log("Error updating connection:",e)}},eG=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&k(i=>i.map(i=>i.id===e?{...i,isActive:t}:i))}catch(e){console.log("Error updating connection status:",e)}},eY=async(e,t)=>{let i=[...c];[i[e],i[t]]=[i[t],i[e]],k(i);try{await Promise.all([fetch(`/api/providers/${i[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${i[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch(e){console.log("Error swapping priority:",e),await eB()}},eQ=c.filter(e=>ex.includes(e.id));c.length>0&&(ex.length,c.length),(0,i.useEffect)(()=>{eh(e=>e.filter(e=>c.some(t=>t.id===e)))},[c]);let eX=(()=>{if(0===eQ.length)return"";let e=new Set(eQ.map(e=>e.providerSpecificData?.proxyPoolId||"__none__"));if(1===e.size){let t=[...e][0];if("__none__"===t)return"All selected currently unbound";let i=D.find(e=>e.id===t);return`All selected currently bound to ${i?.name||t}`}return"Selected connections have mixed proxy bindings"})(),eZ=()=>{eg||G(!1)},e0=async()=>{if(0===ex.length)return;let e="__none__"===ef?null:ef;eb(!0);try{let t=[];for(let i of ex)try{let a=await fetch(`/api/providers/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:e})});t.push(a.ok)}catch(e){console.log("Error applying bulk proxy pool for",i,e),t.push(!1)}let i=t.filter(e=>!e).length;i>0&&alert(`Updated with ${i} failed request(s).`),await eB(),eh([]),ey("__none__"),G(!1)}catch(e){console.log("Error applying bulk proxy pool:",e)}finally{eb(!1)}},e1=async()=>{Q(!0),Z(null);try{let e=await fetch("/api/antigravity-tools/import",{method:"POST"}),t=await e.json();e.ok?(Z(t),await eB()):Z({error:t.error||"Import failed"})}catch(e){Z({error:e.message})}Q(!1)},e5=(0,t.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:c.map((e,i)=>(0,t.jsx)("div",{className:"flex items-stretch",children:(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)(R,{connection:e,proxyPools:D,isOAuth:eI,isFirst:0===i,isLast:i===c.length-1,onMoveUp:()=>eY(i,i-1),onMoveDown:()=>eY(i,i+1),onToggleActive:t=>eG(e.id,t),onUpdateProxy:async t=>{try{(await fetch(`/api/providers/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&k(i=>i.map(i=>i.id===e.id?{...i,providerSpecificData:{...i.providerSpecificData,proxyPoolId:t||null}}:i))}catch(e){console.log("Error updating proxy:",e)}},onEdit:()=>{et(e),z(!0)},onDelete:()=>ez(e.id)})})},e.id))}),e2=[{value:"__none__",label:"None"},...D.map(e=>({value:e.id,label:e.name}))],e4=0===ex.length?"Select one or more connections, then click Proxy Action.":eX,e3=ex.length>0&&!eg,e6=(0,t.jsx)(p.Modal,{isOpen:H,onClose:eZ,title:`Proxy Action (${ex.length} selected)`,children:(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsx)(b.Select,{label:"Proxy Pool",value:ef,onChange:e=>ey(e.target.value),options:e2,placeholder:"None"}),(0,t.jsx)("p",{className:"text-xs text-text-muted",children:e4}),(0,t.jsx)("p",{className:"text-xs text-text-muted",children:"Selecting None will unbind selected connections from proxy pool."}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(n.Button,{onClick:e0,fullWidth:!0,disabled:!e3,children:eg?"Applying...":"Apply"}),(0,t.jsx)(n.Button,{onClick:eZ,variant:"ghost",fullWidth:!0,disabled:eg,children:"Cancel"})]})]})}),e8=async e=>{if(!ec){ep(e);try{let t=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${eU}/${e}`})}),i=await t.json();eo(t=>({...t,[e]:i.ok?"ok":"error"})),ed(i.ok?"":i.error||"Model not reachable")}catch{eo(t=>({...t,[e]:"error"})),ed("Network error")}finally{ep(null)}}};return C?(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsx)(u.CardSkeleton,{}),(0,t.jsx)(u.CardSkeleton,{})]}):eR?(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)(l.default,{href:"/dashboard/providers",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),"Back to Providers"]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("div",{className:"rounded-lg flex items-center justify-center",style:{backgroundColor:`${eR.color}15`},children:es?(0,t.jsx)("span",{className:"text-sm font-bold",style:{color:eR.color},children:eR.textIcon||eR.id.slice(0,2).toUpperCase()}):(0,t.jsx)(r.default,{src:eE&&eR.apiType?"responses"===eR.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":e_?"/providers/anthropic-m.png":`/providers/${eR.id}.png`,alt:eR.name,width:48,height:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",sizes:"48px",onError:()=>el(!0)})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:eR.name}),(0,t.jsxs)("p",{className:"text-text-muted",children:[c.length," connection",1===c.length?"":"s"]})]})]})]}),eR.deprecated&&(0,t.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-black/[0.05] dark:border-white/[0.05]",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted mt-0.5 shrink-0",children:"info"}),(0,t.jsx)("p",{className:"text-xs text-text-muted leading-relaxed",children:eR.deprecationNotice})]}),eR.notice&&!eR.deprecated&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-black/[0.05] dark:border-white/[0.05]",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted shrink-0",children:"info"}),(0,t.jsx)("p",{className:"text-xs text-text-muted leading-relaxed",children:eR.notice.text}),eR.notice.apiKeyUrl&&(0,t.jsx)("a",{href:eR.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline shrink-0",children:"Get API Key →"})]}),eD&&T&&(0,t.jsxs)(o.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:e_?"Anthropic Compatible Details":"OpenAI Compatible Details"}),(0,t.jsxs)("p",{className:"text-sm text-text-muted",children:[e_?"Messages API":"responses"===T.apiType?"Responses API":"Chat Completions"," · ",(T.baseUrl||"").replace(/\/$/,""),"/",e_?"messages":"responses"===T.apiType?"responses":"chat/completions"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.Button,{size:"sm",icon:"add",onClick:()=>F(!0),disabled:c.length>0,children:"Add"}),(0,t.jsx)(n.Button,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>W(!0),children:"Edit"}),(0,t.jsx)(n.Button,{size:"sm",variant:"secondary",icon:"delete",onClick:async()=>{if(confirm(`Delete this ${e_?"Anthropic":"OpenAI"} Compatible node?`))try{(await fetch(`/api/provider-nodes/${d}`,{method:"DELETE"})).ok&&a.push("/dashboard/providers")}catch(e){console.log("Error deleting provider node:",e)}},children:"Delete"})]})]}),c.length>0&&(0,t.jsx)("p",{className:"text-sm text-text-muted",children:"Only one connection is allowed per compatible node. Add another node if you need more connections."})]}),(0,t.jsxs)(o.Card,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,t.jsx)(g.Toggle,{checked:"round-robin"===ev,onChange:e=>{let t=e?"round-robin":null,i=e?eN||"1":eN;e&&!eN&&ek("1"),ej(t),eL(t,i)}}),"round-robin"===ev&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,t.jsx)("input",{type:"number",min:1,value:eN,onChange:e=>{var t;ek(t=e.target.value),eL("round-robin",t)},placeholder:"1",className:"w-14 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),X&&(0,t.jsxs)("div",{className:`flex items-center justify-between gap-2 mb-3 px-3 py-2 rounded-lg text-xs ${X.error?"bg-red-500/5 border border-red-500/15 text-red-500":"bg-green-500/5 border border-green-500/15 text-green-600"}`,children:[(0,t.jsx)("span",{children:X.error?`✗ ${X.error}`:`✓ Imported ${X.imported}, updated ${X.updated}, skipped ${X.skipped}`}),(0,t.jsx)("button",{onClick:()=>Z(null),className:"text-current opacity-60 hover:opacity-100",children:"✕"})]}),0===c.length?(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:eI?"lock":"key"})}),(0,t.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No connections yet"}),(0,t.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Add your first connection to get started"}),!eD&&(0,t.jsxs)("div",{className:"flex gap-2 justify-center",children:["iflow"===d&&(0,t.jsx)(n.Button,{icon:"cookie",variant:"secondary",onClick:()=>M(!0),children:"Cookie Auth"}),(0,t.jsx)(n.Button,{icon:"add",onClick:()=>eI?K(!0):F(!0),children:"iflow"===d?"OAuth":"Add Connection"}),"antigravity"===d&&(0,t.jsx)(n.Button,{icon:"download",variant:"secondary",onClick:e1,disabled:Y,children:Y?"Importing…":"Import from AGT"})]})]}):(0,t.jsxs)(t.Fragment,{children:[e5,!eD&&(0,t.jsxs)("div",{className:"flex gap-2 mt-4",children:["iflow"===d&&(0,t.jsx)(n.Button,{size:"sm",icon:"cookie",variant:"secondary",onClick:()=>M(!0),title:"Add connection using browser cookie",children:"Cookie"}),(0,t.jsx)(n.Button,{size:"sm",icon:"add",onClick:()=>eI?K(!0):F(!0),children:"Add"}),"antigravity"===d&&(0,t.jsx)(n.Button,{size:"sm",icon:"download",variant:"secondary",onClick:e1,disabled:Y,children:Y?"Importing…":"Import from AGT"})]})]})]}),(0,t.jsxs)(o.Card,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,t.jsx)("h2",{className:"text-lg font-semibold",children:"Available Models"})}),!!en&&(0,t.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:en}),(()=>{let e,i;if(eD)return(0,t.jsx)(P,{providerStorageAlias:eU,providerDisplayAlias:eq,modelAliases:ei,copied:eP,onCopy:eT,onSetAlias:eF,onDeleteAlias:eJ,connections:c,isAnthropic:e_});let a=[...eO,...eS.filter(e=>!eO.some(t=>t.id===e.id))],s=Object.entries(ei).filter(([e,t])=>{let i=`${eU}/`;if(!t.startsWith(i))return!1;let a=t.slice(i.length);return eR.passthroughModels?!eO.some(e=>e.id===a):!eO.some(e=>e.id===a)&&e===a}).map(([e,t])=>({id:t.slice(`${eU}/`.length),alias:e,fullModel:t}));return(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[a.map(e=>{let i=`${eU}/${e.id}`,a=`${d}/${e.id}`,s=Object.entries(ei).find(([,e])=>e===i||e===a)?.[0];return(0,t.jsx)(S,{model:e,fullModel:`${eq}/${e.id}`,alias:s,copied:eP,onCopy:eT,onSetAlias:t=>eF(e.id,t,eU),onDeleteAlias:()=>eJ(s),testStatus:er[e.id],onTest:c.length>0?()=>e8(e.id):void 0,isTesting:ec===e.id,isFree:e.isFree},e.id)}),s.map(e=>(0,t.jsx)(S,{model:{id:e.id},fullModel:`${eq}/${e.id}`,alias:e.alias,copied:eP,onCopy:eT,onSetAlias:()=>{},onDeleteAlias:()=>eJ(e.alias),testStatus:er[e.id],onTest:c.length>0?()=>e8(e.id):void 0,isTesting:ec===e.id,isCustom:!0},e.id)),(0,t.jsxs)("button",{onClick:()=>em(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]}),eC.length>0&&(e=new Set(Object.values(ei)),0===(i=eC.filter(t=>!e.has(`${eU}/${t.id}`))).length?null:(0,t.jsxs)("div",{className:"w-full mt-2",children:[(0,t.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"Suggested free models (≥200k context):"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:i.map(e=>(0,t.jsxs)("button",{onClick:async()=>{let t=e.id.split("/").pop();await eF(e.id,t,eU)},className:"flex items-center gap-1 px-2.5 py-1.5 rounded-lg border border-black/10 dark:border-white/10 text-xs text-text-muted hover:text-primary hover:border-primary/40 hover:bg-primary/5 transition-colors",title:`${e.name} \xb7 ${(e.contextLength/1e3).toFixed(0)}k ctx`,children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"add"}),e.id.split("/").pop()]},e.id))})]}))]})})()]}),e6,"kiro"===d?(0,t.jsx)(x.default,{isOpen:q,providerInfo:eR,onSuccess:eV,onClose:()=>K(!1)}):"cursor"===d?(0,t.jsx)(h.default,{isOpen:q,onSuccess:eV,onClose:()=>K(!1)}):"gitlab"===d?(0,t.jsx)(y.default,{isOpen:q,providerInfo:eR,onSuccess:eV,onClose:()=>K(!1)}):(0,t.jsx)(m.OAuthModal,{isOpen:q,provider:d,providerInfo:eR,onSuccess:eV,onClose:()=>K(!1)}),"iflow"===d&&(0,t.jsx)(f.default,{isOpen:B,onSuccess:()=>{eB(),M(!1)},onClose:()=>M(!1)}),(0,t.jsx)(I,{isOpen:L,provider:d,providerName:eR.name,isCompatible:eD,isAnthropic:e_,proxyPools:D,onSave:eW,onClose:()=>F(!1)}),(0,t.jsx)(O,{isOpen:J,connection:ee,proxyPools:D,onSave:eH,onClose:()=>z(!1)}),eD&&(0,t.jsx)($,{isOpen:V,node:T,onSave:eM,onClose:()=>W(!1),isAnthropic:e_}),!eD&&(0,t.jsx)(E,{isOpen:eu,providerAlias:eU,providerDisplayAlias:eq,onSave:async e=>{let t=eR?.passthroughModels?e.split("/").pop():e;await eF(e,t,eU),em(!1)},onClose:()=>em(!1)})]}):(0,t.jsxs)("div",{className:"text-center py-20",children:[(0,t.jsx)("p",{className:"text-text-muted",children:"Provider not found"}),(0,t.jsx)(l.default,{href:"/dashboard/providers",className:"text-primary mt-4 inline-block",children:"Back to Providers"})]})}],99165)}]);
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96521,e=>{"use strict";var t=e.i(10092);e.s(["Card",()=>t.default])},20956,e=>{"use strict";var t=e.i(41691);e.s(["ModelSelectModal",()=>t.default])},35918,e=>{"use strict";var t=e.i(55937);e.s(["calculatePercentage",0,function(e,t){return t&&0!==t?!e||e<0?100:e>=t?0:Math.round((t-e)/t*100):0},"formatResetTime",0,function(e){if(!e)return"-";try{let t="string"==typeof e?new Date(e):e,r=new Date,i=t-r;if(i<=0)return"-";let a=Math.ceil(i/6e4);if(a<60)return`${a}m`;let n=Math.floor(a/60),s=a%60;if(n<24)return`${n}h ${s}m`;let o=Math.floor(n/24);return`${o}d ${n%24}h ${s}m`}catch(e){return"-"}},"parseQuotaData",0,function(e,r){if(!r||"object"!=typeof r)return[];let i=[];try{switch(e.toLowerCase()){case"github":default:r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:t.remainingPercentage})});break;case"codex":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"kiro":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"claude":r.message?i.push({name:"error",used:0,total:0,resetAt:null,message:r.message}):r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let a=(0,t.getModelsByProviderId)(e);if(a.length>0){let e=new Map(a.map((e,t)=>[e.id,t]));i.sort((t,r)=>{let i=t.modelKey||t.name,a=r.modelKey||r.name;return(e.get(i)??999)-(e.get(a)??999)})}return i}])},51916,e=>{"use strict";var t=e.i(64920);e.s(["Badge",()=>t.default])},88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:n,objectFit:s}){let o=r?40*r:e,l=a?40*a:t,u=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${u}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${u?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return s}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=["default","imgix","cloudinary","akamai","custom"],s={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(33525);let i=e.r(43369),a=e.r(88143),n=e.r(87690),s=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:f,className:p,quality:g,width:m,height:h,fill:y=!1,style:b,overrideSrc:v,onLoad:w,onLoadingComplete:_,placeholder:j="empty",blurDataURL:S,fetchPriority:P,decoding:x="async",layout:O,objectFit:E,objectPosition:C,lazyBoundary:R,lazyRoot:M,...A},I){var z;let k,$,D,{imgConf:T,showAltText:q,blurComplete:N,defaultLoader:L}=I,U=T||n.imageConfigDefault;if("allSizes"in U)k=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),r=U.qualities?.sort((e,t)=>e-t);k={...U,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=A.loader||L;delete A.loader,delete A.srcSet;let F="__next_img_default"in B;if(F){if("custom"===k.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20956,e=>{"use strict";var t=e.i(41691);e.s(["ModelSelectModal",()=>t.default])},35918,e=>{"use strict";var t=e.i(55937);e.s(["calculatePercentage",0,function(e,t){return t&&0!==t?!e||e<0?100:e>=t?0:Math.round((t-e)/t*100):0},"formatResetTime",0,function(e){if(!e)return"-";try{let t="string"==typeof e?new Date(e):e,r=new Date,i=t-r;if(i<=0)return"-";let a=Math.ceil(i/6e4);if(a<60)return`${a}m`;let n=Math.floor(a/60),s=a%60;if(n<24)return`${n}h ${s}m`;let o=Math.floor(n/24);return`${o}d ${n%24}h ${s}m`}catch(e){return"-"}},"parseQuotaData",0,function(e,r){if(!r||"object"!=typeof r)return[];let i=[];try{switch(e.toLowerCase()){case"github":default:r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:t.remainingPercentage})});break;case"codex":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"kiro":r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"claude":r.message?i.push({name:"error",used:0,total:0,resetAt:null,message:r.message}):r.quotas&&Object.entries(r.quotas).forEach(([e,t])=>{i.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let a=(0,t.getModelsByProviderId)(e);if(a.length>0){let e=new Map(a.map((e,t)=>[e.id,t]));i.sort((t,r)=>{let i=t.modelKey||t.name,a=r.modelKey||r.name;return(e.get(i)??999)-(e.get(a)??999)})}return i}])},96521,e=>{"use strict";var t=e.i(10092);e.s(["Card",()=>t.default])},75634,e=>{"use strict";var t=e.i(88577);e.s(["Toggle",()=>t.default])},51916,e=>{"use strict";var t=e.i(64920);e.s(["Badge",()=>t.default])},88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:n,objectFit:s}){let o=r?40*r:e,l=a?40*a:t,u=o&&l?`viewBox='0 0 ${o} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${u}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${u?"none":"contain"===s?"xMidYMid":"cover"===s?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return n},imageConfigDefault:function(){return s}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=["default","imgix","cloudinary","akamai","custom"],s={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(33525);let i=e.r(43369),a=e.r(88143),n=e.r(87690),s=["-moz-initial","fill","none","scale-down",void 0];function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:c=!1,loading:f,className:p,quality:g,width:m,height:h,fill:y=!1,style:b,overrideSrc:v,onLoad:w,onLoadingComplete:_,placeholder:j="empty",blurDataURL:S,fetchPriority:P,decoding:x="async",layout:O,objectFit:E,objectPosition:C,lazyBoundary:R,lazyRoot:M,...A},I){var z;let k,$,D,{imgConf:T,showAltText:q,blurComplete:N,defaultLoader:L}=I,U=T||n.imageConfigDefault;if("allSizes"in U)k=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),r=U.qualities?.sort((e,t)=>e-t);k={...U,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=A.loader||L;delete A.loader,delete A.srcSet;let F="__next_img_default"in B;if(F){if("custom"===k.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2
2
  Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:r,...i}=t;return e(i)}}if(O){"fill"===O&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[O];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[O];r&&!t&&(t=r)}let W="",G=l(m),K=l(h);if((z=e)&&"object"==typeof z&&(o(z)||void 0!==z.src)){let t=o(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if($=t.blurWidth,D=t.blurHeight,S=S||t.blurDataURL,W=t.src,!y)if(G||K){if(G&&!K){let e=G/t.width;K=Math.round(t.height*e)}else if(!G&&K){let e=K/t.height;G=Math.round(t.width*e)}}else G=t.width,K=t.height}let X=!d&&!c&&("lazy"===f||void 0===f);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,X=!1),k.unoptimized&&(r=!0),F&&!k.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let H=l(g),V=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:C}:{},q?{}:{color:"transparent"},b),Q=N||"empty"===j?null:"blur"===j?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:G,heightInt:K,blurWidth:$,blurHeight:D,blurDataURL:S||"",objectFit:V.objectFit})}")`:`url("${j}")`,J=s.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Y=Q?{backgroundSize:J,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Q}:{},Z=function({config:e,src:t,unoptimized:r,width:a,quality:n,sizes:s,loader:o}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,i.getDeploymentId)();if(e){let r=t.indexOf("?");if(-1!==r){let i=new URLSearchParams(t.slice(r+1));i.get("dpl")||(i.append("dpl",e),t=t.slice(0,r)+"?"+i.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:u}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=r.exec(i);)a.push(parseInt(e[2]));if(a.length){let r=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,s),d=l.length-1;return{sizes:s||"w"!==u?s:"100vw",srcSet:l.map((r,i)=>`${o({config:e,src:t,quality:n,width:r})} ${"w"===u?r:i+1}${u}`).join(", "),src:o({config:e,src:t,quality:n,width:l[d]})}}({config:k,src:e,unoptimized:r,width:G,quality:H,sizes:t,loader:B}),ee=X?"lazy":f;return{props:{...A,loading:ee,fetchPriority:P,width:G,height:K,decoding:x,className:p,style:{...V,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:v||Z.src},meta:{unoptimized:r,preload:c||d,placeholder:j,fill:y}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let i=e.r(71645),a="u"<typeof window,n=a?()=>{}:i.useLayoutEffect,s=a?()=>{}:i.useEffect;function o(e){let{headManager:t,reduceComponentsToState:r}=e;function o(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return a&&(t?.mountedInstances?.add(e.children),o()),n(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),n(()=>(t&&(t._pendingUpdate=o),()=>{t&&(t._pendingUpdate=o)})),s(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return m},defaultHead:function(){return c}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),s=e.r(90809),o=e.r(43476),l=s._(e.r(71645)),u=n._(e.r(98879)),d=e.r(42732);function c(){return[(0,o.jsx)("meta",{charSet:"utf-8"},"charset"),(0,o.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,i,a;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,i=new Set,a={},e=>{let n=!0,s=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){s=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?n=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?n=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?n=!1:i.add(r);else{let t=e.props[r],i=a[r]||new Set;("name"!==r||!s)&&i.has(t)?n=!1:(i.add(t),a[r]=i)}}}return n})).reverse().map((e,t)=>{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,l.useContext)(d.HeadManagerContext);return(0,o.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return n}});let i=e.r(55682)._(e.r(71645)),a=e.r(87690),n=i.default.createContext(a.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,t.qualities[0]):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let i=e.r(70965),a=e.r(43369);function n({config:e,src:t,width:r,quality:s}){let o=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),i=r.get("dpl");if(i){o=i,r.delete("dpl");let a=r.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,i.findClosestQuality)(s,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}n.__next_img_default=!0;let s=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let i=e.r(55682),a=e.r(90809),n=e.r(43476),s=a._(e.r(71645)),o=i._(e.r(74080)),l=i._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,i,a,n,s){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,a=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function y(e){return s.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,s.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:a,decoding:o,className:l,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:b,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:_,sizesInput:j,onLoad:S,onError:P,...x},O)=>{let E=(0,s.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,c,b,v,w,p,j))},[e,c,b,v,w,P,p,j]),C=(0,g.useMergedRef)(O,E);return(0,n.jsx)("img",{...x,...y(d),loading:f,width:a,height:i,decoding:o,"data-nimg":m?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,b,v,w,p,j)},onError:e=>{_(!0),"empty"!==c&&w(!0),P&&P(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,n.jsx)(l.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,s.forwardRef)((e,t)=>{let r=(0,s.useContext)(f.RouterContext),i=(0,s.useContext)(c.ImageConfigContext),a=(0,s.useMemo)(()=>{let e=m||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:a,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:o,onLoadingComplete:l}=e,g=(0,s.useRef)(o);(0,s.useEffect)(()=>{g.current=o},[o]);let h=(0,s.useRef)(l);(0,s.useEffect)(()=>{h.current=l},[l]);let[y,w]=(0,s.useState)(!1),[_,j]=(0,s.useState)(!1),{props:S,meta:P}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:y,showAltText:_});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{...S,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),P.preload?(0,n.jsx)(v,{isAppRouter:!r,imgAttributes:S}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),s=e.r(8927),o=e.r(5500),l=n._(e.r(1948));function u(e){let{props:t}=(0,s.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=o.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},29511,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(66104);e.i(4565);var a=e.i(55937),n=e.i(85035);e.i(83806);var s=e.i(67551),s=s,o=e.i(25792),o=o,l=e.i(24991),l=l;e.s(["default",0,function(){let[e,u]=(0,r.useState)([]),[d,c]=(0,r.useState)([]),[f,p]=(0,r.useState)({}),[g,m]=(0,r.useState)(!1),[h,y]=(0,r.useState)(null),[b,v]=(0,r.useState)({running:!1,certExists:!1,dnsStatus:{},hasCachedPassword:!1}),[w,_]=(0,r.useState)(!1),j=async()=>{try{let e=await fetch("/api/providers");if(e.ok){let t=await e.json();u(t.connections||[])}}catch{}},S=async()=>{try{let e=await fetch("/api/keys");if(e.ok){let t=await e.json();c(t.keys||[])}}catch{}},P=async()=>{try{let e=await fetch("/api/models/alias");if(e.ok){let t=await e.json();p(t.aliases||{})}}catch{}},x=async()=>{try{let e=await fetch("/api/settings");if(e.ok){let t=await e.json();m(t.cloudEnabled||!1),_(!!t.tokenSwapEnabled)}}catch{}};(0,r.useEffect)(()=>{j(),S(),P(),x()},[]);let O=()=>e.filter(e=>!1!==e.isActive),E=Object.entries(i.MITM_TOOLS);return(0,t.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,t.jsx)(s.default,{apiKeys:d,cloudEnabled:g,onStatusChange:v}),(0,t.jsx)("div",{className:"flex flex-col gap-2",children:E.map(([i,s])=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(o.default,{tool:s,isExpanded:h===i,onToggle:()=>y(h===i?null:i),serverRunning:b.running,dnsActive:b.dnsStatus?.[i]||!1,hasCachedPassword:b.hasCachedPassword||!1,apiKeys:d,activeProviders:O(),hasActiveProviders:O().some(e=>(0,a.getModelsByProviderId)(e.provider).length>0||(0,n.isOpenAICompatibleProvider)(e.provider)||(0,n.isAnthropicCompatibleProvider)(e.provider)),modelAliases:f,cloudEnabled:g,tokenSwapActive:s.supportsTokenSwap&&w,onDnsChange:e=>v(t=>({...t,dnsStatus:e.dnsStatus??t.dnsStatus}))}),s.supportsTokenSwap&&(0,t.jsx)(l.default,{tool:s,connections:e,serverRunning:b.running,dnsActive:b.dnsStatus?.[i]||!1,onToggle:e=>_(e)})]},i))})]})}],29511)}]);
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let l=(0,i.findClosestQuality)(s,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/")&&o?`&dpl=${o}`:""}`}n.__next_img_default=!0;let s=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let i=e.r(55682),a=e.r(90809),n=e.r(43476),s=a._(e.r(71645)),o=i._(e.r(74080)),l=i._(e.r(25633)),u=e.r(8927),d=e.r(87690),c=e.r(18556);e.r(33525);let f=e.r(65856),p=i._(e.r(1948)),g=e.r(18581),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,i,a,n,s){let o=e?.src;e&&e["data-loaded-src"]!==o&&(e["data-loaded-src"]=o,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,a=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function y(e){return s.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,s.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:a,decoding:o,className:l,style:u,fetchPriority:d,placeholder:c,loading:f,unoptimized:p,fill:m,onLoadRef:b,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:_,sizesInput:j,onLoad:S,onError:P,...x},O)=>{let E=(0,s.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,c,b,v,w,p,j))},[e,c,b,v,w,P,p,j]),C=(0,g.useMergedRef)(O,E);return(0,n.jsx)("img",{...x,...y(d),loading:f,width:a,height:i,decoding:o,"data-nimg":m?"fill":"1",className:l,style:u,sizes:r,srcSet:t,src:e,ref:C,onLoad:e=>{h(e.currentTarget,c,b,v,w,p,j)},onError:e=>{_(!0),"empty"!==c&&w(!0),P&&P(e)}})});function v({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&o.default.preload?(o.default.preload(t.src,r),null):(0,n.jsx)(l.default,{children:(0,n.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,s.forwardRef)((e,t)=>{let r=(0,s.useContext)(f.RouterContext),i=(0,s.useContext)(c.ImageConfigContext),a=(0,s.useMemo)(()=>{let e=m||i||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:a,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:o,onLoadingComplete:l}=e,g=(0,s.useRef)(o);(0,s.useEffect)(()=>{g.current=o},[o]);let h=(0,s.useRef)(l);(0,s.useEffect)(()=>{h.current=l},[l]);let[y,w]=(0,s.useState)(!1),[_,j]=(0,s.useState)(!1),{props:S,meta:P}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:y,showAltText:_});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(b,{...S,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),P.preload?(0,n.jsx)(v,{isAppRouter:!r,imgAttributes:S}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return d},getImageProps:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});let n=e.r(55682),s=e.r(8927),o=e.r(5500),l=n._(e.r(1948));function u(e){let{props:t}=(0,s.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let d=o.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},29511,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(66104);e.i(4565);var a=e.i(55937),n=e.i(85035);e.i(83806);var s=e.i(67551),s=s,o=e.i(25792),o=o,l=e.i(24991),l=l;e.s(["default",0,function(){let[e,u]=(0,r.useState)([]),[d,c]=(0,r.useState)([]),[f,p]=(0,r.useState)({}),[g,m]=(0,r.useState)(!1),[h,y]=(0,r.useState)(null),[b,v]=(0,r.useState)({running:!1,certExists:!1,dnsStatus:{},hasCachedPassword:!1}),[w,_]=(0,r.useState)(!1),j=async()=>{try{let e=await fetch("/api/providers");if(e.ok){let t=await e.json();u(t.connections||[])}}catch{}},S=async()=>{try{let e=await fetch("/api/keys");if(e.ok){let t=await e.json();c(t.keys||[])}}catch{}},P=async()=>{try{let e=await fetch("/api/models/alias");if(e.ok){let t=await e.json();p(t.aliases||{})}}catch{}},x=async()=>{try{let e=await fetch("/api/settings");if(e.ok){let t=await e.json();m(t.cloudEnabled||!1),_(!!t.tokenSwapEnabled)}}catch{}};(0,r.useEffect)(()=>{(async()=>{await Promise.all([j(),S(),P(),x()])})()},[]);let O=()=>e.filter(e=>!1!==e.isActive),E=Object.entries(i.MITM_TOOLS);return(0,t.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,t.jsx)(s.default,{apiKeys:d,cloudEnabled:g,onStatusChange:v}),(0,t.jsx)("div",{className:"flex flex-col gap-2",children:E.map(([i,s])=>(0,t.jsxs)(r.Fragment,{children:[(0,t.jsx)(o.default,{tool:s,isExpanded:h===i,onToggle:()=>y(h===i?null:i),serverRunning:b.running,dnsActive:b.dnsStatus?.[i]||!1,hasCachedPassword:b.hasCachedPassword||!1,apiKeys:d,activeProviders:O(),hasActiveProviders:O().some(e=>(0,a.getModelsByProviderId)(e.provider).length>0||(0,n.isOpenAICompatibleProvider)(e.provider)||(0,n.isAnthropicCompatibleProvider)(e.provider)),modelAliases:f,cloudEnabled:g,tokenSwapActive:s.supportsTokenSwap&&w,onDnsChange:e=>v(t=>({...t,dnsStatus:e.dnsStatus??t.dnsStatus}))}),s.supportsTokenSwap&&(0,t.jsx)(l.default,{tool:s,connections:e,serverRunning:b.running,dnsActive:b.dnsStatus?.[i]||!1,onToggle:e=>_(e),onRefreshConnections:j})]},i))})]})}],29511)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,i,a)=>{i.exports=e.r(76562)},85035,e=>{"use strict";let i={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},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",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},a={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},t={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",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},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"},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"}},n={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",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"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},o="openai-compatible-",r="anthropic-compatible-",s={...i,...a,...t,...n};Object.values(s).reduce((e,i)=>(e[i.alias]=i.id,e),{}),Object.values(s).reduce((e,i)=>(e[i.id]=i.alias,e),{}),e.s(["AI_PROVIDERS",0,s,"ANTHROPIC_COMPATIBLE_PREFIX",0,r,"APIKEY_PROVIDERS",0,n,"AUTH_METHODS",0,{oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}},"FREE_PROVIDERS",0,i,"FREE_TIER_PROVIDERS",0,a,"OAUTH_PROVIDERS",0,t,"OPENAI_COMPATIBLE_PREFIX",0,o,"USAGE_SUPPORTED_PROVIDERS",0,["claude","antigravity","kiro","github","codex","kimi-coding"],"getProviderAlias",0,function(e){let i=s[e];return i?.alias||e},"getProviderByAlias",0,function(e){for(let i of Object.values(s))if(i.alias===e||i.id===e)return i;return null},"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(r)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(o)}])},45425,(e,i,a)=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/os-browserify/"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},i.exports=t},55937,e=>{"use strict";var i=e.i(47167),a=e.i(45425);let t={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},n="https://api.kimi.com/coding/v1/messages",o={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",retry:{429:0},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,prompt-caching-scope-2026-01-05","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.63 (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.74.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,a.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,a.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,a.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,a.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:i.default.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:i.default.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,a.platform)()}/${(0,a.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...t}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:n,format:"claude",headers:{...t}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...t}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...t}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","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"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",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"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",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"},"kimi-coding":{baseUrl:n,format:"claude",headers:{...t},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...t}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"}},r={cc:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 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"}],cx:[{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.3-codex-spark",name:"GPT 5.3 Codex Spark"},{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"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{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"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2"},{id:"deepseek-3.1",name:"DeepSeek 3.1"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"}],cu:[{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"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{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"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],cl:[{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",type:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",type:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",type:"embedding"},{id:"tts-1",name:"TTS-1",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"}],anthropic:[{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"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 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"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",type:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"}],openrouter:[],glm:[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],"minimax-cn":[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],deepseek:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],groq:[{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"}],xai:[{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-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{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:"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:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"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:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}],siliconflow:[{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:"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"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},s={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",vertex:"vertex","vertex-partner":"vertex-partner"},m=Object.fromEntries(Object.keys(o).map(e=>[e,s[e]||e]));e.s(["PROVIDER_ID_TO_ALIAS",0,m,"PROVIDER_MODELS",0,r,"getModelsByProviderId",0,function(e){return r[m[e]||e]||[]}],55937)},4565,e=>{"use strict";var i=e.i(55937);Object.entries(e.i(85035).AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(i.PROVIDER_MODELS).flatMap(([e,i])=>i.map(i=>({provider:e,model:i.id,name:i.name}))),e.s([])},43616,e=>{"use strict";e.i(85035),e.i(4565),e.s(["APP_CONFIG",0,{name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.88"},"CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3},"THEME_CONFIG",0,{storageKey:"theme",defaultTheme:"system"}],43616)},49778,68834,e=>{"use strict";let i,a;var t=e.i(71645);let n=e=>{let i,a=new Set,t=(e,t)=>{let n="function"==typeof e?e(i):e;if(!Object.is(n,i)){let e=i;i=(null!=t?t:"object"!=typeof n||null===n)?n:Object.assign({},i,n),a.forEach(a=>a(i,e))}},n=()=>i,o={setState:t,getState:n,getInitialState:()=>r,subscribe:e=>(a.add(e),()=>a.delete(e))},r=i=e(t,n,o);return o},o=e=>{let i=e?n(e):n,a=e=>(function(e,i=e=>e){let a=t.default.useSyncExternalStore(e.subscribe,t.default.useCallback(()=>i(e.getState()),[e,i]),t.default.useCallback(()=>i(e.getInitialState()),[e,i]));return t.default.useDebugValue(a),a})(i,e);return Object.assign(a,i),a},r=e=>e?o(e):o;e.s(["create",0,r],68834);let s=e=>i=>{try{let a=e(i);if(a instanceof Promise)return a;return{then:e=>s(e)(a),catch(e){return this}}}catch(e){return{then(e){return this},catch:i=>s(i)(e)}}};var m=e.i(43616);let l=r((i=(e,i)=>({theme:m.THEME_CONFIG.defaultTheme,setTheme:i=>{e({theme:i}),d(i)},toggleTheme:()=>{let a="dark"===i().theme?"light":"dark";e({theme:a}),d(a)},initTheme:()=>{d(i().theme)}}),a={name:m.THEME_CONFIG.storageKey},(e,t,n)=>{let o,r={storage:function(e){let i;try{i=e()}catch(e){return}return{getItem:e=>{var a;let t=e=>null===e?null:JSON.parse(e,void 0),n=null!=(a=i.getItem(e))?a:null;return n instanceof Promise?n.then(t):t(n)},setItem:(e,a)=>i.setItem(e,JSON.stringify(a,void 0)),removeItem:e=>i.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,i)=>({...i,...e}),...a},m=!1,l=0,d=new Set,c=new Set,p=r.storage;if(!p)return i((...i)=>{console.warn(`[zustand persist middleware] Unable to update item '${r.name}', the given storage is currently unavailable.`),e(...i)},t,n);let u=()=>{let e=r.partialize({...t()});return p.setItem(r.name,{state:e,version:r.version})},h=n.setState;n.setState=(e,i)=>(h(e,i),u());let g=i((...i)=>(e(...i),u()),t,n);n.getInitialState=()=>g;let f=()=>{var i,a;if(!p)return;let n=++l;m=!1,d.forEach(e=>{var i;return e(null!=(i=t())?i:g)});let h=(null==(a=r.onRehydrateStorage)?void 0:a.call(r,null!=(i=t())?i:g))||void 0;return s(p.getItem.bind(p))(r.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===r.version)return[!1,e.state];else{if(r.migrate){let i=r.migrate(e.state,e.version);return i instanceof Promise?i.then(e=>[!0,e]):[!0,i]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(i=>{var a;if(n!==l)return;let[s,m]=i;if(e(o=r.merge(m,null!=(a=t())?a:g),!0),s)return u()}).then(()=>{n===l&&(null==h||h(t(),void 0),o=t(),m=!0,c.forEach(e=>e(o)))}).catch(e=>{n===l&&(null==h||h(void 0,e))})};return n.persist={setOptions:e=>{r={...r,...e},e.storage&&(p=e.storage)},clearStorage:()=>{null==p||p.removeItem(r.name)},getOptions:()=>r,rehydrate:()=>f(),hasHydrated:()=>m,onHydrate:e=>(d.add(e),()=>{d.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},r.skipHydration||f(),o||g}));function d(e){let i=document.documentElement,a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?a:e)?i.classList.add("dark"):i.classList.remove("dark")}e.s(["default",0,l],49778)},35745,e=>{"use strict";var i=e.i(43476),a=e.i(71645),t=e.i(49778);e.s(["ThemeProvider",0,function({children:e}){let{initTheme:n}=(0,t.default)();return(0,a.useEffect)(()=>{n()},[n]),(0,i.jsx)(i.Fragment,{children:e})}])},5943,76969,e=>{"use strict";let i="locale";function a(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":"en"}e.s(["DEFAULT_LOCALE",0,"en","LOCALES",0,["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],"LOCALE_COOKIE",0,i,"normalizeLocale",0,a],76969);let t={},n="en",o=[];function r(){if("u"<typeof document)return"en";let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${i}=`));return a(e?decodeURIComponent(e.split("=")[1]):"en")}async function s(e){if("en"===e){t={};return}try{let i=await fetch(`/i18n/literals/${e}.json`);t=await i.json()}catch(e){console.error("Failed to load translations:",e),t={}}}function m(e){if(!e||"string"!=typeof e)return e;let i=e.trim();return i&&"en"!==n&&t[i]||e}function l(e){if(!e.nodeValue||!e.nodeValue.trim())return;let i=e.parentElement;if(!i)return;let a=i;for(;a;){if(a.hasAttribute&&a.hasAttribute("data-i18n-skip"))return;a=a.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(i.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let t=m(e._originalText);t!==e.nodeValue&&(e.nodeValue=t)}function d(e){let i;if(!e)return;let a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),t=[];for(;i=a.nextNode();)t.push(i);t.forEach(l)}async function c(){n=r(),await s(n),d(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?d(e):e.nodeType===Node.TEXT_NODE&&l(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function p(){n=r(),await s(n),o.forEach(e=>e()),d(document.body)}e.s(["initRuntimeI18n",0,c,"reloadTranslations",0,p,"translate",0,m],5943)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,i,a)=>{i.exports=e.r(76562)},85035,e=>{"use strict";let i={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},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",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},a={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},t={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",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},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"},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"}},n={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",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"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},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"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},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"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},o="openai-compatible-",r="anthropic-compatible-",s={...i,...a,...t,...n};Object.values(s).reduce((e,i)=>(e[i.alias]=i.id,e),{}),Object.values(s).reduce((e,i)=>(e[i.id]=i.alias,e),{}),e.s(["AI_PROVIDERS",0,s,"ANTHROPIC_COMPATIBLE_PREFIX",0,r,"APIKEY_PROVIDERS",0,n,"AUTH_METHODS",0,{oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"}},"FREE_PROVIDERS",0,i,"FREE_TIER_PROVIDERS",0,a,"OAUTH_PROVIDERS",0,t,"OPENAI_COMPATIBLE_PREFIX",0,o,"USAGE_SUPPORTED_PROVIDERS",0,["claude","antigravity","kiro","github","codex","kimi-coding"],"getProviderAlias",0,function(e){let i=s[e];return i?.alias||e},"getProviderByAlias",0,function(e){for(let i of Object.values(s))if(i.alias===e||i.id===e)return i;return null},"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(r)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(o)}])},45425,(e,i,a)=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/os-browserify/"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},i.exports=t},55937,e=>{"use strict";var i=e.i(47167),a=e.i(45425);let t={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},n="https://api.kimi.com/coding/v1/messages",o={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",retry:{429:0},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,prompt-caching-scope-2026-01-05","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.63 (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.74.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,a.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,a.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,a.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,a.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:i.default.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:i.default.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,a.platform)()}/${(0,a.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...t}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:n,format:"claude",headers:{...t}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...t}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...t}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","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"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",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"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",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"},"kimi-coding":{baseUrl:n,format:"claude",headers:{...t},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...t}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"}},r={cc:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 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"}],cx:[{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.3-codex-spark",name:"GPT 5.3 Codex Spark"},{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"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{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"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2"},{id:"deepseek-3.1",name:"DeepSeek 3.1"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"}],cu:[{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"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{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"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],cl:[{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",type:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",type:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",type:"embedding"},{id:"tts-1",name:"TTS-1",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"}],anthropic:[{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"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 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"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",type:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"}],openrouter:[],glm:[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],"minimax-cn":[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],deepseek:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],groq:[{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"}],xai:[{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-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{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:"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:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"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:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}],siliconflow:[{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:"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"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},s={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",vertex:"vertex","vertex-partner":"vertex-partner"},m=Object.fromEntries(Object.keys(o).map(e=>[e,s[e]||e]));e.s(["PROVIDER_ID_TO_ALIAS",0,m,"PROVIDER_MODELS",0,r,"getModelsByProviderId",0,function(e){return r[m[e]||e]||[]}],55937)},4565,e=>{"use strict";var i=e.i(55937);Object.entries(e.i(85035).AI_PROVIDERS).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(i.PROVIDER_MODELS).flatMap(([e,i])=>i.map(i=>({provider:e,model:i.id,name:i.name}))),e.s([])},43616,e=>{"use strict";e.i(85035),e.i(4565),e.s(["APP_CONFIG",0,{name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.90"},"CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3},"THEME_CONFIG",0,{storageKey:"theme",defaultTheme:"system"}],43616)},49778,68834,e=>{"use strict";let i,a;var t=e.i(71645);let n=e=>{let i,a=new Set,t=(e,t)=>{let n="function"==typeof e?e(i):e;if(!Object.is(n,i)){let e=i;i=(null!=t?t:"object"!=typeof n||null===n)?n:Object.assign({},i,n),a.forEach(a=>a(i,e))}},n=()=>i,o={setState:t,getState:n,getInitialState:()=>r,subscribe:e=>(a.add(e),()=>a.delete(e))},r=i=e(t,n,o);return o},o=e=>{let i=e?n(e):n,a=e=>(function(e,i=e=>e){let a=t.default.useSyncExternalStore(e.subscribe,t.default.useCallback(()=>i(e.getState()),[e,i]),t.default.useCallback(()=>i(e.getInitialState()),[e,i]));return t.default.useDebugValue(a),a})(i,e);return Object.assign(a,i),a},r=e=>e?o(e):o;e.s(["create",0,r],68834);let s=e=>i=>{try{let a=e(i);if(a instanceof Promise)return a;return{then:e=>s(e)(a),catch(e){return this}}}catch(e){return{then(e){return this},catch:i=>s(i)(e)}}};var m=e.i(43616);let l=r((i=(e,i)=>({theme:m.THEME_CONFIG.defaultTheme,setTheme:i=>{e({theme:i}),d(i)},toggleTheme:()=>{let a="dark"===i().theme?"light":"dark";e({theme:a}),d(a)},initTheme:()=>{d(i().theme)}}),a={name:m.THEME_CONFIG.storageKey},(e,t,n)=>{let o,r={storage:function(e){let i;try{i=e()}catch(e){return}return{getItem:e=>{var a;let t=e=>null===e?null:JSON.parse(e,void 0),n=null!=(a=i.getItem(e))?a:null;return n instanceof Promise?n.then(t):t(n)},setItem:(e,a)=>i.setItem(e,JSON.stringify(a,void 0)),removeItem:e=>i.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,i)=>({...i,...e}),...a},m=!1,l=0,d=new Set,c=new Set,p=r.storage;if(!p)return i((...i)=>{console.warn(`[zustand persist middleware] Unable to update item '${r.name}', the given storage is currently unavailable.`),e(...i)},t,n);let u=()=>{let e=r.partialize({...t()});return p.setItem(r.name,{state:e,version:r.version})},h=n.setState;n.setState=(e,i)=>(h(e,i),u());let g=i((...i)=>(e(...i),u()),t,n);n.getInitialState=()=>g;let f=()=>{var i,a;if(!p)return;let n=++l;m=!1,d.forEach(e=>{var i;return e(null!=(i=t())?i:g)});let h=(null==(a=r.onRehydrateStorage)?void 0:a.call(r,null!=(i=t())?i:g))||void 0;return s(p.getItem.bind(p))(r.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===r.version)return[!1,e.state];else{if(r.migrate){let i=r.migrate(e.state,e.version);return i instanceof Promise?i.then(e=>[!0,e]):[!0,i]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(i=>{var a;if(n!==l)return;let[s,m]=i;if(e(o=r.merge(m,null!=(a=t())?a:g),!0),s)return u()}).then(()=>{n===l&&(null==h||h(t(),void 0),o=t(),m=!0,c.forEach(e=>e(o)))}).catch(e=>{n===l&&(null==h||h(void 0,e))})};return n.persist={setOptions:e=>{r={...r,...e},e.storage&&(p=e.storage)},clearStorage:()=>{null==p||p.removeItem(r.name)},getOptions:()=>r,rehydrate:()=>f(),hasHydrated:()=>m,onHydrate:e=>(d.add(e),()=>{d.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},r.skipHydration||f(),o||g}));function d(e){let i=document.documentElement,a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?a:e)?i.classList.add("dark"):i.classList.remove("dark")}e.s(["default",0,l],49778)},35745,e=>{"use strict";var i=e.i(43476),a=e.i(71645),t=e.i(49778);e.s(["ThemeProvider",0,function({children:e}){let{initTheme:n}=(0,t.default)();return(0,a.useEffect)(()=>{n()},[n]),(0,i.jsx)(i.Fragment,{children:e})}])},5943,76969,e=>{"use strict";let i="locale";function a(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":"en"}e.s(["DEFAULT_LOCALE",0,"en","LOCALES",0,["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],"LOCALE_COOKIE",0,i,"normalizeLocale",0,a],76969);let t={},n="en",o=[];function r(){if("u"<typeof document)return"en";let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${i}=`));return a(e?decodeURIComponent(e.split("=")[1]):"en")}async function s(e){if("en"===e){t={};return}try{let i=await fetch(`/i18n/literals/${e}.json`);t=await i.json()}catch(e){console.error("Failed to load translations:",e),t={}}}function m(e){if(!e||"string"!=typeof e)return e;let i=e.trim();return i&&"en"!==n&&t[i]||e}function l(e){if(!e.nodeValue||!e.nodeValue.trim())return;let i=e.parentElement;if(!i)return;let a=i;for(;a;){if(a.hasAttribute&&a.hasAttribute("data-i18n-skip"))return;a=a.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(i.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let t=m(e._originalText);t!==e.nodeValue&&(e.nodeValue=t)}function d(e){let i;if(!e)return;let a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),t=[];for(;i=a.nextNode();)t.push(i);t.forEach(l)}async function c(){n=r(),await s(n),d(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?d(e):e.nodeType===Node.TEXT_NODE&&l(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function p(){n=r(),await s(n),o.forEach(e=>e()),d(document.body)}e.s(["initRuntimeI18n",0,c,"reloadTranslations",0,p,"translate",0,m],5943)}]);