zevairouter 1.0.60 → 1.0.62

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 (327) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +21 -21
  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_client-reference-manifest.js +1 -1
  6. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  33. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  34. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  42. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  43. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  44. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  45. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  46. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  49. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  66. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  67. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  68. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  69. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  70. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  71. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  72. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  73. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  74. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  75. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  76. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  77. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  78. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  79. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  80. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  81. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  82. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  83. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  84. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  85. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  86. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  87. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  88. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  89. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  90. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  91. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  92. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  93. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  95. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  96. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  97. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  100. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  101. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  102. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  103. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  104. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  105. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  106. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  107. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  108. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  110. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  111. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  112. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  113. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  114. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  115. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  116. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  117. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  118. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  119. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  120. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  121. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  122. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  123. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  124. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  125. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  126. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  127. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  128. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  129. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  130. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  131. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  132. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  133. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  134. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  135. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  136. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  137. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  138. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  139. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  140. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  141. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  142. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  143. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  144. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  145. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  146. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  147. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  148. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  149. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  150. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  151. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  152. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  153. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  154. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  155. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  156. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  157. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  158. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  159. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  161. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  162. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  163. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  164. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  165. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  167. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  168. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  169. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  171. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  172. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  173. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  174. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  175. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  176. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  177. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  178. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  179. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  180. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  181. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  182. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  183. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  184. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  185. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  186. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  187. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  188. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  189. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  190. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  191. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  192. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  193. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  194. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  195. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  196. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  198. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  199. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  200. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  201. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  202. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  203. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  204. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  205. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  206. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  207. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  208. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  209. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  210. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  211. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  212. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  213. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  214. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  215. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  216. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  217. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  218. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  219. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  220. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  221. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  222. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  223. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  224. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  225. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  226. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  227. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  228. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  229. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  230. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  231. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  232. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  233. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  234. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  235. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  236. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  237. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  238. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  239. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  240. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  241. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  244. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  245. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  246. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  247. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  248. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  249. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  250. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  251. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  252. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  253. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  254. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  255. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  256. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  257. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  258. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  259. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  260. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  261. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  262. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  263. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  264. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  265. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  266. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  267. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  268. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  269. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  270. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  271. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  272. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  273. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  274. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  275. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  276. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  277. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  278. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  279. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  280. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  281. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  282. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  283. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  285. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  286. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  287. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  288. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  289. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  290. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  291. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  292. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  293. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  294. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  295. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  296. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  297. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  298. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  299. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  300. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  302. package/cli/app/.next-cli-build/server/app-paths-manifest.json +21 -21
  303. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  304. package/cli/app/.next-cli-build/server/chunks/3487.js +1 -1
  305. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  306. package/cli/app/.next-cli-build/server/chunks/5949.js +2 -2
  307. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  308. package/cli/app/.next-cli-build/server/chunks/7276.js +1 -1
  309. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  310. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  311. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  312. package/cli/app/.next-cli-build/static/chunks/{3702-7f8a112e52abf22e.js → 3702-3049f543449956ae.js} +1 -1
  313. 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/src/lib/terminal/ptyBridge.py +163 -0
  314. 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/src/lib/terminal/ptyBridge.py +163 -0
  315. package/cli/app/cli/hooks/cloakbrowserRuntime.js +84 -27
  316. package/cli/app/cli/hooks/postinstall.js +3 -3
  317. package/cli/app/package.json +1 -1
  318. package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +4 -0
  319. package/cli/hooks/cloakbrowserRuntime.js +84 -27
  320. package/cli/hooks/postinstall.js +3 -3
  321. package/cli/package.json +1 -1
  322. package/package.json +1 -1
  323. package/src/app/api/oauth/grok-cli/bulk-import/route.js +4 -0
  324. package/src/lib/oauth/services/bulkImportBrowserEngine.js +4 -0
  325. package/src/lib/oauth/services/grokCliBulkImportManager.js +64 -6
  326. /package/cli/app/.next-cli-build/static/{OUOJ4FO09rwwLcZHdfxmm → 4qzgXNlTatuSwREqjg1Tx}/_buildManifest.js +0 -0
  327. /package/cli/app/.next-cli-build/static/{OUOJ4FO09rwwLcZHdfxmm → 4qzgXNlTatuSwREqjg1Tx}/_ssgManifest.js +0 -0
