@sifxprime/krouter 0.5.166 → 0.5.168

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 (865) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +15 -15
  3. package/app/.next-cli-build/build-manifest.json +5 -5
  4. package/app/.next-cli-build/prerender-manifest.json +29 -29
  5. package/app/.next-cli-build/react-loadable-manifest.json +2 -2
  6. package/app/.next-cli-build/required-server-files.json +16 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/environment/page.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/environment/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/presidio/page.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/presidio/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/_global-error/page.js +1 -1
  58. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.rsc +15 -11
  61. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +15 -11
  62. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -16
  63. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +3 -1
  64. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.rsc +26 -16
  68. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +26 -16
  69. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +32 -22
  70. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +3 -1
  71. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  72. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  73. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  78. package/app/.next-cli-build/server/app/api/cache/route.js +1 -1
  79. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +6 -6
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  81. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  83. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +3 -3
  84. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  86. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  87. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  88. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  90. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  91. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +4 -4
  92. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  93. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  94. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  95. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  96. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  98. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/import/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  110. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  112. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  114. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  116. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/mitm/cert/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  120. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/models/live/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/models/live-by-connection/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/models/preview/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  131. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  133. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  140. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +2 -2
  144. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  148. package/app/.next-cli-build/server/app/api/providers/health/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/providers/zenith/log/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/providers/zenith/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  160. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  162. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  163. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  164. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  165. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  167. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  168. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  169. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/settings/environment/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/settings/presidio/route.js +3 -3
  172. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  179. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  190. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  195. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +2 -2
  201. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/v1/search/route.js +2 -2
  214. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  224. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  225. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  226. package/app/.next-cli-build/server/app/callback.html +1 -1
  227. package/app/.next-cli-build/server/app/callback.rsc +29 -18
  228. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +29 -18
  229. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +3 -1
  230. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +37 -26
  231. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  232. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +31 -18
  233. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +38 -26
  234. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +31 -18
  235. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +5 -1
  236. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  237. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +34 -19
  238. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +40 -27
  239. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +34 -19
  240. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +5 -1
  241. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  242. package/app/.next-cli-build/server/app/dashboard/combos.rsc +35 -21
  243. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +42 -30
  244. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +35 -21
  245. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +5 -1
  246. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  247. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +33 -19
  248. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +39 -27
  249. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +33 -19
  250. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +5 -1
  251. package/app/.next-cli-build/server/app/dashboard/environment.html +1 -1
  252. package/app/.next-cli-build/server/app/dashboard/environment.rsc +34 -21
  253. package/app/.next-cli-build/server/app/dashboard/environment.segments/!KGRhc2hib2FyZCk/dashboard/environment/__PAGE__.segment.rsc +41 -30
  254. package/app/.next-cli-build/server/app/dashboard/environment.segments/_full.segment.rsc +34 -21
  255. package/app/.next-cli-build/server/app/dashboard/environment.segments/_tree.segment.rsc +5 -1
  256. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  257. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +36 -23
  258. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +44 -32
  259. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +36 -23
  260. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +6 -1
  261. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +33 -18
  263. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +40 -26
  264. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +33 -18
  265. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +5 -1
  266. package/app/.next-cli-build/server/app/dashboard/presidio.html +1 -1
  267. package/app/.next-cli-build/server/app/dashboard/presidio.rsc +34 -21
  268. package/app/.next-cli-build/server/app/dashboard/presidio.segments/!KGRhc2hib2FyZCk/dashboard/presidio/__PAGE__.segment.rsc +41 -30
  269. package/app/.next-cli-build/server/app/dashboard/presidio.segments/_full.segment.rsc +34 -21
  270. package/app/.next-cli-build/server/app/dashboard/presidio.segments/_tree.segment.rsc +5 -1
  271. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  272. package/app/.next-cli-build/server/app/dashboard/profile.rsc +34 -21
  273. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +41 -30
  274. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +34 -21
  275. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +5 -1
  276. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  277. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +35 -23
  278. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +44 -32
  279. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +35 -23
  280. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +6 -1
  281. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  282. package/app/.next-cli-build/server/app/dashboard/providers.rsc +34 -21
  283. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +41 -30
  284. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +34 -21
  285. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +5 -1
  286. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  287. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +34 -21
  288. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +41 -30
  289. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +34 -21
  290. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +5 -1
  291. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +31 -18
  293. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +38 -26
  294. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +31 -18
  295. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +5 -1
  296. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  297. package/app/.next-cli-build/server/app/dashboard/quota.rsc +32 -19
  298. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +39 -28
  299. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +32 -19
  300. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +5 -1
  301. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +31 -18
  305. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +31 -18
  306. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +5 -1
  307. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +40 -27
  308. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/skills.rsc +34 -21
  310. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +41 -30
  311. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +34 -21
  312. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +5 -1
  313. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +31 -18
  315. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +38 -26
  316. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +31 -18
  317. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +5 -1
  318. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  319. package/app/.next-cli-build/server/app/dashboard/translator.rsc +34 -21
  320. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +41 -30
  321. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +34 -21
  322. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +5 -1
  323. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/usage.rsc +34 -21
  325. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +41 -30
  326. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +34 -21
  327. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +5 -1
  328. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  329. package/app/.next-cli-build/server/app/dashboard.rsc +32 -19
  330. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +38 -25
  331. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +32 -19
  332. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +4 -1
  333. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  334. package/app/.next-cli-build/server/app/index.html +1 -1
  335. package/app/.next-cli-build/server/app/index.rsc +24 -15
  336. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +29 -20
  337. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +24 -15
  338. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -1
  339. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  340. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  341. package/app/.next-cli-build/server/app/landing.html +1 -1
  342. package/app/.next-cli-build/server/app/landing.rsc +30 -18
  343. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +30 -18
  344. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +3 -1
  345. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +38 -26
  346. package/app/.next-cli-build/server/app/login/page.js +1 -1
  347. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  348. package/app/.next-cli-build/server/app/login.html +1 -1
  349. package/app/.next-cli-build/server/app/login.rsc +29 -18
  350. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +29 -18
  351. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +3 -1
  352. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +37 -26
  353. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  354. package/app/.next-cli-build/server/app/page.js +1 -1
  355. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  356. package/app/.next-cli-build/server/app-paths-manifest.json +15 -15
  357. package/app/.next-cli-build/server/chunks/1220.js +3 -3
  358. package/app/.next-cli-build/server/chunks/1344.js +2 -2
  359. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  360. package/app/.next-cli-build/server/chunks/1450.js +1 -1
  361. package/app/.next-cli-build/server/chunks/1738.js +1 -1
  362. package/app/.next-cli-build/server/chunks/1813.js +23 -1
  363. package/app/.next-cli-build/server/chunks/2430.js +215 -31
  364. package/app/.next-cli-build/server/chunks/2722.js +6 -6
  365. package/app/.next-cli-build/server/chunks/2750.js +1 -1
  366. package/app/.next-cli-build/server/chunks/2970.js +163 -23
  367. package/app/.next-cli-build/server/chunks/3120.js +2 -2
  368. package/app/.next-cli-build/server/chunks/369.js +5 -5
  369. package/app/.next-cli-build/server/chunks/412.js +1 -1
  370. package/app/.next-cli-build/server/chunks/4161.js +1 -1
  371. package/app/.next-cli-build/server/chunks/4177.js +1 -1
  372. package/app/.next-cli-build/server/chunks/4306.js +1 -1
  373. package/app/.next-cli-build/server/chunks/4315.js +1 -1
  374. package/app/.next-cli-build/server/chunks/4380.js +1 -1
  375. package/app/.next-cli-build/server/chunks/4730.js +2 -2
  376. package/app/.next-cli-build/server/chunks/4884.js +4 -4
  377. package/app/.next-cli-build/server/chunks/523.js +1 -1
  378. package/app/.next-cli-build/server/chunks/5330.js +4 -4
  379. package/app/.next-cli-build/server/chunks/5433.js +1 -1
  380. package/app/.next-cli-build/server/chunks/5470.js +3 -3
  381. package/app/.next-cli-build/server/chunks/5573.js +1 -1
  382. package/app/.next-cli-build/server/chunks/5718.js +1 -1
  383. package/app/.next-cli-build/server/chunks/595.js +1 -1
  384. package/app/.next-cli-build/server/chunks/6182.js +2 -2
  385. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  386. package/app/.next-cli-build/server/chunks/7774.js +13 -13
  387. package/app/.next-cli-build/server/chunks/7833.js +1 -1
  388. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  389. package/app/.next-cli-build/server/chunks/8895.js +1 -1
  390. package/app/.next-cli-build/server/chunks/8962.js +1 -1
  391. package/app/.next-cli-build/server/chunks/9055.js +2 -2
  392. package/app/.next-cli-build/server/chunks/9958.js +1 -1
  393. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  394. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  395. package/app/.next-cli-build/server/middleware.js +186 -24
  396. package/app/.next-cli-build/server/pages/404.html +1 -1
  397. package/app/.next-cli-build/server/pages/500.html +1 -1
  398. package/app/.next-cli-build/server/preview-props.json +5 -0
  399. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  400. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  401. package/app/.next-cli-build/static/chunks/1321-91a272a5139df5f2.js +1 -0
  402. package/app/.next-cli-build/static/chunks/3794-39f2d5bb0d40336b.js +52 -0
  403. package/app/.next-cli-build/static/chunks/4bd1b696-8cd12253b448cc13.js +1 -0
  404. package/app/.next-cli-build/static/chunks/5353-0085e26d68aca1f0.js +1 -0
  405. package/app/.next-cli-build/static/chunks/{5497-1af4fbf829c885c4.js → 5497-ff8c2e5da835ea40.js} +1 -1
  406. package/app/.next-cli-build/static/chunks/5772-9e7c7f235304c527.js +3 -0
  407. package/app/.next-cli-build/static/chunks/6069-31c2febe26d36d92.js +73 -0
  408. package/app/.next-cli-build/static/chunks/{6357.aa5754cdb37976a7.js → 6357.5f2532e76bf2cc51.js} +1 -1
  409. package/app/.next-cli-build/static/chunks/7504-5249aa88b6205df1.js +64 -0
  410. package/app/.next-cli-build/static/chunks/8202.69dace5daa86686d.js +1 -0
  411. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-8a99890727166f8a.js +1 -0
  412. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ce0c6b650a822e25.js +1 -0
  413. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-589743e8ea1d9673.js +11 -0
  414. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-eacf2780757238ff.js +1 -0
  415. package/app/.next-cli-build/static/chunks/main-00cd8c01f6f6e461.js +5 -0
  416. package/app/.next-cli-build/static/chunks/{webpack-53609978799ebbca.js → webpack-cc312041cf710f25.js} +1 -1
  417. package/app/cli/package.json +1 -1
  418. package/app/node_modules/@next/env/package.json +1 -1
  419. package/app/node_modules/nanoid/package.json +3 -3
  420. package/app/node_modules/next/dist/build/analysis/get-page-static-info.js +58 -76
  421. package/app/node_modules/next/dist/build/babel/loader/get-config.js +7 -16
  422. package/app/node_modules/next/dist/build/babel/plugins/next-font-unsupported.js +1 -5
  423. package/app/node_modules/next/dist/build/babel/plugins/next-page-config.js +5 -25
  424. package/app/node_modules/next/dist/build/babel/plugins/next-page-disallow-re-export-all-exports.js +1 -5
  425. package/app/node_modules/next/dist/build/babel/plugins/next-ssg-transform.js +4 -20
  426. package/app/node_modules/next/dist/build/browser-variant-modules.js +1 -0
  427. package/app/node_modules/next/dist/build/create-compiler-aliases.js +19 -11
  428. package/app/node_modules/next/dist/build/define-env.js +12 -18
  429. package/app/node_modules/next/dist/build/entries.js +132 -8
  430. package/app/node_modules/next/dist/build/get-babel-loader-config.js +10 -10
  431. package/app/node_modules/next/dist/build/get-convention-file-base-name.js +29 -0
  432. package/app/node_modules/next/dist/build/get-static-info-including-layouts.js +0 -1
  433. package/app/node_modules/next/dist/build/handle-externals.js +1 -5
  434. package/app/node_modules/next/dist/build/load-jsconfig.js +1 -5
  435. package/app/node_modules/next/dist/build/lockfile.js +1 -5
  436. package/app/node_modules/next/dist/build/next-config-ts/transpile-config.js +1 -5
  437. package/app/node_modules/next/dist/build/nft.js +119 -0
  438. package/app/node_modules/next/dist/build/normalize-catchall-routes.js +18 -66
  439. package/app/node_modules/next/dist/build/print-build-errors.js +57 -7
  440. package/app/node_modules/next/dist/build/route-discovery.js +32 -4
  441. package/app/node_modules/next/dist/build/segment-config/app/app-segment-config.js +19 -5
  442. package/app/node_modules/next/dist/build/segment-config/app/app-segments.js +120 -29
  443. package/app/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +1 -5
  444. package/app/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +8 -2
  445. package/app/node_modules/next/dist/build/static-paths/app.js +230 -133
  446. package/app/node_modules/next/dist/build/static-paths/pages.js +8 -40
  447. package/app/node_modules/next/dist/build/static-paths/param-matching.js +200 -0
  448. package/app/node_modules/next/dist/build/swc/index.js +92 -162
  449. package/app/node_modules/next/dist/build/utils.js +180 -90
  450. package/app/node_modules/next/dist/build/webpack/cache-invalidation.js +1 -5
  451. package/app/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +7 -35
  452. package/app/node_modules/next/dist/build/webpack/loaders/css-loader/src/CssSyntaxError.js +0 -5
  453. package/app/node_modules/next/dist/build/webpack/loaders/css-loader/src/camelcase.js +1 -5
  454. package/app/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +5 -25
  455. package/app/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-import-parser.js +4 -20
  456. package/app/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/index.js +3 -16
  457. package/app/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/interface.js +0 -1
  458. package/app/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +2 -10
  459. package/app/node_modules/next/dist/build/webpack/loaders/next-flight-css-loader.js +1 -5
  460. package/app/node_modules/next/dist/build/webpack/loaders/next-flight-loader/index.js +3 -15
  461. package/app/node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js +3 -15
  462. package/app/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Error.js +0 -5
  463. package/app/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Warning.js +0 -5
  464. package/app/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js +2 -10
  465. package/app/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js +2 -6
  466. package/app/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/file-protocol.js +2 -10
  467. package/app/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/join-function.js +1 -5
  468. package/app/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/postcss.js +1 -5
  469. package/app/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +1 -5
  470. package/app/node_modules/next/dist/build/webpack/plugins/deferred-entries-plugin.js +9 -0
  471. package/app/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +2 -6
  472. package/app/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +1 -5
  473. package/app/node_modules/next/dist/build/webpack/plugins/next-trace-entrypoints-plugin.js +2 -10
  474. package/app/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +3 -1
  475. package/app/node_modules/next/dist/build/webpack/plugins/slow-module-detection-plugin.js +3 -15
  476. package/app/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.js +1 -5
  477. package/app/node_modules/next/dist/build/webpack-config.js +16 -33
  478. package/app/node_modules/next/dist/cli/next-test.js +4 -0
  479. package/app/node_modules/next/dist/client/app-call-server.js +16 -18
  480. package/app/node_modules/next/dist/client/components/app-router-instance.js +43 -187
  481. package/app/node_modules/next/dist/client/components/{segment-cache/navigation.js → app-router-state.js} +88 -334
  482. package/app/node_modules/next/dist/client/components/app-router-utils.js +1 -5
  483. package/app/node_modules/next/dist/client/components/app-router.js +83 -74
  484. package/app/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +1 -5
  485. package/app/node_modules/next/dist/client/components/forbidden.js +2 -10
  486. package/app/node_modules/next/dist/client/components/handle-isr-error.js +19 -4
  487. package/app/node_modules/next/dist/client/components/instant-samples.js +4 -11
  488. package/app/node_modules/next/dist/client/components/links.js +6 -7
  489. package/app/node_modules/next/dist/client/components/navigation-dynamic-rendering.js +3 -3
  490. package/app/node_modules/next/dist/client/components/navigation-untracked.js +1 -2
  491. package/app/node_modules/next/dist/client/components/navigation.js +2 -6
  492. package/app/node_modules/next/dist/client/components/navigation.react-server.js +1 -5
  493. package/app/node_modules/next/dist/client/components/navigator.js +73 -0
  494. package/app/node_modules/next/dist/client/components/not-found.js +1 -5
  495. package/app/node_modules/next/dist/client/components/prefetch.js +83 -0
  496. package/app/node_modules/next/dist/client/components/readonly-url-search-params.js +0 -5
  497. package/app/node_modules/next/dist/client/components/redirect.js +3 -15
  498. package/app/node_modules/next/dist/client/components/{router-reducer/ppr-navigations.js → render-tree.js} +365 -400
  499. package/app/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +13 -5
  500. package/app/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +67 -54
  501. package/app/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +1 -7
  502. package/app/node_modules/next/dist/client/components/router-reducer/create-segment-key.js +42 -0
  503. package/app/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +71 -50
  504. package/app/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +4 -4
  505. package/app/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +2 -2
  506. package/app/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +5 -5
  507. package/app/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +11 -8
  508. package/app/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +12 -9
  509. package/app/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +30 -29
  510. package/app/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +5 -5
  511. package/app/node_modules/next/dist/client/components/router-reducer/router-reducer.js +2 -10
  512. package/app/node_modules/next/dist/client/components/segment-cache/bfcache.js +11 -21
  513. package/app/node_modules/next/dist/client/components/segment-cache/cache.js +1168 -1181
  514. package/app/node_modules/next/dist/client/components/segment-cache/decode-server-response.js +419 -0
  515. package/app/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +1 -1
  516. package/app/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +77 -82
  517. package/app/node_modules/next/dist/client/components/segment-cache/scheduler.js +464 -425
  518. package/app/node_modules/next/dist/client/components/segment-cache/types.js +12 -3
  519. package/app/node_modules/next/dist/client/components/segment-cache/vary-path.js +140 -126
  520. package/app/node_modules/next/dist/client/components/sequential-router-queue.js +163 -0
  521. package/app/node_modules/next/dist/client/components/unauthorized.js +2 -10
  522. package/app/node_modules/next/dist/client/components/unstable-rethrow.js +1 -2
  523. package/app/node_modules/next/dist/client/components/use-action-queue.js +2 -10
  524. package/app/node_modules/next/dist/client/dev/debug-channel.js +6 -323
  525. package/app/node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js +49 -31
  526. package/app/node_modules/next/dist/client/dev/hot-reloader/app/web-socket.js +14 -21
  527. package/app/node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js +15 -6
  528. package/app/node_modules/next/dist/client/dev/hot-reloader/runtime-error-state.js +72 -0
  529. package/app/node_modules/next/dist/client/flight-data-helpers.js +41 -94
  530. package/app/node_modules/next/dist/client/route-loader.js +6 -30
  531. package/app/node_modules/next/dist/client/route-params.js +34 -12
  532. package/app/node_modules/next/dist/client/router.js +2 -10
  533. package/app/node_modules/next/dist/client/sequential-call-server.js +45 -0
  534. package/app/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -1
  535. package/app/node_modules/next/dist/compiled/next-devtools/index.js +279 -229
  536. package/app/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +203 -59
  537. package/app/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +203 -59
  538. package/app/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +203 -59
  539. package/app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +203 -59
  540. package/app/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +5 -3
  541. package/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +13 -13
  542. package/app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +13 -13
  543. package/app/node_modules/next/dist/compiled/react-is/package.json +1 -1
  544. package/app/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -1
  545. package/app/node_modules/next/dist/compiled/unistore/unistore.js +1 -1
  546. package/app/node_modules/next/dist/experimental/testmode/fetch.js +2 -10
  547. package/app/node_modules/next/dist/export/helpers/create-incremental-cache.js +21 -16
  548. package/app/node_modules/next/dist/export/utils.js +21 -8
  549. package/app/node_modules/next/dist/lib/batcher.js +2 -2
  550. package/app/node_modules/next/dist/lib/dist-dir.js +88 -0
  551. package/app/node_modules/next/dist/lib/download-swc.js +2 -10
  552. package/app/node_modules/next/dist/lib/fallback.js +3 -15
  553. package/app/node_modules/next/dist/lib/find-pages-dir.js +2 -10
  554. package/app/node_modules/next/dist/lib/helpers/get-cache-directory.js +1 -5
  555. package/app/node_modules/next/dist/lib/helpers/get-registry.js +1 -5
  556. package/app/node_modules/next/dist/lib/is-error.js +3 -15
  557. package/app/node_modules/next/dist/lib/is-serializable-props.js +6 -35
  558. package/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js +4 -8
  559. package/app/node_modules/next/dist/lib/picocolors.js +10 -0
  560. package/app/node_modules/next/dist/lib/recursive-delete.js +50 -11
  561. package/app/node_modules/next/dist/lib/resolve-from.js +2 -10
  562. package/app/node_modules/next/dist/lib/static-env.js +1 -5
  563. package/app/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +3 -15
  564. package/app/node_modules/next/dist/lib/typescript/missingDependencyError.js +1 -5
  565. package/app/node_modules/next/dist/lib/typescript/runTypeCheck.js +1 -9
  566. package/app/node_modules/next/dist/lib/typescript/runTypeCheckCli.js +0 -1
  567. package/app/node_modules/next/dist/lib/typescript/runTypeScriptCli.js +4 -16
  568. package/app/node_modules/next/dist/lib/verify-partytown-setup.js +1 -5
  569. package/app/node_modules/next/dist/lib/warn-missing-react-dependencies.js +33 -0
  570. package/app/node_modules/next/dist/next-devtools/server/attach-nodejs-debugger-middleware.js +1 -5
  571. package/app/node_modules/next/dist/next-devtools/server/shared.js +3 -2
  572. package/app/node_modules/next/dist/next-devtools/shared/console-error.js +1 -5
  573. package/app/node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js +1 -5
  574. package/app/node_modules/next/dist/next-devtools/userspace/app/errors/runtime-error-metadata.js +39 -0
  575. package/app/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js +1 -5
  576. package/app/node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js +48 -19
  577. package/app/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js +1 -5
  578. package/app/node_modules/next/dist/server/accept-header.js +3 -15
  579. package/app/node_modules/next/dist/server/after/after-context.js +5 -25
  580. package/app/node_modules/next/dist/server/after/awaiter.js +1 -5
  581. package/app/node_modules/next/dist/server/after/run-with-after.js +2 -2
  582. package/app/node_modules/next/dist/server/api-utils/index.js +1 -10
  583. package/app/node_modules/next/dist/server/api-utils/node/parse-body.js +3 -15
  584. package/app/node_modules/next/dist/server/app-render/action-async-storage-instance.js +1 -1
  585. package/app/node_modules/next/dist/server/app-render/action-handler.js +104 -141
  586. package/app/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +1 -1
  587. package/app/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +6 -30
  588. package/app/node_modules/next/dist/server/app-render/app-render-render-utils.js +1 -5
  589. package/app/node_modules/next/dist/server/app-render/app-render-scheduling.js +3 -15
  590. package/app/node_modules/next/dist/server/app-render/app-render.js +1346 -1211
  591. package/app/node_modules/next/dist/server/app-render/async-local-storage.js +11 -6
  592. package/app/node_modules/next/dist/server/app-render/blocking-route-messages.js +119 -70
  593. package/app/node_modules/next/dist/server/app-render/cache-signal.js +61 -35
  594. package/app/node_modules/next/dist/server/app-render/console-async-storage-instance.js +1 -1
  595. package/app/node_modules/next/dist/server/app-render/create-component-tree.js +136 -160
  596. package/app/node_modules/next/dist/server/app-render/create-error-handler.js +12 -6
  597. package/app/node_modules/next/dist/server/app-render/create-transport-tree-from-loader-tree.js +190 -0
  598. package/app/node_modules/next/dist/server/app-render/debug-channel-server.web.js +1 -5
  599. package/app/node_modules/next/dist/server/app-render/dev-validation-scheduler.js +4 -5
  600. package/app/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +3 -1
  601. package/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +1 -1
  602. package/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +26 -3
  603. package/app/node_modules/next/dist/server/app-render/dynamic-rendering-client.js +124 -0
  604. package/app/node_modules/next/dist/server/app-render/dynamic-rendering.js +260 -329
  605. package/app/node_modules/next/dist/server/app-render/encryption-utils.js +1 -5
  606. package/app/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +2 -2
  607. package/app/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +4 -12
  608. package/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +13 -62
  609. package/app/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +2 -10
  610. package/app/node_modules/next/dist/server/app-render/manifests-singleton.js +110 -38
  611. package/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +1 -1
  612. package/app/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +3 -15
  613. package/app/node_modules/next/dist/server/app-render/postponed-state.js +87 -51
  614. package/app/node_modules/next/dist/server/app-render/prospective-render-utils.js +2 -6
  615. package/app/node_modules/next/dist/server/app-render/render-in-browser.js +27 -0
  616. package/app/node_modules/next/dist/server/app-render/required-scripts.js +1 -5
  617. package/app/node_modules/next/dist/server/app-render/segment-config/ensure-static.js +206 -0
  618. package/app/node_modules/next/dist/server/app-render/staged-rendering.js +46 -54
  619. package/app/node_modules/next/dist/server/app-render/stream-ops.node.js +18 -12
  620. package/app/node_modules/next/dist/server/app-render/stream-ops.web.js +4 -20
  621. package/app/node_modules/next/dist/server/app-render/sync-io-messages.js +2 -10
  622. package/app/node_modules/next/dist/server/app-render/types.js +2 -1
  623. package/app/node_modules/next/dist/server/app-render/use-flight-response.js +4 -17
  624. package/app/node_modules/next/dist/server/app-render/vary-params.js +12 -11
  625. package/app/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +95 -97
  626. package/app/node_modules/next/dist/server/app-render/work-async-storage-instance.js +1 -1
  627. package/app/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +1 -1
  628. package/app/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +36 -26
  629. package/app/node_modules/next/dist/server/async-storage/draft-mode-provider.js +1 -5
  630. package/app/node_modules/next/dist/server/async-storage/request-store.js +6 -5
  631. package/app/node_modules/next/dist/server/async-storage/work-store.js +24 -26
  632. package/app/node_modules/next/dist/server/base-http/node.js +1 -5
  633. package/app/node_modules/next/dist/server/base-server.js +346 -155
  634. package/app/node_modules/next/dist/server/client-component-renderer-logger.js +129 -28
  635. package/app/node_modules/next/dist/server/config-schema.js +61 -9
  636. package/app/node_modules/next/dist/server/config-shared.js +26 -4
  637. package/app/node_modules/next/dist/server/config.js +154 -332
  638. package/app/node_modules/next/dist/server/dev/debug-channel.js +1 -5
  639. package/app/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +1 -0
  640. package/app/node_modules/next/dist/server/dev/get-source-map-from-file.js +5 -25
  641. package/app/node_modules/next/dist/server/dev/hot-middleware.js +27 -1
  642. package/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +338 -200
  643. package/app/node_modules/next/dist/server/dev/hot-reloader-types.js +3 -0
  644. package/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js +26 -20
  645. package/app/node_modules/next/dist/server/dev/messages.js +2 -10
  646. package/app/node_modules/next/dist/server/dev/middleware-turbopack.js +4 -20
  647. package/app/node_modules/next/dist/server/dev/middleware-webpack.js +2 -10
  648. package/app/node_modules/next/dist/server/dev/next-dev-server.js +33 -95
  649. package/app/node_modules/next/dist/server/dev/node-stack-frames.js +2 -19
  650. package/app/node_modules/next/dist/server/dev/on-demand-entry-handler.js +12 -12
  651. package/app/node_modules/next/dist/server/dev/runtime-error-state.js +220 -0
  652. package/app/node_modules/next/dist/server/dev/serialized-errors.js +1 -5
  653. package/app/node_modules/next/dist/server/dev/static-paths-worker.js +16 -15
  654. package/app/node_modules/next/dist/server/dev/turbopack-utils.js +20 -36
  655. package/app/node_modules/next/dist/server/dev/use-cache-probe-pool.js +1 -0
  656. package/app/node_modules/next/dist/server/dynamic-rendering-utils.js +298 -55
  657. package/app/node_modules/next/dist/server/image-optimizer/detect-content-type.js +229 -0
  658. package/app/node_modules/next/dist/server/image-optimizer/extract-etag.js +53 -0
  659. package/app/node_modules/next/dist/server/image-optimizer/get-image-size.js +25 -0
  660. package/app/node_modules/next/dist/server/image-optimizer/get-max-age.js +41 -0
  661. package/app/node_modules/next/dist/server/image-optimizer/get-previously-cached-image-or-null.js +22 -0
  662. package/app/node_modules/next/dist/server/image-optimizer/image-error.js +23 -0
  663. package/app/node_modules/next/dist/server/image-optimizer/image-type.js +86 -0
  664. package/app/node_modules/next/dist/server/image-optimizer/transform.js +227 -0
  665. package/app/node_modules/next/dist/server/image-optimizer.js +78 -674
  666. package/app/node_modules/next/dist/server/lib/app-info-log.js +19 -9
  667. package/app/node_modules/next/dist/server/lib/cache-handlers/default.js +9 -13
  668. package/app/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +1 -5
  669. package/app/node_modules/next/dist/server/lib/dedupe-fetch.js +1 -5
  670. package/app/node_modules/next/dist/server/lib/dev-bundler-service.js +6 -6
  671. package/app/node_modules/next/dist/server/lib/generate-agent-files.js +158 -35
  672. package/app/node_modules/next/dist/server/lib/i18n-provider.js +1 -5
  673. package/app/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +14 -20
  674. package/app/node_modules/next/dist/server/lib/incremental-cache/index.js +19 -29
  675. package/app/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +1 -5
  676. package/app/node_modules/next/dist/server/lib/lru-cache.js +1 -5
  677. package/app/node_modules/next/dist/server/lib/mock-request.js +24 -120
  678. package/app/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +1 -5
  679. package/app/node_modules/next/dist/server/lib/patch-fetch.js +44 -38
  680. package/app/node_modules/next/dist/server/lib/postponed-request-body.js +1 -5
  681. package/app/node_modules/next/dist/server/lib/render-server.js +2 -10
  682. package/app/node_modules/next/dist/server/lib/router-server.js +106 -36
  683. package/app/node_modules/next/dist/server/lib/router-utils/build-data-route.js +26 -3
  684. package/app/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +14 -45
  685. package/app/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +1 -5
  686. package/app/node_modules/next/dist/server/lib/router-utils/filesystem.js +212 -31
  687. package/app/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +61 -1
  688. package/app/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +1 -5
  689. package/app/node_modules/next/dist/server/lib/router-utils/normalize-catchall-routes.js +320 -0
  690. package/app/node_modules/next/dist/server/lib/router-utils/proxy-request.js +2 -2
  691. package/app/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +17 -11
  692. package/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js +258 -76
  693. package/app/node_modules/next/dist/server/lib/router-utils/strict-route-matching-config.js +28 -0
  694. package/app/node_modules/next/dist/server/lib/router-utils/typegen.js +56 -10
  695. package/app/node_modules/next/dist/server/lib/start-server.js +48 -38
  696. package/app/node_modules/next/dist/server/lib/trace/constants.js +40 -0
  697. package/app/node_modules/next/dist/server/lib/trace/request-insights-identity.js +1 -3
  698. package/app/node_modules/next/dist/server/lib/trace/tracer.js +10 -10
  699. package/app/node_modules/next/dist/server/lib/utils.js +66 -15
  700. package/app/node_modules/next/dist/server/load-components.js +7 -2
  701. package/app/node_modules/next/dist/server/load-manifest.external.js +16 -17
  702. package/app/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +2 -10
  703. package/app/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +5 -5
  704. package/app/node_modules/next/dist/server/next-server.js +130 -124
  705. package/app/node_modules/next/dist/server/next.js +25 -37
  706. package/app/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +1 -2
  707. package/app/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +115 -62
  708. package/app/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +1 -5
  709. package/app/node_modules/next/dist/server/node-environment-extensions/io-utils.js +11 -10
  710. package/app/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +0 -9
  711. package/app/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +1 -12
  712. package/app/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +1 -1
  713. package/app/node_modules/next/dist/server/normalizers/request/base-path.js +1 -5
  714. package/app/node_modules/next/dist/server/normalizers/request/next-data.js +1 -5
  715. package/app/node_modules/next/dist/server/normalizers/request/prefix.js +1 -5
  716. package/app/node_modules/next/dist/server/patch-error-inspect.js +19 -11
  717. package/app/node_modules/next/dist/server/pipe-readable.js +42 -30
  718. package/app/node_modules/next/dist/server/render-result.js +5 -17
  719. package/app/node_modules/next/dist/server/render.js +37 -183
  720. package/app/node_modules/next/dist/server/request/fallback-params.js +23 -9
  721. package/app/node_modules/next/dist/server/response-cache/index.js +54 -32
  722. package/app/node_modules/next/dist/server/response-cache/utils.js +1 -5
  723. package/app/node_modules/next/dist/server/resume-data-cache/cache-store.js +18 -0
  724. package/app/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +51 -49
  725. package/app/node_modules/next/dist/server/revalidation-utils.js +15 -13
  726. package/app/node_modules/next/dist/server/route-modules/app-page/dev-render-context.js +23 -0
  727. package/app/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +5 -4
  728. package/app/node_modules/next/dist/server/route-modules/app-page/module.js +13 -1
  729. package/app/node_modules/next/dist/server/route-modules/app-page/module.render.js +26 -11
  730. package/app/node_modules/next/dist/server/route-modules/app-page/parse-request-headers.js +58 -0
  731. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +1 -5
  732. package/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +1 -5
  733. package/app/node_modules/next/dist/server/route-modules/pages/module.render.js +1 -5
  734. package/app/node_modules/next/dist/server/route-modules/pages/pages-handler.js +20 -16
  735. package/app/node_modules/next/dist/server/route-modules/route-module.js +57 -61
  736. package/app/node_modules/next/dist/server/serve-static.js +1 -5
  737. package/app/node_modules/next/dist/server/setup-http-agent-env.js +1 -5
  738. package/app/node_modules/next/dist/server/stream-utils/encoded-tags.js +1 -1
  739. package/app/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +7 -11
  740. package/app/node_modules/next/dist/server/typescript/constant.js +2 -0
  741. package/app/node_modules/next/dist/server/typescript/rules/config.js +29 -2
  742. package/app/node_modules/next/dist/server/use-cache/cache-life-profile.js +6 -30
  743. package/app/node_modules/next/dist/server/use-cache/constants.js +1 -5
  744. package/app/node_modules/next/dist/server/use-cache/handlers.js +27 -36
  745. package/app/node_modules/next/dist/server/use-cache/tiered-cache-handler.js +6 -4
  746. package/app/node_modules/next/dist/server/web/adapter.js +14 -35
  747. package/app/node_modules/next/dist/server/web/error.js +0 -15
  748. package/app/node_modules/next/dist/server/web/globals.js +3 -15
  749. package/app/node_modules/next/dist/server/web/next-url.js +1 -5
  750. package/app/node_modules/next/dist/server/web/sandbox/context.js +10 -34
  751. package/app/node_modules/next/dist/server/web/sandbox/sandbox.js +1 -5
  752. package/app/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +0 -5
  753. package/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +1 -5
  754. package/app/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +0 -5
  755. package/app/node_modules/next/dist/server/web/spec-extension/fetch-event.js +2 -10
  756. package/app/node_modules/next/dist/server/web/spec-extension/response.js +2 -10
  757. package/app/node_modules/next/dist/server/web/utils.js +1 -5
  758. package/app/node_modules/next/dist/server/web/web-on-close.js +2 -10
  759. package/app/node_modules/next/dist/shared/lib/app-router-types.js +38 -28
  760. package/app/node_modules/next/dist/shared/lib/constants.js +5 -0
  761. package/app/node_modules/next/dist/shared/lib/deployment-id.js +1 -1
  762. package/app/node_modules/next/dist/shared/lib/errors/code-frame.js +3 -2
  763. package/app/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +1 -5
  764. package/app/node_modules/next/dist/shared/lib/errors/ensure-static-gsp-errors.js +30 -0
  765. package/app/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +0 -5
  766. package/app/node_modules/next/dist/shared/lib/errors/incompatible-parallel-route-slots-error.js +36 -0
  767. package/app/node_modules/next/dist/shared/lib/errors/missing-canonical-interception-routes-error.js +20 -0
  768. package/app/node_modules/next/dist/shared/lib/errors/unmatched-app-pages-error.js +20 -0
  769. package/app/node_modules/next/dist/shared/lib/get-rspack.js +1 -5
  770. package/app/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +1 -5
  771. package/app/node_modules/next/dist/shared/lib/image-config.js +52 -1
  772. package/app/node_modules/next/dist/shared/lib/instant-messages.js +2 -10
  773. package/app/node_modules/next/dist/shared/lib/invariant-error.js +0 -5
  774. package/app/node_modules/next/dist/shared/lib/lazy-dynamic/react-browser-bailout.js +45 -0
  775. package/app/node_modules/next/dist/shared/lib/magic-identifier.js +5 -25
  776. package/app/node_modules/next/dist/shared/lib/match-remote-pattern.js +1 -5
  777. package/app/node_modules/next/dist/shared/lib/router/router.js +95 -77
  778. package/app/node_modules/next/dist/shared/lib/router/routes/app.js +3 -15
  779. package/app/node_modules/next/dist/shared/lib/router/utils/app-paths.js +6 -1
  780. package/app/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +4 -12
  781. package/app/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +63 -20
  782. package/app/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +1 -5
  783. package/app/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +1 -5
  784. package/app/node_modules/next/dist/shared/lib/router/utils/querystring.js +31 -0
  785. package/app/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +1 -5
  786. package/app/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +1 -5
  787. package/app/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +11 -55
  788. package/app/node_modules/next/dist/shared/lib/rsc-transport.js +108 -0
  789. package/app/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +0 -13
  790. package/app/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +48 -27
  791. package/app/node_modules/next/dist/shared/lib/segment.js +1 -13
  792. package/app/node_modules/next/dist/shared/lib/turbopack/compilation-events.js +7 -7
  793. package/app/node_modules/next/dist/shared/lib/turbopack/internal-error.js +2 -7
  794. package/app/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js +2 -6
  795. package/app/node_modules/next/dist/shared/lib/turbopack/utils.js +3 -11
  796. package/app/node_modules/next/dist/shared/lib/utils.js +2 -11
  797. package/app/node_modules/next/dist/shared/lib/zod.js +2 -6
  798. package/app/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  799. package/app/node_modules/next/dist/telemetry/detached-flush.js +8 -15
  800. package/app/node_modules/next/dist/telemetry/events/build.js +1 -2
  801. package/app/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  802. package/app/node_modules/next/dist/telemetry/events/version.js +2 -2
  803. package/app/node_modules/next/dist/telemetry/post-telemetry-payload.js +1 -5
  804. package/app/node_modules/next/dist/telemetry/storage.js +31 -19
  805. package/app/node_modules/next/dist/trace/report/index.js +5 -2
  806. package/app/node_modules/next/dist/trace/report/to-json-build.js +4 -2
  807. package/app/node_modules/next/dist/trace/report/to-json.js +141 -97
  808. package/app/node_modules/next/dist/trace/trace.js +14 -9
  809. package/app/node_modules/next/package.json +12 -11
  810. package/app/package.json +4 -4
  811. package/app/server.js +1 -1
  812. package/app/src/mitm/server.js +43 -39
  813. package/package.json +1 -1
  814. package/app/.next-cli-build/static/chunks/1321-c5b3011761e0228b.js +0 -1
  815. package/app/.next-cli-build/static/chunks/3794-83acfce05009cf38.js +0 -52
  816. package/app/.next-cli-build/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js +0 -1
  817. package/app/.next-cli-build/static/chunks/5353-d31cc8d476bc534e.js +0 -1
  818. package/app/.next-cli-build/static/chunks/5772-6cf78180ecf9dce0.js +0 -3
  819. package/app/.next-cli-build/static/chunks/6069-7e7f824c6e2d4291.js +0 -73
  820. package/app/.next-cli-build/static/chunks/7504-6f7ca1eab428dd5e.js +0 -64
  821. package/app/.next-cli-build/static/chunks/8202.1ffc6ce531e066ce.js +0 -1
  822. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-90b9aed7279ea50e.js +0 -1
  823. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-eaf6e24edeca4e51.js +0 -1
  824. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-2f53d5dd5b247cf1.js +0 -11
  825. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-bbc10fd10f7af626.js +0 -1
  826. package/app/.next-cli-build/static/chunks/main-1eaba0b776683ce7.js +0 -5
  827. package/app/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/minify.js +0 -94
  828. package/app/node_modules/next/dist/client/components/match-segments.js +0 -32
  829. package/app/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +0 -63
  830. package/app/node_modules/next/dist/client/components/segment-cache/prefetch.js +0 -32
  831. package/app/node_modules/next/dist/compiled/webpack-sources3/index.js +0 -1
  832. package/app/node_modules/next/dist/compiled/webpack-sources3/package.json +0 -1
  833. package/app/node_modules/next/dist/lib/detached-promise.js +0 -32
  834. package/app/node_modules/next/dist/lib/error-telemetry-utils.js +0 -42
  835. package/app/node_modules/next/dist/next-devtools/server/get-next-error-feedback-middleware.js +0 -42
  836. package/app/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +0 -154
  837. package/app/node_modules/next/dist/server/lib/experimental/ppr.js +0 -47
  838. package/app/node_modules/next/dist/server/lib/params-utils.js +0 -70
  839. package/app/node_modules/next/dist/server/lib/router-utils/is-postpone.js +0 -16
  840. package/app/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +0 -239
  841. package/app/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +0 -120
  842. package/app/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +0 -55
  843. package/app/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +0 -43
  844. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +0 -91
  845. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +0 -112
  846. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +0 -77
  847. package/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +0 -77
  848. package/app/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +0 -28
  849. package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +0 -106
  850. package/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +0 -42
  851. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +0 -30
  852. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +0 -34
  853. package/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +0 -20
  854. package/app/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +0 -21
  855. package/app/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +0 -55
  856. package/app/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +0 -64
  857. package/app/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +0 -18
  858. package/app/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +0 -15
  859. package/app/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +0 -68
  860. package/app/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +0 -30
  861. package/app/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +0 -30
  862. package/app/node_modules/next/dist/server/route-matchers/route-matcher.js +0 -54
  863. package/app/node_modules/next/dist/telemetry/events/error-feedback.js +0 -31
  864. /package/app/.next-cli-build/static/{i0cMBMqFdYWpbajovDyfY → em-yyr0O7qRIA9N8Clc4I}/_buildManifest.js +0 -0
  865. /package/app/.next-cli-build/static/{i0cMBMqFdYWpbajovDyfY → em-yyr0O7qRIA9N8Clc4I}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=412,exports.ids=[412],exports.modules={267:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429),g=c(51126),h=c(99258);let i=a=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"}})[a]||{name:a,flag:"\uD83C\uDF10"};function j({className:a="",isOpen:b,onClose:c,hideTrigger:k=!1}){let[l,m]=(0,e.useState)("en"),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(null),s="boolean"==typeof b,t=s?b:p,u=a=>{s?!a&&c&&c(l):q(a)},v=async a=>{if(a!==l&&!n){o(!0),u(!1);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:a})}),await (0,h.wn)(),m(a)}catch(a){console.error("Failed to set locale:",a)}finally{o(!1)}}};return(0,d.jsxs)("div",{className:a,children:[!k&&(0,d.jsxs)("button",{onClick:()=>u(!t),disabled:n,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:i(l).name}),(0,d.jsx)("span",{className:"text-lg",children:i(l).flag})]}),t&&(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>u(!1)}),(0,d.jsxs)("div",{ref:r,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>u(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,d.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:g.YZ.map(a=>{let b=l===a,c=i(a);return(0,d.jsxs)("button",{onClick:()=>v(a),disabled:n,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${b?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${n?"opacity-70 cursor-wait":""}`,title:c.name,children:[(0,d.jsx)("span",{className:"text-2xl",children:c.flag}),(0,d.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:c.name}),b&&(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},a)})})})]})]}),document.body)]})}},818:(a,b,c)=>{c.d(b,{h:()=>d});let d={en:"\uD83C\uDDFA\uD83C\uDDF8",vi:"\uD83C\uDDFB\uD83C\uDDF3","zh-CN":"\uD83C\uDDE8\uD83C\uDDF3","zh-TW":"\uD83C\uDDF9\uD83C\uDDFC",ja:"\uD83C\uDDEF\uD83C\uDDF5","pt-BR":"\uD83C\uDDE7\uD83C\uDDF7","pt-PT":"\uD83C\uDDF5\uD83C\uDDF9",ko:"\uD83C\uDDF0\uD83C\uDDF7",es:"\uD83C\uDDEA\uD83C\uDDF8",de:"\uD83C\uDDE9\uD83C\uDDEA",fr:"\uD83C\uDDEB\uD83C\uDDF7",he:"\uD83C\uDDEE\uD83C\uDDF1",ar:"\uD83C\uDDF8\uD83C\uDDE6",ru:"\uD83C\uDDF7\uD83C\uDDFA",pl:"\uD83C\uDDF5\uD83C\uDDF1",cs:"\uD83C\uDDE8\uD83C\uDDFF",nl:"\uD83C\uDDF3\uD83C\uDDF1",tr:"\uD83C\uDDF9\uD83C\uDDF7",uk:"\uD83C\uDDFA\uD83C\uDDE6",tl:"\uD83C\uDDF5\uD83C\uDDED",id:"\uD83C\uDDEE\uD83C\uDDE9",th:"\uD83C\uDDF9\uD83C\uDDED",hi:"\uD83C\uDDEE\uD83C\uDDF3",bn:"\uD83C\uDDE7\uD83C\uDDE9",ur:"\uD83C\uDDF5\uD83C\uDDF0",ro:"\uD83C\uDDF7\uD83C\uDDF4",sv:"\uD83C\uDDF8\uD83C\uDDEA",it:"\uD83C\uDDEE\uD83C\uDDF9",el:"\uD83C\uDDEC\uD83C\uDDF7",hu:"\uD83C\uDDED\uD83C\uDDFA",fi:"\uD83C\uDDEB\uD83C\uDDEE",da:"\uD83C\uDDE9\uD83C\uDDF0",no:"\uD83C\uDDF3\uD83C\uDDF4"}},3236:(a,b,c)=>{c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(42118),i=c(54510),j=c(95145);function k({icon:a,label:b,onClick:c,trailing:e,danger:f}){return(0,d.jsxs)("button",{onClick:c,className:`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${f?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${f?"":"text-text-muted"}`,children:a}),(0,d.jsx)("span",{className:"flex-1 text-left",children:b}),e&&(0,d.jsx)("span",{className:"text-base",children:e})]})}function l({onLogout:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),{toggleTheme:q,isDark:r}=(0,h.D)(),s=(0,e.useRef)(null),t=async()=>{p(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(a){}p(!1),n(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",ref:s,children:[(0,d.jsx)("button",{onClick:()=>c(a=>!a),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Menu",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),b&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,d.jsx)(k,{icon:"history",label:"Change Log",onClick:()=>{c(!1),g(!0)}}),(0,d.jsx)(k,{icon:r?"light_mode":"dark_mode",label:"Theme",onClick:()=>{q(),c(!1)}}),(0,d.jsx)(k,{icon:"power_settings_new",label:"Shutdown",danger:!0,onClick:()=>{c(!1),n(!0)}}),(0,d.jsx)(k,{icon:"logout",label:"Logout",danger:!0,onClick:()=>{c(!1),a()}})]})]}),(0,d.jsx)(i.default,{isOpen:f,onClose:()=>g(!1)}),(0,d.jsx)(j.ConfirmModal,{isOpen:m,onClose:()=>n(!1),onConfirm:t,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:o})]})}k.propTypes={icon:g().string.isRequired,label:g().string.isRequired,onClick:g().func.isRequired,trailing:g().node,danger:g().bool},l.propTypes={onLogout:g().func.isRequired}},4770:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({label:a,options:b=[],value:c,onChange:g,placeholder:h="Select an option",error:i,hint:j,disabled:k=!1,required:l=!1,className:m,selectClassName:n,...o}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-col gap-1.5",m),children:[a&&(0,d.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[a,l&&(0,d.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("select",{value:c,onChange:g,disabled:k,className:(0,e.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",i&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",n),...o,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:h}),b.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),(0,d.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),i&&(0,d.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),i]}),j&&!i&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:j})]})}},5291:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(79346),i=c(86209),j=c(56110);function k({isOpen:a,providerInfo:b,onSuccess:c,onClose:f}){let[g,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),q=(0,e.useCallback)((a,b)=>{"builder-id"===a?l("builder-id"):"idc"===a?(l("idc"),p(b)):"social"===a?(l("social"),n(b.provider)):("import"===a||"api-key"===a)&&c?.()},[c]),r=()=>{l(null),n(null),p(null)};return g?"builder-id"===g||"idc"===g?(0,d.jsx)(h.default,{isOpen:a,provider:"kiro",providerInfo:b,onSuccess:()=>{l(null),p(null),c?.(),f?.()},onClose:r,idcConfig:o}):"social"===g&&m?(0,d.jsx)(j.default,{isOpen:a,provider:m,onSuccess:()=>{l(null),n(null),c?.(),f?.()},onClose:r}):null:(0,d.jsx)(i.default,{isOpen:a,onMethodSelect:q,onClose:f})}k.propTypes={isOpen:g().bool.isRequired,providerInfo:g().shape({name:g().string}),onSuccess:g().func,onClose:g().func.isRequired}},11633:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(17660);let f={mode:{label:"Mode",format:a=>a},defaultModel:{label:"Model",format:a=>a,mono:!0},baseUrl:{label:"Endpoint",format:a=>a,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:a=>0===a?"Free":`$${a.toFixed(4)}`},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:a=>a},freeMonthlyQuota:{label:"Free quota",format:a=>0===a?"—":a>=999999?"Unlimited":`${a.toLocaleString()} / mo`},searchTypes:{label:"Types",format:a=>a.join(", ")},formats:{label:"Formats",format:a=>a.join(", ")},maxMaxResults:{label:"Max results",format:a=>a},maxCharacters:{label:"Max chars",format:a=>a.toLocaleString()}};function g({config:a,provider:b,title:c="Provider Info"}){if(!a)return null;let h=Object.entries(f).filter(([b])=>void 0!==a[b]&&null!==a[b]&&""!==a[b]).map(([b,c])=>({key:b,label:c.label,value:c.format(a[b]),isLink:c.isLink,mono:c.mono,raw:a[b]})),i=b?.notice?.apiKeyUrl||b?.website,j=b?.notice?.text;return(0,d.jsxs)(e.default,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:c}),i&&(0,d.jsxs)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:a.label}),a.isLink?(0,d.jsx)("a",{href:a.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${a.mono?"font-mono":""}`,children:a.value}):(0,d.jsx)("span",{className:`text-sm text-text-main truncate ${a.mono?"font-mono":""}`,children:a.value})]},a.key)),j&&(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,d.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:j})]})]})]})}},17660:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(71404);let f={primary:"bg-surface border border-border-subtle rounded-[16px] shadow-[var(--shadow-elev)]",default:"bg-surface border border-border-subtle rounded-[14px] shadow-[var(--shadow-soft)]",inline:"bg-bg border border-border-subtle rounded-[12px]"};function g({children:a,title:b,subtitle:c,icon:h,action:i,padding:j="md",hover:k=!1,elev:l=!1,variant:m,className:n,...o}){let p=f[m]||(l?f.primary:f.default);return(0,d.jsxs)("div",{className:(0,e.cn)(p,k&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[j],n),...o,children:[(b||i)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[h&&(0,d.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:h})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-[15px] leading-5 text-text-main font-semibold tracking-[-0.01em]",children:b}),c&&(0,d.jsx)("p",{className:"text-[13px] leading-5 text-text-muted mt-0.5",children:c})]})]}),i]}),a]})}g.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",b),...c,children:a})},g.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",b),...c,children:a})},g.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:b})]})}},20084:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(95145);function g({isOpen:a,onClose:b,onAdd:c,addedNames:h=[]}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({}),[w,x]=(0,e.useState)({}),[y,z]=(0,e.useState)({}),A=(0,e.useMemo)(()=>new Set(h),[h]),B=(0,e.useMemo)(()=>{let a=m.trim().toLowerCase();return i.filter(b=>("authless"!==o||!b.oauth)&&("oauth"!==o||!!b.oauth)&&(!a||(b.title||"").toLowerCase().includes(a)||(b.description||"").toLowerCase().includes(a)||(b.name||"").toLowerCase().includes(a)))},[i,m,o]),C=async a=>{if(!u[a.url]){x(b=>({...b,[a.url]:!0}));try{let b=await fetch("/api/cli-tools/cowork-mcp-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url})}),c=await b.json(),d=c.tools||[],e=Array.isArray(a.toolNames)?a.toolNames:[],f=d.length>0?d.map(a=>a.name):e;v(b=>({...b,[a.url]:{tools:d,requiresAuth:!!c.requiresAuth,error:c.error}})),z(b=>({...b,[a.url]:Object.fromEntries(f.map(a=>[a,!0]))}))}catch(b){v(c=>({...c,[a.url]:{tools:[],error:b.message}}))}finally{x(b=>({...b,[a.url]:!1}))}}},D=(a,b)=>{let c=y[a]||{};z(d=>({...d,[a]:Object.fromEntries(Object.keys(c).map(a=>[a,b]))}))};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:"Browse MCP Marketplace",size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"Search by name or description...",className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"all",children:"All"}),(0,d.jsx)("option",{value:"authless",children:"Authless"}),(0,d.jsx)("option",{value:"oauth",children:"OAuth"})]})]}),q&&(0,d.jsx)("div",{className:"px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:q}),k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-xs py-4 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Loading registry..."})]}),!k&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 max-h-[60vh] overflow-y-auto",children:[0===B.length&&(0,d.jsx)("div",{className:"text-center text-xs text-text-muted py-6",children:"No servers match filter"}),B.map(a=>{let b=A.has(a.slug||a.name),e=s===a.url,f=u[a.url],g=w[a.url],h=y[a.url]||{},i=Object.keys(h),j=Object.values(h).filter(Boolean).length;return(0,d.jsxs)("div",{className:"rounded border border-transparent hover:border-border",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5",children:[a.iconUrl?(0,d.jsx)("img",{src:a.iconUrl,alt:"",className:"size-7 rounded shrink-0 object-contain",onError:a=>{a.target.style.display="none"}}):(0,d.jsx)("div",{className:"size-7 rounded bg-surface shrink-0"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-xs",children:a.title}),a.oauth?(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-amber-500/10 text-amber-600",children:"OAuth"}):(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-green-500/10 text-green-600",children:"Authless"}),a.toolCount>0&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[a.toolCount," tools"]})]}),a.description&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted line-clamp-2 mt-0.5",children:a.description})]}),(0,d.jsx)("button",{onClick:()=>b?null:void(s===a.url?t(null):(t(a.url),C(a))),disabled:b,className:`shrink-0 px-2 py-1 rounded text-[10px] font-medium transition-colors ${b?"bg-green-500/10 text-green-600 cursor-default":e?"bg-surface border border-border text-text-muted hover:bg-black/5":"bg-primary/10 border border-primary/40 text-primary hover:bg-primary/20"}`,children:b?"Added":e?"Cancel":"+ Add"})]}),e&&(0,d.jsxs)("div",{className:"px-3 py-2 bg-surface/40 border-t border-border flex flex-col gap-2",children:[g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-[10px] py-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Probing server for tools..."})]}),!g&&f?.requiresAuth&&(0,d.jsx)("p",{className:"text-[10px] text-amber-600 bg-amber-500/10 px-2 py-1 rounded",children:"\uD83D\uDD10 OAuth required. Add now and authenticate after Apply; tool list will be discovered after first connect."}),!g&&f?.error&&!f?.requiresAuth&&(0,d.jsxs)("p",{className:"text-[10px] text-red-600 bg-red-500/10 px-2 py-1 rounded",children:["Probe failed: ",f.error]}),!g&&0===i.length&&!f?.requiresAuth&&!f?.error&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted",children:"No tools advertised by server."}),!g&&i.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[j,"/",i.length," tools enabled"]}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>D(a.url,!0),className:"text-[10px] text-primary hover:underline",children:"All"}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"\xb7"}),(0,d.jsx)("button",{onClick:()=>D(a.url,!1),className:"text-[10px] text-primary hover:underline",children:"None"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1 max-h-40 overflow-y-auto",children:i.map(b=>(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 px-1 rounded",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!h[b],onChange:()=>{var c;return c=a.url,void z(a=>({...a,[c]:{...a[c],[b]:!a[c]?.[b]}}))},className:"size-3"}),(0,d.jsx)("span",{className:"truncate",children:b})]},b))})]}),(0,d.jsx)("button",{onClick:()=>{let b,d;return d=Object.keys(b=y[a.url]||{}).filter(a=>b[a]),void(c?.({name:a.slug||a.name,title:a.title,description:a.description,url:a.url,transport:a.transport,oauth:a.oauth,toolNames:d}),t(null))},className:"self-end px-2 py-1 rounded text-[10px] font-medium bg-primary text-white hover:bg-primary/90",children:"✓ Confirm Add"})]})]},a.url)})]}),(0,d.jsxs)("div",{className:"text-[10px] text-text-muted text-right",children:[B.length," of ",i.length," servers"]})]})})}},20309:(a,b,c)=>{c.d(b,{default:()=>x});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(95145),i=c(72738),j=c(38930);function k(a,b){return RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(b)}let l={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},m={"claude-opus-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"claude-sonnet-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},...Object.fromEntries(["high","medium","low"].flatMap(a=>[[`claude-opus-5-5-${a}`,{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}],[`claude-sonnet-5-5-${a}`,{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}]])),"gpt-image-1":{imageOutput:!0,tools:!1},"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"glm-4.6v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3,maxOutput:32768},"glm-4.5v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:64e3,maxOutput:16384},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},n=a=>({vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:a,maxOutput:128e3}),o=Object.fromEntries(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna"].flatMap(a=>["","-thinking","-agentic","-thinking-agentic"].map(b=>[`${a}${b}`,n(272e3)]))),p=Object.fromEntries(Object.entries({"gpt-6-astra":272e3,"gpt-6-sol":272e3,"gpt-6-luna":272e3,"gpt-5.6-sol":372e3,"gpt-5.6-terra":272e3,"gpt-5.6-luna":272e3,"gpt-5.5":4e5,"gpt-5.4":4e5}).flatMap(([a,b])=>[[a,n(b)],[`${a}-review`,n(b)]])),q={kiro:o,kr:o,codex:p,cx:p,"codebuddy-cn":{"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.2":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"kimi-k3-1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:1048576},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:3e5,maxOutput:131072},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:524288},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}},qoder:{ultimate:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},auto:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},performance:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},efficient:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},lite:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dmodel:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dfmodel:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},gmodel:{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gfmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},kmodel:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:65536},mmodel:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},qmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536}},ollama:{"deepseek-v4.1-flash:cloud":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},"opencode-go":{"claude-haiku-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}}},r=[{pattern:"*claude*opus-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-4*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4.*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function s(a,b){if(!b)return{...l};if(a&&q[a]?.[b])return{...l,...q[a][b]};let c=b.includes("/")?b.split("/").pop():b;if(m[c])return{...l,...m[c]};if(m[b])return{...l,...m[b]};for(let{pattern:a,caps:d}of r)if(k(a,c)||k(a,b))return{...l,...d};return{...l}}var t=c(91431),u=c(96919);let v=[...Object.keys(u.zN),...Object.keys(u.IS),...Object.keys(u.nJ),...Object.keys(u.fg)],w=Object.keys(u.IS).filter(a=>u.IS[a].noAuth&&!u.IS[a].hidden);function x({isOpen:a,onClose:b,onSelect:c,onDeselect:f,selectedModel:g,activeProviders:k=[],title:l="Select Model",modelAliases:m={},kindFilter:n=null,capFilter:o=null,addedModelValues:p=[],closeOnSelect:q=!0}){let r=(0,e.useMemo)(()=>n?k.filter(a=>{let b=u.Q2[a.provider];return(b?.serviceKinds||["llm"]).includes(n)}):k,[k,n]),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)([]),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)({}),[I,J]=(0,e.useState)({}),K=async(a,b,{refresh:c=!1}={})=>{J(b=>({...b,[a]:{...b[a]||{},loading:!0,error:null}}));try{let d=new URLSearchParams({provider:a});b&&d.set("connectionId",b),c&&d.set("refresh","1");let e=await fetch(`/api/models/live?${d}`),f=await e.json();J(b=>({...b,[a]:{loading:!1,models:Array.isArray(f.models)?f.models:[],error:f.error||(f.models?.length?null:"No models returned"),source:f.source}}))}catch(b){J(c=>({...c,[a]:{loading:!1,models:[],error:b.message}}))}},L=(0,e.useMemo)(()=>({...u.zN,...u.IS,...u.nJ,...u.fg}),[]),M=(0,e.useMemo)(()=>{let a={},b=new Set(["webSearch","webFetch"]),c=new Set(["image","tts","stt","embedding","imageToText"]),d=new Set(["tts","image","webFetch"]);return[...new Set([...r.map(a=>a.provider),...n?w.filter(a=>(u.Q2[a]?.serviceKinds||["llm"]).includes(n)):w])].sort((a,b)=>{let c=v.indexOf(a),d=v.indexOf(b);return(-1===c?999:c)-(-1===d?999:d)}).forEach(e=>{let f=(0,u.wG)(e),g=L[e]||{name:e,color:"#666"},h=(0,u.mq)(e)||(0,u.gb)(e);if(n&&b.has(n)){a[e]={name:g.name,alias:f,color:g.color,models:[{id:e,name:g.name,value:e}]};return}if(g.passthroughModels){let b=Object.entries(m).filter(([,a])=>a.startsWith(`${f}/`)).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b})),h=I[e],i=new Set(b.map(a=>a.id)),j=[...b,...(h?.models||[]).filter(a=>a?.id&&!i.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isLive:!0}))];n&&c.has(n)&&0===(j=(0,t.KC)(e).filter(a=>a.type===n).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,type:a.type}))).length&&d.has(n)&&(g.serviceKinds||["llm"]).includes(n)&&(j=[{id:e,name:g.name,value:f}]);let k=0===j.length&&(h?.loading||h?.error);if(j.length>0||k){let b=C.find(a=>a.id===e),c=b?.name||g.name;a[e]={name:c,alias:f,color:g.color,models:j,liveStatus:h?{loading:!!h.loading,error:h.error||null,source:h.source,liveCount:(h.models||[]).length}:null}}}else if(h){if(n&&c.has(n))return;let b=k.find(a=>a.provider===e),d=C.find(a=>a.id===e),f=d?.name||b?.name||g.name,h=b?.providerSpecificData?.prefix||d?.prefix||e,i=Object.entries(m).filter(([,a])=>a.startsWith(`${e}/`)).map(([a,b])=>({id:b.replace(`${e}/`,""),name:a,value:`${h}/${b.replace(`${e}/`,"")}`})),j=i.length>0?i:[{id:`__placeholder__${e}`,name:`${h}/model-id`,value:`${h}/model-id`,isPlaceholder:!0}];a[e]={name:f,alias:h,color:g.color,models:j,isCustom:!0,hasModels:i.length>0}}else{var i;let b,h=(0,t.KC)(e),j=new Set(h.map(a=>a.id)),k=h.length>0,l=Object.entries(m).filter(([a,b])=>b.startsWith(`${f}/`)&&(!k||a===b.replace(`${f}/`,""))&&!j.has(b.replace(`${f}/`,""))).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b,isCustom:!0})),p=new Set(l.map(a=>a.id)),q=E.filter(a=>a.providerAlias===f&&!j.has(a.id)&&!p.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isCustom:!0})),r=new Set([...j,...l.map(a=>a.id),...q.map(a=>a.id)]),u=I[e],v=(u?.models||[]).filter(a=>a?.id&&!r.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isLive:!0})),w=[...h.map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,type:a.type})),...l,...q,...v],x=new Set,y=(i=w.filter(a=>!x.has(a.value)&&(x.add(a.value),!0)),b=n?c.has(n)?i.filter(a=>a.isPlaceholder||a.type===n):i:i.filter(a=>a.isPlaceholder||a.isCustom||!a.type||"llm"===a.type),o&&(b=b.filter(a=>{let b=a.value||"",c=b.indexOf("/");return!(c<=0)&&s(b.slice(0,c),b.slice(c+1))?.[o]===!0})),b);0===y.length&&n&&d.has(n)&&(g.serviceKinds||["llm"]).includes(n)&&(y=[{id:e,name:g.name,value:f}]);let z=0===y.length&&(u?.loading||u?.error);(y.length>0||z)&&(a[e]={name:g.name,alias:f,color:g.color,models:y,liveStatus:u?{loading:!!u.loading,error:u.error||null,source:u.source,liveCount:(u.models||[]).length}:null})}}),Object.entries(a).forEach(([b,c])=>{let d=new Set([...G[(0,u.wG)(b)]||[],...G[b]||[]]);0!==d.size&&(c.models=c.models.filter(a=>!d.has(a.id)),0===c.models.length&&delete a[b])}),a},[r,m,L,C,E,G,n,k,I]),N=(0,e.useMemo)(()=>{if(n||o)return[];if(!y.trim())return A;let a=y.toLowerCase();return A.filter(b=>b.name.toLowerCase().includes(a))},[A,y,n,o]),O=(0,e.useMemo)(()=>{let a=y.trim().toLowerCase(),b={};return Object.entries(M).forEach(([c,d])=>{var e;let f=d.models;if(a){let b=d.name.toLowerCase().includes(a);if(0===(f=f.filter(b=>b.name.toLowerCase().includes(a)||b.id.toLowerCase().includes(a))).length&&!b)return}b[c]={...d,models:[...(e=f).filter(a=>p.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),...e.filter(a=>!p.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name))]}}),b},[M,y,p]),P=a=>{let d=a?.value||a?.name||a;p.includes(d)&&f?f(a):c(a),q&&(b(),z(""))};return(0,d.jsxs)(h.default,{isOpen:a,onClose:()=>{b(),z("")},title:l,size:"md",className:"p-4!",footer:null,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary shrink-0",style:{fontSize:"14px"},children:"info"}),(0,d.jsx)("span",{children:"Click to add, click again to remove. Changes are saved automatically."})]}),(0,d.jsx)("div",{className:"mb-3",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,d.jsx)("input",{type:"text",placeholder:"Search...",value:y,onChange:a=>z(a.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]})}),(0,d.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[N.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:"Combos"}),(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",N.length,")"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:N.map(a=>{let b=g===a.name;return(0,d.jsxs)("button",{onClick:()=>P({id:a.name,name:a.name,value:a.name}),className:`
1
+ "use strict";exports.id=412,exports.ids=[412],exports.modules={267:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429),g=c(51126),h=c(99258);let i=a=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"}})[a]||{name:a,flag:"\uD83C\uDF10"};function j({className:a="",isOpen:b,onClose:c,hideTrigger:k=!1}){let[l,m]=(0,e.useState)("en"),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(null),s="boolean"==typeof b,t=s?b:p,u=a=>{s?!a&&c&&c(l):q(a)},v=async a=>{if(a!==l&&!n){o(!0),u(!1);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:a})}),await (0,h.wn)(),m(a)}catch(a){console.error("Failed to set locale:",a)}finally{o(!1)}}};return(0,d.jsxs)("div",{className:a,children:[!k&&(0,d.jsxs)("button",{onClick:()=>u(!t),disabled:n,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:i(l).name}),(0,d.jsx)("span",{className:"text-lg",children:i(l).flag})]}),t&&(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>u(!1)}),(0,d.jsxs)("div",{ref:r,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>u(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,d.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:g.YZ.map(a=>{let b=l===a,c=i(a);return(0,d.jsxs)("button",{onClick:()=>v(a),disabled:n,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${b?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${n?"opacity-70 cursor-wait":""}`,title:c.name,children:[(0,d.jsx)("span",{className:"text-2xl",children:c.flag}),(0,d.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:c.name}),b&&(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},a)})})})]})]}),document.body)]})}},818:(a,b,c)=>{c.d(b,{h:()=>d});let d={en:"\uD83C\uDDFA\uD83C\uDDF8",vi:"\uD83C\uDDFB\uD83C\uDDF3","zh-CN":"\uD83C\uDDE8\uD83C\uDDF3","zh-TW":"\uD83C\uDDF9\uD83C\uDDFC",ja:"\uD83C\uDDEF\uD83C\uDDF5","pt-BR":"\uD83C\uDDE7\uD83C\uDDF7","pt-PT":"\uD83C\uDDF5\uD83C\uDDF9",ko:"\uD83C\uDDF0\uD83C\uDDF7",es:"\uD83C\uDDEA\uD83C\uDDF8",de:"\uD83C\uDDE9\uD83C\uDDEA",fr:"\uD83C\uDDEB\uD83C\uDDF7",he:"\uD83C\uDDEE\uD83C\uDDF1",ar:"\uD83C\uDDF8\uD83C\uDDE6",ru:"\uD83C\uDDF7\uD83C\uDDFA",pl:"\uD83C\uDDF5\uD83C\uDDF1",cs:"\uD83C\uDDE8\uD83C\uDDFF",nl:"\uD83C\uDDF3\uD83C\uDDF1",tr:"\uD83C\uDDF9\uD83C\uDDF7",uk:"\uD83C\uDDFA\uD83C\uDDE6",tl:"\uD83C\uDDF5\uD83C\uDDED",id:"\uD83C\uDDEE\uD83C\uDDE9",th:"\uD83C\uDDF9\uD83C\uDDED",hi:"\uD83C\uDDEE\uD83C\uDDF3",bn:"\uD83C\uDDE7\uD83C\uDDE9",ur:"\uD83C\uDDF5\uD83C\uDDF0",ro:"\uD83C\uDDF7\uD83C\uDDF4",sv:"\uD83C\uDDF8\uD83C\uDDEA",it:"\uD83C\uDDEE\uD83C\uDDF9",el:"\uD83C\uDDEC\uD83C\uDDF7",hu:"\uD83C\uDDED\uD83C\uDDFA",fi:"\uD83C\uDDEB\uD83C\uDDEE",da:"\uD83C\uDDE9\uD83C\uDDF0",no:"\uD83C\uDDF3\uD83C\uDDF4"}},3236:(a,b,c)=>{c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(42118),i=c(54510),j=c(95145);function k({icon:a,label:b,onClick:c,trailing:e,danger:f}){return(0,d.jsxs)("button",{onClick:c,className:`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${f?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${f?"":"text-text-muted"}`,children:a}),(0,d.jsx)("span",{className:"flex-1 text-left",children:b}),e&&(0,d.jsx)("span",{className:"text-base",children:e})]})}function l({onLogout:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(!1),{toggleTheme:q,isDark:r}=(0,h.D)(),s=(0,e.useRef)(null),t=async()=>{p(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(a){}p(!1),n(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",ref:s,children:[(0,d.jsx)("button",{onClick:()=>c(a=>!a),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Menu",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),b&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,d.jsx)(k,{icon:"history",label:"Change Log",onClick:()=>{c(!1),g(!0)}}),(0,d.jsx)(k,{icon:r?"light_mode":"dark_mode",label:"Theme",onClick:()=>{q(),c(!1)}}),(0,d.jsx)(k,{icon:"power_settings_new",label:"Shutdown",danger:!0,onClick:()=>{c(!1),n(!0)}}),(0,d.jsx)(k,{icon:"logout",label:"Logout",danger:!0,onClick:()=>{c(!1),a()}})]})]}),(0,d.jsx)(i.default,{isOpen:f,onClose:()=>g(!1)}),(0,d.jsx)(j.ConfirmModal,{isOpen:m,onClose:()=>n(!1),onConfirm:t,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:o})]})}k.propTypes={icon:g().string.isRequired,label:g().string.isRequired,onClick:g().func.isRequired,trailing:g().node,danger:g().bool},l.propTypes={onLogout:g().func.isRequired}},4770:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({label:a,options:b=[],value:c,onChange:g,placeholder:h="Select an option",error:i,hint:j,disabled:k=!1,required:l=!1,className:m,selectClassName:n,...o}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-col gap-1.5",m),children:[a&&(0,d.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[a,l&&(0,d.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("select",{value:c,onChange:g,disabled:k,className:(0,e.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",i&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",n),...o,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:h}),b.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),(0,d.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),i&&(0,d.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),i]}),j&&!i&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:j})]})}},5291:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(79346),i=c(86209),j=c(56110);function k({isOpen:a,providerInfo:b,onSuccess:c,onClose:f}){let[g,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),q=(0,e.useCallback)((a,b)=>{"builder-id"===a?l("builder-id"):"idc"===a?(l("idc"),p(b)):"social"===a?(l("social"),n(b.provider)):("import"===a||"api-key"===a)&&c?.()},[c]),r=()=>{l(null),n(null),p(null)};return g?"builder-id"===g||"idc"===g?(0,d.jsx)(h.default,{isOpen:a,provider:"kiro",providerInfo:b,onSuccess:()=>{l(null),p(null),c?.(),f?.()},onClose:r,idcConfig:o}):"social"===g&&m?(0,d.jsx)(j.default,{isOpen:a,provider:m,onSuccess:()=>{l(null),n(null),c?.(),f?.()},onClose:r}):null:(0,d.jsx)(i.default,{isOpen:a,onMethodSelect:q,onClose:f})}k.propTypes={isOpen:g().bool.isRequired,providerInfo:g().shape({name:g().string}),onSuccess:g().func,onClose:g().func.isRequired}},11633:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(17660);let f={mode:{label:"Mode",format:a=>a},defaultModel:{label:"Model",format:a=>a,mono:!0},baseUrl:{label:"Endpoint",format:a=>a,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:a=>0===a?"Free":`$${a.toFixed(4)}`},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:a=>a},freeMonthlyQuota:{label:"Free quota",format:a=>0===a?"—":a>=999999?"Unlimited":`${a.toLocaleString()} / mo`},searchTypes:{label:"Types",format:a=>a.join(", ")},formats:{label:"Formats",format:a=>a.join(", ")},maxMaxResults:{label:"Max results",format:a=>a},maxCharacters:{label:"Max chars",format:a=>a.toLocaleString()}};function g({config:a,provider:b,title:c="Provider Info"}){if(!a)return null;let h=Object.entries(f).filter(([b])=>void 0!==a[b]&&null!==a[b]&&""!==a[b]).map(([b,c])=>({key:b,label:c.label,value:c.format(a[b]),isLink:c.isLink,mono:c.mono,raw:a[b]})),i=b?.notice?.apiKeyUrl||b?.website,j=b?.notice?.text;return(0,d.jsxs)(e.default,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:c}),i&&(0,d.jsxs)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:a.label}),a.isLink?(0,d.jsx)("a",{href:a.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${a.mono?"font-mono":""}`,children:a.value}):(0,d.jsx)("span",{className:`text-sm text-text-main truncate ${a.mono?"font-mono":""}`,children:a.value})]},a.key)),j&&(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,d.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:j})]})]})]})}},17660:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(71404);let f={primary:"bg-surface border border-border-subtle rounded-[16px] shadow-[var(--shadow-elev)]",default:"bg-surface border border-border-subtle rounded-[14px] shadow-[var(--shadow-soft)]",inline:"bg-bg border border-border-subtle rounded-[12px]"};function g({children:a,title:b,subtitle:c,icon:h,action:i,padding:j="md",hover:k=!1,elev:l=!1,variant:m,className:n,...o}){let p=f[m]||(l?f.primary:f.default);return(0,d.jsxs)("div",{className:(0,e.cn)(p,k&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[j],n),...o,children:[(b||i)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[h&&(0,d.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:h})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-[15px] leading-5 text-text-main font-semibold tracking-[-0.01em]",children:b}),c&&(0,d.jsx)("p",{className:"text-[13px] leading-5 text-text-muted mt-0.5",children:c})]})]}),i]}),a]})}g.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",b),...c,children:a})},g.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",b),...c,children:a})},g.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:b})]})}},20084:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(95145);function g({isOpen:a,onClose:b,onAdd:c,addedNames:h=[]}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({}),[w,x]=(0,e.useState)({}),[y,z]=(0,e.useState)({}),A=(0,e.useMemo)(()=>new Set(h),[h]),B=(0,e.useMemo)(()=>{let a=m.trim().toLowerCase();return i.filter(b=>("authless"!==o||!b.oauth)&&("oauth"!==o||!!b.oauth)&&(!a||(b.title||"").toLowerCase().includes(a)||(b.description||"").toLowerCase().includes(a)||(b.name||"").toLowerCase().includes(a)))},[i,m,o]),C=async a=>{if(!u[a.url]){x(b=>({...b,[a.url]:!0}));try{let b=await fetch("/api/cli-tools/cowork-mcp-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url})}),c=await b.json(),d=c.tools||[],e=Array.isArray(a.toolNames)?a.toolNames:[],f=d.length>0?d.map(a=>a.name):e;v(b=>({...b,[a.url]:{tools:d,requiresAuth:!!c.requiresAuth,error:c.error}})),z(b=>({...b,[a.url]:Object.fromEntries(f.map(a=>[a,!0]))}))}catch(b){v(c=>({...c,[a.url]:{tools:[],error:b.message}}))}finally{x(b=>({...b,[a.url]:!1}))}}},D=(a,b)=>{let c=y[a]||{};z(d=>({...d,[a]:Object.fromEntries(Object.keys(c).map(a=>[a,b]))}))};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:"Browse MCP Marketplace",size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"Search by name or description...",className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"all",children:"All"}),(0,d.jsx)("option",{value:"authless",children:"Authless"}),(0,d.jsx)("option",{value:"oauth",children:"OAuth"})]})]}),q&&(0,d.jsx)("div",{className:"px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:q}),k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-xs py-4 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Loading registry..."})]}),!k&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 max-h-[60vh] overflow-y-auto",children:[0===B.length&&(0,d.jsx)("div",{className:"text-center text-xs text-text-muted py-6",children:"No servers match filter"}),B.map(a=>{let b=A.has(a.slug||a.name),e=s===a.url,f=u[a.url],g=w[a.url],h=y[a.url]||{},i=Object.keys(h),j=Object.values(h).filter(Boolean).length;return(0,d.jsxs)("div",{className:"rounded border border-transparent hover:border-border",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5",children:[a.iconUrl?(0,d.jsx)("img",{src:a.iconUrl,alt:"",className:"size-7 rounded shrink-0 object-contain",onError:a=>{a.target.style.display="none"}}):(0,d.jsx)("div",{className:"size-7 rounded bg-surface shrink-0"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-xs",children:a.title}),a.oauth?(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-amber-500/10 text-amber-600",children:"OAuth"}):(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-green-500/10 text-green-600",children:"Authless"}),a.toolCount>0&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[a.toolCount," tools"]})]}),a.description&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted line-clamp-2 mt-0.5",children:a.description})]}),(0,d.jsx)("button",{onClick:()=>b?null:void(s===a.url?t(null):(t(a.url),C(a))),disabled:b,className:`shrink-0 px-2 py-1 rounded text-[10px] font-medium transition-colors ${b?"bg-green-500/10 text-green-600 cursor-default":e?"bg-surface border border-border text-text-muted hover:bg-black/5":"bg-primary/10 border border-primary/40 text-primary hover:bg-primary/20"}`,children:b?"Added":e?"Cancel":"+ Add"})]}),e&&(0,d.jsxs)("div",{className:"px-3 py-2 bg-surface/40 border-t border-border flex flex-col gap-2",children:[g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-[10px] py-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Probing server for tools..."})]}),!g&&f?.requiresAuth&&(0,d.jsx)("p",{className:"text-[10px] text-amber-600 bg-amber-500/10 px-2 py-1 rounded",children:"\uD83D\uDD10 OAuth required. Add now and authenticate after Apply; tool list will be discovered after first connect."}),!g&&f?.error&&!f?.requiresAuth&&(0,d.jsxs)("p",{className:"text-[10px] text-red-600 bg-red-500/10 px-2 py-1 rounded",children:["Probe failed: ",f.error]}),!g&&0===i.length&&!f?.requiresAuth&&!f?.error&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted",children:"No tools advertised by server."}),!g&&i.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[j,"/",i.length," tools enabled"]}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>D(a.url,!0),className:"text-[10px] text-primary hover:underline",children:"All"}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"\xb7"}),(0,d.jsx)("button",{onClick:()=>D(a.url,!1),className:"text-[10px] text-primary hover:underline",children:"None"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1 max-h-40 overflow-y-auto",children:i.map(b=>(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 px-1 rounded",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!h[b],onChange:()=>{var c;return c=a.url,void z(a=>({...a,[c]:{...a[c],[b]:!a[c]?.[b]}}))},className:"size-3"}),(0,d.jsx)("span",{className:"truncate",children:b})]},b))})]}),(0,d.jsx)("button",{onClick:()=>{let b,d;return d=Object.keys(b=y[a.url]||{}).filter(a=>b[a]),void(c?.({name:a.slug||a.name,title:a.title,description:a.description,url:a.url,transport:a.transport,oauth:a.oauth,toolNames:d}),t(null))},className:"self-end px-2 py-1 rounded text-[10px] font-medium bg-primary text-white hover:bg-primary/90",children:"✓ Confirm Add"})]})]},a.url)})]}),(0,d.jsxs)("div",{className:"text-[10px] text-text-muted text-right",children:[B.length," of ",i.length," servers"]})]})})}},20309:(a,b,c)=>{c.d(b,{default:()=>x});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(95145),i=c(72738),j=c(38930);function k(a,b){return RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(b)}let l={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},m={"claude-opus-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"claude-sonnet-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},...Object.fromEntries(["high","medium","low"].flatMap(a=>[[`claude-opus-5-5-${a}`,{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}],[`claude-sonnet-5-5-${a}`,{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}]])),"gpt-image-1":{imageOutput:!0,tools:!1},"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"glm-4.6v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3,maxOutput:32768},"glm-4.5v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:64e3,maxOutput:16384},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},n=a=>({vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:a,maxOutput:128e3}),o=Object.fromEntries(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna"].flatMap(a=>["","-thinking","-agentic","-thinking-agentic"].map(b=>[`${a}${b}`,n(272e3)]))),p=Object.fromEntries(Object.entries({"gpt-6-astra":272e3,"gpt-6-sol":272e3,"gpt-6-luna":272e3,"gpt-5.6-sol":372e3,"gpt-5.6-terra":272e3,"gpt-5.6-luna":272e3,"gpt-5.5":4e5,"gpt-5.4":4e5}).flatMap(([a,b])=>[[a,n(b)],[`${a}-review`,n(b)]])),q={kiro:o,kr:o,codex:p,cx:p,"codebuddy-cn":{"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.2":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"kimi-k3-1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:1048576},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:3e5,maxOutput:131072},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:524288},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}},qoder:{ultimate:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},auto:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},performance:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},efficient:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},lite:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dmodel:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dfmodel:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},gmodel:{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gfmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},kmodel:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:65536},mmodel:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},qmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536}},ollama:{"deepseek-v4.1-flash:cloud":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},"opencode-go":{"claude-haiku-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},opencode:{"deepseek-v4.1-flash-free":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:33e4,maxOutput:128e3}}},r=[{pattern:"*claude*opus-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-4*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4.*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function s(a,b){if(!b)return{...l};if(a&&q[a]?.[b])return{...l,...q[a][b]};let c=b.includes("/")?b.split("/").pop():b;if(m[c])return{...l,...m[c]};if(m[b])return{...l,...m[b]};for(let{pattern:a,caps:d}of r)if(k(a,c)||k(a,b))return{...l,...d};return{...l}}var t=c(91431),u=c(96919);let v=[...Object.keys(u.zN),...Object.keys(u.IS),...Object.keys(u.nJ),...Object.keys(u.fg)],w=Object.keys(u.IS).filter(a=>u.IS[a].noAuth&&!u.IS[a].hidden);function x({isOpen:a,onClose:b,onSelect:c,onDeselect:f,selectedModel:g,activeProviders:k=[],title:l="Select Model",modelAliases:m={},kindFilter:n=null,capFilter:o=null,addedModelValues:p=[],closeOnSelect:q=!0}){let r=(0,e.useMemo)(()=>n?k.filter(a=>{let b=u.Q2[a.provider];return(b?.serviceKinds||["llm"]).includes(n)}):k,[k,n]),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)([]),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)({}),[I,J]=(0,e.useState)({}),K=async(a,b,{refresh:c=!1}={})=>{J(b=>({...b,[a]:{...b[a]||{},loading:!0,error:null}}));try{let d=new URLSearchParams({provider:a});b&&d.set("connectionId",b),c&&d.set("refresh","1");let e=await fetch(`/api/models/live?${d}`),f=await e.json();J(b=>({...b,[a]:{loading:!1,models:Array.isArray(f.models)?f.models:[],error:f.error||(f.models?.length?null:"No models returned"),source:f.source}}))}catch(b){J(c=>({...c,[a]:{loading:!1,models:[],error:b.message}}))}},L=(0,e.useMemo)(()=>({...u.zN,...u.IS,...u.nJ,...u.fg}),[]),M=(0,e.useMemo)(()=>{let a={},b=new Set(["webSearch","webFetch"]),c=new Set(["image","tts","stt","embedding","imageToText"]),d=new Set(["tts","image","webFetch"]);return[...new Set([...r.map(a=>a.provider),...n?w.filter(a=>(u.Q2[a]?.serviceKinds||["llm"]).includes(n)):w])].sort((a,b)=>{let c=v.indexOf(a),d=v.indexOf(b);return(-1===c?999:c)-(-1===d?999:d)}).forEach(e=>{let f=(0,u.wG)(e),g=L[e]||{name:e,color:"#666"},h=(0,u.mq)(e)||(0,u.gb)(e);if(n&&b.has(n)){a[e]={name:g.name,alias:f,color:g.color,models:[{id:e,name:g.name,value:e}]};return}if(g.passthroughModels){let b=Object.entries(m).filter(([,a])=>a.startsWith(`${f}/`)).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b})),h=I[e],i=new Set(b.map(a=>a.id)),j=[...b,...(h?.models||[]).filter(a=>a?.id&&!i.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isLive:!0}))];n&&c.has(n)&&0===(j=(0,t.KC)(e).filter(a=>a.type===n).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,type:a.type}))).length&&d.has(n)&&(g.serviceKinds||["llm"]).includes(n)&&(j=[{id:e,name:g.name,value:f}]);let k=0===j.length&&(h?.loading||h?.error);if(j.length>0||k){let b=C.find(a=>a.id===e),c=b?.name||g.name;a[e]={name:c,alias:f,color:g.color,models:j,liveStatus:h?{loading:!!h.loading,error:h.error||null,source:h.source,liveCount:(h.models||[]).length}:null}}}else if(h){if(n&&c.has(n))return;let b=k.find(a=>a.provider===e),d=C.find(a=>a.id===e),f=d?.name||b?.name||g.name,h=b?.providerSpecificData?.prefix||d?.prefix||e,i=Object.entries(m).filter(([,a])=>a.startsWith(`${e}/`)).map(([a,b])=>({id:b.replace(`${e}/`,""),name:a,value:`${h}/${b.replace(`${e}/`,"")}`})),j=i.length>0?i:[{id:`__placeholder__${e}`,name:`${h}/model-id`,value:`${h}/model-id`,isPlaceholder:!0}];a[e]={name:f,alias:h,color:g.color,models:j,isCustom:!0,hasModels:i.length>0}}else{var i;let b,h=(0,t.KC)(e),j=new Set(h.map(a=>a.id)),k=h.length>0,l=Object.entries(m).filter(([a,b])=>b.startsWith(`${f}/`)&&(!k||a===b.replace(`${f}/`,""))&&!j.has(b.replace(`${f}/`,""))).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b,isCustom:!0})),p=new Set(l.map(a=>a.id)),q=E.filter(a=>a.providerAlias===f&&!j.has(a.id)&&!p.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isCustom:!0})),r=new Set([...j,...l.map(a=>a.id),...q.map(a=>a.id)]),u=I[e],v=(u?.models||[]).filter(a=>a?.id&&!r.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isLive:!0})),w=[...h.map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,type:a.type})),...l,...q,...v],x=new Set,y=(i=w.filter(a=>!x.has(a.value)&&(x.add(a.value),!0)),b=n?c.has(n)?i.filter(a=>a.isPlaceholder||a.type===n):i:i.filter(a=>a.isPlaceholder||a.isCustom||!a.type||"llm"===a.type),o&&(b=b.filter(a=>{let b=a.value||"",c=b.indexOf("/");return!(c<=0)&&s(b.slice(0,c),b.slice(c+1))?.[o]===!0})),b);0===y.length&&n&&d.has(n)&&(g.serviceKinds||["llm"]).includes(n)&&(y=[{id:e,name:g.name,value:f}]);let z=0===y.length&&(u?.loading||u?.error);(y.length>0||z)&&(a[e]={name:g.name,alias:f,color:g.color,models:y,liveStatus:u?{loading:!!u.loading,error:u.error||null,source:u.source,liveCount:(u.models||[]).length}:null})}}),Object.entries(a).forEach(([b,c])=>{let d=new Set([...G[(0,u.wG)(b)]||[],...G[b]||[]]);0!==d.size&&(c.models=c.models.filter(a=>!d.has(a.id)),0===c.models.length&&delete a[b])}),a},[r,m,L,C,E,G,n,k,I]),N=(0,e.useMemo)(()=>{if(n||o)return[];if(!y.trim())return A;let a=y.toLowerCase();return A.filter(b=>b.name.toLowerCase().includes(a))},[A,y,n,o]),O=(0,e.useMemo)(()=>{let a=y.trim().toLowerCase(),b={};return Object.entries(M).forEach(([c,d])=>{var e;let f=d.models;if(a){let b=d.name.toLowerCase().includes(a);if(0===(f=f.filter(b=>b.name.toLowerCase().includes(a)||b.id.toLowerCase().includes(a))).length&&!b)return}b[c]={...d,models:[...(e=f).filter(a=>p.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),...e.filter(a=>!p.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name))]}}),b},[M,y,p]),P=a=>{let d=a?.value||a?.name||a;p.includes(d)&&f?f(a):c(a),q&&(b(),z(""))};return(0,d.jsxs)(h.default,{isOpen:a,onClose:()=>{b(),z("")},title:l,size:"md",className:"p-4!",footer:null,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary shrink-0",style:{fontSize:"14px"},children:"info"}),(0,d.jsx)("span",{children:"Click to add, click again to remove. Changes are saved automatically."})]}),(0,d.jsx)("div",{className:"mb-3",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,d.jsx)("input",{type:"text",placeholder:"Search...",value:y,onChange:a=>z(a.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]})}),(0,d.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[N.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:"Combos"}),(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",N.length,")"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:N.map(a=>{let b=g===a.name;return(0,d.jsxs)("button",{onClick:()=>P({id:a.name,name:a.name,value:a.name}),className:`
2
2
  px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer flex items-center gap-1
3
3
  ${b?"bg-primary text-white border-primary":p.includes(a.name)?"bg-primary border-primary text-white hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
4
4
  `,children:[p.includes(a.name)&&(0,d.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),a.name]},a.id)})})]}),Object.entries(O).map(([a,b])=>(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,d.jsx)(i.A,{src:`/providers/${a}.png`,alt:b.name,size:14,fallbackText:(b.name||a).slice(0,2).toUpperCase(),fallbackColor:b.color}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:b.name}),(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",b.models.length,")"]}),b.liveStatus&&(0,d.jsxs)("span",{className:"flex items-center gap-1 ml-auto",children:[b.liveStatus.loading&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted flex items-center gap-1",children:[(0,d.jsx)("span",{className:"inline-block w-2 h-2 border border-text-muted border-t-transparent rounded-full animate-spin"}),"loading"]}),!b.liveStatus.loading&&b.liveStatus.error&&(0,d.jsx)("button",{type:"button",onClick:()=>{let b=r.find(b=>b.provider===a);K(a,b?.id,{refresh:!0})},className:"text-[10px] text-amber-500 hover:text-amber-400 cursor-pointer",title:b.liveStatus.error,children:"⚠ retry"}),!b.liveStatus.loading&&!b.liveStatus.error&&b.liveStatus.liveCount>0&&(0,d.jsx)("button",{type:"button",onClick:()=>{let b=r.find(b=>b.provider===a);K(a,b?.id,{refresh:!0})},className:"text-[10px] text-text-muted hover:text-primary cursor-pointer",title:`${b.liveStatus.liveCount} live models • click to refresh`,children:"↻"})]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:b.models.map(b=>{let c=g===b.value,e=b.isPlaceholder,f=e?null:s(a,b.id||b.value),h=f?{vision:f.vision,pdf:f.pdf,reasoning:f.reasoning}:null;return(0,d.jsx)("button",{onClick:()=>P(b),title:e?"Select to pre-fill, then edit model ID in the input":void 0,className:`
@@ -1 +1 @@
1
- "use strict";exports.id=4161,exports.ids=[1998,4161],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>m,error:()=>p,errorLine:()=>j,fmtThink:()=>k,info:()=>n,line:()=>i,maskKey:()=>t,nextTag:()=>g,request:()=>q,response:()=>r,stream:()=>s,tagForSession:()=>h,warn:()=>o});function d(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let e=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],f=0;function g(){let a=e[f%e.length];return f++,a}function h(a){if(!a)return g();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return e[Math.abs(b)%e.length]}function i(a,b,c){console.log(`[${d()}] ${a} ${b} ${c}`)}function j(a,b,c){console.log(`[${d()}] ${a} ${b} ${c}`)}function k(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function l(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function m(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.log(`[${d()}] 🔍 [${a}] ${b}${e}`)}}function n(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.log(`[${d()}] ℹ️ [${a}] ${b}${e}`)}}function o(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.warn(`[${d()}] ⚠️ [${a}] ${b}${e}`)}}function p(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.log(`[${d()}] ❌ [${a}] ${b}${e}`)}}function q(a,b,c){let e=c?` ${l(c)}`:"";console.log(`\x1b[36m[${d()}] 📥 ${a} ${b}${e}\x1b[0m`)}function r(a,b,c){let e=c?` ${l(c)}`:"";console.log(`[${d()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${e}`)}function s(a,b){let c=b?` ${l(b)}`:"";console.log(`[${d()}] 🌊 [STREAM] ${a}${c}`)}function t(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},8864:(a,b,c)=>{c.d(b,{z:()=>e});let d={antigravity:"round-robin"};function e(a,b){return((a?.providerStrategies||{})[b]||{}).fallbackStrategy||d[b]||a?.fallbackStrategy||"fill-first"}},19225:(a,b,c)=>{a.exports=c(44870)},39326:(a,b,c)=>{c.d(b,{B:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}function f(a){let b=e(a?.proxyPoolId);return"__none__"===b?"":b}async function g(a={}){try{let b=f(a),c=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a),g=!1;if(b){let a=await (0,d.hr)(b),c=e(a?.proxyUrl),f=e(a?.noProxy),h=a&&!0===a.isActive&&c;if(g=a?.strictProxy===!0,h){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:b,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:c};return{source:"pool",proxyPoolId:b,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:c,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(c.connectionProxyEnabled&&c.connectionProxyUrl)return{source:"legacy",proxyPoolId:b||null,proxyPool:null,strictProxy:g,...c,connectionNoProxy:g?"":c.connectionNoProxy};return{source:"none",proxyPoolId:b||null,proxyPool:null,strictProxy:g,...c,connectionNoProxy:g?"":c.connectionNoProxy}}catch(c){console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",c);let b=f(a);return{source:"error",proxyPoolId:b||null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!!b}}}},45078:(a,b,c)=>{c.d(b,{IX:()=>j,Mz:()=>l,Ub:()=>n,Un:()=>i,hS:()=>k});var d=c(77598),e=c.n(d),f=c(53258),g=c(69069);function h(a){return a<=0?0:"function"==typeof e().randomInt?e().randomInt(a):Math.floor(Math.random()*a)}function i(a){return null==a||a>=30?1:Math.max(.1,a/30)}function j(a){return!Number.isFinite(a)||a<=0?0:10*Math.max(0,5-a)}function k(a,b){return a?Math.max(0,(0,f.uw)(a.id)??500)*i(b&&a.provider?(0,g.Uj)(a.provider,a.id,b):null)+j(a.priority):0}function l(a,b="fill-first",c={},d=null){if(!Array.isArray(a)||0===a.length)return{account:null,state:c};switch("fill-first"===b?"zenith":b){case"zenith":return{account:function(a,b){if(!Array.isArray(a)||0===a.length)return null;if(1===a.length)return a[0];let c=a[0],d=-1;for(let e of a){let a=k(e,b);a>d&&(d=a,c=e)}return c}(a,d),state:c};case"p2c":return{account:function(a,b){if(!Array.isArray(a)||0===a.length)return null;if(1===a.length)return a[0];let c=h(a.length),d=h(a.length-1);d>=c&&d++;let e=a[c],f=a[d];return k(e,b)>=k(f,b)?e:f}(a,d),state:c};case"random":return{account:a[h(a.length)],state:c};case"round-robin":{let b=((c.lastIndex??-1)+1)%a.length;return{account:a[b],state:{...c,lastIndex:b}}}default:return{account:a[0],state:c}}}let m=new Map;function n(a){return m.get(a)||{}}},49730:(a,b,c)=>{c.d(b,{BC:()=>k,Mk:()=>j,g0:()=>m,jT:()=>l});var d=c(89718),e=c(12557),f=c(7803);let g=new Map,h=0;async function i(){try{let a=await (0,d.getProviderConnections)({isActive:!0}),b=new Map;for(let c of a)b.has(c.provider)||b.set(c.provider,[]),b.get(c.provider).push(c);g=b,h=Date.now()}catch(a){f.error("HEALTH_CACHE",`Failed to sync with DB: ${a.message}`)}}async function j(a,b=new Set,c=null,d=!1){return Date.now()-h>1e4&&await i(),(g.get(a)||[]).filter(a=>(function(a,{excludeConnectionIds:b,model:c=null,bypassModelLock:d=!1}={}){return!(b&&b.has(a.id)||!d&&a.isPermanentlyBanned||!d&&(0,e.Bl)(a,c))})(a,{excludeConnectionIds:b,model:c,bypassModelLock:d}))}function k(a,b,c){if(!g.has(b))return;let e=g.get(b),h=e.findIndex(b=>b.id===a);-1!==h&&(Object.assign(e[h],c),(0,d.updateProviderConnection)(a,c).catch(b=>{f.error("HEALTH_CACHE",`Async DB write failed for ${a}: ${b.message}`)}))}async function l(a,b=null){if(!a)return null;if(Date.now()-h>1e4&&await i(),b)return(g.get(b)||[]).find(b=>b.id===a)||null;for(let b of g.values()){let c=b.find(b=>b.id===a);if(c)return c}return null}function m(a,b,c){if(!g.has(b))return;let d=g.get(b),e=d.findIndex(b=>b.id===a);-1!==e&&Object.assign(d[e],c)}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},53258:(a,b,c)=>{c.d(b,{BC:()=>h,Up:()=>f,uw:()=>g});let d=global.__krouterConnHealth??={scores:new Map};function e(a,b){if(!a)return function(a=Date.now()){return{ewmaLatencyMs:3e3,successCount:5,failureCount:0,lastUpdate:a}}(b);let c=b-a.lastUpdate;if(c<6e4)return a;let d=Math.pow(.5,Math.min(8,c/3e5));return{ewmaLatencyMs:a.ewmaLatencyMs+(3e3-a.ewmaLatencyMs)*(1-d),successCount:Math.max(5,a.successCount*d+5*(1-d)),failureCount:Math.max(0,a.failureCount*d),lastUpdate:a.lastUpdate}}function f(a,b,h,i=null){if(!a||"noauth"===a)return;let j=Date.now(),k=e(d.scores.get(a),j),l=Math.max(0,Math.min(6e4,h||3e3)),m=b?.3*l+.7*k.ewmaLatencyMs:k.ewmaLatencyMs;if(d.scores.set(a,{ewmaLatencyMs:m,successCount:k.successCount+ +!!b,failureCount:k.failureCount+ +!b,lastUpdate:j}),i&&"object"==typeof i)try{c.e(6242).then(c.bind(c,16242)).then(c=>c.logRoutingDecision({connectionId:a,success:b,latencyMs:l,provider:i.provider,model:i.model,score:Math.round(g(a)),strategy:i.strategy||"zenith"})).catch(()=>{})}catch{}}function g(a){if(!a)return 0;let b=Date.now(),c=e(d.scores.get(a),b),f=c.successCount+c.failureCount;return 1e3*(f>0?c.successCount/f:1)-c.ewmaLatencyMs/100}function h(){let a=Date.now(),b={};for(let[c,f]of d.scores.entries()){let d=e(f,a),h=d.successCount+d.failureCount;b[c]={score:Math.round(100*g(c))/100,ewmaLatencyMs:Math.round(d.ewmaLatencyMs),successRate:h>0?Math.round(d.successCount/h*1e3)/10:null,observed:Math.round(10*h)/10,lastUpdate:d.lastUpdate}}return b}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},80238:(a,b,c)=>{c.d(b,{Pt:()=>x,Tr:()=>y,c1:()=>v,kI:()=>z,vk:()=>w});var d=c(89718),e=c(49730),f=c(39326),g=c(12557),h=c(69069),i=c(45078),j=c(8864);c(53258);var k=c(3662),l=c(75681),m=c(7803);let n=Promise.resolve(),o=/enforced_spend_limit_reached|you have reached your api usage limits/i,p=/you have reached your specified (?:workspace )?api usage limits/i,q=/regain access on (\d{4})-(\d{2})-(\d{2})(?:\s+at\s+(\d{2}):(\d{2})\s*UTC)?/i,r=/free-models-per-day|openrouter_free_tier_daily/i,s=/x-ratelimit-reset["']?\s*:\s*["']?(\d{13}|\d{10})(?!\d)/i,t=/free-models-per-day-high-balance/i;async function u(a,b,c,d,f){if(f)return null;let h=await (0,e.Mk)(a,c,null,!0),i=function(a,b,c){if(!Array.isArray(a)||0===a.length)return null;let d=a.filter(a=>(0,g.Bl)(a,c)),e=d.map(a=>(0,g.kJ)(a)).filter(Boolean).sort()[0]||null;if(e){let a=d[0];return{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,g.Qo)(e),lastError:a?.lastError||null,lastErrorCode:a?.errorCode||null}}return a.some(a=>a.isPermanentlyBanned)?{allRateLimited:!0,retryAfter:null,retryAfterHuman:null,lastError:`All ${b} accounts need re-verification — re-auth in the dashboard or add a fresh account.`,lastErrorCode:403}:null}(h,b,d);return i?i.retryAfter?m.warn("AUTH",`${b} | all ${h.length} accounts rate-limited (${i.retryAfterHuman}) | lastError=${(i.lastError||"").slice(0,50)}`):m.warn("AUTH",`${b} | all ${h.length} accounts unavailable (banned — need re-verification)`):m.warn("AUTH",`No credentials for ${b}`),i}async function v(a,b=null,c=null,k={}){let o,p=b instanceof Set?b:b?new Set([b]):new Set,q=k?.preferredConnectionId||null,r=n;n=new Promise(a=>{o=a});try{let b;await r;let n=(0,l.rs)(a);if(l.IS[n]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[n]||{},b=await (0,f.B)({proxyPoolId:a.proxyPoolId||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl,connectionNoProxy:b.connectionNoProxy,connectionProxyPoolId:b.proxyPoolId||null,vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy}}}let o=await (0,e.Mk)(n,p,k.bypassModelLock?null:c,k.bypassModelLock);if(m.debug("AUTH",`${a} | total active: ${o.length}, excludeIds: ${p.size>0?[...p].join(","):"none"}, model: ${c||"any"}`),0===o.length)return await u(n,a,p,c,k.bypassModelLock);(0,h.aT)(o);let s=[],t=k?.requestedModel||c,v=o.filter(a=>{if(p.has(a.id))return!1;let b=a.providerSpecificData?.enabledModels;return(!("codex"===n&&t&&Array.isArray(b))||!(b.length>0)||!!b.includes(t))&&(!!k.bypassModelLock||!c||!!(0,h.Gu)(a.provider,a.id,c)||(s.push(a.id),!1))});if(s.length>0&&m.debug("AUTH",`${a} | quota-preflight skipped ${s.length} (below threshold): ${s.map(a=>a.slice(0,8)).join(",")}`),m.debug("AUTH",`${a} | available: ${v.length}/${o.length}`),o.forEach(a=>{let b=p.has(a.id),d=(0,g.Bl)(a,c);if(b||d){let e=(0,g.kJ)(a),f=!!a.modelLock___all&&new Date(a.modelLock___all).getTime()>Date.now(),h=d?f?`ACCOUNT-LOCKED until ${e}`:`modelLocked(${c}) until ${e}`:"";m.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${h}`)}}),0===v.length)return await u(n,a,p,c,k.bypassModelLock);let w=await (0,d.mt)(),x=(w.providerStrategies||{})[n]||{},y=(0,j.z)(w,n);if(q&&(b=v.find(a=>a.id===q))&&m.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===y){let a=x.stickyRoundRobinLimit||w.stickyRoundRobinLimit||3,c=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else{let{account:a}=(0,i.Mz)(v,y,(0,i.Ub)(n),c);(b=a)&&(0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}).catch(()=>{})}(0,h.Nj)(b.provider,b.id);let z=await (0,f.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:z.connectionProxyEnabled,connectionProxyUrl:z.connectionProxyUrl,connectionNoProxy:z.connectionNoProxy,connectionProxyPoolId:z.proxyPoolId||null,vercelRelayUrl:z.vercelRelayUrl||"",strictProxy:!0===z.strictProxy},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{o&&o()}}async function w(a,b,c,f=null,i=null,j=null){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let n="string"==typeof c?c.slice(0,100):"Provider error",u=function(a){if("string"!=typeof a||!a.includes("accounts.google.com"))return null;let b=a.match(/https:\/\/accounts\.google\.com\/signin\/continue\?[^\s"'\\)]+/);return b?b[0]:null}("string"==typeof c?c:""),v={shouldFallback:!1,cooldownMs:0},x=null,y=a.slice(0,8),z=await (0,d.Q9)(a,d=>{let e,m,w,z,A,B=d?.backoffLevel||0;y=d?.displayName||d?.name||d?.email||y;let C=function(a,b,c){if("github"!==(0,l.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,f),D=C?null:function(a,b,c,d=Date.now()){let e;if(!c||!("anthropic"===(e=String((0,l.rs)(c)||""))||"claude"===e||e.startsWith(l.DI)))return null;let f=String(b||""),g=Number(a),h=429===g&&o.test(f);if(!h&&!(400===g&&p.test(f)))return null;let i=function(a){let b=a.match(q);if(!b)return null;let[c,d,e,f,g]=[b[1],b[2],b[3],b[4]||0,b[5]||0].map(Number);if(f>23||g>59)return null;let h=Date.UTC(c,d-1,e,f,g),i=new Date(h);return i.getUTCFullYear()===c&&i.getUTCMonth()===d-1&&i.getUTCDate()===e?h:null}(f);if(null!==i&&i<=d)return null;if(null===i||i-d>27648e5){let a=new Date(d);i=Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1)}let j=`${new Date(i).toISOString().slice(0,16).replace("T"," ")} UTC`;return{resetAtMs:i,reason:h?`Anthropic monthly spend cap reached — paused until ${j} (raise the cap in Claude Console, then Test connection)`:`Anthropic spend limit you set was reached — paused until ${j} (raise it in Claude Console, then Test connection)`}}(b,c,f),E=C||D?.resetAtMs||null,F=E||!i?null:function(a,b,c,d=Date.now()){if(!c||"openrouter"!==(0,l.rs)(c)||429!==Number(a))return null;let e=String(b||"");if(!r.test(e))return null;let f=e.match(s),g=f?Number(f[1])*(10===f[1].length?1e3:1):null;if(null!==g&&g<=d&&(g=d+6e4),null===g||g-d>9e7){let a=new Date(d);g=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1)}let h=`${new Date(g).toISOString().slice(0,16).replace("T"," ")} UTC`;return{resetAtMs:g,reason:`OpenRouter free-model daily limit reached — this model paused until ${h} (paid models still work; ${t.test(e)?"the 1,000-a-day free limit cannot be raised":"10 credits raise it to 1,000 a day"})`}}(b,c,f);E?(e=!0,m=E-Date.now(),w=0,A=!1):F?(e=!0,m=F.resetAtMs-Date.now(),w=0,A=!1):j&&j>Date.now()?(e=!0,m=Math.min(j-Date.now(),k.Nl),w=0,A=!1):{shouldFallback:e,cooldownMs:m,newBackoffLevel:w,accountLock:z,permanent:A}=(0,g.hk)(b,c,B,f);let G="string"==typeof c?c.toLowerCase():"",H=G.includes("quota reached")||G.includes("rate limit")||G.includes("too many requests"),I=/resets?\s+in\s+\d+h/i.test(c||"")||/resets?\s+in\s+\d+\s*(?:hour|day)/i.test(c||""),J=!!(j&&j>Date.now()),K=!1;if(429===b&&H&&f&&i&&a&&!I&&!J&&!E&&!F&&(0,h.Gu)(f,a,i,10)&&(K=!0,m=9e4,e=!0,z=!1,A=!1,w=0),I&&f&&a)try{(0,h.C$)(f,a)}catch{}var L=K;if(!e&&(!m||m<=0))return v={shouldFallback:!1,cooldownMs:0},null;let M=d?.banCount||0,N=d?.chronicallyBanned||!1;if(z){let a=[1,2,4,7,14];m*=a[Math.min((M+=1)-1,a.length-1)],M>=3&&(N=!0)}let O=z||E?(0,g.S5)(null,m):(0,g.S5)(i,m);x=Object.keys(O)[0],v={shouldFallback:!1!==e,cooldownMs:m,accountLock:z||!1,permanent:A||!1};let P=A?"banned":"unavailable";return{...O,testStatus:P,...z?{banCount:M,chronicallyBanned:N}:{},...A?{isPermanentlyBanned:!0,bannedAt:new Date().toISOString()}:{},lastError:z&&u?`Verify your account: ${u}`:D?.reason||F?.reason||(L?"TPM rate-limited (per-minute window) — daily quota healthy, retries in ~90s":n),errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:w??B}});if(z&&(0,e.BC)(a,f,z),z&&v.shouldFallback){f&&(0,h.C$)(f,a);let c=v.accountLock?"WHOLE ACCOUNT":x;m.warn("AUTH",`${y} locked ${c} for ${Math.round(v.cooldownMs/1e3)}s [${b}]`),v.accountLock&&m.warn("AUTH",`🔒 ACCOUNT ${y} needs verification → ${u||"(URL not parsable from error body)"}`),f&&b&&n&&console.error(`❌ ${f} [${b}]: ${n}`)}return v}async function x(a,b,c=null){if(!a||"noauth"===a)return;let f=b._connection||b,g=Date.now(),h=Object.keys(f).filter(a=>a.startsWith("modelLock_"));if(!f.testStatus&&!f.lastError&&0===h.length)return;let i=h.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=f[a];return b&&new Date(b).getTime()<=g});if(0===i.length&&"unavailable"!==f.testStatus&&!f.lastError)return;let j=h.filter(a=>{if(i.includes(a))return!1;let b=f[a];return b&&new Date(b).getTime()>g}),k=Object.fromEntries(i.map(a=>[a,null]));0===j.length?Object.assign(k,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0,isPermanentlyBanned:!1,bannedAt:null,banCount:0,chronicallyBanned:!1}):c&&Object.assign(k,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0,isPermanentlyBanned:!1,bannedAt:null,banCount:0,chronicallyBanned:!1}),await (0,d.updateProviderConnection)(a,k),(0,e.BC)(a,f.provider,k)}function y(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 z(a){return!!a&&await (0,d.ek)(a)}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
1
+ "use strict";exports.id=4161,exports.ids=[1998,4161],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>m,error:()=>p,errorLine:()=>j,fmtThink:()=>k,info:()=>n,line:()=>i,maskKey:()=>t,nextTag:()=>g,request:()=>q,response:()=>r,stream:()=>s,tagForSession:()=>h,warn:()=>o});function d(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let e=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],f=0;function g(){let a=e[f%e.length];return f++,a}function h(a){if(!a)return g();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return e[Math.abs(b)%e.length]}function i(a,b,c){console.log(`[${d()}] ${a} ${b} ${c}`)}function j(a,b,c){console.log(`[${d()}] ${a} ${b} ${c}`)}function k(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function l(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function m(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.log(`[${d()}] 🔍 [${a}] ${b}${e}`)}}function n(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.log(`[${d()}] ℹ️ [${a}] ${b}${e}`)}}function o(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.warn(`[${d()}] ⚠️ [${a}] ${b}${e}`)}}function p(a,b,c){!0;{let e=c?` ${l(c)}`:"";console.log(`[${d()}] ❌ [${a}] ${b}${e}`)}}function q(a,b,c){let e=c?` ${l(c)}`:"";console.log(`\x1b[36m[${d()}] 📥 ${a} ${b}${e}\x1b[0m`)}function r(a,b,c){let e=c?` ${l(c)}`:"";console.log(`[${d()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${e}`)}function s(a,b){let c=b?` ${l(b)}`:"";console.log(`[${d()}] 🌊 [STREAM] ${a}${c}`)}function t(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},8864:(a,b,c)=>{c.d(b,{z:()=>e});let d={antigravity:"round-robin"};function e(a,b){return((a?.providerStrategies||{})[b]||{}).fallbackStrategy||d[b]||a?.fallbackStrategy||"fill-first"}},19225:(a,b,c)=>{a.exports=c(44870)},39326:(a,b,c)=>{c.d(b,{B:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}function f(a){let b=e(a?.proxyPoolId);return"__none__"===b?"":b}async function g(a={}){try{let b=f(a),c=function(a={}){let b=a?.connectionProxyEnabled===!0;return{connectionProxyEnabled:b,connectionProxyUrl:e(a?.connectionProxyUrl),connectionNoProxy:e(a?.connectionNoProxy)}}(a),g=!1;if(b){let a=await (0,d.hr)(b),c=e(a?.proxyUrl),f=e(a?.noProxy),h=a&&!0===a.isActive&&c;if(g=a?.strictProxy===!0,h){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:b,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:c};return{source:"pool",proxyPoolId:b,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:c,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(c.connectionProxyEnabled&&c.connectionProxyUrl)return{source:"legacy",proxyPoolId:b||null,proxyPool:null,strictProxy:g,...c,connectionNoProxy:g?"":c.connectionNoProxy};return{source:"none",proxyPoolId:b||null,proxyPool:null,strictProxy:g,...c,connectionNoProxy:g?"":c.connectionNoProxy}}catch(c){console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",c);let b=f(a);return{source:"error",proxyPoolId:b||null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!!b}}}},45078:(a,b,c)=>{c.d(b,{IX:()=>j,Mz:()=>l,Ub:()=>n,Un:()=>i,hS:()=>k});var d=c(77598),e=c.n(d),f=c(53258),g=c(69069);function h(a){return a<=0?0:"function"==typeof e().randomInt?e().randomInt(a):Math.floor(Math.random()*a)}function i(a){return null==a||a>=30?1:Math.max(.1,a/30)}function j(a){return!Number.isFinite(a)||a<=0?0:10*Math.max(0,5-a)}function k(a,b){return a?Math.max(0,(0,f.uw)(a.id)??500)*i(b&&a.provider?(0,g.Uj)(a.provider,a.id,b):null)+j(a.priority):0}function l(a,b="fill-first",c={},d=null){if(!Array.isArray(a)||0===a.length)return{account:null,state:c};switch("fill-first"===b?"zenith":b){case"zenith":return{account:function(a,b){if(!Array.isArray(a)||0===a.length)return null;if(1===a.length)return a[0];let c=a[0],d=-1;for(let e of a){let a=k(e,b);a>d&&(d=a,c=e)}return c}(a,d),state:c};case"p2c":return{account:function(a,b){if(!Array.isArray(a)||0===a.length)return null;if(1===a.length)return a[0];let c=h(a.length),d=h(a.length-1);d>=c&&d++;let e=a[c],f=a[d];return k(e,b)>=k(f,b)?e:f}(a,d),state:c};case"random":return{account:a[h(a.length)],state:c};case"round-robin":{let b=((c.lastIndex??-1)+1)%a.length;return{account:a[b],state:{...c,lastIndex:b}}}default:return{account:a[0],state:c}}}let m=new Map;function n(a){return m.get(a)||{}}},49730:(a,b,c)=>{c.d(b,{BC:()=>k,Mk:()=>j,g0:()=>m,jT:()=>l});var d=c(89718),e=c(12557),f=c(7803);let g=new Map,h=0;async function i(){try{let a=await (0,d.getProviderConnections)({isActive:!0}),b=new Map;for(let c of a)b.has(c.provider)||b.set(c.provider,[]),b.get(c.provider).push(c);g=b,h=Date.now()}catch(a){f.error("HEALTH_CACHE",`Failed to sync with DB: ${a.message}`)}}async function j(a,b=new Set,c=null,d=!1){return Date.now()-h>1e4&&await i(),(g.get(a)||[]).filter(a=>(function(a,{excludeConnectionIds:b,model:c=null,bypassModelLock:d=!1}={}){return!(b&&b.has(a.id)||!d&&a.isPermanentlyBanned||!d&&(0,e.Bl)(a,c))})(a,{excludeConnectionIds:b,model:c,bypassModelLock:d}))}function k(a,b,c){if(!g.has(b))return;let e=g.get(b),h=e.findIndex(b=>b.id===a);-1!==h&&(Object.assign(e[h],c),(0,d.updateProviderConnection)(a,c).catch(b=>{f.error("HEALTH_CACHE",`Async DB write failed for ${a}: ${b.message}`)}))}async function l(a,b=null){if(!a)return null;if(Date.now()-h>1e4&&await i(),b)return(g.get(b)||[]).find(b=>b.id===a)||null;for(let b of g.values()){let c=b.find(b=>b.id===a);if(c)return c}return null}function m(a,b,c){if(!g.has(b))return;let d=g.get(b),e=d.findIndex(b=>b.id===a);-1!==e&&Object.assign(d[e],c)}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},53258:(a,b,c)=>{c.d(b,{BC:()=>h,Up:()=>f,uw:()=>g});let d=global.__krouterConnHealth??={scores:new Map};function e(a,b){if(!a)return function(a=Date.now()){return{ewmaLatencyMs:3e3,successCount:5,failureCount:0,lastUpdate:a}}(b);let c=b-a.lastUpdate;if(c<6e4)return a;let d=Math.pow(.5,Math.min(8,c/3e5));return{ewmaLatencyMs:a.ewmaLatencyMs+(3e3-a.ewmaLatencyMs)*(1-d),successCount:Math.max(5,a.successCount*d+5*(1-d)),failureCount:Math.max(0,a.failureCount*d),lastUpdate:a.lastUpdate}}function f(a,b,h,i=null){if(!a||"noauth"===a)return;let j=Date.now(),k=e(d.scores.get(a),j),l=Math.max(0,Math.min(6e4,h||3e3)),m=b?.3*l+.7*k.ewmaLatencyMs:k.ewmaLatencyMs;if(d.scores.set(a,{ewmaLatencyMs:m,successCount:k.successCount+ +!!b,failureCount:k.failureCount+ +!b,lastUpdate:j}),i&&"object"==typeof i)try{c.e(6242).then(c.bind(c,16242)).then(c=>c.logRoutingDecision({connectionId:a,success:b,latencyMs:l,provider:i.provider,model:i.model,score:Math.round(g(a)),strategy:i.strategy||"zenith"})).catch(()=>{})}catch{}}function g(a){if(!a)return 0;let b=Date.now(),c=e(d.scores.get(a),b),f=c.successCount+c.failureCount;return 1e3*(f>0?c.successCount/f:1)-c.ewmaLatencyMs/100}function h(){let a=Date.now(),b={};for(let[c,f]of d.scores.entries()){let d=e(f,a),h=d.successCount+d.failureCount;b[c]={score:Math.round(100*g(c))/100,ewmaLatencyMs:Math.round(d.ewmaLatencyMs),successRate:h>0?Math.round(d.successCount/h*1e3)/10:null,observed:Math.round(10*h)/10,lastUpdate:d.lastUpdate}}return b}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},80238:(a,b,c)=>{c.d(b,{Pt:()=>x,Tr:()=>y,c1:()=>v,kI:()=>z,vk:()=>w});var d=c(89718),e=c(49730),f=c(39326),g=c(12557),h=c(69069),i=c(45078),j=c(8864);c(53258);var k=c(3662),l=c(75681),m=c(7803);let n=Promise.resolve(),o=/enforced_spend_limit_reached|you have reached your api usage limits/i,p=/you have reached your specified (?:workspace )?api usage limits/i,q=/regain access on (\d{4})-(\d{2})-(\d{2})(?:\s+at\s+(\d{2}):(\d{2})\s*UTC)?/i,r=/free-models-per-day|openrouter_free_tier_daily/i,s=/x-ratelimit-reset["']?\s*:\s*["']?(\d{13}|\d{10})(?!\d)/i,t=/free-models-per-day-high-balance/i;async function u(a,b,c,d,f){if(f)return null;let h=await (0,e.Mk)(a,c,null,!0),i=function(a,b,c){if(!Array.isArray(a)||0===a.length)return null;let d=a.filter(a=>(0,g.Bl)(a,c)),e=d.map(a=>(0,g.kJ)(a)).filter(Boolean).sort()[0]||null;if(e){let a=d[0];return{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,g.Qo)(e),lastError:a?.lastError||null,lastErrorCode:a?.errorCode||null}}return a.some(a=>a.isPermanentlyBanned)?{allRateLimited:!0,retryAfter:null,retryAfterHuman:null,lastError:`All ${b} accounts need re-verification — re-auth in the dashboard or add a fresh account.`,lastErrorCode:403}:null}(h,b,d);return i?i.retryAfter?m.warn("AUTH",`${b} | all ${h.length} accounts rate-limited (${i.retryAfterHuman}) | lastError=${(i.lastError||"").slice(0,50)}`):m.warn("AUTH",`${b} | all ${h.length} accounts unavailable (banned — need re-verification)`):m.warn("AUTH",`No credentials for ${b}`),i}async function v(a,b=null,c=null,k={}){let o,p=b instanceof Set?b:b?new Set([b]):new Set,q=k?.preferredConnectionId||null,r=n;n=new Promise(a=>{o=a});try{let b;await r;let n=(0,l.rs)(a);if(l.IS[n]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[n]||{},b=await (0,f.B)({proxyPoolId:a.proxyPoolId||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl,connectionNoProxy:b.connectionNoProxy,connectionProxyPoolId:b.proxyPoolId||null,vercelRelayUrl:b.vercelRelayUrl||"",strictProxy:!0===b.strictProxy}}}let o=await (0,e.Mk)(n,p,k.bypassModelLock?null:c,k.bypassModelLock);if(m.debug("AUTH",`${a} | total active: ${o.length}, excludeIds: ${p.size>0?[...p].join(","):"none"}, model: ${c||"any"}`),0===o.length)return await u(n,a,p,c,k.bypassModelLock);(0,h.aT)(o);let s=[],t=k?.requestedModel||c,v=o.filter(a=>{if(p.has(a.id))return!1;let b=a.providerSpecificData?.enabledModels;return(!("codex"===n&&t&&Array.isArray(b))||!(b.length>0)||!!b.includes(t))&&(!!k.bypassModelLock||!c||!!(0,h.Gu)(a.provider,a.id,c)||(s.push(a.id),!1))});if(s.length>0&&m.debug("AUTH",`${a} | quota-preflight skipped ${s.length} (below threshold): ${s.map(a=>a.slice(0,8)).join(",")}`),m.debug("AUTH",`${a} | available: ${v.length}/${o.length}`),o.forEach(a=>{let b=p.has(a.id),d=(0,g.Bl)(a,c);if(b||d){let e=(0,g.kJ)(a),f=!!a.modelLock___all&&new Date(a.modelLock___all).getTime()>Date.now(),h=d?f?`ACCOUNT-LOCKED until ${e}`:`modelLocked(${c}) until ${e}`:"";m.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${h}`)}}),0===v.length)return await u(n,a,p,c,k.bypassModelLock);let w=await (0,d.mt)(),x=(w.providerStrategies||{})[n]||{},y=(0,j.z)(w,n);if(q&&(b=v.find(a=>a.id===q))&&m.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===y){let a=x.stickyRoundRobinLimit||w.stickyRoundRobinLimit||3,c=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...v].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else{let{account:a}=(0,i.Mz)(v,y,(0,i.Ub)(n),c);(b=a)&&(0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}).catch(()=>{})}(0,h.Nj)(b.provider,b.id);let z=await (0,f.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:z.connectionProxyEnabled,connectionProxyUrl:z.connectionProxyUrl,connectionNoProxy:z.connectionNoProxy,connectionProxyPoolId:z.proxyPoolId||null,vercelRelayUrl:z.vercelRelayUrl||"",strictProxy:!0===z.strictProxy},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{o&&o()}}async function w(a,b,c,f=null,i=null,j=null){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let n="string"==typeof c?c.slice(0,100):"Provider error",u=function(a){if("string"!=typeof a||!a.includes("accounts.google.com"))return null;let b=a.match(/https:\/\/accounts\.google\.com\/signin\/continue\?[^\s"'\\)]+/);return b?b[0]:null}("string"==typeof c?c:""),v={shouldFallback:!1,cooldownMs:0},x=null,y=a.slice(0,8),z=await (0,d.Q9)(a,d=>{let e,m,w,z,A,B=d?.backoffLevel||0;y=d?.displayName||d?.name||d?.email||y;let C=function(a,b,c){if("github"!==(0,l.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,f),D=C?null:function(a,b,c,d=Date.now()){let e;if(!c||!("anthropic"===(e=String((0,l.rs)(c)||""))||"claude"===e||e.startsWith(l.DI)))return null;let f=String(b||""),g=Number(a),h=429===g&&o.test(f);if(!h&&!(400===g&&p.test(f)))return null;let i=function(a){let b=a.match(q);if(!b)return null;let[c,d,e,f,g]=[b[1],b[2],b[3],b[4]||0,b[5]||0].map(Number);if(f>23||g>59)return null;let h=Date.UTC(c,d-1,e,f,g),i=new Date(h);return i.getUTCFullYear()===c&&i.getUTCMonth()===d-1&&i.getUTCDate()===e?h:null}(f);if(null!==i&&i<=d)return null;if(null===i||i-d>27648e5){let a=new Date(d);i=Date.UTC(a.getUTCFullYear(),a.getUTCMonth()+1,1)}let j=`${new Date(i).toISOString().slice(0,16).replace("T"," ")} UTC`;return{resetAtMs:i,reason:h?`Anthropic monthly spend cap reached — paused until ${j} (raise the cap in Claude Console, then Test connection)`:`Anthropic spend limit you set was reached — paused until ${j} (raise it in Claude Console, then Test connection)`}}(b,c,f),E=C||D?.resetAtMs||null,F=E||!i?null:function(a,b,c,d=Date.now()){if(!c||"openrouter"!==(0,l.rs)(c)||429!==Number(a))return null;let e=String(b||"");if(!r.test(e))return null;let f=e.match(s),g=f?Number(f[1])*(10===f[1].length?1e3:1):null;if(null!==g&&g<=d&&(g=d+6e4),null===g||g-d>9e7){let a=new Date(d);g=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1)}let h=`${new Date(g).toISOString().slice(0,16).replace("T"," ")} UTC`;return{resetAtMs:g,reason:`OpenRouter free-model daily limit reached — this model paused until ${h} (paid models still work; ${t.test(e)?"the 1,000-a-day free limit cannot be raised":"10 credits raise it to 1,000 a day"})`}}(b,c,f);E?(e=!0,m=E-Date.now(),w=0,A=!1):F?(e=!0,m=F.resetAtMs-Date.now(),w=0,A=!1):j&&j>Date.now()?(e=!0,m=Math.min(j-Date.now(),k.Nl),w=0,A=!1):{shouldFallback:e,cooldownMs:m,newBackoffLevel:w,accountLock:z,permanent:A}=(0,g.hk)(b,c,B,f);let G="string"==typeof c?c.toLowerCase():"",H=G.includes("quota reached")||G.includes("rate limit")||G.includes("too many requests"),I=/resets?\s+in\s+\d+h/i.test(c||"")||/resets?\s+in\s+\d+\s*(?:hour|day)/i.test(c||""),J=!!(j&&j>Date.now()),K=!1;if(429===b&&H&&f&&i&&a&&!I&&!J&&!E&&!F&&(0,h.Gu)(f,a,i,10)&&(K=!0,m=9e4,e=!0,z=!1,A=!1,w=0),I&&f&&a)try{(0,h.C$)(f,a)}catch{}var L=K;if(!e&&(!m||m<=0))return v={shouldFallback:!1,cooldownMs:0},null;let M=d?.banCount||0,N=d?.chronicallyBanned||!1;if(z){let a=[1,2,4,7,14];m*=a[Math.min((M+=1)-1,a.length-1)],M>=3&&(N=!0)}let O=z||E?(0,g.S5)(null,m):(0,g.S5)(i,m);x=Object.keys(O)[0],v={shouldFallback:!1!==e,cooldownMs:m,accountLock:z||!1,permanent:A||!1};let P=A?"banned":"unavailable";return{...O,testStatus:P,...z?{banCount:M,chronicallyBanned:N}:{},...A?{isPermanentlyBanned:!0,bannedAt:new Date().toISOString()}:{},lastError:z&&u?`Verify your account: ${u}`:D?.reason||F?.reason||(L?"TPM rate-limited (per-minute window) — daily quota healthy, retries in ~90s":n),errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:w??B}});if(z&&(0,e.BC)(a,f,z),z&&v.shouldFallback){f&&(0,h.C$)(f,a);let c=v.accountLock?"WHOLE ACCOUNT":x;m.warn("AUTH",`${y} locked ${c} for ${Math.round(v.cooldownMs/1e3)}s [${b}]`),v.accountLock&&m.warn("AUTH",`🔒 ACCOUNT ${y} needs verification → ${u||"(URL not parsable from error body)"}`),f&&b&&n&&console.error(`❌ ${f} [${b}]: ${n}`)}return v}async function x(a,b,c=null){if(!a||"noauth"===a)return;let f=b._connection||b,g=Date.now(),h=Object.keys(f).filter(a=>a.startsWith("modelLock_"));if(!f.testStatus&&!f.lastError&&0===h.length)return;let i=h.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=f[a];return b&&new Date(b).getTime()<=g});if(0===i.length&&"unavailable"!==f.testStatus&&!f.lastError)return;let j=h.filter(a=>{if(i.includes(a))return!1;let b=f[a];return b&&new Date(b).getTime()>g}),k=Object.fromEntries(i.map(a=>[a,null]));0===j.length?Object.assign(k,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0,isPermanentlyBanned:!1,bannedAt:null,banCount:0,chronicallyBanned:!1}):c&&Object.assign(k,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0,isPermanentlyBanned:!1,bannedAt:null,banCount:0,chronicallyBanned:!1}),await (0,d.updateProviderConnection)(a,k),(0,e.BC)(a,f.provider,k)}function y(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 z(a){return!!a&&await (0,d.ek)(a)}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=4177,exports.ids=[4177],exports.modules={74177:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{PY:()=>A,Re:()=>y,Su:()=>z,exchangeTokens:()=>x,extractCodexAccountInfo:()=>t,fetchKiroProfileArn:()=>s,kP:()=>w,sO:()=>v});var e=c(48895),f=c(55511),g=c.n(f),h=c(13808),i=c(92990),j=c(73159),k=c(90737),l=a([e]);function m(a,b={}){let c={...b.headers||{},"x-request-source":"local"};return fetch(a,{...b,headers:c})}e=(l.then?(await l)():l)[0];let B=null;function n(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}async function o(){if(B)return B;try{let a=await fetch(j.oT.discoveryUrl,{headers:{Accept:"application/json"}});if(a.ok){let b=await a.json();return B={authorizeUrl:n(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:n(b.token_endpoint,"token_endpoint")}}}catch{}return B={authorizeUrl:j.oT.authorizeUrl,tokenUrl:j.oT.tokenUrl}}function p(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=(C-a.length%C)%C,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}}let C=4;function q(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=(C-c.length%C)%C,e=c+"=".repeat(d);return JSON.parse(Buffer.from(e,"base64").toString("utf8"))}catch{return null}}function r(a){let b=q(a);if(b)return b.email||b.preferred_username||b.sub||void 0}async function s(a){if(!a)return null;try{let b=await fetch("https://codewhisperer.us-east-1.amazonaws.com/ListAvailableProfiles",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({maxResults:10})});if(!b.ok)return null;let c=await b.json();return c.profiles?.find(a=>a.arn?.trim())?.arn?.trim()||null}catch{return null}}function t(a){let b=q(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}}function u(a,b){return{config:a,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,c,d)=>{try{let a=c,b=4-a.length%4;4!==b&&(a+="=".repeat(b));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch{let e=await fetch(a.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:c,client_type:"extension",redirect_uri:d})});if(!e.ok){let a=await e.text();throw Error(`${b} token exchange failed: ${a}`)}let f=await e.json();return{access_token:f.data?.accessToken||f.accessToken,refresh_token:f.data?.refreshToken||f.refreshToken,email:f.data?.userInfo?.email||"",expires_at:f.data?.expiresAt||f.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})}}let D={claude:{config:i.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 m(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})},codex:{config:i.DI,flowType:"authorization_code_pkce",fixedPort:1455,callbackPath:"/auth/callback",buildAuthUrl:(a,b,c,d)=>{let e={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},f=Object.entries(e).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${f}`},exchangeToken:async(a,b,c,d)=>{let e=await m(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=t(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||r(a.access_token);return d&&(c.email=d),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}},xai:{config:j.oT,flowType:"authorization_code_pkce",fixedPort:j.oT.loopbackPort,callbackPath:j.oT.callbackPath,pkceVerifierBytes:j.Ue,prepareConfig:async a=>{let b=await o();return{...a,authorizeUrl:b.authorizeUrl,tokenUrl:b.tokenUrl}},buildAuthUrl:(a,b,c,d)=>{let e=g().randomBytes(16).toString("hex"),f={response_type:"code",client_id:a.clientId,redirect_uri:b,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod,state:c,nonce:e,plan:"generic",referrer:"cli-proxy-api"},h=Object.entries(f).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${h}`},exchangeToken:async(a,b,c,d)=>{let e=await m(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=p(a.id_token);return c&&(b.email=c),a.id_token&&(b.providerSpecificData={idToken:a.id_token}),b}},"gemini-cli":{config:i.LT,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 m(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=await fetch(`${i.LT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`}}),c=b.ok?await b.json():{},d="";try{let b=await fetch("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:(0,i.cD)(),mode:1})});if(b.ok){let a=await b.json();d=a.cloudaicompanionProject?.id||a.cloudaicompanionProject||""}}catch(a){console.log("Failed to fetch project ID:",a)}return{userInfo:c,projectId:d}},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})},antigravity:{config:i.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 m(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":i.YT.loadCodeAssistUserAgent,"X-Goog-Api-Client":i.YT.loadCodeAssistApiClient,"Client-Metadata":i.YT.loadCodeAssistClientMetadata,"x-request-source":"local"},c=(0,i.cD)(),d=await fetch(`${i.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`,"x-request-source":"local"}}),e=d.ok?await d.json():{},f="",g="legacy-tier";try{let a=await fetch(i.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c})});if(a.ok){let b=await a.json();if(f=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){g=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return f&&(async()=>{for(let a=0;a<10;a++){try{let a=await fetch(i.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:g,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:e,projectId:f}},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})},iflow:{config:i.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 m(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(`${i.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 d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},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})},qoder:{config:i.hF,flowType:"device_code",requestDeviceCode:async a=>{let{QoderService:b}=await c.e(1531).then(c.bind(c,91531)),d=new b().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(1531).then(c.bind(c,91531)),h=new g,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.floor((f.expireTime-Date.now())/1e3),m=Math.max(86400,l);return{ok:!0,data:{access_token:f.accessToken,refresh_token:f.refreshToken,expires_in:m,_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||""}}}},qwen:{config:i.Hp,flowType:"device_code",requestDeviceCode:async(a,b)=>{let c=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.scope,code_challenge:b,code_challenge_method:a.codeChallengeMethod})});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b,c)=>{let d=await m(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b,code_verifier:c})});return{ok:d.ok,data:await d.json()}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{resourceUrl:a.resource_url}})},github:{config:i.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 m(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(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},postExchange:async a=>{let b=await fetch(i.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":i.Nu.apiVersion,"User-Agent":i.Nu.userAgent}}),c=b.ok?await b.json():{},d=await fetch(i.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":i.Nu.apiVersion,"User-Agent":i.Nu.userAgent}}),e=d.ok?await d.json():{};return{copilotToken:c,userInfo:e}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,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}})},kiro:{config:i.Tx,flowType:"device_code",requestDeviceCode:async(a,b,c={})=>{let d=("string"==typeof c.region?c.region.trim():"")||"us-east-1";(0,i.S6)(d);let e=("string"==typeof c.startUrl?c.startUrl.trim():"")||a.startUrl,f="idc"===c.authMethod?"idc":"builder-id",g=`https://oidc.${d}.amazonaws.com/client/register`,h=`https://oidc.${d}.amazonaws.com/device_authorization`,j=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientName:a.clientName,clientType:a.clientType,scopes:a.scopes,grantTypes:a.grantTypes,issuerUrl:a.issuerUrl})});if(!j.ok){let a=await j.text();throw Error(`Client registration failed: ${a}`)}let k=await j.json(),l=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:k.clientId,clientSecret:k.clientSecret,startUrl:e})});if(!l.ok){let a=await l.text();throw Error(`Device authorization failed: ${a}`)}let m=await l.json();return{device_code:m.deviceCode,user_code:m.userCode,verification_uri:m.verificationUri,verification_uri_complete:m.verificationUriComplete,expires_in:m.expiresIn,interval:m.interval||5,_clientId:k.clientId,_clientSecret:k.clientSecret,_region:d,_authMethod:f,_startUrl:e}},pollToken:async(a,b,c,d)=>{let e,f=d?._region||"us-east-1";(0,i.S6)(f);let g=`https://oidc.${f}.amazonaws.com/token`,h=await m(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:d?._clientId,clientSecret:d?._clientSecret,deviceCode:b,grantType:"urn:ietf:params:oauth:grant-type:device_code"})});try{e=await h.json()}catch(b){let a=await h.text();e={error:"invalid_response",error_description:a}}return e.accessToken?{ok:!0,data:{access_token:e.accessToken,refresh_token:e.refreshToken,expires_in:e.expiresIn,profile_arn:e?.profileArn||null,_clientId:d?._clientId,_clientSecret:d?._clientSecret,_region:d?._region,_authMethod:d?._authMethod,_startUrl:d?._startUrl}}:{ok:!1,data:{error:e.error||"authorization_pending",error_description:e.error_description||e.message}}},mapTokens:a=>{let b=r(a.access_token);return{accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,email:b,providerSpecificData:{profileArn:a?.profile_arn||null,clientId:a._clientId,clientSecret:a._clientSecret,region:a._region||"us-east-1",authMethod:a._authMethod||"builder-id",startUrl:a._startUrl||i.Tx.startUrl}}}},cursor:{config:i.WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})},"kimi-coding":{config:i.t,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})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}let c=await b.json();return{device_code:c.device_code,user_code:c.user_code,verification_uri:c.verification_uri||"https://www.kimi.com/code/authorize_device",verification_uri_complete:c.verification_uri_complete||`https://www.kimi.com/code/authorize_device?user_code=${c.user_code}`,expires_in:c.expires_in,interval:c.interval||5}},pollToken:async(a,b)=>{let c,d=await m(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b})});try{c=await d.json()}catch(b){let a=await d.text();c={error:"invalid_response",error_description:a}}return{ok:d.ok,data:c}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in})},kilocode:{config:i.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}}:{}})},cline:u(i.lB,"Cline"),clinepass:u(i.w1,"ClinePass"),"grok-cli":{config:i.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 m(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":k.fZ},body:b});if(!c.ok)throw Error(`Grok CLI device code request failed: ${await c.text()}`);return await c.json()},pollToken:async(a,b)=>{let c=await m(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":k.fZ},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:b,client_id:a.clientId})}),d=await c.json().catch(()=>({}));if(!c.ok){let a=d?.error||"poll_failed",b=Error(d?.error_description||a);throw b.code=a,b}return d},mapTokens:a=>{let b={accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope},c=p(a.id_token);return c&&(b.email=c),b.providerSpecificData={authMethod:"device_code",...a.id_token?{idToken:a.id_token}:{},...c?{email:c}:{}},b}},kimchi:{config:i.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=await fetch(a.validationUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});if(!d.ok)throw Error(`Kimchi token validation failed: ${d.status}`);let e={};if(a.userInfoUrl)try{let b=await fetch(a.userInfoUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});b.ok&&(e=await b.json())}catch{e={}}return{access_token:c,token_type:"Bearer",_kimchiUser:e}},mapTokens:a=>{let b=a._kimchiUser||{},c=b.id?String(b.id):"",d=b.username||"";return{accessToken:a.access_token,refreshToken:null,email:b.email||(c?`kimchi-user-${c}`:null),displayName:b.name||d||null,providerSpecificData:{authMethod:"browser_token",userId:c,username:d}}}},gitlab:{config:i.f7,flowType:"authorization_code_pkce",buildAuthUrl:(a,b,c,d,e={})=>{let f=e.baseUrl||a.defaultBaseUrl,g=e.clientId||"",h=new URLSearchParams({client_id:g,redirect_uri:b,response_type:"code",state:c,scope:a.scope,code_challenge:d,code_challenge_method:a.codeChallengeMethod});return`${f}${a.authorizeUrlPath}?${h.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"}})},"codebuddy-cn":{config:i.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 m(a.tokenUrl,{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:JSON.stringify({state:b})});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"}}: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:86400,providerSpecificData:{}})}};function v(a){let b=D[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}async function w(a,b,c){let d=v(a),e=d.prepareConfig?await d.prepareConfig(d.config,c||{}):d.config,{codeVerifier:f,codeChallenge:g,state:i}=(0,h.lz)(d.pkceVerifierBytes);return{authUrl:"device_code"===d.flowType?null:"authorization_code_pkce"===d.flowType?d.buildAuthUrl(e,b,i,g,c||{}):d.buildAuthUrl(e,b,i,void 0,c||{}),state:i,codeVerifier:f,codeChallenge:g,redirectUri:b,flowType:d.flowType,fixedPort:d.fixedPort,callbackPath:d.callbackPath||"/callback"}}async function x(a,b,c,d,e,f){let g=v(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 y(a,b,c){let d=v(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 z(a,b,c,d){let e=v(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 b=null;e.postExchange&&(b=await e.postExchange(f.data));let c=e.mapTokens(f.data,b);if("kiro"===a&&!c.providerSpecificData?.profileArn){let a=await s(c.accessToken);a&&(c.providerSpecificData.profileArn=a)}return{success:!0,tokens:c}}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 E=!1;async function A(){if(!E){E=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,89718));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=t(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){E=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})}};
1
+ "use strict";exports.id=4177,exports.ids=[4177],exports.modules={74177:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{PY:()=>A,Re:()=>y,Su:()=>z,exchangeTokens:()=>x,extractCodexAccountInfo:()=>t,fetchKiroProfileArn:()=>s,kP:()=>w,sO:()=>v});var e=c(48895),f=c(55511),g=c.n(f),h=c(13808),i=c(92990),j=c(73159),k=c(90737),l=a([e]);function m(a,b={}){let c={...b.headers||{},"x-request-source":"local"};return fetch(a,{...b,headers:c})}e=(l.then?(await l)():l)[0];let B=null;function n(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}async function o(){if(B)return B;try{let a=await fetch(j.oT.discoveryUrl,{headers:{Accept:"application/json"}});if(a.ok){let b=await a.json();return B={authorizeUrl:n(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:n(b.token_endpoint,"token_endpoint")}}}catch{}return B={authorizeUrl:j.oT.authorizeUrl,tokenUrl:j.oT.tokenUrl}}function p(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=(C-a.length%C)%C,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}}let C=4;function q(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=(C-c.length%C)%C,e=c+"=".repeat(d);return JSON.parse(Buffer.from(e,"base64").toString("utf8"))}catch{return null}}function r(a){let b=q(a);if(b)return b.email||b.preferred_username||b.sub||void 0}async function s(a){if(!a)return null;try{let b=await fetch("https://codewhisperer.us-east-1.amazonaws.com/ListAvailableProfiles",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({maxResults:10})});if(!b.ok)return null;let c=await b.json();return c.profiles?.find(a=>a.arn?.trim())?.arn?.trim()||null}catch{return null}}function t(a){let b=q(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}}function u(a,b){return{config:a,flowType:"authorization_code",buildAuthUrl:(a,b)=>{let c=new URLSearchParams({client_type:"extension",callback_url:b,redirect_uri:b});return`${a.authorizeUrl}?${c.toString()}`},exchangeToken:async(a,c,d)=>{try{let a=c,b=4-a.length%4;4!==b&&(a+="=".repeat(b));let d=Buffer.from(a,"base64").toString("utf-8"),e=d.lastIndexOf("}");if(-1===e)throw Error("No JSON found in decoded code");let f=JSON.parse(d.substring(0,e+1));return{access_token:f.accessToken,refresh_token:f.refreshToken,email:f.email,firstName:f.firstName,lastName:f.lastName,expires_at:f.expiresAt}}catch{let e=await fetch(a.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",code:c,client_type:"extension",redirect_uri:d})});if(!e.ok){let a=await e.text();throw Error(`${b} token exchange failed: ${a}`)}let f=await e.json();return{access_token:f.data?.accessToken||f.accessToken,refresh_token:f.data?.refreshToken||f.refreshToken,email:f.data?.userInfo?.email||"",expires_at:f.data?.expiresAt||f.expiresAt}}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_at?Math.floor((new Date(a.expires_at).getTime()-Date.now())/1e3):3600,email:a.email,providerSpecificData:{firstName:a.firstName,lastName:a.lastName}})}}let D={claude:{config:i.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 m(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})},codex:{config:i.DI,flowType:"authorization_code_pkce",fixedPort:1455,callbackPath:"/auth/callback",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 m(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=t(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||r(a.access_token);return d&&(c.email=d),(b.chatgptAccountId||b.chatgptPlanType)&&(c.providerSpecificData={chatgptAccountId:b.chatgptAccountId,chatgptPlanType:b.chatgptPlanType}),c}},xai:{config:j.oT,flowType:"authorization_code_pkce",fixedPort:j.oT.loopbackPort,callbackPath:j.oT.callbackPath,pkceVerifierBytes:j.Ue,prepareConfig:async a=>{let b=await o();return{...a,authorizeUrl:b.authorizeUrl,tokenUrl:b.tokenUrl}},buildAuthUrl:(a,b,c,d)=>{let e=g().randomBytes(16).toString("hex"),f=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:e,plan:"generic",referrer:"cli-proxy-api"}).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${a.authorizeUrl}?${f}`},exchangeToken:async(a,b,c,d)=>{let e=await m(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=p(a.id_token);return c&&(b.email=c),a.id_token&&(b.providerSpecificData={idToken:a.id_token}),b}},"gemini-cli":{config:i.LT,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 m(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=await fetch(`${i.LT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`}}),c=b.ok?await b.json():{},d="";try{let b=await fetch("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:(0,i.cD)(),mode:1})});if(b.ok){let a=await b.json();d=a.cloudaicompanionProject?.id||a.cloudaicompanionProject||""}}catch(a){console.log("Failed to fetch project ID:",a)}return{userInfo:c,projectId:d}},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})},antigravity:{config:i.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 m(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":i.YT.loadCodeAssistUserAgent,"X-Goog-Api-Client":i.YT.loadCodeAssistApiClient,"Client-Metadata":i.YT.loadCodeAssistClientMetadata,"x-request-source":"local"},c=(0,i.cD)(),d=await fetch(`${i.YT.userInfoUrl}?alt=json`,{headers:{Authorization:`Bearer ${a.access_token}`,"x-request-source":"local"}}),e=d.ok?await d.json():{},f="",g="legacy-tier";try{let a=await fetch(i.YT.loadCodeAssistEndpoint,{method:"POST",headers:b,body:JSON.stringify({metadata:c})});if(a.ok){let b=await a.json();if(f=b.cloudaicompanionProject?.id||b.cloudaicompanionProject||"",Array.isArray(b.allowedTiers)){for(let a of b.allowedTiers)if(a.isDefault&&a.id){g=a.id.trim();break}}}}catch(a){console.log("Failed to load code assist:",a)}return f&&(async()=>{for(let a=0;a<10;a++){try{let a=await fetch(i.YT.onboardUserEndpoint,{method:"POST",headers:b,body:JSON.stringify({tierId:g,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:e,projectId:f}},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})},iflow:{config:i.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 m(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(`${i.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 d=c.data||{};if(!d.apiKey||""===d.apiKey.trim())throw Error("Empty API key returned from iFlow");if(!(d.email?.trim()||d.phone?.trim()))throw Error("Missing account email/phone in user info");return{userInfo:d}},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})},qoder:{config:i.hF,flowType:"device_code",requestDeviceCode:async a=>{let{QoderService:b}=await c.e(1531).then(c.bind(c,91531)),d=new b().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(1531).then(c.bind(c,91531)),h=new g,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||""}}}},qwen:{config:i.Hp,flowType:"device_code",requestDeviceCode:async(a,b)=>{let c=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.scope,code_challenge:b,code_challenge_method:a.codeChallengeMethod})});if(!c.ok){let a=await c.text();throw Error(`Device code request failed: ${a}`)}return await c.json()},pollToken:async(a,b,c)=>{let d=await m(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b,code_verifier:c})});return{ok:d.ok,data:await d.json()}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,providerSpecificData:{resourceUrl:a.resource_url}})},github:{config:i.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 m(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(i.Nu.copilotTokenUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":i.Nu.apiVersion,"User-Agent":i.Nu.userAgent}}),c=b.ok?await b.json():{},d=await fetch(i.Nu.userInfoUrl,{headers:{Authorization:`Bearer ${a.access_token}`,Accept:"application/json","X-GitHub-Api-Version":i.Nu.apiVersion,"User-Agent":i.Nu.userAgent}});return{copilotToken:c,userInfo:d.ok?await d.json():{}}},mapTokens:(a,b)=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,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}})},kiro:{config:i.Tx,flowType:"device_code",requestDeviceCode:async(a,b,c={})=>{let d=("string"==typeof c.region?c.region.trim():"")||"us-east-1";(0,i.S6)(d);let e=("string"==typeof c.startUrl?c.startUrl.trim():"")||a.startUrl,f="idc"===c.authMethod?"idc":"builder-id",g=`https://oidc.${d}.amazonaws.com/client/register`,h=`https://oidc.${d}.amazonaws.com/device_authorization`,j=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientName:a.clientName,clientType:a.clientType,scopes:a.scopes,grantTypes:a.grantTypes,issuerUrl:a.issuerUrl})});if(!j.ok){let a=await j.text();throw Error(`Client registration failed: ${a}`)}let k=await j.json(),l=await fetch(h,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:k.clientId,clientSecret:k.clientSecret,startUrl:e})});if(!l.ok){let a=await l.text();throw Error(`Device authorization failed: ${a}`)}let m=await l.json();return{device_code:m.deviceCode,user_code:m.userCode,verification_uri:m.verificationUri,verification_uri_complete:m.verificationUriComplete,expires_in:m.expiresIn,interval:m.interval||5,_clientId:k.clientId,_clientSecret:k.clientSecret,_region:d,_authMethod:f,_startUrl:e}},pollToken:async(a,b,c,d)=>{let e,f=d?._region||"us-east-1";(0,i.S6)(f);let g=`https://oidc.${f}.amazonaws.com/token`,h=await m(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:d?._clientId,clientSecret:d?._clientSecret,deviceCode:b,grantType:"urn:ietf:params:oauth:grant-type:device_code"})});try{e=await h.json()}catch(a){e={error:"invalid_response",error_description:await h.text()}}return e.accessToken?{ok:!0,data:{access_token:e.accessToken,refresh_token:e.refreshToken,expires_in:e.expiresIn,profile_arn:e?.profileArn||null,_clientId:d?._clientId,_clientSecret:d?._clientSecret,_region:d?._region,_authMethod:d?._authMethod,_startUrl:d?._startUrl}}:{ok:!1,data:{error:e.error||"authorization_pending",error_description:e.error_description||e.message}}},mapTokens:a=>{let b=r(a.access_token);return{accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,email:b,providerSpecificData:{profileArn:a?.profile_arn||null,clientId:a._clientId,clientSecret:a._clientSecret,region:a._region||"us-east-1",authMethod:a._authMethod||"builder-id",startUrl:a._startUrl||i.Tx.startUrl}}}},cursor:{config:i.WN,flowType:"import_token",mapTokens:a=>({accessToken:a.accessToken,refreshToken:null,expiresIn:a.expiresIn||86400,providerSpecificData:{machineId:a.machineId,authMethod:"imported"}})},"kimi-coding":{config:i.t,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})});if(!b.ok){let a=await b.text();throw Error(`Device code request failed: ${a}`)}let c=await b.json();return{device_code:c.device_code,user_code:c.user_code,verification_uri:c.verification_uri||"https://www.kimi.com/code/authorize_device",verification_uri_complete:c.verification_uri_complete||`https://www.kimi.com/code/authorize_device?user_code=${c.user_code}`,expires_in:c.expires_in,interval:c.interval||5}},pollToken:async(a,b)=>{let c,d=await m(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",client_id:a.clientId,device_code:b})});try{c=await d.json()}catch(a){c={error:"invalid_response",error_description:await d.text()}}return{ok:d.ok,data:c}},mapTokens:a=>({accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in})},kilocode:{config:i.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}}:{}})},cline:u(i.lB,"Cline"),clinepass:u(i.w1,"ClinePass"),"grok-cli":{config:i.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 m(a.deviceCodeUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":k.fZ},body:b});if(!c.ok)throw Error(`Grok CLI device code request failed: ${await c.text()}`);return await c.json()},pollToken:async(a,b)=>{let c=await m(a.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":k.fZ},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:b,client_id:a.clientId})}),d=await c.json().catch(()=>({}));if(!c.ok){let a=d?.error||"poll_failed",b=Error(d?.error_description||a);throw b.code=a,b}return d},mapTokens:a=>{let b={accessToken:a.access_token,refreshToken:a.refresh_token,expiresIn:a.expires_in,scope:a.scope},c=p(a.id_token);return c&&(b.email=c),b.providerSpecificData={authMethod:"device_code",...a.id_token?{idToken:a.id_token}:{},...c?{email:c}:{}},b}},kimchi:{config:i.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=await fetch(a.validationUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});if(!d.ok)throw Error(`Kimchi token validation failed: ${d.status}`);let e={};if(a.userInfoUrl)try{let b=await fetch(a.userInfoUrl,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${c}`}});b.ok&&(e=await b.json())}catch{e={}}return{access_token:c,token_type:"Bearer",_kimchiUser:e}},mapTokens:a=>{let b=a._kimchiUser||{},c=b.id?String(b.id):"",d=b.username||"";return{accessToken:a.access_token,refreshToken:null,email:b.email||(c?`kimchi-user-${c}`:null),displayName:b.name||d||null,providerSpecificData:{authMethod:"browser_token",userId:c,username:d}}}},gitlab:{config:i.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"}})},"codebuddy-cn":{config:i.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 m(a.tokenUrl,{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:JSON.stringify({state:b})});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"}}: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:86400,providerSpecificData:{}})}};function v(a){let b=D[a];if(!b)throw Error(`Unknown provider: ${a}`);return b}async function w(a,b,c){let d=v(a),e=d.prepareConfig?await d.prepareConfig(d.config,c||{}):d.config,{codeVerifier:f,codeChallenge:g,state:i}=(0,h.lz)(d.pkceVerifierBytes);return{authUrl:"device_code"===d.flowType?null:"authorization_code_pkce"===d.flowType?d.buildAuthUrl(e,b,i,g,c||{}):d.buildAuthUrl(e,b,i,void 0,c||{}),state:i,codeVerifier:f,codeChallenge:g,redirectUri:b,flowType:d.flowType,fixedPort:d.fixedPort,callbackPath:d.callbackPath||"/callback"}}async function x(a,b,c,d,e,f){let g=v(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 y(a,b,c){let d=v(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 z(a,b,c,d){let e=v(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 b=null;e.postExchange&&(b=await e.postExchange(f.data));let c=e.mapTokens(f.data,b);if("kiro"===a&&!c.providerSpecificData?.profileArn){let a=await s(c.accessToken);a&&(c.providerSpecificData.profileArn=a)}return{success:!0,tokens:c}}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 E=!1;async function A(){if(!E){E=!0;try{let{getProviderConnections:a,updateProviderConnection:b}=await Promise.resolve().then(c.bind(c,89718));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=t(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){E=!1,console.log("backfillCodexEmails failed:",a?.message||a)}}}d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=4306,exports.ids=[4306],exports.modules={37221:(a,b,c)=>{let d;c.d(b,{RD:()=>p});var e=c(99129),f=c(89419),g=c(19035);function h(a){return(0,g.Gv)(a)}class i{#a;#b=new WeakMap;constructor(a){if(!function(a){return a&&"object"==typeof a&&Array.isArray(a.keys)&&a.keys.every(h)}(a))throw new e.Dm("JSON Web Key Set malformed");this.#a=structuredClone(a)}jwks(){return this.#a}async getKey(a,b){let{alg:c,kid:d}={...a,...b?.header},f=function(a){switch("string"==typeof a&&a.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";case"ML":return"AKP";default:throw new e.T0('Unsupported "alg" value for a JSON Web Key Set')}}(c),g=this.#a.keys.filter(a=>{let b=f===a.kty;if(b&&"string"==typeof d&&(b=d===a.kid),b&&("string"==typeof a.alg||"AKP"===f)&&(b=c===a.alg),b&&"string"==typeof a.use&&(b="sig"===a.use),b&&Array.isArray(a.key_ops)&&(b=a.key_ops.includes("verify")),b)switch(c){case"ES256":b="P-256"===a.crv;break;case"ES384":b="P-384"===a.crv;break;case"ES512":b="P-521"===a.crv;break;case"Ed25519":case"EdDSA":b="Ed25519"===a.crv}return b}),{0:h,length:i}=g;if(0===i)throw new e.BT;if(1!==i){let a=new e.$4,b=this.#b;throw a[Symbol.asyncIterator]=async function*(){for(let a of g)try{yield await j(b,a,c)}catch{}},a}return j(this.#b,h,c)}}async function j(a,b,c){let d=a.get(b)||a.set(b,{}).get(b);if(void 0===d[c]){let a=await (0,f.Og)({...b,ext:!0},c);if(a instanceof Uint8Array||"public"!==a.type)throw new e.Dm("JSON Web Key Set members must be public keys");d[c]=a}return d[c]}function k(a){let b=new i(a),c=async(a,c)=>b.getKey(a,c);return Object.defineProperties(c,{jwks:{value:()=>structuredClone(b.jwks()),enumerable:!1,configurable:!1,writable:!1}}),c}("u"<typeof navigator||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.3");let l=Symbol();async function m(a,b,c,d=fetch){let f=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{if("TimeoutError"===a.name)throw new e.xb;throw a});if(200!==f.status)throw new e.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await f.json()}catch{throw new e.i4("Failed to parse the JSON Web Key Set HTTP response as JSON")}}let n=Symbol();class o{#c;#d;#e;#f;#g;#h;#i;#j;#k;#l;constructor(a,b){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");this.#c=new URL(a.href),this.#d="number"==typeof b?.timeoutDuration?b?.timeoutDuration:5e3,this.#e="number"==typeof b?.cooldownDuration?b?.cooldownDuration:3e4,this.#f="number"==typeof b?.cacheMaxAge?b?.cacheMaxAge:6e5,this.#i=new Headers(b?.headers),d&&!this.#i.has("User-Agent")&&this.#i.set("User-Agent",d),this.#i.has("accept")||(this.#i.set("accept","application/json"),this.#i.append("accept","application/jwk-set+json")),this.#j=b?.[l],b?.[n]!==void 0&&(this.#l=b?.[n],function(a,b){return!("object"!=typeof a||null===a||!("uat"in a)||"number"!=typeof a.uat||Date.now()-a.uat>=b)&&"jwks"in a&&!!(0,g.Gv)(a.jwks)&&!!Array.isArray(a.jwks.keys)&&!!Array.prototype.every.call(a.jwks.keys,g.Gv)}(b?.[n],this.#f)&&(this.#g=this.#l.uat,this.#k=k(this.#l.jwks)))}pendingFetch(){return!!this.#h}coolingDown(){return"number"==typeof this.#g&&Date.now()<this.#g+this.#e}fresh(){return"number"==typeof this.#g&&Date.now()<this.#g+this.#f}jwks(){return this.#k?.jwks()}async getKey(a,b){this.#k&&this.fresh()||await this.reload();try{return await this.#k(a,b)}catch(c){if(c instanceof e.BT&&!1===this.coolingDown())return await this.reload(),this.#k(a,b);throw c}}async reload(){this.#h&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(this.#h=void 0),this.#h||=m(this.#c.href,this.#i,AbortSignal.timeout(this.#d),this.#j).then(a=>{this.#k=k(a),this.#l&&(this.#l.uat=Date.now(),this.#l.jwks=a),this.#g=Date.now(),this.#h=void 0}).catch(a=>{throw this.#h=void 0,a}),await this.#h}}function p(a,b){let c=new o(a,b),d=async(a,b)=>c.getKey(a,b);return Object.defineProperties(d,{coolingDown:{get:()=>c.coolingDown(),enumerable:!0,configurable:!1},fresh:{get:()=>c.fresh(),enumerable:!0,configurable:!1},reload:{value:()=>c.reload(),enumerable:!0,configurable:!1,writable:!1},reloading:{get:()=>c.pendingFetch(),enumerable:!0,configurable:!1},jwks:{value:()=>c.jwks(),enumerable:!0,configurable:!1,writable:!1}}),d}},69614:(a,b,c)=>{c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(11980);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},89419:(a,b,c)=>{c.d(b,{Og:()=>o,Lf:()=>n});var d=c(88888),e=c(88360),f=c(99129);let g=(a,b)=>{if(a.byteLength!==b.length)return!1;for(let c=0;c<a.byteLength;c++)if(a[c]!==b[c])return!1;return!0},h=a=>{let b=a.data[a.pos++];if(128&b){let c=127&b,d=0;for(let b=0;b<c;b++)d=d<<8|a.data[a.pos++];return d}return b},i=(a,b,c)=>{if(a.data[a.pos++]!==b)throw Error(c)},j=(a,b)=>{let c=a.data.subarray(a.pos,a.pos+b);return a.pos+=b,c},k=async(a,b,c,d)=>{let e,g,h="spki"===a,i=()=>h?["verify"]:["sign"];switch(c){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${c.slice(-3)}`},g=i();break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${c.slice(-3)}`},g=i();break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(c.slice(-3),10)||1}`},g=h?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":case"ES384":case"ES512":e={name:"ECDSA",namedCurve:({ES256:"P-256",ES384:"P-384",ES512:"P-521"})[c]},g=i();break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":try{let a=d.getNamedCurve(b);e="X25519"===a?{name:"X25519"}:{name:"ECDH",namedCurve:a}}catch(a){throw new f.T0("Invalid or unsupported key format")}g=h?[]:["deriveBits"];break;case"Ed25519":case"EdDSA":e={name:"Ed25519"},g=i();break;case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":e={name:c},g=i();break;default:throw new f.T0('Invalid or unsupported "alg" (Algorithm) value')}return crypto.subtle.importKey(a,b,e,d?.extractable??!!h,g)};var l=c(88783),m=c(19035);async function n(a,b,c){let d,f,l;if("string"!=typeof a||0!==a.indexOf("-----BEGIN PRIVATE KEY-----"))throw TypeError('"pkcs8" must be PKCS#8 formatted string');return d=/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,f=(0,e.y)(a.replace(d,"")),l=c,b?.startsWith?.("ECDH-ES")&&((l||={}).getNamedCurve=a=>{let b,c={data:a,pos:0};return i(c,48,"Invalid PKCS#8 structure"),h(c),i(c,2,"Expected version field"),b=h(c),c.pos+=b,i(c,48,"Expected algorithm identifier"),h(c),c.pos,(a=>{let b,c=(i(a,6,"Expected algorithm OID"),b=h(a),j(a,b));if(g(c,[43,101,110]))return"X25519";if(!g(c,[42,134,72,206,61,2,1]))throw Error("Unsupported key algorithm");i(a,6,"Expected curve OID");let d=h(a),e=j(a,d);for(let{name:a,oid:b}of[{name:"P-256",oid:[42,134,72,206,61,3,1,7]},{name:"P-384",oid:[43,129,4,0,34]},{name:"P-521",oid:[43,129,4,0,35]}])if(g(e,b))return a;throw Error("Unsupported named curve")})(c)}),k("pkcs8",f,b,l)}async function o(a,b,c){let e;if(!(0,m.Gv)(a))throw TypeError("JWK must be an object");switch(b??=a.alg,e??=c?.extractable??a.ext,a.kty){case"oct":if("string"!=typeof a.k||!a.k)throw TypeError('missing "k" (Key Value) Parameter value');return(0,d.D)(a.k);case"RSA":if("oth"in a&&void 0!==a.oth)throw new f.T0('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');return(0,l.x)({...a,alg:b,ext:e});case"AKP":if("string"!=typeof a.alg||!a.alg)throw TypeError('missing "alg" (Algorithm) Parameter value');if(void 0!==b&&b!==a.alg)throw TypeError("JWK alg and alg option value mismatch");return(0,l.x)({...a,ext:e});case"EC":case"OKP":return(0,l.x)({...a,alg:b,ext:e});default:throw new f.T0('Unsupported "kty" (Key Type) Parameter value')}}}};
1
+ "use strict";exports.id=4306,exports.ids=[4306],exports.modules={37221:(a,b,c)=>{let d;c.d(b,{RD:()=>p});var e=c(99129),f=c(89419),g=c(19035);function h(a){return(0,g.Gv)(a)}class i{#a;#b=new WeakMap;constructor(a){if(!(a&&"object"==typeof a&&Array.isArray(a.keys)&&a.keys.every(h)))throw new e.Dm("JSON Web Key Set malformed");this.#a=structuredClone(a)}jwks(){return this.#a}async getKey(a,b){let{alg:c,kid:d}={...a,...b?.header},f=function(a){switch("string"==typeof a&&a.slice(0,2)){case"RS":case"PS":return"RSA";case"ES":return"EC";case"Ed":return"OKP";case"ML":return"AKP";default:throw new e.T0('Unsupported "alg" value for a JSON Web Key Set')}}(c),g=this.#a.keys.filter(a=>{let b=f===a.kty;if(b&&"string"==typeof d&&(b=d===a.kid),b&&("string"==typeof a.alg||"AKP"===f)&&(b=c===a.alg),b&&"string"==typeof a.use&&(b="sig"===a.use),b&&Array.isArray(a.key_ops)&&(b=a.key_ops.includes("verify")),b)switch(c){case"ES256":b="P-256"===a.crv;break;case"ES384":b="P-384"===a.crv;break;case"ES512":b="P-521"===a.crv;break;case"Ed25519":case"EdDSA":b="Ed25519"===a.crv}return b}),{0:h,length:i}=g;if(0===i)throw new e.BT;if(1!==i){let a=new e.$4,b=this.#b;throw a[Symbol.asyncIterator]=async function*(){for(let a of g)try{yield await j(b,a,c)}catch{}},a}return j(this.#b,h,c)}}async function j(a,b,c){let d=a.get(b)||a.set(b,{}).get(b);if(void 0===d[c]){let a=await (0,f.Og)({...b,ext:!0},c);if(a instanceof Uint8Array||"public"!==a.type)throw new e.Dm("JSON Web Key Set members must be public keys");d[c]=a}return d[c]}function k(a){let b=new i(a),c=async(a,c)=>b.getKey(a,c);return Object.defineProperties(c,{jwks:{value:()=>structuredClone(b.jwks()),enumerable:!1,configurable:!1,writable:!1}}),c}("u"<typeof navigator||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.3");let l=Symbol();async function m(a,b,c,d=fetch){let f=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{if("TimeoutError"===a.name)throw new e.xb;throw a});if(200!==f.status)throw new e.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await f.json()}catch{throw new e.i4("Failed to parse the JSON Web Key Set HTTP response as JSON")}}let n=Symbol();class o{#c;#d;#e;#f;#g;#h;#i;#j;#k;#l;constructor(a,b){if(!(a instanceof URL))throw TypeError("url must be an instance of URL");if(this.#c=new URL(a.href),this.#d="number"==typeof b?.timeoutDuration?b?.timeoutDuration:5e3,this.#e="number"==typeof b?.cooldownDuration?b?.cooldownDuration:3e4,this.#f="number"==typeof b?.cacheMaxAge?b?.cacheMaxAge:6e5,this.#i=new Headers(b?.headers),d&&!this.#i.has("User-Agent")&&this.#i.set("User-Agent",d),this.#i.has("accept")||(this.#i.set("accept","application/json"),this.#i.append("accept","application/jwk-set+json")),this.#j=b?.[l],b?.[n]!==void 0){var c,e;this.#l=b?.[n],c=b?.[n],e=this.#f,!("object"!=typeof c||null===c||!("uat"in c)||"number"!=typeof c.uat||Date.now()-c.uat>=e)&&"jwks"in c&&(0,g.Gv)(c.jwks)&&Array.isArray(c.jwks.keys)&&Array.prototype.every.call(c.jwks.keys,g.Gv)&&1&&(this.#g=this.#l.uat,this.#k=k(this.#l.jwks))}}pendingFetch(){return!!this.#h}coolingDown(){return"number"==typeof this.#g&&Date.now()<this.#g+this.#e}fresh(){return"number"==typeof this.#g&&Date.now()<this.#g+this.#f}jwks(){return this.#k?.jwks()}async getKey(a,b){this.#k&&this.fresh()||await this.reload();try{return await this.#k(a,b)}catch(c){if(c instanceof e.BT&&!1===this.coolingDown())return await this.reload(),this.#k(a,b);throw c}}async reload(){this.#h&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(this.#h=void 0),this.#h||=m(this.#c.href,this.#i,AbortSignal.timeout(this.#d),this.#j).then(a=>{this.#k=k(a),this.#l&&(this.#l.uat=Date.now(),this.#l.jwks=a),this.#g=Date.now(),this.#h=void 0}).catch(a=>{throw this.#h=void 0,a}),await this.#h}}function p(a,b){let c=new o(a,b),d=async(a,b)=>c.getKey(a,b);return Object.defineProperties(d,{coolingDown:{get:()=>c.coolingDown(),enumerable:!0,configurable:!1},fresh:{get:()=>c.fresh(),enumerable:!0,configurable:!1},reload:{value:()=>c.reload(),enumerable:!0,configurable:!1,writable:!1},reloading:{get:()=>c.pendingFetch(),enumerable:!0,configurable:!1},jwks:{value:()=>c.jwks(),enumerable:!0,configurable:!1,writable:!1}}),d}},69614:(a,b,c)=>{c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(11980);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},89419:(a,b,c)=>{c.d(b,{Og:()=>o,Lf:()=>n});var d=c(88888),e=c(88360),f=c(99129);let g=(a,b)=>{if(a.byteLength!==b.length)return!1;for(let c=0;c<a.byteLength;c++)if(a[c]!==b[c])return!1;return!0},h=a=>{let b=a.data[a.pos++];if(128&b){let c=127&b,d=0;for(let b=0;b<c;b++)d=d<<8|a.data[a.pos++];return d}return b},i=(a,b,c)=>{if(a.data[a.pos++]!==b)throw Error(c)},j=(a,b)=>{let c=a.data.subarray(a.pos,a.pos+b);return a.pos+=b,c},k=async(a,b,c,d)=>{let e,g,h="spki"===a,i=()=>h?["verify"]:["sign"];switch(c){case"PS256":case"PS384":case"PS512":e={name:"RSA-PSS",hash:`SHA-${c.slice(-3)}`},g=i();break;case"RS256":case"RS384":case"RS512":e={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${c.slice(-3)}`},g=i();break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":e={name:"RSA-OAEP",hash:`SHA-${parseInt(c.slice(-3),10)||1}`},g=h?["encrypt","wrapKey"]:["decrypt","unwrapKey"];break;case"ES256":case"ES384":case"ES512":e={name:"ECDSA",namedCurve:({ES256:"P-256",ES384:"P-384",ES512:"P-521"})[c]},g=i();break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":try{let a=d.getNamedCurve(b);e="X25519"===a?{name:"X25519"}:{name:"ECDH",namedCurve:a}}catch(a){throw new f.T0("Invalid or unsupported key format")}g=h?[]:["deriveBits"];break;case"Ed25519":case"EdDSA":e={name:"Ed25519"},g=i();break;case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":e={name:c},g=i();break;default:throw new f.T0('Invalid or unsupported "alg" (Algorithm) value')}return crypto.subtle.importKey(a,b,e,d?.extractable??!!h,g)};var l=c(88783),m=c(19035);async function n(a,b,c){let d,f,l;if("string"!=typeof a||0!==a.indexOf("-----BEGIN PRIVATE KEY-----"))throw TypeError('"pkcs8" must be PKCS#8 formatted string');return d=/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g,f=(0,e.y)(a.replace(d,"")),l=c,b?.startsWith?.("ECDH-ES")&&((l||={}).getNamedCurve=a=>{let b,c={data:a,pos:0};return i(c,48,"Invalid PKCS#8 structure"),h(c),i(c,2,"Expected version field"),b=h(c),c.pos+=b,i(c,48,"Expected algorithm identifier"),h(c),c.pos,(a=>{let b,c=(i(a,6,"Expected algorithm OID"),b=h(a),j(a,b));if(g(c,[43,101,110]))return"X25519";if(!g(c,[42,134,72,206,61,2,1]))throw Error("Unsupported key algorithm");i(a,6,"Expected curve OID");let d=h(a),e=j(a,d);for(let{name:a,oid:b}of[{name:"P-256",oid:[42,134,72,206,61,3,1,7]},{name:"P-384",oid:[43,129,4,0,34]},{name:"P-521",oid:[43,129,4,0,35]}])if(g(e,b))return a;throw Error("Unsupported named curve")})(c)}),k("pkcs8",f,b,l)}async function o(a,b,c){let e;if(!(0,m.Gv)(a))throw TypeError("JWK must be an object");switch(b??=a.alg,e??=c?.extractable??a.ext,a.kty){case"oct":if("string"!=typeof a.k||!a.k)throw TypeError('missing "k" (Key Value) Parameter value');return(0,d.D)(a.k);case"RSA":if("oth"in a&&void 0!==a.oth)throw new f.T0('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');return(0,l.x)({...a,alg:b,ext:e});case"AKP":if("string"!=typeof a.alg||!a.alg)throw TypeError('missing "alg" (Algorithm) Parameter value');if(void 0!==b&&b!==a.alg)throw TypeError("JWK alg and alg option value mismatch");return(0,l.x)({...a,ext:e});case"EC":case"OKP":return(0,l.x)({...a,alg:b,ext:e});default:throw new f.T0('Unsupported "kty" (Key Type) Parameter value')}}}};