zevairouter 1.0.89 → 1.0.91

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 (551) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  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/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  286. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  289. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  290. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  291. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  292. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  293. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  294. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  295. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  297. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  298. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  299. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  300. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  302. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  303. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  304. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  305. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  306. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  307. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  308. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  309. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  310. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  311. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  312. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  313. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  314. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  315. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  316. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  317. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  318. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  319. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  320. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  321. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  323. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  324. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  325. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  326. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  327. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  328. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  329. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  330. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  331. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  332. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  333. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  334. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  335. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  336. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  337. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  338. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  339. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  340. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  341. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  342. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  343. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  344. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  345. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  346. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  347. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  348. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  349. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  350. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  351. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  352. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  353. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  354. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  355. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  356. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  357. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  358. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  359. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  360. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  361. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  362. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  363. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  364. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  365. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  366. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  367. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  368. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  369. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  370. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  371. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  372. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  373. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  374. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  375. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  376. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  377. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  378. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  379. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  380. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  381. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  382. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  383. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  384. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  385. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  386. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  387. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  388. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  389. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  390. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  391. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  392. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  393. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  394. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  395. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  396. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  397. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  398. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  399. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  400. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  401. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  402. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  403. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  404. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  405. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  406. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  407. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  408. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  409. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  410. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  411. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  412. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  413. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  414. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  415. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  416. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  417. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  418. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  419. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  420. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  421. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  422. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  423. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  424. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  425. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  426. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  427. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  428. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  429. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  430. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  431. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  432. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  433. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  434. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  435. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  436. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  437. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  438. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  439. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  440. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  441. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  442. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  443. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  444. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  445. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  446. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  447. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  448. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  449. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  450. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  451. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  452. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  453. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  454. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  455. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  456. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  457. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  458. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  459. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  460. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  461. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  462. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  463. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  464. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  465. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  466. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  467. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  468. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  469. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  470. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  471. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  472. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  473. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  474. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  475. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  476. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  477. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  478. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  479. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  480. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  481. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  482. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  483. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  484. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  485. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  486. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  487. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  488. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  489. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  490. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  491. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  492. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  493. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  494. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  495. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  496. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  497. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  498. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  499. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  500. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  501. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  502. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  503. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  504. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  505. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  506. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  507. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  508. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  509. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  510. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  511. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  512. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  513. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  514. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  515. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  516. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  517. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  518. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  519. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  520. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  521. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  522. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  523. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  524. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  525. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  526. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  527. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  528. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  529. package/cli/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  530. package/cli/app/.next-cli-build/server/chunks/1019.js +1 -0
  531. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  532. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  533. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  534. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  535. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -1
  536. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  537. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  538. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  539. package/cli/app/.next-cli-build/static/chunks/{3702-ad232af3e5a94b33.js → 3702-30e147d7f8aa1b1e.js} +1 -1
  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/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/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/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  542. 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/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  543. 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/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  544. 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/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  545. package/cli/app/package.json +1 -1
  546. package/cli/package.json +1 -1
  547. package/package.json +1 -1
  548. package/src/lib/oauth/services/cloudflareAiBulkImportManager.js +200 -91
  549. package/src/lib/oauth/services/kiroGoogleAutomation.js +308 -53
  550. /package/cli/app/.next-cli-build/static/{ecajnDUo60SIVUHHlasFb → DeYkfR7AtoBKt2sT-D-8h}/_buildManifest.js +0 -0
  551. /package/cli/app/.next-cli-build/static/{ecajnDUo60SIVUHHlasFb → DeYkfR7AtoBKt2sT-D-8h}/_ssgManifest.js +0 -0
