zevairouter 1.0.126 → 1.0.128

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 (1244) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +3 -4
  3. package/README.zh-CN.md +1 -1
  4. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  5. package/cli/app/.next-cli-build/app-path-routes-manifest.json +11 -21
  6. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  7. package/cli/app/.next-cli-build/required-server-files.json +0 -2
  8. package/cli/app/.next-cli-build/routes-manifest.json +0 -74
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +2 -2
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  85. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  88. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  91. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  92. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  93. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  95. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  96. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  99. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  100. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  101. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  102. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  103. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  104. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  105. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  106. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  107. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  108. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
  126. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  200. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
  214. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  280. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +2 -2
  344. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  350. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  352. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  356. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  358. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  360. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  362. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  364. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  366. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  368. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  370. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  376. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  378. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  385. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  391. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  393. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  396. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  397. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  399. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  401. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  402. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  403. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  414. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  420. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  426. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  428. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  429. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  435. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  439. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  442. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  445. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  454. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  456. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  459. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  460. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  461. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  467. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  474. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  478. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  481. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  482. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  483. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  487. package/cli/app/.next-cli-build/server/app/callback/page.js +2 -2
  488. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  489. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  490. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  491. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  492. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  493. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  494. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  495. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  496. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  497. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  498. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  499. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  500. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  501. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  502. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  503. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  504. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  505. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  506. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  507. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  508. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  509. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  510. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  511. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  512. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  513. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  514. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  515. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  516. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  517. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  518. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  519. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  520. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  521. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  522. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  523. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  524. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  525. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  526. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  527. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  528. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  529. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  530. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  531. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  532. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  533. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  534. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  535. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  536. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  537. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  538. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  539. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  540. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  541. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  542. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  543. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  544. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  545. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  546. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  547. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  548. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  549. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  550. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  551. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  552. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  553. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  554. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  555. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  556. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  557. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  558. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  559. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  560. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  561. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  562. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  563. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  564. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  565. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  566. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  567. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  568. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  569. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  570. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  571. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  572. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  573. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  574. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  575. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  576. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  577. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  578. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  579. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  580. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  581. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  582. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  583. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  584. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  585. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  586. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  587. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  588. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  589. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  590. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  591. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  592. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  593. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  594. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  595. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  596. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  597. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  598. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  599. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  600. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  601. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  602. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  603. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  604. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  605. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  606. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  607. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  608. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  609. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  610. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  611. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  612. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  613. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  614. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  615. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  616. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  617. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  618. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  619. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  620. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  621. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  622. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  623. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  624. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  625. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  626. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  627. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  628. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  629. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  630. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  631. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  632. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  633. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  634. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  635. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  636. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  637. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  638. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  639. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  640. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  641. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  642. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  643. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  644. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  645. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  646. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  647. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  648. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  649. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  650. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  651. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  652. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  653. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  654. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  655. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  656. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  657. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  658. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  659. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  660. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  661. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  662. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  663. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  664. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  665. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  666. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  667. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  668. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  669. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  670. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  671. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  672. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  673. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  674. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  675. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  676. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  677. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  678. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  679. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  680. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  681. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  682. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  683. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  684. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  685. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  686. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  687. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  688. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  689. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  690. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  691. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  692. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  693. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  694. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  695. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  696. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  697. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  698. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  699. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  700. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  701. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  702. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  703. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  704. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  705. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  706. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  707. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  708. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  709. package/cli/app/.next-cli-build/server/app/landing/page.js +2 -2
  710. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  711. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  712. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  713. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  714. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  715. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  716. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  717. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  718. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  719. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  720. package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
  721. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  722. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  723. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  724. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  725. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  726. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  727. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  728. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  729. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  730. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  731. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  732. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  733. package/cli/app/.next-cli-build/server/app/page.js +2 -2
  734. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  735. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  736. package/cli/app/.next-cli-build/server/app-paths-manifest.json +11 -21
  737. package/cli/app/.next-cli-build/server/chunks/1019.js +1 -1
  738. package/cli/app/.next-cli-build/server/chunks/1671.js +1 -1
  739. package/cli/app/.next-cli-build/server/chunks/2693.js +1 -1
  740. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  741. package/cli/app/.next-cli-build/server/chunks/318.js +1 -1
  742. package/cli/app/.next-cli-build/server/chunks/3331.js +1 -1
  743. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  744. package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
  745. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  746. package/cli/app/.next-cli-build/server/chunks/5000.js +2 -2
  747. package/cli/app/.next-cli-build/server/chunks/5373.js +3 -3
  748. package/cli/app/.next-cli-build/server/chunks/5949.js +2 -2
  749. package/cli/app/.next-cli-build/server/chunks/6652.js +1 -1
  750. package/cli/app/.next-cli-build/server/chunks/7774.js +2 -2
  751. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -1
  752. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -1
  753. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  754. package/cli/app/.next-cli-build/server/chunks/9609.js +1 -1
  755. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  756. package/cli/app/.next-cli-build/server/middleware.js +4 -4
  757. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  758. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  759. package/cli/app/.next-cli-build/static/UWLJAHSkQ3J2j71dIudYw/_buildManifest.js +1 -0
  760. package/cli/app/.next-cli-build/static/chunks/{5497-7d1ff94cc58ff88b.js → 5497-3ff7d657e7dd5401.js} +1 -1
  761. package/cli/app/.next-cli-build/static/chunks/{85-ce113d56030497e0.js → 85-3e2ad73a98f1cfa2.js} +1 -1
  762. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-915c9a5b78eafa55.js +1 -0
  763. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-915c9a5b78eafa55.js +1 -0
  764. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-915c9a5b78eafa55.js +1 -0
  765. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-915c9a5b78eafa55.js +1 -0
  766. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-915c9a5b78eafa55.js +1 -0
  767. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-915c9a5b78eafa55.js +1 -0
  768. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-915c9a5b78eafa55.js +1 -0
  769. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-915c9a5b78eafa55.js +1 -0
  770. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-915c9a5b78eafa55.js +1 -0
  771. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-915c9a5b78eafa55.js +1 -0
  772. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-915c9a5b78eafa55.js +1 -0
  773. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-915c9a5b78eafa55.js +1 -0
  774. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-915c9a5b78eafa55.js +1 -0
  775. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-915c9a5b78eafa55.js +1 -0
  776. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-915c9a5b78eafa55.js +1 -0
  777. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-915c9a5b78eafa55.js +1 -0
  778. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-915c9a5b78eafa55.js +1 -0
  779. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-915c9a5b78eafa55.js +1 -0
  780. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-915c9a5b78eafa55.js +1 -0
  781. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-915c9a5b78eafa55.js +1 -0
  782. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-915c9a5b78eafa55.js +1 -0
  783. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-915c9a5b78eafa55.js +1 -0
  784. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-915c9a5b78eafa55.js +1 -0
  785. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-915c9a5b78eafa55.js +1 -0
  786. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-915c9a5b78eafa55.js +1 -0
  787. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-915c9a5b78eafa55.js +1 -0
  788. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-915c9a5b78eafa55.js +1 -0
  789. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-915c9a5b78eafa55.js +1 -0
  790. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-915c9a5b78eafa55.js +1 -0
  791. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-915c9a5b78eafa55.js +1 -0
  792. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-915c9a5b78eafa55.js +1 -0
  793. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-915c9a5b78eafa55.js +1 -0
  794. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-915c9a5b78eafa55.js +1 -0
  795. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-915c9a5b78eafa55.js +1 -0
  796. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-915c9a5b78eafa55.js +1 -0
  797. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-915c9a5b78eafa55.js +1 -0
  798. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-915c9a5b78eafa55.js +1 -0
  799. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-915c9a5b78eafa55.js +1 -0
  800. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-915c9a5b78eafa55.js +1 -0
  801. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-915c9a5b78eafa55.js +1 -0
  802. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-915c9a5b78eafa55.js +1 -0
  803. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-915c9a5b78eafa55.js +1 -0
  804. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-915c9a5b78eafa55.js +1 -0
  805. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-915c9a5b78eafa55.js +1 -0
  806. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-915c9a5b78eafa55.js +1 -0
  807. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-915c9a5b78eafa55.js +1 -0
  808. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-915c9a5b78eafa55.js +1 -0
  809. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-915c9a5b78eafa55.js +1 -0
  810. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-915c9a5b78eafa55.js +1 -0
  811. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-915c9a5b78eafa55.js +1 -0
  812. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-915c9a5b78eafa55.js +1 -0
  813. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-915c9a5b78eafa55.js +1 -0
  814. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-915c9a5b78eafa55.js +1 -0
  815. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-915c9a5b78eafa55.js +1 -0
  816. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-915c9a5b78eafa55.js +1 -0
  817. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-915c9a5b78eafa55.js +1 -0
  818. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-915c9a5b78eafa55.js +1 -0
  819. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-915c9a5b78eafa55.js +1 -0
  820. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-915c9a5b78eafa55.js +1 -0
  821. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-915c9a5b78eafa55.js +1 -0
  822. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-915c9a5b78eafa55.js +1 -0
  823. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +1 -0
  824. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +1 -0
  825. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-915c9a5b78eafa55.js +1 -0
  826. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-915c9a5b78eafa55.js +1 -0
  827. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-915c9a5b78eafa55.js +1 -0
  828. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +1 -0
  829. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +1 -0
  830. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-915c9a5b78eafa55.js +1 -0
  831. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-915c9a5b78eafa55.js +1 -0
  832. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-915c9a5b78eafa55.js +1 -0
  833. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +1 -0
  834. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +1 -0
  835. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-915c9a5b78eafa55.js +1 -0
  836. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-915c9a5b78eafa55.js +1 -0
  837. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-915c9a5b78eafa55.js +1 -0
  838. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-915c9a5b78eafa55.js +1 -0
  839. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-915c9a5b78eafa55.js +1 -0
  840. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +1 -0
  841. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +1 -0
  842. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-915c9a5b78eafa55.js +1 -0
  843. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-915c9a5b78eafa55.js +1 -0
  844. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-915c9a5b78eafa55.js +1 -0
  845. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-915c9a5b78eafa55.js +1 -0
  846. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-915c9a5b78eafa55.js +1 -0
  847. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-915c9a5b78eafa55.js +1 -0
  848. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-915c9a5b78eafa55.js +1 -0
  849. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-915c9a5b78eafa55.js +1 -0
  850. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-915c9a5b78eafa55.js +1 -0
  851. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-915c9a5b78eafa55.js +1 -0
  852. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-915c9a5b78eafa55.js +1 -0
  853. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +1 -0
  854. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +1 -0
  855. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-915c9a5b78eafa55.js +1 -0
  856. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-915c9a5b78eafa55.js +1 -0
  857. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-915c9a5b78eafa55.js +1 -0
  858. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-915c9a5b78eafa55.js +1 -0
  859. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-915c9a5b78eafa55.js +1 -0
  860. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-915c9a5b78eafa55.js +1 -0
  861. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +1 -0
  862. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +1 -0
  863. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-915c9a5b78eafa55.js +1 -0
  864. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-915c9a5b78eafa55.js +1 -0
  865. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-915c9a5b78eafa55.js +1 -0
  866. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-915c9a5b78eafa55.js +1 -0
  867. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-915c9a5b78eafa55.js +1 -0
  868. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-915c9a5b78eafa55.js +1 -0
  869. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-915c9a5b78eafa55.js +1 -0
  870. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-915c9a5b78eafa55.js +1 -0
  871. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-915c9a5b78eafa55.js +1 -0
  872. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-915c9a5b78eafa55.js +1 -0
  873. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-915c9a5b78eafa55.js +1 -0
  874. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-915c9a5b78eafa55.js +1 -0
  875. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-915c9a5b78eafa55.js +1 -0
  876. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-915c9a5b78eafa55.js +1 -0
  877. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-915c9a5b78eafa55.js +1 -0
  878. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-915c9a5b78eafa55.js +1 -0
  879. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-915c9a5b78eafa55.js +1 -0
  880. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-915c9a5b78eafa55.js +1 -0
  881. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-915c9a5b78eafa55.js +1 -0
  882. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-915c9a5b78eafa55.js +1 -0
  883. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-915c9a5b78eafa55.js +1 -0
  884. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-915c9a5b78eafa55.js +1 -0
  885. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-915c9a5b78eafa55.js +1 -0
  886. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-915c9a5b78eafa55.js +1 -0
  887. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-915c9a5b78eafa55.js +1 -0
  888. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-915c9a5b78eafa55.js +1 -0
  889. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-915c9a5b78eafa55.js +1 -0
  890. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-915c9a5b78eafa55.js +1 -0
  891. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-915c9a5b78eafa55.js +1 -0
  892. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-915c9a5b78eafa55.js +1 -0
  893. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-915c9a5b78eafa55.js +1 -0
  894. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-915c9a5b78eafa55.js +1 -0
  895. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-915c9a5b78eafa55.js +1 -0
  896. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-915c9a5b78eafa55.js +1 -0
  897. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-915c9a5b78eafa55.js +1 -0
  898. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-915c9a5b78eafa55.js +1 -0
  899. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-915c9a5b78eafa55.js +1 -0
  900. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-915c9a5b78eafa55.js +1 -0
  901. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-915c9a5b78eafa55.js +1 -0
  902. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-915c9a5b78eafa55.js +1 -0
  903. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-915c9a5b78eafa55.js +1 -0
  904. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-915c9a5b78eafa55.js +1 -0
  905. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-915c9a5b78eafa55.js +1 -0
  906. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-915c9a5b78eafa55.js +1 -0
  907. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-915c9a5b78eafa55.js +1 -0
  908. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-915c9a5b78eafa55.js +1 -0
  909. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-915c9a5b78eafa55.js +1 -0
  910. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-915c9a5b78eafa55.js +1 -0
  911. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-915c9a5b78eafa55.js +1 -0
  912. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-915c9a5b78eafa55.js +1 -0
  913. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-915c9a5b78eafa55.js +1 -0
  914. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-915c9a5b78eafa55.js +1 -0
  915. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-915c9a5b78eafa55.js +1 -0
  916. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-915c9a5b78eafa55.js +1 -0
  917. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-915c9a5b78eafa55.js +1 -0
  918. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-915c9a5b78eafa55.js +1 -0
  919. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-915c9a5b78eafa55.js +1 -0
  920. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-915c9a5b78eafa55.js +1 -0
  921. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-915c9a5b78eafa55.js +1 -0
  922. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-915c9a5b78eafa55.js +1 -0
  923. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-915c9a5b78eafa55.js +1 -0
  924. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-915c9a5b78eafa55.js +1 -0
  925. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-915c9a5b78eafa55.js +1 -0
  926. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-915c9a5b78eafa55.js +1 -0
  927. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-915c9a5b78eafa55.js +1 -0
  928. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-915c9a5b78eafa55.js +1 -0
  929. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-915c9a5b78eafa55.js +1 -0
  930. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-915c9a5b78eafa55.js +1 -0
  931. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-915c9a5b78eafa55.js +1 -0
  932. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-915c9a5b78eafa55.js +1 -0
  933. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-915c9a5b78eafa55.js +1 -0
  934. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-915c9a5b78eafa55.js +1 -0
  935. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-915c9a5b78eafa55.js +1 -0
  936. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-915c9a5b78eafa55.js +1 -0
  937. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-915c9a5b78eafa55.js +1 -0
  938. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-915c9a5b78eafa55.js +1 -0
  939. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-915c9a5b78eafa55.js +1 -0
  940. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-915c9a5b78eafa55.js +1 -0
  941. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-915c9a5b78eafa55.js +1 -0
  942. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-915c9a5b78eafa55.js +1 -0
  943. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-915c9a5b78eafa55.js +1 -0
  944. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-915c9a5b78eafa55.js +1 -0
  945. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-915c9a5b78eafa55.js +1 -0
  946. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-915c9a5b78eafa55.js +1 -0
  947. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-915c9a5b78eafa55.js +1 -0
  948. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-915c9a5b78eafa55.js +1 -0
  949. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-915c9a5b78eafa55.js +1 -0
  950. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-915c9a5b78eafa55.js +1 -0
  951. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-915c9a5b78eafa55.js +1 -0
  952. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-915c9a5b78eafa55.js +1 -0
  953. package/cli/app/.next-cli-build/static/chunks/app/page-915c9a5b78eafa55.js +1 -0
  954. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-915c9a5b78eafa55.js +1 -0
  955. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-915c9a5b78eafa55.js +1 -0
  956. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-915c9a5b78eafa55.js +1 -0
  957. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-915c9a5b78eafa55.js +1 -0
  958. package/cli/app/CHANGELOG.md +11 -0
  959. package/cli/app/cli/hooks/playwrightRuntime.js +1 -1
  960. package/cli/app/cli/hooks/sqliteRuntime.js +2 -2
  961. package/cli/app/package.json +1 -1
  962. package/cli/app/server.js +1 -1
  963. package/cli/app/src/lib/oauth/services/displayEnv.js +2 -2
  964. package/cli/hooks/playwrightRuntime.js +1 -1
  965. package/cli/hooks/sqliteRuntime.js +2 -2
  966. package/cli/package.json +1 -1
  967. package/next.config.mjs +1 -5
  968. package/package.json +1 -1
  969. package/src/app/api/oauth/antigravity/bulk-import/route.js +0 -1
  970. package/src/app/api/oauth/cloudflare-ai/bulk-import/route.js +0 -1
  971. package/src/app/api/oauth/codebuddy/bulk-import/route.js +0 -1
  972. package/src/app/api/oauth/codebuddy-cn/bulk-import/route.js +0 -1
  973. package/src/app/api/oauth/kiro/bulk-import/route.js +0 -1
  974. package/src/app/api/oauth/qoder/bulk-import/route.js +0 -1
  975. package/src/lib/oauth/services/antigravityBulkImportManager.js +1 -10
  976. package/src/lib/oauth/services/bulkImportBrowserEngine.js +3 -261
  977. package/src/lib/oauth/services/cloudflareAiBulkImportManager.js +1 -8
  978. package/src/lib/oauth/services/codebuddyCnBulkImportManager.js +7 -16
  979. package/src/lib/oauth/services/codebuddyCnPhoneAutomation.js +2 -2
  980. package/src/lib/oauth/services/displayEnv.js +2 -2
  981. package/src/lib/oauth/services/kiroBulkImportManager.js +3 -30
  982. package/src/lib/oauth/services/kiroGoogleAutomation.js +6 -7
  983. package/src/lib/oauth/services/qoderBulkImportManager.js +3 -3
  984. package/src/lib/oauth/services/tempmailClient.js +1 -1
  985. package/src/lib/systemSpecs.js +1 -1
  986. package/src/shared/components/CodeBuddyCnPhoneRegisterModal.js +6 -20
  987. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js +0 -1
  988. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +0 -1
  989. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +0 -1
  990. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js +0 -1
  991. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +0 -1
  992. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +0 -1
  993. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js +0 -1
  994. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +0 -1
  995. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route_client-reference-manifest.js +0 -1
  996. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js +0 -1
  997. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +0 -1
  998. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route_client-reference-manifest.js +0 -1
  999. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js +0 -1
  1000. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +0 -1
  1001. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route_client-reference-manifest.js +0 -1
  1002. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +0 -1
  1003. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +0 -1
  1004. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +0 -1
  1005. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +0 -1
  1006. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +0 -1
  1007. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +0 -1
  1008. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +0 -1
  1009. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +0 -1
  1010. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route_client-reference-manifest.js +0 -1
  1011. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +0 -1
  1012. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +0 -1
  1013. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route_client-reference-manifest.js +0 -1
  1014. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +0 -1
  1015. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +0 -1
  1016. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route_client-reference-manifest.js +0 -1
  1017. package/cli/app/.next-cli-build/server/chunks/1396.js +0 -1
  1018. package/cli/app/.next-cli-build/server/chunks/2130.js +0 -1
  1019. package/cli/app/.next-cli-build/server/chunks/3487.js +0 -1
  1020. package/cli/app/.next-cli-build/static/Z0U80pm6SJ5xtgUbMnxKJ/_buildManifest.js +0 -1
  1021. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-0958b3b629c68bd2.js +0 -1
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-0958b3b629c68bd2.js +0 -1
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-0958b3b629c68bd2.js +0 -1
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-0958b3b629c68bd2.js +0 -1
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-0958b3b629c68bd2.js +0 -1
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-0958b3b629c68bd2.js +0 -1
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-0958b3b629c68bd2.js +0 -1
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-0958b3b629c68bd2.js +0 -1
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-0958b3b629c68bd2.js +0 -1
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-0958b3b629c68bd2.js +0 -1
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-0958b3b629c68bd2.js +0 -1
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-0958b3b629c68bd2.js +0 -1
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-0958b3b629c68bd2.js +0 -1
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-0958b3b629c68bd2.js +0 -1
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-0958b3b629c68bd2.js +0 -1
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-0958b3b629c68bd2.js +0 -1
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-0958b3b629c68bd2.js +0 -1
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-0958b3b629c68bd2.js +0 -1
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-0958b3b629c68bd2.js +0 -1
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-0958b3b629c68bd2.js +0 -1
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-0958b3b629c68bd2.js +0 -1
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-0958b3b629c68bd2.js +0 -1
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-0958b3b629c68bd2.js +0 -1
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-0958b3b629c68bd2.js +0 -1
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-0958b3b629c68bd2.js +0 -1
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-0958b3b629c68bd2.js +0 -1
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-0958b3b629c68bd2.js +0 -1
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-0958b3b629c68bd2.js +0 -1
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-0958b3b629c68bd2.js +0 -1
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-0958b3b629c68bd2.js +0 -1
  1051. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-0958b3b629c68bd2.js +0 -1
  1052. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-0958b3b629c68bd2.js +0 -1
  1053. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-0958b3b629c68bd2.js +0 -1
  1054. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-0958b3b629c68bd2.js +0 -1
  1055. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-0958b3b629c68bd2.js +0 -1
  1056. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-0958b3b629c68bd2.js +0 -1
  1057. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-0958b3b629c68bd2.js +0 -1
  1058. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-0958b3b629c68bd2.js +0 -1
  1059. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-0958b3b629c68bd2.js +0 -1
  1060. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-0958b3b629c68bd2.js +0 -1
  1061. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-0958b3b629c68bd2.js +0 -1
  1062. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-0958b3b629c68bd2.js +0 -1
  1063. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-0958b3b629c68bd2.js +0 -1
  1064. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-0958b3b629c68bd2.js +0 -1
  1065. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-0958b3b629c68bd2.js +0 -1
  1066. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-0958b3b629c68bd2.js +0 -1
  1067. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-0958b3b629c68bd2.js +0 -1
  1068. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-0958b3b629c68bd2.js +0 -1
  1069. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-0958b3b629c68bd2.js +0 -1
  1070. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-0958b3b629c68bd2.js +0 -1
  1071. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-0958b3b629c68bd2.js +0 -1
  1072. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-0958b3b629c68bd2.js +0 -1
  1073. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-0958b3b629c68bd2.js +0 -1
  1074. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-0958b3b629c68bd2.js +0 -1
  1075. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-0958b3b629c68bd2.js +0 -1
  1076. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-0958b3b629c68bd2.js +0 -1
  1077. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-0958b3b629c68bd2.js +0 -1
  1078. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-0958b3b629c68bd2.js +0 -1
  1079. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-0958b3b629c68bd2.js +0 -1
  1080. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-0958b3b629c68bd2.js +0 -1
  1081. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-0958b3b629c68bd2.js +0 -1
  1082. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1083. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1084. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1085. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1086. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1087. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1088. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1089. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1090. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1091. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1092. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1093. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1094. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1095. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1096. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1097. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1098. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1099. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1100. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1101. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1102. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-0958b3b629c68bd2.js +0 -1
  1103. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-0958b3b629c68bd2.js +0 -1
  1104. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1105. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1106. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1107. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1108. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1109. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-0958b3b629c68bd2.js +0 -1
  1110. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-0958b3b629c68bd2.js +0 -1
  1111. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-0958b3b629c68bd2.js +0 -1
  1112. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-0958b3b629c68bd2.js +0 -1
  1113. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-0958b3b629c68bd2.js +0 -1
  1114. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-0958b3b629c68bd2.js +0 -1
  1115. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1116. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1117. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1118. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1119. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1120. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-0958b3b629c68bd2.js +0 -1
  1121. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-0958b3b629c68bd2.js +0 -1
  1122. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1123. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1124. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1125. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1126. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1127. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-0958b3b629c68bd2.js +0 -1
  1128. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-0958b3b629c68bd2.js +0 -1
  1129. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-0958b3b629c68bd2.js +0 -1
  1130. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +0 -1
  1131. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +0 -1
  1132. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-0958b3b629c68bd2.js +0 -1
  1133. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-0958b3b629c68bd2.js +0 -1
  1134. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-0958b3b629c68bd2.js +0 -1
  1135. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-0958b3b629c68bd2.js +0 -1
  1136. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-0958b3b629c68bd2.js +0 -1
  1137. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-0958b3b629c68bd2.js +0 -1
  1138. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-0958b3b629c68bd2.js +0 -1
  1139. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-0958b3b629c68bd2.js +0 -1
  1140. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-0958b3b629c68bd2.js +0 -1
  1141. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-0958b3b629c68bd2.js +0 -1
  1142. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-0958b3b629c68bd2.js +0 -1
  1143. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-0958b3b629c68bd2.js +0 -1
  1144. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-0958b3b629c68bd2.js +0 -1
  1145. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-0958b3b629c68bd2.js +0 -1
  1146. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-0958b3b629c68bd2.js +0 -1
  1147. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-0958b3b629c68bd2.js +0 -1
  1148. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-0958b3b629c68bd2.js +0 -1
  1149. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-0958b3b629c68bd2.js +0 -1
  1150. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-0958b3b629c68bd2.js +0 -1
  1151. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-0958b3b629c68bd2.js +0 -1
  1152. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-0958b3b629c68bd2.js +0 -1
  1153. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-0958b3b629c68bd2.js +0 -1
  1154. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-0958b3b629c68bd2.js +0 -1
  1155. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-0958b3b629c68bd2.js +0 -1
  1156. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-0958b3b629c68bd2.js +0 -1
  1157. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-0958b3b629c68bd2.js +0 -1
  1158. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-0958b3b629c68bd2.js +0 -1
  1159. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-0958b3b629c68bd2.js +0 -1
  1160. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-0958b3b629c68bd2.js +0 -1
  1161. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-0958b3b629c68bd2.js +0 -1
  1162. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-0958b3b629c68bd2.js +0 -1
  1163. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-0958b3b629c68bd2.js +0 -1
  1164. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-0958b3b629c68bd2.js +0 -1
  1165. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-0958b3b629c68bd2.js +0 -1
  1166. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-0958b3b629c68bd2.js +0 -1
  1167. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-0958b3b629c68bd2.js +0 -1
  1168. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-0958b3b629c68bd2.js +0 -1
  1169. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-0958b3b629c68bd2.js +0 -1
  1170. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-0958b3b629c68bd2.js +0 -1
  1171. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-0958b3b629c68bd2.js +0 -1
  1172. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-0958b3b629c68bd2.js +0 -1
  1173. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-0958b3b629c68bd2.js +0 -1
  1174. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-0958b3b629c68bd2.js +0 -1
  1175. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-0958b3b629c68bd2.js +0 -1
  1176. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-0958b3b629c68bd2.js +0 -1
  1177. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-0958b3b629c68bd2.js +0 -1
  1178. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-0958b3b629c68bd2.js +0 -1
  1179. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-0958b3b629c68bd2.js +0 -1
  1180. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-0958b3b629c68bd2.js +0 -1
  1181. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-0958b3b629c68bd2.js +0 -1
  1182. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-0958b3b629c68bd2.js +0 -1
  1183. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-0958b3b629c68bd2.js +0 -1
  1184. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-0958b3b629c68bd2.js +0 -1
  1185. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-0958b3b629c68bd2.js +0 -1
  1186. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-0958b3b629c68bd2.js +0 -1
  1187. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-0958b3b629c68bd2.js +0 -1
  1188. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-0958b3b629c68bd2.js +0 -1
  1189. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-0958b3b629c68bd2.js +0 -1
  1190. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-0958b3b629c68bd2.js +0 -1
  1191. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-0958b3b629c68bd2.js +0 -1
  1192. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-0958b3b629c68bd2.js +0 -1
  1193. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-0958b3b629c68bd2.js +0 -1
  1194. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-0958b3b629c68bd2.js +0 -1
  1195. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-0958b3b629c68bd2.js +0 -1
  1196. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-0958b3b629c68bd2.js +0 -1
  1197. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-0958b3b629c68bd2.js +0 -1
  1198. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-0958b3b629c68bd2.js +0 -1
  1199. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-0958b3b629c68bd2.js +0 -1
  1200. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-0958b3b629c68bd2.js +0 -1
  1201. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-0958b3b629c68bd2.js +0 -1
  1202. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-0958b3b629c68bd2.js +0 -1
  1203. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-0958b3b629c68bd2.js +0 -1
  1204. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-0958b3b629c68bd2.js +0 -1
  1205. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-0958b3b629c68bd2.js +0 -1
  1206. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-0958b3b629c68bd2.js +0 -1
  1207. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-0958b3b629c68bd2.js +0 -1
  1208. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-0958b3b629c68bd2.js +0 -1
  1209. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-0958b3b629c68bd2.js +0 -1
  1210. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-0958b3b629c68bd2.js +0 -1
  1211. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-0958b3b629c68bd2.js +0 -1
  1212. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-0958b3b629c68bd2.js +0 -1
  1213. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-0958b3b629c68bd2.js +0 -1
  1214. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-0958b3b629c68bd2.js +0 -1
  1215. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-0958b3b629c68bd2.js +0 -1
  1216. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-0958b3b629c68bd2.js +0 -1
  1217. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-0958b3b629c68bd2.js +0 -1
  1218. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-0958b3b629c68bd2.js +0 -1
  1219. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-0958b3b629c68bd2.js +0 -1
  1220. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-0958b3b629c68bd2.js +0 -1
  1221. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-0958b3b629c68bd2.js +0 -1
  1222. package/cli/app/.next-cli-build/static/chunks/app/page-0958b3b629c68bd2.js +0 -1
  1223. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-0958b3b629c68bd2.js +0 -1
  1224. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-0958b3b629c68bd2.js +0 -1
  1225. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-0958b3b629c68bd2.js +0 -1
  1226. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-0958b3b629c68bd2.js +0 -1
  1227. package/cli/app/cli/hooks/camoufoxRuntime.js +0 -460
  1228. package/cli/app/cli/hooks/cloakbrowserRuntime.js +0 -160
  1229. package/cli/hooks/camoufoxRuntime.js +0 -460
  1230. package/cli/hooks/cloakbrowserRuntime.js +0 -160
  1231. package/src/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js +0 -19
  1232. package/src/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1233. package/src/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js +0 -23
  1234. package/src/app/api/oauth/autoclaw/bulk-import/latest/route.js +0 -24
  1235. package/src/app/api/oauth/autoclaw/bulk-import/route.js +0 -52
  1236. package/src/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +0 -19
  1237. package/src/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1238. package/src/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +0 -22
  1239. package/src/app/api/oauth/grok-cli/bulk-import/latest/route.js +0 -24
  1240. package/src/app/api/oauth/grok-cli/bulk-import/route.js +0 -43
  1241. package/src/lib/oauth/services/autoclawBulkImportManager.js +0 -322
  1242. package/src/lib/oauth/services/grokCliBulkImportManager.js +0 -564
  1243. package/src/lib/oauth/services/grokXaiEmailAutomation.js +0 -846
  1244. /package/cli/app/.next-cli-build/static/{Z0U80pm6SJ5xtgUbMnxKJ → UWLJAHSkQ3J2j71dIudYw}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=8371,exports.ids=[8371],exports.modules={48371:(a,b,c)=>{c.d(b,{xM:()=>X,t9:()=>$,TK:()=>Z,cO:()=>e.cO,VU:()=>ae});var d=c(55511),e=c(53041),f=c(71998),g=c(89718),h=c(20116),i=c(92990),j=c(39609);let k=globalThis.fetch,l=new Set(["a timeout","is cancelled","is complete","number banned, when number already used"]);class m extends Error{constructor(a,{status:b,body:c}={}){super(a),this.name="FiveSimError",this.status=b,this.body=c}}class n extends m{constructor(a){super(`5sim order ${a} timed out waiting for SMS`),this.name="FiveSimTimeoutError",this.orderId=a}}class o extends m{constructor(a,b){super(`5sim order ${a} cancelled: ${b}`),this.name="FiveSimCancelledError",this.orderId=a}}class p extends m{constructor(a){super(`5sim order ${a} number was already used (banned)`),this.name="FiveSimBannedError",this.orderId=a}}class q{constructor({apiKey:a,proxyOptions:b=null}={}){if(!a||"string"!=typeof a||!a.trim())throw new m("5sim API key is required");this.apiKey=a.trim(),this.proxyOptions=b}_headers(a={}){return{Authorization:`Bearer ${this.apiKey}`,Accept:"application/json",...a}}async _get(a,{headers:b,...c}={}){let d=`https://5sim.net/v1${a}`,e=this.proxyOptions?.enabled?j.proxyAwareFetch:k,f=await e(d,{method:"GET",headers:this._headers(b),...c},this.proxyOptions);if(!f.ok){let b=await f.text().catch(()=>"");throw new m(`5sim request to ${a} failed (HTTP ${f.status}): ${b.slice(0,200)}`,{status:f.status,body:b})}let g=await f.text();try{return JSON.parse(g)}catch{if(g&&!g.startsWith("{"))throw new m(`5sim ${a} returned non-JSON: ${g.slice(0,200)}`,{status:f.status,body:g});return null}}async buyNumber({country:a="hongkong",operator:b="any",product:c="codebuddy",allowProductFallback:d=!1}={}){let e="codebuddy"===c&&d?["codebuddy","other"]:[c],f=null;for(let c of e){let g=`/user/buy/activation/${encodeURIComponent(a)}/${encodeURIComponent(b)}/${encodeURIComponent(c)}`;try{let a=await this._get(g);if(!a||!a.id||!a.phone)throw new m(`5sim buyNumber returned unexpected shape: ${JSON.stringify(a).slice(0,200)}`,{body:a});return a}catch(g){f=g;let a=g?.status,b=String(g?.body||g?.message||"").toLowerCase();if(!(d&&"codebuddy"===c&&e.includes("other")&&(400===a||404===a||b.includes("no free")||b.includes("not enough")||b.includes("no product"))))throw g}}throw f||new m("5sim buyNumber failed for all product candidates")}async checkOrder(a){return this._get(`/user/check/${a}`)}async pollCode(a,{timeoutMs:b=9e5,intervalMs:c=6e3,signal:d}={}){let e=Math.max(5e3,c),f=Date.now()+b,g=0;for(;Date.now()<f;){let b;if(d?.aborted)throw new o(a,"aborted by caller");try{b=await this.checkOrder(a)}catch(a){if(a instanceof m&&a.status>=500){if(++g>5)throw a;await s(e);continue}throw a}if(g=0,Array.isArray(b.sms)&&b.sms.length>0){let a=r(b.sms[b.sms.length-1]);if(a)return a}if(b.status&&l.has(b.status)){if("a timeout"===b.status)throw new n(a);if("number banned, when number already used"===b.status)throw new p(a);if("is cancelled"===b.status)throw new o(a,b.status);if("is complete"===b.status){let c=function(a){if(!Array.isArray(a))return null;for(let b=a.length-1;b>=0;b--){let c=r(a[b]);if(c)return c}return null}(b.sms);if(c)return c;throw new m(`5sim order ${a} completed but no SMS code found`,{body:b})}}await s(e)}throw new n(a)}async finishOrder(a){try{return await this._get(`/user/finish/${a}`),!0}catch(b){return console.warn(`[5sim] finishOrder(${a}) failed (best-effort): ${b.message}`),!1}}async cancelOrder(a){try{return await this._get(`/user/cancel/${a}`),!0}catch(b){return console.warn(`[5sim] cancelOrder(${a}) failed (best-effort): ${b.message}`),!1}}async banOrder(a){try{return await this._get(`/user/ban/${a}`),!0}catch(b){return console.warn(`[5sim] banOrder(${a}) failed (best-effort): ${b.message}`),!1}}async getBalance(){try{let a=await this._get("/user/profile");return{balance:a?.balance??null,rating:a?.rating??null}}catch(a){return console.warn(`[5sim] getBalance failed: ${a.message}`),{balance:null,rating:null}}}}function r(a){return a?a.code&&/\d{4,8}/.test(String(a.code))?String(a.code).match(/\d{4,8}/)[0]:a.text?function(a){if(!a)return null;let b=String(a).match(/\b(\d{4,8})\b/);return b?b[1]:null}(a.text):null:null}function s(a){return new Promise(b=>setTimeout(b,a))}let t=["https://www.codebuddy.cn/login/","https://www.codebuddy.cn/login","https://www.codebuddy.cn/register/","https://copilot.tencent.com/login/"],u=["text=手机号","div:has-text('手机号')","span:has-text('手机号')","[class*='phone']:has-text('手机号')","div.kc-phone-tab:has-text('手机号')"],v=["text=手机号","text=其他登录方式","text=微信","#phone-iframe",".login-phone-box"],w=["button:has-text('同意')","text=同意并继续","text=同意"],x="#phone-iframe",y="#phoneNumber",z=".kc-country-option",A=".kc-country-code-text",B="#code",C=['iframe[src*="captcha"]','iframe[src*="tcaptcha"]',"#tcaptcha","#tcaptcha_transform",".nc_iconfont",".nc_wrapper",'[class*="captcha"]','[id*="captcha"]',"text=滑块","text=拖动"],D=['[class*="avatar"]','[class*="user-info"]','[class*="logout"]',"text=退出登录","text=Logout","text=Sign out"],E=["#input-error",".pf-c-form__helper-text.pf-m-error",".kc-feedback-text"];async function F({page:a,phone:b,resolvePhone:c,pollSmsPromise:d,waitForSms:e,onStep:f,phoneFormatter:g=a=>a,timeouts:h={},signal:i=null,isCancelled:j=null}){let k=h.nav??3e4,l=h.action??15e3,m=h.codeWait??9e5,n=h.postSubmit??1e4,o=(a,b)=>f?.(a,b),p=()=>{if(i?.aborted||"function"==typeof j&&j()){let a=Error("Job cancelled");throw a.code="JOB_CANCELLED",a}};try{var q;let f,h;o("cn_opening_login_page","Opening CodeBuddy CN login page"),p();try{a.setDefaultNavigationTimeout(k),a.setDefaultTimeout(l)}catch{}try{await a.context().route("**/*",a=>{let b=a.request().url();return/googletagmanager|googleadservices|google-analytics|doubleclick|facebook|hotjar|clarity\.ms|hm\.baidu|google\.com\/rmkt/i.test(b)?a.abort():a.continue()})}catch{}let i=null,j=[];for(let b=1;b<=2;b++){p();try{let c=t[(b-1)%t.length];o("cn_nav_attempt",`Navigation attempt ${b}/2 → ${c}`),b>1&&(await a.context().clearCookies().catch(()=>{}),await a.waitForTimeout(800)),await a.goto(c,{waitUntil:"commit",timeout:k}),p(),await a.waitForFunction(()=>"loading"!==document.readyState,{timeout:1e4}).catch(()=>{}),p();let d=await I(a,w,{timeout:6e3});d&&(await d.click().catch(()=>{}),o("cn_consent_dismissed","Privacy consent dialog dismissed (同意)"),await a.waitForTimeout(1e3));let e=await J(a,v,25e3);if(p(),!e){let b=await a.locator("body").innerText().catch(()=>""),d=await a.evaluate(()=>document.documentElement?.outerHTML?.length||0).catch(()=>0),e=a.url();o("cn_spa_not_ready",`SPA not ready after 25s (url=${e}, body=${String(b).slice(0,80)}, html=${d})`),!b&&d<200?(o("cn_proxy_empty_page","Empty page body — proxy may be blocking codebuddy.cn"),j.push({code:"proxy_empty",detail:`empty page via ${c} (html=${d})`})):j.push({code:"spa_timeout",detail:`SPA not ready url=${e} html=${d}`});continue}o("cn_spa_ready","Login SPA ready"),o("cn_selecting_phone_tab","Selecting phone-number tab");let f=await I(a,u,{timeout:12e3});if(f?(await f.click().catch(()=>{}),o("cn_phone_tab_selected","Phone tab selected"),await a.waitForTimeout(800)):o("cn_phone_tab_not_found","Phone tab not found — checking if iframe already present"),o("cn_waiting_for_iframe","Waiting for phone iframe to load"),await a.locator(x).waitFor({state:"attached",timeout:18e3}).catch(()=>{}),i=await G(a)){if(await i.waitForSelector(y,{state:"visible",timeout:15e3}).then(()=>!0).catch(()=>!1)){o("cn_iframe_ready","Phone iframe + #phoneNumber ready");break}o("cn_iframe_empty","Iframe found but #phoneNumber not visible yet"),j.push({code:"iframe_empty",detail:"phone iframe attached but #phoneNumber not visible"}),i=null}else o("cn_iframe_missing",`No #phone-iframe (attempt ${b}/2)`),j.push({code:"iframe_missing",detail:"SPA loaded but #phone-iframe never appeared"})}catch(e){if(e?.code==="JOB_CANCELLED")throw e;let a=String(e?.message||e||"");o("cn_nav_retry",`Navigation attempt ${b}/2 failed: ${a.slice(0,120)}`);let c=/timeout|exceeded|ETIMEDOUT|net::ERR/i.test(a),d=/ERR_PROXY|ERR_TUNNEL|ERR_CONNECTION|NS_ERROR_PROXY|proxy/i.test(a);j.push({code:d?"proxy_network":c?"nav_timeout":"nav_error",detail:a.slice(0,160)})}}if(!i)return{status:"failed",error:function(a=[],b=2){let c=a.map(a=>a.code),d=a[a.length-1],e="Fix: use a live residential CN proxy (proxyPoolMode=single), concurrency 1, then retry. 5sim is not charged until the form loads.";return c.includes("proxy_empty")||c.includes("proxy_network")?`CodeBuddy CN login page empty/blocked via proxy after ${b} attempts (${d?.detail||"proxy blackhole"}). ${e}`:c.includes("nav_timeout")?`CodeBuddy CN navigation timed out after ${b} attempts (${d?.detail||"goto timeout"}). Proxy is too slow or dead. ${e}`:c.includes("spa_timeout")?`CodeBuddy CN SPA did not boot after ${b} attempts (${d?.detail||"no login UI"}). Proxy/CDN may be filtering JS. ${e}`:c.includes("iframe_missing")||c.includes("iframe_empty")?`CodeBuddy CN page opened but phone form iframe never appeared after ${b} attempts (${d?.detail||"no #phone-iframe"}). Site layout change or half-loaded SPA — retry with another CN exit IP. ${e}`:c.includes("nav_error")&&d?.detail?`CodeBuddy CN phone form failed after ${b} attempts: ${d.detail}. ${e}`:`Could not load CodeBuddy CN phone form after ${b} attempts (${d?.code||"unknown"}: ${d?.detail||"proxy/SPA"}). ${e}`}(j,2)};await i.waitForSelector("#kc-form-login",{timeout:l}).catch(()=>{}),await i.waitForSelector(y,{state:"visible",timeout:l}).catch(()=>{});let r=b;if("function"==typeof c&&(o("cn_ordering_after_form","Login form ready — ordering 5sim number now (not before nav)"),r=await c()),!r)return{status:"failed",error:"No phone number available (resolvePhone/phone missing)"};let s=g(r),{countryCode:z,localNumber:A}=(q=s,(!(h=String(q).replace(/[\s\-()]/g,"")).startsWith("+")&&/^\d+$/.test(h)&&(h="+"+h),h.startsWith("+852"))?{countryCode:"+852",localNumber:h.slice(4)}:h.startsWith("+86")?{countryCode:"+86",localNumber:h.slice(3)}:h.startsWith("+1")?{countryCode:"+1",localNumber:h.slice(2)}:{countryCode:"",localNumber:h.replace(/^\+/,"")});o("cn_selecting_country",`Selecting country code ${z} for phone ${s}`),await H(i,z,l,o),o("cn_entering_phone",`Entering phone number: ${A}`);let C=i.locator(y).first();try{await C.waitFor({state:"visible",timeout:l})}catch{return{status:"failed",error:"Could not find the phone number input (#phoneNumber) inside the iframe"}}await K(C,A),o("cn_phone_entered",`Phone number entered: ${A}`);try{let b=a.locator(".t-checkbox").last();await b.isVisible({timeout:3e3}).catch(()=>!1)&&(await b.click().catch(()=>{}),o("cn_agreement_checked","Agreement checkbox checked"))}catch{}o("cn_clicking_send_code","Clicking send SMS code button");let D=i.locator("input.btn-lg.code-btn").first(),E=!1;try{await D.waitFor({state:"visible",timeout:5e3}),E=!0}catch{let a=i.locator(".code-btn").first();try{await a.waitFor({state:"visible",timeout:5e3}),E=!0}catch{E=!1}}if(!E)return{status:"failed",error:"Could not find the send-SMS-code button (.code-btn) inside the iframe"};await D.click().catch(()=>{}),o("cn_send_code_clicked","Send code button clicked"),await i.waitForSelector(B,{state:"visible",timeout:5e3}).catch(()=>{});let F=await S(i);if(F)return{status:"failed",error:`Form error after sending code: ${F}`};o("cn_waiting_for_sms","Waiting for SMS verification code from 5sim (timer starts now)");try{let a;if("function"==typeof e)a=Promise.resolve().then(()=>e());else if(d)a=d;else throw Error("No waitForSms/pollSmsPromise provided");let b=new Promise((a,b)=>setTimeout(()=>b(Error("Timed out waiting for SMS code")),m));f=await Promise.race([a,b])}catch(a){if(a&&"FiveSimTimeoutError"===a.name)throw a;return{status:"failed",error:`Failed to receive SMS code: ${a.message}`}}if(!f)return{status:"failed",error:"Received empty SMS code from 5sim"};o("cn_sms_received",`SMS code received: ${f}`),o("cn_entering_code","Entering SMS verification code");let L=i.locator(B).first();try{await L.waitFor({state:"visible",timeout:l})}catch{return{status:"failed",error:"Could not find the verification code input (#code) inside the iframe"}}await K(L,f),o("cn_code_entered","Verification code entered");let M=Math.max(n,12e3),V=!1;for(let b=0;b<2;b++){o("cn_submitting",`Clicking submit button (attempt ${b+1}/2)`);let c=await G(a);if(!c){let b=await N(a,{timeoutMs:5e3,reportStep:o});if(b.ok)return o("cn_session_cookies",`Keycloak session after iframe detach (${b.cookie})`),{status:"success"};return{status:"failed",error:"Lost phone iframe after submit"}}if(await c.locator(y).first().isVisible({timeout:3e3}).catch(()=>!1)&&b>0){o("cn_re_entering_after_refresh",`Re-entering phone + code after refresh (retry ${b})`),await H(c,z,l,o);let d=c.locator(y).first();await K(d,A);try{let b=a.locator(".t-checkbox").first();await b.isVisible({timeout:2e3}).catch(()=>!1)&&await b.click().catch(()=>{})}catch{}let e=c.locator(B).first();await e.isVisible({timeout:3e3}).catch(()=>!1)&&await K(e,f)}if(await O(c,l),o("cn_submitted",`Registration form submitted (attempt ${b+1})`),await a.waitForLoadState("domcontentloaded",{timeout:5e3}).catch(()=>{}),await a.waitForTimeout(1e3),c=await G(a)||c,await R(c)){if(b>=1)return{status:"failed",error:"Account restricted (账号访问受限) after submit. Datacenter/VPS IP is usually blocked — use a residential CN proxy pool (proxyPoolMode=single) and retry."};o("cn_account_restricted",`Account restricted (attempt ${b+1}) — refreshing page and retrying`),await a.reload({waitUntil:"commit",timeout:k}).catch(()=>{}),await J(a,v,12e3);let c=await I(a,u,{timeout:8e3});c&&(await c.click().catch(()=>{}),await a.locator(x).waitFor({state:"attached",timeout:8e3}).catch(()=>{}));continue}if(o("cn_checking_captcha","Checking for captcha"),await T(a,c,3e3))return o("cn_captcha_detected","Captcha appeared during registration — manual assist needed"),{status:"needs_manual",error:"A captcha appeared during registration. Please complete it manually in the opened browser window.",captcha:!0};let d=await S(c);if(d)return{status:"failed",error:`Form error after submit: ${d}`};o("cn_waiting_session",`Waiting up to ${Math.round(M/1e3)}s for Keycloak session cookies`);let e=await N(a,{timeoutMs:M,reportStep:o,alsoCheckFrame:()=>G(a)});if(e.ok)return o("cn_session_cookies",`Keycloak session cookies present (${e.cookie}) — registration success`),{status:"success"};if(await P(a)&&b<1){o("cn_submit_no_effect","Login form still visible after submit — retrying");continue}o("cn_session_nudge","No session yet — navigating to home to complete OIDC handoff"),await a.goto("https://www.codebuddy.cn/",{waitUntil:"domcontentloaded",timeout:k}).catch(()=>{}),await a.waitForTimeout(2e3);let g=await N(a,{timeoutMs:1e4,reportStep:o});if(g.ok)return o("cn_session_cookies",`Keycloak session after home nudge (${g.cookie})`),{status:"success"};V=!0;break}if(!V)return o("cn_submit_retries_exhausted","Account restricted after 2 retries — needs manual"),{status:"needs_manual",error:"Account restricted after 2 refresh retries. Please try with a different VPN/proxy or complete manually."};o("cn_confirming_success","Confirming registration success");let W=await N(a,{timeoutMs:5e3});if(W.ok)return o("cn_registration_success",`Phone registration completed (Keycloak session: ${W.cookie})`),{status:"success"};if(await U(a,i,1e4))return o("cn_registration_success","Phone registration completed successfully (UI markers)"),{status:"success"};let X=await Q(a);return o("cn_success_unconfirmed",`No Keycloak session after submit — ${X.summary}`),{status:"needs_manual",error:`Login submit finished but no Keycloak session yet (${X.summary}). Complete login in the headed browser or retry with a fresh China proxy.`}}catch(a){if(a&&"FiveSimTimeoutError"===a.name)throw a;return o("cn_automation_error",`Phone registration automation error: ${a.message}`),{status:"failed",error:a.message||"Unexpected error during phone registration"}}}async function G(a){try{await a.locator(x).waitFor({state:"attached",timeout:5e3});let b=await a.locator(x).elementHandle({timeout:2e3});if(b){let a=await b.contentFrame();if(a)return a}}catch{}for(let b of a.frames()){let a=b.url();if(a.includes("codebuddy.cn/auth/realms/copilot")||a.includes("protocol/openid-connect"))return b}return null}async function H(a,b,c,d){if(!b)return;let e=Math.min(Number(c)||15e3,1e4),f=async()=>{let c=a.locator(A).first(),f=String(await c.textContent({timeout:3e3}).catch(()=>"")).trim();if(f===b)return void d?.("cn_country_already_selected",`Country code already ${b}`);d?.("cn_opening_country_dropdown",`Opening country dropdown (current: ${f}, target: ${b})`);let g=a.locator(".kc-country-selector").first();for(let c of(await g.waitFor({state:"visible",timeout:Math.min(e,5e3)}),await g.click({timeout:3e3}).catch(()=>{}),await a.locator(z).first().waitFor({state:"visible",timeout:3e3}).catch(()=>{}),({"+852":["中国香港","香港","Hong Kong","+852"],"+86":["中国大陆","中国","China","+86"],"+853":["中国澳门","澳门","Macau","+853"],"+886":["中国台湾","台湾","Taiwan","+886"]})[b]||[b]))for(let e of[a.locator(`${z}:has-text("${c}")`).first(),a.getByText(c,{exact:!1}).first()]){if(!await e.isVisible({timeout:1500}).catch(()=>!1))continue;let f=await e.textContent({timeout:1500}).catch(()=>c);await e.click({timeout:2e3}).catch(()=>{}),await a.locator(A).filter({hasText:b}).first().waitFor({state:"visible",timeout:2e3}).catch(()=>{}),d?.("cn_country_selected",`Country selected: ${String(f||c).trim()}`);return}d?.("cn_country_not_found",`Country code ${b} not found in dropdown; using default`),await a.locator("body").click({timeout:1e3}).catch(()=>{})};try{await Promise.race([f(),new Promise((a,b)=>{let c=setTimeout(()=>b(Error(`selectCountry timed out after ${e}ms`)),e);"function"==typeof c.unref&&c.unref()})])}catch(a){d?.("cn_country_select_error",`Country selection error: ${a.message}`)}}async function I(a,b,{timeout:c=1e4}={}){for(let d of b)try{let b=a.locator(d).first();return await b.waitFor({state:"visible",timeout:Math.min(c,5e3)}),b}catch{}return null}async function J(a,b,c=15e3){let d=Date.now()+c;for(;Date.now()<d;){for(let c of b)try{let b=a.locator(c).first();if(await b.isVisible().catch(()=>!1))return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function K(a,b){try{return await a.click(),await a.fill(""),await a.fill(b),!0}catch{try{return await a.click(),await a.press("Control+a"),await a.type(b,{delay:50}),!0}catch{return!1}}}let L=["KEYCLOAK_IDENTITY","KEYCLOAK_SESSION","KEYCLOAK_IDENTITY_LEGACY","KEYCLOAK_SESSION_LEGACY"];function M(a=[]){for(let b of L)if(a.some(a=>a.name===b))return b;let b=a.find(a=>a.name.startsWith("KEYCLOAK_")&&!/locale|theme|restart/i.test(a.name));return b?.name||null}async function N(a,{timeoutMs:b=2e4,reportStep:c,alsoCheckFrame:d}={}){let e=Date.now()+b,f=0;for(;Date.now()<e;){let b=await a.context().cookies().catch(()=>[]),g=M(b);if(g)return{ok:!0,cookie:g,cookies:b};try{let c=a.url();if(c&&!c.includes("/login")&&!c.includes("/auth/realms")){let a=b.find(a=>/^(access_token|cb_token|codebuddy)/i.test(a.name)||"token"===a.name&&a.domain?.includes("codebuddy"));if(a)return{ok:!0,cookie:a.name,cookies:b}}}catch{}if(d){let a=await d().catch(()=>null);if(a){if(await R(a))return{ok:!1,cookies:b,reason:"restricted"};let c=await S(a);if(c)return{ok:!1,cookies:b,reason:`form_error:${c}`}}}if(c&&Date.now()-f>4e3){f=Date.now();let a=Math.max(0,Math.round((e-Date.now())/1e3));c("cn_waiting_session",`Still waiting for Keycloak session… ${a}s left`)}await a.waitForTimeout(500)}return{ok:!1,cookies:await a.context().cookies().catch(()=>[])}}async function O(a,b=15e3){let c=a.locator("#kc-login").first();try{await c.waitFor({state:"visible",timeout:b}),await c.click({timeout:5e3}).catch(()=>{})}catch{}try{await a.evaluate(()=>{let a=document.querySelector("#kc-form-login")||document.querySelector("form");if(a)if("function"==typeof a.requestSubmit){let b=a.querySelector("#kc-login")||a.querySelector('[type="submit"]');b?a.requestSubmit(b):a.requestSubmit()}else a.submit()})}catch{await a.locator(B).first().press("Enter").catch(()=>{})}}async function P(a){let b=await G(a);return!!b&&b.locator(y).first().isVisible({timeout:1500}).catch(()=>!1)}async function Q(a){let b="";try{b=a.url()}catch{b="(unknown)"}let c=(await a.context().cookies().catch(()=>[])).map(a=>a.name).slice(0,20).join(",")||"(none)",d="";try{d=await a.evaluate(()=>(document.body?.innerText||"").replace(/\s+/g," ").trim().slice(0,120))}catch{d=""}let e=await G(a),f="no-iframe";if(e)try{f=(await e.url()).slice(0,80)}catch{f="iframe-detached"}return{summary:`url=${b.slice(0,60)} cookies=[${c}] frame=${f}${d?` text="${d}"`:""}`,url:b,cookieNames:c,bodySnippet:d}}async function R(a){try{let b=await a.evaluate(()=>document.body?.innerText||"");if(b.includes("账号访问受限")||b.includes("安全策略限制")||b.includes("访问受限"))return!0}catch{}return!1}async function S(a){for(let b of E)try{let c=a.locator(b).first();if(await c.isVisible({timeout:1500}).catch(()=>!1)){let a=await c.textContent().catch(()=>""),b=String(a).trim();if(b&&b.length>1)return b}}catch{}try{let b=await a.evaluate(()=>(document.body?.innerText||"").replace(/\s+/g," ").trim());for(let a of["验证码错误","验证码已过期","验证码无效","请输入正确的验证码","手机号格式","发送过于频繁","Invalid","incorrect"])if(b.includes(a)){let c=b.indexOf(a);return b.slice(Math.max(0,c-10),c+a.length+40).trim()}}catch{}return null}async function T(a,b,c=5e3){for(let b of C)try{let d=a.locator(b).first();if(await d.isVisible({timeout:Math.min(c,2e3)}).catch(()=>!1))return!0}catch{}if(b)for(let a of C)try{let d=b.locator(a).first();if(await d.isVisible({timeout:Math.min(c,2e3)}).catch(()=>!1))return!0}catch{}return!1}async function U(a,b,c=15e3){try{let b=await a.context().cookies().catch(()=>[]);if(M(b))return!0}catch{}for(let b of D)try{let d=a.locator(b).first();if(await d.isVisible({timeout:Math.min(c,2e3)}).catch(()=>!1))return!0}catch{}try{let b=a.url(),c=await a.context().cookies().catch(()=>[]),d=new Set(c.map(a=>a.name));if(b&&!b.includes("/login")&&!b.includes("/auth/realms")&&(d.has("qcloud_uid")||d.has("qcmainCSRFToken"))&&!d.has("login_risk_state")&&!await P(a).catch(()=>!1))return!0}catch{}return!1}var V=c(40891),W=c(75949);let X=200,Y=Number.parseInt(process.env.ZEVAI_CN_ACCOUNT_TIMEOUT_MS||"",10)||72e4,Z=new Set(["hongkong","china","any"]),$="hongkong";function _(a){return String(a||"").trim()}async function aa({apiKey:a,phone:b,region:d,fiveSimOrderId:e,account:f}){let{createProviderConnection:g}=await Promise.resolve().then(c.bind(c,71998)),h={provider:"codebuddy-cn",authType:"apikey",apiKey:a,accessToken:a,name:b||`5sim-${e}`,email:b||`5sim-${e}`,providerSpecificData:{domain:"www.codebuddy.cn",phoneNumber:b,fiveSimOrderId:e,region:d,automation:"5sim-phone-bulk"},testStatus:"active"};return{connection:await g(h)}}class ab extends e.Q6{constructor({browserLauncher:a,requestDeviceCodeFn:b=V.cT,pollToken:d=V.ZV,fetchLoginAccountFn:e=V.w8,saveConnection:f=aa,fiveSimClientFactory:g=ac,phoneAutomation:h=F,phoneFormatter:j=_,pollIntervalMs:k=i.ne.pollInterval,storageName:l="codebuddy-cn-bulk-import"}={}){super({browserLauncher:a||(async a=>{let{launchBulkImportBrowser:b}=await Promise.resolve().then(c.bind(c,75949)),d=Array.isArray(a?.proxyUrls)&&a.proxyUrls.length?a.proxyUrls[0]:null,e=process.env.ZEVAI_CN_HEADLESS,f="linux"===process.platform;return("0"===e||"false"===e)&&(f=!1),("1"===e||"true"===e)&&(f=!0),b({engine:a?.engine||"camoufox",proxyUrl:d,headless:f,windowSize:{width:900,height:700}})}),storageName:l}),this.requestDeviceCode=b,this.pollToken=d,this.fetchLoginAccount=e,this.saveConnection=f,this.fiveSimClientFactory=g,this.phoneAutomation=h,this.phoneFormatter=j,this.pollIntervalMs=k}async startJob({count:a,concurrency:b,engine:g,proxyPoolMode:i,proxyPoolId:j,manualProxyUrl:k,region:l}){let m=Number.parseInt(a,10);if(!Number.isFinite(m)||m<1)throw Object.assign(Error("At least one account is required (count >= 1)"),{error:"At least one account is required (count >= 1)"});if(m>X)throw Object.assign(Error(`Count exceeds maximum of ${X}`),{error:`Count exceeds maximum of ${X}`});let n=[...this.jobs.values()].find(a=>a&&("running"===a.status||"queued"===a.status||"needs_manual"===a.status)&&!a.cancelRequested);if(n)throw Object.assign(Error(`Another CodeBuddy CN job is still active (${n.jobId}). Cancel it or wait before starting again.`),{error:`Another CodeBuddy CN job is still active (${n.jobId}). Cancel it or wait before starting again.`});let o=Z.has(l)?l:$,p=[],q="string"==typeof k?k.trim():"";if(q){if(!/^(https?|socks4|socks5):\/\/.+/i.test(q))throw Object.assign(Error("manualProxyUrl must be a valid proxy URL (http://, https://, socks4://, or socks5://)"),{error:"manualProxyUrl must be a valid proxy URL (http://, https://, socks4://, or socks5://)"});p=[q]}else if("all"===i)p=(await (0,f.ui)({isActive:!0})).map(a=>a.proxyUrl).filter(Boolean);else if("single"===i&&j){let a=await (0,f.hr)(j);a?.isActive&&a?.proxyUrl&&(p=[a.proxyUrl])}let r=(0,d.randomUUID)(),s=(0,e.kF)(),{normalizeBulkImportEngine:t}=await Promise.resolve().then(c.bind(c,75949)),u=g?t(g):"camoufox",v={jobId:r,status:"running",concurrency:function(a){let b=function(){try{let{totalMemGb:a}=(0,h.si)();return Number.isFinite(a)&&a>0&&a<3}catch{return!1}}()?1:8;if((0,h.uT)(a))return Math.min(b,Math.max(1,(0,h.q)()));let c=Number.parseInt(a,10);return Number.isFinite(c)?Math.min(b,Math.max(1,c)):Math.min(b,1)}(b),engine:u,proxyPoolMode:q?"manual":i||"none",proxyUrls:p,region:o,createdAt:s,startedAt:s,finishedAt:null,error:null,cancelRequested:!1,browser:null,nextIndex:0,manualFollowups:new Set,persistPromise:Promise.resolve(),lastPreview:null,lastPreviewCapturedAt:0,accounts:Array.from({length:m},(a,b)=>({line:b+1,region:o,phone:null,fiveSimOrderId:null,fiveSimActivationId:null,proxyUrl:null,abortController:new AbortController,status:"queued",error:null,connectionId:null,workerId:null,manualSession:null,runtimeSession:null,currentStep:"queued",updatedAt:s,logs:[(0,e.hn)("queued","Queued and waiting for an available worker")]}))};return this.jobs.set(r,v),this.latestJobId=r,await this.persistJobSnapshot(v,{forcePreview:!1}),this.runJob(r),ad(v)}getJob(a){let b=this.jobs.get(a);return b?ad(b):null}async getJobWithPreview(a){let b=this.jobs.get(a);return b?(await this.persistJobSnapshot(b,{forcePreview:!1}),ad(b,{preview:b.lastPreview||null})):null}async processAccount(a,b,c){if(a.cancelRequested||!a.browser)return void this.finalizeAccount(b,"cancelled",{error:"Job cancelled"});let d=null,f=null,h=!1,i=null;try{let c;this.setAccountStep(b,"reading_settings","Reading 5sim API key from settings"),await this.persistJobSnapshot(a,{forcePreview:!0});let j=(await (0,g.mt)()).fiveSimApiKey;if(!j||!j.trim()){this.finalizeAccount(b,"failed",{error:"5sim API key not configured. Set it in the automation modal or dashboard settings.",step:"failed",message:"5sim API key not configured"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}d=this.fiveSimClientFactory({apiKey:j,proxyOptions:null}),this.setAccountStep(b,"creating_browser","Creating browser context (before 5sim order)"),await this.persistJobSnapshot(a,{forcePreview:!0});let k=await (0,e.go)(a.browser,b.proxyUrl);i=k.context;let l=k.page;if(b.runtimeSession={context:i,page:l},a.cancelRequested)throw Error("Job cancelled before ordering phone number");this.setAccountStep(b,"registering","Running phone registration on CodeBuddy CN"),await this.persistJobSnapshot(a,{forcePreview:!0});try{l.setDefaultTimeout(2e4),l.setDefaultNavigationTimeout(45e3)}catch{}let m=null,n=new Promise((a,b)=>{m=setTimeout(()=>{b(Object.assign(Error(`CodeBuddy CN account hard timeout after ${Math.round(Y/1e3)}s (browser will be force-closed)`),{code:"CN_ACCOUNT_HARD_TIMEOUT"}))},Y),"function"==typeof m.unref&&m.unref()});try{c=await Promise.race([this.phoneAutomation({page:l,signal:b.abortController?.signal,isCancelled:()=>!0===a.cancelRequested,resolvePhone:async()=>{if(a.cancelRequested)throw Error("Job cancelled before ordering phone number");this.setAccountStep(b,"ordering_number",`Form ready — ordering ${a.region} phone from 5sim (single buy)`),await this.persistJobSnapshot(a,{forcePreview:!0});let c=await d.buyNumber({country:a.region,product:"codebuddy",allowProductFallback:!1});return f=c.id,b.phone=c.phone,b.fiveSimOrderId=c.id,b.fiveSimActivationId=c.id,this.setAccountStep(b,"number_ordered",`Phone number ordered: ${c.phone} (1 buy, no re-order)`),await this.persistJobSnapshot(a,{forcePreview:!0}),c.phone},waitForSms:async()=>{if(!f)throw Error("Cannot poll SMS — no 5sim order id");this.setAccountStep(b,"sms_poll_started","SMS poll started (full 90s window after send-code)"),await this.persistJobSnapshot(a,{forcePreview:!1});let c=await d.pollCode(f,{timeoutMs:9e4,signal:b.abortController?.signal});return h=!0,c},onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})},phoneFormatter:this.phoneFormatter}),n])}finally{m&&clearTimeout(m)}if("failed"===c.status){let e=c.error||"Phone registration failed before submit";this.finalizeAccount(b,"failed",{error:e,step:"failed",message:e}),d&&f&&(h?await d.finishOrder(f):await d.cancelOrder(f)),b.runtimeSession=null,await i.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}await this.captureApiKey(a,b,i,l,d,f);return}catch(g){let c=g instanceof n,e=c?"SMS OTP not received within 90s — number banned":g.message||"Unexpected CodeBuddy CN bulk import failure";if(this.finalizeAccount(b,"failed",{error:e,step:c?"sms_timeout":"failed",message:e}),d&&f&&(h?await d.finishOrder(f):c?await d.banOrder(f):await d.cancelOrder(f)),b.runtimeSession=null,i&&await i.close().catch(()=>null),(g?.code==="CN_ACCOUNT_HARD_TIMEOUT"||a.cancelRequested)&&a.browser){let b=a.browser;a.browser=null,await (0,W.forceCloseBrowser)(b).catch(()=>null)}await this.persistJobSnapshot(a,{forcePreview:!0})}}async captureApiKey(a,b,c,d,e,f){let g="personal-edition-user-id",h=async(a,{timeout:b=12e3,interval:c=150}={})=>{let d=Date.now()+b;for(;Date.now()<d;){try{if(await a())return!0}catch{}await new Promise(a=>setTimeout(a,c))}return!1};try{this.setAccountStep(b,"waiting_session","Establishing CodeBuddy console session (probe APIs, not just cookies)"),await this.persistJobSnapshot(a,{forcePreview:!0});let i=async()=>{let a=await c.cookies().catch(()=>[]);return{cookies:a,names:new Set(a.map(a=>a.name)),list:a.map(a=>a.name)}},j=a=>a.has("KEYCLOAK_IDENTITY")||a.has("KEYCLOAK_SESSION")||a.has("KEYCLOAK_IDENTITY_LEGACY")||a.has("KEYCLOAK_SESSION_LEGACY"),k=a=>a.has("AUTH_SESSION_ID")||a.has("session")||a.has("qcloud_uid")||a.has("qcmainCSRFToken")||a.has("x_host_key_access"),l=async()=>d.evaluate(async()=>{try{let a=(window.location.hostname||"www.codebuddy.cn").endsWith("codebuddy.cn")?`${window.location.origin}`:"https://www.codebuddy.cn",b=await fetch(`${a}/console/accounts`,{credentials:"include",headers:{Accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","X-Domain":"www.codebuddy.cn","X-Product":"SaaS"}}),c=await b.text().catch(()=>""),d=null;try{d=c?JSON.parse(c):null}catch{d={_raw:String(c||"").slice(0,240),_notJson:!0}}return{status:b.status,data:d,text:String(c||"").slice(0,240)}}catch(a){return{status:0,error:a?.message||String(a)}}}).catch(()=>null),m=a=>{let b=a?.data;if(!b||"object"!=typeof b)return[];for(let a of[b?.data?.accounts,b?.accounts,b?.data?.list,b?.list,b?.data?.result,b?.result,b?.data?.items,b?.items,Array.isArray(b?.data)?b.data:null,Array.isArray(b)?b:null])if(Array.isArray(a)&&a.length>0)return a;return[]},n=async()=>{await Promise.race([d.waitForResponse(a=>/\/console\/accounts/i.test(a.url())&&500>a.status(),{timeout:1e4}).catch(()=>null),d.waitForResponse(a=>/\/console\/api\//i.test(a.url())&&500>a.status(),{timeout:1e4}).catch(()=>null),h(async()=>{let a=await i();return j(a.names)},{timeout:1e4,interval:200}),new Promise(a=>setTimeout(a,2500))])},o=["https://www.codebuddy.cn/","https://www.codebuddy.cn/console","https://www.codebuddy.cn/console/","https://www.codebuddy.cn/profile","https://www.codebuddy.cn/profile/keys","https://www.codebuddy.cn/login/"],p=[],q=null,r=!1,s="";for(let c=0;c<10;c+=1){if(a.cancelRequested)throw Error("Job cancelled while establishing session");let e=await i(),f=j(e.names),g=k(e.names),h=o[Math.min(c,o.length-1)];if(c<3||c%2==0||!g?(this.setAccountStep(b,"waiting_session",`OIDC handoff ${c+1}/10 → ${h.replace("https://www.codebuddy.cn","")} (${f?"KEYCLOAK":g?"soft-session":"weak"})`),await this.persistJobSnapshot(a,{forcePreview:!1}),await d.goto(h,{waitUntil:"domcontentloaded",timeout:25e3}).catch(()=>null),await n()):await new Promise(a=>setTimeout(a,300)),/codebuddy\.cn/i.test(d.url?.()||"")&&(String(d.url()||"").includes("/console")||!(c>=1))||(await d.goto("https://www.codebuddy.cn/console",{waitUntil:"domcontentloaded",timeout:25e3}).catch(()=>null),await n()),q=await l(),p=m(q),s=JSON.stringify(q?.data??q?.text??null).slice(0,180),q?.status===200&&Array.isArray(p)&&p.length>0){r=!0,this.setAccountStep(b,"session_ready",`Console session accepted (HTTP 200, ${p.length} account(s)${f?", KEYCLOAK ok":", soft session"})`),await this.persistJobSnapshot(a,{forcePreview:!0});break}if(g&&q?.status===200&&Array.isArray(p)&&0===p.length&&c>=4){this.setAccountStep(b,"session_soft","Console HTTP 200 but 0 accounts — trying personal API key with soft session (cookies ok)"),await this.persistJobSnapshot(a,{forcePreview:!0}),r=!0;break}this.setAccountStep(b,"resolving_enterprise",`Console not ready (HTTP ${q?.status||0}, accounts=${p.length}) — ${c+1}/10 body=${s.slice(0,80)}`),await this.persistJobSnapshot(a,{forcePreview:!1})}if(!r){let a=await i();throw Error(`Console accounts unavailable after login (HTTP ${q?.status||0}; cookies: ${a.list.slice(0,18).join(",")||"(none)"}; body=${s.slice(0,120)}) — session not accepted for API key`)}let t=g;if(Array.isArray(p)&&p.length>0){let a=p.find(a=>a?.lastLogin)||p[0];a?.type&&"personal"!==a.type&&a.enterpriseId?t=a.enterpriseId:a?.enterpriseId&&a?.type!=="personal"&&(t=a.enterpriseId)}this.setAccountStep(b,"creating_api_key",`Creating API key (enterprise=${t}, accounts=${p.length})`),await this.persistJobSnapshot(a,{forcePreview:!0});let u=async a=>d.evaluate(async({enterpriseId:a})=>{let b=(window.location.hostname||"www.codebuddy.cn").endsWith("codebuddy.cn")?window.location.origin:"https://www.codebuddy.cn",c=await fetch(`${b}/console/api/client/v1/api-keys`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","X-Domain":"www.codebuddy.cn","X-Product":"SaaS"},body:JSON.stringify({name:`zevai-router-${Date.now()}`,expire_in_days:365,user_enterprise_id:a})}),d=await c.text().catch(()=>""),e=null;try{e=d?JSON.parse(d):null}catch{e={_raw:String(d||"").slice(0,200)}}return{ok:c.ok,status:c.status,data:e}},{enterpriseId:a});await d.goto("https://www.codebuddy.cn/profile/keys",{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n();let v=await u(t).catch(()=>null);v&&v.ok||t===g||(this.setAccountStep(b,"retrying_api_key","Retrying with personal-edition enterprise id"),await this.persistJobSnapshot(a,{forcePreview:!1}),v=await u(g).catch(()=>null)),v&&v.ok||(this.setAccountStep(b,"retrying_api_key","Retrying API key from /console"),await this.persistJobSnapshot(a,{forcePreview:!0}),await d.goto("https://www.codebuddy.cn/console",{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n(),await d.goto("https://www.codebuddy.cn/profile/keys",{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n(),v=await u(g).catch(()=>null));let w=a=>!a?.ok&&(a?.status===401||a?.status===403||a?.status===0||!a);for(let c=1;c<=3&&w(v);c+=1){for(let e of(this.setAccountStep(b,"retrying_api_key",`API key 401/403 — OIDC re-handoff round ${c}/3 (waiting strong session)`),await this.persistJobSnapshot(a,{forcePreview:!0}),["https://www.codebuddy.cn/","https://www.codebuddy.cn/console","https://www.codebuddy.cn/profile/keys"]))await d.goto(e,{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n();await h(async()=>{let a=await i();return j(a.names)},{timeout:8e3*c,interval:300}).catch(()=>null),v=await u(g).catch(()=>null)}let x=v?.data?.code;if(!v||!v.ok||!v.data||0!==x&&200!==x&&void 0!==x){let a="string"==typeof v?.data?._raw?v.data._raw.replace(/\s+/g," ").slice(0,120):null,b=a&&/openresty|nginx|Authorization Required/i.test(a)?" [edge proxy blocked — session half-baked]":"";throw Error(`API key creation failed (HTTP ${v?.status??"no-response"}, code=${x??"n/a"})${b}: ${JSON.stringify(v?.data??null).slice(0,200)}`)}let y=v.data?.data||v.data,z=y?.apiKey||y?.key||y?.token||y?.secret||y?.api_key||("string"==typeof y?y:null)||v.data.apiKey||v.data.key||v.data.token||v.data.secret;if(!z||"string"!=typeof z)throw Error(`API key response did not contain a key field: ${JSON.stringify(v.data).slice(0,300)}`);this.setAccountStep(b,"api_key_created","API key created successfully"),await this.persistJobSnapshot(a,{forcePreview:!0}),this.setAccountStep(b,"saving_connection","Saving CodeBuddy CN connection"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:A}=await this.saveConnection({apiKey:z,phone:b.phone,region:b.region,fiveSimOrderId:f,account:b});await e.finishOrder(f),this.finalizeAccount(b,"success",{connectionId:A.id,step:"connection_saved",message:`CodeBuddy CN connection saved (phone: ${b.phone})`}),b.runtimeSession=null,await c.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(g){this.finalizeAccount(b,"needs_manual",{error:`Registration succeeded but API key capture failed: ${g.message}`,step:"awaiting_manual",message:`Registration done, API key capture failed: ${g.message}`}),await e.finishOrder(f).catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0}),await this.runCnManualFollowup(a,b,b.workerId,c,d,e,f)}}async runCnManualFollowup(a,b,c,d,e,f,g){let h=(async()=>{let c=async()=>{let a=b.manualSession,c=a?.context||d,e=a?.headedBrowser||null;c&&await c.close().catch(()=>null),e&&await e.close().catch(()=>null)};try{this.setAccountStep(b,"manual_waiting","Waiting for operator to complete in headed browser"),await this.persistJobSnapshot(a,{forcePreview:!0});let c=Date.now()+9e5,d=null;for(;Date.now()<c&&!a.cancelRequested;){await new Promise(a=>setTimeout(a,1e4));try{if(!e.url().includes("codebuddy.cn"))continue;let a=await e.evaluate(async()=>{let a=await fetch("/console/api/client/v1/api-keys",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","X-Domain":window.location.hostname||"www.codebuddy.cn","X-Product":"SaaS"},credentials:"include",body:JSON.stringify({name:"zevai-router-manual-"+Date.now(),expire_in_days:365,user_enterprise_id:"personal-edition-user-id"})}),b=await a.json().catch(()=>null);return{ok:a.ok,status:a.status,data:b}});if(a?.ok&&a.data){let b=a.data?.data||a.data;if((d=b?.apiKey||b?.key||b?.token||b?.secret||b?.api_key||("string"==typeof b?b:null))&&"string"==typeof d)break}}catch{}}if(a.cancelRequested){this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}if(!d)throw Error("Manual assist timed out — could not capture API key");this.setAccountStep(b,"saving_connection","Saving CodeBuddy CN connection (manual)"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:f}=await this.saveConnection({apiKey:d,phone:b.phone,region:b.region,fiveSimOrderId:g,account:b});this.finalizeAccount(b,"success",{connectionId:f.id,step:"connection_saved",message:`CodeBuddy CN connection saved via manual assist (phone: ${b.phone||"N/A"})`}),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}):this.finalizeAccount(b,"failed",{error:c.message||"Manual assist flow failed",step:"failed",message:c.message||"Manual assist flow failed"}),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{await c(),b.manualSession=null,b.runtimeSession=null,a.manualFollowups.delete(h),await this.persistJobSnapshot(a,{forcePreview:!0})}})();a.manualFollowups.add(h)}cancelJob(a){let b=this.jobs.get(a);if(!b)return null;for(let a of(b.cancelRequested=!0,b.accounts)){a.abortController&&!a.abortController.signal.aborted&&a.abortController.abort();let b=a.runtimeSession?.context;b&&b.close().catch(()=>null),a.runtimeSession=null,a.manualSession=null}if(b.browser){let a=b.browser;b.browser=null,(0,W.forceCloseBrowser)(a).catch(()=>null)}return"queued"===b.status&&(b.status="cancelled",b.finishedAt=(0,e.kF)(),b.accounts.forEach(a=>{"queued"===a.status&&(a.status="cancelled")})),this.persistJobSnapshot(b,{forcePreview:!0}),ad(b)}}function ac({apiKey:a,proxyOptions:b}){return new q({apiKey:a,proxyOptions:b})}function ad(a,b={}){return a?{jobId:a.jobId,status:a.status,summary:function(a=[]){let b={total:a.length,queued:0,running:0,completed:0,success:0,failed:0,needs_manual:0,cancelled:0};for(let c of a){let a=c.status||"queued";"success"===a?(b.success+=1,b.completed+=1):"failed"===a||"failed_exchange"===a?(b.failed+=1,b.completed+=1):"needs_manual"===a?b.needs_manual+=1:"cancelled"===a?(b.cancelled+=1,b.completed+=1):"running"===a?b.running+=1:b.queued+=1}return b}(a.accounts),concurrency:a.concurrency,engine:a.engine,proxyPoolMode:a.proxyPoolMode,region:a.region,createdAt:a.createdAt,startedAt:a.startedAt,finishedAt:a.finishedAt,error:a.error,cancelRequested:a.cancelRequested,accounts:(a.accounts||[]).map(a=>({line:a.line,region:a.region,phone:a.phone,fiveSimOrderId:a.fiveSimOrderId,proxyUrl:a.proxyUrl?function(a){if(!a)return null;try{let b=new URL(a);return b.password&&(b.password="***"),b.toString()}catch{return a}}(a.proxyUrl):null,status:a.status,error:a.error,connectionId:a.connectionId,workerId:a.workerId,manualSessionAvailable:!!a.manualSession,currentStep:a.currentStep,updatedAt:a.updatedAt,logs:a.logs||[]})),preview:void 0!==b.preview?b.preview:a.lastPreview||null,...b}:null}function ae(){return(!globalThis.__codeBuddyCnBulkImportSingleton&&(globalThis.__codeBuddyCnBulkImportSingleton={manager:new ab}),globalThis.__codeBuddyCnBulkImportSingleton).manager}}};
1
+ "use strict";exports.id=8371,exports.ids=[8371],exports.modules={48371:(a,b,c)=>{c.d(b,{xM:()=>X,t9:()=>$,TK:()=>Z,cO:()=>e.cO,VU:()=>ae});var d=c(55511),e=c(53041),f=c(71998),g=c(89718),h=c(20116),i=c(92990),j=c(39609);let k=globalThis.fetch,l=new Set(["a timeout","is cancelled","is complete","number banned, when number already used"]);class m extends Error{constructor(a,{status:b,body:c}={}){super(a),this.name="FiveSimError",this.status=b,this.body=c}}class n extends m{constructor(a){super(`5sim order ${a} timed out waiting for SMS`),this.name="FiveSimTimeoutError",this.orderId=a}}class o extends m{constructor(a,b){super(`5sim order ${a} cancelled: ${b}`),this.name="FiveSimCancelledError",this.orderId=a}}class p extends m{constructor(a){super(`5sim order ${a} number was already used (banned)`),this.name="FiveSimBannedError",this.orderId=a}}class q{constructor({apiKey:a,proxyOptions:b=null}={}){if(!a||"string"!=typeof a||!a.trim())throw new m("5sim API key is required");this.apiKey=a.trim(),this.proxyOptions=b}_headers(a={}){return{Authorization:`Bearer ${this.apiKey}`,Accept:"application/json",...a}}async _get(a,{headers:b,...c}={}){let d=`https://5sim.net/v1${a}`,e=this.proxyOptions?.enabled?j.proxyAwareFetch:k,f=await e(d,{method:"GET",headers:this._headers(b),...c},this.proxyOptions);if(!f.ok){let b=await f.text().catch(()=>"");throw new m(`5sim request to ${a} failed (HTTP ${f.status}): ${b.slice(0,200)}`,{status:f.status,body:b})}let g=await f.text();try{return JSON.parse(g)}catch{if(g&&!g.startsWith("{"))throw new m(`5sim ${a} returned non-JSON: ${g.slice(0,200)}`,{status:f.status,body:g});return null}}async buyNumber({country:a="hongkong",operator:b="any",product:c="codebuddy",allowProductFallback:d=!1}={}){let e="codebuddy"===c&&d?["codebuddy","other"]:[c],f=null;for(let c of e){let g=`/user/buy/activation/${encodeURIComponent(a)}/${encodeURIComponent(b)}/${encodeURIComponent(c)}`;try{let a=await this._get(g);if(!a||!a.id||!a.phone)throw new m(`5sim buyNumber returned unexpected shape: ${JSON.stringify(a).slice(0,200)}`,{body:a});return a}catch(g){f=g;let a=g?.status,b=String(g?.body||g?.message||"").toLowerCase();if(!(d&&"codebuddy"===c&&e.includes("other")&&(400===a||404===a||b.includes("no free")||b.includes("not enough")||b.includes("no product"))))throw g}}throw f||new m("5sim buyNumber failed for all product candidates")}async checkOrder(a){return this._get(`/user/check/${a}`)}async pollCode(a,{timeoutMs:b=9e5,intervalMs:c=6e3,signal:d}={}){let e=Math.max(5e3,c),f=Date.now()+b,g=0;for(;Date.now()<f;){let b;if(d?.aborted)throw new o(a,"aborted by caller");try{b=await this.checkOrder(a)}catch(a){if(a instanceof m&&a.status>=500){if(++g>5)throw a;await s(e);continue}throw a}if(g=0,Array.isArray(b.sms)&&b.sms.length>0){let a=r(b.sms[b.sms.length-1]);if(a)return a}if(b.status&&l.has(b.status)){if("a timeout"===b.status)throw new n(a);if("number banned, when number already used"===b.status)throw new p(a);if("is cancelled"===b.status)throw new o(a,b.status);if("is complete"===b.status){let c=function(a){if(!Array.isArray(a))return null;for(let b=a.length-1;b>=0;b--){let c=r(a[b]);if(c)return c}return null}(b.sms);if(c)return c;throw new m(`5sim order ${a} completed but no SMS code found`,{body:b})}}await s(e)}throw new n(a)}async finishOrder(a){try{return await this._get(`/user/finish/${a}`),!0}catch(b){return console.warn(`[5sim] finishOrder(${a}) failed (best-effort): ${b.message}`),!1}}async cancelOrder(a){try{return await this._get(`/user/cancel/${a}`),!0}catch(b){return console.warn(`[5sim] cancelOrder(${a}) failed (best-effort): ${b.message}`),!1}}async banOrder(a){try{return await this._get(`/user/ban/${a}`),!0}catch(b){return console.warn(`[5sim] banOrder(${a}) failed (best-effort): ${b.message}`),!1}}async getBalance(){try{let a=await this._get("/user/profile");return{balance:a?.balance??null,rating:a?.rating??null}}catch(a){return console.warn(`[5sim] getBalance failed: ${a.message}`),{balance:null,rating:null}}}}function r(a){return a?a.code&&/\d{4,8}/.test(String(a.code))?String(a.code).match(/\d{4,8}/)[0]:a.text?function(a){if(!a)return null;let b=String(a).match(/\b(\d{4,8})\b/);return b?b[1]:null}(a.text):null:null}function s(a){return new Promise(b=>setTimeout(b,a))}let t=["https://www.codebuddy.cn/login/","https://www.codebuddy.cn/login","https://www.codebuddy.cn/register/","https://copilot.tencent.com/login/"],u=["text=手机号","div:has-text('手机号')","span:has-text('手机号')","[class*='phone']:has-text('手机号')","div.kc-phone-tab:has-text('手机号')"],v=["text=手机号","text=其他登录方式","text=微信","#phone-iframe",".login-phone-box"],w=["button:has-text('同意')","text=同意并继续","text=同意"],x="#phone-iframe",y="#phoneNumber",z=".kc-country-option",A=".kc-country-code-text",B="#code",C=['iframe[src*="captcha"]','iframe[src*="tcaptcha"]',"#tcaptcha","#tcaptcha_transform",".nc_iconfont",".nc_wrapper",'[class*="captcha"]','[id*="captcha"]',"text=滑块","text=拖动"],D=['[class*="avatar"]','[class*="user-info"]','[class*="logout"]',"text=退出登录","text=Logout","text=Sign out"],E=["#input-error",".pf-c-form__helper-text.pf-m-error",".kc-feedback-text"];async function F({page:a,phone:b,resolvePhone:c,pollSmsPromise:d,waitForSms:e,onStep:f,phoneFormatter:g=a=>a,timeouts:h={},signal:i=null,isCancelled:j=null}){let k=h.nav??3e4,l=h.action??15e3,m=h.codeWait??9e5,n=h.postSubmit??1e4,o=(a,b)=>f?.(a,b),p=()=>{if(i?.aborted||"function"==typeof j&&j()){let a=Error("Job cancelled");throw a.code="JOB_CANCELLED",a}};try{var q;let f,h;o("cn_opening_login_page","Opening CodeBuddy CN login page"),p();try{a.setDefaultNavigationTimeout(k),a.setDefaultTimeout(l)}catch{}try{await a.context().route("**/*",a=>{let b=a.request().url();return/googletagmanager|googleadservices|google-analytics|doubleclick|facebook|hotjar|clarity\.ms|hm\.baidu|google\.com\/rmkt/i.test(b)?a.abort():a.continue()})}catch{}let i=null,j=[];for(let b=1;b<=2;b++){p();try{let c=t[(b-1)%t.length];o("cn_nav_attempt",`Navigation attempt ${b}/2 → ${c}`),b>1&&(await a.context().clearCookies().catch(()=>{}),await a.waitForTimeout(800)),await a.goto(c,{waitUntil:"commit",timeout:k}),p(),await a.waitForFunction(()=>"loading"!==document.readyState,{timeout:1e4}).catch(()=>{}),p();let d=await I(a,w,{timeout:6e3});d&&(await d.click().catch(()=>{}),o("cn_consent_dismissed","Privacy consent dialog dismissed (同意)"),await a.waitForTimeout(1e3));let e=await J(a,v,25e3);if(p(),!e){let b=await a.locator("body").innerText().catch(()=>""),d=await a.evaluate(()=>document.documentElement?.outerHTML?.length||0).catch(()=>0),e=a.url();o("cn_spa_not_ready",`SPA not ready after 25s (url=${e}, body=${String(b).slice(0,80)}, html=${d})`),!b&&d<200?(o("cn_proxy_empty_page","Empty page body — proxy may be blocking codebuddy.cn"),j.push({code:"proxy_empty",detail:`empty page via ${c} (html=${d})`})):j.push({code:"spa_timeout",detail:`SPA not ready url=${e} html=${d}`});continue}o("cn_spa_ready","Login SPA ready"),o("cn_selecting_phone_tab","Selecting phone-number tab");let f=await I(a,u,{timeout:12e3});if(f?(await f.click().catch(()=>{}),o("cn_phone_tab_selected","Phone tab selected"),await a.waitForTimeout(800)):o("cn_phone_tab_not_found","Phone tab not found — checking if iframe already present"),o("cn_waiting_for_iframe","Waiting for phone iframe to load"),await a.locator(x).waitFor({state:"attached",timeout:18e3}).catch(()=>{}),i=await G(a)){if(await i.waitForSelector(y,{state:"visible",timeout:15e3}).then(()=>!0).catch(()=>!1)){o("cn_iframe_ready","Phone iframe + #phoneNumber ready");break}o("cn_iframe_empty","Iframe found but #phoneNumber not visible yet"),j.push({code:"iframe_empty",detail:"phone iframe attached but #phoneNumber not visible"}),i=null}else o("cn_iframe_missing",`No #phone-iframe (attempt ${b}/2)`),j.push({code:"iframe_missing",detail:"SPA loaded but #phone-iframe never appeared"})}catch(e){if(e?.code==="JOB_CANCELLED")throw e;let a=String(e?.message||e||"");o("cn_nav_retry",`Navigation attempt ${b}/2 failed: ${a.slice(0,120)}`);let c=/timeout|exceeded|ETIMEDOUT|net::ERR/i.test(a),d=/ERR_PROXY|ERR_TUNNEL|ERR_CONNECTION|NS_ERROR_PROXY|proxy/i.test(a);j.push({code:d?"proxy_network":c?"nav_timeout":"nav_error",detail:a.slice(0,160)})}}if(!i)return{status:"failed",error:function(a=[],b=2){let c=a.map(a=>a.code),d=a[a.length-1],e="Fix: use a live residential CN proxy (proxyPoolMode=single), concurrency 1, then retry. 5sim is not charged until the form loads.";return c.includes("proxy_empty")||c.includes("proxy_network")?`CodeBuddy CN login page empty/blocked via proxy after ${b} attempts (${d?.detail||"proxy blackhole"}). ${e}`:c.includes("nav_timeout")?`CodeBuddy CN navigation timed out after ${b} attempts (${d?.detail||"goto timeout"}). Proxy is too slow or dead. ${e}`:c.includes("spa_timeout")?`CodeBuddy CN SPA did not boot after ${b} attempts (${d?.detail||"no login UI"}). Proxy/CDN may be filtering JS. ${e}`:c.includes("iframe_missing")||c.includes("iframe_empty")?`CodeBuddy CN page opened but phone form iframe never appeared after ${b} attempts (${d?.detail||"no #phone-iframe"}). Site layout change or half-loaded SPA — retry with another CN exit IP. ${e}`:c.includes("nav_error")&&d?.detail?`CodeBuddy CN phone form failed after ${b} attempts: ${d.detail}. ${e}`:`Could not load CodeBuddy CN phone form after ${b} attempts (${d?.code||"unknown"}: ${d?.detail||"proxy/SPA"}). ${e}`}(j,2)};await i.waitForSelector("#kc-form-login",{timeout:l}).catch(()=>{}),await i.waitForSelector(y,{state:"visible",timeout:l}).catch(()=>{});let r=b;if("function"==typeof c&&(o("cn_ordering_after_form","Login form ready — ordering 5sim number now (not before nav)"),r=await c()),!r)return{status:"failed",error:"No phone number available (resolvePhone/phone missing)"};let s=g(r),{countryCode:z,localNumber:A}=(q=s,(!(h=String(q).replace(/[\s\-()]/g,"")).startsWith("+")&&/^\d+$/.test(h)&&(h="+"+h),h.startsWith("+852"))?{countryCode:"+852",localNumber:h.slice(4)}:h.startsWith("+86")?{countryCode:"+86",localNumber:h.slice(3)}:h.startsWith("+1")?{countryCode:"+1",localNumber:h.slice(2)}:{countryCode:"",localNumber:h.replace(/^\+/,"")});o("cn_selecting_country",`Selecting country code ${z} for phone ${s}`),await H(i,z,l,o),o("cn_entering_phone",`Entering phone number: ${A}`);let C=i.locator(y).first();try{await C.waitFor({state:"visible",timeout:l})}catch{return{status:"failed",error:"Could not find the phone number input (#phoneNumber) inside the iframe"}}await K(C,A),o("cn_phone_entered",`Phone number entered: ${A}`);try{let b=a.locator(".t-checkbox").last();await b.isVisible({timeout:3e3}).catch(()=>!1)&&(await b.click().catch(()=>{}),o("cn_agreement_checked","Agreement checkbox checked"))}catch{}o("cn_clicking_send_code","Clicking send SMS code button");let D=i.locator("input.btn-lg.code-btn").first(),E=!1;try{await D.waitFor({state:"visible",timeout:5e3}),E=!0}catch{let a=i.locator(".code-btn").first();try{await a.waitFor({state:"visible",timeout:5e3}),E=!0}catch{E=!1}}if(!E)return{status:"failed",error:"Could not find the send-SMS-code button (.code-btn) inside the iframe"};await D.click().catch(()=>{}),o("cn_send_code_clicked","Send code button clicked"),await i.waitForSelector(B,{state:"visible",timeout:5e3}).catch(()=>{});let F=await S(i);if(F)return{status:"failed",error:`Form error after sending code: ${F}`};o("cn_waiting_for_sms","Waiting for SMS verification code from 5sim (timer starts now)");try{let a;if("function"==typeof e)a=Promise.resolve().then(()=>e());else if(d)a=d;else throw Error("No waitForSms/pollSmsPromise provided");let b=new Promise((a,b)=>setTimeout(()=>b(Error("Timed out waiting for SMS code")),m));f=await Promise.race([a,b])}catch(a){if(a&&"FiveSimTimeoutError"===a.name)throw a;return{status:"failed",error:`Failed to receive SMS code: ${a.message}`}}if(!f)return{status:"failed",error:"Received empty SMS code from 5sim"};o("cn_sms_received",`SMS code received: ${f}`),o("cn_entering_code","Entering SMS verification code");let L=i.locator(B).first();try{await L.waitFor({state:"visible",timeout:l})}catch{return{status:"failed",error:"Could not find the verification code input (#code) inside the iframe"}}await K(L,f),o("cn_code_entered","Verification code entered");let M=Math.max(n,12e3),V=!1;for(let b=0;b<2;b++){o("cn_submitting",`Clicking submit button (attempt ${b+1}/2)`);let c=await G(a);if(!c){let b=await N(a,{timeoutMs:5e3,reportStep:o});if(b.ok)return o("cn_session_cookies",`Keycloak session after iframe detach (${b.cookie})`),{status:"success"};return{status:"failed",error:"Lost phone iframe after submit"}}if(await c.locator(y).first().isVisible({timeout:3e3}).catch(()=>!1)&&b>0){o("cn_re_entering_after_refresh",`Re-entering phone + code after refresh (retry ${b})`),await H(c,z,l,o);let d=c.locator(y).first();await K(d,A);try{let b=a.locator(".t-checkbox").first();await b.isVisible({timeout:2e3}).catch(()=>!1)&&await b.click().catch(()=>{})}catch{}let e=c.locator(B).first();await e.isVisible({timeout:3e3}).catch(()=>!1)&&await K(e,f)}if(await O(c,l),o("cn_submitted",`Registration form submitted (attempt ${b+1})`),await a.waitForLoadState("domcontentloaded",{timeout:5e3}).catch(()=>{}),await a.waitForTimeout(1e3),c=await G(a)||c,await R(c)){if(b>=1)return{status:"failed",error:"Account restricted (账号访问受限) after submit. Datacenter/VPS IP is usually blocked — use a residential CN proxy pool (proxyPoolMode=single) and retry."};o("cn_account_restricted",`Account restricted (attempt ${b+1}) — refreshing page and retrying`),await a.reload({waitUntil:"commit",timeout:k}).catch(()=>{}),await J(a,v,12e3);let c=await I(a,u,{timeout:8e3});c&&(await c.click().catch(()=>{}),await a.locator(x).waitFor({state:"attached",timeout:8e3}).catch(()=>{}));continue}if(o("cn_checking_captcha","Checking for captcha"),await T(a,c,3e3))return o("cn_captcha_detected","Captcha appeared during registration — manual assist needed"),{status:"needs_manual",error:"A captcha appeared during registration. Please complete it manually in the opened browser window.",captcha:!0};let d=await S(c);if(d)return{status:"failed",error:`Form error after submit: ${d}`};o("cn_waiting_session",`Waiting up to ${Math.round(M/1e3)}s for Keycloak session cookies`);let e=await N(a,{timeoutMs:M,reportStep:o,alsoCheckFrame:()=>G(a)});if(e.ok)return o("cn_session_cookies",`Keycloak session cookies present (${e.cookie}) — registration success`),{status:"success"};if(await P(a)&&b<1){o("cn_submit_no_effect","Login form still visible after submit — retrying");continue}o("cn_session_nudge","No session yet — navigating to home to complete OIDC handoff"),await a.goto("https://www.codebuddy.cn/",{waitUntil:"domcontentloaded",timeout:k}).catch(()=>{}),await a.waitForTimeout(2e3);let g=await N(a,{timeoutMs:1e4,reportStep:o});if(g.ok)return o("cn_session_cookies",`Keycloak session after home nudge (${g.cookie})`),{status:"success"};V=!0;break}if(!V)return o("cn_submit_retries_exhausted","Account restricted after 2 retries — needs manual"),{status:"needs_manual",error:"Account restricted after 2 refresh retries. Please try with a different VPN/proxy or complete manually."};o("cn_confirming_success","Confirming registration success");let W=await N(a,{timeoutMs:5e3});if(W.ok)return o("cn_registration_success",`Phone registration completed (Keycloak session: ${W.cookie})`),{status:"success"};if(await U(a,i,1e4))return o("cn_registration_success","Phone registration completed successfully (UI markers)"),{status:"success"};let X=await Q(a);return o("cn_success_unconfirmed",`No Keycloak session after submit — ${X.summary}`),{status:"needs_manual",error:`Login submit finished but no Keycloak session yet (${X.summary}). Complete login in the headed browser or retry with a fresh China proxy.`}}catch(a){if(a&&"FiveSimTimeoutError"===a.name)throw a;return o("cn_automation_error",`Phone registration automation error: ${a.message}`),{status:"failed",error:a.message||"Unexpected error during phone registration"}}}async function G(a){try{await a.locator(x).waitFor({state:"attached",timeout:5e3});let b=await a.locator(x).elementHandle({timeout:2e3});if(b){let a=await b.contentFrame();if(a)return a}}catch{}for(let b of a.frames()){let a=b.url();if(a.includes("codebuddy.cn/auth/realms/copilot")||a.includes("protocol/openid-connect"))return b}return null}async function H(a,b,c,d){if(!b)return;let e=Math.min(Number(c)||15e3,1e4),f=async()=>{let c=a.locator(A).first(),f=String(await c.textContent({timeout:3e3}).catch(()=>"")).trim();if(f===b)return void d?.("cn_country_already_selected",`Country code already ${b}`);d?.("cn_opening_country_dropdown",`Opening country dropdown (current: ${f}, target: ${b})`);let g=a.locator(".kc-country-selector").first();for(let c of(await g.waitFor({state:"visible",timeout:Math.min(e,5e3)}),await g.click({timeout:3e3}).catch(()=>{}),await a.locator(z).first().waitFor({state:"visible",timeout:3e3}).catch(()=>{}),({"+852":["中国香港","香港","Hong Kong","+852"],"+86":["中国大陆","中国","China","+86"],"+853":["中国澳门","澳门","Macau","+853"],"+886":["中国台湾","台湾","Taiwan","+886"]})[b]||[b]))for(let e of[a.locator(`${z}:has-text("${c}")`).first(),a.getByText(c,{exact:!1}).first()]){if(!await e.isVisible({timeout:1500}).catch(()=>!1))continue;let f=await e.textContent({timeout:1500}).catch(()=>c);await e.click({timeout:2e3}).catch(()=>{}),await a.locator(A).filter({hasText:b}).first().waitFor({state:"visible",timeout:2e3}).catch(()=>{}),d?.("cn_country_selected",`Country selected: ${String(f||c).trim()}`);return}d?.("cn_country_not_found",`Country code ${b} not found in dropdown; using default`),await a.locator("body").click({timeout:1e3}).catch(()=>{})};try{await Promise.race([f(),new Promise((a,b)=>{let c=setTimeout(()=>b(Error(`selectCountry timed out after ${e}ms`)),e);"function"==typeof c.unref&&c.unref()})])}catch(a){d?.("cn_country_select_error",`Country selection error: ${a.message}`)}}async function I(a,b,{timeout:c=1e4}={}){for(let d of b)try{let b=a.locator(d).first();return await b.waitFor({state:"visible",timeout:Math.min(c,5e3)}),b}catch{}return null}async function J(a,b,c=15e3){let d=Date.now()+c;for(;Date.now()<d;){for(let c of b)try{let b=a.locator(c).first();if(await b.isVisible().catch(()=>!1))return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function K(a,b){try{return await a.click(),await a.fill(""),await a.fill(b),!0}catch{try{return await a.click(),await a.press("Control+a"),await a.type(b,{delay:50}),!0}catch{return!1}}}let L=["KEYCLOAK_IDENTITY","KEYCLOAK_SESSION","KEYCLOAK_IDENTITY_LEGACY","KEYCLOAK_SESSION_LEGACY"];function M(a=[]){for(let b of L)if(a.some(a=>a.name===b))return b;let b=a.find(a=>a.name.startsWith("KEYCLOAK_")&&!/locale|theme|restart/i.test(a.name));return b?.name||null}async function N(a,{timeoutMs:b=2e4,reportStep:c,alsoCheckFrame:d}={}){let e=Date.now()+b,f=0;for(;Date.now()<e;){let b=await a.context().cookies().catch(()=>[]),g=M(b);if(g)return{ok:!0,cookie:g,cookies:b};try{let c=a.url();if(c&&!c.includes("/login")&&!c.includes("/auth/realms")){let a=b.find(a=>/^(access_token|cb_token|codebuddy)/i.test(a.name)||"token"===a.name&&a.domain?.includes("codebuddy"));if(a)return{ok:!0,cookie:a.name,cookies:b}}}catch{}if(d){let a=await d().catch(()=>null);if(a){if(await R(a))return{ok:!1,cookies:b,reason:"restricted"};let c=await S(a);if(c)return{ok:!1,cookies:b,reason:`form_error:${c}`}}}if(c&&Date.now()-f>4e3){f=Date.now();let a=Math.max(0,Math.round((e-Date.now())/1e3));c("cn_waiting_session",`Still waiting for Keycloak session… ${a}s left`)}await a.waitForTimeout(500)}return{ok:!1,cookies:await a.context().cookies().catch(()=>[])}}async function O(a,b=15e3){let c=a.locator("#kc-login").first();try{await c.waitFor({state:"visible",timeout:b}),await c.click({timeout:5e3}).catch(()=>{})}catch{}try{await a.evaluate(()=>{let a=document.querySelector("#kc-form-login")||document.querySelector("form");if(a)if("function"==typeof a.requestSubmit){let b=a.querySelector("#kc-login")||a.querySelector('[type="submit"]');b?a.requestSubmit(b):a.requestSubmit()}else a.submit()})}catch{await a.locator(B).first().press("Enter").catch(()=>{})}}async function P(a){let b=await G(a);return!!b&&b.locator(y).first().isVisible({timeout:1500}).catch(()=>!1)}async function Q(a){let b="";try{b=a.url()}catch{b="(unknown)"}let c=(await a.context().cookies().catch(()=>[])).map(a=>a.name).slice(0,20).join(",")||"(none)",d="";try{d=await a.evaluate(()=>(document.body?.innerText||"").replace(/\s+/g," ").trim().slice(0,120))}catch{d=""}let e=await G(a),f="no-iframe";if(e)try{f=(await e.url()).slice(0,80)}catch{f="iframe-detached"}return{summary:`url=${b.slice(0,60)} cookies=[${c}] frame=${f}${d?` text="${d}"`:""}`,url:b,cookieNames:c,bodySnippet:d}}async function R(a){try{let b=await a.evaluate(()=>document.body?.innerText||"");if(b.includes("账号访问受限")||b.includes("安全策略限制")||b.includes("访问受限"))return!0}catch{}return!1}async function S(a){for(let b of E)try{let c=a.locator(b).first();if(await c.isVisible({timeout:1500}).catch(()=>!1)){let a=await c.textContent().catch(()=>""),b=String(a).trim();if(b&&b.length>1)return b}}catch{}try{let b=await a.evaluate(()=>(document.body?.innerText||"").replace(/\s+/g," ").trim());for(let a of["验证码错误","验证码已过期","验证码无效","请输入正确的验证码","手机号格式","发送过于频繁","Invalid","incorrect"])if(b.includes(a)){let c=b.indexOf(a);return b.slice(Math.max(0,c-10),c+a.length+40).trim()}}catch{}return null}async function T(a,b,c=5e3){for(let b of C)try{let d=a.locator(b).first();if(await d.isVisible({timeout:Math.min(c,2e3)}).catch(()=>!1))return!0}catch{}if(b)for(let a of C)try{let d=b.locator(a).first();if(await d.isVisible({timeout:Math.min(c,2e3)}).catch(()=>!1))return!0}catch{}return!1}async function U(a,b,c=15e3){try{let b=await a.context().cookies().catch(()=>[]);if(M(b))return!0}catch{}for(let b of D)try{let d=a.locator(b).first();if(await d.isVisible({timeout:Math.min(c,2e3)}).catch(()=>!1))return!0}catch{}try{let b=a.url(),c=await a.context().cookies().catch(()=>[]),d=new Set(c.map(a=>a.name));if(b&&!b.includes("/login")&&!b.includes("/auth/realms")&&(d.has("qcloud_uid")||d.has("qcmainCSRFToken"))&&!d.has("login_risk_state")&&!await P(a).catch(()=>!1))return!0}catch{}return!1}var V=c(40891),W=c(75949);let X=200,Y=Number.parseInt(process.env.ZEVAI_CN_ACCOUNT_TIMEOUT_MS||"",10)||72e4,Z=new Set(["hongkong","china","any"]),$="hongkong";function _(a){return String(a||"").trim()}async function aa({apiKey:a,phone:b,region:d,fiveSimOrderId:e,account:f}){let{createProviderConnection:g}=await Promise.resolve().then(c.bind(c,71998)),h={provider:"codebuddy-cn",authType:"apikey",apiKey:a,accessToken:a,name:b||`5sim-${e}`,email:b||`5sim-${e}`,providerSpecificData:{domain:"www.codebuddy.cn",phoneNumber:b,fiveSimOrderId:e,region:d,automation:"5sim-phone-bulk"},testStatus:"active"};return{connection:await g(h)}}class ab extends e.Q6{constructor({browserLauncher:a,requestDeviceCodeFn:b=V.cT,pollToken:d=V.ZV,fetchLoginAccountFn:e=V.w8,saveConnection:f=aa,fiveSimClientFactory:g=ac,phoneAutomation:h=F,phoneFormatter:j=_,pollIntervalMs:k=i.ne.pollInterval,storageName:l="codebuddy-cn-bulk-import"}={}){super({browserLauncher:a||(async a=>{let{launchBulkImportBrowser:b}=await Promise.resolve().then(c.bind(c,75949)),d=Array.isArray(a?.proxyUrls)&&a.proxyUrls.length?a.proxyUrls[0]:null,e=process.env.ZEVAI_CN_HEADLESS,f="linux"===process.platform;return("0"===e||"false"===e)&&(f=!1),("1"===e||"true"===e)&&(f=!0),b({proxyUrl:d,headless:f,windowSize:{width:900,height:700}})}),storageName:l}),this.requestDeviceCode=b,this.pollToken=d,this.fetchLoginAccount=e,this.saveConnection=f,this.fiveSimClientFactory=g,this.phoneAutomation=h,this.phoneFormatter=j,this.pollIntervalMs=k}async startJob({count:a,concurrency:b,proxyPoolMode:c,proxyPoolId:g,manualProxyUrl:i,region:j}){let k=Number.parseInt(a,10);if(!Number.isFinite(k)||k<1)throw Object.assign(Error("At least one account is required (count >= 1)"),{error:"At least one account is required (count >= 1)"});if(k>X)throw Object.assign(Error(`Count exceeds maximum of ${X}`),{error:`Count exceeds maximum of ${X}`});let l=[...this.jobs.values()].find(a=>a&&("running"===a.status||"queued"===a.status||"needs_manual"===a.status)&&!a.cancelRequested);if(l)throw Object.assign(Error(`Another CodeBuddy CN job is still active (${l.jobId}). Cancel it or wait before starting again.`),{error:`Another CodeBuddy CN job is still active (${l.jobId}). Cancel it or wait before starting again.`});let m=Z.has(j)?j:$,n=[],o="string"==typeof i?i.trim():"";if(o){if(!/^(https?|socks4|socks5):\/\/.+/i.test(o))throw Object.assign(Error("manualProxyUrl must be a valid proxy URL (http://, https://, socks4://, or socks5://)"),{error:"manualProxyUrl must be a valid proxy URL (http://, https://, socks4://, or socks5://)"});n=[o]}else if("all"===c)n=(await (0,f.ui)({isActive:!0})).map(a=>a.proxyUrl).filter(Boolean);else if("single"===c&&g){let a=await (0,f.hr)(g);a?.isActive&&a?.proxyUrl&&(n=[a.proxyUrl])}let p=(0,d.randomUUID)(),q=(0,e.kF)(),r={jobId:p,status:"running",concurrency:function(a){let b=function(){try{let{totalMemGb:a}=(0,h.si)();return Number.isFinite(a)&&a>0&&a<3}catch{return!1}}()?1:8;if((0,h.uT)(a))return Math.min(b,Math.max(1,(0,h.q)()));let c=Number.parseInt(a,10);return Number.isFinite(c)?Math.min(b,Math.max(1,c)):Math.min(b,1)}(b),proxyPoolMode:o?"manual":c||"none",proxyUrls:n,region:m,createdAt:q,startedAt:q,finishedAt:null,error:null,cancelRequested:!1,browser:null,nextIndex:0,manualFollowups:new Set,persistPromise:Promise.resolve(),lastPreview:null,lastPreviewCapturedAt:0,accounts:Array.from({length:k},(a,b)=>({line:b+1,region:m,phone:null,fiveSimOrderId:null,fiveSimActivationId:null,proxyUrl:null,abortController:new AbortController,status:"queued",error:null,connectionId:null,workerId:null,manualSession:null,runtimeSession:null,currentStep:"queued",updatedAt:q,logs:[(0,e.hn)("queued","Queued and waiting for an available worker")]}))};return this.jobs.set(p,r),this.latestJobId=p,await this.persistJobSnapshot(r,{forcePreview:!1}),this.runJob(p),ad(r)}getJob(a){let b=this.jobs.get(a);return b?ad(b):null}async getJobWithPreview(a){let b=this.jobs.get(a);return b?(await this.persistJobSnapshot(b,{forcePreview:!1}),ad(b,{preview:b.lastPreview||null})):null}async processAccount(a,b,c){if(a.cancelRequested||!a.browser)return void this.finalizeAccount(b,"cancelled",{error:"Job cancelled"});let d=null,f=null,h=!1,i=null;try{let c;this.setAccountStep(b,"reading_settings","Reading 5sim API key from settings"),await this.persistJobSnapshot(a,{forcePreview:!0});let j=(await (0,g.mt)()).fiveSimApiKey;if(!j||!j.trim()){this.finalizeAccount(b,"failed",{error:"5sim API key not configured. Set it in the automation modal or dashboard settings.",step:"failed",message:"5sim API key not configured"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}d=this.fiveSimClientFactory({apiKey:j,proxyOptions:null}),this.setAccountStep(b,"creating_browser","Creating browser context (before 5sim order)"),await this.persistJobSnapshot(a,{forcePreview:!0});let k=await (0,e.go)(a.browser,b.proxyUrl);i=k.context;let l=k.page;if(b.runtimeSession={context:i,page:l},a.cancelRequested)throw Error("Job cancelled before ordering phone number");this.setAccountStep(b,"registering","Running phone registration on CodeBuddy CN"),await this.persistJobSnapshot(a,{forcePreview:!0});try{l.setDefaultTimeout(2e4),l.setDefaultNavigationTimeout(45e3)}catch{}let m=null,n=new Promise((a,b)=>{m=setTimeout(()=>{b(Object.assign(Error(`CodeBuddy CN account hard timeout after ${Math.round(Y/1e3)}s (browser will be force-closed)`),{code:"CN_ACCOUNT_HARD_TIMEOUT"}))},Y),"function"==typeof m.unref&&m.unref()});try{c=await Promise.race([this.phoneAutomation({page:l,signal:b.abortController?.signal,isCancelled:()=>!0===a.cancelRequested,resolvePhone:async()=>{if(a.cancelRequested)throw Error("Job cancelled before ordering phone number");this.setAccountStep(b,"ordering_number",`Form ready — ordering ${a.region} phone from 5sim (single buy)`),await this.persistJobSnapshot(a,{forcePreview:!0});let c=await d.buyNumber({country:a.region,product:"codebuddy",allowProductFallback:!1});return f=c.id,b.phone=c.phone,b.fiveSimOrderId=c.id,b.fiveSimActivationId=c.id,this.setAccountStep(b,"number_ordered",`Phone number ordered: ${c.phone} (1 buy, no re-order)`),await this.persistJobSnapshot(a,{forcePreview:!0}),c.phone},waitForSms:async()=>{if(!f)throw Error("Cannot poll SMS — no 5sim order id");this.setAccountStep(b,"sms_poll_started","SMS poll started (full 90s window after send-code)"),await this.persistJobSnapshot(a,{forcePreview:!1});let c=await d.pollCode(f,{timeoutMs:9e4,signal:b.abortController?.signal});return h=!0,c},onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})},phoneFormatter:this.phoneFormatter}),n])}finally{m&&clearTimeout(m)}if("failed"===c.status){let e=c.error||"Phone registration failed before submit";this.finalizeAccount(b,"failed",{error:e,step:"failed",message:e}),d&&f&&(h?await d.finishOrder(f):await d.cancelOrder(f)),b.runtimeSession=null,await i.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}await this.captureApiKey(a,b,i,l,d,f);return}catch(g){let c=g instanceof n,e=c?"SMS OTP not received within 90s — number banned":g.message||"Unexpected CodeBuddy CN bulk import failure";if(this.finalizeAccount(b,"failed",{error:e,step:c?"sms_timeout":"failed",message:e}),d&&f&&(h?await d.finishOrder(f):c?await d.banOrder(f):await d.cancelOrder(f)),b.runtimeSession=null,i&&await i.close().catch(()=>null),(g?.code==="CN_ACCOUNT_HARD_TIMEOUT"||a.cancelRequested)&&a.browser){let b=a.browser;a.browser=null,await (0,W.forceCloseBrowser)(b).catch(()=>null)}await this.persistJobSnapshot(a,{forcePreview:!0})}}async captureApiKey(a,b,c,d,e,f){let g="personal-edition-user-id",h=async(a,{timeout:b=12e3,interval:c=150}={})=>{let d=Date.now()+b;for(;Date.now()<d;){try{if(await a())return!0}catch{}await new Promise(a=>setTimeout(a,c))}return!1};try{this.setAccountStep(b,"waiting_session","Establishing CodeBuddy console session (probe APIs, not just cookies)"),await this.persistJobSnapshot(a,{forcePreview:!0});let i=async()=>{let a=await c.cookies().catch(()=>[]);return{cookies:a,names:new Set(a.map(a=>a.name)),list:a.map(a=>a.name)}},j=a=>a.has("KEYCLOAK_IDENTITY")||a.has("KEYCLOAK_SESSION")||a.has("KEYCLOAK_IDENTITY_LEGACY")||a.has("KEYCLOAK_SESSION_LEGACY"),k=a=>a.has("AUTH_SESSION_ID")||a.has("session")||a.has("qcloud_uid")||a.has("qcmainCSRFToken")||a.has("x_host_key_access"),l=async()=>d.evaluate(async()=>{try{let a=(window.location.hostname||"www.codebuddy.cn").endsWith("codebuddy.cn")?`${window.location.origin}`:"https://www.codebuddy.cn",b=await fetch(`${a}/console/accounts`,{credentials:"include",headers:{Accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","X-Domain":"www.codebuddy.cn","X-Product":"SaaS"}}),c=await b.text().catch(()=>""),d=null;try{d=c?JSON.parse(c):null}catch{d={_raw:String(c||"").slice(0,240),_notJson:!0}}return{status:b.status,data:d,text:String(c||"").slice(0,240)}}catch(a){return{status:0,error:a?.message||String(a)}}}).catch(()=>null),m=a=>{let b=a?.data;if(!b||"object"!=typeof b)return[];for(let a of[b?.data?.accounts,b?.accounts,b?.data?.list,b?.list,b?.data?.result,b?.result,b?.data?.items,b?.items,Array.isArray(b?.data)?b.data:null,Array.isArray(b)?b:null])if(Array.isArray(a)&&a.length>0)return a;return[]},n=async()=>{await Promise.race([d.waitForResponse(a=>/\/console\/accounts/i.test(a.url())&&500>a.status(),{timeout:1e4}).catch(()=>null),d.waitForResponse(a=>/\/console\/api\//i.test(a.url())&&500>a.status(),{timeout:1e4}).catch(()=>null),h(async()=>{let a=await i();return j(a.names)},{timeout:1e4,interval:200}),new Promise(a=>setTimeout(a,2500))])},o=["https://www.codebuddy.cn/","https://www.codebuddy.cn/console","https://www.codebuddy.cn/console/","https://www.codebuddy.cn/profile","https://www.codebuddy.cn/profile/keys","https://www.codebuddy.cn/login/"],p=[],q=null,r=!1,s="";for(let c=0;c<10;c+=1){if(a.cancelRequested)throw Error("Job cancelled while establishing session");let e=await i(),f=j(e.names),g=k(e.names),h=o[Math.min(c,o.length-1)];if(c<3||c%2==0||!g?(this.setAccountStep(b,"waiting_session",`OIDC handoff ${c+1}/10 → ${h.replace("https://www.codebuddy.cn","")} (${f?"KEYCLOAK":g?"soft-session":"weak"})`),await this.persistJobSnapshot(a,{forcePreview:!1}),await d.goto(h,{waitUntil:"domcontentloaded",timeout:25e3}).catch(()=>null),await n()):await new Promise(a=>setTimeout(a,300)),/codebuddy\.cn/i.test(d.url?.()||"")&&(String(d.url()||"").includes("/console")||!(c>=1))||(await d.goto("https://www.codebuddy.cn/console",{waitUntil:"domcontentloaded",timeout:25e3}).catch(()=>null),await n()),q=await l(),p=m(q),s=JSON.stringify(q?.data??q?.text??null).slice(0,180),q?.status===200&&Array.isArray(p)&&p.length>0){r=!0,this.setAccountStep(b,"session_ready",`Console session accepted (HTTP 200, ${p.length} account(s)${f?", KEYCLOAK ok":", soft session"})`),await this.persistJobSnapshot(a,{forcePreview:!0});break}if(g&&q?.status===200&&Array.isArray(p)&&0===p.length&&c>=4){this.setAccountStep(b,"session_soft","Console HTTP 200 but 0 accounts — trying personal API key with soft session (cookies ok)"),await this.persistJobSnapshot(a,{forcePreview:!0}),r=!0;break}this.setAccountStep(b,"resolving_enterprise",`Console not ready (HTTP ${q?.status||0}, accounts=${p.length}) — ${c+1}/10 body=${s.slice(0,80)}`),await this.persistJobSnapshot(a,{forcePreview:!1})}if(!r){let a=await i();throw Error(`Console accounts unavailable after login (HTTP ${q?.status||0}; cookies: ${a.list.slice(0,18).join(",")||"(none)"}; body=${s.slice(0,120)}) — session not accepted for API key`)}let t=g;if(Array.isArray(p)&&p.length>0){let a=p.find(a=>a?.lastLogin)||p[0];a?.type&&"personal"!==a.type&&a.enterpriseId?t=a.enterpriseId:a?.enterpriseId&&a?.type!=="personal"&&(t=a.enterpriseId)}this.setAccountStep(b,"creating_api_key",`Creating API key (enterprise=${t}, accounts=${p.length})`),await this.persistJobSnapshot(a,{forcePreview:!0});let u=async a=>d.evaluate(async({enterpriseId:a})=>{let b=(window.location.hostname||"www.codebuddy.cn").endsWith("codebuddy.cn")?window.location.origin:"https://www.codebuddy.cn",c=await fetch(`${b}/console/api/client/v1/api-keys`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","X-Domain":"www.codebuddy.cn","X-Product":"SaaS"},body:JSON.stringify({name:`zevai-router-${Date.now()}`,expire_in_days:365,user_enterprise_id:a})}),d=await c.text().catch(()=>""),e=null;try{e=d?JSON.parse(d):null}catch{e={_raw:String(d||"").slice(0,200)}}return{ok:c.ok,status:c.status,data:e}},{enterpriseId:a});await d.goto("https://www.codebuddy.cn/profile/keys",{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n();let v=await u(t).catch(()=>null);v&&v.ok||t===g||(this.setAccountStep(b,"retrying_api_key","Retrying with personal-edition enterprise id"),await this.persistJobSnapshot(a,{forcePreview:!1}),v=await u(g).catch(()=>null)),v&&v.ok||(this.setAccountStep(b,"retrying_api_key","Retrying API key from /console"),await this.persistJobSnapshot(a,{forcePreview:!0}),await d.goto("https://www.codebuddy.cn/console",{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n(),await d.goto("https://www.codebuddy.cn/profile/keys",{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n(),v=await u(g).catch(()=>null));let w=a=>!a?.ok&&(a?.status===401||a?.status===403||a?.status===0||!a);for(let c=1;c<=3&&w(v);c+=1){for(let e of(this.setAccountStep(b,"retrying_api_key",`API key 401/403 — OIDC re-handoff round ${c}/3 (waiting strong session)`),await this.persistJobSnapshot(a,{forcePreview:!0}),["https://www.codebuddy.cn/","https://www.codebuddy.cn/console","https://www.codebuddy.cn/profile/keys"]))await d.goto(e,{waitUntil:"domcontentloaded",timeout:45e3}).catch(()=>null),await n();await h(async()=>{let a=await i();return j(a.names)},{timeout:8e3*c,interval:300}).catch(()=>null),v=await u(g).catch(()=>null)}let x=v?.data?.code;if(!v||!v.ok||!v.data||0!==x&&200!==x&&void 0!==x){let a="string"==typeof v?.data?._raw?v.data._raw.replace(/\s+/g," ").slice(0,120):null,b=a&&/openresty|nginx|Authorization Required/i.test(a)?" [edge proxy blocked — session half-baked]":"";throw Error(`API key creation failed (HTTP ${v?.status??"no-response"}, code=${x??"n/a"})${b}: ${JSON.stringify(v?.data??null).slice(0,200)}`)}let y=v.data?.data||v.data,z=y?.apiKey||y?.key||y?.token||y?.secret||y?.api_key||("string"==typeof y?y:null)||v.data.apiKey||v.data.key||v.data.token||v.data.secret;if(!z||"string"!=typeof z)throw Error(`API key response did not contain a key field: ${JSON.stringify(v.data).slice(0,300)}`);this.setAccountStep(b,"api_key_created","API key created successfully"),await this.persistJobSnapshot(a,{forcePreview:!0}),this.setAccountStep(b,"saving_connection","Saving CodeBuddy CN connection"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:A}=await this.saveConnection({apiKey:z,phone:b.phone,region:b.region,fiveSimOrderId:f,account:b});await e.finishOrder(f),this.finalizeAccount(b,"success",{connectionId:A.id,step:"connection_saved",message:`CodeBuddy CN connection saved (phone: ${b.phone})`}),b.runtimeSession=null,await c.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(g){this.finalizeAccount(b,"needs_manual",{error:`Registration succeeded but API key capture failed: ${g.message}`,step:"awaiting_manual",message:`Registration done, API key capture failed: ${g.message}`}),await e.finishOrder(f).catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0}),await this.runCnManualFollowup(a,b,b.workerId,c,d,e,f)}}async runCnManualFollowup(a,b,c,d,e,f,g){let h=(async()=>{let c=async()=>{let a=b.manualSession,c=a?.context||d,e=a?.headedBrowser||null;c&&await c.close().catch(()=>null),e&&await e.close().catch(()=>null)};try{this.setAccountStep(b,"manual_waiting","Waiting for operator to complete in headed browser"),await this.persistJobSnapshot(a,{forcePreview:!0});let c=Date.now()+9e5,d=null;for(;Date.now()<c&&!a.cancelRequested;){await new Promise(a=>setTimeout(a,1e4));try{if(!e.url().includes("codebuddy.cn"))continue;let a=await e.evaluate(async()=>{let a=await fetch("/console/api/client/v1/api-keys",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","X-Domain":window.location.hostname||"www.codebuddy.cn","X-Product":"SaaS"},credentials:"include",body:JSON.stringify({name:"zevai-router-manual-"+Date.now(),expire_in_days:365,user_enterprise_id:"personal-edition-user-id"})}),b=await a.json().catch(()=>null);return{ok:a.ok,status:a.status,data:b}});if(a?.ok&&a.data){let b=a.data?.data||a.data;if((d=b?.apiKey||b?.key||b?.token||b?.secret||b?.api_key||("string"==typeof b?b:null))&&"string"==typeof d)break}}catch{}}if(a.cancelRequested){this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}if(!d)throw Error("Manual assist timed out — could not capture API key");this.setAccountStep(b,"saving_connection","Saving CodeBuddy CN connection (manual)"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:f}=await this.saveConnection({apiKey:d,phone:b.phone,region:b.region,fiveSimOrderId:g,account:b});this.finalizeAccount(b,"success",{connectionId:f.id,step:"connection_saved",message:`CodeBuddy CN connection saved via manual assist (phone: ${b.phone||"N/A"})`}),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}):this.finalizeAccount(b,"failed",{error:c.message||"Manual assist flow failed",step:"failed",message:c.message||"Manual assist flow failed"}),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{await c(),b.manualSession=null,b.runtimeSession=null,a.manualFollowups.delete(h),await this.persistJobSnapshot(a,{forcePreview:!0})}})();a.manualFollowups.add(h)}cancelJob(a){let b=this.jobs.get(a);if(!b)return null;for(let a of(b.cancelRequested=!0,b.accounts)){a.abortController&&!a.abortController.signal.aborted&&a.abortController.abort();let b=a.runtimeSession?.context;b&&b.close().catch(()=>null),a.runtimeSession=null,a.manualSession=null}if(b.browser){let a=b.browser;b.browser=null,(0,W.forceCloseBrowser)(a).catch(()=>null)}return"queued"===b.status&&(b.status="cancelled",b.finishedAt=(0,e.kF)(),b.accounts.forEach(a=>{"queued"===a.status&&(a.status="cancelled")})),this.persistJobSnapshot(b,{forcePreview:!0}),ad(b)}}function ac({apiKey:a,proxyOptions:b}){return new q({apiKey:a,proxyOptions:b})}function ad(a,b={}){return a?{jobId:a.jobId,status:a.status,summary:function(a=[]){let b={total:a.length,queued:0,running:0,completed:0,success:0,failed:0,needs_manual:0,cancelled:0};for(let c of a){let a=c.status||"queued";"success"===a?(b.success+=1,b.completed+=1):"failed"===a||"failed_exchange"===a?(b.failed+=1,b.completed+=1):"needs_manual"===a?b.needs_manual+=1:"cancelled"===a?(b.cancelled+=1,b.completed+=1):"running"===a?b.running+=1:b.queued+=1}return b}(a.accounts),concurrency:a.concurrency,proxyPoolMode:a.proxyPoolMode,region:a.region,createdAt:a.createdAt,startedAt:a.startedAt,finishedAt:a.finishedAt,error:a.error,cancelRequested:a.cancelRequested,accounts:(a.accounts||[]).map(a=>({line:a.line,region:a.region,phone:a.phone,fiveSimOrderId:a.fiveSimOrderId,proxyUrl:a.proxyUrl?function(a){if(!a)return null;try{let b=new URL(a);return b.password&&(b.password="***"),b.toString()}catch{return a}}(a.proxyUrl):null,status:a.status,error:a.error,connectionId:a.connectionId,workerId:a.workerId,manualSessionAvailable:!!a.manualSession,currentStep:a.currentStep,updatedAt:a.updatedAt,logs:a.logs||[]})),preview:void 0!==b.preview?b.preview:a.lastPreview||null,...b}:null}function ae(){return(!globalThis.__codeBuddyCnBulkImportSingleton&&(globalThis.__codeBuddyCnBulkImportSingleton={manager:new ab}),globalThis.__codeBuddyCnBulkImportSingleton).manager}}};
@@ -1 +1 @@
1
- "use strict";exports.id=891,exports.ids=[891,2130],exports.modules={40891:(a,b,c)=>{c.d(b,{cO:()=>d.cO,ZV:()=>n,cT:()=>m,w8:()=>o,Ol:()=>D,L_:()=>d.$w});var d=c(53041),e=c(92130),f=c(82506);let g="codebuddy",h="CodeBuddy",i=new Set(["codebuddy.ai","www.codebuddy.ai"]),j="personal-edition-user-id";function k(a){return new Promise(b=>setTimeout(b,a))}async function l({tokens:a,email:b}){let{createProviderConnection:d}=await Promise.resolve().then(c.bind(c,71998)),e={...a.providerSpecificData||{},loginEmail:b,automation:"gsuite-bulk"};a.webCookie&&(e.webCookie=a.webCookie,e.webCookieCapturedAt=a.webCookieCapturedAt||new Date().toISOString()),a.generatedApiKey&&(e.codebuddyApiKeyId=a.generatedApiKey.id||null,e.codebuddyApiKeyName=a.generatedApiKey.name||null,e.codebuddyApiKeyExpiresAt=a.generatedApiKey.expiresAt||null,e.authMode="generated-api-key");let f={provider:g,authType:"oauth",...a,email:b,providerSpecificData:e,expiresAt:a.expiresIn?new Date(Date.now()+1e3*a.expiresIn).toISOString():null,testStatus:"active"},h=a.generatedApiKey?.key||a.apiKey;return h&&(f.apiKey=h),{connection:await d(f)}}async function m(a){let{requestDeviceCode:b}=await Promise.all([c.e(7774),c.e(5433),c.e(5024),c.e(4404),c.e(9609),c.e(8590),c.e(3155),c.e(3110),c.e(318),c.e(8895),c.e(4177),c.e(3159)]).then(c.bind(c,74177));return b(a)}async function n(a,b){let{pollForToken:d}=await Promise.all([c.e(7774),c.e(5433),c.e(5024),c.e(4404),c.e(9609),c.e(8590),c.e(3155),c.e(3110),c.e(318),c.e(8895),c.e(4177),c.e(3159)]).then(c.bind(c,74177));return d(a,b)}async function o(a,b,c="www.codebuddy.ai"){if(!a||!b)return null;try{let d=await fetch(`https://${c}/v2/plugin/login/account?state=${encodeURIComponent(b)}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","X-Domain":c}});if(!d.ok)return null;let e=await d.json(),f=e?.data||e||{};if(!f||"object"!=typeof f)return null;return{uid:f.uid||null,nickname:f.nickname||null,email:f.email||null,enterpriseId:f.enterpriseId||null,enterpriseName:f.enterpriseName||null,rawAuth:f}}catch{return null}}async function p(a){if(!a)return null;try{let{getProviderConnections:b}=await Promise.resolve().then(c.bind(c,71998)),d=(await b({provider:g})).find(b=>"oauth"===b.authType&&b.email===a&&b.apiKey);return d?.apiKey||null}catch{return null}}async function q(a){if(!a?.cookies)return console.warn("[CodeBuddy] captureWebCookie: context.cookies not available"),null;try{let b=await a.cookies(["https://www.codebuddy.ai","https://codebuddy.ai"]);console.log(`[CodeBuddy] captureWebCookie: found ${b.length} raw cookies from browser context`);let c=b.filter(a=>{let b=String(a.domain||"").replace(/^\./,"").toLowerCase();return i.has(b)||b.endsWith(".codebuddy.ai")}).filter(a=>a.name&&a.value).sort((a,b)=>String(a.name).localeCompare(String(b.name)));if(0===c.length)return console.warn("[CodeBuddy] captureWebCookie: no useful cookies after filtering. Raw cookie names:",b.map(a=>`${a.name}@${a.domain}`).join(", ")),null;let d=c.map(a=>`${a.name}=${a.value}`).join("; ");return console.log(`[CodeBuddy] captureWebCookie: captured ${c.length} cookies (${d.length} chars). Names: ${c.map(a=>a.name).join(", ")}`),d}catch(a){return console.error("[CodeBuddy] captureWebCookie error:",a.message),null}}async function r(a,b={}){let c=await q(a);return c?{...b,webCookie:c,webCookieCapturedAt:new Date().toISOString()}:b}async function s(a,b,{method:c="POST",headers:d={},referrer:e,body:f}={}){return a.evaluate(async({url:a,method:b,headers:c,referrer:d,body:e})=>{let f=await fetch(a,{method:b,credentials:"include",headers:c,referrer:d,body:null==e?null:JSON.stringify(e)}),g=await f.text().catch(()=>""),h=null;try{h=g?JSON.parse(g):null}catch{h={raw:g}}return{ok:f.ok,status:f.status,payload:h,text:g}},{url:b,method:c,headers:d,referrer:e,body:f})}async function t(a,b){b?.("submitting_codebuddy_region_profile","Submitting CodeBuddy region profile via account API");let c=await s(a,"https://www.codebuddy.ai/console/login/account",{method:"POST",headers:{accept:"application/json, text/plain, */*","content-type":"application/json","x-requested-with":"XMLHttpRequest","x-domain":"www.codebuddy.ai"},referrer:"https://www.codebuddy.ai/register/user/complete",body:{attributes:{countryCode:["62"],countryFullName:["Indonesia"],countryName:["ID"]}}});return c.ok&&(c.payload?.code===0||c.payload?.code===200||void 0===c.payload?.code)?{ok:!0,code:c.payload?.code??0,message:c.payload?.msg||c.payload?.message||"OK"}:{ok:!1,code:c.payload?.code??c.status,message:c.payload?.msg||c.payload?.message||c.text||`HTTP ${c.status}`}}async function u(a,b){b?.("activating_codebuddy_trial","Applying or verifying CodeBuddy IDE trial");let c=()=>s(a,"https://www.codebuddy.ai/billing/ide/trial",{method:"POST",headers:{accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","x-domain":"www.codebuddy.ai"},referrer:"https://www.codebuddy.ai/profile/plan",body:null}),d=await c(),e=d?.payload?.code;if(d.ok&&14051===e)return{ok:!0,code:e,state:"already_applied",message:d.payload?.msg||"has applied trial"};if(d.ok&&(0===e||200===e||void 0===e)){await k(1200);let a=await c(),b=a?.payload?.code;return a.ok&&(0===b||200===b||14051===b||void 0===b)?{ok:!0,code:b??e??0,state:14051===b?"applied_confirmed":"applied",message:a.payload?.msg||d.payload?.msg||"OK"}:{ok:!1,code:b??a.status,message:a.payload?.msg||a.payload?.message||a.text||`HTTP ${a.status}`}}return{ok:!1,code:e??d.status,message:d.payload?.msg||d.payload?.message||d.text||`HTTP ${d.status}`}}async function v(a,b,c=45e3){let d=Date.now(),e=null;for(;Date.now()-d<c;){let c=await a.evaluate(async()=>{try{let a=await fetch("/console/accounts",{method:"GET",credentials:"include",headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json","x-requested-with":"XMLHttpRequest","X-Domain":window.location.hostname||"www.codebuddy.ai"}}),b=await a.text(),c=null;try{c=b?JSON.parse(b):null}catch{c=null}let d=c?.data?.accounts||c?.accounts||[];return{ok:a.ok,status:a.status,payload:c,accounts:d}}catch(a){return{ok:!1,status:0,error:a?.message||String(a)}}});if(c?.ok&&Array.isArray(c.accounts)&&c.accounts.length>0){let a=c.accounts.find(a=>a?.lastLogin)||c.accounts[0]||{};return{account:a,userEnterpriseId:a.type&&"personal"!==a.type&&a.enterpriseId?a.enterpriseId:j}}e=c?.error||`status=${c?.status||"unknown"}`,b?.("waiting_codebuddy_key_session",`Waiting for CodeBuddy web console session (${e})`),await a.waitForTimeout(1500)}let f=Error(`CodeBuddy key session invalid: ${e||"no account session"}`);throw f.step="key_session_invalid",f.status="needs_manual",f}async function w(a,b,c){return a.evaluate(async({endpoint:a,name:b,expireInDays:c,userEnterpriseId:d})=>{let e=await fetch(a,{method:"POST",mode:"cors",credentials:"include",headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"},body:JSON.stringify({name:b,expire_in_days:c,user_enterprise_id:d})}),f=await e.text(),g=null;try{g=f?JSON.parse(f):null}catch{g=null}return{ok:e.ok,status:e.status,payload:g,text:g?null:f.slice(0,300)}},{endpoint:"https://www.codebuddy.ai/console/api/client/v1/api-keys",name:b,expireInDays:365,userEnterpriseId:c})}async function x(a,b,c,{existingApiKey:d=null,directReplay:e=!1,userEnterpriseId:f=null}={}){let g,h;if(d)return{skipped:!0,key:d};if(!a){let a=Error("CodeBuddy browser session is not available for API key creation");throw a.step="key_session_invalid",a.status="needs_manual",a}let i=f||j;e?c?.("creating_codebuddy_api_key_direct","Replaying CodeBuddy API key creation from current web session"):(c?.("opening_codebuddy_keys","Opening CodeBuddy Access Keys page"),await a.goto("https://www.codebuddy.ai/profile/keys",{waitUntil:"domcontentloaded",timeout:3e4}),await a.waitForTimeout(2e3),i=(await v(a,c)).userEnterpriseId||i);let k=(g=String(b||"codebuddy").replace(/[^a-zA-Z0-9_.@-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)||"codebuddy",h=new Date().toISOString().replace(/[-:.TZ]/g,"").slice(0,14),`zevairouter-${g}-${h}`.slice(0,50)),l=[k,`${k.slice(0,41)}-${Math.random().toString(36).slice(2,8)}`.slice(0,50)],m=null;for(let b=0;b<l.length;b+=1){let d=l[b];c?.("creating_codebuddy_api_key",`Creating CodeBuddy API key${b?" with retry name":""}`);let e=await w(a,d,i);if(e?.ok&&(e.payload?.code===0||e.payload?.code===200||e.payload?.code===void 0)){let a=function(a,b){let c=a?.data||a||{},d=c.key||c.api_key||c.apiKey;if(!d)return null;let e=c.item||c.apiKeyItem||c;return{key:d,id:e?.key_id||e?.id||e?.keyId||null,name:e?.name||c.name||b,expiresAt:c.expires_at||c.expiresAt||e?.expires_at||e?.expiresAt||null,createdAt:e?.created_at||e?.createdAt||null}}(e.payload,d);if(a?.key)return a;let b=Error("CodeBuddy API key created but secret was not returned");throw b.step="key_create_no_secret",b.status="failed",b}let f=function(a,b){let c=b?.code??b?.error?.code??b?.data?.code,d=b?.msg||b?.message||b?.error?.message||b?.error||`HTTP ${a}`;return 401===a||403===a?{step:"key_session_invalid",status:"needs_manual",message:`CodeBuddy key session invalid (${a})`,retryable:!1}:12601===c?{step:"key_limit_reached",status:"failed",message:"CodeBuddy API key limit reached",retryable:!1}:12502===c?{step:"key_name_exists",status:"failed",message:"CodeBuddy API key name already exists",retryable:!0}:{step:"key_create_failed",status:"failed",message:d||"CodeBuddy API key creation failed",retryable:!1}}(e?.status,e?.payload||{message:e?.text});if(m=f,f.retryable&&0===b)continue;let g=Error(f.message);throw g.step=f.step,g.status=f.status,g}let n=Error(m?.message||"CodeBuddy API key creation failed");throw n.step=m?.step||"key_create_failed",n.status=m?.status||"failed",n}async function y(a,b){let c=(a,c)=>b?.(a,c);try{c("navigating_to_dashboard","Navigating to CodeBuddy to complete registration"),await a.goto("https://www.codebuddy.ai/home",{waitUntil:"domcontentloaded",timeout:3e4}),await a.waitForTimeout(3e3);let b=Date.now(),d=!1;for(;Date.now()-b<3e4&&(0,f.Jl)(a);){if(await (0,f.i_)(a,c)||await (0,f.np)(a,c)||await (0,f.$K)(a,c,h)){d=!0,await a.waitForTimeout(1500);continue}break}d&&c("complete_register_done","CodeBuddy registration completed, establishing session"),c("codebuddy_registration_ready","CodeBuddy registration flow is ready for API key creation")}catch(a){c("complete_register_skipped",`Could not complete registration: ${a.message}`)}}async function z({manager:a,job:b,account:c,context:d,page:e,tokens:f,email:g,createOptions:h={}}){let i=f||{};if(e){let d=await t(e,(d,e)=>{a.setAccountStep(c,d,e),a.persistJobSnapshot(b,{forcePreview:!1})});i={...i,providerSpecificData:{...i.providerSpecificData||{},codebuddyRegionSubmitOk:d.ok,codebuddyRegionSubmitCode:d.code??null,codebuddyRegionSubmitMessage:d.message||null}};let f=await u(e,(d,e)=>{a.setAccountStep(c,d,e),a.persistJobSnapshot(b,{forcePreview:!1})});if(!f.ok){let a=Error(f.message||"CodeBuddy IDE trial activation failed");throw a.step="trial_not_activated",a.status="trial_not_activated",a}i={...i,providerSpecificData:{...i.providerSpecificData||{},codebuddyTrialState:f.state||null,codebuddyTrialCode:f.code??null,codebuddyTrialMessage:f.message||null}}}a.setAccountStep(c,"creating_codebuddy_api_key","Generating CodeBuddy Access Key"),await a.persistJobSnapshot(b,{forcePreview:!0});let j=i.apiKey||i.generatedApiKey?.key||await a.findExistingApiKey(g),k=j?{skipped:!0,key:j}:await a.createApiKey(e,g,(d,e)=>{a.setAccountStep(c,d,e),a.persistJobSnapshot(b,{forcePreview:!1})},{existingApiKey:j,...h});a.setAccountStep(c,"saving_connection","Saving CodeBuddy connection with generated API key"),await a.persistJobSnapshot(b,{forcePreview:!0});let l=await r(d,{...i,...k?.skipped?{}:{generatedApiKey:k}}),{connection:m}=await a.saveConnection({tokens:l,email:g});return a.finalizeAccount(c,"success",{connectionId:m.id,step:"connection_saved",message:k?.skipped?"CodeBuddy connection already has an API key":"CodeBuddy connection saved with generated API key"}),{connection:m,generatedApiKey:k}}async function A(a,b=500){if(!a)return{};try{let c=await Promise.race([a,k(b).then(()=>null)]);return c?.tokens||{}}catch{return{}}}async function B({manager:a,job:b,account:c,context:d,page:e,successPromise:f,reason:g}){a.setAccountStep(c,"restricted_key_replay","Restricted page detected; replaying CodeBuddy Access Key creation from web session"),await a.persistJobSnapshot(b,{forcePreview:!0});let h=await A(f);return z({manager:a,job:b,account:c,context:d,page:e,tokens:{...h,providerSpecificData:{...h.providerSpecificData||{},restrictedDetected:!0,restrictedReason:g||"Account restricted page detected during automation",oauthTokenCaptured:!!h.accessToken}},email:c.email,createOptions:{directReplay:!0,userEnterpriseId:j}})}class C extends d.Q6{constructor({browserLauncher:a,googleAutomation:b=e.runGoogleAccountAutomation,requestDeviceCodeFn:c=m,pollToken:d=n,saveConnection:f=l,createApiKeyFn:g=x,findExistingApiKeyFn:h=p,fetchLoginAccountFn:i=o,pollIntervalMs:j=5e3}={}){super({browserLauncher:a,googleAutomation:b,storageName:"codebuddy-bulk-import"}),this.requestDeviceCode=c,this.pollToken=d,this.saveConnection=f,this.createApiKey=g,this.findExistingApiKey=h,this.fetchLoginAccount=i,this.pollIntervalMs=j}async runManualFollowup(a,b,c,d,e){let f=(async()=>{let c=async()=>{let a=b.manualSession,c=a?.context||d,e=a?.headedBrowser||null;c&&await c.close().catch(()=>null),e&&await e.close().catch(()=>null)};try{let c=await e;if(a.cancelRequested){this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}let f=b.manualSession?.page;f&&(this.setAccountStep(b,"completing_registration","Completing CodeBuddy registration"),await this.persistJobSnapshot(a,{forcePreview:!0}),await y(f,(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})})),await z({manager:this,job:a,account:b,context:b.manualSession?.context||d,page:f||b.manualSession?.page,tokens:c.tokens,email:b.email}),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}):this.finalizeAccount(b,c.status||"failed_exchange",{error:c.message||"Manual assist flow failed during token polling.",step:c.step||"exchange_failed",message:c.message||"Manual assist flow failed during token polling."}),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{await c(),b.manualSession=null,b.runtimeSession=null,a.manualFollowups.delete(f),await this.persistJobSnapshot(a,{forcePreview:!0})}})();a.manualFollowups.add(f)}async processAccount(a,b,c){if(a.cancelRequested||!a.browser)return void this.finalizeAccount(b,"cancelled",{error:"Job cancelled"});let{context:e,page:f}=await (0,d.go)(a.browser,b.proxyUrl);b.runtimeSession={context:e,page:f};try{this.setAccountStep(b,"preparing_worker",`Worker ${c} is preparing a browser context`),await this.persistJobSnapshot(a,{forcePreview:!0}),this.setAccountStep(b,"requesting_codebuddy_state","Requesting CodeBuddy OAuth state");let d=await this.requestDeviceCode(g),i=function(a,b){if(!a&&!b)return a;let c=new URL(a||"https://www.codebuddy.ai/login"),d=c.searchParams.get("platform")||"CLI",e=b||c.searchParams.get("state"),f=new URL("https://www.codebuddy.ai/login");return f.searchParams.set("platform",d),e&&f.searchParams.set("state",e),f.toString()}(d.verification_uri,d.device_code);if(!i||!d.device_code)throw Error("CodeBuddy did not return an OAuth login URL");let j=function({deviceCode:a,pollToken:b,onStep:c,fetchLoginAccount:d=o,timeoutMs:e=9e5,pollIntervalMs:f=5e3,maxTransientErrors:h=6,providerId:i=g,domain:j="www.codebuddy.ai"}){return(async()=>{let g=Date.now(),l=0,m=0;for(;Date.now()-g<e;){Date.now()-l>f-100&&(c?.("polling_codebuddy_token","Waiting for CodeBuddy OAuth token"),l=Date.now());let e=await b(i,a);if(e.success){let b=e.tokens?.accessToken||e.tokens?.access_token,c=await d(b,a,j);return{tokens:{...e.tokens,providerSpecificData:{...e.tokens?.providerSpecificData||{},...c?.uid?{uid:c.uid}:{},...c?.nickname?{nickname:c.nickname}:{},...c?.enterpriseId?{enterpriseId:c.enterpriseId}:{},...c?.enterpriseName?{enterpriseName:c.enterpriseName}:{},...c?.rawAuth?{rawAuth:c.rawAuth}:{},domain:j,oauthState:a}}}}if(!e.pending&&"authorization_pending"!==e.error&&"slow_down"!==e.error){if("request_failed"===e.error&&m<h){m+=1,c?.("codebuddy_poll_retry",`CodeBuddy token poll failed temporarily (${m}/${h}); retrying`),await k(f);continue}throw Error(e.errorDescription||e.error||"CodeBuddy OAuth polling failed")}await k(f)}throw Error("Timed out waiting for CodeBuddy OAuth token")})()}({deviceCode:d.device_code,pollToken:this.pollToken,fetchLoginAccount:this.fetchLoginAccount,pollIntervalMs:this.pollIntervalMs,onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})}});j.catch(()=>null);let l=await this.googleAutomation({page:f,authUrl:i,email:b.email,password:b.password,successPromise:j,serviceLabel:h,openingStep:"opening_codebuddy_oauth",openingMessage:"Opening CodeBuddy OAuth page",successStep:"codebuddy_token_received",successMessage:"CodeBuddy OAuth token received",onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})}});if("success"===l.status){this.setAccountStep(b,"completing_registration","Completing CodeBuddy registration"),await this.persistJobSnapshot(a,{forcePreview:!0}),await y(f,(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})});let{connection:c}=await z({manager:this,job:a,account:b,context:e,page:f,tokens:l.tokens,email:b.email});b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}if("failed_restricted"===l.status){await B({manager:this,job:a,account:b,context:e,page:f,successPromise:j,reason:l.error}),b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}if("needs_manual"===l.status){b.manualSession={context:e,page:f,opened:!1,openedAt:null},this.setAccountStep(b,"awaiting_manual","Waiting for manual completion in the browser session"),this.finalizeAccount(b,"needs_manual",{error:l.error,step:"awaiting_manual",message:l.error}),await this.persistJobSnapshot(a,{forcePreview:!0}),await this.runManualFollowup(a,b,c,e,j);return}this.finalizeAccount(b,l.status||"failed",{error:l.error||"CodeBuddy Google automation failed.",step:l.status||"failed",message:l.error||"CodeBuddy Google automation failed."}),b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while CodeBuddy automation was running"}):this.finalizeAccount(b,c.status||"failed",{error:c.message||"Unexpected CodeBuddy bulk import failure.",step:c.step||"failed",message:c.message||"Unexpected CodeBuddy bulk import failure."}),b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{b.password=void 0}}}function D(){return(!globalThis.__codeBuddyBulkImportSingleton&&(globalThis.__codeBuddyBulkImportSingleton={manager:new C}),globalThis.__codeBuddyBulkImportSingleton).manager}},92130:(a,b,c)=>{c.d(b,{runGoogleAccountAutomation:()=>d.rk});var d=c(82506)}};
1
+ "use strict";exports.id=891,exports.ids=[891],exports.modules={40891:(a,b,c)=>{c.d(b,{cO:()=>d.cO,ZV:()=>n,cT:()=>m,w8:()=>o,Ol:()=>D,L_:()=>d.$w});var d=c(53041),e=c(92130),f=c(82506);let g="codebuddy",h="CodeBuddy",i=new Set(["codebuddy.ai","www.codebuddy.ai"]),j="personal-edition-user-id";function k(a){return new Promise(b=>setTimeout(b,a))}async function l({tokens:a,email:b}){let{createProviderConnection:d}=await Promise.resolve().then(c.bind(c,71998)),e={...a.providerSpecificData||{},loginEmail:b,automation:"gsuite-bulk"};a.webCookie&&(e.webCookie=a.webCookie,e.webCookieCapturedAt=a.webCookieCapturedAt||new Date().toISOString()),a.generatedApiKey&&(e.codebuddyApiKeyId=a.generatedApiKey.id||null,e.codebuddyApiKeyName=a.generatedApiKey.name||null,e.codebuddyApiKeyExpiresAt=a.generatedApiKey.expiresAt||null,e.authMode="generated-api-key");let f={provider:g,authType:"oauth",...a,email:b,providerSpecificData:e,expiresAt:a.expiresIn?new Date(Date.now()+1e3*a.expiresIn).toISOString():null,testStatus:"active"},h=a.generatedApiKey?.key||a.apiKey;return h&&(f.apiKey=h),{connection:await d(f)}}async function m(a){let{requestDeviceCode:b}=await Promise.all([c.e(7774),c.e(5433),c.e(5024),c.e(4404),c.e(9609),c.e(8590),c.e(3155),c.e(3110),c.e(318),c.e(8895),c.e(4177),c.e(3159)]).then(c.bind(c,74177));return b(a)}async function n(a,b){let{pollForToken:d}=await Promise.all([c.e(7774),c.e(5433),c.e(5024),c.e(4404),c.e(9609),c.e(8590),c.e(3155),c.e(3110),c.e(318),c.e(8895),c.e(4177),c.e(3159)]).then(c.bind(c,74177));return d(a,b)}async function o(a,b,c="www.codebuddy.ai"){if(!a||!b)return null;try{let d=await fetch(`https://${c}/v2/plugin/login/account?state=${encodeURIComponent(b)}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","X-Domain":c}});if(!d.ok)return null;let e=await d.json(),f=e?.data||e||{};if(!f||"object"!=typeof f)return null;return{uid:f.uid||null,nickname:f.nickname||null,email:f.email||null,enterpriseId:f.enterpriseId||null,enterpriseName:f.enterpriseName||null,rawAuth:f}}catch{return null}}async function p(a){if(!a)return null;try{let{getProviderConnections:b}=await Promise.resolve().then(c.bind(c,71998)),d=(await b({provider:g})).find(b=>"oauth"===b.authType&&b.email===a&&b.apiKey);return d?.apiKey||null}catch{return null}}async function q(a){if(!a?.cookies)return console.warn("[CodeBuddy] captureWebCookie: context.cookies not available"),null;try{let b=await a.cookies(["https://www.codebuddy.ai","https://codebuddy.ai"]);console.log(`[CodeBuddy] captureWebCookie: found ${b.length} raw cookies from browser context`);let c=b.filter(a=>{let b=String(a.domain||"").replace(/^\./,"").toLowerCase();return i.has(b)||b.endsWith(".codebuddy.ai")}).filter(a=>a.name&&a.value).sort((a,b)=>String(a.name).localeCompare(String(b.name)));if(0===c.length)return console.warn("[CodeBuddy] captureWebCookie: no useful cookies after filtering. Raw cookie names:",b.map(a=>`${a.name}@${a.domain}`).join(", ")),null;let d=c.map(a=>`${a.name}=${a.value}`).join("; ");return console.log(`[CodeBuddy] captureWebCookie: captured ${c.length} cookies (${d.length} chars). Names: ${c.map(a=>a.name).join(", ")}`),d}catch(a){return console.error("[CodeBuddy] captureWebCookie error:",a.message),null}}async function r(a,b={}){let c=await q(a);return c?{...b,webCookie:c,webCookieCapturedAt:new Date().toISOString()}:b}async function s(a,b,{method:c="POST",headers:d={},referrer:e,body:f}={}){return a.evaluate(async({url:a,method:b,headers:c,referrer:d,body:e})=>{let f=await fetch(a,{method:b,credentials:"include",headers:c,referrer:d,body:null==e?null:JSON.stringify(e)}),g=await f.text().catch(()=>""),h=null;try{h=g?JSON.parse(g):null}catch{h={raw:g}}return{ok:f.ok,status:f.status,payload:h,text:g}},{url:b,method:c,headers:d,referrer:e,body:f})}async function t(a,b){b?.("submitting_codebuddy_region_profile","Submitting CodeBuddy region profile via account API");let c=await s(a,"https://www.codebuddy.ai/console/login/account",{method:"POST",headers:{accept:"application/json, text/plain, */*","content-type":"application/json","x-requested-with":"XMLHttpRequest","x-domain":"www.codebuddy.ai"},referrer:"https://www.codebuddy.ai/register/user/complete",body:{attributes:{countryCode:["62"],countryFullName:["Indonesia"],countryName:["ID"]}}});return c.ok&&(c.payload?.code===0||c.payload?.code===200||void 0===c.payload?.code)?{ok:!0,code:c.payload?.code??0,message:c.payload?.msg||c.payload?.message||"OK"}:{ok:!1,code:c.payload?.code??c.status,message:c.payload?.msg||c.payload?.message||c.text||`HTTP ${c.status}`}}async function u(a,b){b?.("activating_codebuddy_trial","Applying or verifying CodeBuddy IDE trial");let c=()=>s(a,"https://www.codebuddy.ai/billing/ide/trial",{method:"POST",headers:{accept:"application/json, text/plain, */*","x-requested-with":"XMLHttpRequest","x-domain":"www.codebuddy.ai"},referrer:"https://www.codebuddy.ai/profile/plan",body:null}),d=await c(),e=d?.payload?.code;if(d.ok&&14051===e)return{ok:!0,code:e,state:"already_applied",message:d.payload?.msg||"has applied trial"};if(d.ok&&(0===e||200===e||void 0===e)){await k(1200);let a=await c(),b=a?.payload?.code;return a.ok&&(0===b||200===b||14051===b||void 0===b)?{ok:!0,code:b??e??0,state:14051===b?"applied_confirmed":"applied",message:a.payload?.msg||d.payload?.msg||"OK"}:{ok:!1,code:b??a.status,message:a.payload?.msg||a.payload?.message||a.text||`HTTP ${a.status}`}}return{ok:!1,code:e??d.status,message:d.payload?.msg||d.payload?.message||d.text||`HTTP ${d.status}`}}async function v(a,b,c=45e3){let d=Date.now(),e=null;for(;Date.now()-d<c;){let c=await a.evaluate(async()=>{try{let a=await fetch("/console/accounts",{method:"GET",credentials:"include",headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json","x-requested-with":"XMLHttpRequest","X-Domain":window.location.hostname||"www.codebuddy.ai"}}),b=await a.text(),c=null;try{c=b?JSON.parse(b):null}catch{c=null}let d=c?.data?.accounts||c?.accounts||[];return{ok:a.ok,status:a.status,payload:c,accounts:d}}catch(a){return{ok:!1,status:0,error:a?.message||String(a)}}});if(c?.ok&&Array.isArray(c.accounts)&&c.accounts.length>0){let a=c.accounts.find(a=>a?.lastLogin)||c.accounts[0]||{};return{account:a,userEnterpriseId:a.type&&"personal"!==a.type&&a.enterpriseId?a.enterpriseId:j}}e=c?.error||`status=${c?.status||"unknown"}`,b?.("waiting_codebuddy_key_session",`Waiting for CodeBuddy web console session (${e})`),await a.waitForTimeout(1500)}let f=Error(`CodeBuddy key session invalid: ${e||"no account session"}`);throw f.step="key_session_invalid",f.status="needs_manual",f}async function w(a,b,c){return a.evaluate(async({endpoint:a,name:b,expireInDays:c,userEnterpriseId:d})=>{let e=await fetch(a,{method:"POST",mode:"cors",credentials:"include",headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"},body:JSON.stringify({name:b,expire_in_days:c,user_enterprise_id:d})}),f=await e.text(),g=null;try{g=f?JSON.parse(f):null}catch{g=null}return{ok:e.ok,status:e.status,payload:g,text:g?null:f.slice(0,300)}},{endpoint:"https://www.codebuddy.ai/console/api/client/v1/api-keys",name:b,expireInDays:365,userEnterpriseId:c})}async function x(a,b,c,{existingApiKey:d=null,directReplay:e=!1,userEnterpriseId:f=null}={}){let g,h;if(d)return{skipped:!0,key:d};if(!a){let a=Error("CodeBuddy browser session is not available for API key creation");throw a.step="key_session_invalid",a.status="needs_manual",a}let i=f||j;e?c?.("creating_codebuddy_api_key_direct","Replaying CodeBuddy API key creation from current web session"):(c?.("opening_codebuddy_keys","Opening CodeBuddy Access Keys page"),await a.goto("https://www.codebuddy.ai/profile/keys",{waitUntil:"domcontentloaded",timeout:3e4}),await a.waitForTimeout(2e3),i=(await v(a,c)).userEnterpriseId||i);let k=(g=String(b||"codebuddy").replace(/[^a-zA-Z0-9_.@-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)||"codebuddy",h=new Date().toISOString().replace(/[-:.TZ]/g,"").slice(0,14),`zevairouter-${g}-${h}`.slice(0,50)),l=[k,`${k.slice(0,41)}-${Math.random().toString(36).slice(2,8)}`.slice(0,50)],m=null;for(let b=0;b<l.length;b+=1){let d=l[b];c?.("creating_codebuddy_api_key",`Creating CodeBuddy API key${b?" with retry name":""}`);let e=await w(a,d,i);if(e?.ok&&(e.payload?.code===0||e.payload?.code===200||e.payload?.code===void 0)){let a=function(a,b){let c=a?.data||a||{},d=c.key||c.api_key||c.apiKey;if(!d)return null;let e=c.item||c.apiKeyItem||c;return{key:d,id:e?.key_id||e?.id||e?.keyId||null,name:e?.name||c.name||b,expiresAt:c.expires_at||c.expiresAt||e?.expires_at||e?.expiresAt||null,createdAt:e?.created_at||e?.createdAt||null}}(e.payload,d);if(a?.key)return a;let b=Error("CodeBuddy API key created but secret was not returned");throw b.step="key_create_no_secret",b.status="failed",b}let f=function(a,b){let c=b?.code??b?.error?.code??b?.data?.code,d=b?.msg||b?.message||b?.error?.message||b?.error||`HTTP ${a}`;return 401===a||403===a?{step:"key_session_invalid",status:"needs_manual",message:`CodeBuddy key session invalid (${a})`,retryable:!1}:12601===c?{step:"key_limit_reached",status:"failed",message:"CodeBuddy API key limit reached",retryable:!1}:12502===c?{step:"key_name_exists",status:"failed",message:"CodeBuddy API key name already exists",retryable:!0}:{step:"key_create_failed",status:"failed",message:d||"CodeBuddy API key creation failed",retryable:!1}}(e?.status,e?.payload||{message:e?.text});if(m=f,f.retryable&&0===b)continue;let g=Error(f.message);throw g.step=f.step,g.status=f.status,g}let n=Error(m?.message||"CodeBuddy API key creation failed");throw n.step=m?.step||"key_create_failed",n.status=m?.status||"failed",n}async function y(a,b){let c=(a,c)=>b?.(a,c);try{c("navigating_to_dashboard","Navigating to CodeBuddy to complete registration"),await a.goto("https://www.codebuddy.ai/home",{waitUntil:"domcontentloaded",timeout:3e4}),await a.waitForTimeout(3e3);let b=Date.now(),d=!1;for(;Date.now()-b<3e4&&(0,f.Jl)(a);){if(await (0,f.i_)(a,c)||await (0,f.np)(a,c)||await (0,f.$K)(a,c,h)){d=!0,await a.waitForTimeout(1500);continue}break}d&&c("complete_register_done","CodeBuddy registration completed, establishing session"),c("codebuddy_registration_ready","CodeBuddy registration flow is ready for API key creation")}catch(a){c("complete_register_skipped",`Could not complete registration: ${a.message}`)}}async function z({manager:a,job:b,account:c,context:d,page:e,tokens:f,email:g,createOptions:h={}}){let i=f||{};if(e){let d=await t(e,(d,e)=>{a.setAccountStep(c,d,e),a.persistJobSnapshot(b,{forcePreview:!1})});i={...i,providerSpecificData:{...i.providerSpecificData||{},codebuddyRegionSubmitOk:d.ok,codebuddyRegionSubmitCode:d.code??null,codebuddyRegionSubmitMessage:d.message||null}};let f=await u(e,(d,e)=>{a.setAccountStep(c,d,e),a.persistJobSnapshot(b,{forcePreview:!1})});if(!f.ok){let a=Error(f.message||"CodeBuddy IDE trial activation failed");throw a.step="trial_not_activated",a.status="trial_not_activated",a}i={...i,providerSpecificData:{...i.providerSpecificData||{},codebuddyTrialState:f.state||null,codebuddyTrialCode:f.code??null,codebuddyTrialMessage:f.message||null}}}a.setAccountStep(c,"creating_codebuddy_api_key","Generating CodeBuddy Access Key"),await a.persistJobSnapshot(b,{forcePreview:!0});let j=i.apiKey||i.generatedApiKey?.key||await a.findExistingApiKey(g),k=j?{skipped:!0,key:j}:await a.createApiKey(e,g,(d,e)=>{a.setAccountStep(c,d,e),a.persistJobSnapshot(b,{forcePreview:!1})},{existingApiKey:j,...h});a.setAccountStep(c,"saving_connection","Saving CodeBuddy connection with generated API key"),await a.persistJobSnapshot(b,{forcePreview:!0});let l=await r(d,{...i,...k?.skipped?{}:{generatedApiKey:k}}),{connection:m}=await a.saveConnection({tokens:l,email:g});return a.finalizeAccount(c,"success",{connectionId:m.id,step:"connection_saved",message:k?.skipped?"CodeBuddy connection already has an API key":"CodeBuddy connection saved with generated API key"}),{connection:m,generatedApiKey:k}}async function A(a,b=500){if(!a)return{};try{let c=await Promise.race([a,k(b).then(()=>null)]);return c?.tokens||{}}catch{return{}}}async function B({manager:a,job:b,account:c,context:d,page:e,successPromise:f,reason:g}){a.setAccountStep(c,"restricted_key_replay","Restricted page detected; replaying CodeBuddy Access Key creation from web session"),await a.persistJobSnapshot(b,{forcePreview:!0});let h=await A(f);return z({manager:a,job:b,account:c,context:d,page:e,tokens:{...h,providerSpecificData:{...h.providerSpecificData||{},restrictedDetected:!0,restrictedReason:g||"Account restricted page detected during automation",oauthTokenCaptured:!!h.accessToken}},email:c.email,createOptions:{directReplay:!0,userEnterpriseId:j}})}class C extends d.Q6{constructor({browserLauncher:a,googleAutomation:b=e.rk,requestDeviceCodeFn:c=m,pollToken:d=n,saveConnection:f=l,createApiKeyFn:g=x,findExistingApiKeyFn:h=p,fetchLoginAccountFn:i=o,pollIntervalMs:j=5e3}={}){super({browserLauncher:a,googleAutomation:b,storageName:"codebuddy-bulk-import"}),this.requestDeviceCode=c,this.pollToken=d,this.saveConnection=f,this.createApiKey=g,this.findExistingApiKey=h,this.fetchLoginAccount=i,this.pollIntervalMs=j}async runManualFollowup(a,b,c,d,e){let f=(async()=>{let c=async()=>{let a=b.manualSession,c=a?.context||d,e=a?.headedBrowser||null;c&&await c.close().catch(()=>null),e&&await e.close().catch(()=>null)};try{let c=await e;if(a.cancelRequested){this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}let f=b.manualSession?.page;f&&(this.setAccountStep(b,"completing_registration","Completing CodeBuddy registration"),await this.persistJobSnapshot(a,{forcePreview:!0}),await y(f,(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})})),await z({manager:this,job:a,account:b,context:b.manualSession?.context||d,page:f||b.manualSession?.page,tokens:c.tokens,email:b.email}),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}):this.finalizeAccount(b,c.status||"failed_exchange",{error:c.message||"Manual assist flow failed during token polling.",step:c.step||"exchange_failed",message:c.message||"Manual assist flow failed during token polling."}),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{await c(),b.manualSession=null,b.runtimeSession=null,a.manualFollowups.delete(f),await this.persistJobSnapshot(a,{forcePreview:!0})}})();a.manualFollowups.add(f)}async processAccount(a,b,c){if(a.cancelRequested||!a.browser)return void this.finalizeAccount(b,"cancelled",{error:"Job cancelled"});let{context:e,page:f}=await (0,d.go)(a.browser,b.proxyUrl);b.runtimeSession={context:e,page:f};try{this.setAccountStep(b,"preparing_worker",`Worker ${c} is preparing a browser context`),await this.persistJobSnapshot(a,{forcePreview:!0}),this.setAccountStep(b,"requesting_codebuddy_state","Requesting CodeBuddy OAuth state");let d=await this.requestDeviceCode(g),i=function(a,b){if(!a&&!b)return a;let c=new URL(a||"https://www.codebuddy.ai/login"),d=c.searchParams.get("platform")||"CLI",e=b||c.searchParams.get("state"),f=new URL("https://www.codebuddy.ai/login");return f.searchParams.set("platform",d),e&&f.searchParams.set("state",e),f.toString()}(d.verification_uri,d.device_code);if(!i||!d.device_code)throw Error("CodeBuddy did not return an OAuth login URL");let j=function({deviceCode:a,pollToken:b,onStep:c,fetchLoginAccount:d=o,timeoutMs:e=9e5,pollIntervalMs:f=5e3,maxTransientErrors:h=6,providerId:i=g,domain:j="www.codebuddy.ai"}){return(async()=>{let g=Date.now(),l=0,m=0;for(;Date.now()-g<e;){Date.now()-l>f-100&&(c?.("polling_codebuddy_token","Waiting for CodeBuddy OAuth token"),l=Date.now());let e=await b(i,a);if(e.success){let b=e.tokens?.accessToken||e.tokens?.access_token,c=await d(b,a,j);return{tokens:{...e.tokens,providerSpecificData:{...e.tokens?.providerSpecificData||{},...c?.uid?{uid:c.uid}:{},...c?.nickname?{nickname:c.nickname}:{},...c?.enterpriseId?{enterpriseId:c.enterpriseId}:{},...c?.enterpriseName?{enterpriseName:c.enterpriseName}:{},...c?.rawAuth?{rawAuth:c.rawAuth}:{},domain:j,oauthState:a}}}}if(!e.pending&&"authorization_pending"!==e.error&&"slow_down"!==e.error){if("request_failed"===e.error&&m<h){m+=1,c?.("codebuddy_poll_retry",`CodeBuddy token poll failed temporarily (${m}/${h}); retrying`),await k(f);continue}throw Error(e.errorDescription||e.error||"CodeBuddy OAuth polling failed")}await k(f)}throw Error("Timed out waiting for CodeBuddy OAuth token")})()}({deviceCode:d.device_code,pollToken:this.pollToken,fetchLoginAccount:this.fetchLoginAccount,pollIntervalMs:this.pollIntervalMs,onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})}});j.catch(()=>null);let l=await this.googleAutomation({page:f,authUrl:i,email:b.email,password:b.password,successPromise:j,serviceLabel:h,openingStep:"opening_codebuddy_oauth",openingMessage:"Opening CodeBuddy OAuth page",successStep:"codebuddy_token_received",successMessage:"CodeBuddy OAuth token received",onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})}});if("success"===l.status){this.setAccountStep(b,"completing_registration","Completing CodeBuddy registration"),await this.persistJobSnapshot(a,{forcePreview:!0}),await y(f,(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})});let{connection:c}=await z({manager:this,job:a,account:b,context:e,page:f,tokens:l.tokens,email:b.email});b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}if("failed_restricted"===l.status){await B({manager:this,job:a,account:b,context:e,page:f,successPromise:j,reason:l.error}),b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}if("needs_manual"===l.status){b.manualSession={context:e,page:f,opened:!1,openedAt:null},this.setAccountStep(b,"awaiting_manual","Waiting for manual completion in the browser session"),this.finalizeAccount(b,"needs_manual",{error:l.error,step:"awaiting_manual",message:l.error}),await this.persistJobSnapshot(a,{forcePreview:!0}),await this.runManualFollowup(a,b,c,e,j);return}this.finalizeAccount(b,l.status||"failed",{error:l.error||"CodeBuddy Google automation failed.",step:l.status||"failed",message:l.error||"CodeBuddy Google automation failed."}),b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while CodeBuddy automation was running"}):this.finalizeAccount(b,c.status||"failed",{error:c.message||"Unexpected CodeBuddy bulk import failure.",step:c.step||"failed",message:c.message||"Unexpected CodeBuddy bulk import failure."}),b.runtimeSession=null,await e.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{b.password=void 0}}}function D(){return(!globalThis.__codeBuddyBulkImportSingleton&&(globalThis.__codeBuddyBulkImportSingleton={manager:new C}),globalThis.__codeBuddyBulkImportSingleton).manager}},92130:(a,b,c)=>{c.d(b,{rk:()=>d.rk});var d=c(82506)}};
@@ -1 +1 @@
1
- "use strict";exports.id=9609,exports.ids=[9609],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=6048e5,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:408,cooldownMs:5e3},{status:409,cooldownMs:5e3},{status:429,backoff:!0}]},39609:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>r});var d=c(47774),e=c(27910),f=c(41004);let g=globalThis.fetch,h=new Map,i=new Map,j=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],k=["8.8.8.8","8.8.4.4"];function l(a){return null==a?"":String(a).trim()}async function m(a){let b=i.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,23)),e=new b.Resolver;e.setServers(k);let g=d(e.resolve4.bind(e)),h=await g(a);return i.set(a,{ip:h[0],expiry:Date.now()+f.v1.dnsCacheTtlMs}),h[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function n(a,b){let c,d=l(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function o(a){let b=l(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function p(a){let b=o(a);if(!b)return null;if(!h.has(b)){h.size>=f.v1.proxyDispatchersMaxSize&&h.delete(h.keys().next().value);let{ProxyAgent:a}=await Promise.resolve().then(c.t.bind(c,47774,19));h.set(b,new a({uri:b}))}return h.get(b)}async function q(a,b,d){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,path:a.pathname+a.search,method:d.method||"POST",headers:{...d.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:e.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),d.body&&i.write("string"==typeof d.body?d.body:JSON.stringify(d.body)),i.end()}),g.on("error",f)})}async function r(a,b={},c=null){let e="string"==typeof a?a:a.toString(),f=l(c?.vercelRelayUrl);if(f){let a=new URL(e),c={...b.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return g(f,{...b,headers:c})}let h=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=l(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=l(b?.noProxy??b?.connectionNoProxy);return d&&n(a,d)?null:o(c)}(e,c),i=h?null:o(function(a){let b;if(n(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(e)),k=h||i;if(function(a){try{let b=new URL(a).hostname;return j.some(a=>b.includes(a))}catch{return!1}}(e)){if(k)try{let c=await p(k);return await (0,d.fetch)(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(e),c=await m(a.hostname);if(c)return await q(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(k)try{let c=await p(k);return await (0,d.fetch)(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return g(a,b)}async function s(a,b={}){return r(a,b,null)}globalThis.fetch!==s&&(globalThis.fetch=s)},41004:(a,b,c)=>{c.d(b,{C8:()=>l,DR:()=>k,Uc:()=>h,cI:()=>j,eo:()=>i,gx:()=>d,pH:()=>g,v1:()=>e,xM:()=>f}),c(3662);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=6e4,g=6e4,h=64e3,i=32e3,j={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function k(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let l=["Please write a 5-10 word title for the following conversation:"]}};
1
+ "use strict";exports.id=9609,exports.ids=[9609],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=6048e5,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:408,cooldownMs:5e3},{status:409,cooldownMs:5e3},{status:429,backoff:!0}]},39609:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>r});var d=c(47774),e=c(27910),f=c(41004);let g=globalThis.fetch,h=new Map,i=new Map,j=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],k=["8.8.8.8","8.8.4.4"];function l(a){return null==a?"":String(a).trim()}async function m(a){let b=i.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,23)),e=new b.Resolver;e.setServers(k);let g=d(e.resolve4.bind(e)),h=await g(a);return i.set(a,{ip:h[0],expiry:Date.now()+f.v1.dnsCacheTtlMs}),h[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function n(a,b){let c,d=l(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function o(a){let b=l(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function p(a){let b=o(a);if(!b)return null;if(!h.has(b)){h.size>=f.v1.proxyDispatchersMaxSize&&h.delete(h.keys().next().value);let{ProxyAgent:a}=await Promise.resolve().then(c.t.bind(c,47774,19));h.set(b,new a({uri:b}))}return h.get(b)}async function q(a,b,d){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,path:a.pathname+a.search,method:d.method||"POST",headers:{...d.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:e.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),d.body&&i.write("string"==typeof d.body?d.body:JSON.stringify(d.body)),i.end()}),g.on("error",f)})}async function r(a,b={},c=null){let e="string"==typeof a?a:a.toString(),f=l(c?.vercelRelayUrl);if(f){let a=new URL(e),c={...b.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return g(f,{...b,headers:c})}let h=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=l(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=l(b?.noProxy??b?.connectionNoProxy);return d&&n(a,d)?null:o(c)}(e,c),i=h?null:o(function(a){let b;if(n(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(e)),k=h||i;if(function(a){try{let b=new URL(a).hostname;return j.some(a=>b.includes(a))}catch{return!1}}(e)){if(k)try{let c=await p(k);return await (0,d.hd)(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(e),c=await m(a.hostname);if(c)return await q(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(k)try{let c=await p(k);return await (0,d.hd)(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return g(a,b)}async function s(a,b={}){return r(a,b,null)}globalThis.fetch!==s&&(globalThis.fetch=s)},41004:(a,b,c)=>{c.d(b,{C8:()=>l,DR:()=>k,Uc:()=>h,cI:()=>j,eo:()=>i,gx:()=>d,pH:()=>g,v1:()=>e,xM:()=>f}),c(3662);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=6e4,g=6e4,h=64e3,i=32e3,j={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function k(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let l=["Please write a 5-10 word title for the following conversation:"]}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/Z0U80pm6SJ5xtgUbMnxKJ/_buildManifest.js","static/Z0U80pm6SJ5xtgUbMnxKJ/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-948b910ed7afd0b8.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-907785a527d8128b.js","static/chunks/main-app-19158719aba2802f.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/UWLJAHSkQ3J2j71dIudYw/_buildManifest.js","static/UWLJAHSkQ3J2j71dIudYw/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-948b910ed7afd0b8.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-907785a527d8128b.js","static/chunks/main-app-19158719aba2802f.js"],rootMainFilesTree:{},pages:{"/_app":[]}};