9router-proxy 0.5.86 → 0.5.88

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 (428) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +11 -11
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  55. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  62. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  63. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  64. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  65. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  66. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  78. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +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/claude-settings/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  89. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  91. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  93. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  97. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  99. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  103. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  105. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  107. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  111. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  113. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  216. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  272. package/app/.next-cli-build/server/app/callback.html +1 -1
  273. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  274. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  275. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  276. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  277. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  279. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +6 -6
  280. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  281. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  282. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  284. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
  285. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  286. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  287. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  288. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  289. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +6 -6
  290. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  291. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  293. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  294. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +6 -6
  295. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  296. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  299. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +6 -6
  300. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  301. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  304. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -6
  305. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  306. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  309. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +6 -6
  310. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  311. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  314. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +6 -6
  315. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  316. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  319. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +6 -6
  320. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  321. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  324. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +6 -6
  325. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  326. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  329. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +6 -6
  330. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  331. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  333. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  334. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +7 -7
  335. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  336. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  341. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  342. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  344. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  346. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +6 -6
  347. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  348. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  350. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  351. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  352. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  353. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  356. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +6 -6
  357. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  358. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  359. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  361. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +6 -6
  362. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  363. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  364. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  365. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  366. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +6 -6
  367. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  368. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  369. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/index.html +1 -1
  371. package/app/.next-cli-build/server/app/index.rsc +4 -4
  372. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  373. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  374. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  375. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  377. package/app/.next-cli-build/server/app/landing.html +1 -1
  378. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  379. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  380. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  382. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  384. package/app/.next-cli-build/server/app/login.html +1 -1
  385. package/app/.next-cli-build/server/app/login.rsc +5 -5
  386. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  387. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  389. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  392. package/app/.next-cli-build/server/app-paths-manifest.json +11 -11
  393. package/app/.next-cli-build/server/chunks/1478.js +1 -1
  394. package/app/.next-cli-build/server/chunks/2353.js +1 -1
  395. package/app/.next-cli-build/server/chunks/24.js +1 -1
  396. package/app/.next-cli-build/server/chunks/2751.js +1 -1
  397. package/app/.next-cli-build/server/chunks/318.js +1 -1
  398. package/app/.next-cli-build/server/chunks/3210.js +1 -1
  399. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  400. package/app/.next-cli-build/server/chunks/4037.js +1 -1
  401. package/app/.next-cli-build/server/chunks/412.js +1 -1
  402. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  403. package/app/.next-cli-build/server/chunks/4572.js +1 -1
  404. package/app/.next-cli-build/server/chunks/4884.js +1 -1
  405. package/app/.next-cli-build/server/chunks/5615.js +2 -2
  406. package/app/.next-cli-build/server/chunks/614.js +8 -0
  407. package/app/.next-cli-build/server/chunks/7843.js +51 -0
  408. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  409. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  410. package/app/.next-cli-build/server/chunks/8499.js +3 -53
  411. package/app/.next-cli-build/server/chunks/869.js +1 -1
  412. package/app/.next-cli-build/server/chunks/8843.js +1 -1
  413. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  415. package/app/.next-cli-build/server/middleware.js +1 -1
  416. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/pages/404.html +1 -1
  418. package/app/.next-cli-build/server/pages/500.html +1 -1
  419. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  420. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  421. package/app/.next-cli-build/static/chunks/1321-e3987434d1752811.js +1 -0
  422. package/app/.next-cli-build/static/chunks/{5497-d5a78622357300a4.js → 5497-dd0fda40a00dcd38.js} +1 -1
  423. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-a1a8249b040b3fc5.js → page-8835852736fc1ecb.js} +1 -1
  424. package/app/package.json +1 -1
  425. package/package.json +1 -1
  426. package/app/.next-cli-build/static/chunks/1321-ead6aef6af002b41.js +0 -1
  427. /package/app/.next-cli-build/static/{a1APIqjk3OYhFAGdrYfsz → ZCgpgOFXKA-K3ygNsk2Xk}/_buildManifest.js +0 -0
  428. /package/app/.next-cli-build/static/{a1APIqjk3OYhFAGdrYfsz → ZCgpgOFXKA-K3ygNsk2Xk}/_ssgManifest.js +0 -0
@@ -4,4 +4,4 @@
4
4
  data: ${d}
5
5
 
6
6
  `)}catch{}}}),f.stderr.on("data",b=>console.log(`[mcp:${a}]`,b.toString().trim())),f.on("exit",c=>{console.log(`[mcp:${a}] exited`,c),b.delete(a)}),c}a.exports={getOrSpawn:j,registerSession:function(a,b){let c=j(a),d=e.randomUUID();return c.sessions.set(d,b),d},unregisterSession:function(a,b){let c=h().get(a);if(c&&(c.sessions.delete(b),0===c.sessions.size)){try{c.proc.kill()}catch{}h().delete(a)}},sendToChild:function(a,b){let c=h().get(a);if(!c?.proc?.stdin?.writable)throw Error(`Bridge not running: ${a}`);c.proc.stdin.write(`${JSON.stringify(b)}