@@ -1,14 +1,22 @@
1
1
  // Lazy-install helper for cloakbrowser (stealth Chromium that can pass Turnstile).
2
2
  // Same shape as camoufoxRuntime / playwrightRuntime — optional package, install on demand.
3
+ // Also installs mmdb-lib (required by cloakbrowser when geoip: true for proxy timezone match).
3
4
  const { createRequire } = require("module");
4
5
  const fs = require("fs");
5
6
  const path = require("path");
6
7
 
7
- const { runNpmInstall, getRuntimeDir, getRuntimeNodeModules, summarizeNpmError } = require("./sqliteRuntime");
8
+ const {
9
+ runNpmInstall,
10
+ getRuntimeDir,
11
+ getRuntimeNodeModules,
12
+ summarizeNpmError,
13
+ buildEnvWithRuntime,
14
+ } = require("./sqliteRuntime");
8
15
 
9
16
  const CLOAKBROWSER_PACKAGE = "cloakbrowser";
10
- // Keep in sync with package.json optionalDependencies
11
17
  const CLOAKBROWSER_VERSION = "^0.3.32";
18
+ const MMDB_PACKAGE = "mmdb-lib";
19
+ const MMDB_VERSION = "^3.0.2";
12
20
 
13
21
  const nodeRequire =
14
22
  typeof __non_webpack_require__ === "function" ? __non_webpack_require__ : require;
