9router 0.3.44 → 0.3.47

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 (407) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +49 -49
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/_global-error.html +2 -2
  49. package/app/.next/server/app/_global-error.rsc +1 -1
  50. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  51. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  52. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  53. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  54. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  55. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  56. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/_not-found.html +1 -1
  58. package/app/.next/server/app/_not-found.rsc +4 -4
  59. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  60. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  61. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  62. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  63. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  64. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  65. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  68. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  70. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  72. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  74. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  76. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  78. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  80. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  82. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/models/route.js +1 -1
  95. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  98. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  110. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  113. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  119. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/providers/route.js +1 -1
  122. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  126. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  137. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  139. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/translator/send/route.js +1 -1
  143. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  146. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  152. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  157. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  163. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  166. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  169. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  173. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/models/route.js +1 -1
  176. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  178. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  182. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  185. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/version/route.js +1 -1
  187. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/callback.html +1 -1
  190. package/app/.next/server/app/callback.rsc +4 -4
  191. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  192. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  193. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  194. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  195. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  196. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  197. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  198. package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
  199. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  200. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  201. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  202. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  203. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  204. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  205. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  206. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  207. package/app/.next/server/app/dashboard/combos.html +1 -1
  208. package/app/.next/server/app/dashboard/combos.rsc +6 -6
  209. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  210. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  211. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  212. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  213. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  214. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  215. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  216. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  217. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  218. package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
  219. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  220. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  221. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  222. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  223. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  224. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  225. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  226. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  227. package/app/.next/server/app/dashboard/mitm.html +1 -1
  228. package/app/.next/server/app/dashboard/mitm.rsc +6 -6
  229. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  230. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  231. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  233. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  234. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  235. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  236. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  237. package/app/.next/server/app/dashboard/profile.html +1 -1
  238. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  239. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  240. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  241. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  244. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  245. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  246. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  247. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  248. package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
  249. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  250. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  253. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  254. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  255. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  256. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  257. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  258. package/app/.next/server/app/dashboard/providers.html +1 -1
  259. package/app/.next/server/app/dashboard/providers.rsc +6 -6
  260. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  261. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  262. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  263. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  264. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  265. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  266. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  267. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  268. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  269. package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
  270. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  271. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  272. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  273. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  274. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  275. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  276. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  277. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  278. package/app/.next/server/app/dashboard/quota.html +2 -2
  279. package/app/.next/server/app/dashboard/quota.rsc +7 -7
  280. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  281. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  282. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  283. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  284. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  285. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  286. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  287. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  288. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  289. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  290. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  291. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  292. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  293. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  294. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  295. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  296. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  297. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  298. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  299. package/app/.next/server/app/dashboard/translator.html +1 -1
  300. package/app/.next/server/app/dashboard/translator.rsc +6 -6
  301. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  302. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  303. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  304. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  305. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  306. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  307. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  308. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  309. package/app/.next/server/app/dashboard/usage.html +1 -1
  310. package/app/.next/server/app/dashboard/usage.rsc +6 -6
  311. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  312. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  313. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  314. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  315. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  316. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  317. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  318. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  319. package/app/.next/server/app/dashboard.html +1 -1
  320. package/app/.next/server/app/dashboard.rsc +6 -6
  321. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  322. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  323. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
  325. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
  327. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  328. package/app/.next/server/app/index.html +1 -1
  329. package/app/.next/server/app/index.rsc +4 -4
  330. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  331. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  332. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  333. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  334. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  335. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  336. package/app/.next/server/app/landing.html +1 -1
  337. package/app/.next/server/app/landing.rsc +4 -4
  338. package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
  339. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  340. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  341. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  342. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  343. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  344. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  345. package/app/.next/server/app/login.html +1 -1
  346. package/app/.next/server/app/login.rsc +5 -5
  347. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  348. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  349. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  350. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  351. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  352. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  353. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  354. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  355. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  356. package/app/.next/server/app-paths-manifest.json +49 -49
  357. package/app/.next/server/chunks/1114.js +1 -1
  358. package/app/.next/server/chunks/1424.js +1 -1
  359. package/app/.next/server/chunks/318.js +16 -12
  360. package/app/.next/server/chunks/3832.js +1 -1
  361. package/app/.next/server/chunks/412.js +1 -1
  362. package/app/.next/server/chunks/5297.js +1 -1
  363. package/app/.next/server/chunks/649.js +1 -1
  364. package/app/.next/server/chunks/6968.js +1 -0
  365. package/app/.next/server/chunks/8590.js +1 -1
  366. package/app/.next/server/chunks/8895.js +2 -2
  367. package/app/.next/server/chunks/9609.js +1 -1
  368. package/app/.next/server/pages/404.html +1 -1
  369. package/app/.next/server/pages/500.html +2 -2
  370. package/app/.next/server/server-reference-manifest.js +1 -1
  371. package/app/.next/server/server-reference-manifest.json +1 -1
  372. package/app/.next/static/chunks/2652-67b8cc047a3efcc9.js +1 -0
  373. package/app/.next/static/chunks/{5497-f9ac005d57661752.js → 5497-80f3e016aa6ffe90.js} +2 -2
  374. package/app/.next/static/chunks/619-4c970716a5102dc3.js +1 -0
  375. package/app/.next/static/chunks/{9242-b217d166d0bd8f13.js → 9242-911fd2719103a7fa.js} +2 -2
  376. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-8caef34f3e144a20.js → page-d973cbda9e65d6ae.js} +1 -1
  377. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-fe9fbc3964d7ce5c.js → page-5b619960ca4781b8.js} +1 -1
  378. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-a04e6ebb4d3ba375.js → page-f99e552d5e35856b.js} +1 -1
  379. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-b2ae58a349c8274a.js +1 -0
  380. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-088e98717d308134.js → page-bf88929b2cc595ab.js} +1 -1
  381. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-d49fec9f05a5dbb4.js +1 -0
  382. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-534c2abe94effdd3.js → page-0855e087c5b9cbff.js} +1 -1
  383. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-90bb2799dad3c828.js → page-04d1ffb5358d8fb2.js} +1 -1
  384. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-49cf1fc0e94e26bc.js → page-84700e8ec448ea10.js} +1 -1
  385. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-3ac9a69abf7d3914.js → page-3143d3dbb2dc3422.js} +1 -1
  386. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-df9e9a7bbe13f58f.js → page-a72f6b297976a910.js} +1 -1
  387. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-ccb9b23c80936dba.js → page-9c2ca21b9d96002a.js} +1 -1
  388. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-738bdd2262ee451f.js → page-18d1eb2e7b82cbe5.js} +1 -1
  389. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-2bfbb471da9d16d1.js → page-c900e62e4683e201.js} +1 -1
  390. package/app/.next/static/chunks/app/(dashboard)/{layout-305ccb9e5615ce7d.js → layout-2ea88f0d24d7423a.js} +1 -1
  391. package/app/.next/static/chunks/app/layout-3d619e2f57919f2c.js +1 -0
  392. package/app/.next/static/chunks/app/login/{page-1168c63e7fe72ee5.js → page-28a0e9871bb2cb93.js} +1 -1
  393. package/app/.next/static/css/0c4f3a92a0a64981.css +3 -0
  394. package/app/package.json +1 -1
  395. package/app/public/providers/ollama-local.png +0 -0
  396. package/cli.js +9 -6
  397. package/package.json +1 -1
  398. package/app/.next/server/chunks/2255.js +0 -1
  399. package/app/.next/server/chunks/7132.js +0 -1
  400. package/app/.next/static/chunks/2032-c0d8eae86681bdf6.js +0 -1
  401. package/app/.next/static/chunks/4495-a4d17a15c681b2cf.js +0 -1
  402. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-927ca3fa58839a9a.js +0 -1
  403. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-b8734cbeddac6811.js +0 -1
  404. package/app/.next/static/chunks/app/layout-91ee138f7009827c.js +0 -1
  405. package/app/.next/static/css/d29dc22cd7e0030f.css +0 -3
  406. /package/app/.next/static/{oxskzK8Sog46giVHi8Q6m → cc9J-XDw_OEWOXEASQdi9}/_buildManifest.js +0 -0
  407. /package/app/.next/static/{oxskzK8Sog46giVHi8Q6m → cc9J-XDw_OEWOXEASQdi9}/_ssgManifest.js +0 -0
@@ -4,7 +4,7 @@
4
4
  "model": "{{model}}",
5
5
  "provider": "openai",
6
6
  "apiKey": "{{apiKey}}"
