zevairouter 1.0.82 → 1.0.84

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 (550) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +24 -24
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  6. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  60. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  61. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  62. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  63. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  64. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  66. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  68. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  70. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  71. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  72. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  73. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  74. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  75. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  77. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  281. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  282. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  283. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  284. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  285. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  286. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  287. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  288. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  289. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  290. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  291. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  292. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  293. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  294. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  295. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  297. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  298. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  299. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  300. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  301. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  302. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  303. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  304. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  305. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  306. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  307. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  308. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  309. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  310. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  311. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  313. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  314. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  315. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  316. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  317. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  318. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  319. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  320. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  321. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  322. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  323. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  324. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  325. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  326. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  327. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  328. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  329. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  330. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  331. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  332. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  333. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  334. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  335. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  336. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  337. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  338. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  339. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  340. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  341. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  342. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  343. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  344. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  345. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  346. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  347. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  348. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  349. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  350. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  351. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  352. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  353. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  354. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  355. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  356. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  357. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  358. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  359. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  360. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  361. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  362. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  363. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  364. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  365. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  366. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  367. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  368. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  369. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  370. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  371. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  372. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  373. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  374. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  375. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  376. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  377. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  378. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  379. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  380. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  381. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  382. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  383. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  384. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  385. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  386. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  387. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  388. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  389. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  390. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  391. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  392. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  393. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  394. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  395. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  396. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  397. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  398. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  399. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  400. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  401. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  402. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  403. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  404. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  405. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  406. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  407. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  408. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  409. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  410. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  411. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  412. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  413. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  414. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  415. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  416. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  417. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  418. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  419. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  420. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  421. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  422. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  423. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  424. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  425. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  426. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  427. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  428. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  429. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  430. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  431. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  432. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  433. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  434. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  435. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  436. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  437. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  438. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  439. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  440. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  441. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  442. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  443. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  444. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  445. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  446. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  447. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  448. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  449. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  450. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  451. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  452. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  453. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  454. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  455. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  456. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  457. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  458. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  459. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  460. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  461. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  462. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  463. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  464. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  465. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  466. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  467. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  468. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  469. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  470. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  471. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  472. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  473. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  474. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  475. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  476. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  477. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  478. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  479. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  480. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  481. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  482. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  483. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  484. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  485. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  486. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  487. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  488. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  489. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  490. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  491. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  492. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  493. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  494. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  495. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  496. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  497. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  498. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  499. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  500. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  501. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  502. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  503. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  504. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  505. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  506. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  507. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  508. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  509. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  510. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  511. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  512. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  513. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  514. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  515. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  516. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  517. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  518. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  519. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  520. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  521. package/cli/app/.next-cli-build/server/app-paths-manifest.json +24 -24
  522. package/cli/app/.next-cli-build/server/chunks/1396.js +1 -1
  523. package/cli/app/.next-cli-build/server/chunks/2130.js +1 -0
  524. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  525. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  526. package/cli/app/.next-cli-build/server/chunks/3487.js +1 -1
  527. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  528. package/cli/app/.next-cli-build/server/chunks/5000.js +2 -2
  529. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  530. package/cli/app/.next-cli-build/server/chunks/7774.js +2 -2
  531. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -1
  532. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -1
  533. package/cli/app/.next-cli-build/server/chunks/8590.js +1 -1
  534. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  535. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  536. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  537. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  538. package/cli/app/.next-cli-build/static/chunks/{3702-8bcbe9f21ef7a39f.js → 3702-2ae85ab0e262237e.js} +1 -1
  539. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  540. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  541. package/cli/app/package.json +1 -1
  542. package/cli/cli.js +124 -1
  543. package/cli/package.json +1 -1
  544. package/package.json +1 -1
  545. package/src/lib/oauth/services/grokCliBulkImportManager.js +110 -59
  546. package/src/lib/oauth/services/grokXaiEmailAutomation.js +428 -34
  547. package/src/lib/oauth/services/kiroGoogleAutomation.js +518 -161
  548. package/src/lib/oauth/services/tempmailClient.js +146 -18
  549. /package/cli/app/.next-cli-build/static/{nVDxJht6esrgJRNsO9HaO → vfxzLlib7n2DZ-lkAYEUg}/_buildManifest.js +0 -0
  550. /package/cli/app/.next-cli-build/static/{nVDxJht6esrgJRNsO9HaO → vfxzLlib7n2DZ-lkAYEUg}/_ssgManifest.js +0 -0
