@amir83nasr/10router 0.1.0

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 (1837) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +169 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/export-marker.json +6 -0
  5. package/.next/images-manifest.json +68 -0
  6. package/.next/next-minimal-server.js.nft.json +1 -0
  7. package/.next/next-server.js.nft.json +1 -0
  8. package/.next/package.json +1 -0
  9. package/.next/prerender-manifest.json +633 -0
  10. package/.next/react-loadable-manifest.json +11 -0
  11. package/.next/required-server-files.json +410 -0
  12. package/.next/routes-manifest.json +1132 -0
  13. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -0
  14. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -0
  15. package/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -0
  16. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +40 -0
  17. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
  18. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -0
  20. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -0
  21. package/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -0
  22. package/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -0
  23. package/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -0
  24. package/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -0
  25. package/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -0
  26. package/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -0
  27. package/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -0
  28. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -0
  29. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -0
  30. package/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -0
  31. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js +10 -0
  32. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js.nft.json +1 -0
  33. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page_client-reference-manifest.js +1 -0
  34. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js +1 -0
  35. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js.nft.json +1 -0
  36. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page_client-reference-manifest.js +1 -0
  37. package/.next/server/app/(dashboard)/dashboard/page.js +1 -0
  38. package/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -0
  39. package/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -0
  40. package/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -0
  41. package/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -0
  42. package/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -0
  43. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +21 -0
  44. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -0
  45. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -0
  46. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -0
  47. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -0
  48. package/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -0
  49. package/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -0
  50. package/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -0
  51. package/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -0
  52. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +4 -0
  53. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -0
  54. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -0
  55. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -0
  56. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -0
  57. package/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -0
  58. package/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -0
  59. package/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -0
  60. package/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -0
  61. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js +1 -0
  62. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -0
  63. package/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -0
  64. package/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -0
  65. package/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -0
  66. package/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -0
  67. package/.next/server/app/_global-error/page.js +31 -0
  68. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  69. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  70. package/.next/server/app/_global-error.html +1 -0
  71. package/.next/server/app/_global-error.meta +27 -0
  72. package/.next/server/app/_global-error.rsc +14 -0
  73. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  74. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -0
  75. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  76. package/.next/server/app/_not-found/page.js +1 -0
  77. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  78. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  79. package/.next/server/app/_not-found.html +1 -0
  80. package/.next/server/app/_not-found.meta +27 -0
  81. package/.next/server/app/_not-found.rsc +24 -0
  82. package/.next/server/app/_not-found.segments/_full.segment.rsc +24 -0
  83. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +27 -0
  84. package/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -0
  85. package/.next/server/app/api/auth/login/route.js +3 -0
  86. package/.next/server/app/api/auth/login/route.js.nft.json +1 -0
  87. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
  88. package/.next/server/app/api/auth/logout/route.js +1 -0
  89. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -0
  90. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/auth/oidc/callback/route.js +1 -0
  92. package/.next/server/app/api/auth/oidc/callback/route.js.nft.json +1 -0
  93. package/.next/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/auth/oidc/start/route.js +1 -0
  95. package/.next/server/app/api/auth/oidc/start/route.js.nft.json +1 -0
  96. package/.next/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -0
  97. package/.next/server/app/api/auth/oidc/test/route.js +1 -0
  98. package/.next/server/app/api/auth/oidc/test/route.js.nft.json +1 -0
  99. package/.next/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -0
  100. package/.next/server/app/api/auth/reset-password/route.js +1 -0
  101. package/.next/server/app/api/auth/reset-password/route.js.nft.json +1 -0
  102. package/.next/server/app/api/auth/reset-password/route_client-reference-manifest.js +1 -0
  103. package/.next/server/app/api/auth/saml/acs/route.js +3 -0
  104. package/.next/server/app/api/auth/saml/acs/route.js.nft.json +1 -0
  105. package/.next/server/app/api/auth/saml/acs/route_client-reference-manifest.js +1 -0
  106. package/.next/server/app/api/auth/saml/metadata/route.js +3 -0
  107. package/.next/server/app/api/auth/saml/metadata/route.js.nft.json +1 -0
  108. package/.next/server/app/api/auth/saml/metadata/route_client-reference-manifest.js +1 -0
  109. package/.next/server/app/api/auth/saml/start/route.js +3 -0
  110. package/.next/server/app/api/auth/saml/start/route.js.nft.json +1 -0
  111. package/.next/server/app/api/auth/saml/start/route_client-reference-manifest.js +1 -0
  112. package/.next/server/app/api/auth/saml/test/route.js +3 -0
  113. package/.next/server/app/api/auth/saml/test/route.js.nft.json +1 -0
  114. package/.next/server/app/api/auth/saml/test/route_client-reference-manifest.js +1 -0
  115. package/.next/server/app/api/auth/status/route.js +3 -0
  116. package/.next/server/app/api/auth/status/route.js.nft.json +1 -0
  117. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -0
  118. package/.next/server/app/api/changelog/route.js +1 -0
  119. package/.next/server/app/api/changelog/route.js.nft.json +1 -0
  120. package/.next/server/app/api/changelog/route_client-reference-manifest.js +1 -0
  121. package/.next/server/app/api/cli-tools/all-statuses/route.js +1 -0
  122. package/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -0
  123. package/.next/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -0
  124. package/.next/server/app/api/cli-tools/claude-settings/route.js +2 -0
  125. package/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -0
  126. package/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -0
  127. package/.next/server/app/api/cli-tools/codex-settings/route.js +2 -0
  128. package/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -0
  129. package/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -0
  130. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -0
  131. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -0
  132. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -0
  133. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -0
  134. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -0
  135. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -0
  137. package/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -0
  138. package/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/cli-tools/dsh-settings/route.js +1 -0
  140. package/.next/server/app/api/cli-tools/dsh-settings/route.js.nft.json +1 -0
  141. package/.next/server/app/api/cli-tools/dsh-settings/route_client-reference-manifest.js +1 -0
  142. package/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -0
  143. package/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -0
  144. package/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -0
  145. package/.next/server/app/api/combos/[id]/route.js +1 -0
  146. package/.next/server/app/api/combos/[id]/route.js.nft.json +1 -0
  147. package/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/combos/route.js +1 -0
  149. package/.next/server/app/api/combos/route.js.nft.json +1 -0
  150. package/.next/server/app/api/combos/route_client-reference-manifest.js +1 -0
  151. package/.next/server/app/api/headroom/extras/route.js +1 -0
  152. package/.next/server/app/api/headroom/extras/route.js.nft.json +1 -0
  153. package/.next/server/app/api/headroom/extras/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -0
  155. package/.next/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -0
  156. package/.next/server/app/api/headroom/proxy/[...path]/route_client-reference-manifest.js +1 -0
  157. package/.next/server/app/api/headroom/restart/route.js +1 -0
  158. package/.next/server/app/api/headroom/restart/route.js.nft.json +1 -0
  159. package/.next/server/app/api/headroom/restart/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/headroom/start/route.js +1 -0
  161. package/.next/server/app/api/headroom/start/route.js.nft.json +1 -0
  162. package/.next/server/app/api/headroom/start/route_client-reference-manifest.js +1 -0
  163. package/.next/server/app/api/headroom/status/route.js +1 -0
  164. package/.next/server/app/api/headroom/status/route.js.nft.json +1 -0
  165. package/.next/server/app/api/headroom/status/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/api/headroom/stop/route.js +1 -0
  167. package/.next/server/app/api/headroom/stop/route.js.nft.json +1 -0
  168. package/.next/server/app/api/headroom/stop/route_client-reference-manifest.js +1 -0
  169. package/.next/server/app/api/health/route.js +1 -0
  170. package/.next/server/app/api/health/route.js.nft.json +1 -0
  171. package/.next/server/app/api/health/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/init/route.js +1 -0
  173. package/.next/server/app/api/init/route.js.nft.json +1 -0
  174. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/keys/[id]/route.js +1 -0
  176. package/.next/server/app/api/keys/[id]/route.js.nft.json +1 -0
  177. package/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app/api/keys/route.js +1 -0
  179. package/.next/server/app/api/keys/route.js.nft.json +1 -0
  180. package/.next/server/app/api/keys/route_client-reference-manifest.js +1 -0
  181. package/.next/server/app/api/locale/route.js +1 -0
  182. package/.next/server/app/api/locale/route.js.nft.json +1 -0
  183. package/.next/server/app/api/locale/route_client-reference-manifest.js +1 -0
  184. package/.next/server/app/api/mcp/[plugin]/message/route.js +7 -0
  185. package/.next/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -0
  186. package/.next/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -0
  187. package/.next/server/app/api/mcp/[plugin]/sse/route.js +10 -0
  188. package/.next/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -0
  189. package/.next/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -0
  190. package/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -0
  191. package/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -0
  192. package/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -0
  193. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -0
  194. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -0
  195. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -0
  196. package/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -0
  197. package/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -0
  198. package/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -0
  199. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
  200. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
  201. package/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
  202. package/.next/server/app/api/media-providers/tts/voices/route.js +1 -0
  203. package/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -0
  204. package/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -0
  205. package/.next/server/app/api/models/alias/route.js +1 -0
  206. package/.next/server/app/api/models/alias/route.js.nft.json +1 -0
  207. package/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -0
  208. package/.next/server/app/api/models/availability/route.js +1 -0
  209. package/.next/server/app/api/models/availability/route.js.nft.json +1 -0
  210. package/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -0
  211. package/.next/server/app/api/models/catalog-sync/route.js +1 -0
  212. package/.next/server/app/api/models/catalog-sync/route.js.nft.json +1 -0
  213. package/.next/server/app/api/models/catalog-sync/route_client-reference-manifest.js +1 -0
  214. package/.next/server/app/api/models/custom/route.js +1 -0
  215. package/.next/server/app/api/models/custom/route.js.nft.json +1 -0
  216. package/.next/server/app/api/models/custom/route_client-reference-manifest.js +1 -0
  217. package/.next/server/app/api/models/disabled/route.js +1 -0
  218. package/.next/server/app/api/models/disabled/route.js.nft.json +1 -0
  219. package/.next/server/app/api/models/disabled/route_client-reference-manifest.js +1 -0
  220. package/.next/server/app/api/models/route.js +1 -0
  221. package/.next/server/app/api/models/route.js.nft.json +1 -0
  222. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
  223. package/.next/server/app/api/models/test/route.js +1 -0
  224. package/.next/server/app/api/models/test/route.js.nft.json +1 -0
  225. package/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -0
  226. package/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -0
  227. package/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -0
  228. package/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -0
  229. package/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -0
  230. package/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -0
  231. package/.next/server/app/api/oauth/codex/bulk-import/route_client-reference-manifest.js +1 -0
  232. package/.next/server/app/api/oauth/codex/import-token/route.js +1 -0
  233. package/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -0
  234. package/.next/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -0
  235. package/.next/server/app/api/oauth/cursor/auto-import/route.js +4 -0
  236. package/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -0
  237. package/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -0
  238. package/.next/server/app/api/oauth/cursor/import/route.js +1 -0
  239. package/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -0
  240. package/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -0
  241. package/.next/server/app/api/oauth/gitlab/pat/route.js +1 -0
  242. package/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -0
  243. package/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -0
  244. package/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -0
  245. package/.next/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -0
  246. package/.next/server/app/api/oauth/grok-cli/bulk-import/route_client-reference-manifest.js +1 -0
  247. package/.next/server/app/api/oauth/iflow/cookie/route.js +1 -0
  248. package/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -0
  249. package/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -0
  250. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -0
  251. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -0
  252. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route_client-reference-manifest.js +1 -0
  253. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +4 -0
  254. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -0
  255. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -0
  256. package/.next/server/app/api/pricing/route.js +1 -0
  257. package/.next/server/app/api/pricing/route.js.nft.json +1 -0
  258. package/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -0
  259. package/.next/server/app/api/provider-nodes/[id]/route.js +1 -0
  260. package/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -0
  261. package/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -0
  262. package/.next/server/app/api/provider-nodes/route.js +1 -0
  263. package/.next/server/app/api/provider-nodes/route.js.nft.json +1 -0
  264. package/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -0
  265. package/.next/server/app/api/provider-nodes/validate/route.js +1 -0
  266. package/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -0
  267. package/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -0
  268. package/.next/server/app/api/providers/[id]/models/route.js +1 -0
  269. package/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -0
  270. package/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -0
  271. package/.next/server/app/api/providers/[id]/route.js +1 -0
  272. package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -0
  273. package/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -0
  274. package/.next/server/app/api/providers/[id]/test/route.js +1 -0
  275. package/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -0
  276. package/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -0
  277. package/.next/server/app/api/providers/[id]/test-models/route.js +1 -0
  278. package/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -0
  279. package/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -0
  280. package/.next/server/app/api/providers/client/route.js +1 -0
  281. package/.next/server/app/api/providers/client/route.js.nft.json +1 -0
  282. package/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -0
  283. package/.next/server/app/api/providers/kilo/free-models/route.js +1 -0
  284. package/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -0
  285. package/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -0
  286. package/.next/server/app/api/providers/route.js +1 -0
  287. package/.next/server/app/api/providers/route.js.nft.json +1 -0
  288. package/.next/server/app/api/providers/route_client-reference-manifest.js +1 -0
  289. package/.next/server/app/api/providers/suggested-models/route.js +1 -0
  290. package/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -0
  291. package/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -0
  292. package/.next/server/app/api/providers/test-batch/route.js +1 -0
  293. package/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -0
  294. package/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -0
  295. package/.next/server/app/api/providers/validate/route.js +1 -0
  296. package/.next/server/app/api/providers/validate/route.js.nft.json +1 -0
  297. package/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -0
  298. package/.next/server/app/api/proxy-pools/[id]/route.js +1 -0
  299. package/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -0
  300. package/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -0
  301. package/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -0
  302. package/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -0
  303. package/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -0
  304. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +43 -0
  305. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -0
  306. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -0
  307. package/.next/server/app/api/proxy-pools/deno-deploy/route.js +40 -0
  308. package/.next/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -0
  309. package/.next/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -0
  310. package/.next/server/app/api/proxy-pools/route.js +1 -0
  311. package/.next/server/app/api/proxy-pools/route.js.nft.json +1 -0
  312. package/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -0
  313. package/.next/server/app/api/proxy-pools/vercel-deploy/route.js +33 -0
  314. package/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -0
  315. package/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -0
  316. package/.next/server/app/api/pxpipe/health/route.js +3 -0
  317. package/.next/server/app/api/pxpipe/health/route.js.nft.json +1 -0
  318. package/.next/server/app/api/pxpipe/health/route_client-reference-manifest.js +1 -0
  319. package/.next/server/app/api/pxpipe/install/route.js +3 -0
  320. package/.next/server/app/api/pxpipe/install/route.js.nft.json +1 -0
  321. package/.next/server/app/api/pxpipe/install/route_client-reference-manifest.js +1 -0
  322. package/.next/server/app/api/pxpipe/logs/route.js +3 -0
  323. package/.next/server/app/api/pxpipe/logs/route.js.nft.json +1 -0
  324. package/.next/server/app/api/pxpipe/logs/route_client-reference-manifest.js +1 -0
  325. package/.next/server/app/api/pxpipe/restart/route.js +3 -0
  326. package/.next/server/app/api/pxpipe/restart/route.js.nft.json +1 -0
  327. package/.next/server/app/api/pxpipe/restart/route_client-reference-manifest.js +1 -0
  328. package/.next/server/app/api/pxpipe/start/route.js +3 -0
  329. package/.next/server/app/api/pxpipe/start/route.js.nft.json +1 -0
  330. package/.next/server/app/api/pxpipe/start/route_client-reference-manifest.js +1 -0
  331. package/.next/server/app/api/pxpipe/stats/route.js +3 -0
  332. package/.next/server/app/api/pxpipe/stats/route.js.nft.json +1 -0
  333. package/.next/server/app/api/pxpipe/stats/route_client-reference-manifest.js +1 -0
  334. package/.next/server/app/api/pxpipe/status/route.js +3 -0
  335. package/.next/server/app/api/pxpipe/status/route.js.nft.json +1 -0
  336. package/.next/server/app/api/pxpipe/status/route_client-reference-manifest.js +1 -0
  337. package/.next/server/app/api/pxpipe/stop/route.js +3 -0
  338. package/.next/server/app/api/pxpipe/stop/route.js.nft.json +1 -0
  339. package/.next/server/app/api/pxpipe/stop/route_client-reference-manifest.js +1 -0
  340. package/.next/server/app/api/settings/database/route.js +1 -0
  341. package/.next/server/app/api/settings/database/route.js.nft.json +1 -0
  342. package/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -0
  343. package/.next/server/app/api/settings/proxy-test/route.js +1 -0
  344. package/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -0
  345. package/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -0
  346. package/.next/server/app/api/settings/require-login/route.js +1 -0
  347. package/.next/server/app/api/settings/require-login/route.js.nft.json +1 -0
  348. package/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -0
  349. package/.next/server/app/api/settings/route.js +1 -0
  350. package/.next/server/app/api/settings/route.js.nft.json +1 -0
  351. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
  352. package/.next/server/app/api/shutdown/route.js +1 -0
  353. package/.next/server/app/api/shutdown/route.js.nft.json +1 -0
  354. package/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -0
  355. package/.next/server/app/api/tags/route.js +1 -0
  356. package/.next/server/app/api/tags/route.js.nft.json +1 -0
  357. package/.next/server/app/api/tags/route_client-reference-manifest.js +1 -0
  358. package/.next/server/app/api/translator/console-logs/route.js +1 -0
  359. package/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -0
  360. package/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -0
  361. package/.next/server/app/api/translator/console-logs/stream/route.js +9 -0
  362. package/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -0
  363. package/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -0
  364. package/.next/server/app/api/translator/load/route.js +1 -0
  365. package/.next/server/app/api/translator/load/route.js.nft.json +1 -0
  366. package/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -0
  367. package/.next/server/app/api/translator/save/route.js +1 -0
  368. package/.next/server/app/api/translator/save/route.js.nft.json +1 -0
  369. package/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -0
  370. package/.next/server/app/api/translator/send/route.js +1 -0
  371. package/.next/server/app/api/translator/send/route.js.nft.json +1 -0
  372. package/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -0
  373. package/.next/server/app/api/translator/translate/route.js +1 -0
  374. package/.next/server/app/api/translator/translate/route.js.nft.json +1 -0
  375. package/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -0
  376. package/.next/server/app/api/tunnel/disable/route.js +1 -0
  377. package/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -0
  378. package/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -0
  379. package/.next/server/app/api/tunnel/enable/route.js +1 -0
  380. package/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -0
  381. package/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -0
  382. package/.next/server/app/api/tunnel/status/route.js +1 -0
  383. package/.next/server/app/api/tunnel/status/route.js.nft.json +1 -0
  384. package/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -0
  385. package/.next/server/app/api/tunnel/tailscale-check/route.js +1 -0
  386. package/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -0
  387. package/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -0
  388. package/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -0
  389. package/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -0
  390. package/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -0
  391. package/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -0
  392. package/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -0
  393. package/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -0
  394. package/.next/server/app/api/tunnel/tailscale-install/route.js +5 -0
  395. package/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -0
  396. package/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -0
  397. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -0
  398. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -0
  399. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route_client-reference-manifest.js +1 -0
  400. package/.next/server/app/api/usage/[connectionId]/route.js +1 -0
  401. package/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -0
  402. package/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -0
  403. package/.next/server/app/api/usage/chart/route.js +1 -0
  404. package/.next/server/app/api/usage/chart/route.js.nft.json +1 -0
  405. package/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -0
  406. package/.next/server/app/api/usage/history/route.js +1 -0
  407. package/.next/server/app/api/usage/history/route.js.nft.json +1 -0
  408. package/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -0
  409. package/.next/server/app/api/usage/logs/route.js +1 -0
  410. package/.next/server/app/api/usage/logs/route.js.nft.json +1 -0
  411. package/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -0
  412. package/.next/server/app/api/usage/providers/route.js +1 -0
  413. package/.next/server/app/api/usage/providers/route.js.nft.json +1 -0
  414. package/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -0
  415. package/.next/server/app/api/usage/request-details/route.js +1 -0
  416. package/.next/server/app/api/usage/request-details/route.js.nft.json +1 -0
  417. package/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -0
  418. package/.next/server/app/api/usage/request-logs/route.js +1 -0
  419. package/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -0
  420. package/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -0
  421. package/.next/server/app/api/usage/stats/route.js +1 -0
  422. package/.next/server/app/api/usage/stats/route.js.nft.json +1 -0
  423. package/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -0
  424. package/.next/server/app/api/usage/stream/route.js +7 -0
  425. package/.next/server/app/api/usage/stream/route.js.nft.json +1 -0
  426. package/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -0
  427. package/.next/server/app/api/v1/api/chat/route.js +1 -0
  428. package/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -0
  429. package/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -0
  430. package/.next/server/app/api/v1/audio/speech/route.js +1 -0
  431. package/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -0
  432. package/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -0
  433. package/.next/server/app/api/v1/audio/transcriptions/route.js +1 -0
  434. package/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -0
  435. package/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -0
  436. package/.next/server/app/api/v1/audio/voices/route.js +1 -0
  437. package/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -0
  438. package/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -0
  439. package/.next/server/app/api/v1/chat/completions/route.js +1 -0
  440. package/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -0
  441. package/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -0
  442. package/.next/server/app/api/v1/embeddings/route.js +1 -0
  443. package/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -0
  444. package/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -0
  445. package/.next/server/app/api/v1/images/generations/route.js +4 -0
  446. package/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -0
  447. package/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -0
  448. package/.next/server/app/api/v1/messages/count_tokens/route.js +1 -0
  449. package/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -0
  450. package/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -0
  451. package/.next/server/app/api/v1/messages/route.js +1 -0
  452. package/.next/server/app/api/v1/messages/route.js.nft.json +1 -0
  453. package/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -0
  454. package/.next/server/app/api/v1/models/[...model]/route.js +1 -0
  455. package/.next/server/app/api/v1/models/[...model]/route.js.nft.json +1 -0
  456. package/.next/server/app/api/v1/models/[...model]/route_client-reference-manifest.js +1 -0
  457. package/.next/server/app/api/v1/models/info/route.js +1 -0
  458. package/.next/server/app/api/v1/models/info/route.js.nft.json +1 -0
  459. package/.next/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -0
  460. package/.next/server/app/api/v1/models/route.js +1 -0
  461. package/.next/server/app/api/v1/models/route.js.nft.json +1 -0
  462. package/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -0
  463. package/.next/server/app/api/v1/responses/compact/route.js +1 -0
  464. package/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -0
  465. package/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -0
  466. package/.next/server/app/api/v1/responses/route.js +1 -0
  467. package/.next/server/app/api/v1/responses/route.js.nft.json +1 -0
  468. package/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -0
  469. package/.next/server/app/api/v1/route.js +1 -0
  470. package/.next/server/app/api/v1/route.js.nft.json +1 -0
  471. package/.next/server/app/api/v1/route_client-reference-manifest.js +1 -0
  472. package/.next/server/app/api/v1/search/route.js +1 -0
  473. package/.next/server/app/api/v1/search/route.js.nft.json +1 -0
  474. package/.next/server/app/api/v1/search/route_client-reference-manifest.js +1 -0
  475. package/.next/server/app/api/v1/systemone/route.js +1 -0
  476. package/.next/server/app/api/v1/systemone/route.js.nft.json +1 -0
  477. package/.next/server/app/api/v1/systemone/route_client-reference-manifest.js +1 -0
  478. package/.next/server/app/api/v1/videos/[id]/route.js +1 -0
  479. package/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -0
  480. package/.next/server/app/api/v1/videos/[id]/route_client-reference-manifest.js +1 -0
  481. package/.next/server/app/api/v1/videos/edits/route.js +1 -0
  482. package/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -0
  483. package/.next/server/app/api/v1/videos/edits/route_client-reference-manifest.js +1 -0
  484. package/.next/server/app/api/v1/videos/extensions/route.js +1 -0
  485. package/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -0
  486. package/.next/server/app/api/v1/videos/extensions/route_client-reference-manifest.js +1 -0
  487. package/.next/server/app/api/v1/videos/generations/route.js +1 -0
  488. package/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -0
  489. package/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -0
  490. package/.next/server/app/api/v1/web/fetch/route.js +1 -0
  491. package/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -0
  492. package/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -0
  493. package/.next/server/app/api/v1beta/models/[...path]/route.js +1 -0
  494. package/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -0
  495. package/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -0
  496. package/.next/server/app/api/v1beta/models/route.js +1 -0
  497. package/.next/server/app/api/v1beta/models/route.js.nft.json +1 -0
  498. package/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -0
  499. package/.next/server/app/api/version/route.js +1 -0
  500. package/.next/server/app/api/version/route.js.nft.json +1 -0
  501. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -0
  502. package/.next/server/app/api/version/shutdown/route.js +1 -0
  503. package/.next/server/app/api/version/shutdown/route.js.nft.json +1 -0
  504. package/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -0
  505. package/.next/server/app/api/version/update/route.js +1 -0
  506. package/.next/server/app/api/version/update/route.js.nft.json +1 -0
  507. package/.next/server/app/api/version/update/route_client-reference-manifest.js +1 -0
  508. package/.next/server/app/callback/page.js +1 -0
  509. package/.next/server/app/callback/page.js.nft.json +1 -0
  510. package/.next/server/app/callback/page_client-reference-manifest.js +1 -0
  511. package/.next/server/app/callback.html +1 -0
  512. package/.next/server/app/callback.meta +26 -0
  513. package/.next/server/app/callback.rsc +28 -0
  514. package/.next/server/app/callback.segments/_full.segment.rsc +28 -0
  515. package/.next/server/app/callback.segments/_tree.segment.rsc +6 -0
  516. package/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +31 -0
  517. package/.next/server/app/dashboard/basic-chat.html +1 -0
  518. package/.next/server/app/dashboard/basic-chat.meta +36 -0
  519. package/.next/server/app/dashboard/basic-chat.rsc +26 -0
  520. package/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +31 -0
  521. package/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +26 -0
  522. package/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +6 -0
  523. package/.next/server/app/dashboard/cli-tools.html +1 -0
  524. package/.next/server/app/dashboard/cli-tools.meta +36 -0
  525. package/.next/server/app/dashboard/cli-tools.rsc +27 -0
  526. package/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +31 -0
  527. package/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +27 -0
  528. package/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +6 -0
  529. package/.next/server/app/dashboard/combos.html +1 -0
  530. package/.next/server/app/dashboard/combos.meta +36 -0
  531. package/.next/server/app/dashboard/combos.rsc +29 -0
  532. package/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +34 -0
  533. package/.next/server/app/dashboard/combos.segments/_full.segment.rsc +29 -0
  534. package/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +6 -0
  535. package/.next/server/app/dashboard/endpoint.html +1 -0
  536. package/.next/server/app/dashboard/endpoint.meta +36 -0
  537. package/.next/server/app/dashboard/endpoint.rsc +27 -0
  538. package/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +31 -0
  539. package/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +27 -0
  540. package/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +6 -0
  541. package/.next/server/app/dashboard/media-providers/systemone.html +1 -0
  542. package/.next/server/app/dashboard/media-providers/systemone.meta +41 -0
  543. package/.next/server/app/dashboard/media-providers/systemone.rsc +29 -0
  544. package/.next/server/app/dashboard/media-providers/systemone.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/systemone/__PAGE__.segment.rsc +35 -0
  545. package/.next/server/app/dashboard/media-providers/systemone.segments/_full.segment.rsc +29 -0
  546. package/.next/server/app/dashboard/media-providers/systemone.segments/_tree.segment.rsc +6 -0
  547. package/.next/server/app/dashboard/profile.html +1 -0
  548. package/.next/server/app/dashboard/profile.meta +36 -0
  549. package/.next/server/app/dashboard/profile.rsc +29 -0
  550. package/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +34 -0
  551. package/.next/server/app/dashboard/profile.segments/_full.segment.rsc +29 -0
  552. package/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +6 -0
  553. package/.next/server/app/dashboard/providers/new.html +1 -0
  554. package/.next/server/app/dashboard/providers/new.meta +41 -0
  555. package/.next/server/app/dashboard/providers/new.rsc +29 -0
  556. package/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +35 -0
  557. package/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +29 -0
  558. package/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +6 -0
  559. package/.next/server/app/dashboard/providers.html +1 -0
  560. package/.next/server/app/dashboard/providers.meta +36 -0
  561. package/.next/server/app/dashboard/providers.rsc +29 -0
  562. package/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +34 -0
  563. package/.next/server/app/dashboard/providers.segments/_full.segment.rsc +29 -0
  564. package/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +6 -0
  565. package/.next/server/app/dashboard/proxy-pools.html +1 -0
  566. package/.next/server/app/dashboard/proxy-pools.meta +36 -0
  567. package/.next/server/app/dashboard/proxy-pools.rsc +29 -0
  568. package/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +34 -0
  569. package/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +29 -0
  570. package/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +6 -0
  571. package/.next/server/app/dashboard/pxpipe.html +1 -0
  572. package/.next/server/app/dashboard/pxpipe.meta +36 -0
  573. package/.next/server/app/dashboard/pxpipe.rsc +26 -0
  574. package/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +31 -0
  575. package/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +26 -0
  576. package/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +6 -0
  577. package/.next/server/app/dashboard/quota.html +2 -0
  578. package/.next/server/app/dashboard/quota.meta +36 -0
  579. package/.next/server/app/dashboard/quota.rsc +27 -0
  580. package/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +32 -0
  581. package/.next/server/app/dashboard/quota.segments/_full.segment.rsc +27 -0
  582. package/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +6 -0
  583. package/.next/server/app/dashboard/settings/pricing/page.js +1 -0
  584. package/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -0
  585. package/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -0
  586. package/.next/server/app/dashboard/settings/pricing.html +1 -0
  587. package/.next/server/app/dashboard/settings/pricing.meta +36 -0
  588. package/.next/server/app/dashboard/settings/pricing.rsc +28 -0
  589. package/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +28 -0
  590. package/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +6 -0
  591. package/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +33 -0
  592. package/.next/server/app/dashboard/token-saver.html +1 -0
  593. package/.next/server/app/dashboard/token-saver.meta +36 -0
  594. package/.next/server/app/dashboard/token-saver.rsc +26 -0
  595. package/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +31 -0
  596. package/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +26 -0
  597. package/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +6 -0
  598. package/.next/server/app/dashboard/usage.html +2 -0
  599. package/.next/server/app/dashboard/usage.meta +36 -0
  600. package/.next/server/app/dashboard/usage.rsc +29 -0
  601. package/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +34 -0
  602. package/.next/server/app/dashboard/usage.segments/_full.segment.rsc +29 -0
  603. package/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +6 -0
  604. package/.next/server/app/dashboard.html +1 -0
  605. package/.next/server/app/dashboard.meta +31 -0
  606. package/.next/server/app/dashboard.rsc +27 -0
  607. package/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +30 -0
  608. package/.next/server/app/dashboard.segments/_full.segment.rsc +27 -0
  609. package/.next/server/app/dashboard.segments/_tree.segment.rsc +6 -0
  610. package/.next/server/app/index.html +1 -0
  611. package/.next/server/app/index.meta +23 -0
  612. package/.next/server/app/index.rsc +23 -0
  613. package/.next/server/app/index.segments/__PAGE__.segment.rsc +25 -0
  614. package/.next/server/app/index.segments/_full.segment.rsc +23 -0
  615. package/.next/server/app/index.segments/_tree.segment.rsc +6 -0
  616. package/.next/server/app/landing/page.js +1 -0
  617. package/.next/server/app/landing/page.js.nft.json +1 -0
  618. package/.next/server/app/landing/page_client-reference-manifest.js +1 -0
  619. package/.next/server/app/landing.html +1 -0
  620. package/.next/server/app/landing.meta +26 -0
  621. package/.next/server/app/landing.rsc +28 -0
  622. package/.next/server/app/landing.segments/_full.segment.rsc +28 -0
  623. package/.next/server/app/landing.segments/_tree.segment.rsc +6 -0
  624. package/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +31 -0
  625. package/.next/server/app/login/page.js +1 -0
  626. package/.next/server/app/login/page.js.nft.json +1 -0
  627. package/.next/server/app/login/page_client-reference-manifest.js +1 -0
  628. package/.next/server/app/login.html +1 -0
  629. package/.next/server/app/login.meta +26 -0
  630. package/.next/server/app/login.rsc +28 -0
  631. package/.next/server/app/login.segments/_full.segment.rsc +28 -0
  632. package/.next/server/app/login.segments/_tree.segment.rsc +6 -0
  633. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +31 -0
  634. package/.next/server/app/manifest.webmanifest/route.js +17 -0
  635. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -0
  636. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -0
  637. package/.next/server/app/manifest.webmanifest.body +1 -0
  638. package/.next/server/app/manifest.webmanifest.meta +1 -0
  639. package/.next/server/app/page.js +1 -0
  640. package/.next/server/app/page.js.nft.json +1 -0
  641. package/.next/server/app/page_client-reference-manifest.js +1 -0
  642. package/.next/server/app-paths-manifest.json +169 -0
  643. package/.next/server/chunks/1003.js +1 -0
  644. package/.next/server/chunks/1011.js +1 -0
  645. package/.next/server/chunks/1126.js +1 -0
  646. package/.next/server/chunks/1157.js +1 -0
  647. package/.next/server/chunks/1194.js +1 -0
  648. package/.next/server/chunks/1238.js +1 -0
  649. package/.next/server/chunks/1273.js +1 -0
  650. package/.next/server/chunks/1316.js +165 -0
  651. package/.next/server/chunks/1336.js +1 -0
  652. package/.next/server/chunks/1412.js +1 -0
  653. package/.next/server/chunks/1470.js +1 -0
  654. package/.next/server/chunks/1564.js +1 -0
  655. package/.next/server/chunks/1612.js +33 -0
  656. package/.next/server/chunks/1633.js +1 -0
  657. package/.next/server/chunks/1985.js +1 -0
  658. package/.next/server/chunks/2076.js +1 -0
  659. package/.next/server/chunks/2143.js +1 -0
  660. package/.next/server/chunks/2151.js +1 -0
  661. package/.next/server/chunks/2225.js +9 -0
  662. package/.next/server/chunks/224.js +1 -0
  663. package/.next/server/chunks/2282.js +150 -0
  664. package/.next/server/chunks/2310.js +2 -0
  665. package/.next/server/chunks/2339.js +1 -0
  666. package/.next/server/chunks/2426.js +1 -0
  667. package/.next/server/chunks/257.js +67 -0
  668. package/.next/server/chunks/2638.js +1 -0
  669. package/.next/server/chunks/2706.js +1 -0
  670. package/.next/server/chunks/3023.js +9 -0
  671. package/.next/server/chunks/3034.js +9 -0
  672. package/.next/server/chunks/3179.js +1 -0
  673. package/.next/server/chunks/3250.js +9 -0
  674. package/.next/server/chunks/3336.js +1 -0
  675. package/.next/server/chunks/3425.js +1 -0
  676. package/.next/server/chunks/3481.js +9 -0
  677. package/.next/server/chunks/3512.js +29 -0
  678. package/.next/server/chunks/3533.js +1 -0
  679. package/.next/server/chunks/3544.js +1 -0
  680. package/.next/server/chunks/4129.js +1 -0
  681. package/.next/server/chunks/4139.js +9 -0
  682. package/.next/server/chunks/4301.js +7 -0
  683. package/.next/server/chunks/4364.js +1 -0
  684. package/.next/server/chunks/4464.js +1 -0
  685. package/.next/server/chunks/460.js +1 -0
  686. package/.next/server/chunks/4793.js +1 -0
  687. package/.next/server/chunks/4915.js +62 -0
  688. package/.next/server/chunks/4961.js +7 -0
  689. package/.next/server/chunks/537.js +9 -0
  690. package/.next/server/chunks/5412.js +9 -0
  691. package/.next/server/chunks/5496.js +1 -0
  692. package/.next/server/chunks/5761.js +1 -0
  693. package/.next/server/chunks/5939.js +9 -0
  694. package/.next/server/chunks/6009.js +1 -0
  695. package/.next/server/chunks/6056.js +1 -0
  696. package/.next/server/chunks/613.js +1 -0
  697. package/.next/server/chunks/6343.js +72 -0
  698. package/.next/server/chunks/6461.js +5 -0
  699. package/.next/server/chunks/6823.js +1 -0
  700. package/.next/server/chunks/7002.js +9 -0
  701. package/.next/server/chunks/7019.js +3 -0
  702. package/.next/server/chunks/7156.js +1 -0
  703. package/.next/server/chunks/7257.js +1 -0
  704. package/.next/server/chunks/7268.js +1 -0
  705. package/.next/server/chunks/7459.js +120 -0
  706. package/.next/server/chunks/7504.js +1 -0
  707. package/.next/server/chunks/7535.js +21 -0
  708. package/.next/server/chunks/7816.js +1 -0
  709. package/.next/server/chunks/7963.js +193 -0
  710. package/.next/server/chunks/8066.js +31 -0
  711. package/.next/server/chunks/8567.js +1 -0
  712. package/.next/server/chunks/8569.js +11 -0
  713. package/.next/server/chunks/8784.js +1 -0
  714. package/.next/server/chunks/881.js +10 -0
  715. package/.next/server/chunks/8857.js +1 -0
  716. package/.next/server/chunks/8923.js +1 -0
  717. package/.next/server/chunks/8940.js +1 -0
  718. package/.next/server/chunks/9018.js +1 -0
  719. package/.next/server/chunks/9250.js +7 -0
  720. package/.next/server/chunks/9287.js +1 -0
  721. package/.next/server/chunks/9429.js +2 -0
  722. package/.next/server/chunks/9603.js +1 -0
  723. package/.next/server/chunks/9614.js +1 -0
  724. package/.next/server/chunks/9646.js +1 -0
  725. package/.next/server/chunks/9792.js +9 -0
  726. package/.next/server/functions-config-manifest.json +25 -0
  727. package/.next/server/instrumentation.js +1 -0
  728. package/.next/server/instrumentation.js.nft.json +1 -0
  729. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  730. package/.next/server/middleware-build-manifest.js +1 -0
  731. package/.next/server/middleware-manifest.json +6 -0
  732. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  733. package/.next/server/middleware.js +171 -0
  734. package/.next/server/middleware.js.nft.json +1 -0
  735. package/.next/server/next-font-manifest.js +1 -0
  736. package/.next/server/next-font-manifest.json +1 -0
  737. package/.next/server/pages/404.html +1 -0
  738. package/.next/server/pages/500.html +1 -0
  739. package/.next/server/pages-manifest.json +4 -0
  740. package/.next/server/prefetch-hints.json +446 -0
  741. package/.next/server/server-reference-manifest.js +1 -0
  742. package/.next/server/server-reference-manifest.json +1 -0
  743. package/.next/server/webpack-runtime.js +1 -0
  744. package/.next/static/AiSMDHTT8m1mHG-uAmkFq/_buildManifest.js +1 -0
  745. package/.next/static/AiSMDHTT8m1mHG-uAmkFq/_ssgManifest.js +1 -0
  746. package/.next/static/chunks/1078-965aa38f6ae4f5b7.js +1 -0
  747. package/.next/static/chunks/1278-d7d5375869132de1.js +1 -0
  748. package/.next/static/chunks/1471-10f225f62f7469cc.js +1 -0
  749. package/.next/static/chunks/159-17737a7c99ff1a65.js +1 -0
  750. package/.next/static/chunks/1722-bb40b4311197204b.js +1 -0
  751. package/.next/static/chunks/1830-901fe48c3c62604f.js +1 -0
  752. package/.next/static/chunks/208-fcb6c54f9db5664f.js +1 -0
  753. package/.next/static/chunks/3153-fde052e626cc6d40.js +67 -0
  754. package/.next/static/chunks/3577-cd98d40e3099e1b0.js +1 -0
  755. package/.next/static/chunks/4484-893f9cfcbe1499df.js +1 -0
  756. package/.next/static/chunks/4489-0f3ff0134169e717.js +1 -0
  757. package/.next/static/chunks/4899.0d4260af2a463837.js +1 -0
  758. package/.next/static/chunks/5113-5c4f5181388aab72.js +1 -0
  759. package/.next/static/chunks/5166-cadbdbf7d6854cf9.js +1 -0
  760. package/.next/static/chunks/5778-9d97ce04f2ac118c.js +1 -0
  761. package/.next/static/chunks/5862-f98c2f3d480b80d2.js +1 -0
  762. package/.next/static/chunks/6817-449f7a2452845c74.js +1 -0
  763. package/.next/static/chunks/6920-e2b533c1eafa9521.js +1 -0
  764. package/.next/static/chunks/7276-16ef14f7b2cd478d.js +1 -0
  765. package/.next/static/chunks/7287-b8e377303d1c5ae8.js +11 -0
  766. package/.next/static/chunks/7552-11960bc118e4e0f7.js +1 -0
  767. package/.next/static/chunks/7822.01a4d5bdd39fa0b7.js +1 -0
  768. package/.next/static/chunks/7835-c1ef8f5cdaaad483.js +1 -0
  769. package/.next/static/chunks/80d4b624.42a8767f1c8767a3.js +1 -0
  770. package/.next/static/chunks/9369-b8c9520bc2536ff2.js +1 -0
  771. package/.next/static/chunks/9590-0d0b3dd0530b2b7b.js +1 -0
  772. package/.next/static/chunks/9966-7232c138a59bdc2f.js +52 -0
  773. package/.next/static/chunks/9980-971a38c4ad288d6c.js +1 -0
  774. package/.next/static/chunks/9ce8c186-3c7d7dbc5d428052.js +1 -0
  775. package/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-c074ab1b76a6c8ba.js +1 -0
  776. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-2ff675120416e925.js +40 -0
  777. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-654e770c4dca90e8.js +1 -0
  778. package/.next/static/chunks/app/(dashboard)/dashboard/combos/page-55bc39e30923938a.js +1 -0
  779. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-aac9a9397d3f7f17.js +1 -0
  780. package/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-d60651b77028b014.js +1 -0
  781. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/[id]/page-3d78f5834ef97b82.js +10 -0
  782. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/page-e41bf53886195393.js +1 -0
  783. package/.next/static/chunks/app/(dashboard)/dashboard/page-670583d9f9c104af.js +1 -0
  784. package/.next/static/chunks/app/(dashboard)/dashboard/profile/page-53158d30b5643b05.js +1 -0
  785. package/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-fd2615fea8932fd5.js +21 -0
  786. package/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-7c9e30c4985582a6.js +1 -0
  787. package/.next/static/chunks/app/(dashboard)/dashboard/providers/page-7cc2c66e63fce4ab.js +1 -0
  788. package/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-5e1fb41bd7b555a6.js +4 -0
  789. package/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/page-1ec35dafa18e5d24.js +1 -0
  790. package/.next/static/chunks/app/(dashboard)/dashboard/quota/page-11d5ca23d18d596e.js +1 -0
  791. package/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-388b616d8c2aa3fc.js +1 -0
  792. package/.next/static/chunks/app/(dashboard)/dashboard/usage/page-466f7a8f7319ad85.js +1 -0
  793. package/.next/static/chunks/app/(dashboard)/layout-e1e5bead272b5c82.js +1 -0
  794. package/.next/static/chunks/app/_global-error/page-fe947d4ab19df968.js +1 -0
  795. package/.next/static/chunks/app/_not-found/page-d66f1e17185e98d1.js +1 -0
  796. package/.next/static/chunks/app/api/auth/login/route-fe947d4ab19df968.js +1 -0
  797. package/.next/static/chunks/app/api/auth/logout/route-fe947d4ab19df968.js +1 -0
  798. package/.next/static/chunks/app/api/auth/oidc/callback/route-fe947d4ab19df968.js +1 -0
  799. package/.next/static/chunks/app/api/auth/oidc/start/route-fe947d4ab19df968.js +1 -0
  800. package/.next/static/chunks/app/api/auth/oidc/test/route-fe947d4ab19df968.js +1 -0
  801. package/.next/static/chunks/app/api/auth/reset-password/route-fe947d4ab19df968.js +1 -0
  802. package/.next/static/chunks/app/api/auth/saml/acs/route-fe947d4ab19df968.js +1 -0
  803. package/.next/static/chunks/app/api/auth/saml/metadata/route-fe947d4ab19df968.js +1 -0
  804. package/.next/static/chunks/app/api/auth/saml/start/route-fe947d4ab19df968.js +1 -0
  805. package/.next/static/chunks/app/api/auth/saml/test/route-fe947d4ab19df968.js +1 -0
  806. package/.next/static/chunks/app/api/auth/status/route-fe947d4ab19df968.js +1 -0
  807. package/.next/static/chunks/app/api/changelog/route-fe947d4ab19df968.js +1 -0
  808. package/.next/static/chunks/app/api/cli-tools/all-statuses/route-fe947d4ab19df968.js +1 -0
  809. package/.next/static/chunks/app/api/cli-tools/claude-settings/route-fe947d4ab19df968.js +1 -0
  810. package/.next/static/chunks/app/api/cli-tools/codex-settings/route-fe947d4ab19df968.js +1 -0
  811. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fe947d4ab19df968.js +1 -0
  812. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-fe947d4ab19df968.js +1 -0
  813. package/.next/static/chunks/app/api/cli-tools/cowork-settings/route-fe947d4ab19df968.js +1 -0
  814. package/.next/static/chunks/app/api/cli-tools/dsh-settings/route-fe947d4ab19df968.js +1 -0
  815. package/.next/static/chunks/app/api/cli-tools/opencode-settings/route-fe947d4ab19df968.js +1 -0
  816. package/.next/static/chunks/app/api/combos/[id]/route-fe947d4ab19df968.js +1 -0
  817. package/.next/static/chunks/app/api/combos/route-fe947d4ab19df968.js +1 -0
  818. package/.next/static/chunks/app/api/headroom/extras/route-fe947d4ab19df968.js +1 -0
  819. package/.next/static/chunks/app/api/headroom/proxy/[...path]/route-fe947d4ab19df968.js +1 -0
  820. package/.next/static/chunks/app/api/headroom/restart/route-fe947d4ab19df968.js +1 -0
  821. package/.next/static/chunks/app/api/headroom/start/route-fe947d4ab19df968.js +1 -0
  822. package/.next/static/chunks/app/api/headroom/status/route-fe947d4ab19df968.js +1 -0
  823. package/.next/static/chunks/app/api/headroom/stop/route-fe947d4ab19df968.js +1 -0
  824. package/.next/static/chunks/app/api/health/route-fe947d4ab19df968.js +1 -0
  825. package/.next/static/chunks/app/api/init/route-fe947d4ab19df968.js +1 -0
  826. package/.next/static/chunks/app/api/keys/[id]/route-fe947d4ab19df968.js +1 -0
  827. package/.next/static/chunks/app/api/keys/route-fe947d4ab19df968.js +1 -0
  828. package/.next/static/chunks/app/api/locale/route-fe947d4ab19df968.js +1 -0
  829. package/.next/static/chunks/app/api/mcp/[plugin]/message/route-fe947d4ab19df968.js +1 -0
  830. package/.next/static/chunks/app/api/mcp/[plugin]/sse/route-fe947d4ab19df968.js +1 -0
  831. package/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fe947d4ab19df968.js +1 -0
  832. package/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fe947d4ab19df968.js +1 -0
  833. package/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-fe947d4ab19df968.js +1 -0
  834. package/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-fe947d4ab19df968.js +1 -0
  835. package/.next/static/chunks/app/api/media-providers/tts/voices/route-fe947d4ab19df968.js +1 -0
  836. package/.next/static/chunks/app/api/models/alias/route-fe947d4ab19df968.js +1 -0
  837. package/.next/static/chunks/app/api/models/availability/route-fe947d4ab19df968.js +1 -0
  838. package/.next/static/chunks/app/api/models/catalog-sync/route-fe947d4ab19df968.js +1 -0
  839. package/.next/static/chunks/app/api/models/custom/route-fe947d4ab19df968.js +1 -0
  840. package/.next/static/chunks/app/api/models/disabled/route-fe947d4ab19df968.js +1 -0
  841. package/.next/static/chunks/app/api/models/route-fe947d4ab19df968.js +1 -0
  842. package/.next/static/chunks/app/api/models/test/route-fe947d4ab19df968.js +1 -0
  843. package/.next/static/chunks/app/api/oauth/[provider]/[action]/route-fe947d4ab19df968.js +1 -0
  844. package/.next/static/chunks/app/api/oauth/codex/bulk-import/route-fe947d4ab19df968.js +1 -0
  845. package/.next/static/chunks/app/api/oauth/codex/import-token/route-fe947d4ab19df968.js +1 -0
  846. package/.next/static/chunks/app/api/oauth/cursor/auto-import/route-fe947d4ab19df968.js +1 -0
  847. package/.next/static/chunks/app/api/oauth/cursor/import/route-fe947d4ab19df968.js +1 -0
  848. package/.next/static/chunks/app/api/oauth/gitlab/pat/route-fe947d4ab19df968.js +1 -0
  849. package/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-fe947d4ab19df968.js +1 -0
  850. package/.next/static/chunks/app/api/oauth/iflow/cookie/route-fe947d4ab19df968.js +1 -0
  851. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-fe947d4ab19df968.js +1 -0
  852. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-fe947d4ab19df968.js +1 -0
  853. package/.next/static/chunks/app/api/pricing/route-fe947d4ab19df968.js +1 -0
  854. package/.next/static/chunks/app/api/provider-nodes/[id]/route-fe947d4ab19df968.js +1 -0
  855. package/.next/static/chunks/app/api/provider-nodes/route-fe947d4ab19df968.js +1 -0
  856. package/.next/static/chunks/app/api/provider-nodes/validate/route-fe947d4ab19df968.js +1 -0
  857. package/.next/static/chunks/app/api/providers/[id]/models/route-fe947d4ab19df968.js +1 -0
  858. package/.next/static/chunks/app/api/providers/[id]/route-fe947d4ab19df968.js +1 -0
  859. package/.next/static/chunks/app/api/providers/[id]/test/route-fe947d4ab19df968.js +1 -0
  860. package/.next/static/chunks/app/api/providers/[id]/test-models/route-fe947d4ab19df968.js +1 -0
  861. package/.next/static/chunks/app/api/providers/client/route-fe947d4ab19df968.js +1 -0
  862. package/.next/static/chunks/app/api/providers/kilo/free-models/route-fe947d4ab19df968.js +1 -0
  863. package/.next/static/chunks/app/api/providers/route-fe947d4ab19df968.js +1 -0
  864. package/.next/static/chunks/app/api/providers/suggested-models/route-fe947d4ab19df968.js +1 -0
  865. package/.next/static/chunks/app/api/providers/test-batch/route-fe947d4ab19df968.js +1 -0
  866. package/.next/static/chunks/app/api/providers/validate/route-fe947d4ab19df968.js +1 -0
  867. package/.next/static/chunks/app/api/proxy-pools/[id]/route-fe947d4ab19df968.js +1 -0
  868. package/.next/static/chunks/app/api/proxy-pools/[id]/test/route-fe947d4ab19df968.js +1 -0
  869. package/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-fe947d4ab19df968.js +1 -0
  870. package/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-fe947d4ab19df968.js +1 -0
  871. package/.next/static/chunks/app/api/proxy-pools/route-fe947d4ab19df968.js +1 -0
  872. package/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-fe947d4ab19df968.js +1 -0
  873. package/.next/static/chunks/app/api/pxpipe/health/route-fe947d4ab19df968.js +1 -0
  874. package/.next/static/chunks/app/api/pxpipe/install/route-fe947d4ab19df968.js +1 -0
  875. package/.next/static/chunks/app/api/pxpipe/logs/route-fe947d4ab19df968.js +1 -0
  876. package/.next/static/chunks/app/api/pxpipe/restart/route-fe947d4ab19df968.js +1 -0
  877. package/.next/static/chunks/app/api/pxpipe/start/route-fe947d4ab19df968.js +1 -0
  878. package/.next/static/chunks/app/api/pxpipe/stats/route-fe947d4ab19df968.js +1 -0
  879. package/.next/static/chunks/app/api/pxpipe/status/route-fe947d4ab19df968.js +1 -0
  880. package/.next/static/chunks/app/api/pxpipe/stop/route-fe947d4ab19df968.js +1 -0
  881. package/.next/static/chunks/app/api/settings/database/route-fe947d4ab19df968.js +1 -0
  882. package/.next/static/chunks/app/api/settings/proxy-test/route-fe947d4ab19df968.js +1 -0
  883. package/.next/static/chunks/app/api/settings/require-login/route-fe947d4ab19df968.js +1 -0
  884. package/.next/static/chunks/app/api/settings/route-fe947d4ab19df968.js +1 -0
  885. package/.next/static/chunks/app/api/shutdown/route-fe947d4ab19df968.js +1 -0
  886. package/.next/static/chunks/app/api/tags/route-fe947d4ab19df968.js +1 -0
  887. package/.next/static/chunks/app/api/translator/console-logs/route-fe947d4ab19df968.js +1 -0
  888. package/.next/static/chunks/app/api/translator/console-logs/stream/route-fe947d4ab19df968.js +1 -0
  889. package/.next/static/chunks/app/api/translator/load/route-fe947d4ab19df968.js +1 -0
  890. package/.next/static/chunks/app/api/translator/save/route-fe947d4ab19df968.js +1 -0
  891. package/.next/static/chunks/app/api/translator/send/route-fe947d4ab19df968.js +1 -0
  892. package/.next/static/chunks/app/api/translator/translate/route-fe947d4ab19df968.js +1 -0
  893. package/.next/static/chunks/app/api/tunnel/disable/route-fe947d4ab19df968.js +1 -0
  894. package/.next/static/chunks/app/api/tunnel/enable/route-fe947d4ab19df968.js +1 -0
  895. package/.next/static/chunks/app/api/tunnel/status/route-fe947d4ab19df968.js +1 -0
  896. package/.next/static/chunks/app/api/tunnel/tailscale-check/route-fe947d4ab19df968.js +1 -0
  897. package/.next/static/chunks/app/api/tunnel/tailscale-disable/route-fe947d4ab19df968.js +1 -0
  898. package/.next/static/chunks/app/api/tunnel/tailscale-enable/route-fe947d4ab19df968.js +1 -0
  899. package/.next/static/chunks/app/api/tunnel/tailscale-install/route-fe947d4ab19df968.js +1 -0
  900. package/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-fe947d4ab19df968.js +1 -0
  901. package/.next/static/chunks/app/api/usage/[connectionId]/route-fe947d4ab19df968.js +1 -0
  902. package/.next/static/chunks/app/api/usage/chart/route-fe947d4ab19df968.js +1 -0
  903. package/.next/static/chunks/app/api/usage/history/route-fe947d4ab19df968.js +1 -0
  904. package/.next/static/chunks/app/api/usage/logs/route-fe947d4ab19df968.js +1 -0
  905. package/.next/static/chunks/app/api/usage/providers/route-fe947d4ab19df968.js +1 -0
  906. package/.next/static/chunks/app/api/usage/request-details/route-fe947d4ab19df968.js +1 -0
  907. package/.next/static/chunks/app/api/usage/request-logs/route-fe947d4ab19df968.js +1 -0
  908. package/.next/static/chunks/app/api/usage/stats/route-fe947d4ab19df968.js +1 -0
  909. package/.next/static/chunks/app/api/usage/stream/route-fe947d4ab19df968.js +1 -0
  910. package/.next/static/chunks/app/api/v1/api/chat/route-fe947d4ab19df968.js +1 -0
  911. package/.next/static/chunks/app/api/v1/audio/speech/route-fe947d4ab19df968.js +1 -0
  912. package/.next/static/chunks/app/api/v1/audio/transcriptions/route-fe947d4ab19df968.js +1 -0
  913. package/.next/static/chunks/app/api/v1/audio/voices/route-fe947d4ab19df968.js +1 -0
  914. package/.next/static/chunks/app/api/v1/chat/completions/route-fe947d4ab19df968.js +1 -0
  915. package/.next/static/chunks/app/api/v1/embeddings/route-fe947d4ab19df968.js +1 -0
  916. package/.next/static/chunks/app/api/v1/images/generations/route-fe947d4ab19df968.js +1 -0
  917. package/.next/static/chunks/app/api/v1/messages/count_tokens/route-fe947d4ab19df968.js +1 -0
  918. package/.next/static/chunks/app/api/v1/messages/route-fe947d4ab19df968.js +1 -0
  919. package/.next/static/chunks/app/api/v1/models/[...model]/route-fe947d4ab19df968.js +1 -0
  920. package/.next/static/chunks/app/api/v1/models/info/route-fe947d4ab19df968.js +1 -0
  921. package/.next/static/chunks/app/api/v1/models/route-fe947d4ab19df968.js +1 -0
  922. package/.next/static/chunks/app/api/v1/responses/compact/route-fe947d4ab19df968.js +1 -0
  923. package/.next/static/chunks/app/api/v1/responses/route-fe947d4ab19df968.js +1 -0
  924. package/.next/static/chunks/app/api/v1/route-fe947d4ab19df968.js +1 -0
  925. package/.next/static/chunks/app/api/v1/search/route-fe947d4ab19df968.js +1 -0
  926. package/.next/static/chunks/app/api/v1/systemone/route-fe947d4ab19df968.js +1 -0
  927. package/.next/static/chunks/app/api/v1/videos/[id]/route-fe947d4ab19df968.js +1 -0
  928. package/.next/static/chunks/app/api/v1/videos/edits/route-fe947d4ab19df968.js +1 -0
  929. package/.next/static/chunks/app/api/v1/videos/extensions/route-fe947d4ab19df968.js +1 -0
  930. package/.next/static/chunks/app/api/v1/videos/generations/route-fe947d4ab19df968.js +1 -0
  931. package/.next/static/chunks/app/api/v1/web/fetch/route-fe947d4ab19df968.js +1 -0
  932. package/.next/static/chunks/app/api/v1beta/models/[...path]/route-fe947d4ab19df968.js +1 -0
  933. package/.next/static/chunks/app/api/v1beta/models/route-fe947d4ab19df968.js +1 -0
  934. package/.next/static/chunks/app/api/version/route-fe947d4ab19df968.js +1 -0
  935. package/.next/static/chunks/app/api/version/shutdown/route-fe947d4ab19df968.js +1 -0
  936. package/.next/static/chunks/app/api/version/update/route-fe947d4ab19df968.js +1 -0
  937. package/.next/static/chunks/app/callback/page-f4019bfc06b9a21c.js +1 -0
  938. package/.next/static/chunks/app/dashboard/settings/pricing/page-b9ee16bd322c018e.js +1 -0
  939. package/.next/static/chunks/app/landing/page-a088604744d51552.js +1 -0
  940. package/.next/static/chunks/app/layout-56cb8d3773a70c00.js +1 -0
  941. package/.next/static/chunks/app/login/page-dd11fb741ed7fda4.js +1 -0
  942. package/.next/static/chunks/app/manifest.webmanifest/route-fe947d4ab19df968.js +1 -0
  943. package/.next/static/chunks/app/page-fe947d4ab19df968.js +1 -0
  944. package/.next/static/chunks/e138dfde-a5c7fa92857215f2.js +1 -0
  945. package/.next/static/chunks/framework-c33600f6d7c90335.js +1 -0
  946. package/.next/static/chunks/main-536afed42e49674c.js +5 -0
  947. package/.next/static/chunks/main-app-17abdf14ff64ab69.js +1 -0
  948. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fe947d4ab19df968.js +1 -0
  949. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fe947d4ab19df968.js +1 -0
  950. package/.next/static/chunks/next/dist/client/components/builtin/global-error-21486667022bd4cf.js +1 -0
  951. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fe947d4ab19df968.js +1 -0
  952. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fe947d4ab19df968.js +1 -0
  953. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  954. package/.next/static/chunks/webpack-452a2f4aec1a53ee.js +1 -0
  955. package/.next/static/css/8fbebca0759ae504.css +1 -0
  956. package/.next/static/css/e07f2bf4fa519943.css +31 -0
  957. package/.next/static/css/e9178fa7e53ec623.css +1 -0
  958. package/.next/static/media/17cf9497af825577-s.woff2 +0 -0
  959. package/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  960. package/.next/static/media/1abbc144918f74fd-s.p.woff2 +0 -0
  961. package/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
  962. package/.next/static/media/8c96cc4bd2a39381-s.p.woff2 +0 -0
  963. package/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  964. package/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  965. package/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  966. package/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  967. package/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  968. package/LICENSE.md +21 -0
  969. package/README.md +67 -0
  970. package/bin/10router.mjs +301 -0
  971. package/custom-server.js +147 -0
  972. package/next.config.mjs +110 -0
  973. package/open-sse/AGENTS.md +39 -0
  974. package/open-sse/config/appConstants.js +221 -0
  975. package/open-sse/config/codexInstructions.js +119 -0
  976. package/open-sse/config/defaultThinkingSignature.js +14 -0
  977. package/open-sse/config/errorConfig.js +94 -0
  978. package/open-sse/config/googleTtsLanguages.js +62 -0
  979. package/open-sse/config/grokCli.js +10 -0
  980. package/open-sse/config/mediaConfig.js +27 -0
  981. package/open-sse/config/models.js +13 -0
  982. package/open-sse/config/ollamaModels.js +28 -0
  983. package/open-sse/config/providerModels.js +138 -0
  984. package/open-sse/config/providers.js +21 -0
  985. package/open-sse/config/runtimeConfig.js +101 -0
  986. package/open-sse/config/ttsModels.js +199 -0
  987. package/open-sse/executors/antigravity.js +706 -0
  988. package/open-sse/executors/base.js +231 -0
  989. package/open-sse/executors/codex.js +606 -0
  990. package/open-sse/executors/cursor.js +1251 -0
  991. package/open-sse/executors/default.js +352 -0
  992. package/open-sse/executors/index.js +50 -0
  993. package/open-sse/executors/opencode-go.js +216 -0
  994. package/open-sse/executors/opencode-zen.js +343 -0
  995. package/open-sse/executors/opencode.js +618 -0
  996. package/open-sse/executors/qoder.js +860 -0
  997. package/open-sse/executors/xiaomi-mimo.js +107 -0
  998. package/open-sse/executors/xiaomi-tokenplan.js +20 -0
  999. package/open-sse/executors/zed.js +330 -0
  1000. package/open-sse/handlers/chatCore/nonStreamingHandler.js +490 -0
  1001. package/open-sse/handlers/chatCore/requestDetail.js +169 -0
  1002. package/open-sse/handlers/chatCore/sseToJsonHandler.js +503 -0
  1003. package/open-sse/handlers/chatCore/streamingHandler.js +310 -0
  1004. package/open-sse/handlers/chatCore.js +740 -0
  1005. package/open-sse/handlers/embeddingProviders/_base.js +4 -0
  1006. package/open-sse/handlers/embeddingProviders/gemini.js +55 -0
  1007. package/open-sse/handlers/embeddingProviders/index.js +41 -0
  1008. package/open-sse/handlers/embeddingProviders/openai.js +31 -0
  1009. package/open-sse/handlers/embeddingProviders/openaiCompatNode.js +13 -0
  1010. package/open-sse/handlers/embeddingProviders/selfhostedEmbedding.js +49 -0
  1011. package/open-sse/handlers/embeddingsCore.js +144 -0
  1012. package/open-sse/handlers/fetch/index.js +415 -0
  1013. package/open-sse/handlers/imageGenerationCore.js +261 -0
  1014. package/open-sse/handlers/imageProviders/_base.js +31 -0
  1015. package/open-sse/handlers/imageProviders/antigravity.js +88 -0
  1016. package/open-sse/handlers/imageProviders/blackForestLabs.js +47 -0
  1017. package/open-sse/handlers/imageProviders/codex.js +235 -0
  1018. package/open-sse/handlers/imageProviders/comfyui.js +12 -0
  1019. package/open-sse/handlers/imageProviders/falAi.js +44 -0
  1020. package/open-sse/handlers/imageProviders/gemini.js +28 -0
  1021. package/open-sse/handlers/imageProviders/huggingface.js +23 -0
  1022. package/open-sse/handlers/imageProviders/index.js +41 -0
  1023. package/open-sse/handlers/imageProviders/nanobanana.js +61 -0
  1024. package/open-sse/handlers/imageProviders/openai.js +33 -0
  1025. package/open-sse/handlers/imageProviders/runwayml.js +60 -0
  1026. package/open-sse/handlers/imageProviders/sdwebui.js +22 -0
  1027. package/open-sse/handlers/imageProviders/stabilityAi.js +35 -0
  1028. package/open-sse/handlers/responsesHandler.js +107 -0
  1029. package/open-sse/handlers/search/callers.js +469 -0
  1030. package/open-sse/handlers/search/chatSearch.js +502 -0
  1031. package/open-sse/handlers/search/index.js +246 -0
  1032. package/open-sse/handlers/search/normalizers.js +414 -0
  1033. package/open-sse/handlers/sttCore.js +262 -0
  1034. package/open-sse/handlers/systemoneCore.js +89 -0
  1035. package/open-sse/handlers/ttsCore.js +88 -0
  1036. package/open-sse/handlers/ttsProviders/_base.js +51 -0
  1037. package/open-sse/handlers/ttsProviders/edgeTts.js +89 -0
  1038. package/open-sse/handlers/ttsProviders/elevenlabs.js +48 -0
  1039. package/open-sse/handlers/ttsProviders/gemini.js +136 -0
  1040. package/open-sse/handlers/ttsProviders/genericFormats.js +191 -0
  1041. package/open-sse/handlers/ttsProviders/googleTts.js +64 -0
  1042. package/open-sse/handlers/ttsProviders/index.js +56 -0
  1043. package/open-sse/handlers/ttsProviders/localDevice.js +98 -0
  1044. package/open-sse/handlers/ttsProviders/minimax.js +63 -0
  1045. package/open-sse/handlers/ttsProviders/openai.js +36 -0
  1046. package/open-sse/handlers/ttsProviders/openrouter.js +73 -0
  1047. package/open-sse/handlers/ttsProviders/selfhostedTts.js +70 -0
  1048. package/open-sse/handlers/ttsProviders/xiaomi-mimo.js +71 -0
  1049. package/open-sse/handlers/videoCore.js +242 -0
  1050. package/open-sse/handlers/videoProviders/index.js +12 -0
  1051. package/open-sse/handlers/videoProviders/openrouter.js +43 -0
  1052. package/open-sse/index.js +84 -0
  1053. package/open-sse/providers/REGISTRY_TEMPLATE.js +98 -0
  1054. package/open-sse/providers/capabilities.js +1543 -0
  1055. package/open-sse/providers/catalogOverride.js +82 -0
  1056. package/open-sse/providers/index.js +63 -0
  1057. package/open-sse/providers/models/helpers.js +27 -0
  1058. package/open-sse/providers/models/namePatterns.js +33 -0
  1059. package/open-sse/providers/models/schema.js +48 -0
  1060. package/open-sse/providers/pricing.js +1204 -0
  1061. package/open-sse/providers/registry/antigravity.js +147 -0
  1062. package/open-sse/providers/registry/claude.js +81 -0
  1063. package/open-sse/providers/registry/codex.js +210 -0
  1064. package/open-sse/providers/registry/cursor.js +58 -0
  1065. package/open-sse/providers/registry/deepseek.js +74 -0
  1066. package/open-sse/providers/registry/fish-audio.js +31 -0
  1067. package/open-sse/providers/registry/gemini.js +126 -0
  1068. package/open-sse/providers/registry/glm-cn.js +39 -0
  1069. package/open-sse/providers/registry/glm.js +75 -0
  1070. package/open-sse/providers/registry/groq.js +62 -0
  1071. package/open-sse/providers/registry/huggingface.js +40 -0
  1072. package/open-sse/providers/registry/iflow.js +52 -0
  1073. package/open-sse/providers/registry/index.js +59 -0
  1074. package/open-sse/providers/registry/mimo-free.js +25 -0
  1075. package/open-sse/providers/registry/minimax-cn.js +82 -0
  1076. package/open-sse/providers/registry/minimax.js +94 -0
  1077. package/open-sse/providers/registry/openai.js +122 -0
  1078. package/open-sse/providers/registry/opencode-go.js +115 -0
  1079. package/open-sse/providers/registry/opencode-zen.js +297 -0
  1080. package/open-sse/providers/registry/opencode.js +54 -0
  1081. package/open-sse/providers/registry/openrouter.js +128 -0
  1082. package/open-sse/providers/registry/qoder.js +61 -0
  1083. package/open-sse/providers/registry/siliconflow.js +39 -0
  1084. package/open-sse/providers/registry/vercel-ai-gateway.js +42 -0
  1085. package/open-sse/providers/registry/xai.js +59 -0
  1086. package/open-sse/providers/registry/xiaomi-mimo.js +90 -0
  1087. package/open-sse/providers/registry/xiaomi-tokenplan.js +66 -0
  1088. package/open-sse/providers/registry/xquik.js +31 -0
  1089. package/open-sse/providers/registry/zed.js +70 -0
  1090. package/open-sse/providers/schema.js +76 -0
  1091. package/open-sse/providers/shared.js +114 -0
  1092. package/open-sse/providers/thinkingLevels.js +74 -0
  1093. package/open-sse/providers/visionPatterns.js +58 -0
  1094. package/open-sse/rtk/applyFilter.js +17 -0
  1095. package/open-sse/rtk/autodetect.js +124 -0
  1096. package/open-sse/rtk/caveman.js +9 -0
  1097. package/open-sse/rtk/cavemanPrompts.js +118 -0
  1098. package/open-sse/rtk/constants.js +78 -0
  1099. package/open-sse/rtk/filters/buildOutput.js +133 -0
  1100. package/open-sse/rtk/filters/dedupLog.js +44 -0
  1101. package/open-sse/rtk/filters/find.js +50 -0
  1102. package/open-sse/rtk/filters/gitDiff.js +92 -0
  1103. package/open-sse/rtk/filters/gitLog.js +102 -0
  1104. package/open-sse/rtk/filters/gitStatus.js +129 -0
  1105. package/open-sse/rtk/filters/grep.js +48 -0
  1106. package/open-sse/rtk/filters/ls.js +83 -0
  1107. package/open-sse/rtk/filters/readNumbered.js +27 -0
  1108. package/open-sse/rtk/filters/searchList.js +52 -0
  1109. package/open-sse/rtk/filters/smartTruncate.js +19 -0
  1110. package/open-sse/rtk/filters/tree.js +32 -0
  1111. package/open-sse/rtk/headroom.js +296 -0
  1112. package/open-sse/rtk/index.js +122 -0
  1113. package/open-sse/rtk/ponytail.js +9 -0
  1114. package/open-sse/rtk/ponytailPrompt.js +58 -0
  1115. package/open-sse/rtk/pxpipe.js +113 -0
  1116. package/open-sse/rtk/registry.js +40 -0
  1117. package/open-sse/rtk/systemInject.js +301 -0
  1118. package/open-sse/services/accountFallback.js +244 -0
  1119. package/open-sse/services/capacityAdapter.js +182 -0
  1120. package/open-sse/services/combo.js +715 -0
  1121. package/open-sse/services/compact.js +70 -0
  1122. package/open-sse/services/copilotModels.js +163 -0
  1123. package/open-sse/services/cursorModels.js +209 -0
  1124. package/open-sse/services/grokCliModels.js +128 -0
  1125. package/open-sse/services/kimchiModels.js +191 -0
  1126. package/open-sse/services/model.js +141 -0
  1127. package/open-sse/services/oauthCredentialManager.js +165 -0
  1128. package/open-sse/services/projectId.js +343 -0
  1129. package/open-sse/services/provider.js +181 -0
  1130. package/open-sse/services/qoderModels.js +410 -0
  1131. package/open-sse/services/thoughtSignatureStore.js +210 -0
  1132. package/open-sse/services/tokenRefresh/dedup.js +31 -0
  1133. package/open-sse/services/tokenRefresh/providers.js +564 -0
  1134. package/open-sse/services/tokenRefresh.js +201 -0
  1135. package/open-sse/services/usage/antigravity-weekly.js +155 -0
  1136. package/open-sse/services/usage/claude.js +211 -0
  1137. package/open-sse/services/usage/codebuddy-cn.js +172 -0
  1138. package/open-sse/services/usage/codex.js +283 -0
  1139. package/open-sse/services/usage/commandcode.js +153 -0
  1140. package/open-sse/services/usage/deepseek.js +103 -0
  1141. package/open-sse/services/usage/github.js +107 -0
  1142. package/open-sse/services/usage/glm.js +88 -0
  1143. package/open-sse/services/usage/google.js +223 -0
  1144. package/open-sse/services/usage/grok-cli.js +414 -0
  1145. package/open-sse/services/usage/grokCliQuotaFrame.js +194 -0
  1146. package/open-sse/services/usage/groq.js +133 -0
  1147. package/open-sse/services/usage/minimax.js +297 -0
  1148. package/open-sse/services/usage/misc.js +275 -0
  1149. package/open-sse/services/usage/opencode-go.js +106 -0
  1150. package/open-sse/services/usage/shared.js +70 -0
  1151. package/open-sse/services/usage/xiaomi-mimo.js +129 -0
  1152. package/open-sse/services/usage/zed.js +220 -0
  1153. package/open-sse/services/usage.js +88 -0
  1154. package/open-sse/shared/machineId.js +23 -0
  1155. package/open-sse/shared/mimoAccount.js +306 -0
  1156. package/open-sse/shared/qoder/attachments.js +436 -0
  1157. package/open-sse/shared/qoder/constants.js +182 -0
  1158. package/open-sse/shared/qoder/contextTier.js +180 -0
  1159. package/open-sse/shared/qoder/cosy.js +175 -0
  1160. package/open-sse/shared/qoder/encoding.js +55 -0
  1161. package/open-sse/shared/qoder/sse.js +209 -0
  1162. package/open-sse/shared/zedAuth.js +431 -0
  1163. package/open-sse/transformer/responsesTransformer.js +438 -0
  1164. package/open-sse/transformer/streamToJsonConverter.js +113 -0
  1165. package/open-sse/translator/concerns/chunk.js +11 -0
  1166. package/open-sse/translator/concerns/finishReason.js +87 -0
  1167. package/open-sse/translator/concerns/image.js +158 -0
  1168. package/open-sse/translator/concerns/json.js +9 -0
  1169. package/open-sse/translator/concerns/message.js +8 -0
  1170. package/open-sse/translator/concerns/modality.js +182 -0
  1171. package/open-sse/translator/concerns/paramSupport.js +80 -0
  1172. package/open-sse/translator/concerns/prefetch.js +111 -0
  1173. package/open-sse/translator/concerns/reasoning.js +23 -0
  1174. package/open-sse/translator/concerns/thinking.js +53 -0
  1175. package/open-sse/translator/concerns/thinkingUnified.js +438 -0
  1176. package/open-sse/translator/concerns/toolCall.js +185 -0
  1177. package/open-sse/translator/concerns/usage.js +98 -0
  1178. package/open-sse/translator/formats/claude.js +705 -0
  1179. package/open-sse/translator/formats/gemini.js +498 -0
  1180. package/open-sse/translator/formats/maxTokens.js +33 -0
  1181. package/open-sse/translator/formats/openai.js +150 -0
  1182. package/open-sse/translator/formats/responsesApi.js +210 -0
  1183. package/open-sse/translator/formats.js +32 -0
  1184. package/open-sse/translator/index.js +297 -0
  1185. package/open-sse/translator/request/antigravity-to-openai.js +250 -0
  1186. package/open-sse/translator/request/claude-to-openai.js +297 -0
  1187. package/open-sse/translator/request/gemini-to-openai.js +152 -0
  1188. package/open-sse/translator/request/openai-responses.js +502 -0
  1189. package/open-sse/translator/request/openai-to-claude.js +413 -0
  1190. package/open-sse/translator/request/openai-to-cursor.js +185 -0
  1191. package/open-sse/translator/request/openai-to-gemini.js +477 -0
  1192. package/open-sse/translator/response/claude-to-openai.js +227 -0
  1193. package/open-sse/translator/response/cursor-to-openai.js +30 -0
  1194. package/open-sse/translator/response/gemini-to-openai.js +172 -0
  1195. package/open-sse/translator/response/openai-responses.js +652 -0
  1196. package/open-sse/translator/response/openai-to-antigravity.js +127 -0
  1197. package/open-sse/translator/response/openai-to-claude.js +276 -0
  1198. package/open-sse/translator/schema/blocks.js +57 -0
  1199. package/open-sse/translator/schema/defaults.js +7 -0
  1200. package/open-sse/translator/schema/finishReasons.js +28 -0
  1201. package/open-sse/translator/schema/index.js +11 -0
  1202. package/open-sse/translator/schema/roles.js +16 -0
  1203. package/open-sse/utils/bypassHandler.js +327 -0
  1204. package/open-sse/utils/claudeCloaking.js +274 -0
  1205. package/open-sse/utils/claudeSignature.js +41 -0
  1206. package/open-sse/utils/claudeToolTypeSelfCheck.mjs +121 -0
  1207. package/open-sse/utils/clientDetector.js +70 -0
  1208. package/open-sse/utils/codexToolSchema.js +80 -0
  1209. package/open-sse/utils/cursorChecksum.js +151 -0
  1210. package/open-sse/utils/cursorProtobuf.js +999 -0
  1211. package/open-sse/utils/debugLog.js +19 -0
  1212. package/open-sse/utils/error.js +159 -0
  1213. package/open-sse/utils/modelMarkers.js +23 -0
  1214. package/open-sse/utils/ollamaTransform.js +102 -0
  1215. package/open-sse/utils/opencodeFreeUsage.js +115 -0
  1216. package/open-sse/utils/proxyFetch.js +258 -0
  1217. package/open-sse/utils/reasoningContentInjector.js +77 -0
  1218. package/open-sse/utils/requestLogger.js +271 -0
  1219. package/open-sse/utils/responsesStreamHelpers.js +53 -0
  1220. package/open-sse/utils/sessionManager.js +286 -0
  1221. package/open-sse/utils/sse.js +14 -0
  1222. package/open-sse/utils/sseConstants.js +23 -0
  1223. package/open-sse/utils/stream.js +612 -0
  1224. package/open-sse/utils/streamHandler.js +329 -0
  1225. package/open-sse/utils/streamHelpers.js +155 -0
  1226. package/open-sse/utils/toolDeduper.js +49 -0
  1227. package/open-sse/utils/usageTracking.js +473 -0
  1228. package/package.json +118 -0
  1229. package/public/favicon.svg +72 -0
  1230. package/public/i18n/literals/fa.json +1380 -0
  1231. package/public/icons/icon-192.svg +22 -0
  1232. package/public/icons/icon-512.svg +22 -0
  1233. package/public/icons/icon.svg +72 -0
  1234. package/public/providers/agentrouter.png +0 -0
  1235. package/public/providers/alicode-intl.png +0 -0
  1236. package/public/providers/alicode.png +0 -0
  1237. package/public/providers/alims-intl.png +0 -0
  1238. package/public/providers/alitp-intl.png +0 -0
  1239. package/public/providers/amp.png +0 -0
  1240. package/public/providers/anthropic.png +0 -0
  1241. package/public/providers/api-airforce.png +0 -0
  1242. package/public/providers/assemblyai.png +0 -0
  1243. package/public/providers/aws-polly.png +0 -0
  1244. package/public/providers/azure.png +0 -0
  1245. package/public/providers/baidu.png +0 -0
  1246. package/public/providers/bazaarlink.png +0 -0
  1247. package/public/providers/black-forest-labs.png +0 -0
  1248. package/public/providers/blackbox.png +0 -0
  1249. package/public/providers/bluesminds.png +0 -0
  1250. package/public/providers/brave-search.png +0 -0
  1251. package/public/providers/byteplus.png +0 -0
  1252. package/public/providers/cartesia.png +0 -0
  1253. package/public/providers/cerebras.png +0 -0
  1254. package/public/providers/chutes.png +0 -0
  1255. package/public/providers/claude.png +0 -0
  1256. package/public/providers/clinepass.png +0 -0
  1257. package/public/providers/codebuddy-cn.png +0 -0
  1258. package/public/providers/codebuddy-intl.png +0 -0
  1259. package/public/providers/codex.png +0 -0
  1260. package/public/providers/cohere.png +0 -0
  1261. package/public/providers/comfyui.png +0 -0
  1262. package/public/providers/commandcode.png +0 -0
  1263. package/public/providers/continue.png +0 -0
  1264. package/public/providers/coqui.png +0 -0
  1265. package/public/providers/cursor.png +0 -0
  1266. package/public/providers/deepgram.png +0 -0
  1267. package/public/providers/deepseek-tui.png +0 -0
  1268. package/public/providers/deepseek.png +0 -0
  1269. package/public/providers/devin-cli.png +0 -0
  1270. package/public/providers/droid.png +0 -0
  1271. package/public/providers/edge-tts.png +0 -0
  1272. package/public/providers/elevenlabs.png +0 -0
  1273. package/public/providers/exa.png +0 -0
  1274. package/public/providers/fal-ai.png +0 -0
  1275. package/public/providers/featherless.png +0 -0
  1276. package/public/providers/firecrawl.png +0 -0
  1277. package/public/providers/fireworks.png +0 -0
  1278. package/public/providers/fish-audio.png +0 -0
  1279. package/public/providers/gemini.png +0 -0
  1280. package/public/providers/github.png +0 -0
  1281. package/public/providers/gitlab.png +0 -0
  1282. package/public/providers/glm-cn.png +0 -0
  1283. package/public/providers/glm.png +0 -0
  1284. package/public/providers/google-pse.png +0 -0
  1285. package/public/providers/google-tts.png +0 -0
  1286. package/public/providers/grok-cli.png +0 -0
  1287. package/public/providers/grok-web.png +0 -0
  1288. package/public/providers/groq.png +0 -0
  1289. package/public/providers/hermes.png +0 -0
  1290. package/public/providers/huggingface.png +0 -0
  1291. package/public/providers/hyperbolic.png +0 -0
  1292. package/public/providers/iflow.png +0 -0
  1293. package/public/providers/inworld.png +0 -0
  1294. package/public/providers/jcode.png +0 -0
  1295. package/public/providers/jina-ai.png +0 -0
  1296. package/public/providers/jina-reader.png +0 -0
  1297. package/public/providers/kilo-gateway.png +0 -0
  1298. package/public/providers/kilocode.png +0 -0
  1299. package/public/providers/kimchi.png +0 -0
  1300. package/public/providers/kimchi.svg +4 -0
  1301. package/public/providers/linkup.png +0 -0
  1302. package/public/providers/llm7.png +0 -0
  1303. package/public/providers/local-device.png +0 -0
  1304. package/public/providers/longcat.png +0 -0
  1305. package/public/providers/mimo-free.png +0 -0
  1306. package/public/providers/minimax-cn.png +0 -0
  1307. package/public/providers/minimax.png +0 -0
  1308. package/public/providers/mistral.png +0 -0
  1309. package/public/providers/mmf.png +0 -0
  1310. package/public/providers/morph.png +0 -0
  1311. package/public/providers/nanobanana.png +0 -0
  1312. package/public/providers/nebius.png +0 -0
  1313. package/public/providers/novita.png +0 -0
  1314. package/public/providers/nvidia.png +0 -0
  1315. package/public/providers/ollama-local.png +0 -0
  1316. package/public/providers/ollama.png +0 -0
  1317. package/public/providers/openai.png +0 -0
  1318. package/public/providers/openclaw.png +0 -0
  1319. package/public/providers/opencode-go.png +0 -0
  1320. package/public/providers/opencode.png +0 -0
  1321. package/public/providers/opendesign.png +0 -0
  1322. package/public/providers/openrouter.png +0 -0
  1323. package/public/providers/perplexity-agent.png +0 -0
  1324. package/public/providers/perplexity-web.png +0 -0
  1325. package/public/providers/perplexity.png +0 -0
  1326. package/public/providers/playht.png +0 -0
  1327. package/public/providers/poolside.png +0 -0
  1328. package/public/providers/qoder.png +0 -0
  1329. package/public/providers/qwen.png +0 -0
  1330. package/public/providers/recraft.png +0 -0
  1331. package/public/providers/reka.png +0 -0
  1332. package/public/providers/roo.png +0 -0
  1333. package/public/providers/runwayml.png +0 -0
  1334. package/public/providers/sambanova.png +0 -0
  1335. package/public/providers/sdwebui.png +0 -0
  1336. package/public/providers/searchapi.png +0 -0
  1337. package/public/providers/searxng.png +0 -0
  1338. package/public/providers/selfhosted-embedding.png +0 -0
  1339. package/public/providers/selfhosted-stt.png +0 -0
  1340. package/public/providers/selfhosted-tts.png +0 -0
  1341. package/public/providers/serper.png +0 -0
  1342. package/public/providers/siliconflow.png +0 -0
  1343. package/public/providers/stability-ai.png +0 -0
  1344. package/public/providers/tavily.png +0 -0
  1345. package/public/providers/tencent.png +0 -0
  1346. package/public/providers/together.png +0 -0
  1347. package/public/providers/tokenrouter.png +0 -0
  1348. package/public/providers/topaz.png +0 -0
  1349. package/public/providers/tortoise.png +0 -0
  1350. package/public/providers/trae.png +0 -0
  1351. package/public/providers/venice.png +0 -0
  1352. package/public/providers/vercel-ai-gateway.png +0 -0
  1353. package/public/providers/vercel.png +0 -0
  1354. package/public/providers/volcengine-ark.png +0 -0
  1355. package/public/providers/voyage-ai.png +0 -0
  1356. package/public/providers/windsurf.png +0 -0
  1357. package/public/providers/workbuddy.png +0 -0
  1358. package/public/providers/xai.png +0 -0
  1359. package/public/providers/xiaomi-mimo.png +0 -0
  1360. package/public/providers/xiaomi-tokenplan.png +0 -0
  1361. package/public/providers/xquik.png +0 -0
  1362. package/public/providers/youcom.png +0 -0
  1363. package/public/providers/zed.png +0 -0
  1364. package/public/sw.js +22 -0
  1365. package/scripts/dev-local.mjs +67 -0
  1366. package/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.tsx +1140 -0
  1367. package/src/app/(dashboard)/dashboard/basic-chat/page.tsx +5 -0
  1368. package/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.tsx +69 -0
  1369. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/ToolDetailClient.tsx +279 -0
  1370. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/page.tsx +11 -0
  1371. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/ClaudeToolCard.tsx +705 -0
  1372. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/CodexToolCard.tsx +596 -0
  1373. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/CoworkToolCard.tsx +835 -0
  1374. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/DefaultToolCard.tsx +318 -0
  1375. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/DshToolCard.tsx +537 -0
  1376. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/OpenCodeToolCard.tsx +661 -0
  1377. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/ToolSummaryCard.tsx +49 -0
  1378. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/index.ts +7 -0
  1379. package/src/app/(dashboard)/dashboard/cli-tools/components/index.ts +11 -0
  1380. package/src/app/(dashboard)/dashboard/cli-tools/components/shared/ApiKeySelect.tsx +155 -0
  1381. package/src/app/(dashboard)/dashboard/cli-tools/components/shared/BaseUrlSelect.tsx +241 -0
  1382. package/src/app/(dashboard)/dashboard/cli-tools/components/shared/cliEndpointMatch.ts +13 -0
  1383. package/src/app/(dashboard)/dashboard/cli-tools/components/shared/cliEndpointPresets.ts +106 -0
  1384. package/src/app/(dashboard)/dashboard/cli-tools/components/shared/index.ts +4 -0
  1385. package/src/app/(dashboard)/dashboard/cli-tools/page.tsx +7 -0
  1386. package/src/app/(dashboard)/dashboard/combos/page.tsx +901 -0
  1387. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.tsx +414 -0
  1388. package/src/app/(dashboard)/dashboard/console-log/page.tsx +8 -0
  1389. package/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.tsx +434 -0
  1390. package/src/app/(dashboard)/dashboard/endpoint/components/EndpointRow.tsx +35 -0
  1391. package/src/app/(dashboard)/dashboard/endpoint/components/SecurityWarning.tsx +30 -0
  1392. package/src/app/(dashboard)/dashboard/endpoint/components/StatusAlert.tsx +33 -0
  1393. package/src/app/(dashboard)/dashboard/endpoint/endpointConstants.ts +37 -0
  1394. package/src/app/(dashboard)/dashboard/endpoint/endpointPing.ts +33 -0
  1395. package/src/app/(dashboard)/dashboard/endpoint/page.tsx +7 -0
  1396. package/src/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.tsx +350 -0
  1397. package/src/app/(dashboard)/dashboard/media-providers/systemone/page.tsx +124 -0
  1398. package/src/app/(dashboard)/dashboard/page.tsx +7 -0
  1399. package/src/app/(dashboard)/dashboard/profile/page.tsx +905 -0
  1400. package/src/app/(dashboard)/dashboard/providers/[id]/AddApiKeyModal.tsx +380 -0
  1401. package/src/app/(dashboard)/dashboard/providers/[id]/AddCustomModelModal.tsx +171 -0
  1402. package/src/app/(dashboard)/dashboard/providers/[id]/BulkImportCodexModal.tsx +147 -0
  1403. package/src/app/(dashboard)/dashboard/providers/[id]/BulkImportGrokCliModal.tsx +289 -0
  1404. package/src/app/(dashboard)/dashboard/providers/[id]/CompatibleModelsSection.tsx +259 -0
  1405. package/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.tsx +362 -0
  1406. package/src/app/(dashboard)/dashboard/providers/[id]/CooldownTimer.tsx +32 -0
  1407. package/src/app/(dashboard)/dashboard/providers/[id]/EditCompatibleNodeModal.tsx +163 -0
  1408. package/src/app/(dashboard)/dashboard/providers/[id]/ModelRow.tsx +116 -0
  1409. package/src/app/(dashboard)/dashboard/providers/[id]/PassthroughModelsSection.tsx +183 -0
  1410. package/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +1918 -0
  1411. package/src/app/(dashboard)/dashboard/providers/[id]/useOneByOneTest.ts +102 -0
  1412. package/src/app/(dashboard)/dashboard/providers/components/AddCompatibleModal.tsx +185 -0
  1413. package/src/app/(dashboard)/dashboard/providers/components/ConnectionsCard.tsx +476 -0
  1414. package/src/app/(dashboard)/dashboard/providers/components/ModelAvailabilityBadge.tsx +192 -0
  1415. package/src/app/(dashboard)/dashboard/providers/components/ModelsCard.tsx +344 -0
  1416. package/src/app/(dashboard)/dashboard/providers/new/page.tsx +275 -0
  1417. package/src/app/(dashboard)/dashboard/providers/page.tsx +614 -0
  1418. package/src/app/(dashboard)/dashboard/providers/utils.ts +19 -0
  1419. package/src/app/(dashboard)/dashboard/proxy-pools/page.tsx +1305 -0
  1420. package/src/app/(dashboard)/dashboard/pxpipe/PxpipeClient.tsx +404 -0
  1421. package/src/app/(dashboard)/dashboard/pxpipe/page.tsx +5 -0
  1422. package/src/app/(dashboard)/dashboard/quota/page.tsx +11 -0
  1423. package/src/app/(dashboard)/dashboard/token-saver/TokenSaverClient.tsx +1096 -0
  1424. package/src/app/(dashboard)/dashboard/token-saver/page.tsx +5 -0
  1425. package/src/app/(dashboard)/dashboard/usage/components/OverviewCards.tsx +53 -0
  1426. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/ProviderLimitCard.tsx +175 -0
  1427. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaProgressBar.tsx +131 -0
  1428. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.tsx +314 -0
  1429. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.tsx +1507 -0
  1430. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.ts +698 -0
  1431. package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.tsx +550 -0
  1432. package/src/app/(dashboard)/dashboard/usage/components/UsageChart.tsx +152 -0
  1433. package/src/app/(dashboard)/dashboard/usage/components/UsageTable.tsx +249 -0
  1434. package/src/app/(dashboard)/dashboard/usage/page.tsx +70 -0
  1435. package/src/app/(dashboard)/layout.tsx +5 -0
  1436. package/src/app/api/auth/login/route.js +146 -0
  1437. package/src/app/api/auth/logout/route.js +12 -0
  1438. package/src/app/api/auth/oidc/callback/route.js +100 -0
  1439. package/src/app/api/auth/oidc/start/route.js +59 -0
  1440. package/src/app/api/auth/oidc/test/route.js +86 -0
  1441. package/src/app/api/auth/reset-password/route.js +13 -0
  1442. package/src/app/api/auth/saml/acs/route.js +74 -0
  1443. package/src/app/api/auth/saml/metadata/route.js +28 -0
  1444. package/src/app/api/auth/saml/start/route.js +32 -0
  1445. package/src/app/api/auth/saml/test/route.js +84 -0
  1446. package/src/app/api/auth/status/route.js +72 -0
  1447. package/src/app/api/changelog/route.js +28 -0
  1448. package/src/app/api/cli-tools/all-statuses/route.js +32 -0
  1449. package/src/app/api/cli-tools/claude-settings/route.js +266 -0
  1450. package/src/app/api/cli-tools/codex-settings/profiles.js +109 -0
  1451. package/src/app/api/cli-tools/codex-settings/route.js +411 -0
  1452. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +77 -0
  1453. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +116 -0
  1454. package/src/app/api/cli-tools/cowork-settings/route.js +487 -0
  1455. package/src/app/api/cli-tools/dsh-settings/route.ts +254 -0
  1456. package/src/app/api/cli-tools/opencode-settings/route.js +334 -0
  1457. package/src/app/api/combos/[id]/route.js +84 -0
  1458. package/src/app/api/combos/route.js +51 -0
  1459. package/src/app/api/headroom/extras/route.js +54 -0
  1460. package/src/app/api/headroom/proxy/[...path]/route.js +104 -0
  1461. package/src/app/api/headroom/restart/route.js +43 -0
  1462. package/src/app/api/headroom/start/route.js +43 -0
  1463. package/src/app/api/headroom/status/route.js +18 -0
  1464. package/src/app/api/headroom/stop/route.js +14 -0
  1465. package/src/app/api/health/route.js +15 -0
  1466. package/src/app/api/init/route.js +4 -0
  1467. package/src/app/api/keys/[id]/route.js +58 -0
  1468. package/src/app/api/keys/route.js +45 -0
  1469. package/src/app/api/locale/route.js +24 -0
  1470. package/src/app/api/mcp/[plugin]/message/route.js +19 -0
  1471. package/src/app/api/mcp/[plugin]/sse/route.js +35 -0
  1472. package/src/app/api/media-providers/tts/deepgram/voices/route.js +76 -0
  1473. package/src/app/api/media-providers/tts/elevenlabs/voices/route.js +77 -0
  1474. package/src/app/api/media-providers/tts/inworld/voices/route.js +71 -0
  1475. package/src/app/api/media-providers/tts/minimax/voices/route.js +126 -0
  1476. package/src/app/api/media-providers/tts/voices/route.js +110 -0
  1477. package/src/app/api/models/alias/route.js +53 -0
  1478. package/src/app/api/models/availability/route.js +94 -0
  1479. package/src/app/api/models/catalog-sync/route.js +34 -0
  1480. package/src/app/api/models/custom/route.js +66 -0
  1481. package/src/app/api/models/disabled/route.js +50 -0
  1482. package/src/app/api/models/route.js +101 -0
  1483. package/src/app/api/models/test/ping.js +318 -0
  1484. package/src/app/api/models/test/route.js +14 -0
  1485. package/src/app/api/oauth/[provider]/[action]/route.js +604 -0
  1486. package/src/app/api/oauth/codex/bulk-import/route.js +115 -0
  1487. package/src/app/api/oauth/codex/import-token/route.js +93 -0
  1488. package/src/app/api/oauth/cursor/auto-import/route.js +238 -0
  1489. package/src/app/api/oauth/cursor/import/route.js +91 -0
  1490. package/src/app/api/oauth/gitlab/pat/route.js +65 -0
  1491. package/src/app/api/oauth/grok-cli/bulk-import/route.js +107 -0
  1492. package/src/app/api/oauth/iflow/cookie/route.js +139 -0
  1493. package/src/app/api/oauth/xiaomi-mimo/api-key/route.js +129 -0
  1494. package/src/app/api/oauth/xiaomi-mimo/auto-import/route.js +135 -0
  1495. package/src/app/api/pricing/route.js +121 -0
  1496. package/src/app/api/provider-nodes/[id]/route.js +113 -0
  1497. package/src/app/api/provider-nodes/route.js +112 -0
  1498. package/src/app/api/provider-nodes/validate/route.js +222 -0
  1499. package/src/app/api/providers/[id]/models/route.js +579 -0
  1500. package/src/app/api/providers/[id]/route.js +189 -0
  1501. package/src/app/api/providers/[id]/test/route.js +23 -0
  1502. package/src/app/api/providers/[id]/test/testUtils.js +1107 -0
  1503. package/src/app/api/providers/[id]/test-models/route.js +79 -0
  1504. package/src/app/api/providers/client/route.js +163 -0
  1505. package/src/app/api/providers/kilo/free-models/route.js +55 -0
  1506. package/src/app/api/providers/route.js +218 -0
  1507. package/src/app/api/providers/suggested-models/filters.js +42 -0
  1508. package/src/app/api/providers/suggested-models/route.js +32 -0
  1509. package/src/app/api/providers/test-batch/route.js +133 -0
  1510. package/src/app/api/providers/validate/route.js +700 -0
  1511. package/src/app/api/proxy-pools/[id]/route.js +152 -0
  1512. package/src/app/api/proxy-pools/[id]/test/route.js +72 -0
  1513. package/src/app/api/proxy-pools/cloudflare-deploy/route.js +167 -0
  1514. package/src/app/api/proxy-pools/deno-deploy/route.js +172 -0
  1515. package/src/app/api/proxy-pools/route.js +93 -0
  1516. package/src/app/api/proxy-pools/vercel-deploy/route.js +142 -0
  1517. package/src/app/api/pxpipe/health/route.js +16 -0
  1518. package/src/app/api/pxpipe/install/route.js +20 -0
  1519. package/src/app/api/pxpipe/logs/route.js +18 -0
  1520. package/src/app/api/pxpipe/restart/route.js +16 -0
  1521. package/src/app/api/pxpipe/start/route.js +29 -0
  1522. package/src/app/api/pxpipe/stats/route.js +14 -0
  1523. package/src/app/api/pxpipe/status/route.js +21 -0
  1524. package/src/app/api/pxpipe/stop/route.js +16 -0
  1525. package/src/app/api/settings/database/route.js +54 -0
  1526. package/src/app/api/settings/proxy-test/route.js +27 -0
  1527. package/src/app/api/settings/require-login/route.js +15 -0
  1528. package/src/app/api/settings/route.js +149 -0
  1529. package/src/app/api/shutdown/route.js +26 -0
  1530. package/src/app/api/tags/route.js +17 -0
  1531. package/src/app/api/translator/console-logs/route.js +24 -0
  1532. package/src/app/api/translator/console-logs/stream/route.js +98 -0
  1533. package/src/app/api/translator/load/route.js +48 -0
  1534. package/src/app/api/translator/save/route.js +47 -0
  1535. package/src/app/api/translator/send/route.js +105 -0
  1536. package/src/app/api/translator/translate/route.js +118 -0
  1537. package/src/app/api/tunnel/disable/route.js +17 -0
  1538. package/src/app/api/tunnel/enable/route.js +21 -0
  1539. package/src/app/api/tunnel/status/route.js +25 -0
  1540. package/src/app/api/tunnel/tailscale-check/route.js +77 -0
  1541. package/src/app/api/tunnel/tailscale-disable/route.js +17 -0
  1542. package/src/app/api/tunnel/tailscale-enable/route.js +17 -0
  1543. package/src/app/api/tunnel/tailscale-install/route.js +98 -0
  1544. package/src/app/api/usage/[connectionId]/codex-reset-credits/route.js +196 -0
  1545. package/src/app/api/usage/[connectionId]/route.js +192 -0
  1546. package/src/app/api/usage/chart/route.js +21 -0
  1547. package/src/app/api/usage/history/route.js +12 -0
  1548. package/src/app/api/usage/logs/route.js +12 -0
  1549. package/src/app/api/usage/providers/route.js +38 -0
  1550. package/src/app/api/usage/request-details/route.js +65 -0
  1551. package/src/app/api/usage/request-logs/route.js +13 -0
  1552. package/src/app/api/usage/stats/route.js +23 -0
  1553. package/src/app/api/usage/stream/route.js +93 -0
  1554. package/src/app/api/v1/api/chat/route.js +36 -0
  1555. package/src/app/api/v1/audio/speech/route.js +16 -0
  1556. package/src/app/api/v1/audio/transcriptions/route.js +19 -0
  1557. package/src/app/api/v1/audio/voices/route.js +78 -0
  1558. package/src/app/api/v1/chat/completions/route.js +34 -0
  1559. package/src/app/api/v1/embeddings/route.js +21 -0
  1560. package/src/app/api/v1/images/generations/route.js +16 -0
  1561. package/src/app/api/v1/messages/count_tokens/route.js +96 -0
  1562. package/src/app/api/v1/messages/route.js +35 -0
  1563. package/src/app/api/v1/models/[...model]/route.js +75 -0
  1564. package/src/app/api/v1/models/info/route.js +131 -0
  1565. package/src/app/api/v1/models/route.js +586 -0
  1566. package/src/app/api/v1/responses/compact/route.js +37 -0
  1567. package/src/app/api/v1/responses/route.js +30 -0
  1568. package/src/app/api/v1/route.js +1 -0
  1569. package/src/app/api/v1/search/route.js +21 -0
  1570. package/src/app/api/v1/systemone/route.js +21 -0
  1571. package/src/app/api/v1/videos/[id]/route.js +17 -0
  1572. package/src/app/api/v1/videos/edits/route.js +16 -0
  1573. package/src/app/api/v1/videos/extensions/route.js +16 -0
  1574. package/src/app/api/v1/videos/generations/route.js +16 -0
  1575. package/src/app/api/v1/web/fetch/route.js +21 -0
  1576. package/src/app/api/v1beta/models/[...path]/route.js +599 -0
  1577. package/src/app/api/v1beta/models/route.js +62 -0
  1578. package/src/app/api/version/route.js +15 -0
  1579. package/src/app/api/version/shutdown/route.js +38 -0
  1580. package/src/app/api/version/update/route.js +11 -0
  1581. package/src/app/callback/page.tsx +162 -0
  1582. package/src/app/dashboard/settings/pricing/page.tsx +192 -0
  1583. package/src/app/globals.css +356 -0
  1584. package/src/app/landing/components/AnimatedBackground.tsx +58 -0
  1585. package/src/app/landing/components/Features.tsx +137 -0
  1586. package/src/app/landing/components/FlowAnimation.tsx +168 -0
  1587. package/src/app/landing/components/Footer.tsx +110 -0
  1588. package/src/app/landing/components/GetStarted.tsx +105 -0
  1589. package/src/app/landing/components/HeroSection.tsx +48 -0
  1590. package/src/app/landing/components/HowItWorks.tsx +69 -0
  1591. package/src/app/landing/components/Navigation.tsx +120 -0
  1592. package/src/app/landing/page.tsx +131 -0
  1593. package/src/app/layout.tsx +60 -0
  1594. package/src/app/login/page.tsx +277 -0
  1595. package/src/app/manifest.ts +33 -0
  1596. package/src/app/page.tsx +5 -0
  1597. package/src/components/app-sidebar.tsx +140 -0
  1598. package/src/components/ui/alert.tsx +72 -0
  1599. package/src/components/ui/avatar.tsx +93 -0
  1600. package/src/components/ui/badge.tsx +44 -0
  1601. package/src/components/ui/breadcrumb.tsx +103 -0
  1602. package/src/components/ui/button.tsx +66 -0
  1603. package/src/components/ui/card.tsx +91 -0
  1604. package/src/components/ui/chart.tsx +338 -0
  1605. package/src/components/ui/checkbox.tsx +26 -0
  1606. package/src/components/ui/dialog.tsx +152 -0
  1607. package/src/components/ui/dropdown-menu.tsx +249 -0
  1608. package/src/components/ui/input.tsx +18 -0
  1609. package/src/components/ui/label.tsx +18 -0
  1610. package/src/components/ui/pagination.tsx +112 -0
  1611. package/src/components/ui/select.tsx +184 -0
  1612. package/src/components/ui/separator.tsx +25 -0
  1613. package/src/components/ui/sheet.tsx +128 -0
  1614. package/src/components/ui/sidebar.tsx +671 -0
  1615. package/src/components/ui/skeleton.tsx +13 -0
  1616. package/src/components/ui/switch.tsx +32 -0
  1617. package/src/components/ui/table.tsx +86 -0
  1618. package/src/components/ui/tabs.tsx +79 -0
  1619. package/src/components/ui/tooltip.tsx +50 -0
  1620. package/src/dashboardGuard.ts +298 -0
  1621. package/src/hooks/use-mobile.ts +19 -0
  1622. package/src/i18n/RuntimeI18nProvider.tsx +28 -0
  1623. package/src/i18n/config.ts +19 -0
  1624. package/src/i18n/runtime.ts +177 -0
  1625. package/src/instrumentation.ts +14 -0
  1626. package/src/lib/auth/dashboardSession.js +112 -0
  1627. package/src/lib/auth/loginLimiter.js +70 -0
  1628. package/src/lib/auth/oidc.js +242 -0
  1629. package/src/lib/auth/saml.js +273 -0
  1630. package/src/lib/auth/trustedPeer.js +7 -0
  1631. package/src/lib/consoleLogBuffer.js +114 -0
  1632. package/src/lib/dataDir.js +78 -0
  1633. package/src/lib/db/adapters/betterSqliteAdapter.js +83 -0
  1634. package/src/lib/db/adapters/bunSqliteAdapter.js +83 -0
  1635. package/src/lib/db/adapters/nodeSqliteAdapter.js +111 -0
  1636. package/src/lib/db/adapters/sqljsAdapter.js +128 -0
  1637. package/src/lib/db/backup.js +88 -0
  1638. package/src/lib/db/driver.js +94 -0
  1639. package/src/lib/db/helpers/jsonCol.js +13 -0
  1640. package/src/lib/db/helpers/kvStore.js +45 -0
  1641. package/src/lib/db/helpers/metaStore.js +28 -0
  1642. package/src/lib/db/index.js +312 -0
  1643. package/src/lib/db/migrate.js +427 -0
  1644. package/src/lib/db/migrations/001-initial.js +14 -0
  1645. package/src/lib/db/migrations/index.js +10 -0
  1646. package/src/lib/db/paths.js +18 -0
  1647. package/src/lib/db/repos/aliasRepo.js +63 -0
  1648. package/src/lib/db/repos/apiKeysRepo.js +78 -0
  1649. package/src/lib/db/repos/combosRepo.js +83 -0
  1650. package/src/lib/db/repos/connectionsRepo.js +347 -0
  1651. package/src/lib/db/repos/disabledModelsRepo.js +56 -0
  1652. package/src/lib/db/repos/nodesRepo.js +98 -0
  1653. package/src/lib/db/repos/pricingRepo.js +108 -0
  1654. package/src/lib/db/repos/proxyPoolsRepo.js +109 -0
  1655. package/src/lib/db/repos/requestDetailsRepo.js +287 -0
  1656. package/src/lib/db/repos/settingsRepo.js +123 -0
  1657. package/src/lib/db/repos/usageRepo.js +1043 -0
  1658. package/src/lib/db/schema.js +161 -0
  1659. package/src/lib/db/version.js +21 -0
  1660. package/src/lib/grokBuildConfig.js +228 -0
  1661. package/src/lib/headroom/detect.js +212 -0
  1662. package/src/lib/headroom/process.js +307 -0
  1663. package/src/lib/isContainer.js +62 -0
  1664. package/src/lib/localDb.js +51 -0
  1665. package/src/lib/logLine.js +204 -0
  1666. package/src/lib/mcp/stdioSseBridge.js +223 -0
  1667. package/src/lib/modelCatalog/sync.js +292 -0
  1668. package/src/lib/network/connectionProxy.js +172 -0
  1669. package/src/lib/network/initOutboundProxy.js +25 -0
  1670. package/src/lib/network/outboundProxy.js +87 -0
  1671. package/src/lib/network/proxyTest.js +88 -0
  1672. package/src/lib/network/resolveOutboundProxy.js +45 -0
  1673. package/src/lib/oauth/constants/oauth.js +213 -0
  1674. package/src/lib/oauth/constants/xai.js +62 -0
  1675. package/src/lib/oauth/providerHelpers.js +74 -0
  1676. package/src/lib/oauth/providers/_shared.js +17 -0
  1677. package/src/lib/oauth/providers/antigravity.js +119 -0
  1678. package/src/lib/oauth/providers/claude.js +60 -0
  1679. package/src/lib/oauth/providers/codebuddy-cn.js +80 -0
  1680. package/src/lib/oauth/providers/codebuddy-intl.js +75 -0
  1681. package/src/lib/oauth/providers/codex.js +69 -0
  1682. package/src/lib/oauth/providers/cursor.js +19 -0
  1683. package/src/lib/oauth/providers/github.js +98 -0
  1684. package/src/lib/oauth/providers/gitlab.js +64 -0
  1685. package/src/lib/oauth/providers/grok-cli.js +123 -0
  1686. package/src/lib/oauth/providers/iflow.js +89 -0
  1687. package/src/lib/oauth/providers/index.js +243 -0
  1688. package/src/lib/oauth/providers/kilocode.js +75 -0
  1689. package/src/lib/oauth/providers/kimchi.js +76 -0
  1690. package/src/lib/oauth/providers/qoder.js +111 -0
  1691. package/src/lib/oauth/providers/trae.js +337 -0
  1692. package/src/lib/oauth/providers/windsurf.js +172 -0
  1693. package/src/lib/oauth/providers/xai.js +101 -0
  1694. package/src/lib/oauth/providers/xiaomi-mimo.js +120 -0
  1695. package/src/lib/oauth/providers/zed.js +68 -0
  1696. package/src/lib/oauth/providers.js +1 -0
  1697. package/src/lib/oauth/services/antigravity.js +322 -0
  1698. package/src/lib/oauth/services/claude.js +135 -0
  1699. package/src/lib/oauth/services/codex.js +149 -0
  1700. package/src/lib/oauth/services/cursor.js +179 -0
  1701. package/src/lib/oauth/services/github.js +227 -0
  1702. package/src/lib/oauth/services/iflow.js +201 -0
  1703. package/src/lib/oauth/services/index.js +13 -0
  1704. package/src/lib/oauth/services/kimchi.js +139 -0
  1705. package/src/lib/oauth/services/oauth.js +161 -0
  1706. package/src/lib/oauth/services/openai.js +122 -0
  1707. package/src/lib/oauth/services/qoder.js +237 -0
  1708. package/src/lib/oauth/services/xai.js +241 -0
  1709. package/src/lib/oauth/utils/banner.js +62 -0
  1710. package/src/lib/oauth/utils/ideDetect.js +64 -0
  1711. package/src/lib/oauth/utils/pkce.js +39 -0
  1712. package/src/lib/oauth/utils/server.js +1056 -0
  1713. package/src/lib/oauth/utils/ui.js +47 -0
  1714. package/src/lib/providerNormalization.js +49 -0
  1715. package/src/lib/pxpipe/events.js +146 -0
  1716. package/src/lib/pxpipe/install.js +143 -0
  1717. package/src/lib/pxpipe/loader.js +76 -0
  1718. package/src/lib/pxpipe/service.js +69 -0
  1719. package/src/lib/qoder/constants.js +2 -0
  1720. package/src/lib/qoder/cosy.js +2 -0
  1721. package/src/lib/qoder/encoding.js +2 -0
  1722. package/src/lib/tunnel/cloudflare/cloudflared.js +513 -0
  1723. package/src/lib/tunnel/cloudflare/config.js +9 -0
  1724. package/src/lib/tunnel/cloudflare/healthCheck.js +33 -0
  1725. package/src/lib/tunnel/cloudflare/manager.js +174 -0
  1726. package/src/lib/tunnel/cloudflare/pid.js +31 -0
  1727. package/src/lib/tunnel/index.js +53 -0
  1728. package/src/lib/tunnel/shared/dnsResolver.js +20 -0
  1729. package/src/lib/tunnel/shared/internetCheck.js +33 -0
  1730. package/src/lib/tunnel/shared/state.js +45 -0
  1731. package/src/lib/tunnel/shared/watchdogConfig.js +9 -0
  1732. package/src/lib/tunnel/sudoExec.js +49 -0
  1733. package/src/lib/tunnel/sudoPassword.js +90 -0
  1734. package/src/lib/tunnel/tailscale/config.js +7 -0
  1735. package/src/lib/tunnel/tailscale/healthCheck.js +33 -0
  1736. package/src/lib/tunnel/tailscale/manager.js +151 -0
  1737. package/src/lib/tunnel/tailscale/tailscale.js +1013 -0
  1738. package/src/lib/usageDb.js +15 -0
  1739. package/src/lib/versionCheck.js +67 -0
  1740. package/src/models/index.ts +38 -0
  1741. package/src/proxy.ts +10 -0
  1742. package/src/shared/components/AddCustomEmbeddingModal.tsx +220 -0
  1743. package/src/shared/components/CapacityBadges.tsx +47 -0
  1744. package/src/shared/components/ChangelogModal.tsx +82 -0
  1745. package/src/shared/components/ComboFormModal.tsx +321 -0
  1746. package/src/shared/components/CursorAuthModal.tsx +213 -0
  1747. package/src/shared/components/EditConnectionModal.tsx +369 -0
  1748. package/src/shared/components/EntityCard.tsx +106 -0
  1749. package/src/shared/components/EntityCardSkeleton.tsx +69 -0
  1750. package/src/shared/components/Footer.tsx +133 -0
  1751. package/src/shared/components/GitLabAuthModal.tsx +294 -0
  1752. package/src/shared/components/Header.tsx +370 -0
  1753. package/src/shared/components/HeaderLanguage.tsx +53 -0
  1754. package/src/shared/components/HeaderMenu.tsx +75 -0
  1755. package/src/shared/components/IFlowCookieModal.tsx +140 -0
  1756. package/src/shared/components/Icon.tsx +237 -0
  1757. package/src/shared/components/LanguageSwitcher.tsx +139 -0
  1758. package/src/shared/components/Loading.tsx +102 -0
  1759. package/src/shared/components/ManualConfigModal.tsx +55 -0
  1760. package/src/shared/components/McpMarketplaceModal.tsx +320 -0
  1761. package/src/shared/components/Modal.tsx +130 -0
  1762. package/src/shared/components/ModelSelectModal.tsx +755 -0
  1763. package/src/shared/components/NineRemoteButton.tsx +28 -0
  1764. package/src/shared/components/NineRemotePromoModal.tsx +91 -0
  1765. package/src/shared/components/NoAuthProxyCard.tsx +178 -0
  1766. package/src/shared/components/OAuthModal.tsx +1055 -0
  1767. package/src/shared/components/PricingModal.tsx +202 -0
  1768. package/src/shared/components/ProviderIcon.tsx +80 -0
  1769. package/src/shared/components/ProviderInfoCard.tsx +98 -0
  1770. package/src/shared/components/RequestLogger.tsx +149 -0
  1771. package/src/shared/components/SegmentedControl.tsx +45 -0
  1772. package/src/shared/components/ShutdownModal.tsx +65 -0
  1773. package/src/shared/components/ThemeProvider.tsx +15 -0
  1774. package/src/shared/components/ThemeToggle.tsx +52 -0
  1775. package/src/shared/components/UpdateDialog.tsx +248 -0
  1776. package/src/shared/components/UsageStats.tsx +714 -0
  1777. package/src/shared/components/VersionLabel.tsx +122 -0
  1778. package/src/shared/components/XiaomiMimoAuthModal.tsx +277 -0
  1779. package/src/shared/components/index.ts +32 -0
  1780. package/src/shared/components/layouts/AuthLayout.tsx +22 -0
  1781. package/src/shared/components/layouts/DashboardLayout.tsx +105 -0
  1782. package/src/shared/components/layouts/Page.tsx +158 -0
  1783. package/src/shared/components/layouts/index.ts +4 -0
  1784. package/src/shared/constants/cliTools.js +123 -0
  1785. package/src/shared/constants/colors.ts +92 -0
  1786. package/src/shared/constants/config.ts +100 -0
  1787. package/src/shared/constants/coworkPlugins.ts +113 -0
  1788. package/src/shared/constants/index.ts +3 -0
  1789. package/src/shared/constants/locales.ts +5 -0
  1790. package/src/shared/constants/models.ts +65 -0
  1791. package/src/shared/constants/providers.js +236 -0
  1792. package/src/shared/constants/providersDisplay.ts +15 -0
  1793. package/src/shared/constants/ttsProviders.ts +166 -0
  1794. package/src/shared/hooks/index.js +3 -0
  1795. package/src/shared/hooks/useCopyToClipboard.js +45 -0
  1796. package/src/shared/hooks/useModelCaps.js +91 -0
  1797. package/src/shared/hooks/useShutdown.ts +68 -0
  1798. package/src/shared/hooks/useTheme.js +59 -0
  1799. package/src/shared/services/bootstrap.ts +13 -0
  1800. package/src/shared/services/initializeApp.ts +323 -0
  1801. package/src/shared/services/quotaAutoPing.ts +400 -0
  1802. package/src/shared/utils/api.ts +100 -0
  1803. package/src/shared/utils/apiKey.ts +92 -0
  1804. package/src/shared/utils/bulkAdd.ts +87 -0
  1805. package/src/shared/utils/cn.ts +7 -0
  1806. package/src/shared/utils/connectionStatus.ts +14 -0
  1807. package/src/shared/utils/index.ts +40 -0
  1808. package/src/shared/utils/machine.ts +6 -0
  1809. package/src/shared/utils/machineId.ts +70 -0
  1810. package/src/shared/utils/providerCustomModels.ts +80 -0
  1811. package/src/shared/utils/providerIcon.ts +248 -0
  1812. package/src/shared/utils/providerModelsFetcher.ts +33 -0
  1813. package/src/shared/utils/ssrfGuard.ts +223 -0
  1814. package/src/shared/utils/utils.js +1 -0
  1815. package/src/sse/handlers/chat.js +430 -0
  1816. package/src/sse/handlers/embeddings.js +192 -0
  1817. package/src/sse/handlers/fetch.js +255 -0
  1818. package/src/sse/handlers/imageGeneration.js +175 -0
  1819. package/src/sse/handlers/search.js +260 -0
  1820. package/src/sse/handlers/stt.js +120 -0
  1821. package/src/sse/handlers/systemone.js +173 -0
  1822. package/src/sse/handlers/tts.js +157 -0
  1823. package/src/sse/handlers/videoGeneration.js +274 -0
  1824. package/src/sse/services/antigravityQuota.ts +220 -0
  1825. package/src/sse/services/auth.ts +485 -0
  1826. package/src/sse/services/backgroundTokenRefresh.ts +190 -0
  1827. package/src/sse/services/model.ts +102 -0
  1828. package/src/sse/services/tokenRefresh.ts +328 -0
  1829. package/src/sse/services/zedQuota.ts +233 -0
  1830. package/src/sse/utils/logger.ts +140 -0
  1831. package/src/store/headerSearchStore.ts +27 -0
  1832. package/src/store/index.ts +5 -0
  1833. package/src/store/notificationStore.ts +75 -0
  1834. package/src/store/providerStore.ts +75 -0
  1835. package/src/store/settingsStore.ts +63 -0
  1836. package/src/store/themeStore.ts +48 -0
  1837. package/src/store/userStore.ts +35 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5496,exports.ids=[5496],exports.modules={25496:(a,b,c)=>{c.d(b,{Op:()=>W,Nq:()=>F,PE:()=>Y});var d=c(4573),e=c(88115),f=c(97508);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}function j(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}let k={token:null,tokenTime:0},l=0;async function m(){let a=Date.now();if(k.token&&a-k.tokenTime<66e4)return k.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return k.token={"f.sid":d,bl:e},k.tokenTime=a,k.token}let n={token:null,tokenTime:0},o=null,p=0;async function q(){let a=Date.now();if(n.token&&a-n.tokenTime<3e5)return n.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return n.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},n.tokenTime=a,n.token}async function r(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`<speak version='1.0' xml:lang='${d}'><voice xml:lang='${d}' xml:gender='${e}' name='${b}'><prosody rate='0.00%'>${a}</prosody></voice></speak>`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function s(){let a=Date.now();if(o&&a-p<864e5)return o;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return o=c,p=a,c}var t=c(31421),u=c(57975),v=c(51455),w=c(48161),x=c(76760);let y=(0,u.promisify)(t.execFile),z=null;async function A(){let{stdout:a}=await y("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function B(){let{stdout:a}=await y("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function C(){if(z)return z;try{let a="win32"===process.platform?await B():await A();return z=a,a}catch{return[]}}async function D(a,b){let c=await (0,v.mkdtemp)((0,x.join)((0,w.tmpdir)(),"tts-")),d=(0,x.join)(c,"out.aiff"),e=(0,x.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await y("say",c),await y("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,v.readFile)(e)).toString("base64")}finally{await (0,v.rm)(c,{recursive:!0,force:!0})}}let E=new Map;async function F(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=E.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return E.set(a,{voices:e,time:b}),e}var G=c(87156);let H=G.B$.openai?.ttsConfig?.defaultModel,I=G.B$.openrouter?.ttsConfig||{},J=G.B$.gemini?.ttsConfig||{},K=J.baseUrl,L=[...J.models||[],...G.vq["gemini-tts-models"]||[],...(G.vq.gemini||[]).filter(a=>"tts"===(a.kind||a.type))].map(a=>a?.id).filter(Boolean).filter((a,b,c)=>c.indexOf(a)===b),M=L[0]||"gemini-3.1-flash-tts-preview",N="Kore",O=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function P(){return O.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let Q="mimo-v2.5-tts",R="mimo_default";async function S(a,b,c,d,e){let{modelId:f,voiceId:g}=j(b,Q,R,[Q]),h=[];e&&h.push(`Speak in ${e}.`),d&&h.push(d);let i=[{role:"assistant",content:a}];h.length&&i.unshift({role:"user",content:h.join(" ")});let k=await fetch("https://api.xiaomimimo.com/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify({model:f,stream:!1,messages:i,audio:{format:"wav",voice:g||R}})}),l=await k.text(),m={};if(l)try{m=JSON.parse(l)}catch{m={}}if(!k.ok)throw Error(m?.error?.message||l||`MiMo TTS error (${k.status})`);let n=m?.choices?.[0]?.message?.audio?.data;if(!n)throw Error(m?.error?.message||"MiMo TTS returned no audio");return{base64:n,format:m?.choices?.[0]?.message?.audio?.format||"wav"}}let T={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")},"minimax-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:e,voiceId:f}){let g=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({model:e||"speech-2.8-hd",text:c,stream:!1,language_boost:"auto",output_format:"hex",voice_setting:{voice_id:f||"English_expressive_narrator",speed:1,vol:1,pitch:0},audio_setting:{sample_rate:32e3,bitrate:128e3,format:"mp3",channel:1}})}),h=await g.text(),i={};if(h)try{i=JSON.parse(h)}catch{i={}}let j=i.base_resp||i.baseResp||{},k=Number(j.status_code??j.statusCode??0),l=j.status_msg||j.statusMsg||i.message||"";if(!g.ok)throw Error(l||h||`MiniMax TTS error (${g.status})`);if(0!==k)throw Error(l||"MiniMax TTS upstream error");return{base64:function(a){let b="string"==typeof a?a.trim():"";if(!b)throw Error("MiniMax TTS returned no audio");if(b.length%2!=0||!/^[0-9a-f]+$/i.test(b))throw Error("MiniMax TTS returned invalid audio");return d.Buffer.from(b,"hex").toString("base64")}(i.data?.audio),format:i.extra_info?.audio_format||i.extraInfo?.audioFormat||"mp3"}},"fish-audio":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`,model:d||"s2.1-pro-free"},body:JSON.stringify({text:c,format:"mp3",...e?{reference_id:e}:{}})});return f.ok||await i(f),h(f,"mp3")}},U={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await m(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++l+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let k=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!k.ok)throw Error(`Google TTS failed: ${k.status}`);let n=JSON.parse(JSON.parse((await k.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await q(),f=await r(a,c,e);if((429===f.status||403===f.status)&&(n.token=null,n.tokenTime=0,e=await q(),f=await r(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await D(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e=H,f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d=I.defaultModel,e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch(I.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,...I.headers||{}},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:M,voiceId:N};for(let b of L){if(a===b)return{modelId:b,voiceId:N};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:M,voiceId:a}}(b),m=`${K}/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}},"xiaomi-mimo":{synthesize(a,b,c,d,{style:e,language:f}={}){if(!c?.apiKey)throw Error("xiaomi-mimo API key required");return S(a,b,c.apiKey,e,f)}},"selfhosted-tts":{async synthesize(a,b,c,e="mp3"){let f=String(c?.providerSpecificData?.baseUrl||c?.baseUrl||"http://localhost:8880").replace(/\/+$/,"").replace(/\/v1\/audio\/speech$/,"").replace(/\/v1$/,""),g="kokoro",h="af_heart";if(b){let a=String(b).split("/").filter(Boolean);a.length>=2?(g=a[0],h=a.slice(1).join("/")):1===a.length&&(g=a[0])}let i=await fetch(`${f}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",...c?.apiKey?{Authorization:`Bearer ${c.apiKey}`}:{}},body:JSON.stringify({model:g,voice:h,input:a,response_format:e})});if(!i.ok){let a=await i.json().catch(()=>({}));throw Error(a?.error?.message||`Self-hosted TTS failed: ${i.status}`)}let j=await i.arrayBuffer();return{base64:d.Buffer.from(j).toString("base64"),format:e}}}};async function V(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(9287).then(c.bind(c,19287)),g=f[a]?.ttsConfig;if(!g)return null;let h=T[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{PROVIDER_MODELS:k}=await c.e(8567).then(c.bind(c,28567)),l=(k[a]||[]).filter(a=>"tts"===(a.kind||a.type)),{modelId:m,voiceId:n}=j(d,l[0]?.id||"","",l);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:m,voiceId:n})}let W={"edge-tts":s,"local-device":C,elevenlabs:F,gemini:P};function X(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function Y({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h,style:i}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let j=U[a]||null;if(j){let a=await j.synthesize(c.trim(),b,d,g,{language:h,style:i});if(void 0!==a.success)return a;return X(a.base64,a.format,g)}let k=await V(a,c.trim(),b,d);if(k)return X(k.base64,k.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=5761,exports.ids=[5761],exports.modules={7437:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(49734),e=c(34948);let f={config:d.RY,flowType:"authorization_code",callbackPath:"/",prepareConfig:async(a,b)=>{let c=Number(b?.nativeAppPort)||d.RY.defaultNativeAppPort,f=(0,e.le)(a,{nativeAppPort:c});return{...a,...f}},buildAuthUrl:(a,b,c)=>a.authUrl,exchangeToken:async(a,b,c,d,f,g)=>{let{userId:h,encryptedAccessToken:i}=(0,e.Q_)(b);return{accessToken:(0,e.Wc)(i,d),userId:h,systemId:g?.systemId||a.systemId}},postExchange:async a=>{let b={accessToken:a.accessToken,providerSpecificData:{userId:a.userId,systemId:a.systemId}},c=null;try{c=await (0,e.qJ)(b,{config:d.RY})}catch{}let f=(0,e.k9)(b,c);return{userInfo:c,organizationId:f,email:c?.email||null,name:c?.name||c?.display_name||null}},mapTokens:(a,b)=>({accessToken:a.accessToken,refreshToken:null,expiresIn:null,email:b?.email||void 0,displayName:b?.name||void 0,providerSpecificData:{authMethod:"oauth",userId:a.userId,systemId:a.systemId,organizationId:b?.organizationId||""}})}},10214:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).OV,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d)=>{let e=new URLSearchParams({code:"true",client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c});return`${a.authorizeUrl}?${e.toString()}`},exchangeToken:async(a,b,c,d,e)=>{let f=b,g="";if(f.includes("#")){let a=f.split("#");f=a[0],g=a[1]||""}let h=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({code:f,state:g||e,grant_type:"authorization_code",client_id:a.clientId,redirect_uri:c,code_verifier:d})});if(!h.ok){let a=await h.text();throw Error(`Token exchange failed: ${a}`)}return await h.json()},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope})}},14303:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).Nl,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(`${a.stateUrl}?platform=${a.platform}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:"{}"});if(!b.ok)throw Error(`CodeBuddy state request failed: ${await b.text()}`);let c=await b.json();if(0!==c.code||!c.data?.state||!c.data?.authUrl)throw Error(`CodeBuddy state error: ${c.msg||"missing state/authUrl"}`);return{device_code:c.data.state,verification_uri:c.data.authUrl,user_code:"",interval:a.pollInterval/1e3,_isCodeBuddy:!0}},pollToken:async(a,b)=>{let c=await fetch(`${a.tokenUrl}?state=${encodeURIComponent(b)}`,{method:"GET",headers:{Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"copilot.tencent.com","X-No-Authorization":"true","X-No-User-Id":"true","X-No-Enterprise-Id":"true","X-No-Department-Info":"true","X-Product":"SaaS"}});if(!c.ok)return{ok:!1,data:{error:"request_failed"}};let d=await c.json();return 0===d.code&&d.data?.accessToken?{ok:!0,data:{access_token:d.data.accessToken,refresh_token:d.data.refreshToken||"",token_type:d.data.tokenType||"Bearer",expires_in:d.data.expiresIn}}:11217===d.code?{ok:!0,data:{error:"authorization_pending"}}:{ok:!1,data:{error:d.msg||"unknown_error"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in||86400,providerSpecificData:{}})}},24428:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(49734);let e={config:d.YT,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({client_id:a.clientId,response_type:"code",redirect_uri:b,scope:a.scopes.join(" "),state:c,access_type:"offline",prompt:"consent"});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,client_secret:a.clientSecret,code:b,redirect_uri:c})});if(!d.ok){let a=await d.text();throw Error(`Token exchange failed: ${a}`)}return await d.json()},postExchange:async a=>{let b={Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json","User-Agent":d.YT.loadCodeAssistUserAgent,"x-request-source":"local"},c=(0,d.cD)(),e=await fetch(`${d.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`,"x-request-source":"local"}}),f=e.ok?await e.json():{},g="",h="legacy-tier";try{let a=await fetch(d.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c})});if(a.ok){let b=await a.json();if(g=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){h=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return g&&(async()=>{for(let a=0;a<10;a++){try{let a=await fetch(d.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:h,metadata:c})});if(a.ok){let b=await a.json();if(!0===b.done)break}}catch(a){break}await new Promise(a=>setTimeout(a,5e3))}})().catch(()=>{}),{userInfo:f,projectId:g}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,email:b?.userInfo?.email,projectId:b?.projectId})}},25150:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Gj:()=>B,PY:()=>E,Re:()=>C,Su:()=>D,YR:()=>g.YR,kP:()=>A,sO:()=>z});var e=c(36343),f=c(99208),g=c(31793),h=c(10214),i=c(88097),j=c(94368),k=c(41396),l=c(24428),m=c(93293),n=c(46150),o=c(72363),p=c(31894),q=c(60688),r=c(96771),s=c(14303),t=c(72433),u=c(92851),v=c(26712),w=c(53894),x=c(7437),y=a([e]);e=(y.then?(await y)():y)[0];let F={claude:h.A,codex:i.A,xai:j.A,"grok-cli":k.A,antigravity:l.A,iflow:m.A,qoder:n.A,github:o.A,cursor:p.A,kilocode:q.A,gitlab:r.A,"codebuddy-cn":s.A,"codebuddy-intl":t.A,kimchi:u.A,trae:v.A,windsurf:w.A,zed:x.A};function z(a){let b=F[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}async function A(a,b,c){let d=z(a),e=d.prepareConfig?await d.prepareConfig(d.config,c||{}):d.config,{codeVerifier:g,codeChallenge:h,state:i}=(0,f.lz)(d.pkceVerifierBytes),j=e.loginTraceID||i,k=e.privateKeyVerifier||g;return{authUrl:"device_code"===d.flowType?null:"authorization_code_pkce"===d.flowType?d.buildAuthUrl(e,b,j,h,c||{}):d.buildAuthUrl(e,b,j,void 0,c||{}),state:j,codeVerifier:k,codeChallenge:h,redirectUri:b,flowType:d.flowType,fixedPort:d.fixedPort,callbackPath:d.callbackPath||"/callback",...e.systemId?{systemId:e.systemId}:{}}}async function B(a,b,c,d,e,f){let g=z(a),h=g.prepareConfig?await g.prepareConfig(g.config,f||{}):g.config,i=await g.exchangeToken(h,b,c,d,e,f||{}),j=null;return g.postExchange&&(j=await g.postExchange(i)),g.mapTokens(i,j)}async function C(a,b,c){let d=z(a);if("device_code"!==d.flowType)throw Error(`Provider ${a} does not support device code flow`);return await d.requestDeviceCode(d.config,b,c||{})}async function D(a,b,c,d){let e=z(a);if("device_code"!==e.flowType)throw Error(`Provider ${a} does not support device code flow`);let f=await e.pollToken(e.config,b,c,d);if(f.ok)if(f.data.access_token){let a=null;e.postExchange&&(a=await e.postExchange(f.data));let b=e.mapTokens(f.data,a);return{success:!0,tokens:b}}else if("authorization_pending"===f.data.error||"slow_down"===f.data.error)return{success:!1,error:f.data.error,errorDescription:f.data.error_description||f.data.message,pending:"authorization_pending"===f.data.error};else return{success:!1,error:f.data.error||"no_access_token",errorDescription:f.data.error_description||f.data.message||"No access token received"};return{success:!1,error:f.data.error,errorDescription:f.data.error_description}}let G=!1;async function E(){if(!G){G=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,2398));for(let c of(await a()).filter(a=>{if("codex"!==a.provider||"oauth"!==a.authType||!a.idToken)return!1;let b=!!a.email,c=!!a.providerSpecificData?.chatgptAccountId;return!b||!c})){let a=(0,g.YR)(c.idToken);if(!a.email&&!a.chatgptAccountId)continue;let d={};!c.email&&a.email&&(d.email=a.email),(a.chatgptAccountId||a.chatgptPlanType)&&(d.providerSpecificData={...c.providerSpecificData||{},chatgptAccountId:a.chatgptAccountId,chatgptPlanType:a.chatgptPlanType}),Object.keys(d).length&&await b(c.id,d)}}catch(a){G=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})},26712:(a,b,c)=>{c.d(b,{A:()=>l});var d=c(55511),e=c.n(d),f=c(49734),g=c(85430);async function h(a){let b=JSON.stringify({loginTraceID:a,login_trace_id:a}),c="no successful response";for(let a of f.SK.loginGuidanceUrls)try{let d=await fetch(a,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","User-Agent":f.SK.userAgent},body:b});if(!d.ok){c=`${a} HTTP ${d.status}`;continue}let e=await d.json(),h=(0,g.j)(e,[["Result","LoginHost"],["Result","loginHost"],["Result","LoginURL"],["result","loginHost"],["data","Result","LoginHost"],["data","loginHost"],["LoginHost"],["loginHost"]]);if(h)return h;c=`${a} missing LoginHost`}catch(b){c=`${a} ${b.message}`}throw Error(`Trae GetLoginGuidance failed: ${c}`)}function i(){return[...f.SK.apiOrigins]}async function j(a,b){let c=JSON.stringify({ClientID:f.SK.clientId,RefreshToken:a,ClientSecret:f.SK.clientSecret,UserID:""}),d="no successful response";for(let e of i()){let h=`${e.replace(/\/$/,"")}${f.SK.exchangeTokenPath}`;try{let e,i={Accept:"application/json","Content-Type":"application/json","User-Agent":f.SK.userAgent};b&&(i["x-cloudide-token"]=b);let j=await fetch(h,{method:"POST",headers:i,body:c}),k=await j.text();if(!j.ok){d=`${h} HTTP ${j.status}`;continue}try{e=JSON.parse(k)}catch{d=`${h} invalid JSON`;continue}let l=(0,g.j)(e,[["Result","AccessToken"],["Result","accessToken"],["result","access_token"],["accessToken"]]);if(!l){let a=(0,g.j)(e,[["message"],["msg"],["error"],["Result","Message"]])||"missing AccessToken";d=`${h} ${a}`;continue}return{accessToken:l,refreshToken:(0,g.j)(e,[["Result","RefreshToken"],["result","refresh_token"],["refreshToken"]])||a,expiresIn:null,expiresAt:(0,g.j)(e,[["Result","ExpiresAt"],["Result","expiresAt"],["result","expires_at"],["expiresAt"]])}}catch(a){d=`${h} ${a.message}`}}throw Error(`Trae ExchangeToken failed: ${d}`)}async function k(a){for(let b of i()){let c=`${b.replace(/\/$/,"")}${f.SK.getUserInfoPath}`;try{let b=await fetch(c,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","User-Agent":f.SK.userAgent,"x-cloudide-token":a},body:JSON.stringify({})});if(!b.ok)continue;let d=await b.json();return{email:(0,g.j)(d,[["Result","NonPlainTextEmail"],["Result","Email"],["Result","email"],["email"],["data","email"]]),name:(0,g.j)(d,[["Result","ScreenName"],["Result","Nickname"],["Result","Name"],["result","nickname"],["nickname"],["name"]]),aiRegion:(0,g.j)(d,[["Result","AIRegion"],["Result","aiRegion"],["aiRegion"]]),region:(0,g.j)(d,[["Result","Region"],["Result","region"],["region"]]),tenant:(0,g.j)(d,[["Result","TenantID"],["Result","tenantId"],["tenantId"]]),userId:(0,g.j)(d,[["Result","UserID"],["Result","userId"],["userId"]])}}catch{}}return{email:null,name:null}}let l={config:f.SK,flowType:"authorization_code",callbackPath:f.SK.callbackPath,prepareConfig:async a=>{let b=e().randomUUID(),c=await h(b);return{...a,loginTraceID:b,loginHost:c}},buildAuthUrl:(a,b,c)=>{var d;let g,h,i={plugin_version:f.SK.defaultPluginVersion,machine_id:e().randomUUID(),device_id:f.SK.defaultDeviceId,x_device_brand:"unknown",x_device_type:"unknown",x_os_version:"unknown",x_env:"",x_app_version:f.SK.defaultAppVersion,x_app_type:f.SK.defaultAppType},j=a.loginTraceID||c;return d=a.loginHost,(g=new URL(d.startsWith("http")?d:`https://${d.replace(/^\/+/,"")}`)).pathname=f.SK.authorizationPath,(h=new URLSearchParams).set("login_version","1"),h.set("auth_from","trae"),h.set("login_channel","native_ide"),h.set("plugin_version",i.plugin_version),h.set("auth_type","local"),h.set("client_id",f.SK.clientId),h.set("redirect","0"),h.set("login_trace_id",j),h.set("auth_callback_url",b),h.set("machine_id",i.machine_id),h.set("device_id",i.device_id),h.set("x_device_id",i.device_id),h.set("x_machine_id",i.machine_id),h.set("x_device_brand",i.x_device_brand),h.set("x_device_type",i.x_device_type),h.set("x_os_version",i.x_os_version),h.set("x_env",i.x_env),h.set("x_app_version",i.x_app_version),h.set("x_app_type",i.x_app_type),g.search=h.toString(),g.toString()},exchangeToken:async(a,b)=>{let c=String(b||"").trim();if(!(/[?=&]/.test(c)&&(c.includes("refreshToken")||c.includes("refresh_token"))))return{accessToken:c.replace(/^(Cloud-IDE-JWT|Bearer)\s+/i,""),refreshToken:null,expiresIn:24*f.SK.tokenLifetimeDays*3600,_authMethod:"imported"};let{refreshToken:d,cloudideToken:e}=function(a){let b=String(a||"").trim(),c=b;b.includes("?")&&(c=b.slice(b.indexOf("?")+1)),b.startsWith("#")&&(c=b.slice(1));let d=Object.fromEntries(new URLSearchParams(c)),e=a=>{for(let b of a){let a=d[b];if(a&&String(a).trim())return String(a).trim()}return null},f=e(["error","error_code","errorCode"]);if(f){let a=e(["error_description","error_desc","message"]);throw Error(a?`Trae auth failed: ${f} (${a})`:`Trae auth failed: ${f}`)}let g=e(["refreshToken","refresh_token","RefreshToken"]);if(!g)throw Error("Trae callback missing refreshToken");let h=e(["loginHost","login_host","LoginHost","host","consoleHost"]);if(!h)throw Error("Trae callback missing loginHost");return{refreshToken:g,loginHost:h,cloudideToken:e(["x-cloudide-token","xCloudideToken","accessToken","access_token","token"])}}(c);return{...await j(d,e),_authMethod:"oauth"}},postExchange:async a=>({userInfo:await k(a.accessToken)}),mapTokens:(a,b)=>{let c,d=a.expiresIn||(a.expiresAt?Math.max(60,Number(a.expiresAt)-Math.floor(Date.now()/1e3)):24*f.SK.tokenLifetimeDays*3600),e=b?.userInfo||{},g=e.aiRegion||"US-East";return{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresIn:d,email:e.email||void 0,displayName:e.name||void 0,providerSpecificData:{authMethod:a._authMethod||"oauth",aiRegion:g,region:e.region||g,tenant:e.tenant||"marscode",userId:e.userId||"",scope:"sg"===(c=(g||"").toLowerCase())||c.includes("singapore")?"marscode-sg":"cn"===c||c.includes("cn")||c.includes("china")?"marscode-cn":"marscode-us",webId:"",bizUserId:"",userUniqueId:"",appLanguage:"en",appVersion:f.SK.defaultAppVersion,userRegion:"SG"===g?"SG":"US",userIdentity:"Free"}}}}},28567:(a,b,c)=>{c.d(b,{KC:()=>t,OA:()=>p,PROVIDER_MODELS:()=>f.vq,SM:()=>j,Xg:()=>s,cY:()=>u,ez:()=>o,fZ:()=>k,kt:()=>q,ux:()=>n});var d=c(83336),e=c(27816),f=c(87156),g=c(68443),h=c(66016),i=c(74258);function j(a){return f.vq[a]||[]}function k(a){let b=f.vq[a];return b?.[0]?.id||null}let l=new Set(["kr"]);function m(a,b,c){if(!a)return;let d="string"==typeof b?b.replace(/\([^()]+\)\s*$/,"").trim():b,e=a.find(a=>a.id===b||a.id===d);if(e)return e;if(!l.has(c))return;let f=(0,g.Kq)(d);if(f!==d)return a.find(a=>a.id===f)}function n(a,b){if((!a||"oc"===a||"opencode"===a||"ocg"===a||"opencode-go"===a||"ocz"===a||"opencode-zen"===a)&&(0,h.nh)(b))return i.h.OPENAI_RESPONSES;let c=f.vq[a];return c?(0,g.gr)(m(c,b,a)):null}function o(a,b){let c=f.vq[a];return c?(0,g.ec)(m(c,b,a)):null}function p(a,b){let c=f.vq[a];if(!c)return null;let d=m(c,b,a);return d?.kind||d?.type||null}function q(a,b){let c="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,d=c?c[0]:"",e=d?b.slice(0,c.index).trim():b,g=m(f.vq[a],e,a),i=g?.upstreamModelId||g?.id;if(i){let a=i.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?i.slice(0,a.index).trim():i)+(d||b)}return"cx"===a&&"string"==typeof e&&e.endsWith(h.d5)?e.slice(0,-h.d5.length)+d:e+d}let r=Object.fromEntries(e.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),s=Object.fromEntries(Object.keys(d.xq).map(a=>[a,r[a]||a]));function t(a){let b=s[a]||a;return f.vq[b]||[]}function u(a,b){return(0,g.g5)(m(f.vq[a],b,a))}},31793:(a,b,c)=>{function d(a,b){let c,d=String(a||"").trim();if(!d)throw Error(`xai discovery ${b} is empty`);try{c=new URL(d)}catch(a){throw Error(`xai discovery ${b} is invalid: ${a.message}`)}if("https:"!==c.protocol)throw Error(`xai discovery ${b} must use https: ${d}`);let e=c.hostname.toLowerCase().trim();if("x.ai"!==e&&!e.endsWith(".x.ai"))throw Error(`xai discovery ${b} host ${e} is not on x.ai`);return d}function e(a){if(!a||"string"!=typeof a)return;let b=a.split(".");if(3===b.length)try{let a=b[1].replace(/-/g,"+").replace(/_/g,"/"),c=(4-a.length%4)%4,d=Buffer.from(a+"=".repeat(c),"base64").toString("utf8"),e=JSON.parse(d);return e.email||e.preferred_username||e.sub||void 0}catch{return}}function f(a){try{if(!a||"string"!=typeof a)return null;let b=a.split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4,e=c+"=".repeat(d);return JSON.parse(Buffer.from(e,"base64").toString("utf8"))}catch{return null}}function g(a){let b=f(a);if(b)return b.email||b.preferred_username||b.sub||void 0}function h(a){let b=f(a);if(!b)return{};let c=b["https://api.openai.com/auth"]||{};return{email:b.email,chatgptAccountId:c.chatgpt_account_id||b.account_id,chatgptPlanType:c.chatgpt_plan_type||b.plan_type}}c.d(b,{J_:()=>g,YR:()=>h,js:()=>d,pG:()=>e})},31894:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})}},34948:(a,b,c)=>{c.d(b,{Q_:()=>p,Wc:()=>q,k9:()=>w,le:()=>o,qJ:()=>u,w9:()=>B,xK:()=>h,zn:()=>y});var d=c(77598),e=c.n(d),f=c(35841);let g="https://cloud.zed.dev",h={expiredToken:"x-zed-expired-token",outdatedToken:"x-zed-outdated-token",clientSupportsStatus:"x-zed-client-supports-status-messages",clientSupportsStreamEnded:"x-zed-client-supports-stream-ended-request-completion-status",serverSupportsStatus:"x-zed-server-supports-status-messages",clientSupportsXai:"x-zed-client-supports-x-ai",systemId:"x-zed-system-id"},i="zed-rsa-pkcs1:",j=new Map,k=new Map,l=new Map;function m(a,b){return String(a||b).replace(/\/+$/,"")}function n(a,b,c,d){let e=m(a?.[b],d);return`${e}${c}`}function o(a={},b={}){let{publicKey:c,privateKey:d}=e().generateKeyPairSync("rsa",{modulusLength:2048,publicKeyEncoding:{type:"pkcs1",format:"der"},privateKeyEncoding:{type:"pkcs1",format:"pem"}}),f=Number(b.nativeAppPort||a.defaultNativeAppPort||58443),g=b.systemId||e().randomUUID(),h=c.toString("base64").replace(/\+/g,"-").replace(/\//g,"_"),j=new URL(`${m(a.webBaseUrl,"https://zed.dev")}/native_app_signin`);return j.searchParams.set("native_app_port",String(f)),j.searchParams.set("native_app_public_key",h),g&&j.searchParams.set("system_id",g),{authUrl:j.toString(),privateKeyVerifier:`${i}${Buffer.from(d).toString("base64url")}`,nativeAppPort:f,systemId:g,publicKey:h}}function p(a){let b=String(a||"").trim();if(!b)throw Error("Missing Zed callback URL");let c={};try{c=JSON.parse(b)}catch{let a;try{a=new URL(b)}catch{try{let c=b.includes("?")?b.slice(b.indexOf("?")+1):b.replace(/^\?/,"");a=new URL(`http://127.0.0.1/?${c}`)}catch{throw Error("Invalid Zed callback URL")}}a.searchParams.forEach((a,b)=>{c[b]=a})}let d=c.user_id||c.userId,e=c.access_token||c.accessToken||c.token;if(!d||!e)throw Error("Zed callback must include user_id and access_token");return{userId:String(d),encryptedAccessToken:String(e)}}function q(a,b){let c=function(a){var b;let c=String(a||"");if(!c.startsWith(i))throw Error("Missing Zed private key verifier; restart the login flow");return b=c.slice(i.length),Buffer.from(String(b||""),"base64url").toString("utf8")}(b),d=Buffer.from(String(a),"base64url"),f=a=>{let b=a instanceof Error?a.message:String(a);throw Error(`Failed to decrypt Zed access token: ${b}`)};try{return e().privateDecrypt({key:c,padding:e().constants.RSA_PKCS1_OAEP_PADDING,oaepHash:"sha256"},d).toString("utf8")}catch(a){try{let b=e().privateDecrypt({key:c,padding:e().constants.RSA_PKCS1_PADDING},d).toString("utf8");return b.includes("�")&&f(a),b}catch(b){if(b.message.startsWith("Failed to decrypt Zed access token"))throw b;f(a)}}}function r(a){let b=(a?.providerSpecificData||{}).userId||a?.userId,c=a?.accessToken||a?.apiKey;if(!b||!c)throw Error("Zed credential is missing userId or accessToken");return`${b} ${c}`}function s(a){return String(a?.providerSpecificData?.systemId||a?.systemId||"")}async function t(a,b,c=null){let d=await (0,f.proxyAwareFetch)(a,b,c),e=await d.text(),g=null;if(e)try{g=JSON.parse(e)}catch{g={raw:e}}if(!d.ok){let a=Error(String(g?.message||g?.error?.message||g?.error||e||`HTTP ${d.status}`));throw a.status=d.status,a.body=g,a}return g}async function u(a,b={}){let c=b.config||{},d={Accept:"application/json",Authorization:r(a)},e=s(a);return e&&(d[h.systemId]=e),t(n(c,"cloudBaseUrl","/client/users/me",g),{method:"GET",headers:d,signal:b.signal??void 0},b.proxyOptions??null)}function v(a){if(!a)return"";if("string"==typeof a)return a;if("object"==typeof a&&null!==a){if("string"==typeof a[0])return a[0];if("string"==typeof a.id)return a.id}return String(a)}function w(a,b=null){let c=a?.providerSpecificData||{},d=v(c.organizationId||c.defaultOrganizationId);if(d)return d;let e=v(b?.default_organization_id||b?.defaultOrganizationId);if(e)return e;let f=b?.organizations||[],g=f.find(a=>a?.is_personal)||f[0];return v(g?.id)}async function x(a,b={}){var c;let d,e,f=b.config||{},i=b.organizationId||w(a);if(!i){let c=await u(a,b);i=w(a,c)}if(!i)throw Error("No Zed organization selected");let k=(c=i,d=(a?.providerSpecificData||{}).userId||a?.userId||"unknown",e=a?.accessToken||a?.apiKey||"",`${d}:${c||"default"}:${e.slice(-16)}`),l=j.get(k);if(!b.forceRefresh&&l&&l.expiresAt>Date.now())return l.token;let m={"Content-Type":"application/json",Accept:"application/json",Authorization:r(a)},o=s(a);o&&(m[h.systemId]=o);let p=await t(n(f,"cloudBaseUrl","/client/llm_tokens",g),{method:"POST",headers:m,body:JSON.stringify({organization_id:i}),signal:b.signal??void 0},b.proxyOptions??null),q="string"==typeof p?.token?p.token:p?.token?.[0]||p?.token?.value;if(!q)throw Error("Zed did not return an LLM token");return j.set(k,{token:q,expiresAt:Date.now()+3e6}),q}async function y(a,b,c={}){var d;let e=n(c.config||{},"llmBaseUrl",b,"https://cloud.zed.dev"),g=async b=>{let d=await x(a,{...c,forceRefresh:b});return(0,f.proxyAwareFetch)(e,{...c.fetchOptions,headers:{...c.fetchOptions?.headers||{},Authorization:`Bearer ${d}`},signal:c.signal??void 0},c.proxyOptions??null)},i=await g(!1);return d=i,(d?.status===401||d?.headers?.has?.(h.expiredToken)||d?.headers?.has?.(h.outdatedToken))&&(i=await g(!0)),i}function z(a){if(!a)return"";if("string"==typeof a)return a;if("object"==typeof a&&null!==a){if("string"==typeof a[0])return a[0];if("string"==typeof a.id)return a.id}return String(a)}function A(a){let b=z(a?.id);return b?{id:b,name:a.display_name||a.displayName||b,provider:a.provider,isLatest:!!a.is_latest,contextLength:a.max_token_count??a.maxTokenCount,contextLengthInMaxMode:a.max_token_count_in_max_mode??a.maxTokenCountInMaxMode,maxOutputTokens:a.max_output_tokens??a.maxOutputTokens,supportsTools:!!a.supports_tools,supportsImages:!!a.supports_images,supportsThinking:!!a.supports_thinking,supportsDisablingThinking:!!a.supports_disabling_thinking,supportsFastMode:!!a.supports_fast_mode,supportsServerSideCompaction:!!a.supports_server_side_compaction,supportedEffortLevels:a.supported_effort_levels??a.supportedEffortLevels??[],supportsStreamingTools:!!a.supports_streaming_tools,supportsParallelToolCalls:!!a.supports_parallel_tool_calls,isDisabled:!!a.is_disabled,disabledReason:a.disabled_reason??null}:null}async function B(a,b={}){let c,d,e;if(!a?.accessToken)return null;let f=(d=(c=a?.providerSpecificData||{}).organizationId||c.defaultOrganizationId||"default",e=a?.accessToken||a?.apiKey||"",`${c.userId||"unknown"}:${d}:${e.slice(-16)}`),g=k.get(f);if(!b.forceRefresh&&g&&g.expiresAt>Date.now())return g;let i=l.get(f);if(i&&!b.forceRefresh)return i;let j=(async()=>{let c=await y(a,"/models",{...b,fetchOptions:{method:"GET",headers:{Accept:"application/json",[h.clientSupportsXai]:"true"}}});if(!c.ok){let a=await c.text().catch(()=>"");throw Error(`Zed models failed: ${c.status} ${a}`)}let d=await c.json(),e=Array.isArray(d?.models)?d.models:[],g=e.map(A).filter(Boolean).filter(a=>!a.isDisabled),i=new Map;for(let a of e){let b=z(a?.id);b&&i.set(b,a)}let j={expiresAt:Date.now()+36e5,models:g,rawModels:e,rawById:i,defaultModel:z(d?.default_model??d?.defaultModel),defaultFastModel:z(d?.default_fast_model??d?.defaultFastModel),recommendedModels:(d?.recommended_models||d?.recommendedModels||[]).map(z).filter(Boolean)};return k.set(f,j),j})();l.set(f,j);try{return await j}finally{l.get(f)===j&&l.delete(f)}}},41396:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(49734),e=c(31793);let f={config:d.qp,flowType:"device_code",requestDeviceCode:async a=>{let b=new URLSearchParams({client_id:a.clientId,scope:a.scope});a.referrer&&b.set("referrer",a.referrer);let c=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":"grok-pager/0.2.93 grok-shell/0.2.93 (linux; x86_64)"},body:b});if(!c.ok){let a=await c.text();throw Error(`Grok CLI device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":"grok-pager/0.2.93 grok-shell/0.2.93 (linux; x86_64)"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:b,client_id:a.clientId})});try{c=await d.json()}catch{c={error:"invalid_response",error_description:await d.text()}}let e=c?.error==="authorization_pending"||c?.error==="slow_down";return{ok:d.ok||e,data:c}},postExchange:async a=>{try{let b=await fetch("https://cli-chat-proxy.grok.com/v1/user",{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","User-Agent":"grok-pager/0.2.93 grok-shell/0.2.93 (linux; x86_64)","x-xai-token-auth":"xai-grok-cli","x-grok-client-version":"0.2.93"}});if(b.ok)return{user:await b.json()}}catch{}return{user:null}},mapTokens:(a,b)=>{let c=(0,e.pG)(a.id_token)||(0,e.J_)(a.access_token)||b?.user?.email||null,d=b?.user?.userId||b?.user?.principalId||null,f=[b?.user?.firstName,b?.user?.lastName].filter(Boolean).join(" ").trim()||null,g=a.expires_in?new Date(Date.now()+1e3*a.expires_in).toISOString():null;return{accessToken:a.access_token,refreshToken:a.refresh_token||null,expiresIn:a.expires_in,expiresAt:g,scope:a.scope,email:c||void 0,displayName:f||void 0,providerSpecificData:{authMethod:"device_code",idToken:a.id_token||null,email:c||null,userId:d,hasGrokCodeAccess:b?.user?.hasGrokCodeAccess??null,subscriptionTier:b?.user?.subscriptionTier??null}}}}},46150:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).hF,flowType:"device_code",requestDeviceCode:async a=>{let{QoderService:b}=await c.e(1273).then(c.bind(c,41273)),d=new b(a).initiateDeviceFlow();return{device_code:d.nonce,user_code:d.nonce.slice(0,8).toUpperCase(),verification_uri:a.loginUrl,verification_uri_complete:d.verificationUriComplete,expires_in:300,interval:2,codeVerifier:d.codeVerifier,_qoderNonce:d.nonce,_qoderMachineId:d.machineId}},pollToken:async(a,b,d,e)=>{let f,{QoderService:g}=await c.e(1273).then(c.bind(c,41273)),h=new g(a),i=b||e?._qoderNonce,j=d||e?._qoderVerifier;if(!i||!j)return{ok:!1,data:{error:"invalid_request",error_description:"Missing nonce/verifier"}};try{f=await h.pollDeviceToken({nonce:i,codeVerifier:j})}catch(a){return{ok:!1,data:{error:"poll_failed",error_description:a.message}}}if("pending"===f.status)return{ok:!1,data:{error:"authorization_pending"}};let k=await h.fetchUserInfo(f.accessToken),l=Math.max(86400,Math.floor((f.expireTime-Date.now())/1e3));return{ok:!0,data:{access_token:f.accessToken,refresh_token:f.refreshToken,expires_in:l,_qoderUserId:f.userId,_qoderMachineId:e?._qoderMachineId||"",_qoderName:k.name,_qoderEmail:k.email,_qoderOrganizationId:k.organizationId}}},mapTokens:a=>{let b=(a._qoderEmail||"").trim(),c=(a._qoderName||"").trim()||null,d=a._qoderUserId||"",e=b||(d?`qoder-user-${d}`:null);return{accessToken:a.access_token,refreshToken:a.refresh_token||null,expiresIn:a.expires_in,email:e,displayName:c,providerSpecificData:{authMethod:"device",userId:d,machineId:a._qoderMachineId||"",organizationId:a._qoderOrganizationId||""}}}}},53894:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(49734),e=c(85430);async function f(a,b,c){let e=`${a.replace(/\/$/,"")}${b}`,f=await fetch(e,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","User-Agent":d.eD.userAgent},body:JSON.stringify(c)}),g=await f.text();if(!f.ok)throw Error(`Windsurf ${b} HTTP ${f.status}: ${g.slice(0,200)}`);try{return JSON.parse(g)}catch{throw Error(`Windsurf ${b} invalid JSON`)}}async function g(a){let b=await f(d.eD.registerApiBaseUrl,d.eD.registerPath,{firebase_id_token:a}),c=(0,e.j)(b,[["apiKey"],["api_key"]]);if(!c)throw Error("Windsurf RegisterUser missing apiKey");return{apiKey:c,apiServerUrl:(0,e.j)(b,[["apiServerUrl"],["api_server_url"]])||d.eD.defaultApiServerUrl,name:(0,e.j)(b,[["name"]])}}async function h(a,b){try{let c=await f(a,d.eD.oneTimeAuthPath,{firebaseIdToken:b}),g=(0,e.j)(c,[["authToken"],["auth_token"]]);if(!g)return{email:null,name:null};let h=await f(a,d.eD.currentUserPath,{authToken:g,includeSubscription:!0}),i=h.user||h;return{email:(0,e.j)(i,[["email"]]),name:(0,e.j)(i,[["name"]])}}catch{return{email:null,name:null}}}let i={config:d.eD,flowType:"authorization_code",callbackPath:d.eD.callbackPath,buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({response_type:"token",client_id:a.clientId,redirect_uri:b,state:c,prompt:"login",redirect_parameters_type:"query",workflow:"onboarding"});return`${a.authBaseUrl}${a.signInPath}?${d.toString()}`},exchangeToken:async(a,b,c,d,e)=>{let f=String(b||"").trim();if(!(f.includes("?")||f.includes("access_token="))){let b=f.replace(/^Bearer\s+/i,"");if(b.startsWith("sk-ws-"))return{accessToken:b,refreshToken:null,expiresIn:null,apiServerUrl:a.defaultApiServerUrl,firebaseIdToken:null,_authMethod:"imported"};let c=await g(b);return{accessToken:c.apiKey,refreshToken:null,expiresIn:null,apiServerUrl:c.apiServerUrl,firebaseIdToken:b,_authMethod:"imported"}}let{firebaseIdToken:h}=function(a,b){let c=String(a||"").trim(),d=c;c.includes("?")&&(d=c.slice(c.indexOf("?")+1)),c.startsWith("#")&&(d=c.slice(1));let e=Object.fromEntries(new URLSearchParams(d)),f=a=>{for(let b of a){let a=e[b];if(a&&String(a).trim())return String(a).trim()}return null},g=f(["error"]);if(g){let a=f(["error_description"]);throw Error(a?`Windsurf auth failed: ${g} (${a})`:`Windsurf auth failed: ${g}`)}let h=f(["access_token","token"]);if(!h)throw Error("Windsurf callback missing access_token");let i=f(["state"]);if(b&&i&&i!==b)throw Error("Windsurf callback state mismatch");return{firebaseIdToken:h}}(f,e),i=await g(h);return{accessToken:i.apiKey,refreshToken:null,expiresIn:null,apiServerUrl:i.apiServerUrl,firebaseIdToken:h,_authMethod:"oauth"}},postExchange:async a=>a.firebaseIdToken?{userInfo:await h(a.apiServerUrl,a.firebaseIdToken)}:{userInfo:{email:null,name:null}},mapTokens:(a,b)=>({accessToken:a.accessToken,refreshToken:null,expiresIn:null,email:b?.userInfo?.email||void 0,displayName:b?.userInfo?.name||void 0,providerSpecificData:{authMethod:a._authMethod||"oauth",apiServerUrl:a.apiServerUrl,firebaseIdToken:a.firebaseIdToken}})}},60688:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).MZ,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.initiateUrl,{method:"POST",headers:{"Content-Type":"application/json"}});if(!b.ok){if(429===b.status)throw Error("Too many pending authorization requests. Please try again later.");let a=await b.text();throw Error(`Device auth initiation failed: ${a}`)}let c=await b.json();return{device_code:c.code,user_code:c.code,verification_uri:c.verificationUrl,verification_uri_complete:c.verificationUrl,expires_in:c.expiresIn||300,interval:3}},pollToken:async(a,b)=>{let c=await fetch(`${a.pollUrlBase}/${b}`);if(202===c.status)return{ok:!1,data:{error:"authorization_pending"}};if(403===c.status)return{ok:!1,data:{error:"access_denied",error_description:"Authorization denied by user"}};if(410===c.status)return{ok:!1,data:{error:"expired_token",error_description:"Authorization code expired"}};if(!c.ok)return{ok:!1,data:{error:"poll_failed",error_description:`Poll failed: ${c.status}`}};let d=await c.json();if("approved"===d.status&&d.token){let b=null;try{let c=await fetch(`${a.apiBaseUrl}/api/profile`,{headers:{Authorization:`Bearer ${d.token}`}});if(c.ok){let a=await c.json();b=a.organizations?.[0]?.id||null}}catch{}return{ok:!0,data:{access_token:d.token,_userEmail:d.userEmail,_orgId:b}}}return{ok:!1,data:{error:"authorization_pending"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:null,expiresIn:null,email:a._userEmail,...a._orgId?{providerSpecificData:{orgId:a._orgId}}:{}})}},66016:(a,b,c)=>{c.d(b,{d5:()=>d,nh:()=>e});let d="-review";function e(a){if(!a||"string"!=typeof a)return!1;let b=a.replace(/\([^()]+\)\s*$/,"").trim(),c=b.includes("/")?b.split("/").pop():b;return/^muse[-_]?spark(?:$|[-_:.\s])/i.test(c)}},72363:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(49734);let e={config:d.Nu,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,scope:a.scopes})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}return await b.json()},pollToken:async(a,b)=>{let c,d=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({client_id:a.clientId,device_code:b,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})});try{c=await d.json()}catch(a){c={error:"invalid_response",error_description:await d.text()}}return{ok:d.ok,data:c}},postExchange:async a=>{let b=await fetch(d.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":d.Nu.apiVersion,"User-Agent":d.Nu.userAgent}}),c=b.ok?await b.json():{},e=await fetch(d.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":d.Nu.apiVersion,"User-Agent":d.Nu.userAgent}});return{copilotToken:c,userInfo:e.ok?await e.json():{}}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,name:b?.userInfo?.login||b?.userInfo?.name,displayName:b?.userInfo?.name||b?.userInfo?.login,email:b?.userInfo?.email||null,providerSpecificData:{copilotToken:b?.copilotToken?.token,copilotTokenExpiresAt:b?.copilotToken?.expires_at,githubUserId:b?.userInfo?.id,githubLogin:b?.userInfo?.login,githubName:b?.userInfo?.name,githubEmail:b?.userInfo?.email}})}},72433:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).DV,flowType:"device_code",requestDeviceCode:async a=>{let b=await fetch(`${a.stateUrl}?platform=${a.platform}`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"www.codebuddy.ai","X-No-Authorization":"true","X-No-User-Id":"true","X-Product":"SaaS"},body:"{}"});if(!b.ok)throw Error(`CodeBuddy Intl state request failed: ${await b.text()}`);let c=await b.json();if(0!==c.code||!c.data?.state||!c.data?.authUrl)throw Error(`CodeBuddy Intl state error: ${c.msg||"missing state/authUrl"}`);return{device_code:c.data.state,verification_uri:c.data.authUrl,user_code:"",interval:a.pollInterval/1e3,_isCodeBuddy:!0}},pollToken:async(a,b)=>{let c=await fetch(`${a.tokenUrl}?state=${encodeURIComponent(b)}`,{method:"GET",headers:{Accept:"application/json","User-Agent":a.userAgent,"X-Requested-With":"XMLHttpRequest","X-Domain":"www.codebuddy.ai","X-No-Authorization":"true","X-No-User-Id":"true","X-No-Enterprise-Id":"true","X-No-Department-Info":"true","X-Product":"SaaS"}});if(!c.ok)return{ok:!1,data:{error:"request_failed"}};let d=await c.json();return 0===d.code&&d.data?.accessToken?{ok:!0,data:{access_token:d.data.accessToken,refresh_token:d.data.refreshToken||"",token_type:d.data.tokenType||"Bearer",expires_in:d.data.expiresIn}}:11217===d.code?{ok:!0,data:{error:"authorization_pending"}}:{ok:!1,data:{error:d.msg||"unknown_error"}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in||86400,providerSpecificData:{}})}},74258:(a,b,c)=>{c.d(b,{h:()=>d,t:()=>e});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",CODEX:"codex",ANTIGRAVITY:"antigravity",CURSOR:"cursor",OLLAMA:"ollama",COMMANDCODE:"commandcode"};function e(a,b){return a.includes("/v1/responses")?d.OPENAI_RESPONSES:a.includes("/v1/messages")?d.CLAUDE:a.includes("/v1/chat/completions")&&Array.isArray(b?.input)?d.OPENAI:null}},85430:(a,b,c)=>{c.d(b,{j:()=>d});function d(a,b){for(let c of b){let b=a;for(let a of c){if(null==b||"object"!=typeof b){b=void 0;break}b=b[a]}if("string"==typeof b&&b.trim())return b.trim();if("number"==typeof b)return String(b)}return null}},88097:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(49734),e=c(31793);let f={config:d.DI,flowType:"authorization_code_pkce",fixedPort:d.DI.fixedPort,callbackPath:d.DI.callbackPath,buildAuthUrl:(a,b,c,d)=>{let e=Object.entries({response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,...a.extraParams,state:c}).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${e}`},exchangeToken:async(a,b,c,d)=>{let e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b=(0,e.YR)(a.id_token),c={accessToken:a.access_token,refreshToken:a.refresh_token,idToken:a.id_token,expiresIn:a.expires_in,lastRefreshAt:new Date().toISOString()},d=b.email||(0,e.J_)(a.access_token);return d&&(c.email=d),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}}},88115:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,xJ:()=>e,yj:()=>f,zL:()=>g});var d=c(17318);function e(a,b){let c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}}}function f(a,b){return new Response(JSON.stringify(e(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function g(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let f=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(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 j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},88949:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(17318);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return a>=400&&a<500&&401!==a&&402!==a&&403!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(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 g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function l(a,b){return{[i(a)]:new Date(Date.now()+b).toISOString()}}},92851:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).Td,flowType:"browser_token",buildAuthUrl:(a,b,c)=>{let d=(a.webAppUrl||"https://app.kimchi.dev").replace(/\/+$/,""),e=new URLSearchParams({callback:b,state:c});return`${d}/cli-auth?${e.toString()}`},exchangeToken:async(a,b)=>{let c=String(b||"").trim();if(!c)throw Error("Missing Kimchi token");let d=a.validationUrl||"https://api.cast.ai/v1/llm/openai/supported-providers",e=await fetch(d,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});if(!e.ok)throw Error(`Kimchi token validation failed: ${e.status}`);let f={};if(a.userInfoUrl)try{let b=await fetch(a.userInfoUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});b.ok&&(f=await b.json())}catch{f={}}return{access_token:c,token_type:"Bearer",_kimchiUser:f}},mapTokens:a=>{let b=a._kimchiUser||{},c=b.id?String(b.id):"",d=b.username||"",e=b.email||(c?`kimchi-user-${c}`:null);return{accessToken:a.access_token,refreshToken:null,email:e,displayName:b.name||d||null,providerSpecificData:{authMethod:"browser_token",userId:c,username:d}}}}},93293:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(49734);let e={config:d.ZL,flowType:"authorization_code",buildAuthUrl:(a,b,c)=>{let d=new URLSearchParams({loginMethod:a.extraParams.loginMethod,type:a.extraParams.type,redirect:b,state:c,client_id:a.clientId});return`${a.authorizeUrl}?${d.toString()}`},exchangeToken:async(a,b,c)=>{let d=Buffer.from(`${a.clientId}:${a.clientSecret}`).toString("base64"),e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${d}`},body:new URLSearchParams({grant_type:"authorization_code",code:b,redirect_uri:c,client_id:a.clientId,client_secret:a.clientSecret})});if(!e.ok){let a=await e.text();throw Error(`Token exchange failed: ${a}`)}return await e.json()},postExchange:async a=>{let b=await fetch(`${d.ZL.userInfoUrl}?accessToken=${encodeURIComponent(a.access_token)}`,{headers:{Accept:"application/json"}});if(!b.ok){let a=await b.text();throw Error(`Failed to fetch user info: ${a}`)}let c=await b.json();if(!c.success)throw Error(`User info request failed: ${c.message||"Unknown error"}`);let e=c.data||{};if(!e.apiKey||""===e.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(e.email?.trim()||e.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:e}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,apiKey:b?.userInfo?.apiKey,email:b?.userInfo?.email||b?.userInfo?.phone,displayName:b?.userInfo?.nickname||b?.userInfo?.name})}},94368:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(55511),e=c.n(d),f=c(71631),g=c(31793);let h=null;async function i(){if(h)return h;try{let a=await fetch(f.oT.discoveryUrl,{headers:{Accept:"application/json"}});if(a.ok){let b=await a.json();return h={authorizeUrl:(0,g.js)(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:(0,g.js)(b.token_endpoint,"token_endpoint")}}}catch{}return h={authorizeUrl:f.oT.authorizeUrl,tokenUrl:f.oT.tokenUrl}}let j={config:f.oT,flowType:"authorization_code_pkce",fixedPort:f.oT.loopbackPort,callbackPath:f.oT.callbackPath,pkceVerifierBytes:f.Ue,prepareConfig:async a=>{let b=await i();return{...a,authorizeUrl:b.authorizeUrl,tokenUrl:b.tokenUrl}},buildAuthUrl:(a,b,c,d)=>{let f=e().randomBytes(16).toString("hex"),g=Object.entries({response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c,nonce:f,plan:"generic",referrer:"cli-proxy-api"}).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${g}`},exchangeToken:async(a,b,c,d)=>{let e=await fetch(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:a.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`xAI token exchange failed: ${a}`)}return await e.json()},mapTokens:a=>{let b={accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope},c=(0,g.pG)(a.id_token);return c&&(b.email=c),a.id_token&&(b.providerSpecificData={idToken:a.id_token}),b}}},96771:(a,b,c)=>{c.d(b,{A:()=>d});let d={config:c(49734).f7,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d,e={})=>{let f=e.baseUrl||a.defaultBaseUrl,g=new URLSearchParams({client_id:e.clientId||"",redirect_uri:b,response_type:"code",state:c,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod});return`${f}${a.authorizeUrlPath}?${g.toString()}`},exchangeToken:async(a,b,c,d,e,f={})=>{let g=f.baseUrl||a.defaultBaseUrl,h=f.clientId||"",i=f.clientSecret||"",j=new URLSearchParams({client_id:h,grant_type:"authorization_code",code:b,redirect_uri:c,code_verifier:d});i&&j.set("client_secret",i);let k=await fetch(`${g}${a.tokenUrlPath}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:j.toString()});if(!k.ok)throw Error(`GitLab token exchange failed: ${await k.text()}`);let l=await k.json(),m=await fetch(`${g}${a.userInfoUrlPath}`,{headers:{Authorization:`Bearer ${l.access_token}`}}),n=m.ok?await m.json():{};return{...l,_user:n,_baseUrl:g,_clientId:h}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope,providerSpecificData:{username:a._user?.username||"",email:a._user?.email||a._user?.public_email||"",name:a._user?.name||"",baseUrl:a._baseUrl,clientId:a._clientId,authKind:"oauth"}})}},98537:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{PY:()=>e.PY,Re:()=>e.Re,Su:()=>e.Su,exchangeTokens:()=>e.Gj,extractCodexAccountInfo:()=>e.YR,kP:()=>e.kP,sO:()=>e.sO});var e=c(25150),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};
@@ -0,0 +1,9 @@
1
+ "use strict";exports.id=5939,exports.ids=[5939],exports.modules={95939:(a,b,c)=>{c.d(b,{createBunSqliteAdapter:()=>e});var d=c(98983);async function e(a){let{Database:b}=await Promise.resolve().then(c.t.bind(c,81787,23)),e=new b(a,{create:!0});e.exec(d.oG);let f=new Map;function g(a){let b=f.get(a);return b||(b=e.prepare(a),f.set(a,b)),b}let h=setInterval(()=>{try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{f.clear()}catch{}try{e.close()}catch{}}"function"==typeof h.unref&&h.unref();let j=()=>i();return process.once("beforeExit",j),process.once("SIGINT",()=>{j(),process.exit(0)}),process.once("SIGTERM",()=>{j(),process.exit(0)}),{driver:"bun:sqlite",run(a,b=[]){let c=g(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>g(a).get(...b),all:(a,b=[])=>g(a).all(...b),exec:a=>e.exec(a),transaction:a=>e.transaction(a)(),checkpoint(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},close(){clearInterval(h),i()},raw:e}}},98983:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=1,e=`
2
+ PRAGMA journal_mode = WAL;
3
+ PRAGMA synchronous = NORMAL;
4
+ PRAGMA temp_store = MEMORY;
5
+ PRAGMA mmap_size = 30000000;
6
+ PRAGMA cache_size = -64000;
7
+ PRAGMA foreign_keys = ON;
8
+ PRAGMA busy_timeout = 5000;
9
+ `,f={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function g(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6009,exports.ids=[6009],exports.modules={22971:(a,b,c)=>{c.d(b,{Eq:()=>j});var d=new WeakMap,e=new WeakMap,f={},g=0,h=function(a){return a&&(a.host||h(a.parentNode))},i=function(a,b,c,i){var j=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=h(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});f[c]||(f[c]=new WeakMap);var k=f[c],l=[],m=new Set,n=new Set(j),o=function(a){!a||m.has(a)||(m.add(a),o(a.parentNode))};j.forEach(o);var p=function(a){!a||n.has(a)||Array.prototype.forEach.call(a.children,function(a){if(m.has(a))p(a);else try{var b=a.getAttribute(i),f=null!==b&&"false"!==b,g=(d.get(a)||0)+1,h=(k.get(a)||0)+1;d.set(a,g),k.set(a,h),l.push(a),1===g&&f&&e.set(a,!0),1===h&&a.setAttribute(c,"true"),f||a.setAttribute(i,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return p(b),m.clear(),g++,function(){l.forEach(function(a){var b=d.get(a)-1,f=k.get(a)-1;d.set(a,b),k.set(a,f),b||(e.has(a)||a.removeAttribute(i),e.delete(a)),f||a.removeAttribute(c)}),--g||(d=new WeakMap,d=new WeakMap,e=new WeakMap,f={})}},j=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("u"<typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),i(d,e,c,"aria-hidden")):function(){return null}}},48884:(a,b,c)=>{c.d(b,{F:()=>g});var d=c(74444);let e=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,f=d.$,g=(a,b)=>c=>{var d;if((null==b?void 0:b.variants)==null)return f(a,null==c?void 0:c.class,null==c?void 0:c.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==c?void 0:c[a],d=null==h?void 0:h[a];if(null===b)return null;let f=e(b)||e(d);return g[a][f]}),j=c&&Object.entries(c).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return f(a,i,null==b||null==(d=b.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==c?void 0:c.class,null==c?void 0:c.className)}},65999:(a,b,c)=>{c.d(b,{Oh:()=>i});var d=c(70433),e=Object.defineProperty,f=(a,b)=>e(a,"name",{value:b,configurable:!0}),g=0,h=null;function i(){d.useEffect(()=>{h||(h={start:j(),end:j()});let{start:a,end:b}=h;return document.body.firstElementChild!==a&&document.body.insertAdjacentElement("afterbegin",a),document.body.lastElementChild!==b&&document.body.insertAdjacentElement("beforeend",b),g++,()=>{1===g&&(h?.start.remove(),h?.end.remove(),h=null),g=Math.max(0,g-1)}},[])}function j(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}f(function(a){return i(),a.children},"FocusGuards"),f(i,"useFocusGuards"),f(j,"createFocusGuard")},66194:(a,b,c)=>{c.d(b,{n:()=>n});var d=c(70433),e=c(35676),f=c(59524),g=c(23769),h=c(86240),i=Object.defineProperty,j=(a,b)=>i(a,"name",{value:b,configurable:!0}),k="focusScope.autoFocusOnMount",l="focusScope.autoFocusOnUnmount",m={bubbles:!1,cancelable:!0},n=d.forwardRef(j(function(a,b){let{loop:c=!1,trapped:i=!1,onMountAutoFocus:n,onUnmountAutoFocus:r,...s}=a,[t,w]=d.useState(null),x=(0,g.c)(n),z=(0,g.c)(r),A=d.useRef(null),B=(0,e.s)(b,w),C=d.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;d.useEffect(()=>{if(i){let a=function(a){if(C.paused||!t)return;let b=a.target;t.contains(b)?A.current=b:u(A.current,{select:!0})},b=function(a){if(C.paused||!t)return;let b=a.relatedTarget;null!==b&&(t.contains(b)||u(A.current,{select:!0}))},c=function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&u(t)};j(a,"handleFocusIn"),j(b,"handleFocusOut"),j(c,"handleMutations"),document.addEventListener("focusin",a),document.addEventListener("focusout",b);let d=new MutationObserver(c);return t&&d.observe(t,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),d.disconnect()}}},[i,t,C.paused]),d.useEffect(()=>{if(t){v.add(C);let a=document.activeElement;if(!t.contains(a)){let b=new CustomEvent(k,m);t.addEventListener(k,x),t.dispatchEvent(b),b.defaultPrevented||(o(y(q(t)),{select:!0}),document.activeElement===a&&u(t))}return()=>{t.removeEventListener(k,x),setTimeout(()=>{let b=new CustomEvent(l,m);t.addEventListener(l,z),t.dispatchEvent(b),b.defaultPrevented||u(a??document.body,{select:!0}),t.removeEventListener(l,z),v.remove(C)},0)}}},[t,x,z,C]);let D=d.useCallback(a=>{if(!c&&!i||C.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,d=document.activeElement;if(b&&d){let b=a.currentTarget,[e,f]=p(b);e&&f?a.shiftKey||d!==f?a.shiftKey&&d===e&&(a.preventDefault(),c&&u(f,{select:!0})):(a.preventDefault(),c&&u(e,{select:!0})):d===b&&a.preventDefault()}},[c,i,C.paused]);return(0,h.jsx)(f.sG.div,{tabIndex:-1,...s,ref:B,onKeyDown:D})},"FocusScope"));function o(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(u(d,{select:b}),document.activeElement!==c)return}function p(a){let b=q(a);return[r(b,a),r(b.reverse(),a)]}function q(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:j(a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;c.nextNode();)b.push(c.currentNode);return b}function r(a,b){let c="function"==typeof b.checkVisibility&&b.checkVisibility({checkVisibilityCSS:!0});for(let d of a)if(!(c?!d.checkVisibility({checkVisibilityCSS:!0}):s(d,{upTo:b})))return d}function s(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}function t(a){return a instanceof HTMLInputElement&&"select"in a}function u(a,{select:b=!1}={}){if(a&&a.focus){let c=document.activeElement;a.focus({preventScroll:!0}),a!==c&&t(a)&&b&&a.select()}}j(o,"focusFirst"),j(p,"getTabbableEdges"),j(q,"getTabbableCandidates"),j(r,"findVisible"),j(s,"isHidden"),j(t,"isSelectableInput"),j(u,"focus");var v=w();function w(){let a=[];return{add(b){let c=a[0];b!==c&&c?.pause(),(a=x(a,b)).unshift(b)},remove(b){a=x(a,b),a[0]?.resume()}}}function x(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}function y(a){return a.filter(a=>"A"!==a.tagName)}j(w,"createFocusScopesStack"),j(x,"arrayRemove"),j(y,"removeLinks")},68322:(a,b,c)=>{c.d(b,{UC:()=>L,VY:()=>Q,ZL:()=>F,bL:()=>B,bm:()=>R,hE:()=>P,hJ:()=>H});var d=c(70433),e=c(40283),f=c(35676),g=c(58542),h=c(44161),i=c(76125),j=c(13442),k=c(66194),l=c(55065),m=c(45491),n=c(59524),o=c(65999),p=c(81917),q=c(99628),r=c(22971),s=c(3510),t=c(86240),u=Object.defineProperty,v=(a,b)=>u(a,"name",{value:b,configurable:!0}),w="Dialog",[x,y]=(0,g.A)(w),[z,A]=x(w),B=v(a=>{let{__scopeDialog:b,children:c,open:e,defaultOpen:f,onOpenChange:g,modal:j=!0}=a,k=d.useRef(null),l=d.useRef(null),[m,n]=(0,i.i)({prop:e,defaultProp:f??!1,onChange:g,caller:w}),[o,p]=d.useState(0),[q,r]=d.useState(0);return(0,t.jsx)(z,{scope:b,triggerRef:k,contentRef:l,contentId:(0,h.B)(),titleId:(0,h.B)(),descriptionId:(0,h.B)(),titlePresent:o>0,descriptionPresent:q>0,setTitleCount:p,setDescriptionCount:r,open:m,onOpenChange:n,onOpenToggle:d.useCallback(()=>n(a=>!a),[n]),modal:j,children:c})},"Dialog"),C="DialogPortal",[D,E]=x(C,{forceMount:void 0}),F=v(a=>{let{__scopeDialog:b,forceMount:c,children:e,container:f}=a,g=A(C,b);return(0,t.jsx)(D,{scope:b,forceMount:c,children:d.Children.map(e,a=>(0,t.jsx)(m.C,{present:c||g.open,children:(0,t.jsx)(l.Z,{asChild:!0,container:f,children:a})}))})},"DialogPortal"),G="DialogOverlay",H=d.forwardRef(v(function(a,b){let c=E(G,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=A(G,a.__scopeDialog);return f.modal?(0,t.jsx)(m.C,{present:d||f.open,children:(0,t.jsx)(J,{...e,ref:b})}):null},"DialogOverlay")),I=(0,s.TL)("DialogOverlay.RemoveScroll"),J=d.forwardRef(v(function(a,b){let{__scopeDialog:c,...d}=a,e=A(G,c),g=(0,j.e0)(),h=(0,f.s)(b,g);return(0,t.jsx)(q.A,{as:I,allowPinchZoom:!0,shards:[e.contentRef],children:(0,t.jsx)(n.sG.div,{"data-state":S(e.open),...d,ref:h,style:{pointerEvents:"auto",...d.style}})})},"DialogOverlayImpl")),K="DialogContent",L=d.forwardRef(v(function(a,b){let c=E(K,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=A(K,a.__scopeDialog);return(0,t.jsx)(m.C,{present:d||f.open,children:f.modal?(0,t.jsx)(M,{...e,ref:b}):(0,t.jsx)(N,{...e,ref:b})})},"DialogContent")),M=d.forwardRef(v(function(a,b){let c=A(K,a.__scopeDialog),g=d.useRef(null),h=(0,f.s)(b,c.contentRef,g);return d.useEffect(()=>{let a=g.current;if(a)return(0,r.Eq)(a)},[]),(0,t.jsx)(O,{...a,ref:h,trapFocus:c.open,disableOutsidePointerEvents:c.open,onCloseAutoFocus:(0,e.mK)(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:(0,e.mK)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:(0,e.mK)(a.onFocusOutside,a=>a.preventDefault())})},"DialogContentModal")),N=d.forwardRef(v(function(a,b){let c=A(K,a.__scopeDialog),e=d.useRef(!1),f=d.useRef(!1);return(0,t.jsx)(O,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(e.current||c.triggerRef.current?.focus(),b.preventDefault()),e.current=!1,f.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(e.current=!0,"pointerdown"===b.detail.originalEvent.type&&(f.current=!0));let d=b.target;c.triggerRef.current?.contains(d)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&f.current&&b.preventDefault()}})},"DialogContentNonModal")),O=d.forwardRef(v(function(a,b){let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...g}=a,h=A(K,c);return(0,o.Oh)(),(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(k.n,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,t.jsx)(j.qW,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionPresent?h.descriptionId:void 0,"aria-labelledby":h.titlePresent?h.titleId:void 0,"data-state":S(h.open),...g,ref:b,deferPointerDownOutside:!0,onDismiss:()=>h.onOpenChange(!1)})})})},"DialogContentImpl")),P=d.forwardRef(v(function(a,b){let{__scopeDialog:c,...d}=a,e=A("DialogTitle",c),{setTitleCount:f}=e;return(0,p.N)(()=>(f(a=>a+1),()=>f(a=>a-1)),[f]),(0,t.jsx)(n.sG.h2,{id:e.titleId,...d,ref:b})},"DialogTitle")),Q=d.forwardRef(v(function(a,b){let{__scopeDialog:c,...d}=a,e=A("DialogDescription",c),{setDescriptionCount:f}=e;return(0,p.N)(()=>(f(a=>a+1),()=>f(a=>a-1)),[f]),(0,t.jsx)(n.sG.p,{id:e.descriptionId,...d,ref:b})},"DialogDescription")),R=d.forwardRef(v(function(a,b){let{__scopeDialog:c,...d}=a,f=A("DialogClose",c);return(0,t.jsx)(n.sG.button,{type:"button",...d,ref:b,onClick:(0,e.mK)(a.onClick,()=>f.onOpenChange(!1))})},"DialogClose"));function S(a){return a?"open":"closed"}v(S,"getState")},74444:(a,b,c)=>{c.d(b,{$:()=>d});function d(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}},99628:(a,b,c)=>{c.d(b,{A:()=>Y});var d,e,f,g,h,i,j,k=function(){return(k=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function l(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var m=("function"==typeof SuppressedError&&SuppressedError,c(70433)),n="right-scroll-bar-position",o="width-before-scroll-bar";function p(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var q="u">typeof window?m.useLayoutEffect:m.useEffect,r=new WeakMap,s=(void 0===d&&(d={}),(void 0===e&&(e=function(a){return a}),f=[],g=!1,h={read:function(){if(g)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return f.length?f[f.length-1]:null},useMedium:function(a){var b=e(a,g);return f.push(b),function(){f=f.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(g=!0;f.length;){var b=f;f=[],b.forEach(a)}f={push:function(b){return a(b)},filter:function(){return f}}},assignMedium:function(a){g=!0;var b=[];if(f.length){var c=f;f=[],c.forEach(a),b=f}var d=function(){var c=b;b=[],c.forEach(a)},e=function(){return Promise.resolve().then(d)};e(),f={push:function(a){b.push(a),e()},filter:function(a){return b=b.filter(a),f}}}}).options=k({async:!0,ssr:!1},d),h),t=function(){},u=m.forwardRef(function(a,b){var c,d,e,f,g=m.useRef(null),h=m.useState({onScrollCapture:t,onWheelCapture:t,onTouchMoveCapture:t}),i=h[0],j=h[1],n=a.forwardProps,o=a.children,u=a.className,v=a.removeScrollBar,w=a.enabled,x=a.shards,y=a.sideCar,z=a.noRelative,A=a.noIsolation,B=a.inert,C=a.allowPinchZoom,D=a.as,E=a.gapMode,F=l(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),G=(c=[g,b],d=function(a){return c.forEach(function(b){return p(b,a)})},(e=(0,m.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,q(function(){var a=r.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||p(a,null)}),d.forEach(function(a){b.has(a)||p(a,e)})}r.set(f,c)},[c]),f),H=k(k({},F),i);return m.createElement(m.Fragment,null,w&&m.createElement(y,{sideCar:s,removeScrollBar:v,shards:x,noRelative:z,noIsolation:A,inert:B,setCallbacks:j,allowPinchZoom:!!C,lockRef:g,gapMode:E}),n?m.cloneElement(m.Children.only(o),k(k({},H),{ref:G})):m.createElement(void 0===D?"div":D,k({},H,{className:u,ref:G}),o))});u.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},u.classNames={fullWidth:o,zeroRight:n};var v=function(a){var b=a.sideCar,c=l(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return m.createElement(d,k({},c))};v.isSideCarExport=!0;var w=function(){var a=0,b=null;return{add:function(d){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=j||c.nc;return b&&a.setAttribute("nonce",b),a}())){var e,f;(e=b).styleSheet?e.styleSheet.cssText=d:e.appendChild(document.createTextNode(d)),f=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(f)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},x=function(){var a=w();return function(b,c){m.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},y=function(){var a=x();return function(b){return a(b.styles,b.dynamic),null}},z={left:0,top:0,right:0,gap:0},A=function(a){return parseInt(a||"",10)||0},B=function(a){var b=window.getComputedStyle(document.body),c=b["padding"===a?"paddingLeft":"marginLeft"],d=b["padding"===a?"paddingTop":"marginTop"],e=b["padding"===a?"paddingRight":"marginRight"];return[A(c),A(d),A(e)]},C=function(a){if(void 0===a&&(a="margin"),"u"<typeof window)return z;var b=B(a),c=document.documentElement.clientWidth,d=window.innerWidth;return{left:b[0],top:b[1],right:b[2],gap:Math.max(0,d-c+b[2]-b[0])}},D=y(),E="data-scroll-locked",F=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(E,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(n," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(o," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(n," .").concat(n," {\n right: 0 ").concat(d,";\n }\n \n .").concat(o," .").concat(o," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(E,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},G=function(){var a=parseInt(document.body.getAttribute(E)||"0",10);return isFinite(a)?a:0},H=function(){m.useEffect(function(){return document.body.setAttribute(E,(G()+1).toString()),function(){var a=G()-1;a<=0?document.body.removeAttribute(E):document.body.setAttribute(E,a.toString())}},[])},I=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;H();var f=m.useMemo(function(){return C(e)},[e]);return m.createElement(D,{styles:F(f,!b,e,c?"":"!important")})},J=!1;if("u">typeof window)try{var K=Object.defineProperty({},"passive",{get:function(){return J=!0,!0}});window.addEventListener("test",K,K),window.removeEventListener("test",K,K)}catch(a){J=!1}var L=!!J&&{passive:!1},M=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},N=function(a,b){var c=b.ownerDocument,d=b;do{if("u">typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),O(a,d)){var e=P(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body);return!1},O=function(a,b){return"v"===a?M(b,"overflowY"):M(b,"overflowX")},P=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},Q=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=P(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&O(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i));return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},R=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},S=function(a){return[a.deltaX,a.deltaY]},T=function(a){return a&&"current"in a?a.current:a},U=0,V=[];let W=(i=function(a){var b=m.useRef([]),c=m.useRef([0,0]),d=m.useRef(),e=m.useState(U++)[0],f=m.useState(y)[0],g=m.useRef(a);m.useEffect(function(){g.current=a},[a]),m.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(T),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=m.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=R(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=N(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=N(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return Q(p,b,a,"h"===p?i:j,!0)},[]),i=m.useCallback(function(a){if(V.length&&V[V.length-1]===f){var c="deltaY"in a?S(a):R(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(T).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=m.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=m.useCallback(function(a){c.current=R(a),d.current=void 0},[]),l=m.useCallback(function(b){j(b.type,S(b),b.target,h(b,a.lockRef.current))},[]),n=m.useCallback(function(b){j(b.type,R(b),b.target,h(b,a.lockRef.current))},[]);m.useEffect(function(){return V.push(f),a.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:n}),document.addEventListener("wheel",i,L),document.addEventListener("touchmove",i,L),document.addEventListener("touchstart",k,L),function(){V=V.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,L),document.removeEventListener("touchmove",i,L),document.removeEventListener("touchstart",k,L)}},[]);var o=a.removeScrollBar,p=a.inert;return m.createElement(m.Fragment,null,p?m.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,o?m.createElement(I,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},s.useMedium(i),v);var X=m.forwardRef(function(a,b){return m.createElement(u,k({},a,{ref:b,sideCar:W}))});X.classNames=u.classNames;let Y=X}};
@@ -0,0 +1 @@
1
+ exports.id=6056,exports.ids=[6056,7268,9287],exports.modules={2398:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(47535)},8474:()=>{},9265:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(41513),e=c(82548),f=c(9955);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},16625:a=>{"use strict";a.exports={rE:"0.1.0"}},17318:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},451:{type:"permission_error",code:"unavailable_for_legal_reasons"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",451:"Unavailable for legal reasons",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{text:"not available in your region",cooldownMs:12e4},{text:"unavailable for legal reasons",cooldownMs:12e4},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:451,cooldownMs:12e4},{status:429,backoff:!0}]},19287:(a,b,c)=>{"use strict";c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(27816);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.default.filter(a=>a.features?.usage).map(a=>a.id),y=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},30924:(a,b,c)=>{"use strict";c.d(b,{XJ:()=>p,d0:()=>m,vO:()=>l});var d=c(98630),e=c(79410),f=c(37645);let g=new Map,h=new Map,i=new Map,j=new Map,k=new Map;function l(a,b){let c=`${a}|${b}`;j.delete(c);let d=k.get(c);if(void 0===d)return;k.delete(c);let e=g.get(a);e?.[b]?.resetAt===new Date(d).toISOString()&&(delete e[b],g.set(a,e))}function m(){return g}async function n(a,b,c){let d=Date.now(),e=i.get(a);if(e)return e;let j=h.get(a)||0;if(d-j<3e4)return f.debug("AG_QUOTA",`${a.slice(0,8)} | skip refresh (${Math.round((d-j)/1e3)}s ago)`),g.get(a)||null;h.set(a,d);let k=o(a,b,c,d);i.set(a,k);try{return await k}finally{i.delete(a)}}async function o(a,b,c,h){try{let f=await (0,d.B)(c||{}),h={connectionProxyEnabled:!0===f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl||"",connectionNoProxy:f.connectionNoProxy||"",vercelRelayUrl:f.vercelRelayUrl||"",strictProxy:!0===f.strictProxy},i=await (0,e.c)(b,c,h);if(!i?.quotas||i.message)return null;return g.set(a,function(a,b){let c=Date.now();for(let[d,e]of k)if(d.startsWith(`${a}|`)){if(e<=c){k.delete(d);continue}b[d.slice(a.length+1)]={remainingPercentage:0,resetAt:new Date(e).toISOString()}}return b}(a,i.quotas)),i.quotas}catch(b){return f.warn("AG_QUOTA",`${a.slice(0,8)} | refresh failed: ${b.message}`),null}}async function p(a,b,c,d,e){f.info("AG_QUOTA",`${a.slice(0,8)} | ${b} on ${c} — refreshing quota`);let h=(await n(a,d,e))?.[c];if(!h||h.remainingPercentage>0){let d=`${a}|${c}`,e=Date.now(),i=j.get(d),l=i&&e-i.windowStart<=6e4?i.windowStart:e,m=i&&l===i.windowStart?i.count+1:1;if(j.set(d,{count:m,windowStart:l}),m>=3){j.delete(d);let i=e+9e5,l=h?`${Math.round(h.remainingPercentage)}%`:"unknown";f.warn("AG_QUOTA",`${a.slice(0,8)} | STRIKE_${b} ${c} — ${m}x 429 (quota ${l}); CACHE_BLOCK 15m`);let n=g.get(a)||{};return n[c]={remainingPercentage:0,resetAt:new Date(i).toISOString()},g.set(a,n),k.set(d,i),i}return null}if(j.delete(`${a}|${c}`),!h.resetAt)return null;let i=new Date(h.resetAt).getTime();return i<=Date.now()?null:(f.warn("AG_QUOTA",`${a.slice(0,8)} | UPSTREAM_${b} ${c} — quota exhausted; CACHE_BLOCK until ${h.resetAt}`),i)}},37645:(a,b,c)=>{"use strict";c.r(b),c.d(b,{debug:()=>n,error:()=>q,errorLine:()=>k,fmtThink:()=>l,info:()=>o,line:()=>j,maskKey:()=>u,nextTag:()=>h,request:()=>r,response:()=>s,stream:()=>t,tagForSession:()=>i,warn:()=>p});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()||""]??d.INFO;function f(){return new Date().toLocaleTimeString("en-GB",{hour12:!1})}let g=0;function h(){return g++,g.toString(16).padStart(4,"0")}function i(a){if(!a)return h();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return Math.abs(b).toString(16).padStart(8,"0").slice(-4)}function j(a,b,c){e>d.INFO||console.log(`[${f()}] [${a}] ${b} ${c}`)}function k(a,b,c){console.error(`[${f()}] [${a}] ${b} ${c}`)}function l(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget&&a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode&&a.level||null:null}function m(a){let b;if(!a)return"";if("string"==typeof a)b=a;else if(a instanceof Error)b=a.stack||a.message;else try{b=JSON.stringify(a)}catch{b=String(a)}return b.length>500&&(b=`${b.slice(0,500)} ...(+${b.length-500} chars)`),b}function n(a,b,c){if(e<=d.DEBUG){let d=c?` ${m(c)}`:"";console.log(`[${f()}] DEBUG [${a}] ${b}${d}`)}}function o(a,b,c){if(e<=d.INFO){let d=c?` ${m(c)}`:"";console.log(`[${f()}] INFO [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.WARN){let d=c?` ${m(c)}`:"";console.warn(`[${f()}] WARN [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.ERROR){let d=c?` ${m(c)}`:"";console.error(`[${f()}] ERROR [${a}] ${b}${d}`)}}function r(a,b,c){let d=c?` ${m(c)}`:"";console.log(`[${f()}] [http] --> ${a} ${b}${d}`)}function s(a,b,c){let d=c?` ${m(c)}`:"";(a<400?console.log:console.error)(`[${f()}] [http] <-- ${a} ${b}ms${d}`)}function t(a,b){let c=b?` ${m(b)}`:"";console.log(`[${f()}] [stream] ${a}${c}`)}function u(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},42754:()=>{},54569:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},64239:(a,b,c)=>{"use strict";c.d(b,{KS:()=>p,iK:()=>l,sZ:()=>k});var d=c(98630),e=c(35047),f=c(37645);let g=new Map,h=new Map,i=new Map,j=new Map;function k(){return g}function l(a){g.delete(a),h.delete(a)}function m(a){let b=a?.quotas;return!!b&&"object"==typeof b&&Object.keys(b).length>0}async function n(a,b,c){let d=Date.now(),e=j.get(a);if(e)return e;let g=i.get(a)||0;if(d-g<3e4)return f.debug("ZED_QUOTA",`${a.slice(0,8)} | skip refresh (${Math.round((d-g)/1e3)}s ago)`),null;i.set(a,d);let h=o(a,b,c);j.set(a,h);try{return await h}finally{j.delete(a)}}async function o(a,b,c){try{let f=await (0,d.B)(c||{}),i={connectionProxyEnabled:!0===f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl||"",connectionNoProxy:f.connectionNoProxy||"",vercelRelayUrl:f.vercelRelayUrl||"",strictProxy:!0===f.strictProxy},j=await (0,e.vL)(b,c,i),k=function(a){if(!m(a))return;let b=null;for(let c of Object.values(a.quotas)){let d=c?.resetAt||a.resetAt;if(!d)continue;let e=new Date(d).getTime();Number.isFinite(e)&&(null==b||e>b)&&(b=e)}return b}(j);null!=k?h.set(a,k):null===k&&m(j)&&h.delete(a);let l=j?.quotas;if(!l||0===Object.keys(l).length)return null;let n=function(a){let b=a?.quotas;if(!b||"object"!=typeof b)return null;let c=Date.now(),d=null;for(let e of Object.values(b)){if(!e||e.unlimited||(e.remainingPercentage??100)>0)continue;let b=e.resetAt||a.resetAt;if(!b)continue;let f=new Date(b).getTime();Number.isFinite(f)&&f>c&&(null==d||f>d)&&(d=f)}return d}(j);if(null==n)return g.delete(a),l;let o=new Date(n).toISOString();return g.set(a,{remainingPercentage:0,resetAt:o}),l}catch(b){return f.warn("ZED_QUOTA",`${a.slice(0,8)} | refresh failed: ${b.message}`),null}}async function p(a,b,c,d,e,i){if(f.info("ZED_QUOTA",`${a.slice(0,8)} | ${b} on ${c} — refreshing quota`),await n(a,d,e),function(a,b){if(403!==a&&402!==a)return!1;let c=String(b||"").toLowerCase();return c.includes("token_spend_limit")||c.includes("spend_limit")||c.includes("credits consumed")||c.includes("credit")&&c.includes("consumed")}(b,i??"")){let d=h.get(a);if(null!=d&&d>Date.now()){let e=new Date(d).toISOString();return g.set(a,{remainingPercentage:0,resetAt:e}),f.warn("ZED_QUOTA",`${a.slice(0,8)} | UPSTREAM_${b} ${c} — token spend limit; CACHE_BLOCK until ${e}`),d}return null!=d&&d<=Date.now()&&h.delete(a),null}let j=g.get(a);if(!j?.resetAt)return null;let k=new Date(j.resetAt).getTime();return!Number.isFinite(k)||k<=Date.now()?(g.delete(a),null):(f.warn("ZED_QUOTA",`${a.slice(0,8)} | UPSTREAM_${b} ${c} — monthly quota exhausted; CACHE_BLOCK until ${j.resetAt}`),k)}},67268:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.Fh,Mc:()=>d.Mc,OM:()=>d.OM,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,mt:()=>d.mt,o5:()=>d.o5,op:()=>d.op,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.updateProviderConnection,uv:()=>d.uv});var d=c(2398)},75724:(a,b,c)=>{"use strict";a.exports=c(44870)},83336:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(87156);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},83892:(a,b,c)=>{"use strict";c.d(b,{Pt:()=>o,Tr:()=>p,c1:()=>m,kI:()=>q,vk:()=>n});var d=c(2398),e=c(98630),f=c(88949),g=c(17318),h=c(19287),i=c(30924),j=c(64239),k=c(37645);let l=Promise.resolve();async function m(a,b=null,c=null,g={}){let n,o=b instanceof Set?b:b?new Set([b]):new Set,p=g?.preferredConnectionId||null,q=l;l=new Promise(a=>{n=a});try{let b;await q;let g=(0,h.rs)(a);if(h.IS[g]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[g]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,g)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||"",strictProxy:!0===f.strictProxy}}}let l=await (0,d.getProviderConnections)({provider:g,isActive:!0});if(k.debug("AUTH",`${a} | total connections: ${l.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${c||"any"}`),0===l.length)return k.warn("AUTH",`No credentials for ${a}`),null;let m="antigravity"===g,n=m&&c?(0,i.d0)():null,r="zed"===g,s=r?(0,j.sZ)():null,t=l.filter(a=>{if(o.has(a.id)||(0,f.Bl)(a,c))return!1;if(m&&c&&n){let b=n.get(a.id)?.[c];if(b&&b.remainingPercentage<=0&&b.resetAt&&new Date(b.resetAt).getTime()>Date.now()){let d=a.id?.slice(0,8)||"unknown";return k.info("AG_QUOTA",`${d} | CACHE_BLOCK ${c} — skip upstream until ${b.resetAt}`),!1}}if(r&&s){let b=s.get(a.id);if(b&&(b.remainingPercentage??0)<=0&&b.resetAt&&new Date(b.resetAt).getTime()>Date.now()){let c=a.id?.slice(0,8)||"unknown";return k.info("ZED_QUOTA",`${c} | CACHE_BLOCK — monthly quota exhausted until ${b.resetAt}`),!1}}return!0});if(k.debug("AUTH",`${a} | available: ${t.length}/${l.length}`),l.forEach(a=>{let b=o.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);k.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===t.length){let b=l.filter(a=>(0,f.Bl)(a,c)),d=b.map(a=>(0,f.kJ)(a)).filter(Boolean);m&&c&&n&&l.forEach(a=>{let b=n.get(a.id)?.[c]?.resetAt;b&&new Date(b).getTime()>Date.now()&&d.push(b)}),r&&s&&l.forEach(a=>{let b=s.get(a.id)?.resetAt;b&&new Date(b).getTime()>Date.now()&&d.push(b)});let e=d.sort()[0]||null;if(e){let d=b[0];return k.warn("AUTH",`${a} | all ${l.length} accounts locked for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return k.warn("AUTH",`${a} | all ${l.length} accounts unavailable`),null}let u=await (0,d.mt)(),v=(u.providerStrategies||{})[g]||{},w=v.fallbackStrategy||u.fallbackStrategy||"fill-first";if(p&&(b=t.find(a=>a.id===p))&&k.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===w){let a=v.stickyRoundRobinLimit||u.stickyRoundRobinLimit||3,c=Date.now()-1728e5,e=a=>{let b=a?.lastUsedAt?new Date(a.lastUsedAt).getTime():NaN;return Number.isFinite(b)&&b>=c?b:NaN},f=[...t].sort((a,b)=>{let c=e(a),d=e(b);return Number.isNaN(c)&&Number.isNaN(d)?(a.priority||999)-(b.priority||999):Number.isNaN(c)?1:Number.isNaN(d)?-1:d-c})[0],g=f?.consecutiveUseCount||0;f&&f.lastUsedAt&&g<a?(b=f,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...t].sort((a,b)=>{let c=e(a),d=e(b);return Number.isNaN(c)&&Number.isNaN(d)?(a.priority||999)-(b.priority||999):Number.isNaN(c)?-1:Number.isNaN(d)?1:c-d})[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else b=t[0];let x=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:x.connectionProxyEnabled,connectionProxyUrl:x.connectionProxyUrl,connectionNoProxy:x.connectionNoProxy,connectionProxyPoolId:x.proxyPoolId||null,vercelRelayUrl:x.vercelRelayUrl||"",strictProxy:!0===x.strictProxy},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{n&&n()}}async function n(a,b,c,e=null,i=null,j=null){let l,m,o;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let p=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),q=p?.backoffLevel||0,r=function(a,b,c){if("github"!==(0,h.rs)(c)||402!==Number(a)||!String(b||"").toLowerCase().includes("you've reached your additional usage limit for your plan"))return null;let d=new Date;return Date.UTC(d.getUTCFullYear(),d.getUTCMonth()+1,1)}(b,c,e);if(r?(l=!0,m=r-Date.now(),o=0):j&&j>Date.now()?(l=!0,m="antigravity"===(0,h.rs)(e)?j-Date.now():Math.min(j-Date.now(),g.fh),o=0):{shouldFallback:l,cooldownMs:m,newBackoffLevel:o}=(0,f.hk)(b,c,q),!l)return{shouldFallback:!1,cooldownMs:0};let s="string"==typeof c?c.slice(0,200):"Provider error",t=(0,f.S5)(r?null:i,m);await (0,d.updateProviderConnection)(a,{...t,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:o??q});let u=Object.keys(t)[0],v=p?.displayName||p?.name||p?.email||a.slice(0,8);return k.warn("AUTH",`${v} locked ${u} for ${Math.round(m/1e3)}s [${b}]`),e&&b&&s&&k.error(e,`[${b}]: ${s}`),{shouldFallback:!0,cooldownMs:m}}async function o(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,errorCode:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function p(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function q(a){return!!a&&await (0,d.ek)(a)}},88115:(a,b,c)=>{"use strict";c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,xJ:()=>e,yj:()=>f,zL:()=>g});var d=c(17318);function e(a,b){let c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}}}function f(a,b){return new Response(JSON.stringify(e(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function g(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let f=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(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 j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},88949:(a,b,c)=>{"use strict";c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(17318);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return a>=400&&a<500&&401!==a&&402!==a&&403!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(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 g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function l(a,b){return{[i(a)]:new Date(Date.now()+b).toISOString()}}},97091:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(54569);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=613,exports.ids=[613],exports.modules={90613:(a,b,c)=>{c.d(b,{l9:()=>q,Ah:()=>r,$i:()=>s,installCatalogSource:()=>B,Pg:()=>A});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j);let l="10router",m="9router";function n(a){try{return!e().existsSync(a)||0===e().readdirSync(a).length}catch{return!0}}function o(){return"win32"===process.platform?i().join(process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming"),l):i().join(k().homedir(),`.${l}`)}let p=function(){let a=process.env.DATA_DIR;if(!a)return!function(){let a=o(),b="win32"===process.platform?i().join(process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming"),m):i().join(k().homedir(),`.${m}`);if(a!==b&&n(a))try{if(!e().existsSync(b)||n(b))return;e().mkdirSync(a,{recursive:!0}),e().cpSync(b,a,{recursive:!0,force:!1,errorOnExist:!1})}catch(a){console.warn(`[DATA_DIR] legacy migrate ~/.${m} → ~/.${l} failed: ${a?.message||a}`)}}(),o();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),o();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${l}`),o();throw b}}(),q=g().join(p,"model-catalog.json"),r=g().join(p,"model-catalog-raw.json"),s=2,t={models:{},providers:{}},u=t,v=-1;function w(a){return a?(a.includes("/")?a.split("/").pop():a).toLowerCase().split(":")[0]:""}function x(){let a;try{a=e().statSync(q).mtimeMs}catch{return v=-1,u=t}if(a===v)return u;v=a;try{let a=JSON.parse(e().readFileSync(q,"utf8"));u={models:a?.models||{},providers:a?.providers||{}}}catch{u=t}return u}function y(a,b){return a&&x().models[`${a}:${w(b)}`]||null}function z(a,b){let c=a&&x().providers[a];return c&&(c[b]||c[w(b)])||null}function A(){v=-1}async function B(){let{setCatalogSource:a}=await c.e(1003).then(c.bind(c,31003));a({getModalities:y,getLimits:z})}}};