7
- }`}}}},83916:(a,b,c)=>{c.d(b,{Tk:()=>i,Ah:()=>j,a7:()=>n,ZM:()=>l,tA:()=>p,kn:()=>q,yZ:()=>m,qO:()=>o});var d=c(48249),e=c(67484),f=c(50412),g=c(81220);let h=process.env.NEXT_PUBLIC_CLOUD_URL;function i({tool:a,isExpanded:b,onToggle:c,activeProviders:i,modelMappings:j,onModelMappingChange:k,baseUrl:l,hasActiveProviders:m,apiKeys:n,cloudEnabled:o,initialStatus:p}){let q,r,s,[t,u]=(0,e.useState)(p||null),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(null),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(null),[J,K]=(0,e.useState)(""),[L,M]=(0,e.useState)({}),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)("");(0,e.useRef)(!1);let R=(()=>{if(!t?.installed)return null;let a=t.settings?.env?.ANTHROPIC_BASE_URL;if(!a)return"not_configured";let b=a.includes("localhost")||a.includes("127.0.0.1"),c=o&&h&&a.startsWith(h),d=l&&a.startsWith(l);return b||c||d?"configured":"other"})(),S=()=>{let a=P||l;return a.endsWith("/v1")?a:`${a}/v1`},T=async()=>{y(!0),C(null);try{let b={ANTHROPIC_BASE_URL:S()},c=J?.trim()||(n?.length>0?n[0].key:null)||(o?null:"sk_9router");c&&(b.ANTHROPIC_AUTH_TOKEN=c),a.defaultModels.forEach(a=>{let c=j[a.alias];c&&a.envKey&&(b[a.envKey]=c)});let d=await fetch("/api/cli-tools/claude-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:b})}),e=await d.json();d.ok?(C({type:"success",text:"Settings applied successfully!"}),u(a=>({...a,hasBackup:!0,settings:{...a?.settings,env:b}}))):C({type:"error",text:e.error||"Failed to apply settings"})}catch(a){C({type:"error",text:a.message})}finally{y(!1)}},U=async()=>{A(!0),C(null);try{let b=await fetch("/api/cli-tools/claude-settings",{method:"DELETE"}),c=await b.json();b.ok?(C({type:"success",text:"Settings reset successfully!"}),a.defaultModels.forEach(a=>k(a.alias,a.defaultValue||"")),K("")):C({type:"error",text:c.error||"Failed to reset settings"})}catch(a){C({type:"error",text:a.message})}finally{A(!1)}};return(0,d.jsxs)(f.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:c,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,d.jsx)(g.default,{src:"/providers/claude.png",alt:a.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:a=>{a.target.style.display="none"}})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h3",{className:"font-medium text-sm",children:a.name}),"configured"===R&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===R&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===R&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:a.description})]})]}),(0,d.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${b?"rotate-180":""}`,children:"expand_more"})]}),b&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[v&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{children:"Checking Claude CLI..."})]}),!v&&t&&!t.installed&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Claude CLI not installed"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Claude CLI to use this feature."})]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:()=>E(!D),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:D?"expand_less":"help"}),D?"Hide":"How to Install"]})]}),D&&(0,d.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,d.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,d.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,d.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @anthropic-ai/claude-code"})]}),(0,d.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"claude"})," to verify."]})]})]})]}),!v&&t?.installed&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[t?.settings?.env?.ANTHROPIC_BASE_URL&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:t.settings.env.ANTHROPIC_BASE_URL})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:(q=P||l).endsWith("/v1")?q:`${q}/v1`,onChange:a=>Q(a.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),P&&P!==l&&(0,d.jsx)("button",{onClick:()=>Q(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),n.length>0?(0,d.jsx)("select",{value:J,onChange:a=>K(a.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:n.map(a=>(0,d.jsx)("option",{value:a.key,children:a.key},a.id))}):(0,d.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:o?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),a.defaultModels.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:a.name}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:j[a.alias]||"",onChange:b=>k(a.alias,b.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsx)("button",{onClick:()=>{I(a.alias),G(!0)},disabled:!m,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${m?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),j[a.alias]&&(0,d.jsx)("button",{onClick:()=>k(a.alias,""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},a.alias))]}),B&&(0,d.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===B.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===B.type?"check_circle":"error"}),(0,d.jsx)("span",{children:B.text})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(f.$n,{variant:"primary",size:"sm",onClick:T,disabled:!m,loading:x,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:U,disabled:!t?.has9Router,loading:z,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,d.jsxs)(f.$n,{variant:"ghost",size:"sm",onClick:()=>O(!0),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,d.jsx)(f.rq,{isOpen:F,onClose:()=>G(!1),onSelect:a=>{H&&k(H,a.value)},selectedModel:H?j[H]:null,activeProviders:i,modelAliases:L,title:`Select model for ${H}`}),(0,d.jsx)(f.uR,{isOpen:N,onClose:()=>O(!1),title:"Claude CLI - Manual Configuration",configs:(r=J&&J.trim()?J:o?"<API_KEY_FROM_DASHBOARD>":"sk_9router",s={ANTHROPIC_BASE_URL:S(),ANTHROPIC_AUTH_TOKEN:r},a.defaultModels.forEach(a=>{let b=j[a.alias];b&&a.envKey&&(s[a.envKey]=b)}),[{filename:"~/.claude/settings.json",content:JSON.stringify({env:s},null,2)}])})]})}function j({tool:a,isExpanded:b,onToggle:c,baseUrl:h,apiKeys:i,activeProviders:j,cloudEnabled:k,initialStatus:l}){let m,n,o,[p,q]=(0,e.useState)(l||null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)({}),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(""),N=p?.installed?p.config?p.config.includes(h)||p.config.includes("localhost")||p.config.includes("127.0.0.1")?"configured":"other":"not_configured":null,O=()=>{let a=L||`${h}/v1`;return a.endsWith("/v1")?a:`${a}/v1`},P=async()=>{s(!0);try{let a=await fetch("/api/cli-tools/codex-settings"),b=await a.json();q(b)}catch(a){q({installed:!1,error:a.message})}finally{s(!1)}},Q=async()=>{u(!0),y(null);try{let a=B&&B.trim()||k?B:"sk_9router",b=await fetch("/api/cli-tools/codex-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:O(),apiKey:a,model:D})}),c=await b.json();b.ok?(y({type:"success",text:"Settings applied successfully!"}),P()):y({type:"error",text:c.error||"Failed to apply settings"})}catch(a){y({type:"error",text:a.message})}finally{u(!1)}},R=async()=>{w(!0),y(null);try{let a=await fetch("/api/cli-tools/codex-settings",{method:"DELETE"}),b=await a.json();a.ok?(y({type:"success",text:"Settings reset successfully!"}),E(""),P()):y({type:"error",text:b.error||"Failed to reset settings"})}catch(a){y({type:"error",text:a.message})}finally{w(!1)}};return(0,d.jsxs)(f.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:c,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,d.jsx)(g.default,{src:"/providers/codex.png",alt:a.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:a=>{a.target.style.display="none"}})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h3",{className:"font-medium text-sm",children:a.name}),"configured"===N&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===N&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===N&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:a.description})]})]}),(0,d.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${b?"rotate-180":""}`,children:"expand_more"})]}),b&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[r&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{children:"Checking Codex CLI..."})]}),!r&&p&&!p.installed&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Codex CLI not installed"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Codex CLI to use auto-apply feature."})]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:()=>A(!z),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:z?"expand_less":"help"}),z?"Hide":"How to Install"]})]}),z&&(0,d.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,d.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,d.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,d.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @openai/codex"})]}),(0,d.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"codex"})," to verify."]}),(0,d.jsx)("div",{className:"pt-2 border-t border-border",children:(0,d.jsxs)("p",{className:"text-text-muted text-xs",children:["Codex uses ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"~/.codex/auth.json"})," with ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"OPENAI_API_KEY"}),'. Click "Apply" to auto-configure.']})})]})]})]}),!r&&p?.installed&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[p?.config&&((n=(m=p.config.match(/base_url\s*=\s*"([^"]+)"/))?m[1]:null)?(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:n})]}):null),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:L||`${h}/v1`,onChange:a=>M(a.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),L&&L!==`${h}/v1`&&(0,d.jsx)("button",{onClick:()=>M(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),i.length>0?(0,d.jsx)("select",{value:B,onChange:a=>C(a.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:i.map(a=>(0,d.jsx)("option",{value:a.key,children:a.key},a.id))}):(0,d.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:k?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Model"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:D,onChange:a=>E(a.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsx)("button",{onClick:()=>G(!0),disabled:!j?.length,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${j?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),D&&(0,d.jsx)("button",{onClick:()=>E(""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})]}),x&&(0,d.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===x.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===x.type?"check_circle":"error"}),(0,d.jsx)("span",{children:x.text})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(f.$n,{variant:"primary",size:"sm",onClick:Q,disabled:!B||!D,loading:t,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:R,disabled:!p.has9Router,loading:v,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,d.jsxs)(f.$n,{variant:"ghost",size:"sm",onClick:()=>K(!0),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,d.jsx)(f.rq,{isOpen:F,onClose:()=>G(!1),onSelect:a=>{E(a.value),G(!1)},selectedModel:D,activeProviders:j,modelAliases:H,title:"Select Model for Codex"}),(0,d.jsx)(f.uR,{isOpen:J,onClose:()=>K(!1),title:"Codex CLI - Manual Configuration",configs:(o=B&&B.trim()?B:k?"<API_KEY_FROM_DASHBOARD>":"sk_9router",[{filename:"~/.codex/config.toml",content:`# 9Router Configuration for Codex CLI
7
+ }`}}}},83916:(a,b,c)=>{c.d(b,{Tk:()=>i,Ah:()=>j,a7:()=>n,ZM:()=>l,tA:()=>p,kn:()=>q,yZ:()=>m,qO:()=>o});var d=c(48249),e=c(67484),f=c(50412),g=c(81220);let h=process.env.NEXT_PUBLIC_CLOUD_URL;function i({tool:a,isExpanded:b,onToggle:c,activeProviders:i,modelMappings:j,onModelMappingChange:k,baseUrl:l,hasActiveProviders:m,apiKeys:n,cloudEnabled:o,initialStatus:p}){let q,r,s,[t,u]=(0,e.useState)(p||null),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(null),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(null),[J,K]=(0,e.useState)(""),[L,M]=(0,e.useState)({}),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)(""),[R,S]=(0,e.useState)(!1);(0,e.useRef)(!1);let T=(()=>{if(!t?.installed)return null;let a=t.settings?.env?.ANTHROPIC_BASE_URL;if(!a)return"not_configured";let b=a.includes("localhost")||a.includes("127.0.0.1"),c=o&&h&&a.startsWith(h),d=l&&a.startsWith(l);return b||c||d?"configured":"other"})(),U=async a=>{let b=a.target.checked;S(b),await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({ccFilterNaming:b})}).catch(()=>{})},V=()=>{let a=P||l;return a.endsWith("/v1")?a:`${a}/v1`},W=async()=>{y(!0),C(null);try{let b={ANTHROPIC_BASE_URL:V()},c=J?.trim()||(n?.length>0?n[0].key:null)||(o?null:"sk_9router");c&&(b.ANTHROPIC_AUTH_TOKEN=c),a.defaultModels.forEach(a=>{let c=j[a.alias];c&&a.envKey&&(b[a.envKey]=c)});let d=await fetch("/api/cli-tools/claude-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:b})}),e=await d.json();d.ok?(C({type:"success",text:"Settings applied successfully!"}),u(a=>({...a,hasBackup:!0,settings:{...a?.settings,env:b}}))):C({type:"error",text:e.error||"Failed to apply settings"})}catch(a){C({type:"error",text:a.message})}finally{y(!1)}},X=async()=>{A(!0),C(null);try{let b=await fetch("/api/cli-tools/claude-settings",{method:"DELETE"}),c=await b.json();b.ok?(C({type:"success",text:"Settings reset successfully!"}),a.defaultModels.forEach(a=>k(a.alias,a.defaultValue||"")),K("")):C({type:"error",text:c.error||"Failed to reset settings"})}catch(a){C({type:"error",text:a.message})}finally{A(!1)}};return(0,d.jsxs)(f.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:c,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,d.jsx)(g.default,{src:"/providers/claude.png",alt:a.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:a=>{a.target.style.display="none"}})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h3",{className:"font-medium text-sm",children:a.name}),"configured"===T&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===T&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===T&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:a.description})]})]}),(0,d.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${b?"rotate-180":""}`,children:"expand_more"})]}),b&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[v&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{children:"Checking Claude CLI..."})]}),!v&&t&&!t.installed&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Claude CLI not installed"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Claude CLI to use this feature."})]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:()=>E(!D),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:D?"expand_less":"help"}),D?"Hide":"How to Install"]})]}),D&&(0,d.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,d.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,d.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,d.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @anthropic-ai/claude-code"})]}),(0,d.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"claude"})," to verify."]})]})]})]}),!v&&t?.installed&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[t?.settings?.env?.ANTHROPIC_BASE_URL&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:t.settings.env.ANTHROPIC_BASE_URL})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:(q=P||l).endsWith("/v1")?q:`${q}/v1`,onChange:a=>Q(a.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),P&&P!==l&&(0,d.jsx)("button",{onClick:()=>Q(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),n.length>0?(0,d.jsx)("select",{value:J,onChange:a=>K(a.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:n.map(a=>(0,d.jsx)("option",{value:a.key,children:a.key},a.id))}):(0,d.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:o?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),a.defaultModels.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:a.name}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:j[a.alias]||"",onChange:b=>k(a.alias,b.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsx)("button",{onClick:()=>{I(a.alias),G(!0)},disabled:!m,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${m?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),j[a.alias]&&(0,d.jsx)("button",{onClick:()=>k(a.alias,""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},a.alias)),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Filter naming"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsxs)("label",{className:"flex items-center gap-1.5 cursor-pointer select-none",children:[(0,d.jsx)("input",{type:"checkbox",checked:R,onChange:U,className:"w-3.5 h-3.5 accent-primary cursor-pointer"}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"Filter naming requests"})]}),(0,d.jsx)(f.m_,{text:"Intercepts Claude Code's topic-naming requests and returns a fake response locally, saving API tokens.",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px] cursor-help",children:"info"})})]})]}),B&&(0,d.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===B.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===B.type?"check_circle":"error"}),(0,d.jsx)("span",{children:B.text})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(f.$n,{variant:"primary",size:"sm",onClick:W,disabled:!m,loading:x,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:X,disabled:!t?.has9Router,loading:z,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,d.jsxs)(f.$n,{variant:"ghost",size:"sm",onClick:()=>O(!0),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,d.jsx)(f.rq,{isOpen:F,onClose:()=>G(!1),onSelect:a=>{H&&k(H,a.value)},selectedModel:H?j[H]:null,activeProviders:i,modelAliases:L,title:`Select model for ${H}`}),(0,d.jsx)(f.uR,{isOpen:N,onClose:()=>O(!1),title:"Claude CLI - Manual Configuration",configs:(r=J&&J.trim()?J:o?"<API_KEY_FROM_DASHBOARD>":"sk_9router",s={ANTHROPIC_BASE_URL:V(),ANTHROPIC_AUTH_TOKEN:r},a.defaultModels.forEach(a=>{let b=j[a.alias];b&&a.envKey&&(s[a.envKey]=b)}),[{filename:"~/.claude/settings.json",content:JSON.stringify({env:s},null,2)}])})]})}function j({tool:a,isExpanded:b,onToggle:c,baseUrl:h,apiKeys:i,activeProviders:j,cloudEnabled:k,initialStatus:l}){let m,n,o,[p,q]=(0,e.useState)(l||null),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)({}),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(""),N=p?.installed?p.config?p.config.includes(h)||p.config.includes("localhost")||p.config.includes("127.0.0.1")?"configured":"other":"not_configured":null,O=()=>{let a=L||`${h}/v1`;return a.endsWith("/v1")?a:`${a}/v1`},P=async()=>{s(!0);try{let a=await fetch("/api/cli-tools/codex-settings"),b=await a.json();q(b)}catch(a){q({installed:!1,error:a.message})}finally{s(!1)}},Q=async()=>{u(!0),y(null);try{let a=B&&B.trim()||k?B:"sk_9router",b=await fetch("/api/cli-tools/codex-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:O(),apiKey:a,model:D})}),c=await b.json();b.ok?(y({type:"success",text:"Settings applied successfully!"}),P()):y({type:"error",text:c.error||"Failed to apply settings"})}catch(a){y({type:"error",text:a.message})}finally{u(!1)}},R=async()=>{w(!0),y(null);try{let a=await fetch("/api/cli-tools/codex-settings",{method:"DELETE"}),b=await a.json();a.ok?(y({type:"success",text:"Settings reset successfully!"}),E(""),P()):y({type:"error",text:b.error||"Failed to reset settings"})}catch(a){y({type:"error",text:a.message})}finally{w(!1)}};return(0,d.jsxs)(f.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:c,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,d.jsx)(g.default,{src:"/providers/codex.png",alt:a.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:a=>{a.target.style.display="none"}})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h3",{className:"font-medium text-sm",children:a.name}),"configured"===N&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===N&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===N&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:a.description})]})]}),(0,d.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${b?"rotate-180":""}`,children:"expand_more"})]}),b&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[r&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,d.jsx)("span",{children:"Checking Codex CLI..."})]}),!r&&p&&!p.installed&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Codex CLI not installed"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Please install Codex CLI to use auto-apply feature."})]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:()=>A(!z),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:z?"expand_less":"help"}),z?"Hide":"How to Install"]})]}),z&&(0,d.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,d.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,d.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,d.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @openai/codex"})]}),(0,d.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"codex"})," to verify."]}),(0,d.jsx)("div",{className:"pt-2 border-t border-border",children:(0,d.jsxs)("p",{className:"text-text-muted text-xs",children:["Codex uses ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"~/.codex/auth.json"})," with ",(0,d.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"OPENAI_API_KEY"}),'. Click "Apply" to auto-configure.']})})]})]})]}),!r&&p?.installed&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[p?.config&&((n=(m=p.config.match(/base_url\s*=\s*"([^"]+)"/))?m[1]:null)?(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Current"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("span",{className:"flex-1 px-2 py-1.5 text-xs text-text-muted truncate",children:n})]}):null),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Base URL"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:L||`${h}/v1`,onChange:a=>M(a.target.value),placeholder:"https://.../v1",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),L&&L!==`${h}/v1`&&(0,d.jsx)("button",{onClick:()=>M(""),className:"p-1 text-text-muted hover:text-primary rounded transition-colors",title:"Reset to default",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"restart_alt"})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"API Key"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),i.length>0?(0,d.jsx)("select",{value:B,onChange:a=>C(a.target.value),className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:i.map(a=>(0,d.jsx)("option",{value:a.key,children:a.key},a.id))}):(0,d.jsx)("span",{className:"flex-1 text-xs text-text-muted px-2 py-1.5",children:k?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right",children:"Model"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)("input",{type:"text",value:D,onChange:a=>E(a.target.value),placeholder:"provider/model-id",className:"flex-1 px-2 py-1.5 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsx)("button",{onClick:()=>G(!0),disabled:!j?.length,className:`px-2 py-1.5 rounded border text-xs transition-colors shrink-0 whitespace-nowrap ${j?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),D&&(0,d.jsx)("button",{onClick:()=>E(""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})]}),x&&(0,d.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===x.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===x.type?"check_circle":"error"}),(0,d.jsx)("span",{children:x.text})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(f.$n,{variant:"primary",size:"sm",onClick:Q,disabled:!B||!D,loading:t,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,d.jsxs)(f.$n,{variant:"outline",size:"sm",onClick:R,disabled:!p.has9Router,loading:v,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,d.jsxs)(f.$n,{variant:"ghost",size:"sm",onClick:()=>K(!0),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,d.jsx)(f.rq,{isOpen:F,onClose:()=>G(!1),onSelect:a=>{E(a.value),G(!1)},selectedModel:D,activeProviders:j,modelAliases:H,title:"Select Model for Codex"}),(0,d.jsx)(f.uR,{isOpen:J,onClose:()=>K(!1),title:"Codex CLI - Manual Configuration",configs:(o=B&&B.trim()?B:k?"<API_KEY_FROM_DASHBOARD>":"sk_9router",[{filename:"~/.codex/config.toml",content:`# 9Router Configuration for Codex CLI
8
8
  model = "${D}"