@@ -24,6 +32,10 @@ function getRuntimeRequire() {
24
32
 
25
33
  let cachedReady = null;
26
34
 
35
+ function hasPackage(name) {
36
+ return fs.existsSync(path.join(getRuntimeNodeModules(), name, "package.json"));
37
+ }
38
+
27
39
  function tryRequireCloakbrowser() {
28
40
  try {
29
41
  const rreq = getRuntimeRequire();
@@ -41,7 +53,6 @@ function tryRequireCloakbrowser() {
41
53
  return nodeRequire(candidate);
42
54
  }
43
55
  } catch {}
44
- // Dev / user global installs
45
56
  try {
46
57
  const home = process.env.HOME || process.env.USERPROFILE || "";
47
58
  const aurix = path.join(home, ".aurix/agent/node_modules", CLOAKBROWSER_PACKAGE);
@@ -52,49 +63,93 @@ function tryRequireCloakbrowser() {
52
63
  return null;
53
64
  }
54
65
 
66
+ function tryRequireMmdb() {
67
+ try {
68
+ const rreq = getRuntimeRequire();
69
+ const candidate = path.join(getRuntimeNodeModules(), MMDB_PACKAGE);
70
+ if (rreq && fs.existsSync(path.join(candidate, "package.json"))) {
71
+ return rreq(candidate);
72
+ }
73
+ } catch {}
74
+ try {
75
+ return nodeRequire(MMDB_PACKAGE);
76
+ } catch {}
77
+ return null;
78
+ }
79
+
55
80
  function loadCloakbrowserModule() {
56
81
  return tryRequireCloakbrowser();
57
82
  }
58
83
 
84
+ /**
85
+ * Ensure cloakbrowser + mmdb-lib are available under ~/.zevai/runtime.
86
+ * mmdb-lib is required when launching with geoip: true (proxy timezone/locale).
87
+ */
59
88
  function ensureCloakbrowserRuntime({ silent = false } = {}) {
60
- if (cachedReady?.ok && cachedReady.module) {
89
+ if (cachedReady?.ok && cachedReady.module && tryRequireMmdb()) {
61
90
  return cachedReady;
62
91
  }
63
92
 
64
- let mod = tryRequireCloakbrowser();
65
- if (mod?.launch) {
66
- cachedReady = { ok: true, module: mod };
67
- return cachedReady;
93
+ // Inject runtime node_modules into resolution for cloakbrowser's require("mmdb-lib")
94
+ try {
95
+ const env = buildEnvWithRuntime(process.env);
96
+ if (env.NODE_PATH && !process.env.NODE_PATH?.includes(getRuntimeNodeModules())) {
97
+ process.env.NODE_PATH = env.NODE_PATH;
98
+ // Re-init module paths for already-running process
99
+ try {
100
+ // eslint-disable-next-line no-underscore-dangle
101
+ require("module").Module._initPaths();
102
+ } catch {
103
+ /* ignore */
104
+ }
105
+ }
106
+ } catch {
107
+ /* ignore */
68
108
  }
69
109
 
70
- if (!silent) {
71
- console.log(`[cloakbrowser] Installing ${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION} into runtime…`);
110
+ let mod = tryRequireCloakbrowser();
111
+ const needCloak = !mod?.launch;
112
+ const needMmdb = !tryRequireMmdb() && !hasPackage(MMDB_PACKAGE);
113
+
114
+ if (needCloak || needMmdb) {
115
+ const pkgs = [];
116
+ if (needCloak) pkgs.push(`${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`);
117
+ if (needMmdb) pkgs.push(`${MMDB_PACKAGE}@${MMDB_VERSION}`);
118
+
119
+ if (!silent) {
120
+ console.log(`[cloakbrowser] Installing ${pkgs.join(", ")} into runtime…`);
121
+ }
122
+
123
+ const installRes = runNpmInstall({
124
+ cwd: getRuntimeDir(),
125
+ pkgs,
126
+ timeout: 300_000,
127
+ });
128
+
129
+ if (!installRes.ok) {
130
+ const reason = summarizeNpmError(installRes.stderr || installRes.stdout || "");
131
+ const err = new Error(
132
+ `Failed to install ${pkgs.join(", ")}. On the host run: cd "${getRuntimeDir()}" && npm install ${pkgs.join(" ")} — ${reason}`
133
+ );
134
+ err.code = "CLOAKBROWSER_INSTALL_FAILED";
135
+ return { ok: false, error: err };
136
+ }
72
137
  }
73
138
 
74
- // runNpmInstall expects a single options object: { cwd, pkgs, extraArgs, timeout }
75
- // (NOT positional args). Wrong call shape caused: "pkgs is not iterable" / toast
76
- // "Failed to install cloakbrowser … b is not iterable" on first Grok bulk use.
77
- const installRes = runNpmInstall({
78
- cwd: getRuntimeDir(),
79
- pkgs: [`${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`],
80
- timeout: 300_000,
81
- });
82
-
83
- if (!installRes.ok) {
84
- const reason = summarizeNpmError(installRes.stderr || installRes.stdout || "");
139
+ mod = tryRequireCloakbrowser();
140
+ if (!mod?.launch) {
85
141
  const err = new Error(
86
- `Failed to install cloakbrowser. On the host run: cd "${getRuntimeDir()}" && npm install ${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION} ${reason}`
142
+ `cloakbrowser installed but launch() is missing. Reinstall: cd "${getRuntimeDir()}" && npm install ${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION} ${MMDB_PACKAGE}@${MMDB_VERSION}`
87
143
  );
88
- err.code = "CLOAKBROWSER_INSTALL_FAILED";
144
+ err.code = "CLOAKBROWSER_API_MISMATCH";
89
145
  return { ok: false, error: err };
90
146
  }
91
147
 
92
- mod = tryRequireCloakbrowser();
93
- if (!mod?.launch) {
148
+ if (!tryRequireMmdb() && !hasPackage(MMDB_PACKAGE)) {
94
149
  const err = new Error(
95
- `cloakbrowser installed but launch() is missing. Reinstall: cd "${getRuntimeDir()}" && npm install ${CLOAKBROWSER_PACKAGE}@${CLOAKBROWSER_VERSION}`
150
+ `mmdb-lib is required for geoip: true. Install: cd "${getRuntimeDir()}" && npm install ${MMDB_PACKAGE}@${MMDB_VERSION}`
96
151
  );
97
- err.code = "CLOAKBROWSER_API_MISMATCH";
152
+ err.code = "MMDB_MISSING";
98
153
  return { ok: false, error: err };
99
154
  }
100
155
 
@@ -107,4 +162,6 @@ module.exports = {
107
162
  loadCloakbrowserModule,
108
163
  CLOAKBROWSER_PACKAGE,
109
164
  CLOAKBROWSER_VERSION,
165
+ MMDB_PACKAGE,
166
+ MMDB_VERSION,
110
167
  };
@@ -148,12 +148,12 @@ try {
148
148
  warn(`Camoufox skipped: ${e.message}`);
149
149
  }
150
150
 
151
- // 5) CloakBrowser (Grok Turnstile / xAI email bulk)
151
+ // 5) CloakBrowser + mmdb-lib (Grok Turnstile / proxy geoip)
152
152
  try {
153
- log("… CloakBrowser (Grok bulk / Turnstile)");
153
+ log("… CloakBrowser + mmdb-lib (Grok bulk / geoip)");
154
154
  const cloak = warmCloakbrowser();
155
155
  if (cloak.ok) {
156
- log("✓ CloakBrowser ready");
156
+ log("✓ CloakBrowser + mmdb-lib ready");
157
157
  } else {
158
158
  warn(`CloakBrowser skipped: ${cloak.error?.message || "unknown"} — install on first Grok bulk if needed`);
159
159
  }
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter-cli",
3
- "version": "1.0.60",
3
+ "version": "1.0.62",
4
4
  "description": "ZevaiRouter CLI - Start and manage ZevaiRouter server",
5
5
  "bin": {
6
6
  "zevai": "./cli.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter",
3
- "version": "1.0.60",
3
+ "version": "1.0.62",
4
4
  "description": "Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard",
5
5
  "bin": {
6
6
  "zevai": "./cli/cli.js"
@@ -20,6 +20,10 @@ export async function POST(request) {
20
20
  accounts,
21
21
  concurrency: body?.concurrency ?? 1,
22
22
  engine: body?.engine || "cloakbrowser",
23
+ // Must forward proxy selection from the Automation modal — previously ignored,
24
+ // so Grok bulk always hit xAI from the VPS IP even when a pool was selected.
25
+ proxyPoolMode: body?.proxyPoolMode || "none",
26
+ proxyPoolId: body?.proxyPoolId || null,
23
27
  });
24
28
 
25
29
  return NextResponse.json({
@@ -235,6 +235,7 @@ async function launchCloakbrowser({ proxyUrl, headless = false, windowSize = nul
235
235
  const runtime = loadRuntimeHelper("cloakbrowserRuntime");
236
236
  let cloak = null;
237
237
  if (runtime?.ensureCloakbrowserRuntime) {
238
+ // Also installs mmdb-lib (required when geoip: true for proxy timezone match)
238
239
  const ready = runtime.ensureCloakbrowserRuntime({ silent: false });
239
240
  if (!ready.ok && ready.error) throw ready.error;
240
241
  cloak = ready.module || runtime.loadCloakbrowserModule?.();
@@ -266,7 +267,10 @@ async function launchCloakbrowser({ proxyUrl, headless = false, windowSize = nul
266
267
  humanize: true,
267
268
  };
268
269
  if (proxyUrl) {
270
+ // CloakBrowser docs: string or { server, username, password }; geoip aligns
271
+ // timezone/locale to proxy IP (critical for Turnstile / abusive-pattern checks).
269
272
  launchOpts.proxy = proxyUrl;
273
+ launchOpts.geoip = true;
270
274
  }
271
275
  if (windowSize?.width && windowSize?.height) {
272
276
  launchOpts.viewport = { width: windowSize.width, height: windowSize.height };
@@ -188,7 +188,10 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
188
188
  proxyUrl = null,
189
189
  } = {}) {
190
190
  super({
191
- browserLauncher: (job) => browserLauncher(proxyUrl, job?.engine),
191
+ // Prefer first pool URL from the job so CloakBrowser launches with proxy+geoip
192
+ // (context-only proxy is not enough for fingerprint/timezone matching).
193
+ browserLauncher: (job) =>
194
+ browserLauncher(job?.proxyUrls?.[0] || proxyUrl || null, job?.engine),
192
195
  googleAutomation: null,
193
196
  socialExchange: null,
194
197
  kiroServiceFactory: null,
@@ -263,11 +266,54 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
263
266
  return;
264
267
  }
265
268
 
266
- const { context, page } = await createFreshContext(job.browser, account.proxyUrl);
267
- account.runtimeSession = { context, page };
269
+ // CloakBrowser needs proxy+geoip on launch() for antibot. Shared job.browser may
270
+ // have no proxy or a different one — spawn a dedicated browser when needed.
271
+ let browser = job.browser;
272
+ let ownedBrowser = null;
273
+ const accountProxy = account.proxyUrl || null;
274
+ const sharedProxy = job.proxyUrls?.[0] || null;
275
+ const needsOwnBrowser =
276
+ job.engine === "cloakbrowser"
277
+ && accountProxy
278
+ && accountProxy !== sharedProxy;
279
+
280
+ if (needsOwnBrowser || (job.engine === "cloakbrowser" && accountProxy && !sharedProxy)) {
281
+ try {
282
+ const { launchBulkImportBrowser } = await import("./bulkImportBrowserEngine.js");
283
+ ownedBrowser = await launchBulkImportBrowser({
284
+ engine: "cloakbrowser",
285
+ proxyUrl: accountProxy,
286
+ headless: false,
287
+ windowSize: { width: 1280, height: 900 },
288
+ });
289
+ browser = ownedBrowser;
290
+ this.setAccountStep(
291
+ account,
292
+ "proxy_browser",
293
+ `Launched CloakBrowser with account proxy (geoip)`
294
+ );
295
+ } catch (error) {
296
+ this.finalizeAccount(account, "failed", {
297
+ error: error.message || "Failed to launch browser with proxy",
298
+ step: "proxy_launch_failed",
299
+ message: error.message || "Failed to launch browser with proxy",
300
+ });
301
+ await this.persistJobSnapshot(job, { forcePreview: true });
302
+ return;
303
+ }
304
+ }
305
+
306
+ // If browser already launched with this proxy, don't double-apply on context
307
+ const contextProxy = ownedBrowser ? null : accountProxy;
308
+ const { context, page } = await createFreshContext(browser, contextProxy);
309
+ account.runtimeSession = { context, page, ownedBrowser };
268
310
 
269
311
  try {
270
- this.setAccountStep(account, "preparing_worker", `Worker ${workerId} preparing CloakBrowser / xAI flow`);
312
+ this.setAccountStep(
313
+ account,
314
+ "preparing_worker",
315
+ `Worker ${workerId} preparing CloakBrowser / xAI flow${accountProxy ? " (proxied)" : " (direct VPS IP — expect blocks)"}`
316
+ );
271
317
  await this.persistJobSnapshot(job, { forcePreview: true });
272
318
 
273
319
  const onStep = (step, message) => {
@@ -298,14 +344,21 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
298
344
  });
299
345
 
300
346
  if (signup.status === "needs_manual") {
301
- account.manualSession = { context, page, opened: false, openedAt: null };
347
+ account.manualSession = {
348
+ context,
349
+ page,
350
+ opened: false,
351
+ openedAt: null,
352
+ ownedBrowser,
353
+ };
302
354
  this.finalizeAccount(account, "needs_manual", {
303
355
  error: signup.error,
304
356
  step: signup.step || "awaiting_manual",
305
357
  message: signup.error,
306
358
  });
307
359
  await this.persistJobSnapshot(job, { forcePreview: true });
308
- // keep session open for manual; no token poll yet
360
+ // keep session open for manual; do not close ownedBrowser here
361
+ ownedBrowser = null;
309
362
  return;
310
363
  }
311
364
 
@@ -317,6 +370,7 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
317
370
  });
318
371
  account.runtimeSession = null;
319
372
  await context.close().catch(() => null);
373
+ if (ownedBrowser) await ownedBrowser.close().catch(() => null);
320
374
  await this.persistJobSnapshot(job, { forcePreview: true });
321
375
  return;
322
376
  }
@@ -347,6 +401,7 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
347
401
  await this.finalizeSuccess(job, account, auth.tokens, mode);
348
402
  account.runtimeSession = null;
349
403
  await context.close().catch(() => null);
404
+ if (ownedBrowser) await ownedBrowser.close().catch(() => null);
350
405
  await this.persistJobSnapshot(job, { forcePreview: true });
351
406
  return;
352
407
  }
@@ -358,6 +413,7 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
358
413
  });
359
414
  account.runtimeSession = null;
360
415
  await context.close().catch(() => null);
416
+ if (ownedBrowser) await ownedBrowser.close().catch(() => null);
361
417
  await this.persistJobSnapshot(job, { forcePreview: true });
362
418
  } catch (error) {
363
419
  if (job.cancelRequested) {
@@ -375,9 +431,11 @@ class GrokCliBulkImportManager extends KiroBulkImportManager {
375
431
  }
376
432
  account.runtimeSession = null;
377
433
  await context.close().catch(() => null);
434
+ if (ownedBrowser) await ownedBrowser.close().catch(() => null);
378
435
  await this.persistJobSnapshot(job, { forcePreview: true });
379
436
  } finally {
380
437
  account.password = undefined;
438
+ if (ownedBrowser) await ownedBrowser.close().catch(() => null);
381
439
  }
382
440
  }
383
441