@@ -104,6 +104,9 @@ const GOOGLE_LOGIN_BUTTON_SELECTORS = [
104
104
  'button:has-text("Login with Google")',
105
105
  'button:has-text("Continue with Google")',
106
106
  'button:has-text("Sign in with Google")',
107
+ // Cloudflare dash: visible label is just "Google", aria is "Continue with Google"
108
+ 'button[aria-label*="Continue with Google" i]',
109
+ 'button[aria-label*="Google" i]',
107
110
  'button:has-text("Google")',
108
111
  'a:has-text("Google")',
109
112
  'div[role="button"]:has-text("Continue with Google")',
@@ -112,7 +115,7 @@ const GOOGLE_LOGIN_BUTTON_SELECTORS = [
112
115
  'span:has-text("Continue with Google")',
113
116
  'span:has-text("Login with Google")',
114
117
  'span:has-text("Google")',
115
- '[aria-label*="Google"]',
118
+ '[aria-label*="Google" i]',
116
119
  '[data-provider*="google" i]',
117
120
  // xAI / Grok device + account pages
118
121
  'button:has-text("Login with Google")',
@@ -120,6 +123,18 @@ const GOOGLE_LOGIN_BUTTON_SELECTORS = [
120
123
  '[data-testid*="google" i]',
121
124
  ];
122
125
 
126
+ /** OneTrust / cookie walls that block the first Google click (Cloudflare login). */
127
+ const COOKIE_DISMISS_SELECTORS = [
128
+ '#onetrust-accept-btn-handler',
129
+ '#onetrust-reject-all-handler',
130
+ '#accept-recommended-btn-handler',
131
+ 'button:has-text("Allow All")',
132
+ 'button:has-text("Reject All")',
133
+ 'button:has-text("Accept All")',
134
+ 'button:has-text("Accept all")',
135
+ 'button:has-text("Confirm My Choices")',
136
+ ];
137
+
123
138
  const TERMS_CHECKBOX_SELECTORS = [
124
139
  '#agree-policy-account',
125
140
  '#agree-policy',
@@ -560,8 +575,64 @@ function isGoogleAuthPage(page) {
560
575
  }
561
576
  }
562
577
 
578
+ /** Fast bulk path: skip multi-second sleeps (Grok, Cloudflare, etc.). */
563
579
  function isGrokish(serviceLabel) {
564
- return /grok/i.test(String(serviceLabel || ""));
580
+ return /grok|cloudflare/i.test(String(serviceLabel || ""));
581
+ }
582
+
583
+ function isCloudflareLoginUrl(url) {
584
+ try {
585
+ const u = new URL(url || "");
586
+ return u.hostname === "dash.cloudflare.com" && u.pathname.includes("/login");
587
+ } catch {
588
+ return false;
589
+ }
590
+ }
591
+
592
+ async function dismissCookieBanners(page, reportStep) {
593
+ // Cookie / OneTrust modals steal the first clicks (CF login shows "Allow All").
594
+ // Fast path: one scan — must stay cheap because the main automation loop
595
+ // calls this on every tick (dashboard harvest must not burn 2s here).
596
+ for (const selector of COOKIE_DISMISS_SELECTORS) {
597
+ try {
598
+ const loc = page.locator(selector).first();
599
+ if (await loc.isVisible({ timeout: 100 }).catch(() => false)) {
600
+ // noWaitAfter: banner click must not wait on any incidental navigation
601
+ await loc.click({ timeout: 2_000, noWaitAfter: true }).catch(() => null);
602
+ reportStep?.("dismissing_cookies", "Dismissed cookie / privacy banner");
603
+ return true;
604
+ }
605
+ } catch {
606
+ /* next */
607
+ }
608
+ }
609
+ const viaApi = await page.evaluate(() => {
610
+ try {
611
+ if (typeof window.OneTrust?.AllowAll === "function") {
612
+ const banner = document.querySelector(
613
+ "#onetrust-banner-sdk, #onetrust-consent-sdk, #onetrust-accept-btn-handler",
614
+ );
615
+ // Only invoke when a banner is actually present — AllowAll on every
616
+ // loop tick is wasteful and can re-open consent UI.
617
+ if (!banner) return false;
618
+ window.OneTrust.AllowAll();
619
+ return true;
620
+ }
621
+ const btn = document.querySelector("#onetrust-accept-btn-handler");
622
+ if (btn && btn.offsetParent !== null) {
623
+ btn.click();
624
+ return true;
625
+ }
626
+ } catch {
627
+ /* ignore */
628
+ }
629
+ return false;
630
+ }).catch(() => false);
631
+ if (viaApi) {
632
+ reportStep?.("dismissing_cookies", "Dismissed cookie / privacy banner");
633
+ return true;
634
+ }
635
+ return false;
565
636
  }
566
637
 
567
638
  // Google bounces flagged (headless) browsers:
@@ -1356,6 +1427,17 @@ async function handleProviderOnboarding(page, reportStep, serviceLabel) {
1356
1427
  return false;
1357
1428
  }
1358
1429
 
1430
+ // Cloudflare dashboard / login: "Allow All" cookie + "Sign in" must not be
1431
+ // treated as provider onboarding Continues.
1432
+ try {
1433
+ const host = new URL(page.url()).hostname || "";
1434
+ if (host === "dash.cloudflare.com" || host.endsWith(".cloudflare.com")) {
1435
+ return false;
1436
+ }
1437
+ } catch {
1438
+ /* ignore */
1439
+ }
1440
+
1359
1441
  // If Google SSO is still offered, do not mash generic Continue.
1360
1442
  if (await providerHasGoogleLogin(page)) {
1361
1443
  return false;
@@ -1429,13 +1511,33 @@ async function handleXaiDeviceCodeConfirm(page, reportStep, { alreadyAuthed = fa
1429
1511
  return true;
1430
1512
  }
1431
1513
 
1514
+ /**
1515
+ * Click a Google SSO control without waiting for the cross-origin navigation.
1516
+ *
1517
+ * Playwright's default click() waits for navigations started by the action.
1518
+ * CF → accounts.google.com through a residential proxy often exceeds 5s, so the
1519
+ * click "fails" even though OAuth already started — then we re-click for 30–40s.
1520
+ */
1521
+ async function clickSsoControl(page, locator) {
1522
+ const enabled = await locator.isEnabled().catch(() => true);
1523
+ if (!enabled) return false;
1524
+ await locator.scrollIntoViewIfNeeded().catch(() => null);
1525
+ const clicked = await locator
1526
+ .click({ timeout: 2_500, force: true, noWaitAfter: true })
1527
+ .then(() => true)
1528
+ .catch(() => false);
1529
+ if (clicked) return true;
1530
+ // Trusted mouse path (also does not wait on navigation).
1531
+ return clickLocatorCenter(page, locator).catch(() => false);
1532
+ }
1533
+
1432
1534
  async function clickGoogleLoginRole(page) {
1433
- // Role-based matches are more reliable on SPA auth shells (xAI, etc.)
1434
- // than CSS :has-text alone — especially when the label is nested.
1535
+ // Role-based matches are more reliable on SPA auth shells (xAI, CF, etc.)
1536
+ // than CSS :has-text alone — especially when the label is nested / aria-only.
1435
1537
  const roleNames = [
1538
+ /continue with google/i,
1436
1539
  /login with google/i,
1437
1540
  /log in with google/i,
1438
- /continue with google/i,
1439
1541
  /sign up with google/i,
1440
1542
  /sign in with google/i,
1441
1543
  /^google$/i,
@@ -1444,10 +1546,7 @@ async function clickGoogleLoginRole(page) {
1444
1546
  try {
1445
1547
  const btn = page.getByRole("button", { name }).first();
1446
1548
  if (await btn.isVisible({ timeout: 250 }).catch(() => false)) {
1447
- const enabled = await btn.isEnabled().catch(() => true);
1448
- if (!enabled) continue;
1449
- await btn.click({ timeout: 5_000 });
1450
- return true;
1549
+ if (await clickSsoControl(page, btn)) return true;
1451
1550
  }
1452
1551
  } catch {
1453
1552
  /* next */
@@ -1455,13 +1554,30 @@ async function clickGoogleLoginRole(page) {
1455
1554
  try {
1456
1555
  const link = page.getByRole("link", { name }).first();
1457
1556
  if (await link.isVisible({ timeout: 200 }).catch(() => false)) {
1458
- await link.click({ timeout: 5_000 });
1459
- return true;
1557
+ if (await clickSsoControl(page, link)) return true;
1460
1558
  }
1461
1559
  } catch {
1462
1560
  /* next */
1463
1561
  }
1464
1562
  }
1563
+ // Cloudflare: button text "Google", aria-label "Continue with Google"
1564
+ try {
1565
+ const ariaBtn = page.locator('button[aria-label*="Google" i]').first();
1566
+ if (await ariaBtn.isVisible({ timeout: 200 }).catch(() => false)) {
1567
+ if (await clickSsoControl(page, ariaBtn)) return true;
1568
+ }
1569
+ } catch {
1570
+ /* ignore */
1571
+ }
1572
+ // Last resort: CSS text match with noWaitAfter
1573
+ try {
1574
+ const textBtn = page.locator('button:has-text("Google")').first();
1575
+ if (await textBtn.isVisible({ timeout: 150 }).catch(() => false)) {
1576
+ if (await clickSsoControl(page, textBtn)) return true;
1577
+ }
1578
+ } catch {
1579
+ /* ignore */
1580
+ }
1465
1581
  return false;
1466
1582
  }
1467
1583
 
@@ -1507,6 +1623,8 @@ async function ensureProviderTermsChecked(page, reportStep) {
1507
1623
  async function handleProviderLoginGate(page, reportStep, { allowGoogleClick = true } = {}) {
1508
1624
  if (isGoogleAuthPage(page)) return false;
1509
1625
 
1626
+ await dismissCookieBanners(page, reportStep);
1627
+
1510
1628
  const confirmedExistingDialog = await clickFirstActionable(page, PRIVACY_CONFIRM_BUTTON_SELECTORS);
1511
1629
  if (confirmedExistingDialog) {
1512
1630
  reportStep("accepting_provider_privacy_dialog", "Confirmed provider privacy agreement dialog");
@@ -1524,8 +1642,25 @@ async function handleProviderLoginGate(page, reportStep, { allowGoogleClick = tr
1524
1642
 
1525
1643
  // Prefer explicit Google SSO over generic Continue (device code pages
1526
1644
  // often have both — clicking Continue without a session yields invalid_code).
1645
+ // Cloudflare: click Google SSO only — never the CF email "Sign in" form.
1527
1646
  const clickedGoogleRole = await clickGoogleLoginRole(page);
1528
- const clickedGoogle = clickedGoogleRole || await clickFirstActionable(page, GOOGLE_LOGIN_BUTTON_SELECTORS);
1647
+ let clickedGoogle = clickedGoogleRole;
1648
+ if (!clickedGoogle) {
1649
+ // Selector fallback with noWaitAfter (clickFirstActionable waits on nav — bad for SSO).
1650
+ for (const selector of GOOGLE_LOGIN_BUTTON_SELECTORS.slice(0, 16)) {
1651
+ try {
1652
+ const loc = page.locator(selector).first();
1653
+ if (await loc.isVisible({ timeout: 100 }).catch(() => false)) {
1654
+ if (await clickSsoControl(page, loc)) {
1655
+ clickedGoogle = true;
1656
+ break;
1657
+ }
1658
+ }
1659
+ } catch {
1660
+ /* next */
1661
+ }
1662
+ }
1663
+ }
1529
1664
  if (clickedGoogle) {
1530
1665
  reportStep("selecting_google_login", "Selecting Google login");
1531
1666
 
@@ -1535,10 +1670,12 @@ async function handleProviderLoginGate(page, reportStep, { allowGoogleClick = tr
1535
1670
  }
1536
1671
 
1537
1672
  // Wait for OAuth redirect to Google (or email field) — event-driven.
1673
+ // CF→Google through proxy can take a few seconds; click already returned (noWaitAfter).
1674
+ const onCf = isCloudflareLoginUrl(page.url?.() || "");
1538
1675
  const reached = await waitForPageAdvance(page, {
1539
1676
  urlMatch: (u) => isGoogleHostname(u),
1540
1677
  selector: EMAIL_INPUT_SELECTOR,
1541
- timeout: 12_000,
1678
+ timeout: onCf ? 10_000 : 12_000,
1542
1679
  });
1543
1680
  if (reached || isGoogleAuthPage(page)) {
1544
1681
  reportStep("google_login_page", "Reached Google sign-in after provider SSO");
@@ -1878,6 +2015,10 @@ export async function runGoogleAccountAutomation({
1878
2015
  successStep = "oauth_success_received",
1879
2016
  successMessage = "OAuth success received",
1880
2017
  onStep,
2018
+ /** When true, skip page.goto(authUrl) — caller already navigated (e.g. CF pre-click Google). */
2019
+ skipGoto = false,
2020
+ /** Caller already clicked Google SSO; wait for accounts.google.com before re-clicking. */
2021
+ expectGoogleSoon = false,
1881
2022
  }) {
1882
2023
  const startTime = Date.now();
1883
2024
  const reportStep = (step, message) => {
@@ -1896,7 +2037,9 @@ export async function runGoogleAccountAutomation({
1896
2037
  let deviceInvalidReopenCount = 0;
1897
2038
  // Cooldowns prevent double-submit only — not artificial pacing.
1898
2039
  const PASSWORD_RESUBMIT_COOLDOWN_MS = isGrokish(serviceLabel) ? 6_000 : 18_000;
1899
- const EMAIL_RESUBMIT_COOLDOWN_MS = isGrokish(serviceLabel) ? 3_000 : 8_000;
2040
+ // Longer email cooldown for fast bulk — Google identifier page can sit 5–10s
2041
+ // after Next; re-typing the whole email wastes another 10–15s.
2042
+ const EMAIL_RESUBMIT_COOLDOWN_MS = isGrokish(serviceLabel) ? 12_000 : 8_000;
1900
2043
  const GOOGLE_SSO_COOLDOWN_MS = isGrokish(serviceLabel) ? 3_000 : 8_000;
1901
2044
  // Don't hammer Allow — xAI rate_limits rapid device posts.
1902
2045
  const DEVICE_APPROVE_COOLDOWN_MS = 3_000;
@@ -1908,46 +2051,90 @@ export async function runGoogleAccountAutomation({
1908
2051
  // Loop poll: race successPromise — keep tiny so fast networks aren't stalled.
1909
2052
  const loopTickMs = isGrokFlow ? 120 : 500;
1910
2053
 
1911
- reportStep(openingStep, openingMessage);
1912
- await page.goto(authUrl, { waitUntil: "domcontentloaded", timeout: 60_000 });
1913
- // Wait for interactive UI (Continue / Google / email), not a fixed sleep.
1914
- await waitUntil(
1915
- async () =>
1916
- isGoogleAuthPage(page)
1917
- || (await getFirstVisibleLocator(page, 'button:has-text("Continue"), button:has-text("Login with Google"), button:has-text("Google")'))
1918
- || (await getFirstVisibleLocator(page, EMAIL_INPUT_SELECTOR)),
1919
- { timeout: isGrokFlow ? 6_000 : 12_000, interval: 80 },
1920
- );
1921
- if (!isGrokFlow) {
1922
- await waitThroughGoogleInterstitials(page, reportStep, interstitialOpts(8_000));
1923
- }
1924
-
1925
- // Provider shells (xAI device, CodeBuddy, …) must pick Google SSO first.
1926
- // Never type credentials into provider user_code / email fields.
1927
- // xAI: confirm device user_code first, then Google SSO — event-driven retries.
1928
- for (let attempt = 0; attempt < (isGrokFlow ? 6 : 2); attempt += 1) {
1929
- if (isGoogleAuthPage(page)) break;
1930
- if (await handleXaiDeviceCodeConfirm(page, reportStep)) {
1931
- continue;
1932
- }
1933
- if (await handleProviderLoginGate(page, reportStep)) {
2054
+ let alreadyOnGoogle = skipGoto && isGoogleAuthPage(page);
2055
+ if (!skipGoto) {
2056
+ reportStep(openingStep, openingMessage);
2057
+ await page.goto(authUrl, { waitUntil: "domcontentloaded", timeout: 60_000 });
2058
+ await dismissCookieBanners(page, reportStep);
2059
+ } else if (alreadyOnGoogle) {
2060
+ reportStep("google_login_page", "Already on Google sign-in — filling credentials");
2061
+ } else if (expectGoogleSoon) {
2062
+ // CF (etc.) already clicked Google — wait for redirect, do NOT re-goto / re-click yet.
2063
+ reportStep("waiting_google_redirect", "Waiting for Google after provider SSO click");
2064
+ const reached = await waitUntil(() => isGoogleAuthPage(page), {
2065
+ timeout: 25_000,
2066
+ interval: 100,
2067
+ });
2068
+ if (reached) {
2069
+ alreadyOnGoogle = true;
1934
2070
  googleLoginSelectedAt = Date.now();
1935
- if (isGoogleAuthPage(page)) break;
1936
- // Gate already waited for Google URL; only brief yield if still on provider.
1937
- await yieldMs(50);
1938
- continue;
2071
+ reportStep("google_login_page", "Reached Google sign-in after provider SSO");
2072
+ } else {
2073
+ reportStep("google_redirect_slow", "Google redirect slow — will retry SSO click");
1939
2074
  }
1940
- // SPA not ready — poll for buttons, don't sleep 600ms blindly.
1941
- const ready = await waitUntil(
1942
- async () =>
1943
- (await providerHasGoogleLogin(page))
1944
- || /enter the code|login with google|continue/i.test(await readPageText(page).catch(() => "")),
1945
- { timeout: 800, interval: 80 },
2075
+ } else {
2076
+ reportStep(openingStep, openingMessage);
2077
+ await dismissCookieBanners(page, reportStep);
2078
+ }
2079
+
2080
+ // Cloudflare login always shows email/password fields — do NOT treat those as
2081
+ // "ready for Google email fill". Wait for Google SSO button / Google page only.
2082
+ const onCfLogin = isCloudflareLoginUrl(page.url?.() || "") || /cloudflare/i.test(String(serviceLabel || ""));
2083
+
2084
+ if (!alreadyOnGoogle) {
2085
+ await waitUntil(
2086
+ async () => {
2087
+ if (isGoogleAuthPage(page)) return true;
2088
+ if (await getFirstVisibleLocator(
2089
+ page,
2090
+ 'button[aria-label*="Google" i], button:has-text("Continue with Google"), button:has-text("Login with Google"), button:has-text("Google")',
2091
+ )) {
2092
+ return true;
2093
+ }
2094
+ if (!onCfLogin && (await getFirstVisibleLocator(page, EMAIL_INPUT_SELECTOR))) {
2095
+ return true;
2096
+ }
2097
+ if (!onCfLogin && (await getFirstVisibleLocator(page, 'button:has-text("Continue")'))) {
2098
+ return true;
2099
+ }
2100
+ return false;
2101
+ },
2102
+ { timeout: isGrokFlow ? 8_000 : 12_000, interval: 80 },
1946
2103
  );
1947
- if (!ready) await yieldMs(100);
1948
- }
1949
- if (!isGrokFlow) {
1950
- await waitThroughGoogleInterstitials(page, reportStep, interstitialOpts(6_000));
2104
+ if (!isGrokFlow) {
2105
+ await waitThroughGoogleInterstitials(page, reportStep, interstitialOpts(8_000));
2106
+ }
2107
+
2108
+ // Provider shells (xAI device, CodeBuddy, Cloudflare, …) must pick Google SSO first.
2109
+ // Never type credentials into provider email fields (CF has its own email/password).
2110
+ for (let attempt = 0; attempt < (isGrokFlow || onCfLogin ? 8 : 2); attempt += 1) {
2111
+ if (isGoogleAuthPage(page)) break;
2112
+ await dismissCookieBanners(page, reportStep);
2113
+ if (await handleXaiDeviceCodeConfirm(page, reportStep)) {
2114
+ continue;
2115
+ }
2116
+ if (await handleProviderLoginGate(page, reportStep)) {
2117
+ googleLoginSelectedAt = Date.now();
2118
+ if (isGoogleAuthPage(page)) break;
2119
+ // Gate already waited for Google URL; only brief yield if still on provider.
2120
+ await yieldMs(50);
2121
+ continue;
2122
+ }
2123
+ // SPA not ready — poll for Google SSO (not CF email form).
2124
+ const ready = await waitUntil(
2125
+ async () =>
2126
+ isGoogleAuthPage(page)
2127
+ || (await providerHasGoogleLogin(page))
2128
+ || /enter the code|login with google|continue with google/i.test(
2129
+ await readPageText(page).catch(() => ""),
2130
+ ),
2131
+ { timeout: 600, interval: 80 },
2132
+ );
2133
+ if (!ready) await yieldMs(80);
2134
+ }
2135
+ if (!isGrokFlow) {
2136
+ await waitThroughGoogleInterstitials(page, reportStep, interstitialOpts(6_000));
2137
+ }
1951
2138
  }
1952
2139
 
1953
2140
  // Only fill Google email once we are actually on accounts.google.com.
@@ -2002,6 +2189,50 @@ export async function runGoogleAccountAutomation({
2002
2189
  };
2003
2190
  }
2004
2191
 
2192
+ // Cloudflare: after Google password, land on dash — park on harvest promise.
2193
+ // Do NOT thrash cookie dismiss / generic Approve (starves token API work).
2194
+ if (
2195
+ isGrokFlow
2196
+ && seenGoogleAuth
2197
+ && passwordSubmittedAt
2198
+ && /cloudflare/i.test(String(serviceLabel || ""))
2199
+ ) {
2200
+ try {
2201
+ const u = new URL(page.url?.() || "");
2202
+ const onDash =
2203
+ u.hostname === "dash.cloudflare.com"
2204
+ && !u.pathname.includes("/login")
2205
+ && !u.href.includes("oidcJwt");
2206
+ if (onDash) {
2207
+ reportStep(
2208
+ "waiting_cf_harvest",
2209
+ "On Cloudflare dashboard — waiting for Workers AI token harvest",
2210
+ );
2211
+ // Yield the page: only race success (longer tick while harvesting).
2212
+ const parked = await Promise.race([
2213
+ successPromise
2214
+ .then((result) => ({ kind: "success", result }))
2215
+ .catch((error) => ({ kind: "success_error", error })),
2216
+ yieldMs(2_000).then(() => null),
2217
+ ]);
2218
+ if (parked?.kind === "success") {
2219
+ reportStep(successStep, successMessage);
2220
+ return { status: "success", ...parked.result };
2221
+ }
2222
+ if (parked?.kind === "success_error") {
2223
+ reportStep("oauth_timeout", `Timed out waiting for ${serviceLabel} authorization`);
2224
+ return {
2225
+ status: "failed_timeout",
2226
+ error: parked.error?.message || `Timed out waiting for ${serviceLabel} authorization`,
2227
+ };
2228
+ }
2229
+ continue;
2230
+ }
2231
+ } catch {
2232
+ /* fall through */
2233
+ }
2234
+ }
2235
+
2005
2236
  // Unblock SetSID / empty Google interstitials before other handlers
2006
2237
  const waited = await waitThroughGoogleInterstitials(
2007
2238
  page,
@@ -2235,10 +2466,26 @@ export async function runGoogleAccountAutomation({
2235
2466
 
2236
2467
  // On xAI before Google login, APPROVE selectors match "Continue with Google"
2237
2468
  // via :has-text("Continue") and wreck the device code → Invalid action loop.
2469
+ // On Cloudflare login, "Allow All" cookies + "Sign in" must not be mashed.
2470
+ await dismissCookieBanners(page, reportStep);
2471
+ const onCfHost = (() => {
2472
+ try {
2473
+ const h = new URL(page.url()).hostname || "";
2474
+ return h === "dash.cloudflare.com" || h.endsWith(".cloudflare.com");
2475
+ } catch {
2476
+ return false;
2477
+ }
2478
+ })();
2238
2479
  const mayGenericApprove =
2239
2480
  isGoogleAuthPage(page)
2240
- || (seenGoogleAuth && passwordSubmittedAt && !(await providerHasGoogleLogin(page)));
2241
- if (mayGenericApprove) {
2481
+ || (
2482
+ seenGoogleAuth
2483
+ && passwordSubmittedAt
2484
+ && !(await providerHasGoogleLogin(page))
2485
+ && !isCloudflareLoginUrl(page.url?.() || "")
2486
+ );
2487
+ if (mayGenericApprove && !isCloudflareLoginUrl(page.url?.() || "")) {
2488
+ // Avoid OneTrust "Allow All" as if it were OAuth approve when still mid-flow
2242
2489
  const clickedApprove = await clickFirstVisible(page, APPROVE_BUTTON_SELECTORS);
2243
2490
  if (clickedApprove) {
2244
2491
  reportStep("approving_consent", `Approving Google or ${serviceLabel} consent`);
@@ -2247,6 +2494,11 @@ export async function runGoogleAccountAutomation({
2247
2494
  continue;
2248
2495
  }
2249
2496
  }
2497
+ // Cloudflare login stuck: keep hammering Google SSO only
2498
+ if (onCfHost && !seenGoogleAuth && (await handleProviderLoginGate(page, reportStep))) {
2499
+ googleLoginSelectedAt = Date.now();
2500
+ continue;
2501
+ }
2250
2502
 
2251
2503
  // Periodic diagnostics so jobs aren't opaque "waiting" spam
2252
2504
  if (Math.floor((Date.now() - startTime) / 5000) !== Math.floor((Date.now() - startTime - loopTickMs) / 5000)) {
@@ -2330,4 +2582,7 @@ export const __test__ = {
2330
2582
  handleXaiDeviceCodeConfirm,
2331
2583
  GOOGLE_LOGIN_BUTTON_SELECTORS,
2332
2584
  isGrokish,
2585
+ dismissCookieBanners,
2586
+ clickGoogleLoginRole,
2587
+ isCloudflareLoginUrl,
2333
2588
  };