7
- `)},isRunning:function(a){let b=h().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:i,killAllBridges:function(){let a=h();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>l,v:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.n,"mitm","aliases.json");function j(a){let b=g().dirname(i);e().mkdirSync(b,{recursive:!0});let c=`${i}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,i)}async function k(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();j(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function l(a,b){try{let c={};if(e().existsSync(i))try{c=JSON.parse(e().readFileSync(i,"utf8"))}catch{}c[a]=b||{},j(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>v,Zh:()=>u});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(89718),j=c(66457),k=c(96182),l=c(76476),m=c(17113);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///home/runner/work/9router/9router/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,k.initDbHooks)(i.mt,i.Xx)}catch{}process.setMaxListeners(20);let n=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function o(){var a;await (0,i.bI)();let b=await (0,i.mt)();b.tunnelEnabled&&!n.tunnelAutoResumed&&(n.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),r("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!n.tailscaleAutoResumed&&(n.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),s("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,j.Al)().catch(()=>{}),b.mitmEnabled&&((0,l.v)().catch(()=>{}),p(b)),u(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(8843),c.e(6070),c.e(869),c.e(8920),c.e(436),c.e(3943),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8416),c.e(8895),c.e(7211),c.e(8363)]).then(c.bind(c,1133)).then(({startQuotaAutoPing:a})=>a()).catch(a=>console.log("[AutoPing] scheduler start failed:",a.message)),Promise.all([c.e(8843),c.e(6070),c.e(436),c.e(3943),c.e(4037)]).then(c.bind(c,3256)).then(({startBackgroundTokenRefresh:a})=>a()).catch(a=>console.log("[BackgroundTokenRefresh] scheduler start failed:",a.message))}async function p(a){if(!n.mitmStartInProgress){n.mitmStartInProgress=!0;try{if(!a.mitmEnabled||(await (0,k.getMitmStatus)()).running)return;let b=await (0,k.loadEncryptedPassword)();if(!b&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let c=(await (0,i.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,k.startMitm)(c?.key||"sk_9router",b),console.log("[InitApp] MITM auto-started");try{await (0,k.restoreToolDNS)(b),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{n.mitmStartInProgress=!1}}}let q=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function r(a){let b=(0,j.Qn)();if(!(await (0,i.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=q.test(a);if(!(0,j.nN)()){if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,j.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function s(a){let b=(0,j.oN)();if(!(await (0,i.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,j.hp)():(0,j.Kp)()))return;if((0,j.si)()&&b.activeLocalPort){try{await (0,j.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=q.test(a);if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,j.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function t(){let a=e().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!j.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}function u(a){if(a?.tunnelEnabled||a?.tailscaleEnabled){!n.watchdogInterval&&(n.watchdogInterval=setInterval(()=>{r("watchdog").catch(()=>{}),s("watchdog").catch(()=>{})},j.DA),n.watchdogInterval.unref&&n.watchdogInterval.unref()),!n.networkMonitorInterval&&(n.lastNetworkFingerprint=t(),n.lastWatchdogTick=Date.now(),n.lastOnline=null,n.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-n.lastWatchdogTick;n.lastWatchdogTick=a;let c=t(),d=c!==n.lastNetworkFingerprint,e=b>6*j.rI;d&&(n.lastNetworkFingerprint=c);let f=await (0,j.u7)(),g=!1===n.lastOnline;if(n.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,j.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";r(h).catch(()=>{}),s(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},j.rI),n.networkMonitorInterval.unref&&n.networkMonitorInterval.unref());return}n.watchdogInterval&&(clearInterval(n.watchdogInterval),n.watchdogInterval=null),n.networkMonitorInterval&&(clearInterval(n.networkMonitorInterval),n.networkMonitorInterval=null,n.lastNetworkFingerprint=null,n.lastOnline=null)}let v=async function a(){try{if(!n.signalHandlersRegistered){let a=()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}try{(0,m.killAllBridges)()}catch{}(0,j.ss)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}}),n.signalHandlersRegistered=!0}(0,j.X$)(()=>{r("unexpected-exit").catch(()=>{})}),setTimeout(()=>{o().catch(a=>console.error("[InitApp] deferred startup failed:",a.message))},3e3)}catch(a){console.error("[InitApp] Error:",a)}}}};
7
+ `)},isRunning:function(a){let b=h().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:i,killAllBridges:function(){let a=h();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>l,v:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.n,"mitm","aliases.json");function j(a){let b=g().dirname(i);e().mkdirSync(b,{recursive:!0});let c=`${i}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,i)}async function k(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();j(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function l(a,b){try{let c={};if(e().existsSync(i))try{c=JSON.parse(e().readFileSync(i,"utf8"))}catch{}c[a]=b||{},j(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>v,Zh:()=>u});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(89718),j=c(66457),k=c(96182),l=c(76476),m=c(17113);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///home/runner/work/9router/9router/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,k.initDbHooks)(i.mt,i.Xx)}catch{}process.setMaxListeners(20);let n=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function o(){var a;await (0,i.bI)();let b=await (0,i.mt)();b.tunnelEnabled&&!n.tunnelAutoResumed&&(n.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),r("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!n.tailscaleAutoResumed&&(n.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),s("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,j.Al)().catch(()=>{}),b.mitmEnabled&&((0,l.v)().catch(()=>{}),p(b)),u(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(8843),c.e(6070),c.e(869),c.e(8920),c.e(24),c.e(436),c.e(3943),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8416),c.e(8895),c.e(7211),c.e(8363)]).then(c.bind(c,1133)).then(({startQuotaAutoPing:a})=>a()).catch(a=>console.log("[AutoPing] scheduler start failed:",a.message)),Promise.all([c.e(8843),c.e(6070),c.e(436),c.e(3943),c.e(4037)]).then(c.bind(c,3256)).then(({startBackgroundTokenRefresh:a})=>a()).catch(a=>console.log("[BackgroundTokenRefresh] scheduler start failed:",a.message))}async function p(a){if(!n.mitmStartInProgress){n.mitmStartInProgress=!0;try{if(!a.mitmEnabled||(await (0,k.getMitmStatus)()).running)return;let b=await (0,k.loadEncryptedPassword)();if(!b&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let c=(await (0,i.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,k.startMitm)(c?.key||"sk_9router",b),console.log("[InitApp] MITM auto-started");try{await (0,k.restoreToolDNS)(b),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{n.mitmStartInProgress=!1}}}let q=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function r(a){let b=(0,j.Qn)();if(!(await (0,i.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=q.test(a);if(!(0,j.nN)()){if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,j.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function s(a){let b=(0,j.oN)();if(!(await (0,i.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,j.hp)():(0,j.Kp)()))return;if((0,j.si)()&&b.activeLocalPort){try{await (0,j.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=q.test(a);if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,j.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function t(){let a=e().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!j.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}function u(a){if(a?.tunnelEnabled||a?.tailscaleEnabled){!n.watchdogInterval&&(n.watchdogInterval=setInterval(()=>{r("watchdog").catch(()=>{}),s("watchdog").catch(()=>{})},j.DA),n.watchdogInterval.unref&&n.watchdogInterval.unref()),!n.networkMonitorInterval&&(n.lastNetworkFingerprint=t(),n.lastWatchdogTick=Date.now(),n.lastOnline=null,n.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-n.lastWatchdogTick;n.lastWatchdogTick=a;let c=t(),d=c!==n.lastNetworkFingerprint,e=b>6*j.rI;d&&(n.lastNetworkFingerprint=c);let f=await (0,j.u7)(),g=!1===n.lastOnline;if(n.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,j.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";r(h).catch(()=>{}),s(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},j.rI),n.networkMonitorInterval.unref&&n.networkMonitorInterval.unref());return}n.watchdogInterval&&(clearInterval(n.watchdogInterval),n.watchdogInterval=null),n.networkMonitorInterval&&(clearInterval(n.networkMonitorInterval),n.networkMonitorInterval=null,n.lastNetworkFingerprint=null,n.lastOnline=null)}let v=async function a(){try{if(!n.signalHandlersRegistered){let a=()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}try{(0,m.killAllBridges)()}catch{}(0,j.ss)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}}),n.signalHandlersRegistered=!0}(0,j.X$)(()=>{r("unexpected-exit").catch(()=>{})}),setTimeout(()=>{o().catch(a=>console.error("[InitApp] deferred startup failed:",a.message))},3e3)}catch(a){console.error("[InitApp] Error:",a)}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=4572,exports.ids=[615,3662,4572],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(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 n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},12557:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(3662);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return a>=400&&a<500&&401!==a&&402!==a&&403!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function l(a,b){return{[i(a)]:new Date(Date.now()+b).toISOString()}}},35024:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},39006:a=>{a.exports={rE:"0.5.86"}},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(8843);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.default.filter(a=>a.features?.usage).map(a=>a.id),y=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},43659:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,xJ:()=>e,yj:()=>f,zL:()=>g});var d=c(3662);function e(a,b){let c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}}}function f(a,b){return new Response(JSON.stringify(e(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function g(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let f=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},45974:(a,b,c)=>{c.d(b,{XJ:()=>p,d0:()=>m,vO:()=>l});var d=c(39326),e=c(91211),f=c(7803);let g=new Map,h=new Map,i=new Map,j=new Map,k=new Map;function l(a,b){let c=`${a}|${b}`;j.delete(c);let d=k.get(c);if(void 0===d)return;k.delete(c);let e=g.get(a);e?.[b]?.resetAt===new Date(d).toISOString()&&(delete e[b],g.set(a,e))}function m(){return g}async function n(a,b,c){let d=Date.now(),e=i.get(a);if(e)return e;let j=h.get(a)||0;if(d-j<3e4)return f.debug("AG_QUOTA",`${a.slice(0,8)} | skip refresh (${Math.round((d-j)/1e3)}s ago)`),g.get(a)||null;h.set(a,d);let k=o(a,b,c,d);i.set(a,k);try{return await k}finally{i.delete(a)}}async function o(a,b,c,h){try{let f=await (0,d.B)(c||{}),h={connectionProxyEnabled:!0===f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl||"",connectionNoProxy:f.connectionNoProxy||"",vercelRelayUrl:f.vercelRelayUrl||"",strictProxy:!0===f.strictProxy},i=await (0,e.c)(b,c,h);if(!i?.quotas||i.message)return null;return g.set(a,function(a,b){let c=Date.now();for(let[d,e]of k)if(d.startsWith(`${a}|`)){if(e<=c){k.delete(d);continue}b[d.slice(a.length+1)]={remainingPercentage:0,resetAt:new Date(e).toISOString()}}return b}(a,i.quotas)),i.quotas}catch(b){return f.warn("AG_QUOTA",`${a.slice(0,8)} | refresh failed: ${b.message}`),null}}async function p(a,b,c,d,e){f.info("AG_QUOTA",`${a.slice(0,8)} | ${b} on ${c} — refreshing quota`);let h=(await n(a,d,e))?.[c];if(!h||h.remainingPercentage>0){let d=`${a}|${c}`,e=Date.now(),i=j.get(d),l=i&&e-i.windowStart<=6e4?i.windowStart:e,m=i&&l===i.windowStart?i.count+1:1;if(j.set(d,{count:m,windowStart:l}),m>=3){j.delete(d);let i=e+9e5,l=h?`${Math.round(h.remainingPercentage)}%`:"unknown";f.warn("AG_QUOTA",`${a.slice(0,8)} | STRIKE_${b} ${c} — ${m}x 429 (quota ${l}); CACHE_BLOCK 15m`);let n=g.get(a)||{};return n[c]={remainingPercentage:0,resetAt:new Date(i).toISOString()},g.set(a,n),k.set(d,i),i}return null}if(j.delete(`${a}|${c}`),!h.resetAt)return null;let i=new Date(h.resetAt).getTime();return i<=Date.now()?null:(f.warn("AG_QUOTA",`${a.slice(0,8)} | UPSTREAM_${b} ${c} — quota exhausted; CACHE_BLOCK until ${h.resetAt}`),i)}},80238:(a,b,c)=>{c.d(b,{Pt:()=>n,Tr:()=>o,c1:()=>l,kI:()=>p,vk:()=>m});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(40615),i=c(45974),j=c(7803);let k=Promise.resolve();async function l(a,b=null,c=null,g={}){let m,n=b instanceof Set?b:b?new Set([b]):new Set,o=g?.preferredConnectionId||null,p=k;k=new Promise(a=>{m=a});try{let b;await p;let g=(0,h.rs)(a);if(h.IS[g]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[g]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,g)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||""}}}let k=await (0,d.getProviderConnections)({provider:g,isActive:!0});if(j.debug("AUTH",`${a} | total connections: ${k.length}, excludeIds: ${n.size>0?[...n].join(","):"none"}, model: ${c||"any"}`),0===k.length)return j.warn("AUTH",`No credentials for ${a}`),null;let l="antigravity"===g,m=l&&c?(0,i.d0)():null,q=k.filter(a=>{if(n.has(a.id)||(0,f.Bl)(a,c))return!1;if(l&&c&&m){let b=m.get(a.id)?.[c];if(b&&b.remainingPercentage<=0&&b.resetAt&&new Date(b.resetAt).getTime()>Date.now()){let d=a.id?.slice(0,8)||"unknown";return j.info("AG_QUOTA",`${d} | CACHE_BLOCK ${c} — skip upstream until ${b.resetAt}`),!1}}return!0});if(j.debug("AUTH",`${a} | available: ${q.length}/${k.length}`),k.forEach(a=>{let b=n.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);j.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===q.length){let b=k.filter(a=>(0,f.Bl)(a,c)),d=b.map(a=>(0,f.kJ)(a)).filter(Boolean);l&&c&&m&&k.forEach(a=>{let b=m.get(a.id)?.[c]?.resetAt;b&&new Date(b).getTime()>Date.now()&&d.push(b)});let e=d.sort()[0]||null;if(e){let d=b[0];return j.warn("AUTH",`${a} | all ${k.length} accounts locked for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return j.warn("AUTH",`${a} | all ${k.length} accounts unavailable`),null}let r=await (0,d.mt)(),s=(r.providerStrategies||{})[g]||{},t=s.fallbackStrategy||r.fallbackStrategy||"fill-first";if(o&&(b=q.find(a=>a.id===o))&&j.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===t){let a=s.stickyRoundRobinLimit||r.stickyRoundRobinLimit||3,c=[...q].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=[...q].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 b=q[0];let u=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:u.connectionProxyEnabled,connectionProxyUrl:u.connectionProxyUrl,connectionNoProxy:u.connectionNoProxy,connectionProxyPoolId:u.proxyPoolId||null,vercelRelayUrl:u.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{m&&m()}}async function m(a,b,c,e=null,i=null,k=null){let l,n,o;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let p=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),q=p?.backoffLevel||0,r=function(a,b,c){if("github"!==(0,h.rs)(c)||402!==Number(a)||!String(b||"").toLowerCase().includes("you've reached your additional usage limit for your plan"))return null;let d=new Date;return Date.UTC(d.getUTCFullYear(),d.getUTCMonth()+1,1)}(b,c,e);if(r?(l=!0,n=r-Date.now(),o=0):k&&k>Date.now()?(l=!0,n="antigravity"===(0,h.rs)(e)?k-Date.now():Math.min(k-Date.now(),g.fh),o=0):{shouldFallback:l,cooldownMs:n,newBackoffLevel:o}=(0,f.hk)(b,c,q),!l)return{shouldFallback:!1,cooldownMs:0};let s="string"==typeof c?c.slice(0,200):"Provider error",t=(0,f.S5)(r?null:i,n);await (0,d.updateProviderConnection)(a,{...t,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:o??q});let u=Object.keys(t)[0],v=p?.displayName||p?.name||p?.email||a.slice(0,8);return j.warn("AUTH",`${v} locked ${u} for ${Math.round(n/1e3)}s [${b}]`),e&&b&&s&&console.error(`❌ ${e} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:n}}async function n(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,errorCode:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function o(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 p(a){return!!a&&await (0,d.ek)(a)}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(9248)}};
1
+ "use strict";exports.id=4572,exports.ids=[615,3662,4572],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(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 n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},12557:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(3662);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return a>=400&&a<500&&401!==a&&402!==a&&403!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function l(a,b){return{[i(a)]:new Date(Date.now()+b).toISOString()}}},35024:(a,b,c)=>{c.d(b,{Ak:()=>e,Yg:()=>h,sr:()=>d.sr,xq:()=>d.xq});var d=c(26070);function e(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let f=d.xq["xiaomi-tokenplan"]?.regions||{},g=d.xq["xiaomi-tokenplan"]?.defaultRegion;function h(a){return f[a?.providerSpecificData?.region]||f[g]}},39006:a=>{a.exports={rE:"0.5.88"}},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>y,wb:()=>x,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,rs:()=>u});var d=c(8843);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=d.default.filter(a=>a.features?.usage).map(a=>a.id),y=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},43659:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,xJ:()=>e,yj:()=>f,zL:()=>g});var d=c(3662);function e(a,b){let c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}}}function f(a,b){return new Response(JSON.stringify(e(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function g(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let f=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},45974:(a,b,c)=>{c.d(b,{XJ:()=>p,d0:()=>m,vO:()=>l});var d=c(39326),e=c(91211),f=c(7803);let g=new Map,h=new Map,i=new Map,j=new Map,k=new Map;function l(a,b){let c=`${a}|${b}`;j.delete(c);let d=k.get(c);if(void 0===d)return;k.delete(c);let e=g.get(a);e?.[b]?.resetAt===new Date(d).toISOString()&&(delete e[b],g.set(a,e))}function m(){return g}async function n(a,b,c){let d=Date.now(),e=i.get(a);if(e)return e;let j=h.get(a)||0;if(d-j<3e4)return f.debug("AG_QUOTA",`${a.slice(0,8)} | skip refresh (${Math.round((d-j)/1e3)}s ago)`),g.get(a)||null;h.set(a,d);let k=o(a,b,c,d);i.set(a,k);try{return await k}finally{i.delete(a)}}async function o(a,b,c,h){try{let f=await (0,d.B)(c||{}),h={connectionProxyEnabled:!0===f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl||"",connectionNoProxy:f.connectionNoProxy||"",vercelRelayUrl:f.vercelRelayUrl||"",strictProxy:!0===f.strictProxy},i=await (0,e.c)(b,c,h);if(!i?.quotas||i.message)return null;return g.set(a,function(a,b){let c=Date.now();for(let[d,e]of k)if(d.startsWith(`${a}|`)){if(e<=c){k.delete(d);continue}b[d.slice(a.length+1)]={remainingPercentage:0,resetAt:new Date(e).toISOString()}}return b}(a,i.quotas)),i.quotas}catch(b){return f.warn("AG_QUOTA",`${a.slice(0,8)} | refresh failed: ${b.message}`),null}}async function p(a,b,c,d,e){f.info("AG_QUOTA",`${a.slice(0,8)} | ${b} on ${c} — refreshing quota`);let h=(await n(a,d,e))?.[c];if(!h||h.remainingPercentage>0){let d=`${a}|${c}`,e=Date.now(),i=j.get(d),l=i&&e-i.windowStart<=6e4?i.windowStart:e,m=i&&l===i.windowStart?i.count+1:1;if(j.set(d,{count:m,windowStart:l}),m>=3){j.delete(d);let i=e+9e5,l=h?`${Math.round(h.remainingPercentage)}%`:"unknown";f.warn("AG_QUOTA",`${a.slice(0,8)} | STRIKE_${b} ${c} — ${m}x 429 (quota ${l}); CACHE_BLOCK 15m`);let n=g.get(a)||{};return n[c]={remainingPercentage:0,resetAt:new Date(i).toISOString()},g.set(a,n),k.set(d,i),i}return null}if(j.delete(`${a}|${c}`),!h.resetAt)return null;let i=new Date(h.resetAt).getTime();return i<=Date.now()?null:(f.warn("AG_QUOTA",`${a.slice(0,8)} | UPSTREAM_${b} ${c} — quota exhausted; CACHE_BLOCK until ${h.resetAt}`),i)}},80238:(a,b,c)=>{c.d(b,{Pt:()=>n,Tr:()=>o,c1:()=>l,kI:()=>p,vk:()=>m});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(40615),i=c(45974),j=c(7803);let k=Promise.resolve();async function l(a,b=null,c=null,g={}){let m,n=b instanceof Set?b:b?new Set([b]):new Set,o=g?.preferredConnectionId||null,p=k;k=new Promise(a=>{m=a});try{let b;await p;let g=(0,h.rs)(a);if(h.IS[g]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[g]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,g)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||""}}}let k=await (0,d.getProviderConnections)({provider:g,isActive:!0});if(j.debug("AUTH",`${a} | total connections: ${k.length}, excludeIds: ${n.size>0?[...n].join(","):"none"}, model: ${c||"any"}`),0===k.length)return j.warn("AUTH",`No credentials for ${a}`),null;let l="antigravity"===g,m=l&&c?(0,i.d0)():null,q=k.filter(a=>{if(n.has(a.id)||(0,f.Bl)(a,c))return!1;if(l&&c&&m){let b=m.get(a.id)?.[c];if(b&&b.remainingPercentage<=0&&b.resetAt&&new Date(b.resetAt).getTime()>Date.now()){let d=a.id?.slice(0,8)||"unknown";return j.info("AG_QUOTA",`${d} | CACHE_BLOCK ${c} — skip upstream until ${b.resetAt}`),!1}}return!0});if(j.debug("AUTH",`${a} | available: ${q.length}/${k.length}`),k.forEach(a=>{let b=n.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);j.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===q.length){let b=k.filter(a=>(0,f.Bl)(a,c)),d=b.map(a=>(0,f.kJ)(a)).filter(Boolean);l&&c&&m&&k.forEach(a=>{let b=m.get(a.id)?.[c]?.resetAt;b&&new Date(b).getTime()>Date.now()&&d.push(b)});let e=d.sort()[0]||null;if(e){let d=b[0];return j.warn("AUTH",`${a} | all ${k.length} accounts locked for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return j.warn("AUTH",`${a} | all ${k.length} accounts unavailable`),null}let r=await (0,d.mt)(),s=(r.providerStrategies||{})[g]||{},t=s.fallbackStrategy||r.fallbackStrategy||"fill-first";if(o&&(b=q.find(a=>a.id===o))&&j.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===t){let a=s.stickyRoundRobinLimit||r.stickyRoundRobinLimit||3,c=[...q].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=[...q].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 b=q[0];let u=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:u.connectionProxyEnabled,connectionProxyUrl:u.connectionProxyUrl,connectionNoProxy:u.connectionNoProxy,connectionProxyPoolId:u.proxyPoolId||null,vercelRelayUrl:u.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{m&&m()}}async function m(a,b,c,e=null,i=null,k=null){let l,n,o;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let p=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),q=p?.backoffLevel||0,r=function(a,b,c){if("github"!==(0,h.rs)(c)||402!==Number(a)||!String(b||"").toLowerCase().includes("you've reached your additional usage limit for your plan"))return null;let d=new Date;return Date.UTC(d.getUTCFullYear(),d.getUTCMonth()+1,1)}(b,c,e);if(r?(l=!0,n=r-Date.now(),o=0):k&&k>Date.now()?(l=!0,n="antigravity"===(0,h.rs)(e)?k-Date.now():Math.min(k-Date.now(),g.fh),o=0):{shouldFallback:l,cooldownMs:n,newBackoffLevel:o}=(0,f.hk)(b,c,q),!l)return{shouldFallback:!1,cooldownMs:0};let s="string"==typeof c?c.slice(0,200):"Provider error",t=(0,f.S5)(r?null:i,n);await (0,d.updateProviderConnection)(a,{...t,testStatus:"unavailable",lastError:s,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:o??q});let u=Object.keys(t)[0],v=p?.displayName||p?.name||p?.email||a.slice(0,8);return j.warn("AUTH",`${v} locked ${u} for ${Math.round(n/1e3)}s [${b}]`),e&&b&&s&&console.error(`❌ ${e} [${b}]: ${s}`),{shouldFallback:!0,cooldownMs:n}}async function n(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,errorCode:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function o(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 p(a){return!!a&&await (0,d.ek)(a)}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(9248)}};
@@ -6,7 +6,7 @@ exports.id=4884,exports.ids=[4884],exports.modules={644:(a,b,c)=>{"use strict";f
6
6
  ON CONFLICT(id) DO UPDATE SET
7
7
  provider=excluded.provider, authType=excluded.authType, name=excluded.name,
8
8
  email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
9
- data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function k(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(i);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function l(a){return i((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function m(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(i);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function n(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{var e;let k=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(i),l=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;l=k.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(l=k.find(b=>"apikey"===b.authType&&b.name===a.name));if(l){let d=h(l,a),e={...l,...d,updatedAt:f};j(c,e),b=e;return}let n=a.name||null;n||"oauth"!==a.authType&&"access_token"!==a.authType||(e=a.email||`Account ${k.length+1}`,n="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||e);let o=a.priority;o||(o=k.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let p={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:n,priority:o,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(p[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(p.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(p.email=a.email),j(c,p),m(c,a.provider),b=p}),b}async function o(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=i(e),g=h(f,b),k={...f,...g,updatedAt:new Date().toISOString()};j(d,k),void 0!==b.priority&&m(d,f.provider),c=k}),c}async function p(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),m(b,d.provider),c=!0)}),c}async function q(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function r(a){let b=await (0,e.c)();b.transaction(()=>m(b,a))}async function s(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=i(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&j(a,e)}}),c}},9248:(a,b,c)=>{"use strict";c.d(b,{S8:()=>y.S8,E5:()=>Y,bI:()=>g.cleanupProviderConnections,Iq:()=>q.createApiKey,jd:()=>v,iE:()=>g.createProviderConnection,i0:()=>h.createProviderNode,ZO:()=>n,Lh:()=>q.deleteApiKey,CG:()=>x,uL:()=>y.uL,fv:()=>y.fv,fK:()=>g.deleteProviderConnection,op:()=>g.deleteProviderConnectionsByProvider,Pc:()=>h.deleteProviderNode,Yd:()=>p,tm:()=>C,oF:()=>D,zP:()=>ak,rg:()=>T,yg:()=>q.getApiKeyById,PX:()=>q.getApiKeys,j$:()=>X,L:()=>t,Dj:()=>u,Uv:()=>s,uv:()=>y.uv,vF:()=>B,Lk:()=>ai,c:()=>y.getMitmAlias,OM:()=>y.OM,r4:()=>z.r4,Mc:()=>g.getProviderConnectionById,P:()=>g.getProviderConnections,Qu:()=>h.getProviderNodeById,Fh:()=>h.getProviderNodes,hr:()=>m,ui:()=>l,Zx:()=>Z,SL:()=>ah,mt:()=>f.getSettings,BY:()=>W,K1:()=>al,VT:()=>z.VT,yF:()=>z.yF,ox:()=>ag,sZ:()=>U,L9:()=>y.L9,o5:()=>y.o5,_V:()=>M,uw:()=>S,XW:()=>q.updateApiKey,oG:()=>w,KJ:()=>z.KJ,rj:()=>g.updateProviderConnection,ho:()=>h.updateProviderNode,Q_:()=>o,Xx:()=>f.Xx,ek:()=>q.validateApiKey});var d=c(36366),e=c(644),f=c(42655),g=c(5781),h=c(1129),i=c(94755);function j(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function k(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
9
+ data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function k(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(i);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function l(a){return i((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function m(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(i);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);if(0!==c)return c;let d=new Date(b.updatedAt||0)-new Date(a.updatedAt||0);if(0!==d)return d;let e=new Date(b.createdAt||0)-new Date(a.createdAt||0);return 0!==e?e:a.id<b.id?-1:+(a.id>b.id)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function n(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{var e;let k=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(i),l=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;l=k.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(l=k.find(b=>"apikey"===b.authType&&b.name===a.name));if(l){let d=h(l,a),e={...l,...d,updatedAt:f};j(c,e),b=e;return}let n=a.name||null;n||"oauth"!==a.authType&&"access_token"!==a.authType||(e=a.email||`Account ${k.length+1}`,n="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||e);let o=a.priority;o||(o=k.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let p={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:n,priority:o,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(p[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(p.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(p.email=a.email),j(c,p),m(c,a.provider),b=p}),b}async function o(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=i(e),g=h(f,b),k={...f,...g,updatedAt:new Date().toISOString()};j(d,k),void 0!==b.priority&&m(d,f.provider),c=k}),c}async function p(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),m(b,d.provider),c=!0)}),c}async function q(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function r(a){let b=await (0,e.c)();b.transaction(()=>m(b,a))}async function s(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=i(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&j(a,e)}}),c}},9248:(a,b,c)=>{"use strict";c.d(b,{S8:()=>y.S8,E5:()=>Y,bI:()=>g.cleanupProviderConnections,Iq:()=>q.createApiKey,jd:()=>v,iE:()=>g.createProviderConnection,i0:()=>h.createProviderNode,ZO:()=>n,Lh:()=>q.deleteApiKey,CG:()=>x,uL:()=>y.uL,fv:()=>y.fv,fK:()=>g.deleteProviderConnection,op:()=>g.deleteProviderConnectionsByProvider,Pc:()=>h.deleteProviderNode,Yd:()=>p,tm:()=>C,oF:()=>D,zP:()=>ak,rg:()=>T,yg:()=>q.getApiKeyById,PX:()=>q.getApiKeys,j$:()=>X,L:()=>t,Dj:()=>u,Uv:()=>s,uv:()=>y.uv,vF:()=>B,Lk:()=>ai,c:()=>y.getMitmAlias,OM:()=>y.OM,r4:()=>z.r4,Mc:()=>g.getProviderConnectionById,P:()=>g.getProviderConnections,Qu:()=>h.getProviderNodeById,Fh:()=>h.getProviderNodes,hr:()=>m,ui:()=>l,Zx:()=>Z,SL:()=>ah,mt:()=>f.getSettings,BY:()=>W,K1:()=>al,VT:()=>z.VT,yF:()=>z.yF,ox:()=>ag,sZ:()=>U,L9:()=>y.L9,o5:()=>y.o5,_V:()=>M,uw:()=>S,XW:()=>q.updateApiKey,oG:()=>w,KJ:()=>z.KJ,rj:()=>g.updateProviderConnection,ho:()=>h.updateProviderNode,Q_:()=>o,Xx:()=>f.Xx,ek:()=>q.validateApiKey});var d=c(36366),e=c(644),f=c(42655),g=c(5781),h=c(1129),i=c(94755);function j(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function k(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
10
10
  VALUES(?, ?, ?, ?, ?, ?)
11
11
  ON CONFLICT(id) DO UPDATE SET
12
12
  isActive=excluded.isActive, testStatus=excluded.testStatus,
@@ -40,7 +40,7 @@
40
40
  <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#f5f5f5}.c{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.i{color:${a?"#22c55e":"#ef4444"};font-size:3rem}h1{margin:1rem 0}p{color:#666}</style>
41
41
  </head><body><div class="c"><div class="i">${a?"&#10003;":"&#10007;"}</div><h1>${c}</h1><p>${d}</p><p>Closing in <span id="cd">3</span>s...</p>
42
42
  <script>let n=3;const c=document.getElementById("cd");const t=setInterval(()=>{n--;c.textContent=n;if(n<=0){clearInterval(t);window.close();}},1000);</script>
43
- </div></body></html>`}function s(a){return new Promise(b=>{if(k)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?n.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{t()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),t()});d.listen(m,"127.0.0.1",()=>{k=d,l=setTimeout(()=>t(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function t(){l&&(clearTimeout(l),l=null),k&&(k.close(),k=null)}let u=null,v=null,w=new Map;function x({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(w.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function y(a){return w.get(a)||null}function z(a){w.delete(a)}function A(a){return new Promise(b=>{if(u)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?w.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{B()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),B()});d.listen(56121,"127.0.0.1",()=>{u=d,v=setTimeout(()=>B(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function B(){v&&(clearTimeout(v),v=null),u&&(u.close(),u=null)}let C=new Map;function D(a){let b=C.get(a);return b||(b={server:null,timeout:null,port:null,session:null},C.set(a,b)),b}function E({state:a,provider:b="trae"}){return!!a&&(D(b).session={state:a,provider:b,status:"pending",createdAt:Date.now()},!0)}function F(a,b="trae"){let c=D(b).session;return!c||a&&c.state!==a?null:c}function G(a,b="trae"){let c=D(b);(!a||c.session&&c.session.state===a)&&(c.session=null)}async function H(a="trae"){let{getProvider:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),d=b(a).config,g=D(a);return new Promise(b=>{if(g.server)return void b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`});let h=e().createServer(async(b,e)=>{let h=new f.URL(b.url,"http://localhost");if(h.pathname!==d.callbackPath&&"/auth/callback"!==h.pathname){e.writeHead(404),e.end("Not found");return}let j=g.session;if(!j){e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,"No active Trae login session"));return}if(!i(b.headers.origin)){e.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,"Cross-origin callback rejected"));return}let k=h.searchParams.get("state");if(k&&j.state&&k!==j.state){j.status="error",j.error="Trae callback state mismatch",e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,j.error)),I(a);return}let l=`${h.pathname}?${h.searchParams.toString()}`;try{let{exchangeTokens:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await b(a,l),g=await d({provider:a,authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=g.id,j.email=g.email,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,a.message))}finally{I(a)}});h.listen(0,"127.0.0.1",()=>{g.server=h,g.port=h.address().port,g.timeout=setTimeout(()=>I(a),d.oauthTimeoutMs),b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`})}),h.on("error",a=>b({success:!1,reason:a.message}))})}function I(a="trae"){let b=D(a);b.timeout&&(clearTimeout(b.timeout),b.timeout=null),b.server&&(b.server.close(),b.server=null),b.port=null}let J=null,K=null,L=null,M=null;function N({state:a}){return!!a&&(M={state:a,status:"pending",createdAt:Date.now()},!0)}function O(a){return!M||a&&M.state!==a?null:M}function P(a){(!a||M&&M.state===a)&&(M=null)}function Q(){return new Promise(a=>{if(J)return void a({success:!0,port:L,callbackUrl:`http://127.0.0.1:${L}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=M;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Windsurf login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let h=d.searchParams.get("state");if(!h||!e.state||h!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,e.error)),R();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{R()}});b.listen(0,"127.0.0.1",()=>{J=b,L=b.address().port,K=setTimeout(()=>R(),g.eD.oauthTimeoutMs),a({success:!0,port:L,callbackUrl:`http://127.0.0.1:${L}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function R(){K&&(clearTimeout(K),K=null),J&&(J.close(),J=null),L=null}let S=null,T=null,U=null,V=null;function W({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(V={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function X(a){return!V||a&&V.state!==a?null:V}function Y(a){(!a||V&&V.state===a)&&(V=null)}function Z(a=0){return new Promise(b=>{if(S){T&&clearTimeout(T),T=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),$()},g.RY.oauthTimeoutMs),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=V;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Zed login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let h=d.searchParams;if(!(h.has("user_id")||h.has("userId")||h.has("access_token")||h.has("accessToken")||h.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window.")),$()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}}),h=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==h?(console.log(`[Zed proxy] port ${h} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{S=d,U=d.address().port,T=setTimeout(()=>$(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${U}`),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(h,"127.0.0.1",()=>{S=d,U=d.address().port,T=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),$()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${U}`),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`})})})}function $(){console.log(`[Zed proxy] stopping (port ${U||"-"})`),T&&(clearTimeout(T),T=null),S&&(S.close(),S=null),U=null}let _=null,aa=null,ab=null,ac=new Map;function ad({state:a,privateKeyDer:b}){return!!a&&!!b&&(ac.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function ae(a){let b=ac.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function af(a){ac.delete(a)}function ag(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
43
+ </div></body></html>`}function s(a){return new Promise(b=>{if(k)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?n.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("codex",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{t()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),t()});d.listen(m,"127.0.0.1",()=>{k=d,l=setTimeout(()=>t(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function t(){l&&(clearTimeout(l),l=null),k&&(k.close(),k=null)}let u=null,v=null,w=new Map;function x({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(w.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function y(a){return w.get(a)||null}function z(a){w.delete(a)}function A(a){return new Promise(b=>{if(u)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),i=e.searchParams.get("error"),j=h?w.get(h):null;if(j){try{if(i)throw Error(e.searchParams.get("error_description")||i);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:b}=await c.e(1998).then(c.bind(c,71998)),f=await a("xai",g,j.redirectUri,j.codeVerifier,h),k=await b({provider:"xai",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(r(!1,a.message))}finally{B()}return}let k=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:k}),d.end(),B()});d.listen(56121,"127.0.0.1",()=>{u=d,v=setTimeout(()=>B(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function B(){v&&(clearTimeout(v),v=null),u&&(u.close(),u=null)}let C=new Map;function D(a){let b=C.get(a);return b||(b={server:null,timeout:null,port:null,session:null},C.set(a,b)),b}function E({state:a,provider:b="trae"}){return!!a&&(D(b).session={state:a,provider:b,status:"pending",createdAt:Date.now()},!0)}function F(a,b="trae"){let c=D(b).session;return!c||a&&c.state!==a?null:c}function G(a,b="trae"){let c=D(b);(!a||c.session&&c.session.state===a)&&(c.session=null)}async function H(a="trae"){let{getProvider:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),d=b(a).config,g=D(a);return new Promise(b=>{if(g.server)return void b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`});let h=e().createServer(async(b,e)=>{let h=new f.URL(b.url,"http://localhost");if(h.pathname!==d.callbackPath&&"/auth/callback"!==h.pathname){e.writeHead(404),e.end("Not found");return}let j=g.session;if(!j){e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,"No active Trae login session"));return}if(!i(b.headers.origin)){e.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,"Cross-origin callback rejected"));return}let k=h.searchParams.get("state");if(k&&j.state&&k!==j.state){j.status="error",j.error="Trae callback state mismatch",e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,j.error)),I(a);return}let l=`${h.pathname}?${h.searchParams.toString()}`;try{let{exchangeTokens:b}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await b(a,l),g=await d({provider:a,authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=g.id,j.email=g.email,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!0,"You can close this window."))}catch(a){j.status="error",j.error=a.message,e.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),e.end(r(!1,a.message))}finally{I(a)}});h.listen(0,"127.0.0.1",()=>{g.server=h,g.port=h.address().port,g.timeout=setTimeout(()=>I(a),d.oauthTimeoutMs),b({success:!0,port:g.port,callbackUrl:`http://127.0.0.1:${g.port}${d.callbackPath}`})}),h.on("error",a=>b({success:!1,reason:a.message}))})}function I(a="trae"){let b=D(a);b.timeout&&(clearTimeout(b.timeout),b.timeout=null),b.server&&(b.server.close(),b.server=null),b.port=null}let J=null,K=null,L=null,M=null;function N({state:a}){return!!a&&(M={state:a,status:"pending",createdAt:Date.now()},!0)}function O(a){return!M||a&&M.state!==a?null:M}function P(a){(!a||M&&M.state===a)&&(M=null)}function Q(){return new Promise(a=>{if(J)return void a({success:!0,port:L,callbackUrl:`http://127.0.0.1:${L}${g.eD.callbackPath}`});let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.eD.callbackPath){b.writeHead(404),b.end("Not found");return}let e=M;if(!e){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Windsurf login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let h=d.searchParams.get("state");if(!h||!e.state||h!==e.state){e.status="error",e.error="Windsurf callback state mismatch",b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,e.error)),R();return}let j=`${d.pathname}?${d.searchParams.toString()}`;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),f=await a("windsurf",j,null,null,e.state),g=await d({provider:"windsurf",authType:"api_key",...f,testStatus:"active"});e.status="done",e.connectionId=g.id,e.email=g.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window."))}catch(a){e.status="error",e.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}finally{R()}});b.listen(0,"127.0.0.1",()=>{J=b,L=b.address().port,K=setTimeout(()=>R(),g.eD.oauthTimeoutMs),a({success:!0,port:L,callbackUrl:`http://127.0.0.1:${L}${g.eD.callbackPath}`})}),b.on("error",b=>a({success:!1,reason:b.message}))})}function R(){K&&(clearTimeout(K),K=null),J&&(J.close(),J=null),L=null}let S=null,T=null,U=null,V=null;function W({state:a,codeVerifier:b,systemId:c}){return!!a&&!!b&&(V={state:a,codeVerifier:b,systemId:c||null,status:"pending",createdAt:Date.now()},!0)}function X(a){return!V||a&&V.state!==a?null:V}function Y(a){(!a||V&&V.state===a)&&(V=null)}function Z(a=0){return new Promise(b=>{if(S){T&&clearTimeout(T),T=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),$()},g.RY.oauthTimeoutMs),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`});return}let d=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost"),e=Object.fromEntries(d.searchParams);for(let a of["access_token","user_id","code_verifier","state"])e[a]&&(e[a]="<redacted>");if(console.log("[Zed proxy]",a.method,d.pathname,JSON.stringify(e)),"/"!==d.pathname&&"/callback"!==d.pathname){b.writeHead(404),b.end("Not found");return}let g=V;if(!g){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active Zed login session"));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let h=d.searchParams;if(!(h.has("user_id")||h.has("userId")||h.has("access_token")||h.has("accessToken")||h.has("token"))){console.log(`[Zed proxy] ignoring non-callback ${a.method} ${d.pathname} (session kept, server kept)`),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Waiting for Zed sign-in — this request carried no login data."));return}let j=d.search?`${d.pathname}?${d.searchParams.toString()}`:d.pathname;try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:d}=await c.e(1998).then(c.bind(c,71998)),e=await a("zed",j,null,g.codeVerifier,g.state,g.systemId?{systemId:g.systemId}:void 0),f=await d({provider:"zed",authType:"oauth",...e,testStatus:"active"});g.status="done",g.connectionId=f.id,g.email=f.email,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!0,"You can close this window.")),$()}catch(a){g.status="error",g.error=a.message,b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,a.message))}}),h=Number(a)||0;d.on("error",a=>{"EADDRINUSE"===a.code&&0!==h?(console.log(`[Zed proxy] port ${h} busy, falling back to random`),d.listen(0,"127.0.0.1",()=>{S=d,U=d.address().port,T=setTimeout(()=>$(),g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on random port ${U}`),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`})})):(console.log(`[Zed proxy] listen error: ${a.message}`),b({success:!1,reason:a.message}))}),d.listen(h,"127.0.0.1",()=>{S=d,U=d.address().port,T=setTimeout(()=>{console.log("[Zed proxy] timeout, stopping"),$()},g.RY.oauthTimeoutMs),console.log(`[Zed proxy] listening on port ${U}`),b({success:!0,port:U,callbackUrl:`http://127.0.0.1:${U}/`})})})}function $(){console.log(`[Zed proxy] stopping (port ${U||"-"})`),T&&(clearTimeout(T),T=null),S&&(S.close(),S=null),U=null}let _=null,aa=null,ab=null,ac=new Map;function ad({state:a,privateKeyDer:b}){return!!a&&!!b&&(ac.set(a,{privateKeyDer:b,status:"pending",createdAt:Date.now()}),!0)}function ae(a){let b=ac.get(a);return b?{status:b.status,result:b.result||null,error:b.error||null}:null}function af(a){ac.delete(a)}function ag(a,b){let c=a?"Authentication Successful":"Authentication Failed";return`<!DOCTYPE html>
44
44
  <html>
45
45
  <head><meta charset="utf-8"><title>${c}</title>
46
46
  <style>
@@ -59,4 +59,4 @@
59
59
  ${a?"<script>setTimeout(() => window.close(), 3000);<\/script>":""}
60
60
  </div>
61
61
  </body>
62
- </html>`}function ah(){return new Promise(a=>{if(_)return void a({success:!0,port:aa,callbackUrl:`http://127.0.0.1:${aa}/`});let b=e().createServer(async(a,b)=>{if(!i(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ac.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ac.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{_=b,aa=b.address().port,ab=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),ai()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${aa}`),a({success:!0,port:aa,callbackUrl:`http://127.0.0.1:${aa}/`})})})}function ai(){console.log(`[xiaomi-mimo oauth] stopping (port ${aa||"-"})`),ab&&(clearTimeout(ab),ab=null),_&&(_.close(),_=null),aa=null,ac.clear()}let aj=null,ak=null,al=null,am=null;function an({state:a,codeVerifier:b,ticketId:c}){return!!a&&!!b&&(am={state:a,codeVerifier:b,ticketId:c||null,status:"pending",createdAt:Date.now()},!0)}function ao(a){return!am||a&&am.state!==a?null:{state:am.state,status:am.status,connectionId:am.connectionId||null,email:am.email||null,error:am.error||null}}function ap(a){(!a||am&&am.state===a)&&(am=null)}function aq(a){let b=new URLSearchParams({login_succeed:String(a),locale:g.Ru.locale||"zh-cn"});return`${g.Ru.portalBase}/login?${b.toString()}`}function ar(){return new Promise(a=>{if(aj){ak&&clearTimeout(ak),ak=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),as()},g.Ru.oauthTimeoutMs),a({success:!0,port:al,callbackUrl:(0,h.yn)(al)});return}let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.Ru.callbackPath){b.writeHead(404),b.end("Not found");return}let e=d.searchParams;if(console.log("[CodeArts proxy]",a.method,d.pathname,JSON.stringify({hasCode:e.has("code"),hasSecret:e.has("secret"),redirect:e.get("redirect")?"<ignored>":null})),!e.has("code")&&!e.has("secret")){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Waiting for CodeArts sign-in — this request carried no login data."));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let j=am;if(!j){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active CodeArts login session"));return}if("pending"!==j.status){b.writeHead(307,{Location:aq("done"===j.status)}),b.end();return}try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:f}=await c.e(1998).then(c.bind(c,71998)),g=`${d.pathname}?${e.toString()}`,i=await a("codearts",g,(0,h.yn)(al),j.codeVerifier,j.state,j.ticketId?{ticketId:j.ticketId}:void 0),k=await f({provider:"codearts",authType:"oauth",...i,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:aq(!0)}),b.end(),as()}catch(a){j.status="error",j.error=a.message,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:aq(!1)}),b.end()}});b.listen(0,"127.0.0.1",()=>{aj=b,al=b.address().port,ak=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),as()},g.Ru.oauthTimeoutMs),console.log(`[CodeArts proxy] listening on port ${al}`),a({success:!0,port:al,callbackUrl:(0,h.yn)(al)})}),b.on("error",b=>{console.log(`[CodeArts proxy] listen error: ${b.message}`),a({success:!1,reason:b.message})})})}function as(){console.log(`[CodeArts proxy] stopping (port ${al||"-"})`),ak&&(clearTimeout(ak),ak=null),aj&&(aj.close(),aj=null),al=null,am&&(am.codeVerifier=null,am.ticketId=null)}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/9router",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,DV:()=>A,EL:()=>F,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,RY:()=>H,Ru:()=>I,S6:()=>s,SK:()=>E,Td:()=>B,Tx:()=>q,WN:()=>t,Ww:()=>J,YT:()=>n,ZL:()=>m,aV:()=>u,cD:()=>o,eD:()=>G,f7:()=>y,hF:()=>k,lB:()=>w,oe:()=>D,qp:()=>C,t3:()=>l,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qoder},l={...f.sr["qoder-cn"]},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr["codebuddy-intl"]},B={...f.sr.kimchi},C={...f.sr["grok-cli"]},D={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},E={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},F={...f.sr["trae-enterprise"],minAppVersion:E.minAppVersion,defaultAppVersion:E.defaultAppVersion,defaultAppType:E.defaultAppType,defaultPluginVersion:E.defaultPluginVersion,defaultDeviceId:E.defaultDeviceId,userAgent:E.userAgent,authScheme:E.authScheme,tokenLifetimeDays:E.tokenLifetimeDays,oauthTimeoutMs:E.oauthTimeoutMs},G={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},H={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},I={...f.sr.codearts},J=3e5}};
62
+ </html>`}function ah(){return new Promise(a=>{if(_)return void a({success:!0,port:aa,callbackUrl:`http://127.0.0.1:${aa}/`});let b=e().createServer(async(a,b)=>{if(!i(a.headers.origin)){b.writeHead(403),b.end("Forbidden");return}let d=new f.URL(a.url,"http://127.0.0.1").searchParams.get("u");if(!d){b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!1,"Missing encrypted payload (u parameter)."));return}let e=[...ac.entries()].filter(([,a])=>"pending"===a.status);if(0===e.length){b.writeHead(500,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!1,"No active OAuth session. Please restart the login flow."));return}try{let{decryptCallback:a}=await c.e(4152).then(c.bind(c,34152)),f=null,g=null;for(let[b,c]of e)try{f=a(c.privateKeyDer,d),g=b;break}catch{}if(!f||!g)throw Error("Could not decrypt with any pending session key");if(!f.sk)throw Error("Decrypted payload missing sk (API key)");let h=ac.get(g);h&&(h.status="done",h.result={uid:f.uid,accessToken:f.sk,baseUrl:f.url||"https://api.xiaomimimo.com/v1"}),b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!0,"Xiaomi account linked. You can close this tab.")),console.log("[xiaomi-mimo oauth] callback decrypted, uid:",f.uid)}catch(a){for(let[,b]of(console.error("[xiaomi-mimo oauth] decrypt failed:",a.message),e))b.status="error",b.error=a.message;b.writeHead(400,{"Content-Type":"text/html; charset=utf-8"}),b.end(ag(!1,`Decryption failed: ${a.message}`))}});b.on("error",b=>{console.log("[xiaomi-mimo oauth] listen error:",b.message),a({success:!1,reason:b.message})}),b.listen(0,"127.0.0.1",()=>{_=b,aa=b.address().port,ab=setTimeout(()=>{console.log("[xiaomi-mimo oauth] timeout, stopping"),ai()},3e5),console.log(`[xiaomi-mimo oauth] listening on port ${aa}`),a({success:!0,port:aa,callbackUrl:`http://127.0.0.1:${aa}/`})})})}function ai(){console.log(`[xiaomi-mimo oauth] stopping (port ${aa||"-"})`),ab&&(clearTimeout(ab),ab=null),_&&(_.close(),_=null),aa=null,ac.clear()}let aj=null,ak=null,al=null,am=null;function an({state:a,codeVerifier:b,ticketId:c}){return!!a&&!!b&&(am={state:a,codeVerifier:b,ticketId:c||null,status:"pending",createdAt:Date.now()},!0)}function ao(a){return!am||a&&am.state!==a?null:{state:am.state,status:am.status,connectionId:am.connectionId||null,email:am.email||null,error:am.error||null}}function ap(a){(!a||am&&am.state===a)&&(am=null)}function aq(a){let b=new URLSearchParams({login_succeed:String(a),locale:g.Ru.locale||"zh-cn"});return`${g.Ru.portalBase}/login?${b.toString()}`}function ar(){return new Promise(a=>{if(aj){ak&&clearTimeout(ak),ak=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),as()},g.Ru.oauthTimeoutMs),a({success:!0,port:al,callbackUrl:(0,h.yn)(al)});return}let b=e().createServer(async(a,b)=>{let d=new f.URL(a.url,"http://localhost");if(d.pathname!==g.Ru.callbackPath){b.writeHead(404),b.end("Not found");return}let e=d.searchParams;if(console.log("[CodeArts proxy]",a.method,d.pathname,JSON.stringify({hasCode:e.has("code"),hasSecret:e.has("secret"),redirect:e.get("redirect")?"<ignored>":null})),!e.has("code")&&!e.has("secret")){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Waiting for CodeArts sign-in — this request carried no login data."));return}if(!i(a.headers.origin)){b.writeHead(403,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"Cross-origin callback rejected"));return}let j=am;if(!j){b.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),b.end(r(!1,"No active CodeArts login session"));return}if("pending"!==j.status){b.writeHead(307,{Location:aq("done"===j.status)}),b.end();return}try{let{exchangeTokens:a}=await Promise.all([c.e(7774),c.e(5433),c.e(8920),c.e(24),c.e(3225),c.e(6922),c.e(1329),c.e(7843),c.e(614),c.e(8499),c.e(318),c.e(8895),c.e(4049)]).then(c.bind(c,74177)),{createProviderConnection:f}=await c.e(1998).then(c.bind(c,71998)),g=`${d.pathname}?${e.toString()}`,i=await a("codearts",g,(0,h.yn)(al),j.codeVerifier,j.state,j.ticketId?{ticketId:j.ticketId}:void 0),k=await f({provider:"codearts",authType:"oauth",...i,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():null,testStatus:"active"});j.status="done",j.connectionId=k.id,j.email=k.email,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:aq(!0)}),b.end(),as()}catch(a){j.status="error",j.error=a.message,j.codeVerifier=null,j.ticketId=null,b.writeHead(307,{Location:aq(!1)}),b.end()}});b.listen(0,"127.0.0.1",()=>{aj=b,al=b.address().port,ak=setTimeout(()=>{console.log("[CodeArts proxy] timeout, stopping"),as()},g.Ru.oauthTimeoutMs),console.log(`[CodeArts proxy] listening on port ${al}`),a({success:!0,port:al,callbackUrl:(0,h.yn)(al)})}),b.on("error",b=>{console.log(`[CodeArts proxy] listen error: ${b.message}`),a({success:!1,reason:b.message})})})}function as(){console.log(`[CodeArts proxy] stopping (port ${al||"-"})`),ak&&(clearTimeout(ak),ak=null),aj&&(aj.close(),aj=null),al=null,am&&(am.codeVerifier=null,am.ticketId=null)}},73159:(a,b,c)=>{c.d(b,{Ue:()=>k,oT:()=>l});var d=c(26070);let e=d.xq.xai?.clientId,f="https://auth.x.ai",g="/oauth2/authorize",h="/oauth2/token",i="/.well-known/openid-configuration",j="/callback",k=96,l={clientId:e,issuer:f,authEndpointPath:g,tokenEndpointPath:h,discoveryPath:i,authorizeUrl:`${f}${g}`,tokenUrl:`${f}${h}`,discoveryUrl:`${f}${i}`,scope:"openid profile email offline_access grok-cli:access api:access",apiBaseUrl:"https://api.x.ai/v1",redirectUri:`http://127.0.0.1:56121${j}`,loopbackPort:56121,callbackPath:j,pkceVerifierBytes:96,refreshLeadSeconds:300,userAgent:"grok-cli/9router",codeChallengeMethod:"S256"}},92990:(a,b,c)=>{c.d(b,{DI:()=>i,DV:()=>A,EL:()=>F,LT:()=>j,MZ:()=>v,Nl:()=>z,Nu:()=>p,OV:()=>h,RY:()=>H,Ru:()=>I,S6:()=>s,SK:()=>E,Td:()=>B,Tx:()=>q,WN:()=>t,Ww:()=>J,YT:()=>n,ZL:()=>m,aV:()=>u,cD:()=>o,eD:()=>G,f7:()=>y,hF:()=>k,lB:()=>w,oe:()=>D,qp:()=>C,t3:()=>l,w1:()=>x});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qoder},l={...f.sr["qoder-cn"]},m={...f.sr.iflow},n={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function o(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let p={...f.sr.github},q={...f.sr.kiro},r=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function s(a){if("string"!=typeof a||!r.test(a))throw Error("Invalid region");return a}let t={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},u={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},v={...f.sr.kilocode},w={...f.sr.cline},x={...f.sr.clinepass},y={...f.sr.gitlab},z={...f.sr["codebuddy-cn"]},A={...f.sr["codebuddy-intl"]},B={...f.sr.kimchi},C={...f.sr["grok-cli"]},D={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",callbackPath:"/",timeoutMs:3e5},E={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},F={...f.sr["trae-enterprise"],minAppVersion:E.minAppVersion,defaultAppVersion:E.defaultAppVersion,defaultAppType:E.defaultAppType,defaultPluginVersion:E.defaultPluginVersion,defaultDeviceId:E.defaultDeviceId,userAgent:E.userAgent,authScheme:E.authScheme,tokenLifetimeDays:E.tokenLifetimeDays,oauthTimeoutMs:E.oauthTimeoutMs},G={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},H={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},I={...f.sr.codearts},J=3e5}};
@@ -0,0 +1,8 @@
1
+ "use strict";exports.id=614,exports.ids=[614],exports.modules={80614:(a,b,c)=>{c.d(b,{BS:()=>A,Rm:()=>w,nY:()=>L});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(48161),l=c.n(k),m=c(49120),n=c(39609),o=c(72239),p=c(41004);let q="opencode/",r="attachments",s={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/bmp":"bmp","image/svg+xml":"svg"};function t(a){let b=process.env[a];return null==b?"":String(b).trim().toLowerCase()}function u(){let a=function(){let a=t("CLI_OPENCODE_BIN");if(a)return[a];let b=l().homedir();if("win32"===process.platform){let a=process.env.LOCALAPPDATA||j().join(b,"AppData","Local");return[j().join(a,"opencode","bin","opencode.exe"),j().join(a,"npm","opencode.cmd"),j().join(b,".bun","bin","opencode.exe"),"opencode.cmd"]}return[j().join(b,".opencode","bin","opencode"),j().join(b,".local","bin","opencode"),j().join(b,".bun","bin","opencode"),"/opt/homebrew/bin/opencode","/usr/local/bin/opencode","/usr/bin/opencode","opencode"]}();for(let b of a)if(b.includes(j().sep))try{if(h().existsSync(b))return b}catch{}return a[a.length-1]}let v=null;async function w({force:a=!1}={}){let b=t("OPENCODE_TRANSPORT");if("http"===b||"off"===b)return!1;if("cli"===b||"on"===b)return v={bin:u(),ok:!0,checkedAt:Date.now()},!0;if(!a&&v&&Date.now()-v.checkedAt<p.SW.availabilityTtlMs)return v.ok;let c=u(),e=await new Promise(a=>{let b,e=!1,f=b=>{e||(e=!0,a(b))};try{b=(0,d.spawn)(c,["--version"],{stdio:["ignore","ignore","ignore"],shell:"win32"===process.platform&&!c.includes(j().sep)})}catch{f(!1);return}let g=setTimeout(()=>{try{b.kill("SIGKILL")}catch{}f(!1)},p.SW.versionProbeMs);g.unref&&g.unref(),b.on("error",()=>{clearTimeout(g),f(!1)}),b.on("close",a=>{clearTimeout(g),f(0===a)})});return v={bin:c,ok:e,checkedAt:Date.now()},e}function x(){return{bin:v?.bin||u(),ok:v?.ok??null}}let y=null,z=0;async function A({ttlMs:a=p.SW.availabilityTtlMs}={}){var b;if(y&&Date.now()-y.at<a)return y.ids;if(Date.now()-z<6e4)return null;let c=await (b=x().bin,new Promise(a=>{let c,e=!1,f=b=>{e||(e=!0,a(b))};try{c=(0,d.spawn)(b,["models","opencode"],{stdio:["ignore","pipe","ignore"],shell:"win32"===process.platform&&!b.includes(j().sep)})}catch{f(null);return}let g="",h=setTimeout(()=>{try{c.kill("SIGKILL")}catch{}f(null)},p.SW.versionProbeMs);h.unref&&h.unref(),c.on("error",()=>{clearTimeout(h),f(null)}),c.stdout.on("data",a=>{g+=a.toString("utf8")}),c.on("close",a=>{if(clearTimeout(h),0!==a)return f(null);let b=new Set;for(let a of g.split("\n")){let c=a.replace(/\x1b\[[0-9;]*m/g,"").trim();c.startsWith(q)&&b.add(c.slice(q.length))}f(b.size?b:null)})}));return c?(y={ids:c,at:Date.now()},c):(z=Date.now(),null)}async function B(a,b,c,d){if(!a?.length)return[];let e=j().join(b,r);h().mkdirSync(e,{recursive:!0});let g=new Set;for(let b of a)try{let a,i=b.mime||"";if(b.base64)a=Buffer.from(b.base64,"base64");else{if(!b.url)continue;let e=await (0,n.proxyAwareFetch)(b.url,{signal:AbortSignal.timeout(15e3)},c);if(!e.ok)throw Error(`HTTP ${e.status}`);i=(e.headers.get("content-type")||"").split(";")[0]||i;let f=Number(e.headers.get("content-length")||0);if(f>8388608){d?.warn?.("OPENCODE",`image attachment declares ${f}B > cap → skipped`);continue}a=Buffer.from(await e.arrayBuffer())}if(!a?.length)continue;if(a.length>8388608){d?.warn?.("OPENCODE",`image attachment ${a.length}B exceeds cap → dropped`);continue}let k=s[i]||"png",l=f().createHash("sha1").update(a).digest("hex").slice(0,16),m=j().join(e,`${l}-${f().randomUUID().slice(0,8)}.${k}`);h().writeFileSync(m,a,{flag:"wx"}),g.add(m)}catch(a){d?.warn?.("OPENCODE",`image attachment failed: ${a.message}`)}return[...g]}function C(a,b){if("string"==typeof a)return a;if(!Array.isArray(a))return"";let c=[];for(let d of a)if(d){if("string"==typeof d){c.push(d);continue}switch(d.type){case"text":case"input_text":case"output_text":c.push(String(d.text||""));break;case"tool_use":c.push(`[assistant called tool ${d.name||"?"} with ${JSON.stringify(d.input??{})}]`);break;case"tool_result":c.push(`[tool result: ${"string"==typeof d.content?d.content:JSON.stringify(d.content??"")}]`);break;case"image":case"image_url":case"input_image":{let a=function(a){let b=a.image_url??(a.source?a.source:null);if(!b)return null;if("string"==typeof b)return{url:b};if("object"!=typeof b)return null;if("base64"===b.type&&"string"==typeof b.data)return{base64:b.data,mime:b.media_type||"image/png"};let c=b.url||b.data;if("string"!=typeof c)return null;if(c.startsWith("data:")){let a=c.match(/^data:([^;,]+);base64,(.*)$/s);return a?{base64:a[2],mime:a[1]}:null}return/^https?:\/\//i.test(c)?{url:c}:null}(d);a&&b.length<8?(b.push(a),c.push(`[image #${b.length}]`)):c.push("[image omitted]")}}}return c.filter(Boolean).join("\n")}function D(a){return a.map(a=>`${a.role}: ${a.text}`).join("\n\n")}function E(a,b){let c=Buffer.from(a,"utf8");return c.length<=b?a:c.subarray(c.length-b).toString("utf8")}let F=new Map,G=new Map,H=setInterval(()=>{let a=Date.now();for(let[b,c]of F)a-c.lastUsed>p.v1.sessionTtlMs&&F.delete(b)},p.v1.sessionCleanupIntervalMs);function I(a){return f().createHash("sha256").update(JSON.stringify(a.map(a=>[a.role,a.text]))).digest("hex").slice(0,24)}function J(a){let b=String(a||""),c=b.match(/^(.*?)\(([^()]+)\)\s*$/);return{base:(c?c[1]:b).trim(),variant:c?c[2].trim():""}}function K(a,b){let c={error:{message:String(a||"OpenCode CLI error"),type:"opencode_cli_error",...b?{code:String(b)}:{}}};return`data: ${JSON.stringify(c)}
2
+
3
+ `}function L({model:a,body:b,credentials:c,providerSessionId:e,signal:g,log:i,proxyOptions:k}){var l,n;let s,t,u=function(){let a=j().join(m.n,"opencode-cli");h().mkdirSync(a,{recursive:!0}),function(a){let b;try{b=h().readdirSync(a,{withFileTypes:!0})}catch{return}let c=Date.now()-216e5;for(let d of b){if(!d.isFile())continue;let b=j().join(a,d.name);try{h().statSync(b).mtimeMs<c&&h().unlinkSync(b)}catch{}}}(j().join(a,r));let b=j().join(a,"opencode.json"),c=JSON.stringify({$schema:"https://opencode.ai/config.json",model:"opencode/nemotron-3.5-lightning-free",permission:"deny"},null,2),d=null;try{d=h().readFileSync(b,"utf8")}catch{}return d!==c&&h().writeFileSync(b,c),a}(),v=x().bin,w=c?.connectionId||c?.id||"default";return l=`${w}:${e||"anon"}`,n=async()=>{var l,m;let n,r,{system:s,turns:t,images:w}=function(a){let b=a||{},c=Array.isArray(b.messages)?b.messages:Array.isArray(b.input)?b.input:Array.isArray(b.contents)?b.contents:[],d=[],e=[],f=[],g=(a,b)=>{let c=String(b||"").trim();c&&e.push({role:a,text:c})};null!=b.system&&d.push(C(b.system,f)||String(b.system));let h=new Map;for(let a of c)if(a&&"object"==typeof a&&"reasoning"!==a.type&&"item_reference"!==a.type){if("system"===a.role){d.push(C(a.content,f));continue}if("function_call"===a.type){g("assistant",`[assistant called tool ${a.name||"?"} with ${"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??{})}]`);continue}if("function_call_output"===a.type){g("tool",`[tool result: ${"string"==typeof a.output?a.output:JSON.stringify(a.output??"")}]`);continue}for(let b of Array.isArray(a.tool_calls)?a.tool_calls:[])b?.id&&h.set(b.id,b?.function?.name||b?.name||"?");if(Array.isArray(a.content))for(let b of a.content)b?.type==="tool_use"&&b.id&&h.set(b.id,b.name||"?");if("tool"===a.role){g("tool",`[tool result ${h.get(a.tool_call_id)||a.name||"?"}: ${C(a.content,f)||JSON.stringify(a.content??"")}]`);continue}g("assistant"===a.role?"assistant":"user",C(a.content??a.text,f))}return{system:d.filter(Boolean).join("\n\n"),turns:e,images:f}}(b);if(!t.length){return l="OpenCode CLI: request contained no text to send",N(M((a,b)=>{a(K(l,"empty_prompt")),b()}),400,{transformedBody:{transport:"opencode-cli",error:l}})}let x=(n=c?.connectionId||c?.id||"default",r=t?.length?(m=t[0],f().createHash("sha256").update(`${m.role}\0${m.text}`).digest("hex").slice(0,16)):"anon",`${n}:${e||"anon"}:${r}`),y=function({key:a,system:b,turns:c}){let d,e,g,h=F.get(a),i=f().createHash("sha256").update(b||"").digest("hex").slice(0,16);if(h?.sid&&c.length>h.reflected&&i===h.systemHash){let b=h.reflected-1;if(c[b]?.role==="assistant"&&I(c.slice(0,b))===h.prefixHash){let b=c.slice(h.reflected),d=E(D(b),184320);if(d.trim())return F.delete(a),F.set(a,h),{sid:h.sid,prompt:d,systemHash:i,replayed:b.length}}}return{sid:null,prompt:E((d=[],b&&d.push(`Instructions for your reply:
4
+ ${b}`),(e=c.slice(0,-1)).length&&d.push(`Conversation so far:
5
+ ${D(e)}`),g=c[c.length-1],d.push(`Reply to this as the assistant, without describing what you would do:
6
+ ${g?g.text:"..."}`),d.join("\n\n")),184320),systemHash:i,replayed:c.length}}({key:x,system:s,turns:t}),z=await B(w,u,k,i),A=function({model:a,body:b,sid:c,prompt:d,files:e}){let{base:f,variant:g}=function(a,b){let{base:c,variant:d}=J(a),e=d||("string"==typeof b?.reasoning_effort?b.reasoning_effort:"");if(!e||"auto"===e||"none"===e)return{base:c,variant:""};let f=(0,o.k)("opencode",c),g=e.toLowerCase().trim();if(f?.includes(g))return{base:c,variant:g};if("max"===g||"ultra"===g){let a=["xhigh","high","medium","low"].find(a=>f?.includes(a));if(a)return{base:c,variant:a}}return{base:c,variant:""}}(a,b),h=["run","--format","json","-m",`${q}${f}`];for(let a of(g&&h.push("--variant",g),c&&h.push("-s",c),e||[]))h.push("--file",a);return h.push("--",d),h}({model:a,body:b,sid:y.sid,prompt:y.prompt,files:z});return i?.info?.("OPENCODE",`CLI ${y.sid?"continue":"new"} session model=${a} key=${x.slice(0,56)} turns=${y.replayed} images=${z.length} prompt=${Buffer.byteLength(y.prompt)}B`),function({bin:a,args:b,dir:c,key:e,plan:f,turns:g,model:i,signal:k,log:l,attachments:m=[]}){let n=`chatcmpl-opencode-${Date.now()}`,o=Math.floor(Date.now()/1e3),q={sid:f.sid,reply:"",usage:null,roleSent:!1,done:!1},r=()=>{};return N(M((s,t)=>{let u,v="",w=(a,b=null,c)=>{let d={id:n,object:"chat.completion.chunk",created:o,model:String(i||""),choices:[{index:0,delta:a,logprobs:null,finish_reason:b}]};c&&(d.usage=c),s(`data: ${JSON.stringify(d)}
7
+
8
+ `)},x=({error:a=null,finishReason:b="stop"}={})=>{if(!q.done){if(q.done=!0,clearTimeout(A),clearTimeout(y),k&&k.removeEventListener("abort",B),a)s(K(a.message,a.status));else if(q.reply.trim())q.roleSent||w({role:"assistant",content:""}),w({},b,q.usage||void 0),s("data: [DONE]\n\n");else{let a=v.trim()?`: ${v.trim().slice(0,300)}`:"";s(K(`OpenCode CLI returned no assistant text${a}`,"empty_reply"))}!function({key:a,plan:b,turns:c,sid:d,replyText:e,systemHash:f}){if(d){if(!e){let b=F.get(a);b&&(b.lastUsed=Date.now());return}F.size>=1e3&&F.delete(F.keys().next().value),F.set(a,{sid:d,reflected:c.length+1,prefixHash:I(c),systemHash:f,lastUsed:Date.now()})}}({key:e,plan:f,turns:g,sid:q.sid,replyText:a?null:q.reply,systemHash:f.systemHash});for(let a of m)try{h().unlinkSync(a)}catch{}t()}},y=null,z=()=>{clearTimeout(y),(y=setTimeout(()=>{l?.warn?.("OPENCODE",`CLI silent >${p.SW.idleMs}ms`),r(),x({error:{message:`OpenCode CLI went silent for ${Math.round(p.SW.idleMs/1e3)}s`}})},p.SW.idleMs)).unref&&y.unref()},A=setTimeout(()=>{l?.warn?.("OPENCODE",`CLI exceeded ${Math.round(p.SW.totalMs/1e3)}s`),r(),x({error:{message:"OpenCode CLI timed out"}})},p.SW.totalMs);A.unref&&A.unref();let B=()=>{r(),x({error:{message:"Aborted by client"}})};if(k){if(k.aborted)return void x({error:{message:"Aborted by client"}});k.addEventListener("abort",B,{once:!0})}try{u=(0,d.spawn)(a,b,{cwd:c,env:{...process.env},stdio:["ignore","pipe","pipe"],shell:"win32"===process.platform&&!a.includes(j().sep)})}catch(a){x({error:{message:`Failed to spawn opencode CLI: ${a.message}`}});return}r=()=>{if(u.killed)return;try{u.kill("SIGTERM")}catch{}let a=setTimeout(()=>{try{u.kill("SIGKILL")}catch{}},p.SW.killGraceMs);a.unref&&a.unref()},u.on("error",b=>{x({error:{message:String(b?.message||"").includes("ENOENT")?`opencode CLI not found (${a}). Install OpenCode or set CLI_OPENCODE_BIN.`:`opencode CLI spawn failed: ${b?.message}`}})});let C=a=>{let b;try{b=JSON.parse(a)}catch{return}if(b&&"object"==typeof b){var c;if("error"===b.type){let a,d=(c=b,{message:(a=c?.error?.data||c?.error||{}).message||c?.error?.message||a.name||"OpenCode CLI reported an error",status:a.statusCode||a.status||null});l?.warn?.("OPENCODE",`CLI error event: ${d.message}`),x({error:d});return}if(b.sessionID&&!q.sid&&(q.sid=String(b.sessionID)),"text"===b.type){let a=b.part?.text;"string"==typeof a&&a&&(q.reply+=(q.reply?"\n\n":"")+a,q.roleSent||(w({role:"assistant",content:""}),q.roleSent=!0),w({content:a}));return}if("step_finish"===b.type&&b.part?.tokens){let a=b.part.tokens,c=a.input||0,d=(a.output||0)+(a.reasoning||0);q.usage=q.usage||{prompt_tokens:0,completion_tokens:0,total_tokens:0},q.usage.prompt_tokens+=c,q.usage.completion_tokens+=d,q.usage.total_tokens+=c+d}}},D="";u.stdout.on("data",a=>{let b;for(z(),D+=a.toString("utf8");-1!==(b=D.indexOf("\n"));){let a=D.slice(0,b).trim();if(D=D.slice(b+1),a&&C(a),q.done)return}}),u.stderr.on("data",a=>{v=(v+a.toString("utf8")).slice(-600)}),u.on("close",a=>{D.trim()&&C(D.trim()),q.done||(0===a||q.roleSent?x():x({error:{message:`opencode CLI exited with code ${a}${v.trim()?`: ${v.trim()}`:""}`}}))}),z()}),200,{transformedBody:{transport:"opencode-cli",model:J(i).base,session:f.sid||"new",turns:f.replayed,promptBytes:Buffer.byteLength(f.prompt)}})}({bin:v,args:A,dir:u,key:x,plan:y,turns:t,model:a,signal:g,log:i,attachments:z})},t=(s=(G.get(l)||Promise.resolve()).then(n,n)).catch(()=>void 0),G.set(l,t),t.then(()=>{G.get(l)===t&&G.delete(l)}),s}function M(a){let b=new TextEncoder;return new ReadableStream({start(c){a(a=>{try{c.enqueue(b.encode(a))}catch{}},()=>{try{c.close()}catch{}})}})}function N(a,b,c={}){return Promise.resolve({response:new Response(a,{status:b,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:"opencode-cli://run",headers:{},responseFormat:"openai",...c})}H.unref&&H.unref()}};
@@ -0,0 +1,51 @@
1
+ "use strict";exports.id=7843,exports.ids=[7843],exports.modules={6382:(a,b,c)=>{c.d(b,{$D:()=>x,BB:()=>n,Oj:()=>i,P9:()=>q,QR:()=>l,We:()=>m,Zm:()=>h,aZ:()=>y,cr:()=>t,h3:()=>j,pA:()=>s,rG:()=>p,rx:()=>k,y2:()=>o,yh:()=>u});var d=c(52136),e=c(58028);let f="-agentic",g="-thinking",h=64,i=10237,j=64,k="AmazonCodeWhispererStreamingService.GenerateAssistantResponse",l=new Set([401,403,404]);function m(a){return"google"===a||"github"===a?"arn:aws:codewhisperer:us-east-1:699475941385:profile/EHGA3GRVQMUK":"arn:aws:codewhisperer:us-east-1:638616132270:profile/AAAACCCCXXXX"}function n(a){let{cleanModel:b,override:c}=(0,d.nF)(a);return{model:b,...x(b),thinkingOverride:c}}function o(a,b){if(!b)return a;let c={...a};return"budget"===b.mode?(delete c.output_config,delete c.reasoning_effort,delete c.reasoning,c.thinking={type:"enabled",budget_tokens:b.budget}):c.output_config={...a.output_config||{},effort:"level"===b.mode?b.level:b.mode},c}let p=`
2
+ # CRITICAL: CHUNKED WRITE PROTOCOL (MANDATORY)
3
+
4
+ You MUST follow these rules for ALL file operations. Violation causes server timeouts and task failure.
5
+
6
+ ## ABSOLUTE LIMITS
7
+ - **MAXIMUM 350 LINES** per single write/edit operation - NO EXCEPTIONS
8
+ - **RECOMMENDED 300 LINES** or less for optimal performance
9
+ - **NEVER** write entire files in one operation if >300 lines
10
+
11
+ ## MANDATORY CHUNKED WRITE STRATEGY
12
+
13
+ ### For NEW FILES (>300 lines total):
14
+ 1. FIRST: Write initial chunk (first 250-300 lines) using write_to_file/fsWrite
15
+ 2. THEN: Append remaining content in 250-300 line chunks using file append operations
16
+ 3. REPEAT: Continue appending until complete
17
+
18
+ ### For EDITING EXISTING FILES:
19
+ 1. Use surgical edits (apply_diff/targeted edits) - change ONLY what's needed
20
+ 2. NEVER rewrite entire files - use incremental modifications
21
+ 3. Split large refactors into multiple small, focused edits
22
+
23
+ ### For LARGE CODE GENERATION:
24
+ 1. Generate in logical sections (imports, types, functions separately)
25
+ 2. Write each section as a separate operation
26
+ 3. Use append operations for subsequent sections
27
+
28
+ ## EXAMPLES OF CORRECT BEHAVIOR
29
+
30
+ CORRECT: Writing a 600-line file
31
+ - Operation 1: Write lines 1-300 (initial file creation)
32
+ - Operation 2: Append lines 301-600
33
+
34
+ CORRECT: Editing multiple functions
35
+ - Operation 1: Edit function A
36
+ - Operation 2: Edit function B
37
+ - Operation 3: Edit function C
38
+
39
+ WRONG: Writing 500 lines in single operation -> TIMEOUT
40
+ WRONG: Rewriting entire file to change 5 lines -> TIMEOUT
41
+ WRONG: Generating massive code blocks without chunking -> TIMEOUT
42
+
43
+ ## WHY THIS MATTERS
44
+ - Server has 2-3 minute timeout for operations
45
+ - Large writes exceed timeout and FAIL completely
46
+ - Chunked writes are FASTER and more RELIABLE
47
+ - Failed writes waste time and require retry
48
+
49
+ REMEMBER: When in doubt, write LESS per operation. Multiple small operations > one large operation.
50
+ `.trim();function q(a,b,c){let f=(0,d.sS)(a);if(f)return"none"===f.mode||"level"===f.mode&&"disabled"===f.level?null:"budget"===f.mode?f.budget:"level"===f.mode?(0,e.nE)(f.level)??16e3:16e3;if(b){let a=function(a,b){if(!a)return;if("function"==typeof a.get)return a.get(b);let c=b.toLowerCase();for(let b of Object.keys(a))if(b.toLowerCase()===c)return a[b]}(b,"anthropic-beta");if("string"==typeof a&&a.toLowerCase().includes("interleaved-thinking"))return 16e3}if(function(a){for(let b of Array.isArray(a?.messages)?a.messages:[]){if(!b||"system"!==b.role&&"user"!==b.role)continue;let a=b.content;if("string"==typeof a){if(z(a))return!0}else if(Array.isArray(a))for(let b of a){let a=b?.text;if("string"==typeof a&&z(a))return!0}}return!!("string"==typeof a?.system&&z(a.system))}(a))return 16e3;if("string"==typeof c&&c){let a=c.toLowerCase();if(a.includes("thinking")||a.includes("-reason"))return 16e3}return null}function r(a){let b=a?.output_config?.effort??a?.reasoning_effort??("object"==typeof a?.reasoning?a.reasoning?.effort:null);if("string"!=typeof b)return null;let c=b.toLowerCase();return"max"===c?"xhigh":["low","medium","high","xhigh"].includes(c)?c:null}function s(a){if("string"!=typeof a)return null;let b=a.toLowerCase().replace(/-/g,".");if(/(?:^|[/.])gpt[/.]5[/.]6(?:[/.]|$)/.test(b))return"reasoning";if(!b.includes("claude"))return null;let c=b.match(/(?:^|[/.])claude(?:[/.][a-z]+)*[/.](\d+)(?:[/.](\d+))?(?:[/.]|$)/);if(!c)return null;let[,d,e]=c,f=Number(d),g=void 0===e?null:Number(e);return f<4||4===f&&(null===g||g<=5||null!==g&&g>=1e3)?null:"output_config"}function t(a,b){return"reasoning"===s(b)&&null!==r(a)}function u(a,b){let c=s(b);if(c)return function(a,b="output_config"){let c="reasoning"===b?r(a):function(a){let b=a?.output_config?.effort??a?.reasoning_effort??("object"==typeof a?.reasoning?a.reasoning?.effort:null);if("string"!=typeof b)return null;let c=b.toLowerCase();return"none"===c||"off"===c||"disabled"===c?null:"xhigh"===c||"max"===c?"high":["low","medium","high"].includes(c)?c:null}(a);if(c)return"reasoning"===b?{reasoning:{effort:c}}:{thinking:{type:"adaptive",display:"summarized"},output_config:{effort:c}}}(a,c)}function v(a){return"string"==typeof a&&a.endsWith(f)}function w(a){return"string"==typeof a&&a.endsWith(g)}function x(a){var b,c;let d=a,e=!1,h=!1;return v(d)&&(e=!0,d=v(b=d)?b.slice(0,-f.length):b),w(d)&&(h=!0,d=w(c=d)?c.slice(0,-g.length):c),{upstream:d,agentic:e,thinking:h}}function y(a=16e3){let b=Math.max(1,Math.min(32e3,Number(a)||16e3));return`<thinking_mode>enabled</thinking_mode>
51
+ <max_thinking_length>${b}</max_thinking_length>`}function z(a){return!!a&&!!a.includes("<thinking_mode>")&&(a.includes("<thinking_mode>enabled</thinking_mode>")||a.includes("<thinking_mode>interleaved</thinking_mode>"))}},52136:(a,b,c)=>{c.d(b,{NU:()=>l,kD:()=>i,nF:()=>j,sS:()=>k,z:()=>u});var d=c(24),e=c(72239),f=c(26070),g=c(58028);let h={openai:"openai","openai-responses":"openai","openai-response":"openai",codex:"openai",claude:"claude-budget",gemini:"gemini-budget","gemini-cli":"gemini-budget",vertex:"gemini-budget",antigravity:"gemini-budget",kiro:"kiro",commandcode:"commandcode"};function i(a){if("string"!=typeof a)return a;let b=a.match(/^(.*)\([^()]+\)\s*$/);return b?b[1].trim():a}function j(a){if("string"!=typeof a)return{cleanModel:a,override:null};let b=a.match(/^(.*)\(([^()]+)\)\s*$/);if(!b)return{cleanModel:a,override:null};let c=b[1].trim(),d=b[2].trim().toLowerCase();return"none"===d||"off"===d?{cleanModel:c,override:{mode:"none"}}:"auto"===d?{cleanModel:c,override:{mode:"auto"}}:"ultra"===d?{cleanModel:c,override:{mode:"level",level:d}}:/^\d+$/.test(d)?{cleanModel:c,override:{mode:"budget",budget:Number(d)}}:void 0!==g.Dl[d]?{cleanModel:c,override:{mode:"level",level:d}}:{cleanModel:c,override:null}}function k(a){if(!a||"object"!=typeof a)return null;let b=a.output_config?.effort;if("string"==typeof b&&b){let a=b.toLowerCase();return"none"===a||"off"===a?{mode:"none"}:"auto"===a?{mode:"auto"}:{mode:"level",level:a}}let c=a.reasoning_effort??("object"==typeof a.reasoning?a.reasoning?.effort:null);if("string"==typeof c&&c){let a=c.toLowerCase();return"none"===a||"off"===a?{mode:"none"}:"auto"===a?{mode:"auto"}:{mode:"level",level:a}}let d=a.thinking;if(d&&"object"==typeof d){if("disabled"===d.type)return{mode:"none"};if("adaptive"===d.type||"enabled"===d.type){let a=Number(d.budget_tokens);return Number.isFinite(a)&&a>0?{mode:"budget",budget:a}:{mode:"auto"}}}let e=a.thinkingConfig||a.generationConfig?.thinkingConfig||a.request?.generationConfig?.thinkingConfig;if(e&&"object"==typeof e){if("string"==typeof e.thinkingLevel)return{mode:"level",level:e.thinkingLevel.toLowerCase()};let a=Number(e.thinkingBudget);if(Number.isFinite(a))return 0===a?{mode:"none"}:a<0?{mode:"auto"}:{mode:"budget",budget:a}}if(!1===a.enable_thinking)return{mode:"none"};if(!0===a.enable_thinking){let b=Number(a.thinking_budget);return Number.isFinite(b)&&b>0?{mode:"budget",budget:b}:{mode:"auto"}}return null}let l=k,m=new Set(["gemini-level","gemini-budget","claude-budget","claude-adaptive","kiro"]);function n(a,b){let c;if("budget"===a.mode)c=a.budget;else if("level"===a.mode)c=(0,g.nE)(a.level);else if("auto"===a.mode)return -1;if(Number.isFinite(c))return b&&(null!=b.min&&c<b.min&&(c=b.min),null!=b.max&&c>b.max&&(c=b.max)),c}function o(a){return"level"===a.mode?a.level:"budget"===a.mode?(0,g.vz)(a.budget)||"medium":"auto"===a.mode?"auto":null}let p={minimal:4096,low:8192,medium:16384,high:65535};function q(a){return a.request&&"object"==typeof a.request?(a.request.generationConfig&&"object"==typeof a.request.generationConfig||(a.request.generationConfig={}),a.request.generationConfig):(a.generationConfig&&"object"==typeof a.generationConfig||(a.generationConfig={}),a.generationConfig)}function r(a,b){q(a).thinkingConfig=b}function s(a,b,c){let d=Number.isFinite(c?.maxOutput)?c.maxOutput:b,e=Math.min(b,d),f=q(a),g=Number(f.maxOutputTokens);(!Number.isFinite(g)||g<e)&&(f.maxOutputTokens=e)}function t(a){delete a.thinking,delete a.reasoning_effort,delete a.reasoning,delete a.thinkingConfig,delete a.enable_thinking,delete a.thinking_budget,delete a.output_config,a.generationConfig&&delete a.generationConfig.thinkingConfig,a.request?.generationConfig&&delete a.request.generationConfig.thinkingConfig,a.params&&"object"==typeof a.params&&(delete a.params.reasoning_effort,delete a.params.thinking)}function u(a,b,c,i=null,l){if(!c||"object"!=typeof c)return c;let{cleanModel:q,override:v}=j(b),w=v||l||k(c),x=(0,d.getCapabilitiesForModel)(i,q);if(!x.reasoning)return t(c),c;if(!w)return c;let y=function(a,b,c){if("commandcode"===a)return"commandcode";let e=c?f.xq[c]?.thinkingFormat:null;if(e)return e;let g=(0,d.getCapabilitiesForModel)(c,b);return g.thinkingFormat&&!(("openai"===a||"openai-responses"===a)&&m.has(g.thinkingFormat))?g.thinkingFormat:h[a]||"openai"}(a,q,i),z=(0,e.k)(i,q),A="string"==typeof c.thinking?.display?c.thinking.display:void 0;return t(c),!function(a,b,c,d,e,f){var h;let i="none"===c.mode,j=!1!==d.thinkingCanDisable,k=i&&!j?{mode:"level",level:"minimal"}:c;switch(a){case"openai":{if(i&&j){b.reasoning_effort="none";break}let a=o(k);a&&(b.reasoning_effort="max"!==a&&"ultra"!==a||e?.includes(a)?a:"ultra"===a&&e?.includes("max")?"max":"xhigh");break}case"claude-adaptive":{if(i&&j){b.thinking={type:"disabled"};break}j?b.thinking={type:"adaptive",...f?{display:f}:{}}:delete b.thinking;let a=o(k);b.output_config={effort:"xhigh"===a||"auto"===a?"high":a};break}case"claude-budget":{if(i&&j){b.thinking={type:"disabled"};break}let a=n(k,d.thinkingRange);b.thinking=-1===a?{type:"enabled",...f?{display:f}:{}}:{type:"enabled",budget_tokens:a||8192,...f?{display:f}:{}};break}case"gemini-level":{let a,c=i?"minimal":(a="auto"===k.mode?"high":o(k)||"high",(0,g.wd)(a));r(b,{thinkingLevel:c,includeThoughts:"minimal"!==c}),s(b,p[c]||p.high,d);break}case"gemini-budget":{if(i&&j){r(b,{thinkingBudget:0,includeThoughts:!1});break}let a=n(k,d.thinkingRange);r(b,{thinkingBudget:a??-1,includeThoughts:!0}),s(b,-1!==(h=a??-1)&&Number.isFinite(h)?h<=1024?8192:h<=8192?16384:h<=24576?32768:65535:32768,d);break}case"zai":if(i&&j){b.enable_thinking=!1,delete b.thinking;break}if(b.thinking={type:"enabled"},d.thinkingEffortSupported){let a=o(k);b.reasoning_effort="low"===a||"minimal"===a?"low":"high"===a||"medium"===a?"high":"max"}break;case"qwen":{if(i&&j){b.enable_thinking=!1;break}b.enable_thinking=!0;let a=n(k,d.thinkingRange);Number.isFinite(a)&&a>0&&(b.thinking_budget=a);break}case"deepseek":{if(i&&j){b.thinking={type:"disabled"};break}b.thinking={type:"enabled"};let a=o(k);b.reasoning_effort="xhigh"===a||"max"===a?"max":"high";break}case"kimi":{let a;if(i&&j){b.thinking={type:"disabled"};break}let c="auto"===(a=o(k))?"high":"minimal"===a?"low":"xhigh"===a?"max":["low","medium","high","max"].includes(a)?a:null;c&&(b.reasoning_effort=c);break}case"minimax":b.thinking={type:i&&j?"disabled":"adaptive"};break;case"hunyuan":{if(i&&j){b.thinking={type:"disabled"};break}let a=n(k,d.thinkingRange);b.thinking=-1===a?{type:"enabled"}:{type:"enabled",budget_tokens:a||8192};break}case"step":{if(i&&j)break;let a=o(k);a&&(b.reasoning_effort="xhigh"===a||"max"===a?"high":a);break}case"tokenrouter":{if(i||"auto"===k.mode)break;let a=o(k);a&&(b.reasoning_effort=a);break}case"kiro":break;case"commandcode":{if(b.params&&"object"==typeof b.params||(b.params={}),i&&j){delete b.params.reasoning_effort;break}let a=o(k);a&&(b.params.reasoning_effort=a)}}}(y,c,w,x,z,A),c}},58028:(a,b,c)=>{c.d(b,{Dl:()=>d,Vp:()=>h,nE:()=>e,vz:()=>g,wd:()=>f});let d={none:0,minimal:512,low:1024,medium:8192,high:24576,xhigh:32768,max:128e3};function e(a){if(a)return d[String(a).toLowerCase()]}function f(a){let b=String(a).toLowerCase().trim();return"none"===b||"off"===b?"minimal":"xhigh"===b||"max"===b?"high":b}function g(a){let b=Number(a);return!b||b<=0?null:b<=768?"minimal":b<=4096?"low":b<=16384?"medium":b<=28672?"high":"xhigh"}function h(a){return!a||a<=0?null:a<=2048?"low":a<=16384?"medium":"high"}},72239:(a,b,c)=>{c.d(b,{k:()=>m});var d=c(24),e=c(58920),f=c(6382);let g=["none","low","medium","high"],h=["none","thinking"],i=["none","low","medium","high","max"],j={openai:["none","minimal","low","medium","high","xhigh"],"claude-adaptive":i,"claude-budget":["none","low","medium","high","xhigh","max"],"gemini-level":["minimal","low","medium","high"],"gemini-budget":g,zai:h,qwen:g,kimi:i,deepseek:["none","high","max"],commandcode:["none","low","medium","high","xhigh","max"],minimax:h,hunyuan:g,step:g},k=["none","minimal","low","medium","high","xhigh","max"],l=[{provider:"codex",pattern:"*gpt-6*",levels:k},{provider:"codex",pattern:"*gpt-5.6-sol*",levels:[...k,"ultra"]},{provider:"codex",pattern:"*gpt-5.6-terra*",levels:[...k,"ultra"]},{provider:"codex",pattern:"*gpt-5.6-luna*",levels:k},{pattern:"*codex*",levels:["low","medium","high","xhigh"]},{pattern:"*deepseek-v4.*",levels:["none","low","medium","high","xhigh","max"]},{provider:"codebuddy-cn",pattern:"glm-5.3*",levels:["low","high","max"]},{provider:"codebuddy-cn",pattern:"glm-5.2",levels:["high","xhigh"]},{provider:"codebuddy-cn",pattern:"deepseek-v4*",levels:["low","high","xhigh"]},{provider:"codebuddy-cn",pattern:"hy3*",levels:["low","high"]},{provider:"codebuddy-cn",pattern:"hy4*",levels:["high"]},{provider:"codebuddy-intl",pattern:"deepseek-v4*",levels:["low","high","xhigh"]}];function m(a,b){if("kiro"===a&&null===(0,f.pA)(b))return null;let c=(0,d.getCapabilitiesForModel)(a,b);if(!c.reasoning)return null;let h=l.find(c=>(!c.provider||c.provider===a)&&(0,e.gH)(c.pattern,b)),i=h?.levels||j[c.thinkingFormat]||g;return!1===c.thinkingCanDisable&&(i=i.filter(a=>"none"!==a)),i}}};