zevairouter 1.0.28 → 1.0.30

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 (281) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +3 -3
  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/profile/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  29. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  30. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  31. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  32. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  33. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  34. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  36. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  38. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  39. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  40. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  42. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  43. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  45. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  48. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  56. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  57. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  58. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  59. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  60. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  61. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  62. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  63. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  64. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  65. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  66. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  68. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  69. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  70. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  71. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  72. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  73. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  74. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  75. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  76. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  77. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  78. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  79. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  80. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  81. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  82. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  83. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  84. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  85. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  86. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  87. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  88. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  89. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  90. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  91. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  92. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  93. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  94. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  95. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  96. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  99. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  100. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  101. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  102. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  103. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  104. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  105. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  106. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  107. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  108. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  109. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  110. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  111. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  112. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  113. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  114. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  115. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  116. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  117. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  118. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  119. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  120. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  121. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  122. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  123. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  124. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  125. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  126. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  127. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  128. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  129. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  130. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  131. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  132. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  133. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  134. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  135. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  136. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  137. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  138. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  139. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  140. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  141. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  142. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  143. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  144. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  145. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  146. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  147. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  148. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  149. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  150. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  151. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  152. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  153. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  154. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  155. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  156. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  157. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  158. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  159. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  161. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  162. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  163. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  164. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  165. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  167. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  168. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  169. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  171. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  172. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  173. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  174. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  175. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  176. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  177. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  178. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  179. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  180. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  181. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  182. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  183. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  184. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  185. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  186. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  187. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  188. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  189. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  190. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  191. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  192. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  193. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  194. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  195. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  198. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  199. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  200. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  201. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  202. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  203. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  204. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  205. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  206. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  207. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  208. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  209. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  210. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  211. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  212. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  213. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  214. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  215. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  216. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  217. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  218. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  219. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  220. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  221. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  222. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  223. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  224. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  225. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  226. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  227. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  228. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  229. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  230. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  231. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  232. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  233. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  234. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  235. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  236. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  237. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  238. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  239. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  240. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  241. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  243. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  244. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  245. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  246. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  247. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  248. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  249. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  250. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  251. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  253. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  254. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  255. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  256. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  257. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  258. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  259. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  260. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  261. package/cli/app/.next-cli-build/server/app-paths-manifest.json +3 -3
  262. package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
  263. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  264. package/cli/app/.next-cli-build/server/chunks/5949.js +33 -1
  265. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  266. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
  267. package/cli/app/.next-cli-build/server/chunks/9326.js +1 -1
  268. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  269. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  270. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  271. package/cli/app/.next-cli-build/static/chunks/{1321-5a9e391befc0c444.js → 1321-f0bfa39f5088c2fe.js} +1 -1
  272. package/cli/app/cli/hooks/sqliteRuntime.js +8 -7
  273. package/cli/app/package.json +1 -1
  274. package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +74 -8
  275. package/cli/hooks/sqliteRuntime.js +8 -7
  276. package/cli/package.json +1 -1
  277. package/package.json +1 -1
  278. package/src/lib/oauth/services/bulkImportBrowserEngine.js +74 -8
  279. package/src/lib/oauth/services/kiroGoogleAutomation.js +21 -4
  280. /package/cli/app/.next-cli-build/static/{dQVBTkxMneD9bo4_sm1od → 0_H2408FyK5h1iiMUVln9}/_buildManifest.js +0 -0
  281. /package/cli/app/.next-cli-build/static/{dQVBTkxMneD9bo4_sm1od → 0_H2408FyK5h1iiMUVln9}/_ssgManifest.js +0 -0
@@ -80,13 +80,14 @@ function summarizeNpmError(stderr = "") {
80
80
  }
81
81
 