9
9
  model_provider = "9router"
10
10
 
@@ -0,0 +1 @@
1
+ exports.id=6968,exports.ids=[6968],exports.modules={2422:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/UsageStats.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/UsageStats.js","default")},3080:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/OAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/OAuthModal.js","default")},7290:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Card.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Card.js","default")},9671:(a,b,c)=>{Promise.resolve().then(c.bind(c,25919)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,48781)),Promise.resolve().then(c.bind(c,86739)),Promise.resolve().then(c.bind(c,79488)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,86209)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,267)),Promise.resolve().then(c.bind(c,53838)),Promise.resolve().then(c.bind(c,85306)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,83352)),Promise.resolve().then(c.bind(c,79346)),Promise.resolve().then(c.bind(c,91809)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,4770)),Promise.resolve().then(c.bind(c,42196)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,32971)),Promise.resolve().then(c.bind(c,87226))},10079:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Modal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Modal.js","default"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ConfirmModal() from the server but ConfirmModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Modal.js","ConfirmModal")},14285:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js","default")},18421:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Tooltip.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Tooltip.js","default")},19083:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/RequestLogger.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/RequestLogger.js","default")},26543:(a,b,c)=>{Promise.resolve().then(c.bind(c,70061)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,49123)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,80342)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,45205)),Promise.resolve().then(c.bind(c,64420)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,10079)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,19083)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,18421)),Promise.resolve().then(c.bind(c,2422))},26866:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Sidebar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Sidebar.js","default")},30508:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5735);c(45512),c(71230),c(83784),c(7290),c(10079),c(92082),c(70061),c(33893),c(70092),c(40515),c(89886),c(26866),c(92669),c(49123),c(3080),c(94582),c(70603),c(2422),c(45205),c(19083),c(82448),c(14285),c(87228),c(40167),c(80342),c(54065),c(18421);var e=c(61780);function f({children:a}){return(0,d.jsx)(e.default,{children:a})}c(64420)},33893:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Badge.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Badge.js","default")},40167:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js","default")},40515:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ThemeToggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js","default")},45205:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js","default")},45512:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Button.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Button.js","default")},49123:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Footer.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Footer.js","default")},54065:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/SegmentedControl.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js","default")},61780:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js","default")},64420:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js","default")},70061:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Avatar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Avatar.js","default")},70092:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Toggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Toggle.js","default")},70603:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js","default")},71230:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Input.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Input.js","default")},80342:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js","default")},82448:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js","default")},83784:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Select.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Select.js","default")},87228:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js","default")},92082:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Spinner() from the server but Spinner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","Spinner"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLoading() from the server but PageLoading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","PageLoading"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call Skeleton() from the server but Skeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","Skeleton"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CardSkeleton() from the server but CardSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Loading.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","default")},92669:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Header.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Header.js","default")},94582:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js","default")}};
@@ -1 +1 @@
1
- "use strict";exports.id=8590,exports.ids=[8590],exports.modules={8590:(a,b,c)=>{c.d(b,{$B:()=>p,I9:()=>h,Ql:()=>k,iD:()=>o,jR:()=>n,oD:()=>e,qZ:()=>q});var d=c(2255);let e=3e5;async function f(a,b,c,e){let f=d.xq[a];if(!f||!f.refreshUrl)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}}async function g(a,b){let c=await fetch(d.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function h(a,b,c,e){let f=await fetch(d.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return e?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return e?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function i(a,b){let c=d.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in,providerSpecificData:c.resource_url?{resourceUrl:c.resource_url}:void 0}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null}async function j(a,b){let c=await fetch(d.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function k(a,b,c){let e=b?.authMethod,f=b?.clientId,g=b?.clientSecret,h=b?.region;if(f&&g){let b="idc"===e&&h?`https://oidc.${h}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",d=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:f,clientSecret:g,refreshToken:a,grantType:"refresh_token"})});if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:d.status,error:a}),null}let i=await d.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!i.accessToken,expiresIn:i.expiresIn}),{accessToken:i.accessToken,refreshToken:i.refreshToken||a,expiresIn:i.expiresIn}}let i=await fetch(d.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})});if(!i.ok){let a=await i.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:i.status,error:a}),null}let j=await i.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!j.accessToken,expiresIn:j.expiresIn}),{accessToken:j.accessToken,refreshToken:j.refreshToken||a,expiresIn:j.expiresIn}}async function l(a,b){let c=btoa(`${d.xq.iflow.clientId}:${d.xq.iflow.clientSecret}`),e=await fetch(d.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.iflow.clientId,client_secret:d.xq.iflow.clientSecret})});if(!e.ok){let a=await e.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:e.status,error:a}),null}let f=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async function m(a,b){let c=await fetch(d.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId,client_secret:d.xq.github.clientSecret})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!e.access_token,hasNewRefreshToken:!!e.refresh_token,expiresIn:e.expires_in}),{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async function n(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":d.x0.USER_AGENT,"Editor-Version":`vscode/${d.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${d.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":d.x0.API_VERSION}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let e=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!e.token,expiresAt:e.expires_at}),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}async function o(a,b,c){if(!b||!b.refreshToken)return c?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;switch(a){case"gemini":case"gemini-cli":case"antigravity":return await h(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return await g(b.refreshToken,c);case"codex":return await j(b.refreshToken,c);case"qwen":return await i(b.refreshToken,c);case"iflow":return await l(b.refreshToken,c);case"github":return await m(b.refreshToken,c);case"kiro":return await k(b.refreshToken,b.providerSpecificData,c);default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function p(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return h(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return g(b.refreshToken,c);case"codex":return j(b.refreshToken,c);case"qwen":return i(b.refreshToken,c);case"iflow":return l(b.refreshToken,c);case"github":return m(b.refreshToken,c);case"kiro":return k(b.refreshToken,b.providerSpecificData,c);default:return f(a,b.refreshToken,b,c)}}async function q(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}}};
1
+ "use strict";exports.id=8590,exports.ids=[8590],exports.modules={8590:(a,b,c)=>{c.d(b,{$B:()=>q,I9:()=>i,Ql:()=>l,iD:()=>p,jR:()=>o,oD:()=>f,qZ:()=>r});var d=c(35024),e=c(75924);let f=3e5;async function g(a,b,c,e){let f=d.x[a];if(!f||!f.refreshUrl)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}}async function h(a,b){let c=await fetch(e.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.x.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async function i(a,b,c,d){let f=await fetch(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return d?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return d?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function j(a,b){let c=e.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.x.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in,providerSpecificData:c.resource_url?{resourceUrl:c.resource_url}:void 0}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null}async function k(a,b){let c=await fetch(e.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.x.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async function l(a,b,c){let e=b?.authMethod,f=b?.clientId,g=b?.clientSecret,h=b?.region;if(f&&g){let b="idc"===e&&h?`https://oidc.${h}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",d=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:f,clientSecret:g,refreshToken:a,grantType:"refresh_token"})});if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:d.status,error:a}),null}let i=await d.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!i.accessToken,expiresIn:i.expiresIn}),{accessToken:i.accessToken,refreshToken:i.refreshToken||a,expiresIn:i.expiresIn}}let i=await fetch(d.x.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})});if(!i.ok){let a=await i.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:i.status,error:a}),null}let j=await i.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!j.accessToken,expiresIn:j.expiresIn}),{accessToken:j.accessToken,refreshToken:j.refreshToken||a,expiresIn:j.expiresIn}}async function m(a,b){let c=btoa(`${d.x.iflow.clientId}:${d.x.iflow.clientSecret}`),f=await fetch(e.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.x.iflow.clientId,client_secret:d.x.iflow.clientSecret})});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function n(a,b){let c=await fetch(e.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.x.github.clientId,client_secret:d.x.github.clientSecret})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}async function o(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":e.x0.USER_AGENT,"Editor-Version":`vscode/${e.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":e.x0.API_VERSION}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}async function p(a,b,c){if(!b||!b.refreshToken)return c?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;switch(a){case"gemini":case"gemini-cli":case"antigravity":return await i(b.refreshToken,d.x[a].clientId,d.x[a].clientSecret,c);case"claude":return await h(b.refreshToken,c);case"codex":return await k(b.refreshToken,c);case"qwen":return await j(b.refreshToken,c);case"iflow":return await m(b.refreshToken,c);case"github":return await n(b.refreshToken,c);case"kiro":return await l(b.refreshToken,b.providerSpecificData,c);default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function q(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return i(b.refreshToken,d.x[a].clientId,d.x[a].clientSecret,c);case"claude":return h(b.refreshToken,c);case"codex":return k(b.refreshToken,c);case"qwen":return j(b.refreshToken,c);case"iflow":return m(b.refreshToken,c);case"github":return n(b.refreshToken,c);case"kiro":return l(b.refreshToken,b.providerSpecificData,c);default:return g(a,b.refreshToken,b,c)}}async function r(a,b=3,c=null){for(let d=0;d<b;d++){if(d>0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}},75924:(a,b,c)=>{let d,e;c.d(b,{$V:()=>r,A9:()=>j,Cn:()=>k,Co:()=>q,Ic:()=>o,K:()=>m,NA:()=>s,Ox:()=>l,VK:()=>t,go:()=>g,nZ:()=>n,sX:()=>h,x0:()=>i,zv:()=>p});var f=c(21820);let g="google-genai-sdk/1.41.0 gl-node/v22.19.0";function h(a="unknown"){let b="win32"===(0,f.platform)()?"windows":(0,f.platform)();return`GeminiCLI/0.31.0/${a||"unknown"} (${b}; ${(0,f.arch)()})`}let i={VSCODE_VERSION:"1.110.0",COPILOT_CHAT_VERSION:"0.38.0",USER_AGENT:"GitHubCopilotChat/0.38.0",API_VERSION:"2025-04-01"};function j(){return`antigravity/1.104.0 ${(0,f.platform)()}/${(0,f.arch)()}`}let k={ideType:9,platform:(d=(0,f.platform)(),e=(0,f.arch)(),"darwin"===d?"arm64"===e?2:1:"linux"===d?"arm64"===e?4:3:5*("win32"===d)),pluginType:2},l={name:"x-request-source",value:"local"},m={"X-Client-Name":"antigravity","X-Client-Version":"1.107.0","x-goog-api-client":"gl-node/18.18.2 fire/0.8.6 grpc/1.10.x","User-Agent":"antigravity/1.107.0 darwin/arm64"},n={loadCodeAssist:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUser:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser"},o={"Content-Type":"application/json","User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1","Client-Metadata":JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},p={ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"},q="You are a Claude agent, built on Anthropic's Claude Agent SDK.",r="You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**",s={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://api.anthropic.com/v1/oauth/token",auth:"https://api.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}};function t(){return{"X-Msh-Platform":"9router","X-Msh-Version":"2.1.2","X-Msh-Device-Model":"u">typeof process?`${process.platform} ${process.arch}`:"unknown","X-Msh-Device-Id":`kimi-${Date.now()}`}}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8895,exports.ids=[8895],exports.modules={5016:(a,b,c)=>{c.d(b,{N:()=>m});var d=c(14170),e=c(4841),f=c(39551),g=c(73483),h=c(43659),i=c(2255),j=c(81626),k=c(86171),l=c(47370);async function m({providerResponse:a,provider:b,model:c,sourceFormat:m,targetFormat:n,body:o,stream:p,translatedBody:q,finalBody:r,requestStartTime:s,connectionId:t,apiKey:u,clientRawRequest:v,onRequestSuccess:w,reqLogger:x,trackDone:y,appendLog:z}){let A;if(y(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,j.F)(b,c);if(!d)return z({status:`FAILED ${i.gx.BAD_GATEWAY}`}),(0,h.A1)(i.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");A=d}else try{A=await a.json()}catch(a){return z({status:`FAILED ${i.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,h.A1)(i.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}x.logProviderResponse(a.status,a.statusText,a.headers,A),w&&await w();let B=(0,k.MK)(A);z({tokens:B,status:"200 OK"}),(0,k.qr)({provider:b,model:c,tokens:B,connectionId:t,apiKey:u,endpoint:v?.endpoint});let C=(0,e.nZ)(n,m)?function(a,b,c){if(b===c||b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts)!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(!a.content)return a;let b="",c="",d=[];for(let e of a.content)"text"===e.type?b+=e.text:"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,total_tokens:(a.usage.input_tokens||0)+(a.usage.output_tokens||0)}),g}return b===d.h.OLLAMA?(0,f.ollamaBodyToOpenAI)(a):a}(A,n,m):A;if(C.object||(C.object="chat.completion"),C.created||(C.created=Math.floor(Date.now()/1e3)),delete C.prompt_filter_results,C?.choices)for(let a of C.choices)delete a.content_filter_results;C?.usage&&(C.usage=(0,g.WL)((0,g.O9)(C.usage),m)),x.logConvertedResponse(C);let D=Date.now()-s;return(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:t,latency:{ttft:D,total:D},tokens:B||{prompt_tokens:0,completion_tokens:0},request:(0,k.Fo)(o,p),providerRequest:r||q||null,providerResponse:A||null,response:{content:C?.choices?.[0]?.message?.content||C?.content||null,thinking:C?.choices?.[0]?.message?.reasoning_content||C?.reasoning_content||null,finish_reason:C?.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:v?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(C),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},12557:(a,b,c)=>{c.d(b,{Bl:()=>k,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(2255);function e(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function f(a,b,c=0){if(b){let a=("string"==typeof b?b:JSON.stringify(b)).toLowerCase();if(a.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound};if(a.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed};if(a.includes("rate limit")||a.includes("too many requests")||a.includes("quota exceeded")||a.includes("capacity")||a.includes("overloaded")){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}return[d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a),{shouldFallback:!0,cooldownMs:d.Bm.transient}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=a[j(b)]||a[i];return!!c&&new Date(c).getTime()>Date.now()}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},20623:(a,b,c)=>{c.d(b,{$:()=>l,M:()=>k});var d=c(14170),e=c(4841),f=c(71857),g=c(59657),h=c(86171),i=c(47370);let j={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"};function k({providerResponse:a,provider:b,model:c,sourceFormat:k,targetFormat:l,userAgent:m,body:n,stream:o,translatedBody:p,finalBody:q,requestStartTime:r,connectionId:s,apiKey:t,clientRawRequest:u,onRequestSuccess:v,reqLogger:w,toolNameMap:x,streamController:y,onStreamComplete:z}){v&&v();let A=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:h,toolNameMap:i,model:j,connectionId:k,body:l,onStreamComplete:m,apiKey:n}){let o=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if("codex"===a&&c===d.h.OPENAI_RESPONSES&&!o){let c;return c=b===d.h.OPENAI_RESPONSES?d.h.OPENAI_RESPONSES:b===d.h.CLAUDE?d.h.CLAUDE:b===d.h.ANTIGRAVITY||b===d.h.GEMINI||b===d.h.GEMINI_CLI?d.h.ANTIGRAVITY:d.h.OPENAI,(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,h,i,j,k,l,m,n)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,h,i,j,k,l,m,n):(0,f.l2)(a,h,j,k,l,m,n)}({provider:b,sourceFormat:k,targetFormat:l,userAgent:m,reqLogger:w,toolNameMap:x,model:c,connectionId:s,body:n,onStreamComplete:z,apiKey:t}),B=(0,g.Jb)(a,A,y),C=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return(0,i.ox)((0,h.$R)({provider:b,model:c,connectionId:s,latency:{ttft:0,total:Date.now()-r},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,h.Fo)(n,o),providerRequest:q||p||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"success"},{id:C})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(B,{headers:j})}}function l({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:j,translatedBody:k,clientRawRequest:l}){let m=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(n,o,p)=>{let q={ttft:p?p-e:Date.now()-e,total:Date.now()-e};(0,i.ox)((0,h.$R)({provider:a,model:b,connectionId:c,latency:q,tokens:o||{prompt_tokens:0,completion_tokens:0},request:(0,h.Fo)(f,g),providerRequest:j||k||null,providerResponse:n.content||"[Empty streaming response]",response:{content:n.content||"[Empty streaming response]",thinking:n.thinking||null,type:"streaming"},status:"success"},{id:m})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,h.qr)({provider:a,model:b,tokens:o,connectionId:c,apiKey:d,endpoint:l?.endpoint,label:"STREAM USAGE"})},streamDetailId:m}}},27349:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(57647),e=c(4841),f=c(14170),g=c(2255),h=c(71857);function i(a,b,c=""){if(!c.includes("claude-cli")||!a.messages?.length)return null;let l=a.messages,m=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",n=!1,o=l[l.length-1];if(o?.role==="assistant"&&o.content?.[0]?.text==="{"&&(n=!0),n||"Warmup"===m(l[0]?.content)&&(n=!0),n||1!==l.length||l[0]?.role!=="user"||"count"===m(l[0]?.content)&&(n=!0),!n&&g.C8?.length){let a=l.filter(a=>"user"===a.role).map(a=>m(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(n=!0)}if(!n)return null;let p=(0,d.Tz)(a);return!1!==a.stream?function(a,b){let c=j(b),d=(0,e.Ws)(a);d.model=b;let g=k(c),i=[];for(let b of g){let c=(0,e.Y8)(f.h.OPENAI,a,b,d);if(c?.length>0)for(let b of c)i.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,d);if(l?.length>0)for(let b of l)i.push((0,h.v8)(b,a));return i.push("data: [DONE]\n\n"),{success:!0,response:new Response(i.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}(p,b):function(a,b){let c=j(b);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let d=(0,e.Ws)(a);d.model=b;let g=k(c),h=[];for(let b of g){let c=(0,e.Y8)(f.h.OPENAI,a,b,d);c?.length>0&&h.push(...c)}let i=(0,e.Y8)(f.h.OPENAI,a,null,d);return i?.length>0&&h.push(...i),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(h,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}(p,b)}function j(a){let b=`chatcmpl-${Date.now()}`;return{id:b,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(2255);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="",e=null;try{let b=await a.text();try{let a=JSON.parse(b);c=a.error?.message||a.message||a.error||b}catch{c=b}}catch{c=`Upstream error: ${a.status}`}let g=("string"==typeof c?c:JSON.stringify(c))||d.O[a.status]||`Upstream error: ${a.status}`;return"antigravity"===b&&429===a.status&&(e=function(a){if("string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=60*parseInt(b[1])*6e4),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}(g)),{statusCode:a.status,message:g,retryAfterMs:e}}function g(a,b,c=null){let d={success:!1,status:a,error:b,response:e(a,b)};return c&&(d.retryAfterMs=c),d}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error";return`[${e}]: ${f}`}},48895:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$B:()=>e.$B,SB:()=>g.SB}),c(39609),c(2255),c(57247),c(14170),c(4841),c(57647),c(40669),c(12557);var e=c(8590),f=c(92500),g=c(55330);c(43659),c(71857);var h=a([f,g]);[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},59657:(a,b,c)=>{function d({onDisconnect:a,onError:b,log:c,provider:e,model:f}={}){let g=new AbortController,h=Date.now(),i=!1,j=null,k=a=>{let b=Date.now()-h,c=e?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${f||"unknown"} | ${b}ms | ${a}`)};return{signal:g.signal,startTime:h,isConnected:()=>!i,handleDisconnect:(b="client_closed")=>{i||(i=!0,k(`disconnect: ${b}`),j=setTimeout(()=>{g.abort()},500),a?.({reason:b,duration:Date.now()-h}))},handleComplete:()=>{!i&&(i=!0,k("complete"),j&&(clearTimeout(j),j=null))},handleError:a=>{if(!i){if(i=!0,j&&(clearTimeout(j),j=null),"AbortError"===a.name)return void k("aborted");k(`error: ${a.message}`),b?.(a)}},abort:()=>g.abort()}}function e(a,b,c){var d;let e,f;return d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}},e=d.readable.getReader(),f=d.writable.getWriter(),new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},71336:(a,b,c)=>{c.d(b,{q7:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{f.existsSync(h)||f.mkdirSync(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=c.replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(f&&a)try{let d=g.join(a,b);f.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function l(a){return a?{...a}:{}}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(f&&d)try{let b=g.join(d,"5_res_provider.txt");f.appendFileSync(b,a)}catch(a){}},appendOpenAIChunk(a){if(f&&d)try{let b=g.join(d,"6_res_openai.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"7_res_client.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},71857:(a,b,c)=>{c.d(b,{i5:()=>n,l2:()=>o,lm:()=>g.lm,v8:()=>h.v8});var d=c(4841),e=c(14170),f=c(47370),g=c(73483),h=c(9024);let i=new TextDecoder,j=new TextEncoder,k="translate",l="passthrough";function m(a={}){let{mode:b=k,targetFormat:c,sourceFormat:n,provider:o=null,reqLogger:p=null,toolNameMap:q=null,model:r=null,connectionId:s=null,body:t=null,onStreamComplete:u=null,apiKey:v=null}=a,w="",x=null,y=b===k?{...(0,d.Ws)(n),provider:o,toolNameMap:q,model:r}:null,z=0,A="",B="",C=null;return new TransformStream({transform(a,f){C||(C=Date.now());let k=i.decode(a,{stream:!0});w+=k,p?.appendProviderChunk?.(k);let m=w.split("\n");for(let a of(w=m.pop()||"",m)){let i=a.trim();if(b===l){let b,c=!1;if(i.startsWith("data:")&&"[DONE]"!==i.slice(5).trim())try{let a=JSON.parse(i.slice(5).trim()),d=(0,h.A4)(a),f=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",f=!0),a.created||(a.created=Math.floor(Date.now()/1e3),f=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,f=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,f=!0);if(!(0,h.c2)(a,e.h.OPENAI))continue;let j=a.choices?.[0]?.delta,k=j?.content,l=j?.reasoning_content;k&&"string"==typeof k&&(z+=k.length,A+=k),l&&"string"==typeof l&&(z+=l.length,B+=l);let m=(0,g.f5)(a);m&&(x=m);let n=a.choices?.[0]?.finish_reason;if(n&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(t,z,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
1
+ "use strict";exports.id=8895,exports.ids=[8895],exports.modules={5016:(a,b,c)=>{c.d(b,{N:()=>m});var d=c(14170),e=c(4841),f=c(39551),g=c(73483),h=c(43659),i=c(41004),j=c(81626),k=c(86171),l=c(47370);async function m({providerResponse:a,provider:b,model:c,sourceFormat:m,targetFormat:n,body:o,stream:p,translatedBody:q,finalBody:r,requestStartTime:s,connectionId:t,apiKey:u,clientRawRequest:v,onRequestSuccess:w,reqLogger:x,trackDone:y,appendLog:z}){let A;if(y(),(a.headers.get("content-type")||"").includes("text/event-stream")){let b=await a.text(),d=(0,j.F)(b,c);if(!d)return z({status:`FAILED ${i.gx.BAD_GATEWAY}`}),(0,h.A1)(i.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");A=d}else try{A=await a.json()}catch(a){return z({status:`FAILED ${i.gx.BAD_GATEWAY}`}),console.error(`[ChatCore] Failed to parse JSON from ${b}:`,a.message),(0,h.A1)(i.gx.BAD_GATEWAY,`Invalid JSON response from ${b}`)}x.logProviderResponse(a.status,a.statusText,a.headers,A),w&&await w();let B=(0,k.MK)(A);z({tokens:B,status:"200 OK"}),(0,k.qr)({provider:b,model:c,tokens:B,connectionId:t,apiKey:u,endpoint:v?.endpoint});let C=(0,e.nZ)(n,m)?function(a,b,c){if(b===c||b===d.h.OPENAI)return a;if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY||b===d.h.GEMINI_CLI){let b=a.response||a;if(!b?.candidates?.[0])return a;let c=b.candidates[0],d=c.content,e=b.usageMetadata||a.usageMetadata,f="",g="",h=[];if(d?.parts)for(let a of d.parts)!0===a.thought&&a.text?g+=a.text:void 0!==a.text&&(f+=a.text),a.functionCall&&h.push({id:`call_${a.functionCall.name}_${Date.now()}_${h.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let i={role:"assistant"};f&&(i.content=f),g&&(i.reasoning_content=g),h.length>0&&(i.tool_calls=h),i.content||i.tool_calls||(i.content="");let j=(c.finishReason||"stop").toLowerCase();"stop"===j&&h.length>0&&(j="tool_calls");let k={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:i,finish_reason:j}]};return e&&(k.usage={prompt_tokens:(e.promptTokenCount||0)+(e.thoughtsTokenCount||0),completion_tokens:e.candidatesTokenCount||0,total_tokens:e.totalTokenCount||0},e.thoughtsTokenCount>0&&(k.usage.completion_tokens_details={reasoning_tokens:e.thoughtsTokenCount})),k}if(b===d.h.CLAUDE){if(!a.content)return a;let b="",c="",d=[];for(let e of a.content)"text"===e.type?b+=e.text.replace(/^\s*```\s*json\s*\n?/i,"").replace(/\n?\s*```\s*$/i,""):"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.stop_reason||"stop";"end_turn"===f&&(f="stop"),"tool_use"===f&&(f="tool_calls");let g={id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:f}]};return a.usage&&(g.usage={prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,total_tokens:(a.usage.input_tokens||0)+(a.usage.output_tokens||0)}),g}return b===d.h.OLLAMA?(0,f.ollamaBodyToOpenAI)(a):a}(A,n,m):A;if(C.object||(C.object="chat.completion"),C.created||(C.created=Math.floor(Date.now()/1e3)),delete C.prompt_filter_results,C?.choices)for(let a of C.choices)delete a.content_filter_results;C?.usage&&(C.usage=(0,g.WL)((0,g.O9)(C.usage),m)),x.logConvertedResponse(C);let D=Date.now()-s;return(0,l.ox)((0,k.$R)({provider:b,model:c,connectionId:t,latency:{ttft:D,total:D},tokens:B||{prompt_tokens:0,completion_tokens:0},request:(0,k.Fo)(o,p),providerRequest:r||q||null,providerResponse:A||null,response:{content:C?.choices?.[0]?.message?.content||C?.content||null,thinking:C?.choices?.[0]?.message?.reasoning_content||C?.reasoning_content||null,finish_reason:C?.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:v?.endpoint||null})).catch(a=>{console.error("[RequestDetail] Failed to save:",a.message)}),{success:!0,response:new Response(JSON.stringify(C),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},12557:(a,b,c)=>{c.d(b,{Bl:()=>k,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(41004);function e(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function f(a,b,c=0){if(b){let a=("string"==typeof b?b:JSON.stringify(b)).toLowerCase();if(a.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound};if(a.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed};if(a.includes("rate limit")||a.includes("too many requests")||a.includes("quota exceeded")||a.includes("capacity")||a.includes("overloaded")){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:e(c),newBackoffLevel:a}}return[d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a),{shouldFallback:!0,cooldownMs:d.Bm.transient}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=a[j(b)]||a[i];return!!c&&new Date(c).getTime()>Date.now()}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},20623:(a,b,c)=>{c.d(b,{$:()=>l,M:()=>k});var d=c(14170),e=c(4841),f=c(71857),g=c(59657),h=c(86171),i=c(47370);let j={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"};function k({providerResponse:a,provider:b,model:c,sourceFormat:k,targetFormat:l,userAgent:m,body:n,stream:o,translatedBody:p,finalBody:q,requestStartTime:r,connectionId:s,apiKey:t,clientRawRequest:u,onRequestSuccess:v,reqLogger:w,toolNameMap:x,streamController:y,onStreamComplete:z}){v&&v();let A=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:g,reqLogger:h,toolNameMap:i,model:j,connectionId:k,body:l,onStreamComplete:m,apiKey:n}){let o=g?.toLowerCase().includes("droid")||g?.toLowerCase().includes("codex-cli");if("codex"===a&&c===d.h.OPENAI_RESPONSES&&!o){let c;return c=b===d.h.OPENAI_RESPONSES?d.h.OPENAI_RESPONSES:b===d.h.CLAUDE?d.h.CLAUDE:b===d.h.ANTIGRAVITY||b===d.h.GEMINI||b===d.h.GEMINI_CLI?d.h.ANTIGRAVITY:d.h.OPENAI,(0,f.i5)(d.h.OPENAI_RESPONSES,c,a,h,i,j,k,l,m,n)}return(0,e.nZ)(c,b)?(0,f.i5)(c,b,a,h,i,j,k,l,m,n):(0,f.l2)(a,h,j,k,l,m,n)}({provider:b,sourceFormat:k,targetFormat:l,userAgent:m,reqLogger:w,toolNameMap:x,model:c,connectionId:s,body:n,onStreamComplete:z,apiKey:t}),B=(0,g.Jb)(a,A,y),C=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return(0,i.ox)((0,h.$R)({provider:b,model:c,connectionId:s,latency:{ttft:0,total:Date.now()-r},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,h.Fo)(n,o),providerRequest:q||p||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},status:"success"},{id:C})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(B,{headers:j})}}function l({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:j,translatedBody:k,clientRawRequest:l}){let m=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(n,o,p)=>{let q={ttft:p?p-e:Date.now()-e,total:Date.now()-e};(0,i.ox)((0,h.$R)({provider:a,model:b,connectionId:c,latency:q,tokens:o||{prompt_tokens:0,completion_tokens:0},request:(0,h.Fo)(f,g),providerRequest:j||k||null,providerResponse:n.content||"[Empty streaming response]",response:{content:n.content||"[Empty streaming response]",thinking:n.thinking||null,type:"streaming"},status:"success"},{id:m})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),(0,h.qr)({provider:a,model:b,tokens:o,connectionId:c,apiKey:d,endpoint:l?.endpoint,label:"STREAM USAGE"})},streamDetailId:m}}},27349:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(57647),e=c(4841),f=c(14170),g=c(41004),h=c(71857);function i(a,b,c="",e=!1){if(!c.includes("claude-cli")||!a.messages?.length)return null;let f=a.messages,h=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",j=!1,m=!1,n=f[f.length-1];if(n?.role==="assistant"&&n.content?.[0]?.text==="{"&&(j=!0),j||"Warmup"===h(f[0]?.content)&&(j=!0),j||1!==f.length||f[0]?.role!=="user"||"count"===h(f[0]?.content)&&(j=!0),!j&&g.C8?.length){let a=f.filter(a=>"user"===a.role).map(a=>h(a.content)).join(" ");g.C8.some(b=>a.includes(b))&&(j=!0)}if(!j&&e){let b=f.find(a=>"system"===a.role),c=h(b?.content),d=Array.isArray(a.system)?a.system.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"string"==typeof a.system?a.system:"";(c||d).includes("isNewTopic")&&(j=!0,m=!0)}if(!j)return null;let o=(0,d.Tz)(a),p=!1!==a.stream;if(m){let a=f.find(a=>"user"===a.role),c=JSON.stringify({isNewTopic:!0,title:h(a?.content).trim().split(/\s+/).slice(0,3).join(" ")});return p?l(o,b,c):k(o,b,c)}return p?l(o,b):k(o,b)}function j(a,b="CLI Command Execution: Clear Terminal"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function k(a,b,c){let d=j(b,c);if(a===f.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(d),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let g=(0,e.Ws)(a);g.model=b;let h=m(d),i=[];for(let b of h){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);c?.length>0&&i.push(...c)}let k=(0,e.Y8)(f.h.OPENAI,a,null,g);return k?.length>0&&i.push(...k),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return j("unknown");let c=a[a.length-1];if(b===f.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}function l(a,b,c){let d=j(b,c),g=(0,e.Ws)(a);g.model=b;let i=m(d),k=[];for(let b of i){let c=(0,e.Y8)(f.h.OPENAI,a,b,g);if(c?.length>0)for(let b of c)k.push((0,h.v8)(b,a))}let l=(0,e.Y8)(f.h.OPENAI,a,null,g);if(l?.length>0)for(let b of l)k.push((0,h.v8)(b,a));return k.push("data: [DONE]\n\n"),{success:!0,response:new Response(k.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}}function m(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(41004);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="",e=null;try{let b=await a.text();try{let a=JSON.parse(b);c=a.error?.message||a.message||a.error||b}catch{c=b}}catch{c=`Upstream error: ${a.status}`}let g=("string"==typeof c?c:JSON.stringify(c))||d.O[a.status]||`Upstream error: ${a.status}`;return"antigravity"===b&&429===a.status&&(e=function(a){if("string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=60*parseInt(b[1])*6e4),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}(g)),{statusCode:a.status,message:g,retryAfterMs:e}}function g(a,b,c=null){let d={success:!1,status:a,error:b,response:e(a,b)};return c&&(d.retryAfterMs=c),d}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error";return`[${e}]: ${f}`}},48895:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$B:()=>e.$B,SB:()=>g.SB}),c(39609),c(35024),c(75924),c(41004),c(57247),c(14170),c(4841),c(57647),c(40669),c(12557);var e=c(8590),f=c(92500),g=c(55330);c(43659),c(71857);var h=a([f,g]);[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},59657:(a,b,c)=>{function d({onDisconnect:a,onError:b,log:c,provider:e,model:f}={}){let g=new AbortController,h=Date.now(),i=!1,j=null,k=a=>{let b=Date.now()-h,c=e?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${c} | ${f||"unknown"} | ${b}ms | ${a}`)};return{signal:g.signal,startTime:h,isConnected:()=>!i,handleDisconnect:(b="client_closed")=>{i||(i=!0,k(`disconnect: ${b}`),j=setTimeout(()=>{g.abort()},500),a?.({reason:b,duration:Date.now()-h}))},handleComplete:()=>{!i&&(i=!0,k("complete"),j&&(clearTimeout(j),j=null))},handleError:a=>{if(!i){if(i=!0,j&&(clearTimeout(j),j=null),"AbortError"===a.name)return void k("aborted");k(`error: ${a.message}`),b?.(a)}},abort:()=>g.abort()}}function e(a,b,c){var d;let e,f;return d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}},e=d.readable.getReader(),f=d.writable.getWriter(),new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},71336:(a,b,c)=>{c.d(b,{q7:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{f.existsSync(h)||f.mkdirSync(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=c.replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return f.mkdirSync(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(f&&a)try{let d=g.join(a,b);f.writeFileSync(d,JSON.stringify(c,null,2))}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}function l(a){return a?{...a}:{}}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(f&&d)try{let b=g.join(d,"5_res_provider.txt");f.appendFileSync(b,a)}catch(a){}},appendOpenAIChunk(a){if(f&&d)try{let b=g.join(d,"6_res_openai.txt");f.appendFileSync(b,a)}catch(a){}},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(f&&d)try{let b=g.join(d,"7_res_client.txt");f.appendFileSync(b,a)}catch(a){}},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},71857:(a,b,c)=>{c.d(b,{i5:()=>n,l2:()=>o,lm:()=>g.lm,v8:()=>h.v8});var d=c(4841),e=c(14170),f=c(47370),g=c(73483),h=c(9024);let i=new TextDecoder,j=new TextEncoder,k="translate",l="passthrough";function m(a={}){let{mode:b=k,targetFormat:c,sourceFormat:n,provider:o=null,reqLogger:p=null,toolNameMap:q=null,model:r=null,connectionId:s=null,body:t=null,onStreamComplete:u=null,apiKey:v=null}=a,w="",x=null,y=b===k?{...(0,d.Ws)(n),provider:o,toolNameMap:q,model:r}:null,z=0,A="",B="",C=null;return new TransformStream({transform(a,f){C||(C=Date.now());let k=i.decode(a,{stream:!0});w+=k,p?.appendProviderChunk?.(k);let m=w.split("\n");for(let a of(w=m.pop()||"",m)){let i=a.trim();if(b===l){let b,c=!1;if(i.startsWith("data:")&&"[DONE]"!==i.slice(5).trim())try{let a=JSON.parse(i.slice(5).trim()),d=(0,h.A4)(a),f=!1;if(void 0!==a.choices&&(a.object||(a.object="chat.completion.chunk",f=!0),a.created||(a.created=Math.floor(Date.now()/1e3),f=!0)),void 0!==a.prompt_filter_results&&(delete a.prompt_filter_results,f=!0),a?.choices)for(let b of a.choices)void 0!==b.content_filter_results&&(delete b.content_filter_results,f=!0);if(!(0,h.c2)(a,e.h.OPENAI))continue;let j=a.choices?.[0]?.delta,k=j?.content,l=j?.reasoning_content;k&&"string"==typeof k&&(z+=k.length,A+=k),l&&"string"==typeof l&&(z+=l.length,B+=l);let m=(0,g.f5)(a);m&&(x=m);let n=a.choices?.[0]?.finish_reason;if(n&&!(0,g.Gh)(a.usage)){let d=(0,g.OF)(t,z,e.h.OPENAI);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
2
2
  `,x=d,c=!0}else if(n&&x){let d=(0,g.O9)(x);a.usage=(0,g.WL)(d,e.h.OPENAI),b=`data: ${JSON.stringify(a)}
3
3
  `,c=!0}else(d||f)&&(b=`data: ${JSON.stringify(a)}
4
- `,c=!0)}catch{}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),p?.appendConvertedChunk?.(b),f.enqueue(j.encode(b));continue}if(!i)continue;let k=(0,h.tV)(i,c);if(!k)continue;if(k&&k.done){let a="data: [DONE]\n\n";p?.appendConvertedChunk?.(a),f.enqueue(j.encode(a));continue}if(k.delta?.text&&(z+=k.delta.text.length,A+=k.delta.text),k.delta?.thinking&&(z+=k.delta.thinking.length,B+=k.delta.thinking),k.choices?.[0]?.delta?.content&&(z+=k.choices[0].delta.content.length,A+=k.choices[0].delta.content),k.choices?.[0]?.delta?.reasoning_content&&(z+=k.choices[0].delta.reasoning_content.length,B+=k.choices[0].delta.reasoning_content),k.candidates?.[0]?.content?.parts)for(let a of k.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(z+=a.text.length,!0===a.thought?B+=a.text:A+=a.text);let m=(0,g.f5)(k);m&&(y.usage=m);let o=(0,d.Y8)(c,n,k,y);if(o?._openaiIntermediate)for(let a of o._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);p?.appendOpenAIChunk?.(b)}if(o?.length>0)for(let a of o){if(!(0,h.c2)(a,n))continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(y.finishReason&&b&&!(0,g.Gh)(a.usage)&&z>0){let b=(0,g.OF)(t,z,n);a.usage=(0,g.WL)(b,n),y.usage=b}else if(y.finishReason&&b&&y.usage){let b=(0,g.O9)(y.usage);a.usage=(0,g.WL)(b,n)}let c=(0,h.v8)(a,n);p?.appendConvertedChunk?.(c),f.enqueue(j.encode(c))}}},flush(a){(0,f.uw)(r,o,s,!1);try{let k=i.decode();if(k&&(w+=k),b===l){if(w){let b=w;w.startsWith("data:")&&!w.startsWith("data: ")&&(b="data: "+w.slice(5)),p?.appendConvertedChunk?.(b),a.enqueue(j.encode(b))}!(0,g.Gh)(x)&&z>0&&(x=(0,g.OF)(t,z,e.h.OPENAI)),(0,g.Gh)(x)?(0,g.IF)(o,x,r,s,v):(0,f.E5)({model:r,provider:o,connectionId:s,tokens:null,status:"200 OK"}).catch(()=>{});let b="data: [DONE]\n\n";p?.appendConvertedChunk?.(b),a.enqueue(j.encode(b)),u&&u({content:A,thinking:B},x,C);return}if(w.trim()){let b=(0,h.tV)(w.trim());if(b&&!b.done){let f=(0,d.Y8)(c,n,b,y);if(f?._openaiIntermediate)for(let a of f._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);p?.appendOpenAIChunk?.(b)}if(f?.length>0)for(let b of f){let c=(0,h.v8)(b,n);p?.appendConvertedChunk?.(c),a.enqueue(j.encode(c))}}}let m=(0,d.Y8)(c,n,null,y);if(m?._openaiIntermediate)for(let a of m._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);p?.appendOpenAIChunk?.(b)}if(m?.length>0)for(let b of m){let c=(0,h.v8)(b,n);p?.appendConvertedChunk?.(c),a.enqueue(j.encode(c))}let q="data: [DONE]\n\n";p?.appendConvertedChunk?.(q),a.enqueue(j.encode(q)),!(0,g.Gh)(y?.usage)&&z>0&&(y.usage=(0,g.OF)(t,z,n)),(0,g.Gh)(y?.usage)?(0,g.IF)(y.provider||c,y.usage,r,s,v):(0,f.E5)({model:r,provider:o,connectionId:s,tokens:null,status:"200 OK"}).catch(()=>{}),u&&u({content:A,thinking:B},y?.usage,C)}catch(a){console.log("Error in flush:",a)}}})}function n(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null){return m({mode:k,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j})}function o(a=null,b=null,c=null,d=null,e=null,f=null,g=null){return m({mode:l,provider:a,reqLogger:b,model:c,connectionId:d,body:e,onStreamComplete:f,apiKey:g})}},81626:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}"response.created"===f?(b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created):"response.output_item.done"===f?b.items.set(c.output_index??0,c.item):"response.completed"===f?(b.status="completed",c.response?.usage&&(b.usage.input_tokens=c.response.usage.input_tokens||0,b.usage.output_tokens=c.response.usage.output_tokens||0,b.usage.total_tokens=c.response.usage.total_tokens||0)):"response.failed"===f&&(b.status="failed")}}c.d(b,{I:()=>m,F:()=>l});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=a.getReader(),c=new TextDecoder,f="",g={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};try{for(;;){let{done:a,value:e}=await b.read();if(a)break;let h=(f+=c.decode(e,{stream:!0})).split("\n\n");for(let a of(f=h.pop()||"",h))d(a,g)}f.trim()&&d(f,g)}finally{b.releaseLock()}let h=[],i=g.items.size>0?Math.max(...g.items.keys()):-1;for(let a=0;a<=i;a++)h.push(g.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:g.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:g.created,status:g.status||"completed",output:h,usage:g.usage}}var g=c(43659),h=c(2255),i=c(14170),j=c(86171),k=c(47370);function l(a,b){let c=[];for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{c.push(JSON.parse(d))}catch{}}if(0===c.length)return null;let d=c[0],e=[],f=[],g="stop",h=null;for(let a of c){let b=a?.choices?.[0],c=b?.delta||{};"string"==typeof c.content&&c.content.length>0&&e.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&f.push(c.reasoning_content),b?.finish_reason&&(g=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(h=a.usage)}let i={role:"assistant",content:e.join("")};f.length>0&&(i.reasoning_content=f.join(""));let j={id:d.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:d.created||Math.floor(Date.now()/1e3),model:d.model||b||"unknown",choices:[{index:0,message:i,finish_reason:g}]};return h&&(j.usage=h),j}async function m({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:m,translatedBody:n,finalBody:o,requestStartTime:p,connectionId:q,apiKey:r,clientRawRequest:s,onRequestSuccess:t,trackDone:u,appendLog:v}){let w=a.headers.get("content-type")||"";if(!(w.includes("text/event-stream")||""===w&&"codex"===c))return null;u();let x={provider:c,model:d,connectionId:q,request:(0,j.Fo)(e,m),providerRequest:o||n||null};if("codex"===c||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);t&&await t();let h=g.usage||{};v({tokens:h,status:"200 OK"}),(0,j.qr)({provider:c,model:d,tokens:h,connectionId:q,apiKey:r,endpoint:s?.endpoint});let l=g.output?.find(a=>"message"===a.type),m=l?.content?.find(a=>"output_text"===a.type)?.text||l?.content?.[0]?.text||null,n=Date.now()-p;if((0,k.ox)((0,j.$R)({...x,latency:{ttft:n,total:n},tokens:{prompt_tokens:h.input_tokens||0,completion_tokens:h.output_tokens||0},response:{content:m,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:s?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let o=h.input_tokens||0,u=h.output_tokens||0;return e=b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI?{response:{candidates:[{content:{role:"model",parts:[{text:m||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:o,candidatesTokenCount:u,totalTokenCount:o+u},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}}:{id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:{role:"assistant",content:m||""},finish_reason:"completed"===g.status?"stop":g.status||"stop"}],usage:{prompt_tokens:o,completion_tokens:u,total_tokens:o+u}},{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let b=await a.text(),e=l(b,d);if(!e)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t&&await t();let f=e.usage||{};v({tokens:f,status:"200 OK"}),(0,j.qr)({provider:c,model:d,tokens:f,connectionId:q,apiKey:r,endpoint:s?.endpoint});let i=Date.now()-p;return(0,k.ox)((0,j.$R)({...x,latency:{ttft:i,total:i},tokens:f,response:{content:e.choices?.[0]?.message?.content||null,thinking:e.choices?.[0]?.message?.reasoning_content||null,finish_reason:e.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:s?.endpoint||null})).catch(()=>{}),{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},86171:(a,b,c)=>{c.d(b,{$R:()=>i,Fo:()=>g,MK:()=>h,qr:()=>j});var d=c(47370),e=c(71857);let f=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function g(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of f)void 0!==a[b]&&(c[b]=a[b]);return c}function h(a){return a&&"object"==typeof a?a.usage?.input_tokens!==void 0?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null:null}function i(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},status:a.status||"success",...b}}function j({provider:a,model:b,tokens:c,connectionId:f,apiKey:g,endpoint:h,label:i="USAGE"}){if(!c||"object"!=typeof c)return;let j=c.input_tokens??c.prompt_tokens??0,k=c.output_tokens??c.completion_tokens??0;if(0===j&&0===k)return;let l=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),m=f?` | account=${f.slice(0,8)}...`:"";console.log(`${e.lm.green}[${l}] 📊 [${i}] ${a.toUpperCase()} | in=${j} | out=${k}${m}${e.lm.reset}`);let n={prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:n,timestamp:new Date().toISOString(),connectionId:f||void 0,apiKey:g||void 0,endpoint:h||null}).catch(()=>{})}},92500:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>w});var e=c(57647),f=c(4841),g=c(14170),h=c(71857),i=c(59657),j=c(8590),k=c(71336),l=c(57247),m=c(43659),n=c(2255),o=c(27349),p=c(47370),q=c(55330),r=c(86171),s=c(81626),t=c(5016),u=c(20623),v=a([q]);async function w({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:v,onRequestSuccess:w,onDisconnect:x,clientRawRequest:y,connectionId:z,userAgent:A,apiKey:B,sourceFormatOverride:C}){let D,E,F,G,{provider:H,model:I}=b,J=Date.now(),K=C||(0,e.Tz)(a),L=(0,o.c)(a,I,A);if(L)return L;let M=l.Xg[H]||H,N=(0,l.ux)(M,I)||(0,e.jJ)(H),O=!0===a.stream||K===g.h.ANTIGRAVITY||K===g.h.GEMINI||K===g.h.GEMINI_CLI,P="openai"===H||"codex"===H,Q=!!P||!1!==a.stream,R=await (0,k.q7)(K,N,I);y&&R.logClientRawRequest(y.endpoint,y.body,y.headers),R.logRawRequest(a),d?.debug?.("FORMAT",`${K} → ${N} | stream=${Q}`);let S=(0,f.GH)(K,N,I,a,Q,c,H,R),T=S._toolNameMap;delete S._toolNameMap,S.model=I;let U=(0,q.SB)(H);(0,p.uw)(I,H,z,!0),(0,p.E5)({model:I,provider:H,connectionId:z,status:"PENDING"}).catch(()=>{});let V=S.messages?.length||S.input?.length||S.contents?.length||S.request?.contents?.length||0;d?.debug?.("REQUEST",`${H.toUpperCase()} | ${I} | ${V} msgs`);let W=(0,i.jd)({onDisconnect:a=>{(0,p.uw)(I,H,z,!1),x&&x(a)},onError:()=>(0,p.uw)(I,H,z,!1),log:d,provider:H,model:I}),X={connectionProxyEnabled:c?.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:c?.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:c?.providerSpecificData?.connectionNoProxy||""};if(X.connectionProxyEnabled&&X.connectionProxyUrl){let a=X.connectionProxyUrl;try{let b=new URL(X.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${H.toUpperCase()} | ${I} | conn=${e} | pool=${b} | url=${a}`)}if(X.connectionProxyEnabled&&X.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${H.toUpperCase()} | ${I} | conn=${a} | no_proxy=${X.connectionNoProxy}`)}try{let a=await U.execute({model:I,body:S,stream:Q,credentials:c,signal:W.signal,log:d,proxyOptions:X});D=a.response,E=a.url,F=a.headers,G=a.transformedBody,R.logTargetRequest(E,F,G)}catch(c){if((0,p.uw)(I,H,z,!1,!0),(0,p.E5)({model:I,provider:H,connectionId:z,status:`FAILED ${"AbortError"===c.name?499:n.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.ox)((0,r.$R)({provider:H,model:I,connectionId:z,latency:{ttft:0,total:Date.now()-J},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,r.Fo)(a,Q),providerRequest:S||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},status:"error"})).catch(()=>{}),"AbortError"===c.name)return W.handleError(c),(0,m.A1)(499,"Request aborted");let b=(0,m.lR)(c,H,I,n.gx.BAD_GATEWAY);return console.log(`${h.lm.red}[ERROR] ${b}${h.lm.reset}`),(0,m.A1)(n.gx.BAD_GATEWAY,b)}if(D.status===n.gx.UNAUTHORIZED||D.status===n.gx.FORBIDDEN){let a=await (0,j.qZ)(()=>U.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){d?.info?.("TOKEN",`${H.toUpperCase()} | refreshed`),Object.assign(c,a),v&&await v(a);try{let a=await U.execute({model:I,body:S,stream:Q,credentials:c,signal:W.signal,log:d,proxyOptions:X});a.response.ok&&(D=a.response,E=a.url)}catch{d?.warn?.("TOKEN",`${H.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${H.toUpperCase()} | refresh failed`)}if(!D.ok){(0,p.uw)(I,H,z,!1,!0);let{statusCode:b,message:c,retryAfterMs:e}=await (0,m.zL)(D,H);(0,p.E5)({model:I,provider:H,connectionId:z,status:`FAILED ${b}`}).catch(()=>{}),(0,p.ox)((0,r.$R)({provider:H,model:I,connectionId:z,latency:{ttft:0,total:Date.now()-J},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,r.Fo)(a,Q),providerRequest:G||S||null,response:{error:c,status:b,thinking:null},status:"error"})).catch(()=>{});let f=(0,m.lR)(Error(c),H,I,b);return console.log(`${h.lm.red}[ERROR] ${f}${h.lm.reset}`),e&&"antigravity"===H&&d?.debug?.("RETRY",`Antigravity quota reset in ${Math.ceil(e/1e3)}s`),R.logError(Error(c),G||S),(0,m.A1)(b,f,e)}let Y={provider:H,model:I,body:a,stream:Q,translatedBody:S,finalBody:G,requestStartTime:J,connectionId:z,apiKey:B,clientRawRequest:y,onRequestSuccess:w},Z=a=>(0,p.E5)({model:I,provider:H,connectionId:z,...a}).catch(()=>{}),$=()=>(0,p.uw)(I,H,z,!1);if(!O&&P){let a=await (0,s.I)({...Y,providerResponse:D,sourceFormat:K,trackDone:$,appendLog:Z});if(a)return a}if(!Q)return(0,t.N)({...Y,providerResponse:D,sourceFormat:K,targetFormat:N,reqLogger:R,trackDone:$,appendLog:Z});let{onStreamComplete:_}=(0,u.$)({...Y});return(0,u.M)({...Y,providerResponse:D,sourceFormat:K,targetFormat:N,userAgent:A,reqLogger:R,toolNameMap:T,streamController:W,onStreamComplete:_})}q=(v.then?(await v)():v)[0],d()}catch(a){d(a)}})}};
4
+ `,c=!0)}catch{}c||(b=a.startsWith("data:")&&!a.startsWith("data: ")?"data: "+a.slice(5)+"\n":a+"\n"),p?.appendConvertedChunk?.(b),f.enqueue(j.encode(b));continue}if(!i)continue;let k=(0,h.tV)(i,c);if(!k)continue;if(k&&k.done&&c!==e.h.OLLAMA){let a="data: [DONE]\n\n";p?.appendConvertedChunk?.(a),f.enqueue(j.encode(a));continue}if(k.delta?.text&&(z+=k.delta.text.length,A+=k.delta.text),k.delta?.thinking&&(z+=k.delta.thinking.length,B+=k.delta.thinking),k.choices?.[0]?.delta?.content&&(z+=k.choices[0].delta.content.length,A+=k.choices[0].delta.content),k.choices?.[0]?.delta?.reasoning_content&&(z+=k.choices[0].delta.reasoning_content.length,B+=k.choices[0].delta.reasoning_content),k.candidates?.[0]?.content?.parts)for(let a of k.candidates[0].content.parts)a.text&&"string"==typeof a.text&&(z+=a.text.length,!0===a.thought?B+=a.text:A+=a.text);let m=(0,g.f5)(k);m&&(y.usage=m);let o=(0,d.Y8)(c,n,k,y);if(o?._openaiIntermediate)for(let a of o._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);p?.appendOpenAIChunk?.(b)}if(o?.length>0)for(let a of o){if(!(0,h.c2)(a,n))continue;let b="message_delta"===a.type||a.choices?.[0]?.finish_reason;if(y.finishReason&&b&&!(0,g.Gh)(a.usage)&&z>0){let b=(0,g.OF)(t,z,n);a.usage=(0,g.WL)(b,n),y.usage=b}else if(y.finishReason&&b&&y.usage){let b=(0,g.O9)(y.usage);a.usage=(0,g.WL)(b,n)}let c=(0,h.v8)(a,n);p?.appendConvertedChunk?.(c),f.enqueue(j.encode(c))}}},flush(a){(0,f.uw)(r,o,s,!1);try{let k=i.decode();if(k&&(w+=k),b===l){if(w){let b=w;w.startsWith("data:")&&!w.startsWith("data: ")&&(b="data: "+w.slice(5)),p?.appendConvertedChunk?.(b),a.enqueue(j.encode(b))}!(0,g.Gh)(x)&&z>0&&(x=(0,g.OF)(t,z,e.h.OPENAI)),(0,g.Gh)(x)?(0,g.IF)(o,x,r,s,v):(0,f.E5)({model:r,provider:o,connectionId:s,tokens:null,status:"200 OK"}).catch(()=>{});let b="data: [DONE]\n\n";p?.appendConvertedChunk?.(b),a.enqueue(j.encode(b)),u&&u({content:A,thinking:B},x,C);return}if(w.trim()){let b=(0,h.tV)(w.trim());if(b&&!b.done){let f=(0,d.Y8)(c,n,b,y);if(f?._openaiIntermediate)for(let a of f._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);p?.appendOpenAIChunk?.(b)}if(f?.length>0)for(let b of f){let c=(0,h.v8)(b,n);p?.appendConvertedChunk?.(c),a.enqueue(j.encode(c))}}}let m=(0,d.Y8)(c,n,null,y);if(m?._openaiIntermediate)for(let a of m._openaiIntermediate){let b=(0,h.v8)(a,e.h.OPENAI);p?.appendOpenAIChunk?.(b)}if(m?.length>0)for(let b of m){let c=(0,h.v8)(b,n);p?.appendConvertedChunk?.(c),a.enqueue(j.encode(c))}let q="data: [DONE]\n\n";p?.appendConvertedChunk?.(q),a.enqueue(j.encode(q)),!(0,g.Gh)(y?.usage)&&z>0&&(y.usage=(0,g.OF)(t,z,n)),(0,g.Gh)(y?.usage)?(0,g.IF)(y.provider||c,y.usage,r,s,v):(0,f.E5)({model:r,provider:o,connectionId:s,tokens:null,status:"200 OK"}).catch(()=>{}),u&&u({content:A,thinking:B},y?.usage,C)}catch(a){console.log("Error in flush:",a)}}})}function n(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null){return m({mode:k,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,body:h,onStreamComplete:i,apiKey:j})}function o(a=null,b=null,c=null,d=null,e=null,f=null,g=null){return m({mode:l,provider:a,reqLogger:b,model:c,connectionId:d,body:e,onStreamComplete:f,apiKey:g})}},81626:(a,b,c)=>{function d(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!d||!e)return;let f=d[1].trim(),g=e[1].trim();if("[DONE]"!==g){try{c=JSON.parse(g)}catch{return}"response.created"===f?(b.responseId=c.response?.id||b.responseId,b.created=c.response?.created_at||b.created):"response.output_item.done"===f?b.items.set(c.output_index??0,c.item):"response.completed"===f?(b.status="completed",c.response?.usage&&(b.usage.input_tokens=c.response.usage.input_tokens||0,b.usage.output_tokens=c.response.usage.output_tokens||0,b.usage.total_tokens=c.response.usage.total_tokens||0)):"response.failed"===f&&(b.status="failed")}}c.d(b,{I:()=>m,F:()=>l});let e={input_tokens:0,output_tokens:0,total_tokens:0};async function f(a){if(!a||"function"!=typeof a.getReader)return{id:`resp_${Date.now()}`,object:"response",created_at:Math.floor(Date.now()/1e3),status:"failed",output:[],usage:{...e}};let b=a.getReader(),c=new TextDecoder,f="",g={responseId:"",created:Math.floor(Date.now()/1e3),status:"in_progress",usage:{...e},items:new Map};try{for(;;){let{done:a,value:e}=await b.read();if(a)break;let h=(f+=c.decode(e,{stream:!0})).split("\n\n");for(let a of(f=h.pop()||"",h))d(a,g)}f.trim()&&d(f,g)}finally{b.releaseLock()}let h=[],i=g.items.size>0?Math.max(...g.items.keys()):-1;for(let a=0;a<=i;a++)h.push(g.items.get(a)||{type:"message",content:[],role:"assistant"});return{id:g.responseId||`resp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,object:"response",created_at:g.created,status:g.status||"completed",output:h,usage:g.usage}}var g=c(43659),h=c(41004),i=c(14170),j=c(86171),k=c(47370);function l(a,b){let c=[];for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let d=a.slice(5).trim();if(d&&"[DONE]"!==d)try{c.push(JSON.parse(d))}catch{}}if(0===c.length)return null;let d=c[0],e=[],f=[],g="stop",h=null;for(let a of c){let b=a?.choices?.[0],c=b?.delta||{};"string"==typeof c.content&&c.content.length>0&&e.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&f.push(c.reasoning_content),b?.finish_reason&&(g=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(h=a.usage)}let i={role:"assistant",content:e.join("")};f.length>0&&(i.reasoning_content=f.join(""));let j={id:d.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:d.created||Math.floor(Date.now()/1e3),model:d.model||b||"unknown",choices:[{index:0,message:i,finish_reason:g}]};return h&&(j.usage=h),j}async function m({providerResponse:a,sourceFormat:b,provider:c,model:d,body:e,stream:m,translatedBody:n,finalBody:o,requestStartTime:p,connectionId:q,apiKey:r,clientRawRequest:s,onRequestSuccess:t,trackDone:u,appendLog:v}){let w=a.headers.get("content-type")||"";if(!(w.includes("text/event-stream")||""===w&&"codex"===c))return null;u();let x={provider:c,model:d,connectionId:q,request:(0,j.Fo)(e,m),providerRequest:o||n||null};if("codex"===c||b===i.h.OPENAI_RESPONSES)try{let e,g=await f(a.body);t&&await t();let h=g.usage||{};v({tokens:h,status:"200 OK"}),(0,j.qr)({provider:c,model:d,tokens:h,connectionId:q,apiKey:r,endpoint:s?.endpoint});let l=g.output?.find(a=>"message"===a.type),m=l?.content?.find(a=>"output_text"===a.type)?.text||l?.content?.[0]?.text||null,n=Date.now()-p;if((0,k.ox)((0,j.$R)({...x,latency:{ttft:n,total:n},tokens:{prompt_tokens:h.input_tokens||0,completion_tokens:h.output_tokens||0},response:{content:m,thinking:null,finish_reason:g.status||"unknown"},status:"success"},{endpoint:s?.endpoint||null})).catch(()=>{}),b===i.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(g),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let o=h.input_tokens||0,u=h.output_tokens||0;return e=b===i.h.ANTIGRAVITY||b===i.h.GEMINI||b===i.h.GEMINI_CLI?{response:{candidates:[{content:{role:"model",parts:[{text:m||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:o,candidatesTokenCount:u,totalTokenCount:o+u},modelVersion:d,responseId:g.id||`resp_${Date.now()}`}}:{id:g.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:g.created_at||Math.floor(Date.now()/1e3),model:g.model||d,choices:[{index:0,message:{role:"assistant",content:m||""},finish_reason:"completed"===g.status?"stop":g.status||"stop"}],usage:{prompt_tokens:o,completion_tokens:u,total_tokens:o+u}},{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let b=await a.text(),e=l(b,d);if(!e)return(0,g.A1)(h.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t&&await t();let f=e.usage||{};v({tokens:f,status:"200 OK"}),(0,j.qr)({provider:c,model:d,tokens:f,connectionId:q,apiKey:r,endpoint:s?.endpoint});let i=Date.now()-p;return(0,k.ox)((0,j.$R)({...x,latency:{ttft:i,total:i},tokens:f,response:{content:e.choices?.[0]?.message?.content||null,thinking:e.choices?.[0]?.message?.reasoning_content||null,finish_reason:e.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:s?.endpoint||null})).catch(()=>{}),{success:!0,response:new Response(JSON.stringify(e),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,g.A1)(h.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}},86171:(a,b,c)=>{c.d(b,{$R:()=>i,Fo:()=>g,MK:()=>h,qr:()=>j});var d=c(47370),e=c(71857);let f=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function g(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of f)void 0!==a[b]&&(c[b]=a[b]);return c}function h(a){return a&&"object"==typeof a?a.usage?.input_tokens!==void 0?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usage?.prompt_tokens!==void 0?{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens}:a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null:null}function i(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},status:a.status||"success",...b}}function j({provider:a,model:b,tokens:c,connectionId:f,apiKey:g,endpoint:h,label:i="USAGE"}){if(!c||"object"!=typeof c)return;let j=c.input_tokens??c.prompt_tokens??0,k=c.output_tokens??c.completion_tokens??0;if(0===j&&0===k)return;let l=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),m=f?` | account=${f.slice(0,8)}...`:"";console.log(`${e.lm.green}[${l}] 📊 [${i}] ${a.toUpperCase()} | in=${j} | out=${k}${m}${e.lm.reset}`);let n={prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};(0,d.sZ)({provider:a||"unknown",model:b||"unknown",tokens:n,timestamp:new Date().toISOString(),connectionId:f||void 0,apiKey:g||void 0,endpoint:h||null}).catch(()=>{})}},92500:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>w});var e=c(57647),f=c(4841),g=c(14170),h=c(71857),i=c(59657),j=c(8590),k=c(71336),l=c(57247),m=c(43659),n=c(41004),o=c(27349),p=c(47370),q=c(55330),r=c(86171),s=c(81626),t=c(5016),u=c(20623),v=a([q]);async function w({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:v,onRequestSuccess:w,onDisconnect:x,clientRawRequest:y,connectionId:z,userAgent:A,apiKey:B,ccFilterNaming:C,sourceFormatOverride:D}){let E,F,G,H,{provider:I,model:J}=b,K=Date.now(),L=D||(0,e.Tz)(a),M=(0,o.c)(a,J,A,C);if(M)return M;let N=l.Xg[I]||I,O=(0,l.ux)(N,J)||(0,e.jJ)(I),P=!0===a.stream||L===g.h.ANTIGRAVITY||L===g.h.GEMINI||L===g.h.GEMINI_CLI,Q="openai"===I||"codex"===I,R=!!Q||!1!==a.stream,S=y?.headers?.accept||"",T=S.includes("application/json"),U=S.includes("text/event-stream");T&&!U&&!0!==a.stream&&(R=!1);let V=await (0,k.q7)(L,O,J);y&&V.logClientRawRequest(y.endpoint,y.body,y.headers),V.logRawRequest(a),d?.debug?.("FORMAT",`${L} → ${O} | stream=${R}`);let W=(0,f.GH)(L,O,J,a,R,c,I,V),X=W._toolNameMap;delete W._toolNameMap,W.model=J;let Y=(0,q.SB)(I);(0,p.uw)(J,I,z,!0),(0,p.E5)({model:J,provider:I,connectionId:z,status:"PENDING"}).catch(()=>{});let Z=W.messages?.length||W.input?.length||W.contents?.length||W.request?.contents?.length||0;d?.debug?.("REQUEST",`${I.toUpperCase()} | ${J} | ${Z} msgs`);let $=(0,i.jd)({onDisconnect:a=>{(0,p.uw)(J,I,z,!1),x&&x(a)},onError:()=>(0,p.uw)(J,I,z,!1),log:d,provider:I,model:J}),_={connectionProxyEnabled:c?.providerSpecificData?.connectionProxyEnabled===!0,connectionProxyUrl:c?.providerSpecificData?.connectionProxyUrl||"",connectionNoProxy:c?.providerSpecificData?.connectionNoProxy||""};if(_.connectionProxyEnabled&&_.connectionProxyUrl){let a=_.connectionProxyUrl;try{let b=new URL(_.connectionProxyUrl),c=b.hostname||"",d=b.port?`:${b.port}`:"",e=b.protocol||"http:";a=`${e}//${c}${d}`}catch{}let b=c?.providerSpecificData?.connectionProxyPoolId||"none",e=c?.connectionName||c?.connectionId||"unknown";d?.info?.("PROXY",`${I.toUpperCase()} | ${J} | conn=${e} | pool=${b} | url=${a}`)}if(_.connectionProxyEnabled&&_.connectionNoProxy){let a=c?.connectionName||c?.connectionId||"unknown";d?.debug?.("PROXY",`${I.toUpperCase()} | ${J} | conn=${a} | no_proxy=${_.connectionNoProxy}`)}try{let a=await Y.execute({model:J,body:W,stream:R,credentials:c,signal:$.signal,log:d,proxyOptions:_});E=a.response,F=a.url,G=a.headers,H=a.transformedBody,V.logTargetRequest(F,G,H)}catch(c){if((0,p.uw)(J,I,z,!1,!0),(0,p.E5)({model:J,provider:I,connectionId:z,status:`FAILED ${"AbortError"===c.name?499:n.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.ox)((0,r.$R)({provider:I,model:J,connectionId:z,latency:{ttft:0,total:Date.now()-K},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,r.Fo)(a,R),providerRequest:W||null,response:{error:c.message||String(c),status:"AbortError"===c.name?499:502,thinking:null},status:"error"})).catch(()=>{}),"AbortError"===c.name)return $.handleError(c),(0,m.A1)(499,"Request aborted");let b=(0,m.lR)(c,I,J,n.gx.BAD_GATEWAY);return console.log(`${h.lm.red}[ERROR] ${b}${h.lm.reset}`),(0,m.A1)(n.gx.BAD_GATEWAY,b)}if(E.status===n.gx.UNAUTHORIZED||E.status===n.gx.FORBIDDEN){let a=await (0,j.qZ)(()=>Y.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){d?.info?.("TOKEN",`${I.toUpperCase()} | refreshed`),Object.assign(c,a),v&&await v(a);try{let a=await Y.execute({model:J,body:W,stream:R,credentials:c,signal:$.signal,log:d,proxyOptions:_});a.response.ok&&(E=a.response,F=a.url)}catch{d?.warn?.("TOKEN",`${I.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${I.toUpperCase()} | refresh failed`)}if(!E.ok){(0,p.uw)(J,I,z,!1,!0);let{statusCode:b,message:c,retryAfterMs:e}=await (0,m.zL)(E,I);(0,p.E5)({model:J,provider:I,connectionId:z,status:`FAILED ${b}`}).catch(()=>{}),(0,p.ox)((0,r.$R)({provider:I,model:J,connectionId:z,latency:{ttft:0,total:Date.now()-K},tokens:{prompt_tokens:0,completion_tokens:0},request:(0,r.Fo)(a,R),providerRequest:H||W||null,response:{error:c,status:b,thinking:null},status:"error"})).catch(()=>{});let f=(0,m.lR)(Error(c),I,J,b);return console.log(`${h.lm.red}[ERROR] ${f}${h.lm.reset}`),e&&"antigravity"===I&&d?.debug?.("RETRY",`Antigravity quota reset in ${Math.ceil(e/1e3)}s`),V.logError(Error(c),H||W),(0,m.A1)(b,f,e)}let aa={provider:I,model:J,body:a,stream:R,translatedBody:W,finalBody:H,requestStartTime:K,connectionId:z,apiKey:B,clientRawRequest:y,onRequestSuccess:w},ab=a=>(0,p.E5)({model:J,provider:I,connectionId:z,...a}).catch(()=>{}),ac=()=>(0,p.uw)(J,I,z,!1);if(!P&&Q){let a=await (0,s.I)({...aa,providerResponse:E,sourceFormat:L,trackDone:ac,appendLog:ab});if(a)return a}if(!R)return(0,t.N)({...aa,providerResponse:E,sourceFormat:L,targetFormat:O,reqLogger:V,trackDone:ac,appendLog:ab});let{onStreamComplete:ad}=(0,u.$)({...aa});return(0,u.M)({...aa,providerResponse:E,sourceFormat:L,targetFormat:O,userAgent:A,reqLogger:V,toolNameMap:X,streamController:$,onStreamComplete:ad})}q=(v.then?(await v)():v)[0],d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=9609,exports.ids=[9609],exports.modules={39609:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>s});var d=c(2255);let e="u">typeof caches&&"object"==typeof caches,f=globalThis.fetch,g=new Map,h={},i=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","googleapis.com"],j="x-request-source",k="local",l=["8.8.8.8","8.8.4.4"];function m(a){return null==a?"":String(a).trim()}async function n(a){let b=h[a];if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:e}=await Promise.resolve().then(c.t.bind(c,28354,23)),f=new b.Resolver;f.setServers(l);let g=e(f.resolve4.bind(f)),i=await g(a);return h[a]={ip:i[0],expiry:Date.now()+d.v1.dnsCacheTtlMs},i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function o(a,b){let c=m(b);if(!c)return!1;let d=new URL(a).hostname.toLowerCase();return c.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?d.endsWith(a)||d===a.slice(1):d===a||d.endsWith(`.${a}`)))}function p(a){let b=m(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function q(a){let b=p(a);if(!b)return null;if(!g.has(b)){g.size>=d.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));g.set(b,new a({uri:b}))}return g.get(b)}async function r(a,b,d){let e=await Promise.resolve().then(c.t.bind(c,55591,23)),f=await Promise.resolve().then(c.t.bind(c,91645,23)),{Readable:g}=c(27910);return new Promise((c,h)=>{let i=new f.Socket;i.connect(443,b,()=>{let b={socket:i,servername:a.hostname,rejectUnauthorized:!1,path:a.pathname+a.search,method:d.method||"POST",headers:{...d.headers,Host:a.hostname}},f=e.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:g.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});f.on("error",h),d.body&&f.write("string"==typeof d.body?d.body:JSON.stringify(d.body)),f.end()}),i.on("error",h)})}async function s(a,b={},c=null){let d="string"==typeof a?a:a.toString();if(function(a,b){if(!b?.headers)return!1;let c=b.headers;if(c[j]!==k&&c[j.charAt(0).toUpperCase()+j.slice(1)]!==k){let b=new URL(a).hostname;return i.some(a=>b.includes(a))&&console.warn(`[ProxyFetch] MITM bypass NOT triggered for ${b} - missing header`),!1}let d=new URL(a).hostname;return i.some(a=>d.includes(a))}(d,b))try{let a=new URL(d),c=await n(a.hostname);if(c)return await r(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}let e=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=m(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=m(b?.noProxy??b?.connectionNoProxy);return d&&o(a,d)?null:p(c)}(d,c),g=e?null:p(o(d,process.env.NO_PROXY||process.env.no_proxy)?null:"https:"===new URL(d).protocol?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy),h=e||g;if(h)try{let c=await q(h);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return f(a,b)}async function t(a,b={}){return s(a,b,null)}e||globalThis.fetch===t||(globalThis.fetch=t)}};
1
+ "use strict";exports.id=9609,exports.ids=[9609],exports.modules={39609:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>s});var d=c(41004);let e="u">typeof caches&&"object"==typeof caches,f=globalThis.fetch,g=new Map,h={},i=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","googleapis.com"],j="x-request-source",k="local",l=["8.8.8.8","8.8.4.4"];function m(a){return null==a?"":String(a).trim()}async function n(a){let b=h[a];if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:e}=await Promise.resolve().then(c.t.bind(c,28354,23)),f=new b.Resolver;f.setServers(l);let g=e(f.resolve4.bind(f)),i=await g(a);return h[a]={ip:i[0],expiry:Date.now()+d.v1.dnsCacheTtlMs},i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function o(a,b){let c=m(b);if(!c)return!1;let d=new URL(a).hostname.toLowerCase();return c.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?d.endsWith(a)||d===a.slice(1):d===a||d.endsWith(`.${a}`)))}function p(a){let b=m(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function q(a){let b=p(a);if(!b)return null;if(!g.has(b)){g.size>=d.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));g.set(b,new a({uri:b}))}return g.get(b)}async function r(a,b,d){let e=await Promise.resolve().then(c.t.bind(c,55591,23)),f=await Promise.resolve().then(c.t.bind(c,91645,23)),{Readable:g}=c(27910);return new Promise((c,h)=>{let i=new f.Socket;i.connect(443,b,()=>{let b={socket:i,servername:a.hostname,rejectUnauthorized:!1,path:a.pathname+a.search,method:d.method||"POST",headers:{...d.headers,Host:a.hostname}},f=e.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:g.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});f.on("error",h),d.body&&f.write("string"==typeof d.body?d.body:JSON.stringify(d.body)),f.end()}),i.on("error",h)})}async function s(a,b={},c=null){let d="string"==typeof a?a:a.toString();if(function(a,b){if(!b?.headers)return!1;let c=b.headers;if(c[j]!==k&&c[j.charAt(0).toUpperCase()+j.slice(1)]!==k){let b=new URL(a).hostname;return i.some(a=>b.includes(a))&&console.warn(`[ProxyFetch] MITM bypass NOT triggered for ${b} - missing header`),!1}let d=new URL(a).hostname;return i.some(a=>d.includes(a))}(d,b))try{let a=new URL(d),c=await n(a.hostname);if(c)return await r(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}let e=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=m(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=m(b?.noProxy??b?.connectionNoProxy);return d&&o(a,d)?null:p(c)}(d,c),g=e?null:p(o(d,process.env.NO_PROXY||process.env.no_proxy)?null:"https:"===new URL(d).protocol?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy),h=e||g;if(h)try{let c=await q(h);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return f(a,b)}async function t(a,b={}){return s(a,b,null)}e||globalThis.fetch===t||(globalThis.fetch=t)},41004:(a,b,c)=>{c.d(b,{Bm:()=>l,C8:()=>m,EQ:()=>k,LY:()=>e,O:()=>f,Uc:()=>h,eo:()=>i,gx:()=>d,sB:()=>j,v1:()=>g});let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={[d.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[d.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[d.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[d.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[d.NOT_ACCEPTABLE]:{type:"invalid_request_error",code:"model_not_supported"},[d.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[d.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[d.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[d.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[d.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},f={[d.BAD_REQUEST]:"Bad request",[d.UNAUTHORIZED]:"Invalid API key provided",[d.FORBIDDEN]:"You exceeded your current quota",[d.NOT_FOUND]:"Model not found",[d.NOT_ACCEPTABLE]:"Model not supported",[d.RATE_LIMITED]:"Rate limit exceeded",[d.SERVER_ERROR]:"Internal server error",[d.BAD_GATEWAY]:"Bad gateway - upstream provider error",[d.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[d.GATEWAY_TIMEOUT]:"Gateway timeout"},g={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},h=64e3,i=32e3,j={maxAttempts:2,delayMs:2e3},k={base:1e3,max:12e4,maxLevel:15},l={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transient:3e4,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},m=["Please write a 5-10 word title for the following conversation:"]}};
@@ -1 +1 @@
1
- <!DOCTYPE html><!--oxskzK8Sog46giVHi8Q6m--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/d29dc22cd7e0030f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-25c43999146c934e.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-c67589461d449d62.js" async=""></script><script src="/_next/static/chunks/main-app-8803a230dfc5c361.js" async=""></script><script src="/_next/static/chunks/c6123951-59125299ca0d7b46.js" async=""></script><script src="/_next/static/chunks/5772-d1f2c78fe8fef39a.js" async=""></script><script src="/_next/static/chunks/2032-c0d8eae86681bdf6.js" async=""></script><script src="/_next/static/chunks/4495-a4d17a15c681b2cf.js" async=""></script><script src="/_next/static/chunks/5497-f9ac005d57661752.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-305ccb9e5615ce7d.js" async=""></script><script src="/_next/static/chunks/app/layout-91ee138f7009827c.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>9Router - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-25c43999146c934e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"4335\",\"static/chunks/c6123951-59125299ca0d7b46.js\",\"5772\",\"static/chunks/5772-d1f2c78fe8fef39a.js\",\"2032\",\"static/chunks/2032-c0d8eae86681bdf6.js\",\"4495\",\"static/chunks/4495-a4d17a15c681b2cf.js\",\"5497\",\"static/chunks/5497-f9ac005d57661752.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-305ccb9e5615ce7d.js\"],\"ThemeProvider\"]\n3:I[94635,[\"4495\",\"static/chunks/4495-a4d17a15c681b2cf.js\",\"7177\",\"static/chunks/app/layout-91ee138f7009827c.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/d29dc22cd7e0030f.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"oxskzK8Sog46giVHi8Q6m\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d29dc22cd7e0030f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[86869,[],\"IconMark\"]\n8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"9Router - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$Le\",\"5\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--cc9J_XDw_OEWOXEASQdi9--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/0c4f3a92a0a64981.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-25c43999146c934e.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-c67589461d449d62.js" async=""></script><script src="/_next/static/chunks/main-app-8803a230dfc5c361.js" async=""></script><script src="/_next/static/chunks/c6123951-59125299ca0d7b46.js" async=""></script><script src="/_next/static/chunks/5772-d1f2c78fe8fef39a.js" async=""></script><script src="/_next/static/chunks/619-4c970716a5102dc3.js" async=""></script><script src="/_next/static/chunks/2652-67b8cc047a3efcc9.js" async=""></script><script src="/_next/static/chunks/5497-80f3e016aa6ffe90.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-2ea88f0d24d7423a.js" async=""></script><script src="/_next/static/chunks/app/layout-3d619e2f57919f2c.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>9Router - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-25c43999146c934e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"4335\",\"static/chunks/c6123951-59125299ca0d7b46.js\",\"5772\",\"static/chunks/5772-d1f2c78fe8fef39a.js\",\"619\",\"static/chunks/619-4c970716a5102dc3.js\",\"2652\",\"static/chunks/2652-67b8cc047a3efcc9.js\",\"5497\",\"static/chunks/5497-80f3e016aa6ffe90.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-2ea88f0d24d7423a.js\"],\"ThemeProvider\"]\n3:I[94635,[\"2652\",\"static/chunks/2652-67b8cc047a3efcc9.js\",\"7177\",\"static/chunks/app/layout-3d619e2f57919f2c.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[90484,[],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[90484,[],\"ViewportBoundary\"]\nb:I[90484,[],\"MetadataBoundary\"]\nd:I[27123,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/0c4f3a92a0a64981.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"cc9J-XDw_OEWOXEASQdi9\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0c4f3a92a0a64981.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[86869,[],\"IconMark\"]\n8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"9Router - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$Le\",\"5\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--oxskzK8Sog46giVHi8Q6m--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-25c43999146c934e.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-c67589461d449d62.js" async=""></script><script src="/_next/static/chunks/main-app-8803a230dfc5c361.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-25c43999146c934e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[90484,[],\"ViewportBoundary\"]\n9:I[90484,[],\"MetadataBoundary\"]\nb:I[27123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"oxskzK8Sog46giVHi8Q6m\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--cc9J_XDw_OEWOXEASQdi9--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-25c43999146c934e.js"/><script src="/_next/static/chunks/4bd1b696-e5d7c65570c947b7.js" async=""></script><script src="/_next/static/chunks/3794-c67589461d449d62.js" async=""></script><script src="/_next/static/chunks/main-app-8803a230dfc5c361.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-25c43999146c934e.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n4:I[90484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[90484,[],\"ViewportBoundary\"]\n9:I[90484,[],\"MetadataBoundary\"]\nb:I[27123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"cc9J-XDw_OEWOXEASQdi9\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>