@@ -43,35 +43,194 @@ async function typeSlow(locator, value, delay = 35) {
43
43
  await locator.type(value, { delay });
44
44
  }
45
45
 
46
+ async function readTurnstileToken(page) {
47
+ return page.evaluate(() => {
48
+ const pick = (root) => {
49
+ const el = root.querySelector?.(
50
+ "input[name=cf-turnstile-response], textarea[name=cf-turnstile-response], [name=cf-turnstile-response]"
51
+ );
52
+ const v = el ? String(el.value || "") : "";
53
+ return v.length > 20 ? v : "";
54
+ };
55
+ let v = pick(document);
56
+ if (v) return v;
57
+ // Some widgets stash token in response fields after success
58
+ for (const el of document.querySelectorAll("[data-sitekey], .cf-turnstile, #cf-turnstile")) {
59
+ const input = el.querySelector?.("input, textarea");
60
+ if (input?.value && String(input.value).length > 20) return String(input.value);
61
+ }
62
+ return "";
63
+ }).catch(() => "");
64
+ }
65
+
66
+ /**
67
+ * Nudge Turnstile the way a human would: scroll into view, move mouse, click
68
+ * the widget / checkbox iframe. CloakBrowser humanize alone is not enough if
69
+ * the checkbox never receives a real click.
70
+ */
71
+ async function interactWithTurnstile(page) {
72
+ // Scroll any turnstile host into view
73
+ await page.evaluate(() => {
74
+ const host = document.querySelector(
75
+ ".cf-turnstile, [data-sitekey], iframe[src*='turnstile'], iframe[src*='challenges.cloudflare']"
76
+ );
77
+ host?.scrollIntoView?.({ block: "center", behavior: "instant" });
78
+ }).catch(() => null);
79
+
80
+ // Prefer clicking the visible iframe box on the main page (Playwright hit-test)
81
+ const iframeLocators = [
82
+ 'iframe[src*="challenges.cloudflare.com"]',
83
+ 'iframe[src*="turnstile"]',
84
+ ".cf-turnstile iframe",
85
+ "iframe[title*='Widget']",
86
+ "iframe[title*='Cloudflare']",
87
+ ];
88
+ for (const sel of iframeLocators) {
89
+ try {
90
+ const loc = page.locator(sel).first();
91
+ if (!(await loc.isVisible({ timeout: 400 }).catch(() => false))) continue;
92
+ const box = await loc.boundingBox().catch(() => null);
93
+ if (box && box.width > 10 && box.height > 10) {
94
+ // Human-ish approach: move near, then click center-left (checkbox side)
95
+ const x = box.x + Math.min(30, box.width * 0.2);
96
+ const y = box.y + box.height / 2;
97
+ await page.mouse.move(x - 40, y - 20, { steps: 8 }).catch(() => null);
98
+ await wait(120 + Math.floor(Math.random() * 180));
99
+ await page.mouse.move(x, y, { steps: 6 }).catch(() => null);
100
+ await wait(80 + Math.floor(Math.random() * 120));
101
+ await page.mouse.click(x, y).catch(() => null);
102
+ return "iframe-box";
103
+ }
104
+ await loc.click({ timeout: 1_500, force: true }).catch(() => null);
105
+ return "iframe-click";
106
+ } catch {
107
+ // next selector
108
+ }
109
+ }
110
+
111
+ // Frame-level checkbox (managed challenge)
112
+ try {
113
+ for (const frame of page.frames()) {
114
+ const url = frame.url() || "";
115
+ if (!/turnstile|challenges\.cloudflare/i.test(url)) continue;
116
+ const checkbox = frame.locator(
117
+ "input[type=checkbox], #challenge-stage input, .ctp-checkbox-label, label"
118
+ ).first();
119
+ if (await checkbox.isVisible({ timeout: 500 }).catch(() => false)) {
120
+ await checkbox.click({ timeout: 1_500 }).catch(() => null);
121
+ return "frame-checkbox";
122
+ }
123
+ await frame.locator("body").click({ timeout: 800, position: { x: 24, y: 24 } }).catch(() => null);
124
+ return "frame-body";
125
+ }
126
+ } catch {
127
+ // ignore
128
+ }
129
+
130
+ // Idle human noise — small mouse jitter helps some managed challenges
131
+ try {
132
+ const vp = page.viewportSize() || { width: 1280, height: 900 };
133
+ await page.mouse.move(
134
+ 80 + Math.floor(Math.random() * (vp.width - 160)),
135
+ 80 + Math.floor(Math.random() * (vp.height - 160)),
136
+ { steps: 5 }
137
+ );
138
+ } catch {
139
+ // ignore
140
+ }
141
+ return null;
142
+ }
143
+
46
144
  /**
47
- * Wait until Cloudflare Turnstile populates cf-turnstile-response (or times out).
145
+ * Wait until Cloudflare Turnstile populates cf-turnstile-response.
146
+ * Actively interacts with the widget (not passive poll-only).
48
147
  */