82
82
  function runNpmInstall({ cwd, pkgs, extraArgs = [], timeout = 180000 }) {
83
- // --no-save is critical: the runtime dir hosts multiple lazily-installed
84
- // optional packages (better-sqlite3, camoufox-js, playwright). Installing one
85
- // without --no-save prunes the others (npm reconciles node_modules against
86
- // package.json on every install), which is why camoufox-js kept vanishing on
87
- // restart. --no-save keeps each install additive.
88
- const alreadyNoSave = extraArgs.includes("--no-save");
89
- const args = ["install", ...pkgs, "--no-audit", "--no-fund", "--prefer-online", ...(alreadyNoSave ? [] : ["--no-save"]), ...extraArgs];
83
+ // Use --save (NOT --no-save): the runtime dir hosts several lazily-installed
84
+ // optional packages (better-sqlite3, camoufox-js, playwright, systray2). npm
85
+ // v11 prunes anything NOT declared in package.json on every `npm install`, so
86
+ // --no-save made each install wipe the previously-installed optional packages
87
+ // (camoufox-js kept vanishing on restart). --save records each package as a
88
+ // real dependency so npm treats it as legitimate and never prunes it.
89
+ const filtered = extraArgs.filter((a) => a !== "--no-save");
90
+ const args = ["install", ...pkgs, "--save", "--no-audit", "--no-fund", "--prefer-online", ...filtered];
90
91
 
91
92
  // Prefer running npm-cli.js with the SAME Node that's executing us. On hosts
92
93
  // where the default `npm`/`/usr/bin/node` is an old Node (e.g. v12), spawning
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "ZevaiRouter - AI Router with provider automation, multi-account workflows, and quota tracking",
5
5
  "bin": {
6
6
  "zevai": "./cli/cli.js"
@@ -24,11 +24,56 @@ async function importPlaywright() {
24
24
  return playwright.chromium ?? playwright.default?.chromium ?? null;
25
25
  }
26
26
 
27
+ const STEALTH_INIT_SCRIPT = `
28
+ Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
29
+ Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] });
30
+ Object.defineProperty(navigator, 'plugins', {
31
+ get: () => {
32
+ const plugins = [
33
+ { name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
34
+ { name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' },
35
+ { name: 'Native Client', filename: 'internal-nacl-plugin', description: '' },
36
+ ];
37
+ plugins.length = 3;
38
+ return plugins;
39
+ }
40
+ });
41
+ const _origQuery = window.navigator.permissions.query;
42
+ window.navigator.permissions.query = (parameters) =>
43
+ parameters.name === 'notifications'
44
+ ? Promise.resolve({ state: Notification.permission })
45
+ : _origQuery.call(window.navigator.permissions, parameters);
46
+ if (window.chrome) {
47
+ if (!window.chrome.runtime) window.chrome.runtime = {};
48
+ window.chrome.runtime.connect = window.chrome.runtime.connect || function() {};
49
+ window.chrome.runtime.sendMessage = window.chrome.runtime.sendMessage || function() {};
50
+ } else {
51
+ window.chrome = { runtime: { connect: function() {}, sendMessage: function() {} } };
52
+ }
53
+ const _origGetParameter = WebGLRenderingContext.prototype.getParameter;
54
+ WebGLRenderingContext.prototype.getParameter = function(parameter) {
55
+ if (parameter === 37445) return 'Intel Inc.';
56
+ if (parameter === 37446) return 'Intel Iris OpenGL Engine';
57
+ return _origGetParameter.call(this, parameter);
58
+ };
59
+ `;
60
+
61
+ function wrapBrowserWithStealth(browser) {
62
+ const origNewContext = browser.newContext.bind(browser);
63
+ browser.newContext = async function (options = {}) {
64
+ // Fix HeadlessChrome in User-Agent — Google detects this server-side
65
+ if (!options.userAgent) {
66
+ const ver = browser.version ? browser.version() : "131.0.0.0";
67
+ options.userAgent = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${ver} Safari/537.36`;
68
+ }
69
+ const ctx = await origNewContext(options);
70
+ await ctx.addInitScript(STEALTH_INIT_SCRIPT);
71
+ return ctx;
72
+ };
73
+ return browser;
74
+ }
75
+
27
76
  async function launchChromium({ proxyUrl } = {}) {
28
- // Try the real import FIRST. In the bundled standalone server this resolves
29
- // playwright correctly (Next externalizes it), whereas the runtime helper's
30
- // internal require() can return a false negative. We only consult the helper
31
- // if the direct import genuinely fails.
32
77
  let chromium = null;
33
78
  let importErr = null;
34
79
  try {
@@ -42,7 +87,6 @@ async function launchChromium({ proxyUrl } = {}) {
42
87
  if (runtime?.ensurePlaywrightRuntime) {
43
88
  const ready = runtime.ensurePlaywrightRuntime({ silent: false });
44
89
  if (ready.ok) {
45
- // Helper may have lazily installed playwright / downloaded chromium.
46
90
  try {
47
91
  chromium = await importPlaywright();
48
92
  } catch (err) {
@@ -68,16 +112,38 @@ async function launchChromium({ proxyUrl } = {}) {
68
112
  throw friendly;
69
113
  }
70
114
 
71
- const options = { headless: true };
115
+ const options = {
116
+ channel: "chrome",
117
+ headless: true,
118
+ args: [
119
+ "--disable-blink-features=AutomationControlled",
120
+ "--disable-features=IsolateOrigins,site-per-process,AutomationControlled",
121
+ "--disable-infobars",
122
+ "--no-first-run",
123
+ "--no-default-browser-check",
124
+ "--disable-extensions",
125
+ "--disable-popup-blocking",
126
+ "--disable-backgrounding-occluded-windows",
127
+ "--disable-renderer-backgrounding",
128
+ "--disable-background-timer-throttling",
129
+ "--disable-ipc-flooding-protection",
130
+ "--password-store=basic",
131
+ "--use-mock-keychain",
132
+ "--window-size=1920,1080",
133
+ ],
134
+ ignoreDefaultArgs: ["--enable-automation"],
135
+ };
72
136
  if (proxyUrl) options.proxy = { server: proxyUrl };
73
- return chromium.launch(options);
137
+
138
+ const browser = await chromium.launch(options);
139
+ return wrapBrowserWithStealth(browser);
74
140
  }
75
141
 
76
142
  async function launchCamoufox({ proxyUrl } = {}) {
77
143
  const runtime = loadRuntimeHelper("camoufoxRuntime");
78
144
  if (!runtime?.ensureCamoufoxRuntime) {
79
145
  const err = new Error(
80
- `Camoufox runtime helper missing. Reinstall zevairouter or pick the Chromium engine.`
146
+ `Camoufox runtime helper missing. Reinstall z‍evairouter or pick the Chromium engine.`
81
147
  );
82
148
  err.code = "CAMOUFOX_RUNTIME_HELPER_MISSING";
83
149
  throw err;
@@ -80,13 +80,14 @@ function summarizeNpmError(stderr = "") {
80
80
  }
81
81
 
82
82
  function runNpmInstall({ cwd, pkgs, extraArgs = [], timeout = 180000 }) {
83
- // --no-save is critical: the runtime dir hosts multiple lazily-installed
84
- // optional packages (better-sqlite3, camoufox-js, playwright). Installing one
85
- // without --no-save prunes the others (npm reconciles node_modules against
86
- // package.json on every install), which is why camoufox-js kept vanishing on
87
- // restart. --no-save keeps each install additive.
88
- const alreadyNoSave = extraArgs.includes("--no-save");
89
- const args = ["install", ...pkgs, "--no-audit", "--no-fund", "--prefer-online", ...(alreadyNoSave ? [] : ["--no-save"]), ...extraArgs];
83
+ // Use --save (NOT --no-save): the runtime dir hosts several lazily-installed
84
+ // optional packages (better-sqlite3, camoufox-js, playwright, systray2). npm
85
+ // v11 prunes anything NOT declared in package.json on every `npm install`, so
86
+ // --no-save made each install wipe the previously-installed optional packages
87
+ // (camoufox-js kept vanishing on restart). --save records each package as a
88
+ // real dependency so npm treats it as legitimate and never prunes it.
89
+ const filtered = extraArgs.filter((a) => a !== "--no-save");
90
+ const args = ["install", ...pkgs, "--save", "--no-audit", "--no-fund", "--prefer-online", ...filtered];
90
91
 
91
92
  // Prefer running npm-cli.js with the SAME Node that's executing us. On hosts
92
93
  // where the default `npm`/`/usr/bin/node` is an old Node (e.g. v12), spawning
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter-cli",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
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.28",
3
+ "version": "1.0.30",
4
4
  "description": "ZevaiRouter - AI Router with provider automation, multi-account workflows, and quota tracking",
5
5
  "bin": {
6
6
  "zevai": "./cli/cli.js"
@@ -24,11 +24,56 @@ async function importPlaywright() {
24
24
  return playwright.chromium ?? playwright.default?.chromium ?? null;
25
25
  }
26
26
 
27
+ const STEALTH_INIT_SCRIPT = `
28
+ Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
29
+ Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] });
30
+ Object.defineProperty(navigator, 'plugins', {
31
+ get: () => {
32
+ const plugins = [
33
+ { name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
34
+ { name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: '' },
35
+ { name: 'Native Client', filename: 'internal-nacl-plugin', description: '' },
36
+ ];
37
+ plugins.length = 3;
38
+ return plugins;
39
+ }
40
+ });
41
+ const _origQuery = window.navigator.permissions.query;
42
+ window.navigator.permissions.query = (parameters) =>
43
+ parameters.name === 'notifications'
44
+ ? Promise.resolve({ state: Notification.permission })
45
+ : _origQuery.call(window.navigator.permissions, parameters);
46
+ if (window.chrome) {
47
+ if (!window.chrome.runtime) window.chrome.runtime = {};
48
+ window.chrome.runtime.connect = window.chrome.runtime.connect || function() {};
49
+ window.chrome.runtime.sendMessage = window.chrome.runtime.sendMessage || function() {};
50
+ } else {
51
+ window.chrome = { runtime: { connect: function() {}, sendMessage: function() {} } };
52
+ }
53
+ const _origGetParameter = WebGLRenderingContext.prototype.getParameter;
54
+ WebGLRenderingContext.prototype.getParameter = function(parameter) {
55
+ if (parameter === 37445) return 'Intel Inc.';
56
+ if (parameter === 37446) return 'Intel Iris OpenGL Engine';
57
+ return _origGetParameter.call(this, parameter);
58
+ };
59
+ `;
60
+
61
+ function wrapBrowserWithStealth(browser) {
62
+ const origNewContext = browser.newContext.bind(browser);
63
+ browser.newContext = async function (options = {}) {
64
+ // Fix HeadlessChrome in User-Agent — Google detects this server-side
65
+ if (!options.userAgent) {
66
+ const ver = browser.version ? browser.version() : "131.0.0.0";
67
+ options.userAgent = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${ver} Safari/537.36`;
68
+ }
69
+ const ctx = await origNewContext(options);
70
+ await ctx.addInitScript(STEALTH_INIT_SCRIPT);
71
+ return ctx;
72
+ };
73
+ return browser;
74
+ }
75
+
27
76
  async function launchChromium({ proxyUrl } = {}) {
28
- // Try the real import FIRST. In the bundled standalone server this resolves
29
- // playwright correctly (Next externalizes it), whereas the runtime helper's
30
- // internal require() can return a false negative. We only consult the helper
31
- // if the direct import genuinely fails.
32
77
  let chromium = null;
33
78
  let importErr = null;
34
79
  try {
@@ -42,7 +87,6 @@ async function launchChromium({ proxyUrl } = {}) {
42
87
  if (runtime?.ensurePlaywrightRuntime) {
43
88
  const ready = runtime.ensurePlaywrightRuntime({ silent: false });
44
89
  if (ready.ok) {
45
- // Helper may have lazily installed playwright / downloaded chromium.
46
90
  try {
47
91
  chromium = await importPlaywright();
48
92
  } catch (err) {
@@ -68,16 +112,38 @@ async function launchChromium({ proxyUrl } = {}) {
68
112
  throw friendly;
69
113
  }
70
114
 
71
- const options = { headless: true };
115
+ const options = {
116
+ channel: "chrome",
117
+ headless: true,
118
+ args: [
119
+ "--disable-blink-features=AutomationControlled",
120
+ "--disable-features=IsolateOrigins,site-per-process,AutomationControlled",
121
+ "--disable-infobars",
122
+ "--no-first-run",
123
+ "--no-default-browser-check",
124
+ "--disable-extensions",
125
+ "--disable-popup-blocking",
126
+ "--disable-backgrounding-occluded-windows",
127
+ "--disable-renderer-backgrounding",
128
+ "--disable-background-timer-throttling",
129
+ "--disable-ipc-flooding-protection",
130
+ "--password-store=basic",
131
+ "--use-mock-keychain",
132
+ "--window-size=1920,1080",
133
+ ],
134
+ ignoreDefaultArgs: ["--enable-automation"],
135
+ };
72
136
  if (proxyUrl) options.proxy = { server: proxyUrl };
73
- return chromium.launch(options);
137
+
138
+ const browser = await chromium.launch(options);
139
+ return wrapBrowserWithStealth(browser);
74
140
  }
75
141
 
76
142
  async function launchCamoufox({ proxyUrl } = {}) {
77
143
  const runtime = loadRuntimeHelper("camoufoxRuntime");
78
144
  if (!runtime?.ensureCamoufoxRuntime) {
79
145
  const err = new Error(
80
- `Camoufox runtime helper missing. Reinstall zevairouter or pick the Chromium engine.`
146
+ `Camoufox runtime helper missing. Reinstall z‍evairouter or pick the Chromium engine.`
81
147
  );
82
148
  err.code = "CAMOUFOX_RUNTIME_HELPER_MISSING";
83
149
  throw err;
@@ -402,10 +402,28 @@ async function waitForFirstVisibleLocator(page, selector, { timeout = 15_000, po
402
402
  async function fillInputResilient(locator, value, { timeout = 15_000 } = {}) {
403
403
  if (!locator || value == null) return false;
404
404
 
405
+ // Primary: click + type with human-like random delay to avoid CAPTCHA triggers.
406
+ // Avoid fill() as primary — it sets the value instantly which Google detects.
405
407
  try {
406
- await locator.fill(value, { timeout });
408
+ await locator.click({ timeout: 5_000 });
409
+ } catch {
410
+ /* noop */
411
+ }
412
+ try {
413
+ await locator.fill("", { timeout: 3_000 });
414
+ } catch {
415
+ /* noop */
416
+ }
417
+ try {
418
+ const delay = Math.floor(40 + Math.random() * 80); // 40-120ms per keystroke
419
+ await locator.type(value, { delay, timeout });
407
420
  } catch {
408
- // swallow; verification + fallback below will decide
421
+ // If type() fails, fall back to fill()
422
+ try {
423
+ await locator.fill(value, { timeout });
424
+ } catch {
425
+ return false;
426
+ }
409
427
  }
410
428
 
411
429
  let observed = "";
@@ -416,8 +434,7 @@ async function fillInputResilient(locator, value, { timeout = 15_000 } = {}) {
416
434
  }
417
435
  if (observed === value) return true;
418
436
 
419
- // Fallback for React/Vue-controlled inputs where .fill() bypasses the
420
- // framework's onChange wiring and the value snaps back to empty.
437
+ // Final fallback for React/Vue-controlled inputs
421
438
  try {
422
439
  await locator.click({ timeout: 5_000 });
423
440
  } catch {