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.
- package/CHANGELOG.md +10 -0
- package/cli/app/.next-cli-build/BUILD_ID +1 -1
- package/cli/app/.next-cli-build/app-path-routes-manifest.json +21 -21
- package/cli/app/.next-cli-build/build-manifest.json +2 -2
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/callback.html +1 -1
- package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.html +1 -1
- package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/landing.html +1 -1
- package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app/login.html +1 -1
- package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
- package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/app-paths-manifest.json +21 -21
- package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/3487.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/5949.js +2 -2
- package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
- package/cli/app/.next-cli-build/server/chunks/7276.js +1 -1
- package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/cli/app/.next-cli-build/server/pages/404.html +1 -1
- package/cli/app/.next-cli-build/server/pages/500.html +1 -1
- package/cli/app/.next-cli-build/static/chunks/{3702-7f8a112e52abf22e.js → 3702-3049f543449956ae.js} +1 -1
- 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
- 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
- package/cli/app/cli/hooks/cloakbrowserRuntime.js +84 -27
- package/cli/app/cli/hooks/postinstall.js +3 -3
- package/cli/app/package.json +1 -1
- package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +4 -0
- package/cli/hooks/cloakbrowserRuntime.js +84 -27
- package/cli/hooks/postinstall.js +3 -3
- package/cli/package.json +1 -1
- package/package.json +1 -1
- package/src/app/api/oauth/grok-cli/bulk-import/route.js +4 -0
- package/src/lib/oauth/services/bulkImportBrowserEngine.js +4 -0
- package/src/lib/oauth/services/grokCliBulkImportManager.js +64 -6
- /package/cli/app/.next-cli-build/static/{OUOJ4FO09rwwLcZHdfxmm → 4qzgXNlTatuSwREqjg1Tx}/_buildManifest.js +0 -0
- /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 {
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
71
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
`
|
|
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 = "
|
|
144
|
+
err.code = "CLOAKBROWSER_API_MISMATCH";
|
|
89
145
|
return { ok: false, error: err };
|
|
90
146
|
}
|
|
91
147
|
|
|
92
|
-
|
|
93
|
-
if (!mod?.launch) {
|
|
148
|
+
if (!tryRequireMmdb() && !hasPackage(MMDB_PACKAGE)) {
|
|
94
149
|
const err = new Error(
|
|
95
|
-
`
|
|
150
|
+
`mmdb-lib is required for geoip: true. Install: cd "${getRuntimeDir()}" && npm install ${MMDB_PACKAGE}@${MMDB_VERSION}`
|
|
96
151
|
);
|
|
97
|
-
err.code = "
|
|
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
|
};
|
package/cli/hooks/postinstall.js
CHANGED
|
@@ -148,12 +148,12 @@ try {
|
|
|
148
148
|
warn(`Camoufox skipped: ${e.message}`);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
// 5) CloakBrowser (Grok Turnstile /
|
|
151
|
+
// 5) CloakBrowser + mmdb-lib (Grok Turnstile / proxy geoip)
|
|
152
152
|
try {
|
|
153
|
-
log("… CloakBrowser (Grok bulk /
|
|
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
package/package.json
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
267
|
-
|
|
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(
|
|
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 = {
|
|
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;
|
|
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
|
|
|
File without changes
|
|
File without changes
|