49
- export async function waitForTurnstile(page, { timeoutMs = 60_000, onStep } = {}) {
148
+ export async function waitForTurnstile(page, { timeoutMs = 120_000, onStep, label = "Turnstile" } = {}) {
50
149
  const start = Date.now();
150
+ let lastInteractAt = 0;
151
+ let interactCount = 0;
152
+ let sawWidget = false;
153
+
154
+ onStep?.("turnstile_wait", `Waiting for Cloudflare ${label} (auto-click widget)`);
155
+
51
156
  while (Date.now() - start < timeoutMs) {
52
- const val = await page.evaluate(() => {
53
- const el = document.querySelector("input[name=cf-turnstile-response], [name=cf-turnstile-response]");
54
- return el ? String(el.value || "") : "";
55
- }).catch(() => "");
56
- if (val && val.length > 20) {
57
- onStep?.("turnstile_ok", `Cloudflare Turnstile solved (${val.length} chars)`);
157
+ const val = await readTurnstileToken(page);
158
+ if (val) {
159
+ onStep?.("turnstile_ok", `Cloudflare ${label} solved (${val.length} chars)`);
58
160
  return { ok: true, length: val.length };
59
161
  }
60
- // try click challenge iframe
61
- try {
62
- for (const frame of page.frames()) {
63
- const url = frame.url() || "";
64
- if (/turnstile|challenges\.cloudflare/i.test(url)) {
65
- await frame.locator("input[type=checkbox], body").first().click({ timeout: 800 }).catch(() => null);
66
- }
162
+
163
+ // Detect widget presence for better logs
164
+ if (!sawWidget) {
165
+ sawWidget = await page.evaluate(() => {
166
+ return !!(
167
+ document.querySelector(".cf-turnstile, [data-sitekey], iframe[src*='turnstile'], iframe[src*='challenges.cloudflare']")
168
+ || [...document.querySelectorAll("iframe")].some((f) => /turnstile|cloudflare/i.test(f.src || ""))
169
+ );
170
+ }).catch(() => false);
171
+ if (sawWidget) {
172
+ onStep?.("turnstile_widget", "Turnstile widget detected — interacting");
67
173
  }
68
- } catch {
69
- // ignore
70
174
  }
71
- await wait(1_200);
175
+
176
+ // Interact every ~2.5s (not every loop) so we don't spam-click
177
+ const now = Date.now();
178
+ if (now - lastInteractAt > 2_500) {
179
+ lastInteractAt = now;
180
+ interactCount += 1;
181
+ const how = await interactWithTurnstile(page);
182
+ if (how && interactCount <= 6) {
183
+ onStep?.("turnstile_click", `Turnstile interact #${interactCount} (${how})`);
184
+ }
185
+ }
186
+
187
+ await wait(900 + Math.floor(Math.random() * 400));
72
188
  }
73
- onStep?.("turnstile_timeout", "Turnstile did not produce a token in time");
74
- return { ok: false };
189
+
190
+ const final = await readTurnstileToken(page);
191
+ if (final) {
192
+ onStep?.("turnstile_ok", `Cloudflare ${label} solved late (${final.length} chars)`);
193
+ return { ok: true, length: final.length };
194
+ }
195
+
196
+ onStep?.(
197
+ "turnstile_timeout",
198
+ `Turnstile did not produce a token in ${Math.round(timeoutMs / 1000)}s (widget=${sawWidget ? "seen" : "missing"}, clicks=${interactCount})`
199
+ );
200
+ return { ok: false, sawWidget, interactCount };
201
+ }
202
+
203
+ /**
204
+ * Wait for Turnstile with one automatic retry (reload widget / re-click).
205
+ * Only then should callers surface needs_manual.
206
+ */
207
+ export async function waitForTurnstileWithRetry(page, { timeoutMs = 90_000, onStep } = {}) {
208
+ let result = await waitForTurnstile(page, { timeoutMs, onStep, label: "Turnstile" });
209
+ if (result.ok) return result;
210
+
211
+ onStep?.("turnstile_retry", "First Turnstile wait failed — soft refresh + retry");
212
+ // Soft nudge: re-focus page and re-run widget (xAI often remounts on activity)
213
+ try {
214
+ await page.mouse.wheel(0, 120);
215
+ await wait(400);
216
+ await page.mouse.wheel(0, -120);
217
+ await wait(600);
218
+ // If site exposes turnstile reset
219
+ await page.evaluate(() => {
220
+ try {
221
+ if (window.turnstile?.reset) window.turnstile.reset();
222
+ } catch { /* ignore */ }
223
+ }).catch(() => null);
224
+ } catch {
225
+ // ignore
226
+ }
227
+
228
+ result = await waitForTurnstile(page, {
229
+ timeoutMs: Math.max(60_000, Math.floor(timeoutMs * 0.75)),
230
+ onStep,
231
+ label: "Turnstile (retry)",
232
+ });
233
+ return result;
75
234
  }
76
235
 
77
236
  /**
@@ -109,13 +268,70 @@ export async function runXaiEmailSignup(page, {
109
268
  await typeSlow(page.locator("input[type=email], input[name=email]").first(), email, 40);
110
269
  await clickFirst(page, ['button:has-text("Sign up")', 'button:has-text("Sign Up")']);
111
270
  report("submitted_email", `Submitted sign-up email ${email}`);
112
- await wait(2_000);
271
+ await wait(2_500);
113
272
  await dismissCookies(page);
114
273
 
115
- report("polling_otp", "Polling tempmail for xAI confirmation code");
116
- const otp = await pollOtp(email, { timeoutMs: 120_000, intervalMs: 3_000 });
274
+ // Fail fast if xAI rejected the address / blocked the session before OTP is sent.
275
+ {
276
+ const early = await pageText(page);
277
+ if (/already (have an account|exists|registered)|try a different email|invalid email|not available|something went wrong|access denied|blocked/i.test(early)
278
+ && !/confirmation code|security code|Verify your email|one.?time/i.test(early)) {
279
+ return {
280
+ status: "failed",
281
+ step: "signup_rejected",
282
+ error: `xAI rejected sign-up before OTP (page: ${early.slice(0, 160).replace(/\s+/g, " ")})`,
283
+ };
284
+ }
285
+ }
286
+
287
+ // Wait until code field / OTP copy appears (proxy latency) before heavy polling.
288
+ for (let i = 0; i < 20; i++) {
289
+ const hasCode = await page.locator("input[name=code], input[autocomplete=one-time-code]").first().isVisible().catch(() => false);
290
+ const t = await pageText(page);
291
+ if (hasCode || /confirmation code|security code|Verify your email|one.?time|enter (the )?code/i.test(t)) break;
292
+ await wait(500);
293
+ }
294
+
295
+ report("polling_otp", "Polling tempmail for xAI confirmation code (direct, not via browser proxy)");
296
+ let otp = null;
297
+ try {
298
+ otp = await pollOtp(email, {
299
+ timeoutMs: 180_000,
300
+ intervalMs: 3_000,
301
+ onProgress: (info) => {
302
+ if (info.error) {
303
+ report(
304
+ "polling_otp",
305
+ `Tempmail inbox error (${info.elapsedSec}s): ${info.error}`
306
+ );
307
+ return;
308
+ }
309
+ if (info.inboxCount === 0) {
310
+ report(
311
+ "polling_otp",
312
+ `Waiting for xAI mail… ${info.elapsedSec}s (inbox empty — proxy only affects browser; mail is polled direct)`
313
+ );
314
+ } else {
315
+ report(
316
+ "polling_otp",
317
+ `Inbox ${info.inboxCount} mail(s) @${info.elapsedSec}s; subjects: ${(info.subjects || []).join(" | ") || "—"}`
318
+ );
319
+ }
320
+ },
321
+ });
322
+ } catch (error) {
323
+ return {
324
+ status: "failed",
325
+ step: "otp_timeout",
326
+ error: error.message || "Tempmail OTP poll failed",
327
+ };
328
+ }
117
329
  if (!otp?.code) {
118
- return { status: "failed", step: "otp_timeout", error: "No xAI OTP received on tempmail inbox" };
330
+ return {
331
+ status: "failed",
332
+ step: "otp_timeout",
333
+ error: "No xAI OTP on tempmail after 180s (email may not have been sent — try another residential proxy or check page for blocks)",
334
+ };
119
335
  }
120
336
  report("otp_received", `OTP ${otp.code} from ${otp.subject || "tempmail"}`);
121
337
 
@@ -146,13 +362,22 @@ export async function runXaiEmailSignup(page, {
146
362
  await typeSlow(page.locator("input[name=givenName]").first(), firstName, 35);
147
363
  await typeSlow(page.locator("input[name=familyName]").first(), lastName, 35);
148
364
  await typeSlow(page.locator("input[name=password], input[type=password]").first(), password, 35);
365
+ // Let Turnstile mount after password focus (proxy latency)
366
+ await wait(1_500);
149
367
 
150
- const turnstile = await waitForTurnstile(page, { timeoutMs: 60_000, onStep });
368
+ let turnstile = await waitForTurnstileWithRetry(page, { timeoutMs: 90_000, onStep });
369
+ if (!turnstile.ok) {
370
+ // Last attempt: wait longer once more before admitting defeat
371
+ onStep?.("turnstile_last_try", "Final Turnstile wait (120s)");
372
+ turnstile = await waitForTurnstile(page, { timeoutMs: 120_000, onStep, label: "Turnstile (final)" });
373
+ }
151
374
  if (!turnstile.ok) {
152
375
  return {
153
376
  status: "needs_manual",
154
377
  step: "turnstile",
155
- error: "Cloudflare Turnstile did not solve. Use CloakBrowser headed engine or complete manually.",
378
+ error:
379
+ "Cloudflare Turnstile did not solve after auto-clicks + retries. " +
380
+ "Ensure CloakBrowser headed + Xvfb on VPS, residential proxy with geoip, concurrency 1.",
156
381
  };
157
382
  }
158
383
 
@@ -160,10 +385,11 @@ export async function runXaiEmailSignup(page, {
160
385
  report("completing_signup", "Clicked Complete sign up");
161
386
  await wait(4_000);
162
387
 
163
- // Retry if still on form but turnstile refreshed
388
+ // Retry if still on form but turnstile refreshed after submit
164
389
  text = await pageText(page);
165
390
  if (/Complete your sign up/i.test(text)) {
166
- await waitForTurnstile(page, { timeoutMs: 20_000, onStep });
391
+ report("completing_signup_retry", "Still on profile form — re-solving Turnstile");
392
+ await waitForTurnstileWithRetry(page, { timeoutMs: 75_000, onStep });
167
393
  await clickFirst(page, ['button:has-text("Complete sign up")']);
168
394
  await wait(4_000);
169
395
  text = await pageText(page);
@@ -259,15 +485,32 @@ async function ensureEmailLoginOnPage(page, { email, password, onStep, pollOtp }
259
485
  if (await page.locator("input[type=password]").first().isVisible().catch(() => false)) {
260
486
  report("device_login_password", "Entering password on device page");
261
487
  await typeSlow(page.locator("input[type=password]").first(), password, 40);
262
- await waitForTurnstile(page, { timeoutMs: 45_000, onStep });
488
+ await waitForTurnstileWithRetry(page, { timeoutMs: 75_000, onStep });
263
489
  await clickFirst(page, ['button:has-text("Login")', 'button:has-text("Log in")', 'button[type=submit]']);
264
490
  await wait(2_500);
265
491
  }
266
492
 
267
493
  let text = await pageText(page);
268
494
  if (/security code|Verify your email|one time|confirmation code/i.test(text)) {
269
- report("login_otp", "Login requires OTP — polling tempmail");
270
- const otp = await pollOtp(email, { timeoutMs: 90_000 });
495
+ report("login_otp", "Login requires OTP — polling tempmail (direct)");
496
+ let otp = null;
497
+ try {
498
+ otp = await pollOtp(email, {
499
+ timeoutMs: 120_000,
500
+ intervalMs: 3_000,
501
+ onProgress: (info) => {
502
+ if (info.inboxCount === 0) {
503
+ report("login_otp", `Waiting OTP… ${info.elapsedSec}s (inbox empty)`);
504
+ } else if (info.inboxCount > 0) {
505
+ report("login_otp", `Inbox ${info.inboxCount} @${info.elapsedSec}s: ${(info.subjects || []).join(" | ")}`);
506
+ } else if (info.error) {
507
+ report("login_otp", `Tempmail error: ${info.error}`);
508
+ }
509
+ },
510
+ });
511
+ } catch {
512
+ otp = null;
513
+ }
271
514
  if (otp?.code) {
272
515
  const codeInput = page.locator("input[name=code], input[autocomplete=one-time-code], input[type=text]").first();
273
516
  if (await codeInput.isVisible().catch(() => false)) {
@@ -279,6 +522,145 @@ async function ensureEmailLoginOnPage(page, { email, password, onStep, pollOtp }
279
522
  }
280
523
  }
281
524
 
525
+ /**
526
+ * Authorize Grok CLI device code via **Google OAuth** (GSuite / Gmail).
527
+ * Same pattern as Kiro/CodeBuddy bulk: open device URL → Continue with Google →
528
+ * shared Google automation → poll device token as successPromise.
529
+ *
530
+ * Prefer this over tempmail signup when you already have Google accounts.
531
+ */
532
+ export async function runXaiGoogleDeviceAuthorize(page, {
533
+ email,
534
+ password,
535
+ verificationUrl,
536
+ pollToken,
537
+ deviceCode,
538
+ onStep,
539
+ cancelCheck,
540
+ shortTimeoutMs = 5 * 60_000,
541
+ } = {}) {
542
+ const report = (step, message) => onStep?.(step, message);
543
+ const { runGoogleAccountAutomation } = await import("./googleAutomation.js");
544
+
545
+ const pollPromise = (async () => {
546
+ const start = Date.now();
547
+ // Start aggressive (2s) — device authorize is often ready within seconds
548
+ // of the UI click; 4s+ intervals left ~half a minute on the table.
549
+ let interval = 2_000;
550
+ while (Date.now() - start < 12 * 60_000) {
551
+ if (cancelCheck?.()) throw new Error("Job cancelled during token polling");
552
+ const result = await pollToken(deviceCode);
553
+ if (result?.success && result.tokens) return { tokens: result.tokens };
554
+ if (result?.pending || result?.error === "authorization_pending") {
555
+ await wait(interval);
556
+ continue;
557
+ }
558
+ if (result?.error === "slow_down") {
559
+ interval = Math.min(interval + 2_000, 12_000);
560
+ await wait(interval);
561
+ continue;
562
+ }
563
+ // expired_token / access_denied — stop early
564
+ if (result?.error && !["authorization_pending", "slow_down"].includes(result.error)) {
565
+ report("token_poll_note", `Poll: ${result.error}`);
566
+ }
567
+ await wait(interval);
568
+ }
569
+ throw new Error("Timed out waiting for Grok CLI OAuth token after Google login");
570
+ })();
571
+ // Prevent unhandled rejection if Google path fails first
572
+ pollPromise.catch(() => null);
573
+
574
+ report("opening_device_google", "Opening Grok device auth — will use Google login");
575
+ const automation = await runGoogleAccountAutomation({
576
+ page,
577
+ authUrl: verificationUrl,
578
+ email,
579
+ password,
580
+ successPromise: pollPromise,
581
+ shortTimeoutMs,
582
+ serviceLabel: "Grok CLI",
583
+ openingStep: "opening_device_google",
584
+ openingMessage: "Opening Grok device page (Google OAuth)",
585
+ successStep: "grok_token_received",
586
+ successMessage: "Grok CLI OAuth token received",
587
+ onStep,
588
+ });
589
+
590
+ if (automation.status === "success") {
591
+ // tokens may be nested from successPromise spread
592
+ const tokens = automation.tokens || automation.result?.tokens || null;
593
+ if (tokens?.accessToken || tokens?.access_token) {
594
+ return { status: "success", tokens };
595
+ }
596
+ // successPromise resolved but shape unknown — try one more poll
597
+ try {
598
+ const result = await pollToken(deviceCode);
599
+ if (result?.success && result.tokens) return { status: "success", tokens: result.tokens };
600
+ } catch {
601
+ /* fall through */
602
+ }
603
+ return {
604
+ status: "failed",
605
+ error: "Google login finished but Grok device token was not captured",
606
+ };
607
+ }
608
+
609
+ // After Google SSO, xAI sometimes parks on /account. Re-open device URL and
610
+ // mash authorize controls while the device token poll is still alive.
611
+ if (!["failed_browser_blocked", "failed_invalid_credentials", "failed_restricted"].includes(automation.status)) {
612
+ report("device_reopen_after_google", "Re-opening device URL after Google automation window");
613
+ try {
614
+ await page.goto(verificationUrl, { waitUntil: "domcontentloaded", timeout: 45_000 });
615
+ await wait(1_500);
616
+ await dismissCookies(page);
617
+ for (let i = 0; i < 8; i += 1) {
618
+ if (cancelCheck?.()) break;
619
+ // Prefer Google again if login wall reappeared
620
+ const googleVisible = await page.getByRole("button", { name: /google/i }).first()
621
+ .isVisible({ timeout: 400 }).catch(() => false);
622
+ if (googleVisible) {
623
+ report("device_google_again", "Google login still required on device page");
624
+ break;
625
+ }
626
+ const clicked = await clickDeviceAuthorizeControls(page);
627
+ if (clicked) {
628
+ report("device_click", `Clicked authorize control after Google (${i + 1})`);
629
+ }
630
+ // Race poll briefly
631
+ const raced = await Promise.race([
632
+ pollPromise.then((r) => ({ ok: true, r })).catch(() => null),
633
+ wait(2_500).then(() => null),
634
+ ]);
635
+ if (raced?.ok && raced.r?.tokens) {
636
+ return { status: "success", tokens: raced.r.tokens };
637
+ }
638
+ const text = await pageText(page);
639
+ if (/Device Authorized|device has been authorized|you can close|successfully authorized/i.test(text)) {
640
+ report("device_authorized", "Device authorized in browser after Google");
641
+ const result = await pollToken(deviceCode).catch(() => null);
642
+ if (result?.success && result.tokens) return { status: "success", tokens: result.tokens };
643
+ }
644
+ }
645
+ } catch (e) {
646
+ report("device_reopen_note", String(e?.message || e).slice(0, 120));
647
+ }
648
+ }
649
+
650
+ // If Google finished but token poll still pending, keep authorize UI loop briefly
651
+ if (automation.status === "needs_manual" || automation.status === "failed_restricted") {
652
+ return {
653
+ status: automation.status,
654
+ error: automation.error || "Google automation needs manual assist",
655
+ };
656
+ }
657
+
658
+ return {
659
+ status: automation.status || "failed",
660
+ error: automation.error || "Google device authorization failed",
661
+ };
662
+ }
663
+
282
664
  /**
283
665
  * Login with email+password (session), then authorize a Grok CLI device code.
284
666
  */
@@ -400,9 +782,21 @@ export async function runXaiEmailDeviceAuthorize(page, {
400
782
  if (clicked && i % 3 === 0) {
401
783
  report("device_click", `Clicked authorize control (${i + 1})`);
402
784
  }
403
- // Turnstile sometimes reappears on consent
404
- await waitForTurnstile(page, { timeoutMs: 12_000, onStep: i % 5 === 0 ? onStep : undefined });
405
- await wait(1_800);
785
+ // Only burn time on Turnstile when the widget is actually on the page.
786
+ // Old code always waited 12s even with widget=missing looked stuck / needs_manual.
787
+ const hasWidget = await page.evaluate(() => !!(
788
+ document.querySelector(".cf-turnstile, [data-sitekey], iframe[src*='turnstile'], iframe[src*='challenges.cloudflare']")
789
+ || [...document.querySelectorAll("iframe")].some((f) => /turnstile|cloudflare/i.test(f.src || f.title || ""))
790
+ )).catch(() => false);
791
+ const tokenAlready = await readTurnstileToken(page);
792
+ if (hasWidget && !tokenAlready) {
793
+ await waitForTurnstile(page, {
794
+ timeoutMs: 45_000,
795
+ onStep: i % 3 === 0 ? onStep : undefined,
796
+ label: "device Turnstile",
797
+ });
798
+ }
799
+ await wait(1_200);
406
800
  i += 1;
407
801
  continue;
408
802
  }