9router-proxy 0.6.17 → 0.6.18
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/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +12 -12
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +2 -2
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/web-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +3 -3
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +2 -2
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +12 -12
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/1679.js +1 -1
- package/app/.next-cli-build/server/chunks/1757.js +1 -1
- package/app/.next-cli-build/server/chunks/2220.js +1 -1
- package/app/.next-cli-build/server/chunks/341.js +1 -0
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/4956.js +1 -1
- package/app/.next-cli-build/server/chunks/5026.js +1 -1
- package/app/.next-cli-build/server/chunks/5330.js +19 -17
- package/app/.next-cli-build/server/chunks/6638.js +1 -1
- package/app/.next-cli-build/server/chunks/7782.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +2 -2
- package/app/.next-cli-build/server/chunks/9318.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/preview-props.json +3 -3
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/{1321-49da642292269cb3.js → 1321-138d529e585dad58.js} +1 -1
- package/app/.next-cli-build/static/chunks/9057-ab81b24adb40dec4.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-8a571e8e9beccc96.js → page-d61866af0fa7b54f.js} +16 -16
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-bb1d9c5a0be9fd68.js → page-44c9bfdcf25db09b.js} +5 -5
- package/app/package.json +1 -1
- package/package.json +1 -1
- /package/app/.next-cli-build/static/{ZNl8Hs1z--QA5Uwm8j-64 → GlvCkMZjwCu1tsFJ6OXjP}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{ZNl8Hs1z--QA5Uwm8j-64 → GlvCkMZjwCu1tsFJ6OXjP}/_ssgManifest.js +0 -0
|
@@ -263,23 +263,12 @@ ${e}`),j.join("\n\n")}(y),A=y.some(a=>"user"===a.role&&"string"==typeof a.conten
|
|
|
263
263
|
|
|
264
264
|
`)),b.enqueue(a.encode(e.$U)),b.close()}finally{await l.close().catch(()=>{}),await d.close().catch(()=>{});let{releaseGeminiBrowser:a}=await c.e(9745).then(c.bind(c,69745));await a(f)}}},{highWaterMark:16384});return{response:new Response(g,{status:200,headers:{...e.uB}}),url:D,headers:{},transformedBody:b}}let s=await x({page:l,baseCount:o.count,baseText:o.lastText,signal:h});return{response:new Response(JSON.stringify(G(s,B)),{status:200,headers:{"Content-Type":"application/json"}}),url:D,headers:{},transformedBody:b}}catch(c){let a=c instanceof Error?c.message:"Unknown error";if((0,f.BE)(a))return{response:R(503,"Gemini Web needs a Chrome/Chromium binary. Install Google Chrome, set NINEROUTER_BROWSER_BIN or CHROME_PATH to an existing Chrome, or run `npx playwright-core install chromium`."),url:D,headers:{},transformedBody:b};if(c instanceof Error&&("TimeoutError"===c.name||a.includes("waitForSelector")||a.includes("Timeout")||a.includes("actionability")||a.includes("interception")))return{response:R(400,a),url:D,headers:{},transformedBody:b};return{response:R(500,a),url:D,headers:{},transformedBody:b}}finally{K&&h?.removeEventListener("abort",K);try{await J?.close()}catch{}if(C){let{releaseGeminiBrowser:a}=await c.e(9745).then(c.bind(c,69745));await a(C)}}}async generateMedia({prompt:a,n:b=1,size:d,credentials:e,signal:f,log:g}){if(!a)throw Error("prompt is required for image generation");let h=Q(e);if(!h)throw Error("Missing Gemini cookies");let j=[];for(let e=0;e<Math.max(1,b);e++){let b=null,e=null;try{let{acquireGeminiBrowser:g}=await c.e(9745).then(c.bind(c,69745));b=await g(F),e=await b.newContext({userAgent:E}),await e.addCookies((0,i.EU)(h,".google.com"));let k=await e.newPage(),l=await M(k),m=await N(k,l);await m.click(),await k.keyboard.insertText(function(a,b){let c=b?` (aspect ratio ${b})`:"";return`Generate an image${c}: ${a}`}(a,d)),await k.waitForTimeout(300),await k.keyboard.press("Enter");let n=await C(k,{signal:f});j.push(n)}finally{try{await e?.close()}catch{}if(b){let{releaseGeminiBrowser:a}=await c.e(9745).then(c.bind(c,69745));await a(b)}}}return j}}},32447:(a,b,c)=>{c.d(b,{BL:()=>g});var d=c(96179),e=c(52007);let f=["anthropic_version","anthropic_beta","client_metadata","mcp_servers","stop_sequences","thinking","top_k"];class g extends d.L{constructor(){super("kimchi")}transformRequest(a,b,c,d){let g,h=super.transformRequest(a,b,c,d);if(!h||"object"!=typeof h)return h;for(let a of(!function(a){var b;if(!a?.system||!Array.isArray(a.messages))return;let c=("string"==typeof(b=a.system)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"").filter(Boolean).join("\n"):"").trim();if(!c)return;let d=a.messages.find(a=>a?.role==="system");d?"string"==typeof d.content?d.content=`${c}
|
|
265
265
|
|
|
266
|
-
${d.content}`:Array.isArray(d.content)&&d.content.unshift({type:"text",text:c}):a.messages.unshift({role:"system",content:c})}(h),f))void 0!==h[a]&&delete h[a];if(delete h.system,g=(0,e.gK)(a),(g?.provider==="anthropic"||g?.upstreamProvider==="anthropic"||/(^|[-_/])(?:claude|anthropic)(?:[-_/]|$)/i.test(String(a||"")))&&(delete h.reasoning_effort,delete h.reasoning,delete h.thinking),Array.isArray(h?.messages))for(let a of h.messages)a&&"object"==typeof a&&(delete a.cache_control,Array.isArray(a.content)&&(a.content=a.content.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,signature:c,...d}=a;return d})));Array.isArray(h?.tools)&&(h.tools=h.tools.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,...c}=a;return c}));if(Array.isArray(h?.messages))for(let a of h.messages)a&&"assistant"===a.role&&"string"==typeof a.reasoning_content&&a.reasoning_content.length>8&&delete a.reasoning_content;return h}}},36732:(a,b,c)=>{c.d(b,{Rb:()=>h});var d=c(96179),e=c(12132);let f=new Set(["mimo-v2.6-pro","mimo-v2.6-flash","mimo-v2.6-pro-ultraspeed"]),g="__mimoAccountCookie";class h extends d.L{constructor(){super("xiaomi-mimo")}static isAccountRoute(a,b){let c,d,e=(d=(c=String(a||"")).indexOf("/"))>=0?c.slice(d+1):c;return!!f.has(e)&&!!(b?.[g]||b?.providerSpecificData?.mimoPassToken)}isAccountRoute(a,b){return h.isAccountRoute(a,b)}buildUrl(a,b,c=0,d=null){return this.isAccountRoute(a,d)?`${(0,e.resolveMimoServerBase)(d?.providerSpecificData)}/api/route/chat/completions`:super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0,c,d){return this.isAccountRoute(d,a)&&a?.[g]?{"Content-Type":"application/json",Accept:b?"text/event-stream":"application/json","User-Agent":e.MIMO_API_UA,Cookie:a[g]}:super.buildHeaders(a,b,c,d)}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(this.isAccountRoute(a,d)){let a=e.reasoning_effort||b?.reasoning_effort||b?.output_config?.effort;if(a){delete e.reasoning_effort;let b="xhigh"===String(a).toLowerCase()?"high":String(a).toLowerCase();e.output_config={...e.output_config||{},effort:b}}null==e.temperature&&(e.temperature=1),null==e.top_p&&(e.top_p=.95)}return e}async execute(a){let{model:b,credentials:c,proxyOptions:d=null}=a;if(!this.isAccountRoute(b,c))return super.execute(a);let f=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d);if(!f)return super.execute(a);c[g]=f;let h=await super.execute(a);if(401===h.response.status){(0,e.invalidateMimoAccountCookieCache)();let b=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d).catch(()=>null);if(b)return c[g]=b,super.execute(a)}return h}}},49059:(a,b,c)=>{c.d(b,{v:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f="You are a helpful AI assistant that helps with software engineering tasks.",g=/you are claude code|claude.?code.+official.+cli|anthropic.+official.+cli|anxthxropic.+official.+cli|you are (?:cursor|windsurf|cline|aider|continue|copilot|cody)|you are an? (?:ai )?(?:coding |code )?agent|cc_entrypoint\s*=\s*(?:cli|vscode|jetbrains|gui)|claude.?code.+issues|give feedback.+claude.?code|you are .{0,30}(?:powerful )?ai agent|orchestration capabilities|OhMyOpenCode|<agent-identity>|<Role>|<Behavior_Instructions>/i;Array.isArray(e.messages)&&(e.messages=e.messages.map(a=>{let b;if(!a||"system"!==a.role)return a;let c="string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>a&&"string"==typeof a.text?a.text:"").join("\n"):"";return c&&(c.length>2e3||g.test(c))?"string"==typeof a.content?{...a,content:f}:{...a,content:[{type:"text",text:f}]}:a}));let h=e.reasoning_effort;return"none"===h||"off"===h?delete e.reasoning_effort:h&&(e.reasoning_summary="auto"),e.tool_choice&&"object"==typeof e.tool_choice&&(e.tool_choice="required"),e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},49227:(a,b,c)=>{c.d(b,{hG:()=>D});var d=c(77598),e=c.n(d),f=c(74957),g=c(12643),h=c(93943),i=c(37981),j=c(57247),k=c(90737),l=c(41004),m=c(80662),n=c(19713);let o=null;async function p(a="endpoint-proxy-salt"){let b=function(){if(o)return o;try{o=(0,n.machineIdSync)()}catch{o=e().randomUUID()}return o}();return e().createHash("sha256").update(b+a).digest("hex").substring(0,16)}let q=/^(rs|fc|resp|msg)_/,r=new Set(["web_search","x_search","web_search_preview","file_search","image_generation","code_interpreter","mcp","local_shell"]),s=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","include","temperature","top_p","max_output_tokens","parallel_tool_calls","text","metadata","prompt_cache_key"]),t=["low","medium","high","xhigh"],u=/^(?:rs|msg|fc)_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,v={type:"object",properties:{input:{type:"string"}},required:["input"]},w=new Map,x=new WeakMap;function y(a){let b="string"==typeof a?a.trim().toLowerCase():"";return"max"===b?"xhigh":t.includes(b)?b:"high"}function z(a){return"string"==typeof a?a:void 0===a?"":JSON.stringify(a)}function A(a){return"string"==typeof a&&u.test(a)}function B(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let{internal_chat_message_metadata_passthrough:b,...c}=a;if("reasoning"===a.type)return A(a.id)&&"string"==typeof a.encrypted_content?c:null;if("custom_tool_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",call_id:b,name:c,arguments:JSON.stringify({input:z(a.input??a.arguments)})}:null}if("custom_tool_call_output"===a.type||"function_call_output"===a.type){let b=a.call_id||a.id;return b?{type:"function_call_output",call_id:b,output:z(a.output)}:null}if("function_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",...A(a.id)?{id:a.id}:{},call_id:b,name:c,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??{}),..."string"==typeof a.status?{status:a.status}:{}}:null}return c}let C=null;class D extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"])}buildUrl(){return this.config.baseUrl}async refreshCredentials(a,b,c=null){return a?.refreshToken?(0,h.Vq)("grok-cli",a,b,c):null}needsRefresh(a){return(0,h.fp)("grok-cli",a)}buildHeaders(a,b=!0,c=null,d=null,f=null,g={}){let h=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===h[a]&&(h[a]=b);h["x-grok-client-identifier"]=this.config.clientIdentifier||h["x-grok-client-identifier"]||k.rK,h["x-grok-client-version"]=this.config.clientVersion||h["x-grok-client-version"]||k.uG;let i=g?.sessionId||a?.connectionId||e().randomUUID(),j=g?.reqId||e().randomUUID();h["x-grok-session-id"]=i,h["x-grok-conv-id"]=i,h["x-grok-req-id"]=j,h["x-grok-turn-idx"]=String(g?.turnIdx||1),g?.agentId&&(h["x-grok-agent-id"]=g.agentId),g?.model&&(h["x-grok-model-override"]=g.model);let l=a?.providerSpecificData||{},m=l.email||a?.email,n=l.userId||a?.userId||a?.providerUserId;return m&&(h["x-email"]=m),n&&(h["x-userid"]=n),h}parseError(a,b){if(402===a.status&&b)try{let a=JSON.parse(b),c=a?.code||"",d=a?.error||a?.message||b;return{status:402,message:"string"==typeof d?d:b,code:"string"==typeof c?c:void 0}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d,f={}){let g;g={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},f.sessionId=(0,m.oV)({headers:d?.rawHeaders,body:g,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"}),f.reqId=e().randomUUID(),f.agentId=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||f.agentId||null;let h=(0,i.me)(b.input);h&&(b.input=h),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(Array.isArray(b.messages)&&b.messages.length>0?(b.input=b.messages.map(a=>({type:"message",role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content??"")})),delete b.messages):b.input=[{type:"message",role:"user",content:"..."}]),function(a){if(!Array.isArray(a?.input))return;let b=a.input.map(B).filter(Boolean),c=new Set(b.filter(a=>a?.type==="function_call"&&a.call_id).map(a=>a.call_id));a.input=b.filter(a=>a?.type!=="function_call_output"||c.has(a.call_id))}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>{if("string"==typeof a&&q.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&q.test(a.id)&&!A(a.id)&&delete a.id}return!0})),function(a){if(!Array.isArray(a.tools)||0===a.tools.length){delete a.tools,delete a.tool_choice;return}let b=new Set,c=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d="string"==typeof a.type?a.type:"";if("function"!==d){if(r.has(d))return c.add(d),!0;if(!d&&a.function);else if(d&&"string"!=typeof a.name)return!1}if(!("function"===d||""===d||a.function||"string"==typeof a.name)||r.has(d))return r.has(d);let e=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,f=("string"==typeof a.name?a.name:"string"==typeof e?.name?e.name:"").trim();if(!f)return!1;let g="string"==typeof a.description?a.description:"string"==typeof e?.description?e.description:"",h="custom"===d?v:a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:e?.parameters&&"object"==typeof e.parameters&&!Array.isArray(e.parameters)?e.parameters:{type:"object",properties:{}};for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=f.slice(0,128),g&&(a.description=g),a.parameters=h,b.add(a.name),!0}),0===a.tools.length){delete a.tools,delete a.tool_choice;return}if(a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)){let d="string"==typeof a.tool_choice.type?a.tool_choice.type:"";if("function"===d||"custom"===d){let c=a.tool_choice.name??a.tool_choice.function?.name,d="string"==typeof c?c.trim().slice(0,128):"";d&&b.has(d)?a.tool_choice={type:"function",name:d}:delete a.tool_choice}else c.has(d)||delete a.tool_choice}}(b),f.turnIdx=function(a,b,c=null){let d=function(a){if(!Array.isArray(a))return 1;let b=0;for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="string"==typeof c.type?c.type:"";"user"!==c.role||a&&"message"!==a||(b+=1)}return Math.max(1,b)}(b);if(!a)return d;if(c&&x.has(c))return x.get(c);let e=Date.now(),f=w.get(a),g=f&&e-f.lastUsed<=l.v1.sessionTtlMs?f.turn:0;f&&w.delete(a);let h=g>0?Math.max(d,g+ +!!c):d;for(;w.size>=5e3;)w.delete(w.keys().next().value);return w.set(a,{turn:h,lastUsed:e}),c&&x.set(c,h),h}(f.sessionId,b.input,b),b.stream=!0,b.store=!1;let n=function(a){if(!a||"string"!=typeof a)return null;for(let b of t)if(a.endsWith(`-${b}`))return b;return null}(b.model||a),o=b.model||a;n&&(o=o.replace(RegExp(`-${n}$`),"")),(o=(0,j.kt)("gcli",o)||o)===(b.model||a)&&(o=(0,j.kt)("grok-cli",o)||o),b.model=o,f.model=o;let p=(0,k.Au)(o);if(b.reasoning&&"object"==typeof b.reasoning?(p?b.reasoning.effort=y(b.reasoning.effort||b.reasoning_effort||n):delete b.reasoning.effort,b.reasoning.summary||(b.reasoning.summary="concise")):(b.reasoning={summary:"concise"},p&&(b.reasoning.effort=y(b.reasoning_effort||n))),delete b.reasoning_effort,b.reasoning&&"none"!==b.reasoning.effort){let a=Array.isArray(b.include)?b.include:[];a.includes("reasoning.encrypted_content")||a.push("reasoning.encrypted_content"),b.include=a}for(let a of(delete b.messages,delete b.max_tokens,delete b.max_completion_tokens,delete b.n,delete b.seed,delete b.logprobs,delete b.top_logprobs,delete b.frequency_penalty,delete b.presence_penalty,delete b.logit_bias,delete b.user,delete b.stream_options,delete b.prompt_cache_retention,delete b.safety_identifier,delete b.previous_response_id,Object.keys(b)))s.has(a)||delete b[a];return b}async execute(a){let b={agentId:a.credentials?.providerSpecificData?.deviceId||await (!C&&(C=(async()=>{try{let a=await p("grok-cli-agent");return[a.slice(0,8),a.slice(8,12),"5"+a.slice(13,16),"a"+a.slice(17,20),a.slice(0,12).padEnd(12,"0")].join("-")}catch{return e().randomUUID()}})()),C)};return super.execute({...a,hookCtx:b})}}},51349:(a,b,c)=>{c.d(b,{m:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-intl")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f=e.reasoning_effort;"none"===f||"off"===f?delete e.reasoning_effort:f&&(e.reasoning_summary="auto");let g=Array.isArray(e.messages)?e.messages:[];for(let a of(e.messages=[{role:"system",content:"You are CodeBuddy Code."}],g))!a||"object"!=typeof a||["system","developer"].includes(a.role)||("user"===a.role&&"string"==typeof a.content?e.messages.push({...a,content:[{type:"text",text:a.content}]}):e.messages.push({...a}));return e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},53307:(a,b,c)=>{c.d(b,{sh:()=>u});var d=c(74957);let e="https://uncensored.com",f="https://clerk.uncensored.com",g="5.127.1",h="https://internal.chatuncensored.ai/v2/image-gen",i={"1:1":{imageWidth:"1024",imageHeight:"1024"},"16:9":{imageWidth:"1024",imageHeight:"576"},"9:16":{imageWidth:"576",imageHeight:"1024"},"4:3":{imageWidth:"1024",imageHeight:"768"},"3:4":{imageWidth:"768",imageHeight:"1024"},"3:2":{imageWidth:"1152",imageHeight:"768"},"2:3":{imageWidth:"768",imageHeight:"1152"},"4:5":{imageWidth:"896",imageHeight:"1120"},"5:4":{imageWidth:"1120",imageHeight:"896"},"21:9":{imageWidth:"1344",imageHeight:"576"}},j={"seedream-v4.5":{name:"Seedream v4.5",aspects:["1:1","16:9","9:16","4:3","3:4"]},"seedream-v5":{name:"Seedream v5",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"seedream-v5-flash":{name:"Seedream v5 Flash",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3","4:5","5:4","21:9"],resolutions:["1k","1.5k","2k"]},"nano-banana-pro-ultra":{name:"Nano Banana Pro Ultra",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["4k","8k"]},"nano-banana-pro":{name:"Nano Banana Pro",aspects:["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"nano-banana":{name:"Nano Banana",aspects:["1:1","9:16","16:9","3:4","4:3","3:2","2:3","5:4","4:5","21:9"]},"nano-banana-2":{name:"Nano Banana 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"gpt-image":{name:"GPT Image 1.5",aspects:["1:1","2:3","3:2"],qualities:["medium","high"]},"gpt-image-2":{name:"GPT Image 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"gpt-image-2.5-flare":{name:"GPT Image 2.5 Flare",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"gpt-image-2.5-sunburst":{name:"GPT Image 2.5 Sunburst",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"wan-2.6":{name:"Wan 2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.6-image":{name:"Wan 2.6",upstream:"wan-2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image":{name:"Wan 2.7",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image-pro":{name:"Wan 2.7 Pro",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"prefect-pony-xl":{name:"Prefect Pony XL",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"1.0":{name:"Flux.1",aspects:[]},"1.1":{name:"Flux.1.1",aspects:[]},"1.2":{name:"Wan 2.6 (Flux tier)",aspects:[]},"2.0":{name:"Flux.2",aspects:[]},"flux-2-max":{name:"Flux 2 Max",aspects:[]},SDXL:{name:"SDXL uncensored",aspects:[]},realism:{name:"Realism",aspects:[]},"realism-2":{name:"Realism 2",aspects:[]},"z-image-turbo":{name:"Z Image Turbo",aspects:[]}},k={default:{name:"Standard",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},turbo:{name:"Turbo",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored-v2":{name:"Wan Ultra Uncensored v2",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored":{name:"Wan Ultra Uncensored",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.6":{name:"Wan v2.6",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],seconds:[5,8]},"wan-2.6-ultra":{name:"Wan 2.6 Ultra Uncensored",t2v:!0,i2v:!0},"wan-2.7":{name:"Wan 2.7",t2v:!0,i2v:!0},"wan-2.7-pro":{name:"Wan 2.7 Pro",t2v:!0,i2v:!0},"wan-2.7-uncensored":{name:"Wan 2.7 Uncensored",t2v:!0,i2v:!0},"wan-2.7-uncensored-v2":{name:"Wan 2.7 Uncensored v2",t2v:!0,i2v:!0},"wan-3.0":{name:"Wan 3.0",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored":{name:"Wan 3.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored-pro":{name:"Wan 3.0 Uncensored Pro",t2v:!0,i2v:!0,audio:!0},"sora-2":{name:"Sora 2",t2v:!0,i2v:!0,seconds:[4,8,12]},"sora-2-pro":{name:"Sora 2 Pro",t2v:!0,i2v:!0,seconds:[4,8,12]},"grok-imagine-video":{name:"Grok Imagine Video",t2v:!0,i2v:!0},"bytedance-seedance-2.0":{name:"Seedance 2.0",t2v:!0,i2v:!0},"seedance-2.0-fast":{name:"Seedance 2.0 Fast",t2v:!0,i2v:!0},"seedance-2.0-uncensored":{name:"Seedance 2.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-fast-uncensored":{name:"Seedance 2.0 Fast Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-uncensored":{name:"Seedance 2.0 Mini Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-turbo":{name:"Seedance 2.0 Mini Turbo Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-v1.5-pro-uncensored":{name:"Seedance v1.5 Pro Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5-uncensored":{name:"Seedance 2.5 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5":{name:"Seedance 2.5",t2v:!0,i2v:!0,audio:!0},"vidu-q3-uncensored":{name:"Vidu Q3 Uncensored",t2v:!0,i2v:!0},"av-gen-v2":{name:"AV-Gen v2 with audio",t2v:!0,i2v:!0,audio:!0},"cosmos-predict":{name:"Cosmos Predict 2.5",t2v:!0,i2v:!0},"minimax-h3":{name:"MiniMax H3",t2v:!0,i2v:!0},"happyhorse-1.0":{name:"Happy Horse 1.0",t2v:!0,i2v:!0},"wan/v2.2-a14b":{name:"Wan v2.2-a14b",t2v:!0,i2v:!0}};function l(a){let b=new Map;for(let c of String(a||"").split(";")){let a=c.indexOf("=");if(a<0)continue;let d=c.slice(0,a).trim();d&&b.set(d,c.slice(a+1).trim())}return b}function m(a){try{let b=a.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(Buffer.from(b+"=".repeat((4-b.length%4)%4),"base64").toString("utf8"))}catch{return null}}function n(a){return[...a.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}function o(a,b){for(let c of"function"==typeof a.headers.getSetCookie?a.headers.getSetCookie():[]){let a=String(c).split(";")[0],d=a.indexOf("=");if(d>0&&a.slice(0,d).trim()===b)return a.slice(d+1).trim()}return""}async function p(a,b,c){let d=m(a)?.sid;if("string"==typeof d&&d)return{sid:d,rotatedClient:""};let e=await fetch(`${f}/v1/client?_clerk_js_version=${g}`,{headers:b,signal:c});if(!e.ok)return{sid:"",rotatedClient:""};let h=o(e,"__client"),i=await e.json().catch(()=>null),j=i?.response??i?.client??i,k=Array.isArray(j?.sessions)?j.sessions:[],l=k.find(a=>a?.status==="active")??k[0];return{sid:"string"==typeof l?.id?l.id:"",rotatedClient:h}}async function q(a,b){let c=l(a),d=c.get("__client");if(!d)throw Object.assign(Error("UC credential missing the __client cookie — paste the full uncensored.com Cookie header from a logged-in session"),{status:401});let h={Cookie:n(c),Origin:e,Referer:`${e}/`,Accept:"application/json"},i=await p(d,h,b),j=i.sid;if(!j)throw Object.assign(Error("UC Clerk session not found — the __client cookie has no active session. Log in again via Login via Browser"),{status:401});let k=await fetch(`${f}/v1/client/sessions/${encodeURIComponent(j)}/tokens?_clerk_js_version=${g}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:e,Referer:`${e}/`,Cookie:n(c)},body:"",signal:b});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC Clerk token mint failed (HTTP ${k.status}) ${a}`),{status:k.status})}let q=o(k,"__client")||i.rotatedClient,r=await k.json().catch(()=>null),s=r?.jwt;if("string"!=typeof s||!s)throw Object.assign(Error("UC Clerk token mint returned no jwt"),{status:502});let t=m(s)?.uid;return{jwt:s,uid:"string"==typeof t?t:"",rotatedClient:q}}async function r(a,{signal:b,log:c,intervalMs:d=5e3,timeoutMs:f=3e5}){let g=Date.now()+f;for(;Date.now()<g;){if(b?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,d));let f=0;try{f=(await fetch(a,{method:"HEAD",headers:{Referer:`${e}/`},signal:b})).status}catch{f=0}if(200===f)return;f>=400&&f<500&&429!==f&&c?.warn?.("UC-WEB",`result poll got HTTP ${f} — continuing until timeout`)}throw Error("UC result did not become available in time")}async function s(a,{signal:b}){let c=await fetch(a,{headers:{Referer:`${e}/`},signal:b});if(!c.ok)throw Error(`UC result download failed (HTTP ${c.status})`);return{b64:Buffer.from(await c.arrayBuffer()).toString("base64"),mime:(c.headers.get("content-type")||"").split(";")[0]||"application/octet-stream"}}async function t(a,b,c){let d=/^data:[^;]*;base64,(.*)$/.exec(String(a));if(d)return Buffer.from(d[1],"base64");if(/^https?:\/\//i.test(String(a))){let c=await fetch(a,{signal:b,headers:{Accept:"image/*","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"}});if(!c.ok)throw Error(`input image download failed (HTTP ${c.status})`);return Buffer.from(await c.arrayBuffer())}try{return Buffer.from(String(a),"base64")}catch{return c?.error?.("UC-WEB","could not decode input image"),null}}class u extends d.H{constructor(){super("uc-web",{id:"uc-web",baseUrl:"https://internal.chatuncensored.ai"})}async execute(){return{response:new Response(JSON.stringify({error:{message:"uc-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="image",size:c,model:d,duration:f,resolution:g,images:m,credentials:o,signal:p,log:u}){if("image"!==b&&"video"!==b)throw Error("uc-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let v=String(o?.apiKey||""),{jwt:w,uid:x,rotatedClient:y}=await q(v,p),z=function(a,b){if(!b)return"";let c=l(a);return c.get("__client")===b?"":(c.set("__client",b),n(c))}(v,y);z&&o&&(o.apiKey=z);let A={Authorization:`Bearer ${w}`,Origin:e,Referer:`${e}/`,"Content-Type":"application/json"};if("image"===b){let b=d||"seedream-v4.5";if(!j[b])throw Object.assign(Error(`Unknown UC image model "${b}" — see the provider's model list`),{status:400});let e=j[b],f={prompt:a,mode:"dev",model_version:e.upstream||b,m_n_user:!0,moderationMode:"SUPER_LIGHT",country:"US",vdiscount:!1,...function(a,b){let c=String(a||"").trim(),d=Array.isArray(b)&&b.length?b:null,e=i[c]&&(!d||d.includes(c))?{aspect_ratio:c,...i[c]}:null;if(e)return e;if(c.includes("x")){let[a,b]=c.split("x").map(Number);if(Number.isFinite(a)&&Number.isFinite(b)&&a>0&&b>0){let c=null,e=1/0;for(let[f,g]of Object.entries(i)){if(d&&!d.includes(f))continue;let h=Math.abs(Number(g.imageWidth)/Number(g.imageHeight)-a/b);h<e&&(e=h,c=f)}if(c)return{aspect_ratio:c,...i[c]}}}let f=d?.[0]||"1:1";return{aspect_ratio:f,...i[f]}}(c,e.aspects)};if(e.resolutions?.length){let a=String(g||"").toLowerCase();f.resolution=e.resolutions.includes(a)?a:e.resolutions[0]}let k=await fetch(h,{method:"POST",headers:A,body:JSON.stringify(f),signal:p});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC image request failed (HTTP ${k.status}) ${a}`),{status:k.status})}let l=await k.json().catch(()=>null),m="string"==typeof l?.url?l.url:"";if(!m)throw Error("UC image response carried no result url");return await r(m,{signal:p,log:u}),[await s(m,{signal:p})]}let B=d||"default";if(!k[B])throw Object.assign(Error(`Unknown UC video model "${B}" — see the provider's model list`),{status:400});let C=k[B],D=Array.isArray(m)?m[0]:m;if(D&&!1===C.i2v)throw Error(`UC video model "${B}" does not accept an input image`);if(!D&&!1===C.t2v)throw Error(`UC video model "${B}" requires an input image`);let E=Number(f)>0?Number(f):C.seconds?.[0]??5,F=C.resolutions?.length?C.resolutions.includes(String(g||""))?String(g):C.resolutions[0]:"480p",G={prompt:a,media_blob_name:null,num_frames:Math.round(16*E)+1,frames_per_second:16,num_inference_steps:30,guide_scale:5,shift:5,aspect_ratio:C.aspects?.includes("auto")?"auto":"9:16",pro_mode:"wan-3.0-uncensored-pro"===B,turbo:"turbo"===B,resolution:F,sora_resolution:F,end_frame_blob_name:null,model:B,seconds:E,video_to_video_duration:E,vdiscount:!1};if(D){if(!x)throw Object.assign(Error("Could not derive the account uid — re-paste the full Cookie header"),{status:401});let a=await t(D,p,u);if(!a)throw Error("UC image-to-video could not decode the input image");let b=await fetch("https://internal-6.pubyar.com/generate-signed-url",{method:"POST",headers:A,body:JSON.stringify({content_type:"image/png",user_identifier:x}),signal:p});if(!b.ok){let a=(await b.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC signed-url request failed (HTTP ${b.status}) ${a}`),{status:b.status})}let c=await b.json().catch(()=>null);if(!c?.signed_url||!c?.blob_name)throw Error("UC signed-url response missing signed_url or blob_name");let d=await fetch(c.signed_url,{method:"PUT",headers:{"Content-Type":"image/png"},body:new Uint8Array(a),signal:p});if(!d.ok)throw Object.assign(Error(`UC input-image upload failed (HTTP ${d.status})`),{status:d.status});G.media_blob_name=c.blob_name}let H=await fetch("https://internal.chatuncensored.ai/image_to_video",{method:"POST",headers:A,body:JSON.stringify(G),signal:p});if(!H.ok){let a=(await H.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC video request failed (HTTP ${H.status}) ${a}`),{status:H.status})}let I=await H.json().catch(()=>null),J="string"==typeof I?.url?I.url:"";if(!J)throw Error("UC video response carried no result url");let K=Number.isFinite(Number(I?.timeout_seconds))&&Number(I.timeout_seconds)>0?1e3*Number(I.timeout_seconds):3e5;return await r(J,{signal:p,log:u,timeoutMs:K}),[await s(J,{signal:p})]}}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{getExecutor:()=>S});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(77333),l=c(76467),m=c(32447),n=c(19932),o=c(19946),p=c(73870),q=c(4493),r=c(13120),s=c(17373),t=c(77919),u=c(49227),v=c(23013),w=c(59192),x=c(29166),y=c(20690),z=c(88331),A=c(53307),B=c(70298),C=c(9708),D=c(90926),E=c(26878),F=c(36732),G=c(49059),H=c(51349),I=c(85308),J=c(27617),K=c(71880),L=c(98665),M=c(93509),N=c(96179),O=c(83243),P=c(95089),Q=c(74161);c(74957);var R=a([o]);o=(R.then?(await R)():R)[0];let T={antigravity:new e.c,azure:new f.P,"gemini-cli":new h.V,github:new i.x,iflow:new j.r,qoder:new k.DH,"qoder-cn":new k.DH("qoder-cn"),kiro:new l.B,kimchi:new m.BL,codex:new n.T,cursor:new o.ou,cu:new o.ou,vertex:new p.w("vertex"),"vertex-partner":new p.w("vertex-partner"),opencode:new q.j9,"opencode-go":new r.H,"opencode-zen":new s.mO,"grok-web":new t.$,"grok-cli":new u.hG,gcli:new u.hG,gb:new u.hG,"perplexity-web":new v.Ay,"deepseek-web":new w.id,"gemini-web":new x.dQ,"muse-web":new y._5,"veoaifree-web":new z.Q,"veo-free":new z.Q,"uc-web":new A.sh,"chatgpt-web":new B.RF,"ollama-local":new C.D,commandcode:new D.Ak,"xiaomi-tokenplan":new E.F,"xiaomi-mimo":new F.Rb,codearts:new J.Ay,deveco:new K.y,"codebuddy-cn":new G.v,"codebuddy-intl":new H.m,trae:new I.A,"trae-enterprise":new I.A("trae-enterprise"),zed:new L.A,windsurf:new M.Ay,"minimax-code":new O.M("minimax-code"),"minimax-code-global":new O.M("minimax-code-global"),"devin-cli":new P.c,zcode:new Q.B,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},U=new Map;function S(a){return T[a]?T[a]:(U.has(a)||U.set(a,new N.L(a)),U.get(a))}d()}catch(a){d(a)}})},59192:(a,b,c)=>{c.d(b,{id:()=>am});var d=c(74957),e=c(78959),f=c(92536),g=c(73024),h=c(76760),i=c.n(h),j=c(75919);let k=[1n,32898n,0x800000000000808an,0x8000000080008000n,32907n,2147483649n,0x8000000080008081n,0x8000000000008009n,138n,136n,2147516425n,2147483658n,2147516555n,0x800000000000008bn,0x8000000000008089n,0x8000000000008003n,0x8000000000008002n,0x8000000000000080n,32778n,0x800000008000000an,0x8000000080008081n,0x8000000000008080n,2147483649n,0x8000000080008008n];Uint32Array.from(k,a=>Number(4294967295n&a)),Uint32Array.from(k,a=>Number(a>>32n&4294967295n)),Uint8Array.from({length:25},(a,b)=>{let c=Math.floor(b/5);return 2*(c+(b%5*2+3*c)%5*5)}),Uint8Array.from({length:25},(a,b)=>{let c=b%5;return 2*(b-c+(c+1)%5)}),Uint8Array.from({length:25},(a,b)=>{let c=b%5;return 2*(b-c+(c+2)%5)});let l=/^[a-f0-9]{64}$/i,m=0;function n(){let a=Error("DeepSeek PoW computation aborted");return a.name="AbortError",a}async function o(a,b,c,d,e,f={}){return function(a,b={}){let{signal:c}=b;if(c?.aborted)return Promise.reject(n());if(m>=2)return Promise.reject(Error("DeepSeek PoW worker capacity reached (2)"));let d=function(a){if(void 0===a)return 1e4;if(!Number.isSafeInteger(a)||a<1||a>3e4)throw Error("DeepSeek PoW timeout must be an integer from 1 to 30000ms");return a}(b.timeoutMs);return m+=1,new Promise((b,e)=>{let f;try{f=new j.Worker(function(){let a=i().join(process.cwd(),"open-sse/lib/deepseek-pow-worker.mjs");if(!(0,g.existsSync)(a))throw Error(`DeepSeek PoW worker script not found at ${a}`);return a}(),{workerData:a})}catch(a){m=Math.max(0,m-1),e(a instanceof Error?a:Error(String(a)));return}let h=!1,k=(a,b)=>{h||(h=!0,clearTimeout(o),c?.removeEventListener("abort",l),m=Math.max(0,m-1),b&&f.terminate(),a())},l=()=>{k(()=>e(n()),!0)},o=setTimeout(()=>{k(()=>e(Error(`DeepSeek PoW computation exceeded ${d}ms`)),!0)},d);c?.addEventListener("abort",l,{once:!0}),f.once("message",a=>{!Number.isSafeInteger(a)||a<-1?k(()=>e(Error("DeepSeek PoW worker returned an invalid answer")),!0):k(()=>b(a),!1)}),f.once("error",a=>{k(()=>e(a),!0)}),f.once("exit",a=>{0!==a?k(()=>e(Error(`DeepSeek PoW worker exited with code ${a}`)),!1):k(()=>e(Error("DeepSeek PoW worker exited without an answer")),!1)})})}(function(a,b,c,d,e){if("DeepSeekHashV1"!==a)throw Error(`Unsupported DeepSeek PoW algorithm: ${a}`);if(!l.test(b))throw Error("DeepSeek PoW challenge must be a 64-character SHA3-256 hex digest");if("string"!=typeof c||0===c.length||c.length>1024)throw Error("DeepSeek PoW salt must contain 1-1024 characters");if(!Number.isSafeInteger(d)||d<1||d>25e4)throw Error("DeepSeek PoW difficulty must be an integer from 1 to 250000");if(!Number.isSafeInteger(e)||e<0)throw Error("DeepSeek PoW expiry must be a non-negative safe integer");return{challenge:b.toLowerCase(),prefix:`${c}_${e}_`,difficulty:d}}(a,b,c,d,e),f)}var p=c(14229),q=c(70452);let r=new((c.n(q))())({strict:!1,allErrors:!1,validateFormats:!1}),s=new WeakMap;function t(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function u(a,b,c){let d=Array.isArray(a)?a.find(a=>a?.function?.name===b)??null:null;if(!d)return!1;let e=d.function?.parameters;if(void 0===e)return!0;if(("object"!=typeof e||null===e)&&"boolean"!=typeof e)return!1;let f=s.get(a);f||(f=new Map,s.set(a,f));let g=f.get(b);if(void 0===g){try{g=r.compile(e)}catch{g=null}f.set(b,g)}return!!g&&!0===g(c)}function v(a,b,c){if(!b.toolCalls)return b;let d=(0,p.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,p.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};let g=b._nonce;if(void 0!==g&&g!==d)return{content:a,toolCalls:null};let{_nonce:h,...i}=b;if(!u(c,f.function.name,i))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(i)}})}return{content:b.content,toolCalls:e}}function w(a){return"string"==typeof a&&!!a.trim()&&(!!/<\/?(?:|||\|\|?)DSML(?:|||\|\|?)\s*(?:calls|invoke|parameter)\b/i.test(a)||/<\/?(?:tool|tool_call)(?::|\s|>)/i.test(a))}function x(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let y=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function z(a,b){let c=RegExp(`\\b${b}\\s*=\\s*("|')`).exec(a);if(!c)return null;let d=c[1],e=c.index+c[0].length,f="";for(;e<a.length;){let b=a[e];if("\\"===b){f+=a[e+1]??"",e+=2;continue}if(b===d)break;f+=b,e+=1}return f}function A(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let B=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function C(a){return"string"==typeof a&&a.length>0?a:null}let D="[||]",E=`${D}{2}DSML${D}{2}`,F=RegExp(`</?${E}\\s*(?:calls|invoke|parameter)\\b[^>]*>|<${E}\\s*/\\s*(?:calls|invoke|parameter)\\s*>`,"gi");function G(a,b,c){let d=[],e=RegExp(`(?:</?${E}\\s*${b}\\b([^>]*)>|<${E}\\s*/\\s*${b}\\s*>)`,"gi"),f=null;for(;null!==(f=e.exec(a));)d.push({start:c+f.index,end:c+e.lastIndex,attrs:f[1]??""});return d}function H(a,b,c,d,e){let f=z(a.attrs,"name");if(!f)return null;let g=b?b.start:d,h=G(c.slice(a.end,g),"parameter",a.end),i={},j=a.end;for(let a=0;a<h.length;a+=1){let b=h[a],d=z(b.attrs,"name");if(!d)continue;let e=h[a+1],f=c.slice(b.end,e?e.start:g).trim();i[d]=""!==f?f:z(b.attrs,"content")??"",j=e?e.end:g}if(!Object.values(i).some(a=>""!==a))return null;let k=(0,p.Ub)(f,e)??f;return{start:a.start,end:b?b.end:j,name:k,args:i}}let I=/<[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)([^>]*)>/gi,J=/<\/[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)\s*>/gi,K=/<(?:(?:\|DSML\|)|(?:||DSML||))invoke\b([^>]*)>([\s\S]*?)<\/(?:(?:\|DSML\|)|(?:||DSML||))invoke\s*>/gi,L=/<(?:(?:\|DSML\|)|(?:||DSML||))parameter\b([^>]*)>([\s\S]*?)(?:<\/(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>|<(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>)/gi,M=/<(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\b[^>]*>[^]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\s*>/i,N=/(?:<\|tool_call_begin\|>|<|tool▁call▁begin|>)[\s\n]*([^<\s]+)[\s\n]*(?:<\|tool_call_argument_begin\|>|<|tool▁call▁argument▁begin|>)([\s\S]*?)(?:<\|tool_call_argument_end\|>|<|tool▁call▁argument▁end|>)[\s\n]*(?:<\|tool_call_end\|>|<|tool▁call▁end|>)/g;function O(a){try{return JSON.parse(a)}catch{return null}}function P(a,b,c){let d=Array.isArray(c)?c.find(a=>a?.function?.name===b):void 0,e=d?.function?.parameters?.properties;if(!e||"object"!=typeof e)return a;for(let[b,c]of Object.entries(a))e[b]?.type==="string"&&"string"!=typeof c&&(a[b]=JSON.stringify(c));return a}function Q(a,b="call",c){var d,e,f;if("string"!=typeof a||0===a.length)return{content:a??"",toolCalls:null};a=a.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"");let g=(0,p.x2)(c),h=(d=a,RegExp(`</?${E}\\s*(?:calls|invoke|parameter)\\b`,"i").test(d))?function(a,b){let c=[],d=[],e=RegExp(`<${E}\\s*calls\\s*>([\\s\\S]*?)(?:</${E}\\s*calls\\s*>|<${E}\\s*/\\s*calls\\s*>)`,"gi"),f=RegExp(`(?:</${E}\\s*calls\\s*>|<${E}\\s*/\\s*calls\\s*>)\\s*$`,"i"),g=[],h=null;for(;null!==(h=e.exec(a));){let i={start:h.index,end:e.lastIndex};g.push(i);let j=h[1],k=h.index+h[0].indexOf(j),l=f.exec(h[0]);d.push({start:h.index,end:k}),d.push({start:h.index+(l?l.index:h[0].length),end:h.index+h[0].length});let m=G(j,"invoke",k);for(let d=0;d<m.length;d+=1){if(!z(m[d].attrs,"name"))continue;let e=H(m[d],m[d+1],a,k+j.length,b);e&&c.push(e),m[d+1]&&(d+=1)}}let i=G(a,"invoke",0).filter(a=>!g.some(b=>a.start>=b.start&&a.end<=b.end));for(let d=0;d<i.length;d+=1){if(!z(i[d].attrs,"name"))continue;let e=H(i[d],i[d+1],a,a.length,b);e&&c.push(e),i[d+1]&&(d+=1)}return{calls:c.sort((a,b)=>a.start-b.start),strip:d}}(a,g):null,i=h&&h.calls.length>0?h:null;if(!i){let d=/<tool\b|<tool:/.test(a),g=a=>(a.toolCalls?.length??0)>0||!d,h=function(a,b,c){if(!/<(?:(?:||DSML||)|(?:\|DSML\|))/.test(a))return{content:a,toolCalls:null,recognized:!1};let d=(0,p.x2)(c),e=(0,p.OA)(c),f=[],g=[],h=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,i=null,j=!1,k=!1;for(;null!==(i=h.exec(a));){let a;j=!0;let l=(0,p.Ub)(i[2],d);if(!e||!l){k=!0;continue}let m=function(a){let b={},c=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,d=null;for(;null!==(d=c.exec(a));){let a=d[2].trim();b[d[1]]=O(a)??a}if(Object.keys(b).length>0)return b;let e=O(a.trim()||"{}");return e&&"object"==typeof e&&!Array.isArray(e)&&Object.assign(b,e),b}(i[3]),n=t(m.arguments);if((m._nonce??n?._nonce)!==e){k=!0;continue}if(n){let{_nonce:b,...c}=n;a=c}else{let{_nonce:b,name:c,...d}=m;a=d}if(!u(c,l,a)){k=!0;continue}f.push({id:`${b}_${f.length}`,type:"function",function:{name:l,arguments:JSON.stringify(a)}}),g.push({start:i.index,end:h.lastIndex})}if(k||0===f.length)return{content:a,toolCalls:null,recognized:j};let l=/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,m=null;for(;null!==(m=l.exec(a));)g.push({start:m.index,end:l.lastIndex});return{content:(0,p.LW)(a,g),toolCalls:f,recognized:!0}}(a,b,c);if(h.recognized&&g(h))return v(a,h,c);let i=function(a,b,c){let d=(0,p.x2)(c),e=[],f=[];N.lastIndex=0;let g=null;for(;null!==(g=N.exec(a));){let a=(0,p.Ub)(g[1],d),h=O(g[2].trim());if(!a||!h||"object"!=typeof h||Array.isArray(h))continue;let i=P(h,a,c);e.push({id:`${b}_${e.length}`,type:"function",function:{name:a,arguments:JSON.stringify(i)}}),f.push({start:g.index,end:g.index+g[0].length})}!function(a,b,c,d,e,f){K.lastIndex=0;let g=null;for(;null!==(g=K.exec(a));){let a=z(g[1]||"","name"),h=a?(0,p.Ub)(a,c):null;if(!h)continue;let{args:i,found:j}=function(a){let b={},c=!1;L.lastIndex=0;let d=null;for(;null!==(d=L.exec(a));){let a=z(d[1]||"","name");if(!a)continue;let e=d[2].trim();b[a]=O(e)??e,c=!0}return{args:b,found:c}}(g[2]);if(!j&&g[2].trim())continue;let k=P(i,h,d);e.push({id:`${b}_${e.length}`,type:"function",function:{name:h,arguments:JSON.stringify(k)}}),f.push({start:g.index,end:g.index+g[0].length})}}(a,b,d,c,e,f),e.length>0&&function(a,b){let c=/<(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>[\s\S]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>/gi,d=null;for(;null!==(d=c.exec(a));){let a=d.index,c=a+d[0].length;b.some(b=>b.start>=a&&b.end<=c)&&b.push({start:a,end:c})}}(a,f);let h=M.test(a)||/<(?:(?:\|tool_call_)|(?:|tool▁call▁))/.test(a);return 0===e.length?{content:a,toolCalls:null,recognized:h}:{content:(0,p.LW)(a,f),toolCalls:e,recognized:h}}(a,b,c);if(i.recognized&&g(i))return v(a,i,c);e=(f=e=a).includes("DSML")?f.replace(I,(a,b,c)=>{let d=b.toLowerCase();if("calls"===d)return"";let e=z(c,"name"),f=null!==e?` name="${e}"`:"";return"invoke"===d?`<tool${f}>`:`<parameter${f}>`}).replace(J,(a,b)=>{let c=b.toLowerCase();return"calls"===c?"":"invoke"===c?"</tool>":"</parameter>"}):f,(/[||]{1,2}DSML[||]{1,2}/i.test(e)||/<parameter\b/i.test(e)||/<\/(?:parameter|invoke|arguments|calls|tool_calls|function_calls)>/i.test(e)||e.includes("This response is AI-generated, for reference only."))&&(e=(e=e.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"")).replace(/<\/?(?:[||]{1,2})DSML(?:[||]{1,2})\s*(?:calls|tool_calls|function_calls)>/gi,"").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?invoke\b/gi,"<$1tool").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?parameter\b/gi,"<$1parameter").replace(/(}\s*)<\/(?:parameter|invoke|calls|tool_calls|function_calls)>/gi,"$1"),/<parameter\b/i.test(e)&&!/<tool\b/i.test(e)&&(e=e.replace(/((?:<parameter\b[\s\S]*?<\/parameter>\s*)+)/gi,"<tool>$1</tool>"))),a=e}let j=function(a){let b=[],c=null;for(y.lastIndex=0;null!==(c=y.exec(a));)b.push({start:c.index,end:y.lastIndex,closing:"/"===c[1],suffix:c[2]?c[2].slice(1):"",attrs:c[3]||""});return b}(a);if(0===j.length&&!i)return v(a,(0,p.uQ)(a,b,c),c);let k=function(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a){let a=c?.function;if(!a?.name)continue;let d=a.parameters,e=d?.properties;e&&"object"==typeof e&&!Array.isArray(e)?b.set(a.name,new Set(Object.keys(e))):b.set(a.name,new Set)}return b}(c),l=function(a,b){let c=[],d=[];for(let b of a){if(!b.closing){d.push(b);continue}let a=d.pop();a&&c.push({open:a,close:b,innerStart:a.end,innerEnd:b.start})}for(let a of d){let d={start:b,end:b,closing:!0,suffix:"",attrs:""};c.push({open:a,close:d,innerStart:a.end,innerEnd:b})}return c}(j,a.length),m=[],n=(0,p.OA)(c);for(let b of l.filter(a=>!l.some(b=>b!==a&&b.open.start>=a.innerStart&&b.close.end<=a.innerEnd)).sort((a,b)=>a.open.start-b.open.start)){let c=b.open.suffix||z(b.open.attrs,"name")||z(b.open.attrs,"id")||"",d=a.slice(b.innerStart,b.innerEnd).replace(F,""),e=function(a,b,c,d){let e,f=b.trim(),g=A(f,"name"),h=A(f,"arguments")??A(f,"parameters"),i=h?null:function(a){let b={},c=!1,d=null;for(B.lastIndex=0;null!==(d=B.exec(a));){let a=d[1]||"",e=d[2],f=z(a,"name");if(!f)continue;let g=z(a,"content")??("string"==typeof e?e.trim():"");b[f]=g,c=!0}return c?b:null}(f),j=!!g||!!h||!!i,k=j?null:(0,p.n)(f);if(!k&&!j){let a=function(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d="",e=!1;for(let f=b;f<a.length;f+=1){let g=a[f];if(e){e=!1;continue}if(d){"\\"===g?e=!0:g===d&&(d="");continue}if('"'===g||"'"===g){d=g;continue}if("{"===g){c+=1;continue}if("}"===g&&0==(c-=1))return a.slice(b,f+1)}return null}(f);a&&(k=(0,p.n)(a))}let l=k?C(k.name)??C(k.type):null,m=g?(0,p.Ub)(g,c):null,n=l?(0,p.Ub)(l,c):null,o=a?(0,p.Ub)(a,c):null,q=null,r=!1,s=(a,b)=>{!q&&a&&(q=a,r=b)};if(s(m,!1),s(n,!1),s(o,!0),s(g,!1),s(l,!1),s(a,!0),!q&&!a&&k){let a=C(k.command),b=a?(0,p.Ub)(a,c):null;b&&(q=b,r=!1)}if(!q&&i&&d&&d.size>0){let a=Object.keys(i);if(a.length>0){let b=[];for(let[c,e]of d)e.size>0&&a.every(a=>e.has(a))&&b.push(c);1===b.length&&(q=b[0],r=!1)}}if(!q)return null;if(h)e=(0,p.n)(h)??h;else if(i)e=i;else if(k)if(void 0!==k.arguments)e=k.arguments;else if(void 0!==k.params)e=k.params;else if(r)e=k;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=k;e=h}else e={};return{name:q,arguments:(0,p.r3)(e)}}(c,d,g,k);if(e){if(n){let a=(0,p.n)(d);if(a&&"string"==typeof a.name&&void 0!==a._nonce&&a._nonce!==n)continue}m.push({start:b.open.start,end:b.close.end,call:e})}}let o=[];if(i)for(let a of(o=i.strip,i.calls))m.push({start:a.start,end:a.end,call:{name:a.name,arguments:(0,p.r3)(a.args)}});if(0===m.length)return{content:a,toolCalls:null};m.sort((a,b)=>a.start-b.start);let q=[],r=[];for(let a of m)q.push({id:`${b}_${q.length}`,type:"function",function:{name:a.call.name,arguments:a.call.arguments}}),r.push({start:a.start,end:a.end});let s=[...r,...o,...j.filter(a=>!r.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))],w=(0,p.LW)(a,s);return q.length>0&&(w=w.replace(/<parameter\b[^>]*>[\s\S]*?(?:<\/parameter>|$)/gi,"").replace(/<\/?(?:parameter|invoke|tool|calls|tool_calls|function_calls)\b[^>]*>/gi,"").replace(/\n{3,}/g,"\n\n").trim()),function(a,b,c){if(!b.toolCalls)return b;let d=(0,p.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,p.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};if(!("_nonce"in b)){e.push(f);continue}if(b._nonce!==d)return{content:a,toolCalls:null};let{_nonce:g,...h}=b;if(!u(c,f.function.name,h))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(h)}})}return{content:b.content,toolCalls:e}}(a,{content:w,toolCalls:q},c)}function R(a,{min:b=-Number.MAX_SAFE_INTEGER,max:c=Number.MAX_SAFE_INTEGER}={}){return Number.isSafeInteger(a)&&a>=b&&a<=c}async function S(a){let b=await fetch("https://chat.deepseek.com/api/v0/chat/create_pow_challenge",{method:"POST",headers:{...a.headers,"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`},body:JSON.stringify({target_path:a.targetPath}),signal:a.signal??void 0});if(!b.ok)throw Error(`create_pow_challenge HTTP ${b.status}`);let c=await b.json(),d={...c?.data?.biz_data?.challenge??c?.biz_data?.challenge,target_path:a.targetPath};if(!d||"string"!=typeof d.algorithm||"string"!=typeof d.challenge||"string"!=typeof d.salt||"string"!=typeof d.signature||!R(d.difficulty,{min:1})||!R(d.expire_at,{min:0})||"string"!=typeof d.target_path)throw Error("Invalid DeepSeek PoW challenge");return d}var T=c(98915);function U(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function V(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function W(a,b){let c=a.replace(/^FINISHED\s*/,"").replace(/^(WEB_SEARCH|SEARCHING|SEARCH)\s*/i,"");return V(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function X(a,b){return 0===a.length||b.toLowerCase().includes("search-silent")?"":a.filter(a=>a.cite_index).sort((a,b)=>(a.cite_index||0)-(b.cite_index||0)).map(a=>`[${a.cite_index}]: [${a.title}](${a.url})`).join("\n")}let Y="https://chat.deepseek.com",Z=`${Y}/api`,$=`${Z}/v0/chat/completion`,_={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:Y,Referer:`${Y}/`,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","X-Client-Bundle-Id":"com.deepseek.chat","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"2.0.0"},aa=new Map,ab=new Map;function ac(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function ad(a){let b=a?.apiKey||a?.accessToken;return"string"!=typeof b||0===b.length?null:(0,T.Xm)(b)}function ae(a,b,c){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:c??`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}})}function af(){let a=Date.now(),b=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)});return`intercom-HWWAFSESTIME=${a}; HWWAFSESID=${Array.from({length:18},()=>Math.floor(16*Math.random()).toString(16)).join("")}; Hm_lvt_${b()}=${Math.floor(a/1e3)}; _frid=${b()}`}async function ag(a,b){let c=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at,{signal:b});if(c<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:c,signature:a.signature,target_path:a.target_path})).toString("base64")}async function ah(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=!1,j=b||"deepseek-web",k=U(j),l=[],m=a=>{let b=W(a,j);if(!b)return;let c=h;!c&&k?c="thinking":!c&&V(j)&&(c="content"),"thinking"===c?g+=b:f+=b},n=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?h="thinking":("ANSWER"===c||"RESPONSE"===c)&&(h="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?h="thinking":("ANSWER"===b||"RESPONSE"===b)&&(h="content")}m(a.content)}};for(;;){let{done:a,value:b}=await d.read();if(a)break;let f=(e+=c.decode(b,{stream:!0})).split("\n");for(let a of(e=f.pop()||"",f)){if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let b=a.replace(/^data:\s*/,"").trim();try{let a=JSON.parse(b),c=a?.p,d=a?.v;if("response/status"===c&&"FINISHED"===d&&(i=!0),d&&"object"==typeof d&&d.response&&(!0===d.response.thinking_enabled?h="thinking":!1===d.response.thinking_enabled&&(h="content"),Array.isArray(d.response.fragments)))for(let a of d.response.fragments)n(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)n(a,!0);else d&&"object"==typeof d&&n(d,!0);if("response"===c&&Array.isArray(d))for(let a of d)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(h="thinking");if("response/search_status"===c)continue;if("response/search_results"===c&&Array.isArray(d)){if(a?.o!=="BATCH")l.length=0,l.push(...d);else for(let a of d){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);l[c]&&(l[c].cite_index=a.v)}}continue}if("string"==typeof d)m(d);else if(Array.isArray(d)&&"response"===c){for(let a of d)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&m(b)}}}catch{}}}let o=X(l,j);if(o&&(f+=`
|
|
266
|
+
${d.content}`:Array.isArray(d.content)&&d.content.unshift({type:"text",text:c}):a.messages.unshift({role:"system",content:c})}(h),f))void 0!==h[a]&&delete h[a];if(delete h.system,g=(0,e.gK)(a),(g?.provider==="anthropic"||g?.upstreamProvider==="anthropic"||/(^|[-_/])(?:claude|anthropic)(?:[-_/]|$)/i.test(String(a||"")))&&(delete h.reasoning_effort,delete h.reasoning,delete h.thinking),Array.isArray(h?.messages))for(let a of h.messages)a&&"object"==typeof a&&(delete a.cache_control,Array.isArray(a.content)&&(a.content=a.content.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,signature:c,...d}=a;return d})));Array.isArray(h?.tools)&&(h.tools=h.tools.map(a=>{if(!a||"object"!=typeof a)return a;let{cache_control:b,...c}=a;return c}));if(Array.isArray(h?.messages))for(let a of h.messages)a&&"assistant"===a.role&&"string"==typeof a.reasoning_content&&a.reasoning_content.length>8&&delete a.reasoning_content;return h}}},36732:(a,b,c)=>{c.d(b,{Rb:()=>h});var d=c(96179),e=c(12132);let f=new Set(["mimo-v2.6-pro","mimo-v2.6-flash","mimo-v2.6-pro-ultraspeed"]),g="__mimoAccountCookie";class h extends d.L{constructor(){super("xiaomi-mimo")}static isAccountRoute(a,b){let c,d,e=(d=(c=String(a||"")).indexOf("/"))>=0?c.slice(d+1):c;return!!f.has(e)&&!!(b?.[g]||b?.providerSpecificData?.mimoPassToken)}isAccountRoute(a,b){return h.isAccountRoute(a,b)}buildUrl(a,b,c=0,d=null){return this.isAccountRoute(a,d)?`${(0,e.resolveMimoServerBase)(d?.providerSpecificData)}/api/route/chat/completions`:super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0,c,d){return this.isAccountRoute(d,a)&&a?.[g]?{"Content-Type":"application/json",Accept:b?"text/event-stream":"application/json","User-Agent":e.MIMO_API_UA,Cookie:a[g]}:super.buildHeaders(a,b,c,d)}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(this.isAccountRoute(a,d)){let a=e.reasoning_effort||b?.reasoning_effort||b?.output_config?.effort;if(a){delete e.reasoning_effort;let b="xhigh"===String(a).toLowerCase()?"high":String(a).toLowerCase();e.output_config={...e.output_config||{},effort:b}}null==e.temperature&&(e.temperature=1),null==e.top_p&&(e.top_p=.95)}return e}async execute(a){let{model:b,credentials:c,proxyOptions:d=null}=a;if(!this.isAccountRoute(b,c))return super.execute(a);let f=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d);if(!f)return super.execute(a);c[g]=f;let h=await super.execute(a);if(401===h.response.status){(0,e.invalidateMimoAccountCookieCache)();let b=await (0,e.getMimoAccountCookie)(c?.providerSpecificData,d).catch(()=>null);if(b)return c[g]=b,super.execute(a)}return h}}},49059:(a,b,c)=>{c.d(b,{v:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f="You are a helpful AI assistant that helps with software engineering tasks.",g=/you are claude code|claude.?code.+official.+cli|anthropic.+official.+cli|anxthxropic.+official.+cli|you are (?:cursor|windsurf|cline|aider|continue|copilot|cody)|you are an? (?:ai )?(?:coding |code )?agent|cc_entrypoint\s*=\s*(?:cli|vscode|jetbrains|gui)|claude.?code.+issues|give feedback.+claude.?code|you are .{0,30}(?:powerful )?ai agent|orchestration capabilities|OhMyOpenCode|<agent-identity>|<Role>|<Behavior_Instructions>/i;Array.isArray(e.messages)&&(e.messages=e.messages.map(a=>{let b;if(!a||"system"!==a.role)return a;let c="string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>a&&"string"==typeof a.text?a.text:"").join("\n"):"";return c&&(c.length>2e3||g.test(c))?"string"==typeof a.content?{...a,content:f}:{...a,content:[{type:"text",text:f}]}:a}));let h=e.reasoning_effort;return"none"===h||"off"===h?delete e.reasoning_effort:h&&(e.reasoning_summary="auto"),e.tool_choice&&"object"==typeof e.tool_choice&&(e.tool_choice="required"),e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},49227:(a,b,c)=>{c.d(b,{hG:()=>D});var d=c(77598),e=c.n(d),f=c(74957),g=c(12643),h=c(93943),i=c(37981),j=c(57247),k=c(90737),l=c(41004),m=c(80662),n=c(19713);let o=null;async function p(a="endpoint-proxy-salt"){let b=function(){if(o)return o;try{o=(0,n.machineIdSync)()}catch{o=e().randomUUID()}return o}();return e().createHash("sha256").update(b+a).digest("hex").substring(0,16)}let q=/^(rs|fc|resp|msg)_/,r=new Set(["web_search","x_search","web_search_preview","file_search","image_generation","code_interpreter","mcp","local_shell"]),s=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","include","temperature","top_p","max_output_tokens","parallel_tool_calls","text","metadata","prompt_cache_key"]),t=["low","medium","high","xhigh"],u=/^(?:rs|msg|fc)_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,v={type:"object",properties:{input:{type:"string"}},required:["input"]},w=new Map,x=new WeakMap;function y(a){let b="string"==typeof a?a.trim().toLowerCase():"";return"max"===b?"xhigh":t.includes(b)?b:"high"}function z(a){return"string"==typeof a?a:void 0===a?"":JSON.stringify(a)}function A(a){return"string"==typeof a&&u.test(a)}function B(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let{internal_chat_message_metadata_passthrough:b,...c}=a;if("reasoning"===a.type)return A(a.id)&&"string"==typeof a.encrypted_content?c:null;if("custom_tool_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",call_id:b,name:c,arguments:JSON.stringify({input:z(a.input??a.arguments)})}:null}if("custom_tool_call_output"===a.type||"function_call_output"===a.type){let b=a.call_id||a.id;return b?{type:"function_call_output",call_id:b,output:z(a.output)}:null}if("function_call"===a.type){let b=a.call_id||a.id,c="string"==typeof a.name?a.name.trim():"";return b&&c?{type:"function_call",...A(a.id)?{id:a.id}:{},call_id:b,name:c,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments??{}),..."string"==typeof a.status?{status:a.status}:{}}:null}return c}let C=null;class D extends f.H{constructor(){super("grok-cli",g.xq["grok-cli"])}buildUrl(){return this.config.baseUrl}async refreshCredentials(a,b,c=null){return a?.refreshToken?(0,h.Vq)("grok-cli",a,b,c):null}needsRefresh(a){return(0,h.fp)("grok-cli",a)}buildHeaders(a,b=!0,c=null,d=null,f=null,g={}){let h=super.buildHeaders(a,b);for(let[a,b]of Object.entries(this.config.headers||{}))null!=b&&void 0===h[a]&&(h[a]=b);h["x-grok-client-identifier"]=this.config.clientIdentifier||h["x-grok-client-identifier"]||k.rK,h["x-grok-client-version"]=this.config.clientVersion||h["x-grok-client-version"]||k.uG;let i=g?.sessionId||a?.connectionId||e().randomUUID(),j=g?.reqId||e().randomUUID();h["x-grok-session-id"]=i,h["x-grok-conv-id"]=i,h["x-grok-req-id"]=j,h["x-grok-turn-idx"]=String(g?.turnIdx||1),g?.agentId&&(h["x-grok-agent-id"]=g.agentId),g?.model&&(h["x-grok-model-override"]=g.model);let l=a?.providerSpecificData||{},m=l.email||a?.email,n=l.userId||a?.userId||a?.providerUserId;return m&&(h["x-email"]=m),n&&(h["x-userid"]=n),h}parseError(a,b){if(402===a.status&&b)try{let a=JSON.parse(b),c=a?.code||"",d=a?.error||a?.message||b;return{status:402,message:"string"==typeof d?d:b,code:"string"==typeof c?c:void 0}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d,f={}){let g;g={prompt_cache_key:b?.prompt_cache_key,session_id:b?.session_id,conversation_id:b?.conversation_id,metadata:b?.metadata},f.sessionId=(0,m.oV)({headers:d?.rawHeaders,body:g,connectionId:d?.connectionId||d?.id,workspaceId:d?.providerSpecificData?.workspaceId,scope:"grok-cli"}),f.reqId=e().randomUUID(),f.agentId=d?.providerSpecificData?.deviceId||d?.providerSpecificData?.agentId||f.agentId||null;let h=(0,i.me)(b.input);h&&(b.input=h),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(Array.isArray(b.messages)&&b.messages.length>0?(b.input=b.messages.map(a=>({type:"message",role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content??"")})),delete b.messages):b.input=[{type:"message",role:"user",content:"..."}]),function(a){if(!Array.isArray(a?.input))return;let b=a.input.map(B).filter(Boolean),c=new Set(b.filter(a=>a?.type==="function_call"&&a.call_id).map(a=>a.call_id));a.input=b.filter(a=>a?.type!=="function_call_output"||c.has(a.call_id))}(b),Array.isArray(b.input)&&(b.input=b.input.filter(a=>{if("string"==typeof a&&q.test(a))return!1;if(a&&"object"==typeof a&&!Array.isArray(a)){if("item_reference"===a.type)return!1;"string"==typeof a.id&&q.test(a.id)&&!A(a.id)&&delete a.id}return!0})),function(a){if(!Array.isArray(a.tools)||0===a.tools.length){delete a.tools,delete a.tool_choice;return}let b=new Set,c=new Set;if(a.tools=a.tools.filter(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d="string"==typeof a.type?a.type:"";if("function"!==d){if(r.has(d))return c.add(d),!0;if(!d&&a.function);else if(d&&"string"!=typeof a.name)return!1}if(!("function"===d||""===d||a.function||"string"==typeof a.name)||r.has(d))return r.has(d);let e=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,f=("string"==typeof a.name?a.name:"string"==typeof e?.name?e.name:"").trim();if(!f)return!1;let g="string"==typeof a.description?a.description:"string"==typeof e?.description?e.description:"",h="custom"===d?v:a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:e?.parameters&&"object"==typeof e.parameters&&!Array.isArray(e.parameters)?e.parameters:{type:"object",properties:{}};for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=f.slice(0,128),g&&(a.description=g),a.parameters=h,b.add(a.name),!0}),0===a.tools.length){delete a.tools,delete a.tool_choice;return}if(a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)){let d="string"==typeof a.tool_choice.type?a.tool_choice.type:"";if("function"===d||"custom"===d){let c=a.tool_choice.name??a.tool_choice.function?.name,d="string"==typeof c?c.trim().slice(0,128):"";d&&b.has(d)?a.tool_choice={type:"function",name:d}:delete a.tool_choice}else c.has(d)||delete a.tool_choice}}(b),f.turnIdx=function(a,b,c=null){let d=function(a){if(!Array.isArray(a))return 1;let b=0;for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c))continue;let a="string"==typeof c.type?c.type:"";"user"!==c.role||a&&"message"!==a||(b+=1)}return Math.max(1,b)}(b);if(!a)return d;if(c&&x.has(c))return x.get(c);let e=Date.now(),f=w.get(a),g=f&&e-f.lastUsed<=l.v1.sessionTtlMs?f.turn:0;f&&w.delete(a);let h=g>0?Math.max(d,g+ +!!c):d;for(;w.size>=5e3;)w.delete(w.keys().next().value);return w.set(a,{turn:h,lastUsed:e}),c&&x.set(c,h),h}(f.sessionId,b.input,b),b.stream=!0,b.store=!1;let n=function(a){if(!a||"string"!=typeof a)return null;for(let b of t)if(a.endsWith(`-${b}`))return b;return null}(b.model||a),o=b.model||a;n&&(o=o.replace(RegExp(`-${n}$`),"")),(o=(0,j.kt)("gcli",o)||o)===(b.model||a)&&(o=(0,j.kt)("grok-cli",o)||o),b.model=o,f.model=o;let p=(0,k.Au)(o);if(b.reasoning&&"object"==typeof b.reasoning?(p?b.reasoning.effort=y(b.reasoning.effort||b.reasoning_effort||n):delete b.reasoning.effort,b.reasoning.summary||(b.reasoning.summary="concise")):(b.reasoning={summary:"concise"},p&&(b.reasoning.effort=y(b.reasoning_effort||n))),delete b.reasoning_effort,b.reasoning&&"none"!==b.reasoning.effort){let a=Array.isArray(b.include)?b.include:[];a.includes("reasoning.encrypted_content")||a.push("reasoning.encrypted_content"),b.include=a}for(let a of(delete b.messages,delete b.max_tokens,delete b.max_completion_tokens,delete b.n,delete b.seed,delete b.logprobs,delete b.top_logprobs,delete b.frequency_penalty,delete b.presence_penalty,delete b.logit_bias,delete b.user,delete b.stream_options,delete b.prompt_cache_retention,delete b.safety_identifier,delete b.previous_response_id,Object.keys(b)))s.has(a)||delete b[a];return b}async execute(a){let b={agentId:a.credentials?.providerSpecificData?.deviceId||await (!C&&(C=(async()=>{try{let a=await p("grok-cli-agent");return[a.slice(0,8),a.slice(8,12),"5"+a.slice(13,16),"a"+a.slice(17,20),a.slice(0,12).padEnd(12,"0")].join("-")}catch{return e().randomUUID()}})()),C)};return super.execute({...a,hookCtx:b})}}},51349:(a,b,c)=>{c.d(b,{m:()=>e});var d=c(96179);class e extends d.L{constructor(){super("codebuddy-intl")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);e.stream=!0;let f=e.reasoning_effort;"none"===f||"off"===f?delete e.reasoning_effort:f&&(e.reasoning_summary="auto");let g=Array.isArray(e.messages)?e.messages:[];for(let a of(e.messages=[{role:"system",content:"You are CodeBuddy Code."}],g))!a||"object"!=typeof a||["system","developer"].includes(a.role)||("user"===a.role&&"string"==typeof a.content?e.messages.push({...a,content:[{type:"text",text:a.content}]}):e.messages.push({...a}));return e}parseError(a,b){if(b)try{let a=JSON.parse(b),c=a?.msg||a?.message||a?.error?.message||"";if(a?.code===6004||/超出频率限制|frequency limit|限额/i.test(c)){let a=null,b=c.match(/(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})(?:\s*UTC\+?([0-9:]+))?/i);if(b){let c=b[1],d=b[2],e=b[3]?b[3].includes(":")?b[3].startsWith("+")?b[3]:`+${b[3]}`:`+${b[3].padStart(2,"0")}:00`:"+08:00",f=new Date(`${c}T${d}${e}`);isNaN(f.getTime())||(a=f.getTime())}return{status:429,message:c||"CodeBuddy frequency limit (6004)",resetsAtMs:a}}}catch{}return super.parseError(a,b)}}},53307:(a,b,c)=>{c.d(b,{sh:()=>u});var d=c(74957);let e="https://uncensored.com",f="https://clerk.uncensored.com",g="5.127.1",h="https://internal.chatuncensored.ai/v2/image-gen",i={"1:1":{imageWidth:"1024",imageHeight:"1024"},"16:9":{imageWidth:"1024",imageHeight:"576"},"9:16":{imageWidth:"576",imageHeight:"1024"},"4:3":{imageWidth:"1024",imageHeight:"768"},"3:4":{imageWidth:"768",imageHeight:"1024"},"3:2":{imageWidth:"1152",imageHeight:"768"},"2:3":{imageWidth:"768",imageHeight:"1152"},"4:5":{imageWidth:"896",imageHeight:"1120"},"5:4":{imageWidth:"1120",imageHeight:"896"},"21:9":{imageWidth:"1344",imageHeight:"576"}},j={"seedream-v4.5":{name:"Seedream v4.5",aspects:["1:1","16:9","9:16","4:3","3:4"]},"seedream-v5":{name:"Seedream v5",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"seedream-v5-flash":{name:"Seedream v5 Flash",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3","4:5","5:4","21:9"],resolutions:["1k","1.5k","2k"]},"nano-banana-pro-ultra":{name:"Nano Banana Pro Ultra",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["4k","8k"]},"nano-banana-pro":{name:"Nano Banana Pro",aspects:["1:1","2:3","3:2","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"nano-banana":{name:"Nano Banana",aspects:["1:1","9:16","16:9","3:4","4:3","3:2","2:3","5:4","4:5","21:9"]},"nano-banana-2":{name:"Nano Banana 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"],resolutions:["1k","2k","4k"]},"gpt-image":{name:"GPT Image 1.5",aspects:["1:1","2:3","3:2"],qualities:["medium","high"]},"gpt-image-2":{name:"GPT Image 2",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9"]},"gpt-image-2.5-flare":{name:"GPT Image 2.5 Flare",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"gpt-image-2.5-sunburst":{name:"GPT Image 2.5 Sunburst",aspects:["1:1","3:2","2:3","3:4","4:3","4:5","5:4","9:16","16:9","21:9","2:1","1:2","3:1","1:3","9:21"]},"wan-2.6":{name:"Wan 2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.6-image":{name:"Wan 2.6",upstream:"wan-2.6",aspects:["1:1","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image":{name:"Wan 2.7",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"wan-2.7-text-to-image-pro":{name:"Wan 2.7 Pro",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"prefect-pony-xl":{name:"Prefect Pony XL",aspects:["1:1","16:9","9:16","4:3","3:4","3:2","2:3"]},"1.0":{name:"Flux.1",aspects:[]},"1.1":{name:"Flux.1.1",aspects:[]},"1.2":{name:"Wan 2.6 (Flux tier)",aspects:[]},"2.0":{name:"Flux.2",aspects:[]},"flux-2-max":{name:"Flux 2 Max",aspects:[]},SDXL:{name:"SDXL uncensored",aspects:[]},realism:{name:"Realism",aspects:[]},"realism-2":{name:"Realism 2",aspects:[]},"z-image-turbo":{name:"Z Image Turbo",aspects:[]}},k={default:{name:"Standard",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},turbo:{name:"Turbo",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored-v2":{name:"Wan Ultra Uncensored v2",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.2-uncensored":{name:"Wan Ultra Uncensored",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],resolutions:["480p","720p"],seconds:[5,8]},"wan-2.6":{name:"Wan v2.6",t2v:!0,i2v:!0,aspects:["auto","16:9","9:16","1:1"],seconds:[5,8]},"wan-2.6-ultra":{name:"Wan 2.6 Ultra Uncensored",t2v:!0,i2v:!0},"wan-2.7":{name:"Wan 2.7",t2v:!0,i2v:!0},"wan-2.7-pro":{name:"Wan 2.7 Pro",t2v:!0,i2v:!0},"wan-2.7-uncensored":{name:"Wan 2.7 Uncensored",t2v:!0,i2v:!0},"wan-2.7-uncensored-v2":{name:"Wan 2.7 Uncensored v2",t2v:!0,i2v:!0},"wan-3.0":{name:"Wan 3.0",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored":{name:"Wan 3.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"wan-3.0-uncensored-pro":{name:"Wan 3.0 Uncensored Pro",t2v:!0,i2v:!0,audio:!0},"sora-2":{name:"Sora 2",t2v:!0,i2v:!0,seconds:[4,8,12]},"sora-2-pro":{name:"Sora 2 Pro",t2v:!0,i2v:!0,seconds:[4,8,12]},"grok-imagine-video":{name:"Grok Imagine Video",t2v:!0,i2v:!0},"bytedance-seedance-2.0":{name:"Seedance 2.0",t2v:!0,i2v:!0},"seedance-2.0-fast":{name:"Seedance 2.0 Fast",t2v:!0,i2v:!0},"seedance-2.0-uncensored":{name:"Seedance 2.0 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-fast-uncensored":{name:"Seedance 2.0 Fast Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-uncensored":{name:"Seedance 2.0 Mini Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.0-mini-turbo":{name:"Seedance 2.0 Mini Turbo Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-v1.5-pro-uncensored":{name:"Seedance v1.5 Pro Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5-uncensored":{name:"Seedance 2.5 Uncensored",t2v:!0,i2v:!0,audio:!0},"seedance-2.5":{name:"Seedance 2.5",t2v:!0,i2v:!0,audio:!0},"vidu-q3-uncensored":{name:"Vidu Q3 Uncensored",t2v:!0,i2v:!0},"av-gen-v2":{name:"AV-Gen v2 with audio",t2v:!0,i2v:!0,audio:!0},"cosmos-predict":{name:"Cosmos Predict 2.5",t2v:!0,i2v:!0},"minimax-h3":{name:"MiniMax H3",t2v:!0,i2v:!0},"happyhorse-1.0":{name:"Happy Horse 1.0",t2v:!0,i2v:!0},"wan/v2.2-a14b":{name:"Wan v2.2-a14b",t2v:!0,i2v:!0}};function l(a){let b=new Map;for(let c of String(a||"").split(";")){let a=c.indexOf("=");if(a<0)continue;let d=c.slice(0,a).trim();d&&b.set(d,c.slice(a+1).trim())}return b}function m(a){try{let b=a.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(Buffer.from(b+"=".repeat((4-b.length%4)%4),"base64").toString("utf8"))}catch{return null}}function n(a){return[...a.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}function o(a,b){for(let c of"function"==typeof a.headers.getSetCookie?a.headers.getSetCookie():[]){let a=String(c).split(";")[0],d=a.indexOf("=");if(d>0&&a.slice(0,d).trim()===b)return a.slice(d+1).trim()}return""}async function p(a,b,c){let d=m(a)?.sid;if("string"==typeof d&&d)return{sid:d,rotatedClient:""};let e=await fetch(`${f}/v1/client?_clerk_js_version=${g}`,{headers:b,signal:c});if(!e.ok)return{sid:"",rotatedClient:""};let h=o(e,"__client"),i=await e.json().catch(()=>null),j=i?.response??i?.client??i,k=Array.isArray(j?.sessions)?j.sessions:[],l=k.find(a=>a?.status==="active")??k[0];return{sid:"string"==typeof l?.id?l.id:"",rotatedClient:h}}async function q(a,b){let c=l(a),d=c.get("__client");if(!d)throw Object.assign(Error("UC credential missing the __client cookie — paste the full uncensored.com Cookie header from a logged-in session"),{status:401});let h={Cookie:n(c),Origin:e,Referer:`${e}/`,Accept:"application/json"},i=await p(d,h,b),j=i.sid;if(!j)throw Object.assign(Error("UC Clerk session not found — the __client cookie has no active session. Log in again via Login via Browser"),{status:401});let k=await fetch(`${f}/v1/client/sessions/${encodeURIComponent(j)}/tokens?_clerk_js_version=${g}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:e,Referer:`${e}/`,Cookie:n(c)},body:"",signal:b});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC Clerk token mint failed (HTTP ${k.status}) ${a}`),{status:k.status})}let q=o(k,"__client")||i.rotatedClient,r=await k.json().catch(()=>null),s=r?.jwt;if("string"!=typeof s||!s)throw Object.assign(Error("UC Clerk token mint returned no jwt"),{status:502});let t=m(s)?.uid;return{jwt:s,uid:"string"==typeof t?t:"",rotatedClient:q}}async function r(a,{signal:b,log:c,intervalMs:d=5e3,timeoutMs:f=3e5}){let g=Date.now()+f;for(;Date.now()<g;){if(b?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,d));let f=0;try{f=(await fetch(a,{method:"HEAD",headers:{Referer:`${e}/`},signal:b})).status}catch{f=0}if(200===f)return;f>=400&&f<500&&429!==f&&c?.warn?.("UC-WEB",`result poll got HTTP ${f} — continuing until timeout`)}throw Error("UC result did not become available in time")}async function s(a,{signal:b}){let c=await fetch(a,{headers:{Referer:`${e}/`},signal:b});if(!c.ok)throw Error(`UC result download failed (HTTP ${c.status})`);return{b64:Buffer.from(await c.arrayBuffer()).toString("base64"),mime:(c.headers.get("content-type")||"").split(";")[0]||"application/octet-stream"}}async function t(a,b,c){let d=/^data:[^;]*;base64,(.*)$/.exec(String(a));if(d)return Buffer.from(d[1],"base64");if(/^https?:\/\//i.test(String(a))){let c=await fetch(a,{signal:b,headers:{Accept:"image/*","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"}});if(!c.ok)throw Error(`input image download failed (HTTP ${c.status})`);return Buffer.from(await c.arrayBuffer())}try{return Buffer.from(String(a),"base64")}catch{return c?.error?.("UC-WEB","could not decode input image"),null}}class u extends d.H{constructor(){super("uc-web",{id:"uc-web",baseUrl:"https://internal.chatuncensored.ai"})}async execute(){return{response:new Response(JSON.stringify({error:{message:"uc-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="image",size:c,model:d,duration:f,resolution:g,images:m,credentials:o,signal:p,log:u}){if("image"!==b&&"video"!==b)throw Error("uc-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let v=String(o?.apiKey||""),{jwt:w,uid:x,rotatedClient:y}=await q(v,p),z=function(a,b){if(!b)return"";let c=l(a);return c.get("__client")===b?"":(c.set("__client",b),n(c))}(v,y);z&&o&&(o.apiKey=z);let A={Authorization:`Bearer ${w}`,Origin:e,Referer:`${e}/`,"Content-Type":"application/json"};if("image"===b){let b=d||"seedream-v4.5";if(!j[b])throw Object.assign(Error(`Unknown UC image model "${b}" — see the provider's model list`),{status:400});let e=j[b],f={prompt:a,mode:"dev",model_version:e.upstream||b,m_n_user:!0,moderationMode:"SUPER_LIGHT",country:"US",vdiscount:!1,...function(a,b){let c=String(a||"").trim(),d=Array.isArray(b)&&b.length?b:null,e=i[c]&&(!d||d.includes(c))?{aspect_ratio:c,...i[c]}:null;if(e)return e;if(c.includes("x")){let[a,b]=c.split("x").map(Number);if(Number.isFinite(a)&&Number.isFinite(b)&&a>0&&b>0){let c=null,e=1/0;for(let[f,g]of Object.entries(i)){if(d&&!d.includes(f))continue;let h=Math.abs(Number(g.imageWidth)/Number(g.imageHeight)-a/b);h<e&&(e=h,c=f)}if(c)return{aspect_ratio:c,...i[c]}}}let f=d?.[0]||"1:1";return{aspect_ratio:f,...i[f]}}(c,e.aspects)};if(e.resolutions?.length){let a=String(g||"").toLowerCase();f.resolution=e.resolutions.includes(a)?a:e.resolutions[0]}let k=await fetch(h,{method:"POST",headers:A,body:JSON.stringify(f),signal:p});if(!k.ok){let a=(await k.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC image request failed (HTTP ${k.status}) ${a}`),{status:k.status})}let l=await k.json().catch(()=>null),m="string"==typeof l?.url?l.url:"";if(!m)throw Error("UC image response carried no result url");return await r(m,{signal:p,log:u}),[await s(m,{signal:p})]}let B=d||"default";if(!k[B])throw Object.assign(Error(`Unknown UC video model "${B}" — see the provider's model list`),{status:400});let C=k[B],D=Array.isArray(m)?m[0]:m;if(D&&!1===C.i2v)throw Error(`UC video model "${B}" does not accept an input image`);if(!D&&!1===C.t2v)throw Error(`UC video model "${B}" requires an input image`);let E=Number(f)>0?Number(f):C.seconds?.[0]??5,F=C.resolutions?.length?C.resolutions.includes(String(g||""))?String(g):C.resolutions[0]:"480p",G={prompt:a,media_blob_name:null,num_frames:Math.round(16*E)+1,frames_per_second:16,num_inference_steps:30,guide_scale:5,shift:5,aspect_ratio:C.aspects?.includes("auto")?"auto":"9:16",pro_mode:"wan-3.0-uncensored-pro"===B,turbo:"turbo"===B,resolution:F,sora_resolution:F,end_frame_blob_name:null,model:B,seconds:E,video_to_video_duration:E,vdiscount:!1};if(D){if(!x)throw Object.assign(Error("Could not derive the account uid — re-paste the full Cookie header"),{status:401});let a=await t(D,p,u);if(!a)throw Error("UC image-to-video could not decode the input image");let b=await fetch("https://internal-6.pubyar.com/generate-signed-url",{method:"POST",headers:A,body:JSON.stringify({content_type:"image/png",user_identifier:x}),signal:p});if(!b.ok){let a=(await b.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC signed-url request failed (HTTP ${b.status}) ${a}`),{status:b.status})}let c=await b.json().catch(()=>null);if(!c?.signed_url||!c?.blob_name)throw Error("UC signed-url response missing signed_url or blob_name");let d=await fetch(c.signed_url,{method:"PUT",headers:{"Content-Type":"image/png"},body:new Uint8Array(a),signal:p});if(!d.ok)throw Object.assign(Error(`UC input-image upload failed (HTTP ${d.status})`),{status:d.status});G.media_blob_name=c.blob_name}let H=await fetch("https://internal.chatuncensored.ai/image_to_video",{method:"POST",headers:A,body:JSON.stringify(G),signal:p});if(!H.ok){let a=(await H.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`UC video request failed (HTTP ${H.status}) ${a}`),{status:H.status})}let I=await H.json().catch(()=>null),J="string"==typeof I?.url?I.url:"";if(!J)throw Error("UC video response carried no result url");let K=Number.isFinite(Number(I?.timeout_seconds))&&Number(I.timeout_seconds)>0?1e3*Number(I.timeout_seconds):3e5;return await r(J,{signal:p,log:u,timeoutMs:K}),[await s(J,{signal:p})]}}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{getExecutor:()=>S});var e=c(39536),f=c(98625),g=c(19696),h=c(95128),i=c(11655),j=c(61433),k=c(77333),l=c(76467),m=c(32447),n=c(19932),o=c(19946),p=c(73870),q=c(4493),r=c(13120),s=c(17373),t=c(77919),u=c(49227),v=c(23013),w=c(59192),x=c(29166),y=c(20690),z=c(88331),A=c(53307),B=c(88198),C=c(9708),D=c(90926),E=c(26878),F=c(36732),G=c(49059),H=c(51349),I=c(85308),J=c(27617),K=c(71880),L=c(98665),M=c(93509),N=c(96179),O=c(83243),P=c(95089),Q=c(74161);c(74957);var R=a([o]);o=(R.then?(await R)():R)[0];let T={antigravity:new e.c,azure:new f.P,"gemini-cli":new h.V,github:new i.x,iflow:new j.r,qoder:new k.DH,"qoder-cn":new k.DH("qoder-cn"),kiro:new l.B,kimchi:new m.BL,codex:new n.T,cursor:new o.ou,cu:new o.ou,vertex:new p.w("vertex"),"vertex-partner":new p.w("vertex-partner"),opencode:new q.j9,"opencode-go":new r.H,"opencode-zen":new s.mO,"grok-web":new t.$,"grok-cli":new u.hG,gcli:new u.hG,gb:new u.hG,"perplexity-web":new v.Ay,"deepseek-web":new w.id,"gemini-web":new x.dQ,"muse-web":new y._5,"veoaifree-web":new z.Q,"veo-free":new z.Q,"uc-web":new A.sh,"chatgpt-web":new B.RF,"ollama-local":new C.D,commandcode:new D.Ak,"xiaomi-tokenplan":new E.F,"xiaomi-mimo":new F.Rb,codearts:new J.Ay,deveco:new K.y,"codebuddy-cn":new G.v,"codebuddy-intl":new H.m,trae:new I.A,"trae-enterprise":new I.A("trae-enterprise"),zed:new L.A,windsurf:new M.Ay,"minimax-code":new O.M("minimax-code"),"minimax-code-global":new O.M("minimax-code-global"),"devin-cli":new P.c,zcode:new Q.B,bedrock:new g.UD,br:new g.UD,"bedrock-xai":new g.UD("bedrock-xai"),brx:new g.UD("bedrock-xai")},U=new Map;function S(a){return T[a]?T[a]:(U.has(a)||U.set(a,new N.L(a)),U.get(a))}d()}catch(a){d(a)}})},59192:(a,b,c)=>{c.d(b,{id:()=>an});var d=c(74957),e=c(78959),f=c(92536),g=c(73024),h=c(76760),i=c.n(h),j=c(75919);let k=[1n,32898n,0x800000000000808an,0x8000000080008000n,32907n,2147483649n,0x8000000080008081n,0x8000000000008009n,138n,136n,2147516425n,2147483658n,2147516555n,0x800000000000008bn,0x8000000000008089n,0x8000000000008003n,0x8000000000008002n,0x8000000000000080n,32778n,0x800000008000000an,0x8000000080008081n,0x8000000000008080n,2147483649n,0x8000000080008008n];Uint32Array.from(k,a=>Number(4294967295n&a)),Uint32Array.from(k,a=>Number(a>>32n&4294967295n)),Uint8Array.from({length:25},(a,b)=>{let c=Math.floor(b/5);return 2*(c+(b%5*2+3*c)%5*5)}),Uint8Array.from({length:25},(a,b)=>{let c=b%5;return 2*(b-c+(c+1)%5)}),Uint8Array.from({length:25},(a,b)=>{let c=b%5;return 2*(b-c+(c+2)%5)});let l=/^[a-f0-9]{64}$/i,m=0;function n(){let a=Error("DeepSeek PoW computation aborted");return a.name="AbortError",a}async function o(a,b,c,d,e,f={}){return function(a,b={}){let{signal:c}=b;if(c?.aborted)return Promise.reject(n());if(m>=2)return Promise.reject(Error("DeepSeek PoW worker capacity reached (2)"));let d=function(a){if(void 0===a)return 1e4;if(!Number.isSafeInteger(a)||a<1||a>3e4)throw Error("DeepSeek PoW timeout must be an integer from 1 to 30000ms");return a}(b.timeoutMs);return m+=1,new Promise((b,e)=>{let f;try{f=new j.Worker(function(){let a=i().join(process.cwd(),"open-sse/lib/deepseek-pow-worker.mjs");if(!(0,g.existsSync)(a))throw Error(`DeepSeek PoW worker script not found at ${a}`);return a}(),{workerData:a})}catch(a){m=Math.max(0,m-1),e(a instanceof Error?a:Error(String(a)));return}let h=!1,k=(a,b)=>{h||(h=!0,clearTimeout(o),c?.removeEventListener("abort",l),m=Math.max(0,m-1),b&&f.terminate(),a())},l=()=>{k(()=>e(n()),!0)},o=setTimeout(()=>{k(()=>e(Error(`DeepSeek PoW computation exceeded ${d}ms`)),!0)},d);c?.addEventListener("abort",l,{once:!0}),f.once("message",a=>{!Number.isSafeInteger(a)||a<-1?k(()=>e(Error("DeepSeek PoW worker returned an invalid answer")),!0):k(()=>b(a),!1)}),f.once("error",a=>{k(()=>e(a),!0)}),f.once("exit",a=>{0!==a?k(()=>e(Error(`DeepSeek PoW worker exited with code ${a}`)),!1):k(()=>e(Error("DeepSeek PoW worker exited without an answer")),!1)})})}(function(a,b,c,d,e){if("DeepSeekHashV1"!==a)throw Error(`Unsupported DeepSeek PoW algorithm: ${a}`);if(!l.test(b))throw Error("DeepSeek PoW challenge must be a 64-character SHA3-256 hex digest");if("string"!=typeof c||0===c.length||c.length>1024)throw Error("DeepSeek PoW salt must contain 1-1024 characters");if(!Number.isSafeInteger(d)||d<1||d>25e4)throw Error("DeepSeek PoW difficulty must be an integer from 1 to 250000");if(!Number.isSafeInteger(e)||e<0)throw Error("DeepSeek PoW expiry must be a non-negative safe integer");return{challenge:b.toLowerCase(),prefix:`${c}_${e}_`,difficulty:d}}(a,b,c,d,e),f)}var p=c(39609),q=c(14229),r=c(70452);let s=new((c.n(r))())({strict:!1,allErrors:!1,validateFormats:!1}),t=new WeakMap;function u(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function v(a,b,c){let d=Array.isArray(a)?a.find(a=>a?.function?.name===b)??null:null;if(!d)return!1;let e=d.function?.parameters;if(void 0===e)return!0;if(("object"!=typeof e||null===e)&&"boolean"!=typeof e)return!1;let f=t.get(a);f||(f=new Map,t.set(a,f));let g=f.get(b);if(void 0===g){try{g=s.compile(e)}catch{g=null}f.set(b,g)}return!!g&&!0===g(c)}function w(a,b,c){if(!b.toolCalls)return b;let d=(0,q.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,q.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};let g=b._nonce;if(void 0!==g&&g!==d)return{content:a,toolCalls:null};let{_nonce:h,...i}=b;if(!v(c,f.function.name,i))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(i)}})}return{content:b.content,toolCalls:e}}function x(a){return"string"==typeof a&&!!a.trim()&&(!!/<\/?(?:|||\|\|?)DSML(?:|||\|\|?)\s*(?:calls|invoke|parameter)\b/i.test(a)||/<\/?(?:tool|tool_call)(?::|\s|>)/i.test(a))}function y(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let z=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function A(a,b){let c=RegExp(`\\b${b}\\s*=\\s*("|')`).exec(a);if(!c)return null;let d=c[1],e=c.index+c[0].length,f="";for(;e<a.length;){let b=a[e];if("\\"===b){f+=a[e+1]??"",e+=2;continue}if(b===d)break;f+=b,e+=1}return f}function B(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let C=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function D(a){return"string"==typeof a&&a.length>0?a:null}let E="[||]",F=`${E}{2}DSML${E}{2}`,G=RegExp(`</?${F}\\s*(?:calls|invoke|parameter)\\b[^>]*>|<${F}\\s*/\\s*(?:calls|invoke|parameter)\\s*>`,"gi");function H(a,b,c){let d=[],e=RegExp(`(?:</?${F}\\s*${b}\\b([^>]*)>|<${F}\\s*/\\s*${b}\\s*>)`,"gi"),f=null;for(;null!==(f=e.exec(a));)d.push({start:c+f.index,end:c+e.lastIndex,attrs:f[1]??""});return d}function I(a,b,c,d,e){let f=A(a.attrs,"name");if(!f)return null;let g=b?b.start:d,h=H(c.slice(a.end,g),"parameter",a.end),i={},j=a.end;for(let a=0;a<h.length;a+=1){let b=h[a],d=A(b.attrs,"name");if(!d)continue;let e=h[a+1],f=c.slice(b.end,e?e.start:g).trim();i[d]=""!==f?f:A(b.attrs,"content")??"",j=e?e.end:g}if(!Object.values(i).some(a=>""!==a))return null;let k=(0,q.Ub)(f,e)??f;return{start:a.start,end:b?b.end:j,name:k,args:i}}let J=/<[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)([^>]*)>/gi,K=/<\/[||]{1,2}DSML[||]{1,2}\s+(calls|invoke|parameter)\s*>/gi,L=/<(?:(?:\|DSML\|)|(?:||DSML||))invoke\b([^>]*)>([\s\S]*?)<\/(?:(?:\|DSML\|)|(?:||DSML||))invoke\s*>/gi,M=/<(?:(?:\|DSML\|)|(?:||DSML||))parameter\b([^>]*)>([\s\S]*?)(?:<\/(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>|<(?:(?:\|DSML\|)|(?:||DSML||))parameter\s*>)/gi,N=/<(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\b[^>]*>[^]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))(?:calls|call|invoke|parameter)\s*>/i,O=/(?:<\|tool_call_begin\|>|<|tool▁call▁begin|>)[\s\n]*([^<\s]+)[\s\n]*(?:<\|tool_call_argument_begin\|>|<|tool▁call▁argument▁begin|>)([\s\S]*?)(?:<\|tool_call_argument_end\|>|<|tool▁call▁argument▁end|>)[\s\n]*(?:<\|tool_call_end\|>|<|tool▁call▁end|>)/g;function P(a){try{return JSON.parse(a)}catch{return null}}function Q(a,b,c){let d=Array.isArray(c)?c.find(a=>a?.function?.name===b):void 0,e=d?.function?.parameters?.properties;if(!e||"object"!=typeof e)return a;for(let[b,c]of Object.entries(a))e[b]?.type==="string"&&"string"!=typeof c&&(a[b]=JSON.stringify(c));return a}function R(a,b="call",c){var d,e,f;if("string"!=typeof a||0===a.length)return{content:a??"",toolCalls:null};a=a.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"");let g=(0,q.x2)(c),h=(d=a,RegExp(`</?${F}\\s*(?:calls|invoke|parameter)\\b`,"i").test(d))?function(a,b){let c=[],d=[],e=RegExp(`<${F}\\s*calls\\s*>([\\s\\S]*?)(?:</${F}\\s*calls\\s*>|<${F}\\s*/\\s*calls\\s*>)`,"gi"),f=RegExp(`(?:</${F}\\s*calls\\s*>|<${F}\\s*/\\s*calls\\s*>)\\s*$`,"i"),g=[],h=null;for(;null!==(h=e.exec(a));){let i={start:h.index,end:e.lastIndex};g.push(i);let j=h[1],k=h.index+h[0].indexOf(j),l=f.exec(h[0]);d.push({start:h.index,end:k}),d.push({start:h.index+(l?l.index:h[0].length),end:h.index+h[0].length});let m=H(j,"invoke",k);for(let d=0;d<m.length;d+=1){if(!A(m[d].attrs,"name"))continue;let e=I(m[d],m[d+1],a,k+j.length,b);e&&c.push(e),m[d+1]&&(d+=1)}}let i=H(a,"invoke",0).filter(a=>!g.some(b=>a.start>=b.start&&a.end<=b.end));for(let d=0;d<i.length;d+=1){if(!A(i[d].attrs,"name"))continue;let e=I(i[d],i[d+1],a,a.length,b);e&&c.push(e),i[d+1]&&(d+=1)}return{calls:c.sort((a,b)=>a.start-b.start),strip:d}}(a,g):null,i=h&&h.calls.length>0?h:null;if(!i){let d=/<tool\b|<tool:/.test(a),g=a=>(a.toolCalls?.length??0)>0||!d,h=function(a,b,c){if(!/<(?:(?:||DSML||)|(?:\|DSML\|))/.test(a))return{content:a,toolCalls:null,recognized:!1};let d=(0,q.x2)(c),e=(0,q.OA)(c),f=[],g=[],h=/<(?<dsml>||DSML|||\|DSML\|)\s*invoke\s+name=["']([^"']+)["']\s*>([\s\S]*?)<\/\k<dsml>\s*invoke\s*>/g,i=null,j=!1,k=!1;for(;null!==(i=h.exec(a));){let a;j=!0;let l=(0,q.Ub)(i[2],d);if(!e||!l){k=!0;continue}let m=function(a){let b={},c=/<(?:||DSML|||\|DSML\|)\s*parameter\s+name=["']([^"']+)["'][^>]*>([\s\S]*?)(?:<\/?(?:||DSML|||\|DSML\|)\s*parameter\s*>|(?=<(?:||DSML|||\|DSML\|)\s*parameter\s+name=|<\/(?:||DSML|||\|DSML\|)\s*invoke\s*>))/g,d=null;for(;null!==(d=c.exec(a));){let a=d[2].trim();b[d[1]]=P(a)??a}if(Object.keys(b).length>0)return b;let e=P(a.trim()||"{}");return e&&"object"==typeof e&&!Array.isArray(e)&&Object.assign(b,e),b}(i[3]),n=u(m.arguments);if((m._nonce??n?._nonce)!==e){k=!0;continue}if(n){let{_nonce:b,...c}=n;a=c}else{let{_nonce:b,name:c,...d}=m;a=d}if(!v(c,l,a)){k=!0;continue}f.push({id:`${b}_${f.length}`,type:"function",function:{name:l,arguments:JSON.stringify(a)}}),g.push({start:i.index,end:h.lastIndex})}if(k||0===f.length)return{content:a,toolCalls:null,recognized:j};let l=/<\/?(?:||DSML|||\|DSML\|)\s*calls\s*>/g,m=null;for(;null!==(m=l.exec(a));)g.push({start:m.index,end:l.lastIndex});return{content:(0,q.LW)(a,g),toolCalls:f,recognized:!0}}(a,b,c);if(h.recognized&&g(h))return w(a,h,c);let i=function(a,b,c){let d=(0,q.x2)(c),e=[],f=[];O.lastIndex=0;let g=null;for(;null!==(g=O.exec(a));){let a=(0,q.Ub)(g[1],d),h=P(g[2].trim());if(!a||!h||"object"!=typeof h||Array.isArray(h))continue;let i=Q(h,a,c);e.push({id:`${b}_${e.length}`,type:"function",function:{name:a,arguments:JSON.stringify(i)}}),f.push({start:g.index,end:g.index+g[0].length})}!function(a,b,c,d,e,f){L.lastIndex=0;let g=null;for(;null!==(g=L.exec(a));){let a=A(g[1]||"","name"),h=a?(0,q.Ub)(a,c):null;if(!h)continue;let{args:i,found:j}=function(a){let b={},c=!1;M.lastIndex=0;let d=null;for(;null!==(d=M.exec(a));){let a=A(d[1]||"","name");if(!a)continue;let e=d[2].trim();b[a]=P(e)??e,c=!0}return{args:b,found:c}}(g[2]);if(!j&&g[2].trim())continue;let k=Q(i,h,d);e.push({id:`${b}_${e.length}`,type:"function",function:{name:h,arguments:JSON.stringify(k)}}),f.push({start:g.index,end:g.index+g[0].length})}}(a,b,d,c,e,f),e.length>0&&function(a,b){let c=/<(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>[\s\S]*?<\/(?:(?:\|DSML\|)|(?:||DSML||))calls\s*>/gi,d=null;for(;null!==(d=c.exec(a));){let a=d.index,c=a+d[0].length;b.some(b=>b.start>=a&&b.end<=c)&&b.push({start:a,end:c})}}(a,f);let h=N.test(a)||/<(?:(?:\|tool_call_)|(?:|tool▁call▁))/.test(a);return 0===e.length?{content:a,toolCalls:null,recognized:h}:{content:(0,q.LW)(a,f),toolCalls:e,recognized:h}}(a,b,c);if(i.recognized&&g(i))return w(a,i,c);e=(f=e=a).includes("DSML")?f.replace(J,(a,b,c)=>{let d=b.toLowerCase();if("calls"===d)return"";let e=A(c,"name"),f=null!==e?` name="${e}"`:"";return"invoke"===d?`<tool${f}>`:`<parameter${f}>`}).replace(K,(a,b)=>{let c=b.toLowerCase();return"calls"===c?"":"invoke"===c?"</tool>":"</parameter>"}):f,(/[||]{1,2}DSML[||]{1,2}/i.test(e)||/<parameter\b/i.test(e)||/<\/(?:parameter|invoke|arguments|calls|tool_calls|function_calls)>/i.test(e)||e.includes("This response is AI-generated, for reference only."))&&(e=(e=e.replace(/\s*This response is AI-generated, for reference only\.\s*$/i,"")).replace(/<\/?(?:[||]{1,2})DSML(?:[||]{1,2})\s*(?:calls|tool_calls|function_calls)>/gi,"").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?invoke\b/gi,"<$1tool").replace(/<(\/?)(?:(?:[||]{1,2})DSML(?:[||]{1,2})\s*)?parameter\b/gi,"<$1parameter").replace(/(}\s*)<\/(?:parameter|invoke|calls|tool_calls|function_calls)>/gi,"$1"),/<parameter\b/i.test(e)&&!/<tool\b/i.test(e)&&(e=e.replace(/((?:<parameter\b[\s\S]*?<\/parameter>\s*)+)/gi,"<tool>$1</tool>"))),a=e}let j=function(a){let b=[],c=null;for(z.lastIndex=0;null!==(c=z.exec(a));)b.push({start:c.index,end:z.lastIndex,closing:"/"===c[1],suffix:c[2]?c[2].slice(1):"",attrs:c[3]||""});return b}(a);if(0===j.length&&!i)return w(a,(0,q.uQ)(a,b,c),c);let k=function(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a){let a=c?.function;if(!a?.name)continue;let d=a.parameters,e=d?.properties;e&&"object"==typeof e&&!Array.isArray(e)?b.set(a.name,new Set(Object.keys(e))):b.set(a.name,new Set)}return b}(c),l=function(a,b){let c=[],d=[];for(let b of a){if(!b.closing){d.push(b);continue}let a=d.pop();a&&c.push({open:a,close:b,innerStart:a.end,innerEnd:b.start})}for(let a of d){let d={start:b,end:b,closing:!0,suffix:"",attrs:""};c.push({open:a,close:d,innerStart:a.end,innerEnd:b})}return c}(j,a.length),m=[],n=(0,q.OA)(c);for(let b of l.filter(a=>!l.some(b=>b!==a&&b.open.start>=a.innerStart&&b.close.end<=a.innerEnd)).sort((a,b)=>a.open.start-b.open.start)){let c=b.open.suffix||A(b.open.attrs,"name")||A(b.open.attrs,"id")||"",d=a.slice(b.innerStart,b.innerEnd).replace(G,""),e=function(a,b,c,d){let e,f=b.trim(),g=B(f,"name"),h=B(f,"arguments")??B(f,"parameters"),i=h?null:function(a){let b={},c=!1,d=null;for(C.lastIndex=0;null!==(d=C.exec(a));){let a=d[1]||"",e=d[2],f=A(a,"name");if(!f)continue;let g=A(a,"content")??("string"==typeof e?e.trim():"");b[f]=g,c=!0}return c?b:null}(f),j=!!g||!!h||!!i,k=j?null:(0,q.n)(f);if(!k&&!j){let a=function(a){let b=a.indexOf("{");if(-1===b)return null;let c=0,d="",e=!1;for(let f=b;f<a.length;f+=1){let g=a[f];if(e){e=!1;continue}if(d){"\\"===g?e=!0:g===d&&(d="");continue}if('"'===g||"'"===g){d=g;continue}if("{"===g){c+=1;continue}if("}"===g&&0==(c-=1))return a.slice(b,f+1)}return null}(f);a&&(k=(0,q.n)(a))}let l=k?D(k.name)??D(k.type):null,m=g?(0,q.Ub)(g,c):null,n=l?(0,q.Ub)(l,c):null,o=a?(0,q.Ub)(a,c):null,p=null,r=!1,s=(a,b)=>{!p&&a&&(p=a,r=b)};if(s(m,!1),s(n,!1),s(o,!0),s(g,!1),s(l,!1),s(a,!0),!p&&!a&&k){let a=D(k.command),b=a?(0,q.Ub)(a,c):null;b&&(p=b,r=!1)}if(!p&&i&&d&&d.size>0){let a=Object.keys(i);if(a.length>0){let b=[];for(let[c,e]of d)e.size>0&&a.every(a=>e.has(a))&&b.push(c);1===b.length&&(p=b[0],r=!1)}}if(!p)return null;if(h)e=(0,q.n)(h)??h;else if(i)e=i;else if(k)if(void 0!==k.arguments)e=k.arguments;else if(void 0!==k.params)e=k.params;else if(r)e=k;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=k;e=h}else e={};return{name:p,arguments:(0,q.r3)(e)}}(c,d,g,k);if(e){if(n){let a=(0,q.n)(d);if(a&&"string"==typeof a.name&&void 0!==a._nonce&&a._nonce!==n)continue}m.push({start:b.open.start,end:b.close.end,call:e})}}let o=[];if(i)for(let a of(o=i.strip,i.calls))m.push({start:a.start,end:a.end,call:{name:a.name,arguments:(0,q.r3)(a.args)}});if(0===m.length)return{content:a,toolCalls:null};m.sort((a,b)=>a.start-b.start);let p=[],r=[];for(let a of m)p.push({id:`${b}_${p.length}`,type:"function",function:{name:a.call.name,arguments:a.call.arguments}}),r.push({start:a.start,end:a.end});let s=[...r,...o,...j.filter(a=>!r.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))],t=(0,q.LW)(a,s);return p.length>0&&(t=t.replace(/<parameter\b[^>]*>[\s\S]*?(?:<\/parameter>|$)/gi,"").replace(/<\/?(?:parameter|invoke|tool|calls|tool_calls|function_calls)\b[^>]*>/gi,"").replace(/\n{3,}/g,"\n\n").trim()),function(a,b,c){if(!b.toolCalls)return b;let d=(0,q.OA)(c),e=[];for(let f of b.toolCalls){let b=(0,q.n)(f.function.arguments);if(!b)return{content:a,toolCalls:null};if(!("_nonce"in b)){e.push(f);continue}if(b._nonce!==d)return{content:a,toolCalls:null};let{_nonce:g,...h}=b;if(!v(c,f.function.name,h))return{content:a,toolCalls:null};e.push({...f,function:{...f.function,arguments:JSON.stringify(h)}})}return{content:b.content,toolCalls:e}}(a,{content:t,toolCalls:p},c)}function S(a,{min:b=-Number.MAX_SAFE_INTEGER,max:c=Number.MAX_SAFE_INTEGER}={}){return Number.isSafeInteger(a)&&a>=b&&a<=c}async function T(a){let b=await (0,p.proxyAwareFetch)("https://chat.deepseek.com/api/v0/chat/create_pow_challenge",{method:"POST",headers:{...a.headers,"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`},body:JSON.stringify({target_path:a.targetPath}),signal:a.signal??void 0},a.proxyOptions||null);if(!b.ok)throw Error(`create_pow_challenge HTTP ${b.status}`);let c=await b.json(),d={...c?.data?.biz_data?.challenge??c?.biz_data?.challenge,target_path:a.targetPath};if(!d||"string"!=typeof d.algorithm||"string"!=typeof d.challenge||"string"!=typeof d.salt||"string"!=typeof d.signature||!S(d.difficulty,{min:1})||!S(d.expire_at,{min:0})||"string"!=typeof d.target_path)throw Error("Invalid DeepSeek PoW challenge");return d}var U=c(98915);function V(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function W(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function X(a,b){let c=a.replace(/^FINISHED\s*/,"").replace(/^(WEB_SEARCH|SEARCHING|SEARCH)\s*/i,"");return W(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function Y(a,b){return 0===a.length||b.toLowerCase().includes("search-silent")?"":a.filter(a=>a.cite_index).sort((a,b)=>(a.cite_index||0)-(b.cite_index||0)).map(a=>`[${a.cite_index}]: [${a.title}](${a.url})`).join("\n")}let Z="https://chat.deepseek.com",$=`${Z}/api`,_=`${$}/v0/chat/completion`,aa={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:Z,Referer:`${Z}/`,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","X-Client-Bundle-Id":"com.deepseek.chat","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"2.0.0"},ab=new Map,ac=new Map;function ad(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function ae(a){let b=a?.apiKey||a?.accessToken;return"string"!=typeof b||0===b.length?null:(0,U.Xm)(b)}function af(a,b,c){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:c??`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}})}function ag(){let a=Date.now(),b=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)});return`intercom-HWWAFSESTIME=${a}; HWWAFSESID=${Array.from({length:18},()=>Math.floor(16*Math.random()).toString(16)).join("")}; Hm_lvt_${b()}=${Math.floor(a/1e3)}; _frid=${b()}`}async function ah(a,b){let c=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at,{signal:b});if(c<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:c,signature:a.signature,target_path:a.target_path})).toString("base64")}async function ai(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=!1,j=b||"deepseek-web",k=V(j),l=[],m=a=>{let b=X(a,j);if(!b)return;let c=h;!c&&k?c="thinking":!c&&W(j)&&(c="content"),"thinking"===c?g+=b:f+=b},n=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?h="thinking":("ANSWER"===c||"RESPONSE"===c)&&(h="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?h="thinking":("ANSWER"===b||"RESPONSE"===b)&&(h="content")}m(a.content)}};for(;;){let{done:a,value:b}=await d.read();if(a)break;let f=(e+=c.decode(b,{stream:!0})).split("\n");for(let a of(e=f.pop()||"",f)){if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let b=a.replace(/^data:\s*/,"").trim();try{let a=JSON.parse(b),c=a?.p,d=a?.v;if("response/status"===c&&"FINISHED"===d&&(i=!0),d&&"object"==typeof d&&d.response&&(!0===d.response.thinking_enabled?h="thinking":!1===d.response.thinking_enabled&&(h="content"),Array.isArray(d.response.fragments)))for(let a of d.response.fragments)n(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)n(a,!0);else d&&"object"==typeof d&&n(d,!0);if("response"===c&&Array.isArray(d))for(let a of d)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(h="thinking");if("response/search_status"===c)continue;if("response/search_results"===c&&Array.isArray(d)){if(a?.o!=="BATCH")l.length=0,l.push(...d);else for(let a of d){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);l[c]&&(l[c].cite_index=a.v)}}continue}if("string"==typeof d)m(d);else if(Array.isArray(d)&&"response"===c){for(let a of d)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&m(b)}}}catch{}}}let o=Y(l,j);if(o&&(f+=`
|
|
267
267
|
|
|
268
|
-
${o}`),!i)throw Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request.");return{content:f,reasoningContent:g}}async function
|
|
269
|
-
parameters: ${f}`:""}`)}return 0===c.length?"":["You can call tools. To call a tool, output ONLY this exact block (no markdown fence):",`<tool>{"name": "<tool_name>", "arguments": { ... }, "_nonce": "${b}"}</tool>`,"Rules:","- Use exactly <tool>...</tool>. Do NOT use <tool:name>, <tool_call>, <name>, <parameter>, id=/name= attributes, <||DSML||> markers, or code fences.",`- Include the secret binding "_nonce": "${b}" exactly as shown.`,'- "name" must be one of the tools below; "arguments" must be a JSON object.',"- When a tool is needed, emit the <tool> block instead of only describing the plan.","- Emit one <tool> block per call; you may put several blocks back to back.","- If your runtime forces DSML instead, every DSML invoke MUST include this exact binding:",`<||DSML|| parameter name="_nonce" string="true">${b}</||DSML|| parameter>`," A DSML invoke without that binding is invalid and will be rejected.","- If no tool is needed, just answer normally without any <tool> block.","","Available tools:",...c].join("\n")}(
|
|
268
|
+
${o}`),!i)throw Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request.");return{content:f,reasoningContent:g}}async function aj(a,b,c,d=null){let e=ab.get(a);if(e&&e.expiresAt>Math.floor(Date.now()/1e3))return e.accessToken;c?.info?.("DEEPSEEK-WEB","Acquiring access token from /users/current...");let f=await (0,p.proxyAwareFetch)(`${$}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...aa},signal:b??void 0},d);if(401===f.status||403===f.status)throw Error("Token invalid or expired — get a new userToken from DeepSeek localStorage");if(!f.ok)throw Error(`users/current HTTP ${f.status}`);let g=await f.json();if(g?.code&&0!==g.code){let b=g.msg||g?.data?.biz_msg||`error code ${g.code}`;throw ab.delete(a),Error(`DeepSeek rejected token: ${b}`)}let h=g?.data?.biz_data||g?.biz_data;if(!h?.token){let a=g?.msg||g?.data?.biz_msg||"Unknown error";throw Error(`Failed to acquire token: ${a}`)}let i=h.token;return ad(ab),ab.set(a,{accessToken:i,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${i.length} chars)`),i}async function ak(a,b,c=null){let d=await (0,p.proxyAwareFetch)(`${$}/v0/chat_session/create`,{method:"POST",headers:{...aa,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:ag()},body:JSON.stringify({}),signal:b??void 0},c);if(!d.ok)throw Error(`chat_session/create HTTP ${d.status}`);let e=await d.json(),f=e?.data?.biz_data||e?.biz_data,g=f?.chat_session?.id;if(!g)throw Error(`No session id: code=${e?.code}`);return g}async function al(a,b,c=null){try{await (0,p.proxyAwareFetch)(`${$}/v0/chat_session/delete`,{method:"POST",headers:{...aa,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})},c)}catch{}}async function am(a,b,c="/api/v0/chat/completion",d=null){return T({accessToken:a,headers:aa,signal:b,targetPath:c,proxyOptions:d})}class an extends d.H{constructor(){super("deepseek-web",{baseUrl:Z})}async testConnection(a,b){try{let c=ae(a);if(!c)return!1;return!!await aj(c,b,null,a?.proxyOptions||null)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:g,log:h,proxyOptions:i=null}){var j;let k,l,m=b||{},n=m.tools,o=Array.isArray(n)&&n.length>0,r=o?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=(0,q.OA)(a);if(!b)return"";let c=[];for(let d of a){let a=d?.function;if(!a?.name)continue;let e="string"==typeof a.description&&a.description?a.description:"",f="";try{let c=u(a.parameters),d=u(c?.properties),e=Array.isArray(c?.required)?c.required.filter(a=>"string"==typeof a):[],g=c?{...c,properties:{...d??{},_nonce:{type:"string",const:b}},required:[...new Set([...e,"_nonce"])]}:a.parameters;f=g?JSON.stringify(g):""}catch{f=""}c.push(`- ${a.name}${e?`: ${e}`:""}${f?`
|
|
269
|
+
parameters: ${f}`:""}`)}return 0===c.length?"":["You can call tools. To call a tool, output ONLY this exact block (no markdown fence):",`<tool>{"name": "<tool_name>", "arguments": { ... }, "_nonce": "${b}"}</tool>`,"Rules:","- Use exactly <tool>...</tool>. Do NOT use <tool:name>, <tool_call>, <name>, <parameter>, id=/name= attributes, <||DSML||> markers, or code fences.",`- Include the secret binding "_nonce": "${b}" exactly as shown.`,'- "name" must be one of the tools below; "arguments" must be a JSON object.',"- When a tool is needed, emit the <tool> block instead of only describing the plan.","- Emit one <tool> block per call; you may put several blocks back to back.","- If your runtime forces DSML instead, every DSML invoke MUST include this exact binding:",`<||DSML|| parameter name="_nonce" string="true">${b}</||DSML|| parameter>`," A DSML invoke without that binding is invalid and will be rejected.","- If no tool is needed, just answer normally without any <tool> block.","","Available tools:",...c].join("\n")}(n):"",s=Array.isArray(m.messages)?m.messages:[],t=r?[{role:"system",content:r},...s]:s,v=d??{},w=ae(v);if(!w)return{response:af(400,"Missing userToken — paste it from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:_,headers:{},transformedBody:b};let{modelType:z,thinkingEnabled:A,searchEnabled:B}=(l=(k=(a||"").toLowerCase()).includes("pro")||k.includes("expert")?"expert":"default",{modelType:l,thinkingEnabled:k.includes("r1")||k.includes("think")||k.includes("reason")||m?.thinking_enabled===!0||m?.thinking===!0||!!m?.reasoning_effort,searchEnabled:k.includes("search")||m?.search_enabled===!0||m?.search===!0||m?.web_search===!0}),C=v.providerSpecificData??{},D=!0===C.persistSession,E="number"==typeof C.historyWindow&&C.historyWindow>0?C.historyWindow:0;try{let b=Date.now(),d=await aj(w,g,h,i);h?.info?.("DEEPSEEK-WEB",`Token acquired in ${Date.now()-b}ms`);let k=o?function(a,b){let c=[];b&&c.push(b);let d=[],e=new Map,f=!1;for(let b of a)if("system"===b.role){let a=y(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=y(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=y(b.content).trim(),c=Array.isArray(b.tool_calls)?b.tool_calls:[],g=[];for(let b of(a&&g.push(a),c)){let a="string"==typeof b?.function?.name?b.function.name:"",c=b?.function?.arguments,d="string"==typeof c&&c?c:JSON.stringify(c??{});b?.id&&e.set(b.id,a),g.push(`<tool>{"name": ${JSON.stringify(a)}, "arguments": ${d}}</tool>`),f=!0}g.length&&d.push(`Assistant: ${g.join("\n")}`)}else if("tool"===b.role){let a=y(b.content).trim(),c=b.tool_call_id&&e.get(b.tool_call_id)||b.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),f=!0}let g=[];return c.length&&g.push(c.join("\n\n")),d.length&&g.push(d.join("\n\n")),f&&g.push("Continue the task using the tool results above. Do NOT repeat tool calls that already succeeded; perform the next step or give the final answer."),g.join("\n\n").replace(/!\[.*?\]\(.*?\)/g,"")}(s,r):function(a,b=0){if(0===a.length)return"";let c=[],d=[],e=new Map,f="";for(let b of a){var g;let a=(Array.isArray(g=b.content)?g.filter(a=>"text"===a.type).map(a=>a.text).join("\n"):String(g||"")).trim();if("system"===b.role)a&&c.push(a);else if("user"===b.role||"assistant"===b.role)for(let c of(a&&d.push({role:b.role,text:a}),"user"===b.role&&(f=a),Array.isArray(b.tool_calls)?b.tool_calls:[]))c?.id&&"string"==typeof c.function?.name&&e.set(c.id,c.function.name);else if("tool"===b.role&&a){let c=b.tool_call_id&&e.get(b.tool_call_id)||b.name||"tool";d.push({role:"tool",text:`(${c}) ${a}`})}}let h=[];c.length>0&&h.push(c.join("\n\n"));let i=b>0?b:20*(d.length>1);if(i>0&&d.length>1){let a=d.slice(-i).map(a=>"assistant"===a.role?`Assistant: ${a.text}`:"tool"===a.role?`Tool result ${a.text}`:`User: ${a.text}`).join("\n\n");h.push(a)}else f&&h.push(f);return h.join("\n\n").replace(/!\[.*?\]\(.*?\)/g,"")}(t,E);h?.info?.("DEEPSEEK-WEB",`model_type=${z}, thinking=${A}, search=${B}, stream=${!1!==c}, persist=${D}, window=${E}`);let l=async(a,b=k)=>{let c=await am(d,g,void 0,i),e=await ah(c,g),f={...aa,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":e,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:ag()},h={chat_session_id:a,parent_message_id:null,model_type:z,prompt:b,ref_file_ids:Array.isArray(m.ref_file_ids)?m.ref_file_ids:[],thinking_enabled:A,search_enabled:B,preempt:!1};return{resp:await (0,p.proxyAwareFetch)(_,{method:"POST",headers:f,body:JSON.stringify(h),signal:g??void 0},i),reqHeaders:f,requestPayload:h}},u=async()=>{if(D){let a=ac.get(w);if(a)return{sessionId:a.sessionId,reused:!0};let b=await ak(d,g,i);return ad(ac),ac.set(w,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await ak(d,g,i),reused:!1}};b=Date.now();let{sessionId:v,reused:C}=await u();h?.info?.("DEEPSEEK-WEB",`Session ${C?"reused":"created"} in ${Date.now()-b}ms`),b=Date.now(),h?.info?.("DEEPSEEK-WEB",`POST ${_}`);let{resp:F,reqHeaders:G,requestPayload:H}=await l(v);if(h?.info?.("DEEPSEEK-WEB",`Completion response in ${Date.now()-b}ms, status=${F.status}`),!F.ok&&D&&C&&(h?.warn?.("DEEPSEEK-WEB","Reused session failed — retrying with a fresh session"),ac.delete(w),v=await ak(d,g,i),ad(ac),ac.set(w,{sessionId:v,createdAt:Date.now()}),C=!1,{resp:F,reqHeaders:G,requestPayload:H}=await l(v)),!F.ok){let a=F.status,b=`DeepSeek API error (${a})`;401===a||403===a?(ab.delete(w),b="DeepSeek token expired — get a fresh userToken from localStorage."):429===a&&(b="DeepSeek rate limited. Wait and retry."),h?.warn?.("DEEPSEEK-WEB",b);try{let a=await F.json();a?.code&&0!==a.code&&(b=`DeepSeek error ${a.code}: ${a.msg}`)}catch{}return D&&ac.delete(w),al(d,v,i).catch(()=>{}),{response:af(a,b),url:_,headers:G,transformedBody:H}}if((F.headers.get("content-type")||"").includes("application/json"))try{let a=await F.json(),b=function(a){if(!a||"object"!=typeof a)return null;let b="number"==typeof a.code?a.code:void 0,c=a.msg,d=a.data?.biz_msg;return void 0!==b&&0!==b?{code:b,message:("string"==typeof c?c:"string"==typeof d?d:"")||`DeepSeek error ${b}`}:null}(a);if(b){let a=`DeepSeek error ${b.code}: ${b.message}`;h?.warn?.("DEEPSEEK-WEB",a);let c=40003===b.code?401:40002===b.code?429:502;return 40003===b.code&&ab.delete(w),D&&ac.delete(w),al(d,v,i).catch(()=>{}),{response:af(c,a,b.code),url:_,headers:G,transformedBody:H}}return D||al(d,v,i).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:_,headers:G,transformedBody:H}}catch{}let I=D?async()=>{}:()=>al(d,v),J="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(o){let{content:a,reasoningContent:b}=await ai(F.body,J),j=R(a,`call-${Date.now()}`,n),m=async a=>(await I(),{response:af(502,a),url:_,headers:G,transformedBody:H});if(function(a,b){if(x(a))return!0;if("string"!=typeof a||!a.trim())return!1;let c=(0,q.n)(a);if(!c||void 0===c.arguments)return!1;let d=[c.name,c.command].find(a=>"string"==typeof a&&a.length>0)??null;return!!d&&!!(0,q.Ub)(d,(0,q.x2)(b))}(j.content,n)){h?.warn?.("DEEPSEEK-WEB","Malformed tool envelope — retrying once with nonce binding"),ac.delete(w),await al(d,v,i).catch(()=>{}),v=await ak(d,g,i),D&&(ad(ac),ac.set(w,{sessionId:v,createdAt:Date.now()}));let c=[k,"Your previous response used an invalid tool envelope and was rejected.","Retry the requested next action from scratch. Follow the client tool contract exactly, including its _nonce binding and argument schema. Do not emit bare JSON or unbound DSML."].join("\n\n");if({resp:F,reqHeaders:G,requestPayload:H}=await l(v,c),!F.ok)return m("DeepSeek tool-call repair request failed.");if({content:a,reasoningContent:b}=await ai(F.body,J),j=R(a,`call-${Date.now()}`,n),x(j.content))return m("DeepSeek emitted an invalid tool call after repair.")}return await I(),function(a){let{stream:b,clientModel:c,content:d,reasoningContent:g,toolCalls:h,reqHeaders:i,requestPayload:j}=a,k=!!h&&h.length>0,l=k?"tool_calls":"stop",m=`chatcmpl-${Date.now()}`,n=Math.floor(Date.now()/1e3);if(b){let a=new TextEncoder,b=(b,d,e)=>{b.enqueue(a.encode((0,f.N)({id:m,object:"chat.completion.chunk",created:n,model:c,system_fingerprint:null,choices:[{index:0,delta:d,finish_reason:e,logprobs:null}]})))};return{response:new Response(new ReadableStream({start(c){b(c,{role:"assistant",content:""},null),g&&b(c,{reasoning_content:g},null),d&&b(c,{content:d},null),k&&b(c,{tool_calls:h.map((a,b)=>({index:b,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}))},null),b(c,{},l),c.enqueue(a.encode(e.$U)),c.close()}}),{status:200,headers:{...e.uB}}),url:_,headers:i,transformedBody:j}}let o={role:"assistant",content:d||""};return g&&(o.reasoning_content=g),k&&(o.tool_calls=h,d||(o.content=null)),{response:new Response(JSON.stringify({id:m,object:"chat.completion",created:n,model:c,choices:[{index:0,message:o,finish_reason:l,logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:_,headers:i,transformedBody:j}}({stream:!1!==c,clientModel:J,content:j.content,reasoningContent:b,toolCalls:j.toolCalls,reqHeaders:G,requestPayload:H})}if(!1!==c){let a,b=(j=function(a,b,c=null){let d=new TextEncoder,g=new TextDecoder,h=b||"deepseek-web",i=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,j=Math.floor(Date.now()/1e3),k=!1,l="",m=V(h),n=[],o=null,p=null;return new ReadableStream({async start(b){var q;let r,s=a.getReader();o=s;let t="",u=!1,v=!1,w=(a,c)=>{b.enqueue(d.encode((0,f.N)({id:i,object:"chat.completion.chunk",created:j,model:h,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:c??null,logprobs:null}]})))},x=()=>{k||(k=!0,w({role:"assistant",content:""}))},{finishOnce:y,hasFinished:z}=(q=()=>{let a=Y(n,h);a&&(x(),w({content:`
|
|
270
270
|
|
|
271
|
-
${a}`})),x(),w({},"stop"),b.enqueue(d.encode(e.$U)),b.close()},r=!1,{finishOnce:()=>{if(!r){r=!0;try{q()}catch{}}},hasFinished:()=>r}),{scheduleFinishAfterDrain:A,clearFinishedDrain:B,isDrainPending:C}=p=function(a,b=750){let c=null,d=()=>{c&&(clearTimeout(c),c=null)};return{scheduleFinishAfterDrain:()=>{d(),c=setTimeout(()=>{c=null,a()},b)},clearFinishedDrain:d,isDrainPending:()=>null!==c}}(y),D=a=>{let b=W(a,h);if(!b)return;x(),v=!0;let c=l;!c&&m?c="thinking":!c&&V(h)&&(c="content"),"thinking"===c?w({reasoning_content:b}):w({content:b})},E=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?l="thinking":("ANSWER"===c||"RESPONSE"===c)&&(l="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?l="thinking":("ANSWER"===b||"RESPONSE"===b)&&(l="content")}D(a.content)}};try{for(;;){let{done:a,value:b}=await s.read();if(a)break;let c=(t+=g.decode(b,{stream:!0})).split("\n");for(let a of(t=c.pop()||"",c)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void y();try{b=JSON.parse(c)}catch{continue}let d=b?.p,e=b?.o,f=b?.v;if(f&&"object"==typeof f&&f.response){!0===f.response.thinking_enabled?l="thinking":!1===f.response.thinking_enabled&&(l="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)E(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)E(a,!0);else f&&"object"==typeof f&&E(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(l="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)n.length=0,n.push(...f);else for(let a of f){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);n[c]&&(n[c].cite_index=a.v)}}continue}if("string"==typeof f)D(f);else if(Array.isArray(f)&&"response"===d){for(let a of f)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&D(b)}}if("response/status"===d&&"FINISHED"===f){u=!0,A();continue}C()&&A()}}}}catch(a){B(),z()||b.error(a);return}if(!u&&!v){B(),b.error(Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request."));return}u||c?.warn?.("DEEPSEEK-WEB","upstream closed without FINISHED after partial content; completing with what arrived"),y()},cancel(a){p?.clearFinishedDrain(),o?.cancel(a).catch(()=>{})}},{highWaterMark:16384})}(D.body,H,h),a=i.getReader(),new ReadableStream({async pull(b){let{done:c,value:d}=await a.read();if(c){b.close(),G().catch(()=>{});return}b.enqueue(d)},cancel(){a.cancel(),G().catch(()=>{})}}));return{response:new Response(b,{status:200,headers:{...e.uB}}),url:$,headers:E,transformedBody:F}}let{content:I,reasoningContent:J}=await ah(D.body,H);await G();let K={role:"assistant",content:I};J&&(K.reasoning_content=J);let L={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||v,choices:[{index:0,message:K,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(L),{status:200,headers:{"Content-Type":"application/json"}}),url:$,headers:E,transformedBody:F}}catch(c){let a=c instanceof Error?c.message:String(c);if(h?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof Error&&"AbortError"===c.name)return{response:ae(499,"Request cancelled"),url:$,headers:{},transformedBody:b};return{response:ae(502,`DeepSeek error: ${a}`),url:$,headers:{},transformedBody:b}}}}new am},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},70298:(a,b,c)=>{c.d(b,{RF:()=>bc});var d=c(74957),e=c(77598),f=c(73024),g=c(76760),h=c(80479);let i={"image/gif":"gif","image/jpeg":"jpg","image/jpg":"jpg","image/png":"png","image/webp":"webp"};class j extends Error{constructor(a){super(a),this.name="ChatGptWebAttachmentError",this.status=400}}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function m(a,b){return((a??"").split(/[\\/]/).pop()?.replace(/[\u0000-\u001f\u007f]/g,"").trim()||b).slice(0,180)}function n(a){let b=/^data:([^;,]+);base64,/i.exec(a);return b?.[1]?.trim().toLowerCase()}async function o(a){if(a.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");let b=[],c=0;for(let d of a){let a="image"===d.kind?0x1400000:0x3200000;if(!d.ref.toLowerCase().startsWith("data:"))throw new j("ChatGPT Web attachments must be data URLs");let e=function(a){let b=a.indexOf(",");if(b<0)throw new j("Attachment data URL is malformed");let c=a.slice(5,b);if(!/(?:^|;)base64(?:;|$)/i.test(c))throw new j("Attachment data URL must be base64 encoded");let d=(c.split(";")[0]||"application/octet-stream").toLowerCase(),e=a.slice(b+1);if(e.length>0x6400000)throw new j("Attachment is too large");let f=e.replace(/\s/g,"");if(!f||f.length%4!=0||!/^[A-Za-z0-9+/]+={0,2}$/.test(f))throw new j("Attachment contains invalid base64 data");let g=Buffer.from(f,"base64");if(!g.length||g.toString("base64").replace(/=+$/,"")!==f.replace(/=+$/,""))throw new j("Attachment contains invalid base64 data");return{bytes:g,mimeType:d}}(d.ref);if(!e.bytes.length)throw new j("Attachment is empty");if(e.bytes.length>a)throw new j("Attachment is too large");if((c+=e.bytes.length)>0x3200000)throw new j("Combined ChatGPT Web attachments are too large");if("image"===d.kind){let a=function(a,b){let c=a.length>=8&&0x89504e47===a.readUInt32BE(0)?"png":a.length>=3&&255===a[0]&&216===a[1]?"jpeg":a.length>=3&&"GIF"===a.toString("ascii",0,3)?"gif":a.length>=12&&"RIFF"===a.toString("ascii",0,4)&&"WEBP"===a.toString("ascii",8,12)?"webp":null,d=(a.length<24||0x89504e47!==a.readUInt32BE(0)?null:{width:a.readUInt32BE(16),height:a.readUInt32BE(20)})??function(a){if(a.length<4||255!==a[0]||216!==a[1])return null;let b=2;for(;b+9<a.length;){if(255!==a[b]){b+=1;continue}let c=a[b+1];if(c>=192&&c<=195||c>=197&&c<=199||c>=201&&c<=203||c>=205&&c<=207)return{height:a.readUInt16BE(b+5),width:a.readUInt16BE(b+7)};if(216===c||1===c||c>=208&&c<=215){b+=2;continue}b+=2+a.readUInt16BE(b+2)}return null}(a)??(a.length<10||"GIF"!==a.toString("ascii",0,3)?null:{width:a.readUInt16LE(6),height:a.readUInt16LE(8)})??function(a){if(a.length<30||"RIFF"!==a.toString("ascii",0,4)||"WEBP"!==a.toString("ascii",8,12))return null;let b=a.toString("ascii",12,16);if("VP8X"===b)return a.length<30?null:{width:1+((a[24]|a[25]<<8|a[26]<<16)&0xffffff),height:1+((a[27]|a[28]<<8|a[29]<<16)&0xffffff)};if("VP8 "===b)return a.length<30?null:{width:16383&a.readUInt16LE(26),height:16383&a.readUInt16LE(28)};if("VP8L"===b){if(a.length<25)return null;let b=a.readUInt32LE(21);return{width:(16383&b)+1,height:(b>>14&16383)+1}}return null}(a),e="jpeg"===c?"image/jpeg":c?`image/${c}`:void 0;if(!e||!d)throw new j("Image attachment is undecodable or unsupported");if(b.startsWith("image/")&&b!==e&&("image/jpg"!==b||"image/jpeg"!==e))throw new j("Image attachment type does not match its data");if(Math.max(d.width,d.height)>11264||d.width*d.height>4e7)throw new j("Image attachment dimensions are too large");return{mimeType:e,width:d.width,height:d.height}}(e.bytes,d.mimeType??e.mimeType);b.push({kind:"image",name:d.name,mimeType:a.mimeType,size:e.bytes.length,data:e.bytes,width:a.width,height:a.height});continue}b.push({kind:"file",name:d.name,mimeType:d.mimeType??e.mimeType,size:e.bytes.length,data:e.bytes})}return b}function p(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function q(a){return structuredClone(a)}let r=new Set(["add","append","patch","replace"]),s=new Set(["__proto__","constructor","prototype"]);function t(a){if(Array.isArray(a)){for(let b of a)t(b);return}if(p(a))for(let[b,c]of Object.entries(a)){if(s.has(b))throw Error(`Unsafe object key in ChatGPT Web delta: ${b}`);t(c)}}function u(a){let b=[],c=a.replace(/\r\n?/g,"\n").split("\n"),d="message",e=[],f=!1,g=()=>{if(!f){d="message",e=[];return}let a=e.join("\n"),c="[DONE]"===a?{parsed:!1}:function(a){try{return{parsed:!0,value:JSON.parse(a)}}catch{return{parsed:!1}}}(a);b.push({event:d,data:a,...c.parsed?{json:c.value}:{},done:"[DONE]"===a}),d="message",e=[],f=!1};for(let a of c){if(""===a){g();continue}if(a.startsWith(":"))continue;let b=a.indexOf(":"),c=b>=0?a.slice(0,b):a,h=b>=0?a.slice(b+1):"";h.startsWith(" ")&&(h=h.slice(1)),"event"===c?d=h||"message":"data"===c&&(e.push(h),f=!0)}return g(),b}function v(a,b,c){if(c&&"-"===a)return b;if(!/^(?:0|[1-9]\d*)$/.test(a))throw Error(`Invalid ChatGPT Web array index: ${a}`);let d=Number(a);if(!Number.isSafeInteger(d)||d<0||d>(c?b:b-1))throw Error(`ChatGPT Web array index is out of bounds: ${a}`);return d}function w(a,b){if(t(b),null==a)return q(b);if("string"==typeof a&&"string"==typeof b)return a+b;if(Array.isArray(a)){let c=q(a);return Array.isArray(b)?c.push(...q(b)):c.push(q(b)),c}if(p(a)&&p(b))return{...q(a),...q(b)};throw Error(`Cannot append ChatGPT Web delta values (${typeof a}, ${typeof b})`)}function x(a){if("string"!=typeof a||!r.has(a))throw Error(`Unsupported delta operation: ${String(a)}`);return a}class y{constructor(){this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1}snapshot(){return q(this.document)}ingest(a){let b=u(a),c=!1;for(let a of b){if("delta_encoding"===a.event){if("v1"!==a.json)throw Error(`Unsupported ChatGPT Web delta encoding: ${String(a.json)}`);this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1;continue}"delta"===a.event&&(this.applyDelta(a.json),c=!0),a.done&&(this.streamDone=!0)}return{events:b,changed:c,done:this.streamDone}}applyDelta(a){if(!p(a))throw Error("ChatGPT Web delta payload must be an object");let b=void 0===a.p?this.lastPath:a.p,c=void 0===a.o?this.lastOperation:x(a.o);if("string"!=typeof b||null===c)throw Error("ChatGPT Web delta requires a current or inherited path and operation");this.lastPath=b,this.lastOperation=c,this.applyAt(b,c,a.v)}applyAt(a,b,c){t(c);let d=function(a){if(""===a)return[];if(!a.startsWith("/"))throw Error(`Invalid ChatGPT Web JSON Pointer: ${a}`);return a.slice(1).split("/").map(a=>{let b=a.replace(/~1/g,"/").replace(/~0/g,"~");if(s.has(b))throw Error(`Unsafe JSON Pointer segment: ${b}`);return b})}(a);if(0===d.length)return void this.applyAtRoot(b,c);let e=this.document;for(let b of d.slice(0,-1))if(Array.isArray(e))e=e[v(b,e.length,!1)];else if(p(e)&&Object.hasOwn(e,b))e=e[b];else throw Error(`ChatGPT Web delta path does not exist: ${a}`);let f=d[d.length-1];if(Array.isArray(e))return void this.applyToArray(e,f,b,c);if(!p(e))throw Error(`ChatGPT Web delta path is not mutable: ${a}`);this.applyToObject(e,f,b,c)}applyAtRoot(a,b){if("add"===a||"replace"===a){this.document=q(b);return}if("append"===a){this.document=w(this.document,b);return}if(!Array.isArray(b))throw Error("ChatGPT Web patch value must be an array");for(let a of b){if(!p(a)||"string"!=typeof a.p)throw Error("ChatGPT Web patch entry requires an explicit path and operation");this.applyAt(a.p,x(a.o),a.v)}}applyToArray(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"===c)return void a.splice(v(b,a.length,!0),0,q(d));let e=v(b,a.length,!1);a[e]="append"===c?w(a[e],d):q(d)}applyToObject(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"!==c&&!Object.hasOwn(a,b))throw Error(`ChatGPT Web delta target does not exist: ${b}`);a[b]="append"===c?w(a[b],d):q(d)}}let z="https://chatgpt.com",A=/^\/(?:cdn|unauth-mweb|auth-mweb)\/(?:assets|scripts)\/[A-Za-z0-9._-]+\.js$/,B=/(?:^|\.)oaiusercontent\.com$/i,C="__ninerouterChatGptFirstPartyV1",D="__ninerouterChatGptAbortV1",E="__ninerouterChatGptRequestV1",F=new Map,G=new WeakMap,H=null;function I(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function J(a,b){let c=a.lastIndexOf("export{");if(c<0)return null;let d=a.slice(c+7).match(RegExp(`(?:^|,)${I(b)} as ([A-Za-z_$][\\w$]*)`));return d?.[1]??null}function K(a){let b=new URL(a);if(b.origin!==z||!A.test(b.pathname))throw Error("ChatGPT Web exposed an invalid first-party asset URL");return b.toString()}async function L(a){let b=new AbortController,c=setTimeout(()=>b.abort(),2e4);c.unref?.();try{let c=await fetch(a,{signal:b.signal});if(!c.ok)throw Error("ChatGPT Web first-party asset could not be loaded");let d=Number(c.headers.get("content-length")??"0");if(Number.isFinite(d)&&d>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");let e=new Uint8Array(await c.arrayBuffer());if(e.byteLength>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");return new TextDecoder().decode(e)}finally{clearTimeout(c)}}function M(a,b){return a instanceof Error?a:Error(b)}async function N(a){let b=await a.evaluate(()=>({modulePreloadUrls:Array.from(document.querySelectorAll('link[rel="modulepreload"][href]'),a=>a.href),resourceUrls:performance.getEntriesByType("resource").map(a=>a.name)}));return Array.from(new Set([...b.resourceUrls,...b.modulePreloadUrls])).filter(a=>{try{let b=new URL(a);return b.origin===z&&A.test(b.pathname)}catch{return!1}})}async function O(a,b){let c,d;try{c=K(a)}catch(a){return b.lastError=M(a,"Invalid ChatGPT asset URL"),null}if(b.visited.has(c))return null;b.visited.add(c);let e=F.get(c);if(e)try{return{assetUrl:c,contract:await e}}catch{F.delete(c)}try{d=await L(c)}catch(a){return b.lastError=M(a,"ChatGPT asset discovery failed"),null}try{let a=function(a){let b=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1],c=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),d=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1],e=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1],f=c?.[1],g=c?.[2];if(!b||!f||!g||!d||!e)throw Error("ChatGPT Web first-party module contract was not found");let h={finalizeRequirements:J(a,b),proofManager:J(a,f),turnstileManager:J(a,g),requestClient:J(a,d),buildSentinelHeaders:J(a,e)};if(Object.values(h).some(a=>null===a))throw Error("ChatGPT Web first-party module contract exports were not found");return h}(d);return F.set(c,Promise.resolve(a)),H=c,{assetUrl:c,contract:a}}catch(f){for(let[a,e]of Object.entries(function(a){let b={},c=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1]??a.match(/finalizeChatRequirements\s*:\s*\(\)\s*=>\s*([A-Za-z_$][\w$]*)/)?.[1];c&&(b.finalizeRequirements=J(a,c)??c);let d=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),e=d?.[1]??a.match(/([A-Za-z_$][\w$]*)\.getEnforcementToken\([^)]*forceSync\s*:\s*!0/)?.[1],f=d?.[2];e&&(b.proofManager=J(a,e)??e),f&&(b.turnstileManager=J(a,f)??f);let g=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\.(?:safePost|post)\([`"]\/sentinel\/chat-requirements\/prepare[`"]/)?.[1];g&&(b.requestClient=J(a,g)??g);let h=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\s*=\s*[^;]{0,1200}OpenAI-Sentinel-Chat-Requirements-Token/)?.[1];h&&(b.buildSentinelHeaders=J(a,h)??h);let i=a.match(/(?:^|\}\),)([A-Za-z0-9_$]+):\(function\(e,t,n\)\{n\.d\(t,\{([^}]+)\}\);[\s\S]{0,1800}?async function ([A-Za-z_$][\w$]*)\(e\)\{let t=[A-Za-z_$][\w$]*\(\),n=[A-Za-z_$][\w$]*\(await e\(t\)\)/);if(i){let[,a,c,d]=i,e=c.match(RegExp(`(?:^|,)\\s*([A-Za-z_$][\\w$]*):\\(\\)=>${I(d)}(?:,|$)`))?.[1];e&&(b.resolveIntegrity=e,b.resolveIntegrityModule=a)}return b}(d)))b.partial[a]||(b.partial[a]=e,b.symbolAssetUrls[a]=c);if(b.partial.requestClient&&(b.partial.resolveIntegrity&&b.partial.resolveIntegrityModule||b.partial.finalizeRequirements&&b.partial.proofManager&&b.partial.buildSentinelHeaders)){let a={finalizeRequirements:b.partial.finalizeRequirements??"",proofManager:b.partial.proofManager??"",turnstileManager:b.partial.turnstileManager??b.partial.proofManager??"",requestClient:b.partial.requestClient,buildSentinelHeaders:b.partial.buildSentinelHeaders??"",...b.partial.resolveIntegrity?{resolveIntegrity:b.partial.resolveIntegrity,resolveIntegrityModule:b.partial.resolveIntegrityModule}:{}},d=b.symbolAssetUrls.finalizeRequirements??c;return H=d,{assetUrl:d,contract:a}}let a=Object.keys(b.partial);b.lastError=a.length?Error(`ChatGPT module discovery incomplete: found ${a.join(", ")}`):M(f,"ChatGPT module discovery failed");let e=function(a,b){let c=[],d=new Set,e=/["']\.\/([A-Za-z0-9_-]+\.js)["']/g;for(let f=e.exec(a);f;f=e.exec(a)){let a;try{a=K(new URL(`./${f[1]}`,b).toString())}catch{continue}d.has(a)||(d.add(a),c.push(a))}return c}(d,c);return b.queue.push(...e.filter(a=>!b.visited.has(a))),null}}async function P(a){for(;a.index<a.queue.length&&a.visited.size<512;){let b=a.queue[a.index];a.index+=1;let c=await O(b,a);if(c)return c}return null}async function Q(a){let b={queue:[...H?[H]:[]],visited:new Set,index:0,lastError:null,partial:{},symbolAssetUrls:{}},c=Date.now()+15e3;for(;Date.now()<=c&&b.visited.size<512;){b.queue.push(...await N(a));let d=await P(b);if(d)return d;Date.now()<c&&await new Promise(a=>setTimeout(a,250))}throw Error("ChatGPT Web first-party request module was not loaded")}async function R(a){let b,c,d,e,f,g;if(await a.evaluate(a=>{let b=globalThis;return"object"==typeof b[a]&&null!==b[a]},C))return;let{assetUrl:h,contract:i}=await Q(a),j=(b=JSON.stringify(K(h)),c=JSON.stringify(i),d=JSON.stringify(C),i.resolveIntegrity&&i.resolveIntegrityModule?`import * as upstream from ${b};const names = ${c};const modules = upstream.__webpack_modules__;const factory = modules?.[names.resolveIntegrityModule];if (typeof factory !== "function") throw new Error("ChatGPT integrity module factory is unavailable");const exports = {};const requireShim = id => {if (id === "TI" || id === "DD") return { a: () => crypto.randomUUID() };const real = modules[id];if (typeof real === "function") {const nested = {};real({}, nested, requireShim);return nested;}throw new Error("Unsupported ChatGPT integrity dependency: " + id);};requireShim.d = (target, definitions) => {for (const [name, getter] of Object.entries(definitions)) {Object.defineProperty(target, name, { enumerable: true, get: getter });}};factory({}, exports, requireShim);const resolveIntegrity = exports[names.resolveIntegrity];if (typeof resolveIntegrity !== "function") throw new Error("ChatGPT integrity resolver is unavailable");const sessionPromise = fetch("/api/auth/session", { credentials: "include" }).then(async response => {if (!response.ok) throw new Error("ChatGPT browser session is unavailable");return response.json();});const requestClient = {safePost: async (path, options = {}) => {const headers = new Headers(options.additionalHeaders || {});const session = await sessionPromise;if (typeof session?.accessToken === "string" && session.accessToken) {headers.set("Authorization", "Bearer " + session.accessToken);}headers.set("Accept", "application/json");if (!headers.has("Content-Type")) headers.set("Content-Type", "application/json");const body = typeof options.requestBody === "string" ? options.requestBody : JSON.stringify(options.requestBody ?? {});const response = await fetch("/backend-api" + path, {method: "POST", credentials: "include", headers, body, signal: options.signal});if (options.skipJsonTransform) return response;if (!response.ok) throw new Error("ChatGPT request failed with status " + response.status);return response.json();}};window[${d}] = { requestClient, resolveIntegrity };`:`import * as upstream from ${b};const names = ${c};window[${d}] = {finalizeRequirements: upstream[names.finalizeRequirements],proofManager: upstream[names.proofManager],turnstileManager: upstream[names.turnstileManager],requestClient: upstream[names.requestClient],buildSentinelHeaders: upstream[names.buildSentinelHeaders],resolveIntegrity: names.resolveIntegrity ? upstream[names.resolveIntegrity] : undefined};`),k=(e=[],f=a=>{let b=a.url();(b===h||b.startsWith("blob:"))&&e.push({kind:"requestfailed",detail:`${b} failed: ${a.failure()?.errorText??"unknown error"}`})},g=a=>{e.push({kind:"pageerror",detail:a instanceof Error?a.message:String(a)})},a.on("requestfailed",f),a.on("pageerror",g),{signals:e,dispose:()=>{a.off("requestfailed",f),a.off("pageerror",g)}});try{await a.evaluate(({bridgeKey:a,moduleSource:b})=>new Promise((c,d)=>{let e=globalThis;if("object"==typeof e[a]&&null!==e[a])return void c();let f="",g=new AbortController;document.addEventListener("securitypolicyviolation",a=>{f||(f=`${a.violatedDirective} blocked ${a.blockedURI}`)},{signal:g.signal});let h=URL.createObjectURL(new Blob([b],{type:"text/javascript"})),i=document.createElement("script");i.type="module",i.src=h,i.onload=()=>{URL.revokeObjectURL(h),g.abort(),"object"==typeof e[a]&&null!==e[a]?c():d(Error("ChatGPT Web first-party bridge did not initialize"))},i.onerror=()=>{URL.revokeObjectURL(h),g.abort(),d(Error(f?`csp: ${f}`:"no in-page reason"))},document.head.appendChild(i)}),{bridgeKey:C,moduleSource:j})}catch(c){let a=c instanceof Error?c.message:String(c),b=[...k.signals];throw a.startsWith("csp: ")?b.unshift({kind:"csp",detail:a.slice(5)}):a&&"no in-page reason"!==a&&b.push({kind:"pageerror",detail:a}),Error(function(a){let b="ChatGPT Web first-party bridge module failed to load";if(0===a.length)return`${b} (no CSP violation, failed request or page error was captured)`;let c=a.find(a=>"csp"===a.kind)??a.find(a=>"requestfailed"===a.kind)??a[0];return`${b}: ${c.kind}: ${c.detail}`}(b))}finally{k.dispose()}}async function S(a,b,c){return a.evaluate(async({abortKey:a,attachments:b,bridgeKey:c,requestId:d})=>{let e=globalThis,f=e[c];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a]??={},h=new AbortController;g[d]=h;let i=[];for(let a of b){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files",{requestBody:{file_name:a.name,file_size:a.size,use_case:b,timezone_offset_min:new Date().getTimezoneOffset(),reset_rate_limits:!1,supports_direct_azure_multipart:!0,mime_type:a.mimeType,entry_surface:"chat_composer",selection_method:"file_picker",client_resolved_mime_type:a.mimeType,mime_resolution_source:"filename_extension",store_in_library:!1},signal:h.signal}),d=c;if(c instanceof Response){if(!c.ok){let a=c.status;throw await c.body?.cancel().catch(()=>{}),Error(`ChatGPT Web file registration failed with status ${a}`)}d=await c.json()}if(!d||"object"!=typeof d||"string"!=typeof d.file_id||"string"!=typeof d.upload_url)throw Error("ChatGPT Web file registration returned an invalid response");i.push({fileId:d.file_id,uploadUrl:d.upload_url})}return i},{abortKey:D,attachments:c.map(({kind:a,mimeType:b,name:c,size:d})=>({kind:a,mimeType:b,name:c,size:d})),bridgeKey:C,requestId:b})}async function T(a,b){for(let c of a){let a=await fetch(function(a){let b=new URL(a);if("https:"!==b.protocol||!B.test(b.hostname))throw Error("ChatGPT Web returned an invalid upload destination");return b.toString()}(c.uploadUrl),{method:"PUT",headers:{Accept:"application/json, text/plain, */*","Content-Type":c.attachment.mimeType,"x-ms-blob-type":"BlockBlob","x-ms-version":"2020-04-08"},body:new Uint8Array(c.attachment.data),signal:b??void 0});if(!a.ok)throw Error(`ChatGPT Web attachment upload failed with status ${a.status}`)}}async function U(a,b,c){await a.evaluate(async({abortKey:a,bridgeKey:b,registered:c,requestId:d})=>{let e=globalThis,f=e[b];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a],h=g?.[d];if(!h)throw Error("ChatGPT Web request cancellation scope is unavailable");for(let a of c){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files/process_upload_stream",{requestBody:{file_id:a.fileId,use_case:b,index_for_retrieval:"image"!==a.kind,file_name:a.name,entry_surface:"chat_composer",metadata:{store_in_library:!1,is_temporary_chat:!0,library_eligibility_reason:"eligible",is_project_thread:!1}},signal:h.signal,skipJsonTransform:!0});if(c instanceof Response){let a=c.status,b=c.ok;if(await c.text(),!b)throw Error(`ChatGPT Web file processing failed with status ${a}`)}}},{abortKey:D,bridgeKey:C,registered:c,requestId:b})}async function V(a,b,c,d){let e=function(a){if("free"===a.kind)return{model:"auto",reason:a.thinkEnabled};let b="GPT-5.6 Sol"===a.modelLabel?"gpt-5-6":"gpt-5-5";return 4===a.effortIndex?{model:`${b}-pro`,reason:!1}:{model:b,reason:a.effortIndex>0}}(b.selection);await a.evaluate(({mode:a,prompt:b,registered:c,requestId:d,requestKey:e,pluginHints:f})=>{let g=globalThis,h=c.filter(a=>"image"===a.kind),i=c.map(a=>({id:a.fileId,size:a.size,name:a.name,mime_type:a.mimeType,..."image"===a.kind?{width:a.width,height:a.height}:{non_library_my_files_injest_upload:!0},source:"local",is_big_paste:!1})),j=[...a.reason?["reason"]:[],...Array.isArray(f)?f:[]],k={...j.length?{system_hints:j}:{},...i.length?{attachments:i}:{},serialization_metadata:{custom_symbol_offsets:[]}},l=h.length?{content_type:"multimodal_text",parts:[...h.map(a=>({content_type:"image_asset_pointer",asset_pointer:`sediment://${a.fileId}`,size_bytes:a.size,width:a.width,height:a.height})),b]}:{content_type:"text",parts:[b]};(g[e]??={})[d]={body:{action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:l,metadata:k}],parent_message_id:"client-created-root",model:a.model,timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,history_and_training_disabled:!0,conversation_mode:{kind:"primary_assistant"},system_hints:j,supports_buffering:!0,supported_encodings:["v1"]}}},{mode:e,prompt:b.prompt,registered:d,requestId:c,requestKey:E,pluginHints:Array.isArray(b.pluginHints)?b.pluginHints:[]})}async function W(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b],g=[f?.finalizeRequirements,f?.proofManager?.getEnforcementToken,f?.turnstileManager?.getEnforcementToken,f?.buildSentinelHeaders].every(a=>"function"==typeof a),h="function"==typeof f?.resolveIntegrity&&"function"==typeof f?.requestClient?.safePost;if(!g&&!h)throw Error("ChatGPT Web first-party challenge bridge is incomplete");let i=e[a]?.[c],j=e[d]?.[c];if(!i||!j)throw Error("ChatGPT Web request scope is unavailable");if(h){let a=await f.resolveIntegrity(async a=>f.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a},signal:i.signal}));j.additionalHeaders=a?.headers??{}}else{let a=await f.finalizeRequirements(!1,"none");if(i.signal.aborted)throw new DOMException("Aborted","AbortError");let[b,c]=await Promise.all([f.proofManager.getEnforcementToken(a,{forceSync:!0}),f.turnstileManager.getEnforcementToken(a)]);j.additionalHeaders=f.buildSentinelHeaders(a,c,b,null,null,null)}},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function X(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b]?.requestClient,g=e[a]?.[c],h=e[d]?.[c];if("function"!=typeof f?.safePost||!g||!h)throw Error("ChatGPT Web conversation request scope is unavailable");let i=await f.safePost("/f/conversation",{requestBody:h.body,additionalHeaders:h.additionalHeaders,signal:g.signal,skipJsonTransform:!0});if(!(i instanceof Response))throw Error("ChatGPT Web conversation returned an invalid response");if(!i.ok){let a=i.status,b="";try{let a=await i.json(),c=a.detail&&"object"==typeof a.detail?a.detail:a.error&&"object"==typeof a.error?a.error:a,d=c.code??c.message??c.type;"string"==typeof d&&(b=d.slice(0,160))}catch{await i.body?.cancel().catch(()=>{})}throw Error(`ChatGPT Web conversation failed with status ${a}${b?` (${b})`:""}`)}h.response=i},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function Y(a,b){return a.evaluate(async({requestId:a,requestKey:b,responseLimit:c})=>{let d=globalThis,e=d[b]?.[a],f=e?.response;if(!(f instanceof Response))throw Error("ChatGPT Web conversation response is unavailable");let g=f.body?.getReader();if(!g)throw Error("ChatGPT Web conversation returned an empty stream");let h=new TextDecoder,i=[],j=0;try{for(;;){let{done:a,value:b}=await g.read();if(a)break;if(b){if((j+=b.byteLength)>c)throw await g.cancel().catch(()=>{}),Error("ChatGPT Web conversation response exceeded the size limit");i.push(h.decode(b,{stream:!0}))}}i.push(h.decode())}finally{try{g.releaseLock()}catch{}}return i.join("")},{requestId:b,requestKey:E,responseLimit:0x1000000})}async function Z(a,b,c,d){let e=d.map(({attachment:a,fileId:b})=>({fileId:b,kind:a.kind,mimeType:a.mimeType,name:a.name,size:a.size,width:a.width,height:a.height}));return await U(a,c,e),await V(a,b,c,e),await W(a,c),await X(a,c),Y(a,c)}async function $(a,b){await a.evaluate(({abortKey:a,requestId:b,requestKey:c})=>{let d=globalThis,e=d[a],f=d[c];delete e?.[b],delete f?.[b]},{abortKey:D,requestId:b,requestKey:E}).catch(()=>{})}async function _(a,b){await a.evaluate(({abortKey:a,requestId:b})=>{let c=globalThis[a];c?.[b]?.abort()},{abortKey:D,requestId:b}).catch(()=>{})}async function aa(a,b){let c=G.get(a)??Promise.resolve(),d=()=>{},e=new Promise(a=>{d=a}),f=c.catch(()=>{}).then(()=>e);G.set(a,f),await c.catch(()=>{});try{return await b()}finally{d(),G.get(a)===f&&G.delete(a)}}async function ab(a,b,c={}){let d=c.requestId??crypto.randomUUID();return aa(a,async()=>{if(c.signal?.aborted)throw new DOMException("Aborted","AbortError");let e=()=>{_(a,d)};c.signal?.addEventListener("abort",e,{once:!0});try{await R(a);let e=(await S(a,d,b.attachments)).map((a,c)=>({...a,attachment:b.attachments[c]}));return await T(e,c.signal),await Z(a,b,d,e)}finally{c.signal?.removeEventListener("abort",e),await $(a,d)}})}let ac="https://chatgpt.com";function ad(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ae(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web browser turn requires a non-empty prompt");return a}function af(a){let b;try{b=new URL(a)}catch{throw Error("ChatGPT Web browser session requires a valid URL")}if(b.origin!==ac)throw Error("ChatGPT Web browser session requires the first-party chatgpt.com origin")}function ag(a,b,c){if(!ad(a)||!ad(a.message))return null;let d=a.message,e=ad(d.author)?d.author:null,f=ad(d.content)?d.content:null,g=Array.isArray(f?.parts)?f.parts:[];return e?.role==="assistant"&&f?.content_type==="text"&&g.every(a=>"string"==typeof a)&&"finished_successfully"===d.status&&!0===d.end_turn?{conversationId:b,turnExchangeId:c,text:g.join(""),status:d.status,endTurn:!0}:null}class ah{constructor(a,b={}){this.page=a,this.pageUrl=b.pageUrl??"https://chatgpt.com/?temporary-chat=true",this.selection=b.selection,this.closePageOnCleanup=!0===b.closePageOnCleanup,this.executePageRequest=b.executePageRequest??ab}url(){return this.pageUrl}async start(){af(this.pageUrl);let a=async()=>{this.closePageOnCleanup&&await this.page.close().catch(()=>{})};try{let b=!1;try{b=new URL(this.page.url()).origin===ac}catch{b=!1}return b||await this.page.goto(this.pageUrl,{waitUntil:"domcontentloaded",timeout:3e4}),af(this.page.url()),a}catch(b){throw await a(),b}}async submitPrompt(a){if(!this.selection)throw Error("ChatGPT Web direct request requires a model selection");return af(this.page.url()),this.executePageRequest(this.page,{prompt:ae(a.prompt),attachments:a.attachments,selection:this.selection,pluginHints:a.pluginHints??[]},{signal:a.signal})}}async function ai(a,b){let c;if(b.signal?.aborted)throw Error("ChatGPT Web browser turn aborted");let d=ae(b.prompt);af(a.url());let e=b.timeoutMs??18e4;if(!Number.isFinite(e)||e<=0)throw Error("ChatGPT Web browser turn requires a positive timeout");let f=null,g=new Promise((a,b)=>{c=setTimeout(()=>b(Error("ChatGPT Web browser turn timed out")),e),c.unref?.()});try{let c=(async()=>(f=await a.start(),function(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web direct conversation returned an empty stream");let b=new y,c="",d="",e=null;for(let f of u(a))ad(f.json)&&("string"==typeof f.json.conversation_id&&(c=f.json.conversation_id),"string"==typeof f.json.turn_exchange_id&&(d=f.json.turn_exchange_id)),"delta_encoding"===f.event&&(e=ag(b.snapshot(),c,d)??e,b=new y),b.ingest(function(a){let b="message"===a.event?"":`event: ${a.event}
|
|
272
|
-
`;return`${b}data: ${a.data}
|
|
273
|
-
|
|
274
|
-
`}(f)),e=ag(b.snapshot(),c,d)??e;let f=ag(b.snapshot(),c,d)??e;return f?{...f,conversationId:c,turnExchangeId:d}:function(a,b,c){let d=ag(a,b,c);if(d)return d;if(!ad(a)||!ad(a.message)){let b=ad(a)?Object.keys(a).sort().join(","):"non-object";throw Error(`ChatGPT Web assistant document is incomplete (root=${b})`)}let e=a.message,f=ad(e.author)?e.author:null,g=ad(e.content)?e.content:null,h=Array.isArray(g?.parts)?g.parts:[],i=JSON.stringify({messageKeys:Object.keys(e).sort(),role:f?.role??null,contentType:g?.content_type??null,partCount:h.length,partTypes:h.map(a=>typeof a),status:e.status??null,endTurn:e.end_turn??null});throw Error(`ChatGPT Web assistant document is incomplete (${i})`)}(b.snapshot(),c,d)}(await a.submitPrompt({prompt:d,attachments:b.attachments??[],pluginHints:b.pluginHints??[],signal:b.signal}))))();return c.catch(()=>{}),await Promise.race([c,g])}finally{clearTimeout(c),await f?.()}}var aj=c(14229),ak=c(25360);let al="https://chatgpt.com/?temporary-chat=true",am=["chatgpt.com","openai.com"];function an(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ao(a){let b=a.toLowerCase().replace(/^\./,"");return am.some(a=>b===a||b.endsWith(`.${a}`))}function ap(a){if(!an(a)||!Array.isArray(a.cookies)||!Array.isArray(a.origins))throw Error("ChatGPT Web browser storage state is invalid");for(let b of a.cookies){if(!an(b)||"string"!=typeof b.name||!b.name||"string"!=typeof b.value||"string"!=typeof b.domain||"string"!=typeof b.path||!b.path.startsWith("/")||"number"!=typeof b.expires||!Number.isFinite(b.expires)||"boolean"!=typeof b.httpOnly||"boolean"!=typeof b.secure||!["Strict","Lax","None"].includes(String(b.sameSite)))throw Error("ChatGPT Web browser storage state contains an invalid cookie");if(!ao(b.domain))throw Error("ChatGPT Web browser storage state contains a foreign cookie domain")}for(let b of a.origins)!function(a){let b;if(!an(a)||"string"!=typeof a.origin||!Array.isArray(a.localStorage))throw Error("ChatGPT Web browser storage state contains an invalid origin");try{b=new URL(a.origin)}catch{throw Error("ChatGPT Web browser storage state contains an invalid origin")}if("https:"!==b.protocol||!ao(b.hostname))throw Error("ChatGPT Web browser storage state contains a foreign origin");for(let b of a.localStorage)if(!an(b)||"string"!=typeof b.name||"string"!=typeof b.value)throw Error("ChatGPT Web browser storage state contains invalid local storage")}(b);let b=structuredClone(a);for(let a of b.cookies)a.name.startsWith("__Host-")&&(a.domain=a.domain.replace(/^\./,""),a.path="/",a.secure=!0);return b}function aq(a){if(null==a)return"";if("string"==typeof a)return a;if(!Array.isArray(a))throw Error("ChatGPT Web clean-room adapter supports text content only");let b=[];for(let c of a){if(an(c)&&("text"===c.type||"input_text"===c.type)&&"string"==typeof c.text){b.push(c.text);continue}if(!("string"==typeof c?c.toLowerCase().startsWith("data:image/"):!!k(c)&&["file","image","image_url","input_file","input_image"].includes(l(c.type)?.toLowerCase()??"")))throw Error("ChatGPT Web clean-room adapter received unsupported content")}return b.join("")}function ar(a){return"string"==typeof a.reasoning_effort?a.reasoning_effort.toLowerCase():an(a.reasoning)&&"string"==typeof a.reasoning.effort?a.reasoning.effort.toLowerCase():null}function as(a){if(null===a||"medium"===a)return 1;if(["none","off","minimal","low"].includes(a))return 0;if("high"===a)return 2;if("xhigh"===a||"max"===a)return 3;throw Error(`ChatGPT Web clean-room adapter does not support reasoning effort ${a}`)}function at(a){let b=a.providerSpecificData,c=b?.storageState??a.apiKey;if("string"==typeof c){let a=c.trim();if(a.startsWith("{"))try{return ap(JSON.parse(a))}catch{throw Error("ChatGPT Web browser storage state JSON is invalid")}let b=a.trim().replace(/^Cookie:\s*/i,"");if(!b)throw Error("ChatGPT Web Cookie header is empty");if(!b.includes("="))return ap({cookies:[{name:"__Secure-next-auth.session-token",value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:!0,secure:!0,sameSite:"Lax"}],origins:[]});let d=b.split(/;\s*/).map(a=>{let b=a.indexOf("=");if(b<=0)throw Error("ChatGPT Web Cookie header contains an invalid cookie");return[a.slice(0,b).trim(),a.slice(b+1)]});if(!d.some(([a])=>/^__Secure-next-auth\.session-token(?:\.\d+)?$/.test(a))){if(b.includes(";")||b.includes("="))throw Error("ChatGPT Web Cookie header is missing __Secure-next-auth.session-token");d.splice(0,d.length,["__Secure-next-auth.session-token",b])}return ap({cookies:d.map(([a,b])=>({name:a,value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:a.startsWith("__Secure-")||a.startsWith("__Host-"),secure:!0,sameSite:"Lax"})),origins:[]})}return ap(c)}function au(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function av(a){let b=process.env;return[a,b.CHATGPT_WEB_CHROME_PATH,b.CHROME_PATH,"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser",...b.PROGRAMFILES?[(0,g.join)(b.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...b["PROGRAMFILES(X86)"]?[(0,g.join)(b["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...b.LOCALAPPDATA?[(0,g.join)(b.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,f.existsSync)(a.trim())))}async function aw(a){let b=(0,e.createHash)("sha256").update(a.connectionId).update("\0").update(JSON.stringify(a.storageState)).digest("hex"),c=await (0,h.qG)(`chatgpt-web-cleanroom:${b}`,{cookieDomain:"chatgpt.com",storageState:a.storageState,userAgent:a.userAgent,locale:a.locale,timezone:a.timezone,warmupUrl:al,headless:!0,executablePath:a.chromeExecutablePath}),d=c.warmupPage&&!c.warmupPage.isClosed()?c.warmupPage:await (0,h.we)(c);return c.warmupPage!==d&&(c.warmupPage=d),new ah(d,{pageUrl:al,selection:a.selection,closePageOnCleanup:!1})}function ax(a,b,c,d={}){let f=d.id??`chatcmpl-${(0,e.randomUUID)()}`,g=d.created??Math.floor(Date.now()/1e3);return c?new Response([{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{content:b.text},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}].map(a=>`data: ${JSON.stringify(a)}
|
|
275
|
-
|
|
276
|
-
`).join("")+"data: [DONE]\n\n",{headers:{"Content-Type":"text/event-stream; charset=utf-8"}}):Response.json({id:f,object:"chat.completion",created:g,model:a,choices:[{index:0,message:{role:"assistant",content:b.text},finish_reason:"stop"}]})}async function ay(a){let b=function(a,b){if(!an(b))throw Error("ChatGPT Web clean-room adapter requires an object body");let{prompt:c,hasTools:d,requestedTools:e}=function(a){let b,c;if(!Array.isArray(a.messages)||0===a.messages.length)throw Error("ChatGPT Web clean-room adapter requires messages");let d=a.messages[0],e=1===a.messages.length&&an(d)&&"user"===d.role&&!(Array.isArray(a.tools)&&a.tools.length>0),f=!1;if(e)b=aq(d.content);else{let d=(0,aj.S$)(a,a.messages);f=d.hasTools,c=d.requestedTools,b=(function(a){let b=new Map,c=[],d=[],e=!1;for(let f of a){if(!an(f)||"string"!=typeof f.role)throw Error("ChatGPT Web clean-room adapter received an invalid message");let a=aq(f.content).trim();if("system"===f.role||"developer"===f.role){a&&c.push(a);continue}if("user"===f.role){a&&d.push(`User:
|
|
277
|
-
${a}`);continue}if("assistant"===f.role){let c=[];for(let d of(a&&c.push(a),Array.isArray(f.tool_calls)?f.tool_calls:[])){let a="string"==typeof d?.function?.name?d.function.name:"",f=d?.function?.arguments,g="string"==typeof f&&f?f:JSON.stringify(f??{});d?.id&&b.set(d.id,a),c.push(`<tool>{"name": ${JSON.stringify(a)}, "arguments": ${g}}</tool>`),e=!0}c.length&&d.push(`Assistant:
|
|
278
|
-
${c.join("\n")}`);continue}if("tool"===f.role){let c=f.tool_call_id&&b.get(f.tool_call_id)||f.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),e=!0;continue}throw Error(`ChatGPT Web clean-room adapter does not support the "${f.role}" role`)}return e&&d.push("Continue the task using the tool results above. Do NOT repeat tool calls that already succeeded; perform the next step or give the final answer."),[...c,...d]})(d.effectiveMessages).join("\n\n")}if(!b.trim())throw Error("ChatGPT Web clean-room adapter requires non-empty text");if(new TextEncoder().encode(b).byteLength>4194304)throw Error("ChatGPT Web clean-room adapter prompt is too large");return{prompt:b,hasTools:f,requestedTools:c}}(b),f=function(a){let b=[...function(a){let b=[];for(let[c,d]of(a||[]).entries())if(Array.isArray(d?.content))for(let[a,e]of d.content.entries()){let d;if(!k(e))continue;let f=l(e.type)?.toLowerCase();if("image_url"===f&&k(e.image_url)?d=l(e.image_url.url):"input_image"===f?d=l(e.image_url??e.url):"image"===f&&"string"==typeof e.source&&(d=l(e.source)),!d)continue;let g=l(e.filename??e.name),h=b.length+1,j=n(d);b.push({kind:"image",ref:d,name:m(g,`image-${h}.${function(a){let b=n(a);if(b&&i[b])return i[b];try{let b=/\.([a-zA-Z0-9]{2,5})$/.exec(new URL(a).pathname);if(b&&["gif","jpeg","jpg","png","webp"].includes(b[1].toLowerCase()))return b[1].toLowerCase().replace("jpeg","jpg")}catch{}return"png"}(d)}`),...j?{mimeType:j}:{},messageIndex:c,partIndex:a})}return b}(a),...function(a){let b=[];for(let c of a||[])if(Array.isArray(c?.content))for(let a of c.content){if(!k(a))continue;let c=l(a.type)?.toLowerCase();("file"===c||"input_file"===c)&&b.push(function(a){let b=k(a.file)?a.file:a,c=l(b.file_data??a.file_data),d=l(b.mime_type??a.mime_type)?.toLowerCase(),e=c;if(!e)throw new j("ChatGPT Web file input requires base64 file_data");return e.toLowerCase().startsWith("data:")||(e=`data:${d??"application/octet-stream"};base64,${e}`),{kind:"file",ref:e,name:m(l(b.filename??a.filename),"attachment.bin"),...d?{mimeType:d}:{}}}(a))}return b}(a)];if(b.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");return b}(b.messages);return{prompt:c,selection:function(a,b){let c=a.trim().toLowerCase().replace(/^chatgpt-web\//,"").replace(/^cgpt-web\//,"").replace(/\./g,"-");if("gpt-5-6-luna-free"===c)return{kind:"free",thinkEnabled:!1};if("gpt-5-6-luna-free-thinking"===c)return{kind:"free",thinkEnabled:!0};if("gpt-5-6-pro"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:4};if("gpt-5-6-instant"===c||"gpt-5-6"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0};if(["gpt-5-6-thinking","gpt-5-6-sol"].includes(c))return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:as(ar(b))};if("gpt-5-5-pro"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:4};if("gpt-5-5-instant"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:0};if(["gpt-5-5","gpt-5-5-thinking"].includes(c))return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:as(ar(b))};throw Error(`ChatGPT Web clean-room adapter received an unsupported model: ${a}`)}(a,b),attachments:f,hasTools:d,requestedTools:e}}(a.model,a.body),c=await o(b.attachments),d=at(a.credentials),f=au(a.credentials.connectionId);if(!f)throw Error("ChatGPT Web clean-room adapter requires a connection ID");let g=a.credentials.providerSpecificData,h=await aw({connectionId:f,storageState:d,selection:b.selection,userAgent:au(g?.customUserAgent),locale:au(g?.locale),timezone:au(g?.timezone),chromeExecutablePath:av(au(g?.chromeExecutablePath))}),p=await ai(h,{prompt:b.prompt,attachments:c,pluginHints:function(a){if(null==a)return[];let b=Array.isArray(a)?a:"string"==typeof a?a.split(/[,\n]/):[],c=new Set,d=[];for(let a of b){let b="string"==typeof a?a.trim():"";!/^plugin:[A-Za-z0-9_-]+$/.test(b)||c.has(b)||(c.add(b),d.push(b))}return d}(g?.pluginHints),signal:a.signal});if(!b.hasTools)return ax(a.model,p,a.stream);let q=ax(a.model,p,!1);return(0,ak.N)(q,b.requestedTools,a.stream,{idSeed:"cgpt",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:a.model})}let az=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aA=a=>new Promise(b=>setTimeout(b,a));class aB extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}async function aC(a){return a.evaluate(async a=>{let b=globalThis[a],c=[b?.finalizeRequirements,b?.proofManager?.getEnforcementToken,b?.turnstileManager?.getEnforcementToken,b?.buildSentinelHeaders].every(a=>"function"==typeof a),d="function"==typeof b?.resolveIntegrity&&"function"==typeof b?.requestClient?.safePost;if(!c&&!d)throw Error("ChatGPT Web first-party challenge bridge is incomplete");if(d){let a=await b.resolveIntegrity(async a=>b.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a}}));return{...a?.headers??{}}}let e=await b.finalizeRequirements(!1,"none"),[f,g]=await Promise.all([b.proofManager.getEnforcementToken(e,{forceSync:!0}),b.turnstileManager.getEnforcementToken(e)]);return b.buildSentinelHeaders(e,g,f,null,null,null)},C)}async function aD(a){return a.evaluate(async()=>{let a=await fetch("/api/auth/session",{credentials:"include"});if(!a.ok)throw Error("ChatGPT Web browser session is unavailable");let b=await a.json();if("string"!=typeof b?.accessToken||!b.accessToken)throw Error("ChatGPT Web browser session has no access token");return b.accessToken})}async function aE(a,b,{sizeHint:c,signal:d}){let e=await aC(a),f=await aD(a);return a.evaluate(async({accessToken:a,headers:b,prompt:c,sizeHint:d,maxBytes:e})=>{let f={...b,Authorization:`Bearer ${a}`},g=async(a,b)=>{let c=a.body?.getReader();if(!c)return"";let d=new TextDecoder,e=[],f=0;try{for(;;){let{done:a,value:g}=await c.read();if(a)break;if(g){if((f+=g.byteLength)>b)throw await c.cancel().catch(()=>{}),Error(`response exceeded ${b} bytes`);e.push(d.decode(g,{stream:!0}))}}e.push(d.decode())}finally{try{c.releaseLock()}catch{}}return e.join("")},h=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},i=await h("/backend-api/f/conversation/prepare",{method:"POST",credentials:"include",headers:{...f,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"success",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:crypto.randomUUID(),author:{role:"user"},content:{content_type:"text",parts:[c]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4);if(!i.ok)throw Error(`prepare failed with status ${i.status}`);let j=(await i.json()).conduit_token||"",k=d?`${c} (aspect ratio ${d})`:c,l=new AbortController,m=setTimeout(()=>l.abort(),9e4),n="";try{let a=await fetch("/backend-api/f/conversation",{method:"POST",credentials:"include",signal:l.signal,headers:{...f,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"X-Oai-Turn-Trace-Id":crypto.randomUUID()},body:JSON.stringify({action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"sent",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})});if(!a.ok){let b=a.status;throw await a.body?.cancel().catch(()=>{}),Error(`conversation failed with status ${b}`)}try{n=await g(a,e)}catch(a){if(!l.signal.aborted&&!/exceeded/.test(String(a?.message||"")))throw a}}finally{clearTimeout(m),l.abort()}let o=(n.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",p=[],q=[],r=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let a of n.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))r(p,a[1]);for(let a of n.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))r(p,a[0]);for(let a of n.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))r(q,a[1]);return{conversationId:o,fileIds:p,sedimentIds:q}},{accessToken:f,headers:e,prompt:b,sizeHint:c,maxBytes:0x1000000})}async function aF(a,b,c,d,{signal:e,log:f}){let g=Date.now(),h=[...d.fileIds],i=[...d.sedimentIds];for(await aA(8e3);;){if(e?.aborted)throw Error("Request aborted");if(Date.now()-g>24e4)throw new aB("ChatGPT image generation timed out",504);let d=await a.evaluate(async({accessToken:a,conversationId:b,maxBytes:c})=>{let d,e=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},f=await e(`/backend-api/conversation/${b}`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},3e4);if(!f.ok)return{status:f.status};if(Number(f.headers.get("content-length")??"0")>c)return{status:413};let g=await f.text();if(g.length>c)return{status:413};try{d=JSON.parse(g)}catch{return{status:502}}let h=[],i=[],j=(a,b)=>{b&&!a.includes(b)&&a.push(b)},k=a=>{if(Array.isArray(a))return a.some(k);if(a&&"object"==typeof a){if("image_asset_pointer"===String(a.content_type||""))return!0;let b=String(a.asset_pointer||"");return!!(b.startsWith("file-service://")||b.startsWith("sediment://"))||Object.values(a).some(k)}return!1},l=a=>{if("string"==typeof a){for(let b of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))j(h,b[1]);for(let b of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))j(h,b[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))j(i,b[1]);return}Array.isArray(a)?a.forEach(l):a&&"object"==typeof a&&Object.values(a).forEach(l)},m="";for(let a of Object.values(d.mapping||{})){let b=(a||{}).message||{},c=String(b.author?.role||"").toLowerCase();if("tool"!==c&&"assistant"!==c)continue;let d=b.metadata||{},e="image_gen"===d.async_task_type,f=k(b.content)||k(d);if(("assistant"!==c||e||f)&&(l({content:b.content,metadata:d}),"assistant"===c&&d.is_error&&b.content?.content_type==="text")){let a=(Array.isArray(b.content.parts)?b.content.parts:[]).filter(a=>"string"==typeof a).join("");a&&(m=a.slice(0,300))}}return{status:200,fileIds:h,sedimentIds:i,errorText:m}},{accessToken:b,conversationId:c,maxBytes:0x2000000});if(200!==d.status)f?.debug?.("CGPT-WEB-IMG",`conversation poll status ${d.status}, retrying`);else{for(let a of d.fileIds)h.includes(a)||h.push(a);for(let a of d.sedimentIds)i.includes(a)||i.push(a);if(h.length>0||i.length>0)return{fileIds:h.filter(a=>"file_upload"!==a),sedimentIds:i};if(d.errorText&&az.test(d.errorText))throw new aB(`ChatGPT refused the image request: ${d.errorText}`,400)}await aA(5e3)}}async function aG(a,b,c,{fileIds:d,sedimentIds:e}){for(let c of d){let d=await a.evaluate(async({accessToken:a,fileId:b})=>{let c=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},d=await c(`/backend-api/files/${b}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!d.ok)return{status:d.status};let e=await d.json(),f=e.download_url||e.url||"";if(!f)return{status:404};let g=await c(f,{},9e4);if(!g.ok)return{status:g.status};let h=await g.blob(),i=new Uint8Array(await h.arrayBuffer()),j="";for(let a=0;a<i.length;a+=32768)j+=String.fromCharCode(...i.subarray(a,a+32768));return{status:200,mime:h.type||"image/png",b64:btoa(j)}},{accessToken:b,fileId:c});if(200===d.status&&d.b64)return{b64:d.b64,mime:d.mime}}for(let d of e){let e=await a.evaluate(async({accessToken:a,conversationId:b,sedimentId:c})=>{let d=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},e=await d(`/backend-api/conversation/${b}/attachment/${c}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!e.ok)return{status:e.status};let f=await e.json(),g=f.download_url||f.url||"";if(!g)return{status:404};let h=await d(g,{},9e4);if(!h.ok)return{status:h.status};let i=await h.blob(),j=new Uint8Array(await i.arrayBuffer()),k="";for(let a=0;a<j.length;a+=32768)k+=String.fromCharCode(...j.subarray(a,a+32768));return{status:200,mime:i.type||"image/png",b64:btoa(k)}},{accessToken:b,conversationId:c,sedimentId:d});if(200===e.status&&e.b64)return{b64:e.b64,mime:e.mime}}throw new aB("ChatGPT image generation produced no downloadable file",502)}async function aH(a,{prompt:b,sizeHint:c,signal:d,log:e}){if(await R(a),d?.aborted)throw Error("Request aborted");let f=await aE(a,b,{sizeHint:c,signal:d});if(!f.conversationId&&0===f.fileIds.length&&0===f.sedimentIds.length)throw new aB("ChatGPT image conversation produced no conversation id",502);let g=await aD(a),h=f.fileIds.length>0||f.sedimentIds.length>0?f:await aF(a,g,f.conversationId,f,{signal:d,log:e});return aG(a,g,f.conversationId,h)}let aI="OpenAI-Sentinel-Chat-Requirements-Prepare-Token",aJ=a=>Buffer.from(JSON.stringify(a),"utf8").toString("base64"),aK=["https://chatgpt.com/cdn/assets/685809.dec86dcdc1.js","https://chatgpt.com/cdn/assets/399565.a1117ca8b4.js"],aL=["cookie","domain","readyState","title","URL","charset","location"],aM=["caches","crypto","fetch","indexedDB","localStorage","origin"],aN=["userAgent","language","hardwareConcurrency"],aO=a=>a[Math.floor(Math.random()*a.length)];function aP(a){let b=aO(aN);return[2080,new Date().toString(),null,0,a,aO(aK),null,"en-US","en-US,en",0,`${b}−${a}`,aO(aL),aO(aM),0,crypto.randomUUID(),"",8,0,0,0,0,0,0,0,0]}async function aQ(a,{headers:b,body:c,signal:d}){let e=await fetch(a,{method:"POST",headers:{...b,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c??{}),signal:d}),f=await e.text().catch(()=>"");if(!e.ok)throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} failed (HTTP ${e.status}) ${f.slice(0,200)}`),{status:e.status});try{return JSON.parse(f)}catch{throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} returned invalid JSON`),{status:502})}}async function aR({baseUrl:a,accessToken:b,userAgent:c,signal:d}){let e,f={Authorization:`Bearer ${b}`,"User-Agent":c},g=await aQ(`${a}/backend-api/sentinel/chat-requirements/prepare`,{headers:{...f,[aI]:((e=aP(c))[3]=1,e[9]=0,`gAAAAAC${aJ(e)}`)},signal:d});if(!g?.prepare_token)throw Object.assign(Error("ChatGPT sentinel prepare returned no prepare_token"),{status:502});let h=await aQ(`${a}/backend-api/sentinel/chat-requirements`,{headers:{...f,[aI]:g.prepare_token},signal:d}),i={};return h?.token&&(i["OpenAI-Sentinel-Chat-Requirements-Token"]=h.token),h?.proofofwork?.required&&(i["OpenAI-Sentinel-Proof-Token"]=function({seed:a,difficulty:b,userAgent:c}){if(!a||!b)throw Error("ChatGPT sentinel asked for proof of work without seed/difficulty");let d=performance.now(),e=aP(c);for(let c=0;c<5e5;c++){e[3]=c,e[9]=Math.round(performance.now()-d);let f=aJ(e);if((function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b^=b>>>16,b=Math.imul(b,0x85ebca6b)>>>0,b^=b>>>13,b=Math.imul(b,0xc2b2ae35)>>>0,((b^=b>>>16)>>>0).toString(16).padStart(8,"0")})(`${a}${f}`).slice(0,b.length)<=b)return`gAAAAAB${f}~S`}throw Error("ChatGPT sentinel proof of work exhausted its iteration budget")}({seed:h.proofofwork.seed,difficulty:h.proofofwork.difficulty,userAgent:c})),i}let aS=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aT=a=>new Promise(b=>setTimeout(b,a));class aU extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}function aV(a,b,c,d){let e=new AbortController,f=setTimeout(()=>e.abort(),c),g=()=>e.abort();return d?.addEventListener("abort",g,{once:!0}),fetch(a,{...b,signal:e.signal}).finally(()=>{clearTimeout(f),d?.removeEventListener("abort",g)})}function aW(a){return(Array.isArray(a?.cookies)?a.cookies:[]).filter(a=>a?.name&&"string"==typeof a.value).map(a=>`${a.name}=${a.value}`).join("; ")}async function aX(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}let aY=(a,b,c)=>{let d=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let c of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))d(b,c[1]);for(let c of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))d(b,c[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))d(c,b[1])};function aZ({accessToken:a,userAgent:b,cookie:c,sentinel:d}){return{...d,Authorization:`Bearer ${a}`,"User-Agent":b,...c?{Cookie:c}:{}}}async function a$(a,b,c,d){let{baseUrl:f}=a,g=aZ(a),h=await aV(`${f}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[b]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,d);if(!h.ok)throw new aU(`ChatGPT prepare failed (HTTP ${h.status})`,h.status||502);let i=await h.json().catch(()=>null),j=i?.conduit_token||"",k=c?`${b} (aspect ratio ${c})`:b,l=await aV(`${f}/backend-api/f/conversation`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"X-Oai-Turn-Trace-Id":(0,e.randomUUID)()},body:JSON.stringify({action:"next",messages:[{id:(0,e.randomUUID)(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"sent",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})},105e3,d);if(!l.ok)throw new aU(`ChatGPT conversation failed (HTTP ${l.status})`,l.status||502);let m=await aX(l,0x1000000,9e4),n=(m.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",o=[],p=[];return aY(m,o,p),{conversationId:n,fileIds:o,sedimentIds:p}}async function a_(a,b,c,{signal:d,log:e}){let f=Date.now(),g=[...c.fileIds],h=[...c.sedimentIds],i={...aZ(a),Accept:"application/json"};for(await aT(5e3);Date.now()-f<=24e4;){if(d?.aborted)throw Error("Request aborted");let c=await aV(`${a.baseUrl}/backend-api/conversation/${b}`,{headers:i},3e4,d).catch(()=>null);if(!c?.ok){e?.debug?.("CGPT-WEB-IMG",`conversation poll status ${c?.status??"network"}, retrying`),await aT(5e3);continue}if(Number(c.headers.get("content-length")??"0")>0x2000000)throw new aU("ChatGPT conversation document is unexpectedly large",502);let f=await c.text().catch(()=>"");if(f.length>0x2000000)throw new aU("ChatGPT conversation document is unexpectedly large",502);if(aY(f,g,h),g.length>0||h.length>0)return{fileIds:g.filter(a=>"file_upload"!==a),sedimentIds:h};if(aS.test(f)&&/"is_error"\s*:\s*true/.test(f))throw new aU("ChatGPT refused the image request (content policy)",400);if(/ChatGPTAgentToolRateLimitException|Free plan limit for image generation/i.test(f))throw new aU("ChatGPT account has hit its image generation quota — add another account or wait for the reset",429);await aT(5e3)}throw new aU("ChatGPT image generation timed out",504)}async function a0(a,b){let c=await aV(a,{},9e4,b);if(!c.ok)return null;let d=Buffer.from(await c.arrayBuffer());return d.length?{b64:d.toString("base64"),mime:(c.headers.get("content-type")||"image/png").split(";")[0]}:null}async function a1(a,b,{fileIds:c,sedimentIds:d},e){let f={...aZ(a),Accept:"application/json"};for(let b of c){let c=await aV(`${a.baseUrl}/backend-api/files/${b}/download`,{headers:f},6e4,e).catch(()=>null);if(!c?.ok)continue;let d=await c.json().catch(()=>null),g=d?.download_url||d?.url||"";if(!g)continue;let h=await a0(g,e);if(h)return h}for(let c of d){let d=await aV(`${a.baseUrl}/backend-api/conversation/${b}/attachment/${c}/download`,{headers:f},6e4,e).catch(()=>null);if(!d?.ok)continue;let g=await d.json().catch(()=>null),h=g?.download_url||g?.url||"";if(!h)continue;let i=await a0(h,e);if(i)return i}throw new aU("ChatGPT image generation produced no downloadable file",502)}async function a2({baseUrl:a,accessToken:b,cookie:c,userAgent:d,prompt:e,sizeHint:f,signal:g,log:h}){if(!b)throw new aU("ChatGPT session has no access token",401);if(g?.aborted)throw Error("Request aborted");let i=await aR({baseUrl:a,accessToken:b,userAgent:d,signal:g}),j={baseUrl:a,accessToken:b,cookie:c,userAgent:d,sentinel:i},k=await a$(j,e,f,g);if(!k.conversationId&&0===k.fileIds.length&&0===k.sedimentIds.length)throw new aU("ChatGPT image conversation produced no conversation id",502);let l=k.fileIds.length>0||k.sedimentIds.length>0?k:await a_(j,k.conversationId,k,{signal:g,log:h});return a1(j,k.conversationId,l,g)}let a3=a=>new Promise(b=>setTimeout(b,a));function a4(a,b,c,d){let e=new AbortController,f=setTimeout(()=>e.abort(),c),g=()=>e.abort();return d?.addEventListener("abort",g,{once:!0}),fetch(a,{...b,signal:e.signal}).finally(()=>{clearTimeout(f),d?.removeEventListener("abort",g)})}async function a5(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}async function a6({baseUrl:a,accessToken:b,cookie:c,userAgent:d,body:f,signal:g,log:h}){var i,j;if(!b)throw Object.assign(Error("ChatGPT session has no access token"),{status:401});if(g?.aborted)throw Error("Request aborted");let k=Array.isArray(f?.messages)?f.messages:[];if(0===k.length)throw Object.assign(Error("ChatGPT Web requires messages"),{status:400});let l=(0,aj.S$)(f,k),m=(i=function(a){let b=[],c=[];for(let d of a){let a=String(d?.role||"user"),e=[];if("string"==typeof d?.content)e.push(d.content);else if(Array.isArray(d?.content))for(let a of d.content)"string"==typeof a?e.push(a):"string"==typeof a?.text&&e.push(a.text);if(Array.isArray(d?.tool_calls))for(let a of d.tool_calls){let b=a?.function?.name;if(!b)continue;let c=a.function.arguments;try{c="string"==typeof c?JSON.parse(c):c}catch{}e.push(`<tool>${JSON.stringify({name:b,arguments:c})}</tool>`)}let f=e.join("\n").trim();f&&("system"===a||"developer"===a?b.push(f):"tool"===a?c.push(`Tool result${d?.tool_call_id?` (${d.tool_call_id})`:""}: ${f}`):"assistant"===a?c.push(`Assistant: ${f}`):c.push(f))}return[...b,...c].join("\n\n")}(l.effectiveMessages),j=l.hasTools,j?k.some(a=>"tool"===String(a?.role||"").toLowerCase())?i:`Use the client tools provided below. Do not answer with prose when a tool is needed.
|
|
279
|
-
|
|
280
|
-
${i}
|
|
281
|
-
|
|
282
|
-
Respond with ONLY <tool> blocks, one per line. No prose, no code fences, no explanation before or after the blocks.`:i);if(!m.trim())throw Object.assign(Error("ChatGPT Web requires non-empty text"),{status:400});let n={...await aR({baseUrl:a,accessToken:b,userAgent:d,signal:g}),Authorization:`Bearer ${b}`,"User-Agent":d,...c?{Cookie:c}:{},"Content-Type":"application/json"},o=await a4(`${a}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...n,Accept:"application/json"},body:JSON.stringify({action:"next",parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[m]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,g);if(!o.ok){let a=(await o.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`ChatGPT prepare failed (HTTP ${o.status}) ${a}`),{status:o.status||502})}let p=await o.json().catch(()=>null),q=await a4(`${a}/backend-api/f/conversation`,{method:"POST",headers:{...n,Accept:"text/event-stream","X-Conduit-Token":p?.conduit_token||"","X-Oai-Turn-Trace-Id":(0,e.randomUUID)()},body:JSON.stringify({action:"next",messages:[{id:(0,e.randomUUID)(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[m]},metadata:{serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"sent",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"},force_parallel_switch:"auto"})},135e3,g);if(!q.ok)throw Object.assign(Error(`ChatGPT conversation failed (HTTP ${q.status})`),{status:q.status||502});let r=((await a5(q,0x1000000,12e4)).match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"";if(!r)throw Object.assign(Error("ChatGPT conversation produced no conversation id"),{status:502});let s=Date.now();for(;Date.now()-s<=18e4;){if(g?.aborted)throw Error("Request aborted");let e=await a4(`${a}/backend-api/conversation/${r}`,{headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json",...c?{Cookie:c}:{}}},3e4,g).catch(()=>null);if(e?.ok){let a=await e.json().catch(()=>null),b=a?function(a){let b=a?.mapping||{},c="",d=!1,e="";for(let a of Object.values(b)){let b=a?.message;if(b&&"assistant"===String(b.author?.role||"").toLowerCase()&&(b.metadata?.is_complete===!0&&(d=!0),b.content?.content_type==="text"&&(c+=(b.content.parts||[]).filter(a=>"string"==typeof a).join("")),b.metadata?.is_error)){let a=(b.content?.parts||[]).filter(a=>"string"==typeof a).join("");a&&(e=a)}}return d?{text:c,errorText:e}:null}(a):null;if(b){if(!b.text.trim()&&b.errorText)throw Object.assign(Error(`ChatGPT refused the turn: ${b.errorText.slice(0,200)}`),{status:400});return h&&!l.hasTools&&h.debug?.("CGPT-WEB",`chat turn complete (${b.text.length} chars)`),{text:b.text,hasTools:l.hasTools,requestedTools:l.requestedTools}}}else h&&h.debug?.("CGPT-WEB",`conversation poll status ${e?.status??"network"}, retrying`);await a3(1500)}throw Object.assign(Error("ChatGPT chat turn timed out"),{status:504})}var a7=c(4052);let a8="https://chatgpt.com",a9="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36";async function ba({storageState:a,userAgent:b,signal:c}){let d=aW(a),e=await fetch(`${a8}/api/auth/session`,{headers:{"User-Agent":b,Accept:"application/json",...d?{Cookie:d}:{}},signal:c});if(!e.ok)throw Object.assign(Error(`ChatGPT session unavailable (HTTP ${e.status})`),{status:403===e.status?401:e.status||502});let f=await e.json().catch(()=>null);if("string"!=typeof f?.accessToken||!f.accessToken)throw Object.assign(Error("ChatGPT session is not signed in"),{status:401});return f.accessToken}function bb(a,b){return new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}})}class bc extends d.H{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:a8})}async testConnection(a){try{let b=a?.providerSpecificData?.storageState??a?.apiKey;if("string"!=typeof b||!b.trim())return!1;if(b.trim().startsWith("{"))return JSON.parse(b),!0;return/__Secure-next-auth\.session-token|^[\w-]+\.[\w-]+\.[\w-]+$/.test(b.trim())}catch{return!1}}async execute(a){try{let b=await this.#a(a);if(b)return b;return{response:await ay(a),url:a8,headers:{},transformedBody:a.body}}catch(c){let b=c instanceof Error?c.message:"ChatGPT Web browser execution failed";if((0,a7.BE)(b))return{response:bb(503,"ChatGPT Web requires a Chrome/Chromium browser (headed). Install Google Chrome on the host (or set CHATGPT_WEB_CHROME_PATH), and run `npx playwright-core install chromium`."),url:a8,headers:{},transformedBody:a.body};return{response:bb(/storage state|credentials|connection ID/i.test(b)?401:/(?:\bHTTP[_\s-]*429\b|\bstatus\s+429\b|\brate[-_\s]?limit(?:ed)?\b|\bquota\s+(?:exhausted|reached|exceeded)\b|\b(?:image(?:\s+upload)?|upload|usage)\s+limit\s+(?:reached|exceeded)\b|\breached\s+(?:your\s+)?(?:image(?:\s+upload)?|upload|usage)\s+limit\b)/i.test(b)?429:/request|messages|prompt|model|tools|text content|reasoning effort/i.test(b)?400:502,b),url:a8,headers:{},transformedBody:a.body}}}async #a(a){let b,c,{credentials:d,body:f,model:g,stream:h}=a;try{b=at(d)}catch{return null}let i=d?.providerSpecificData,j="string"==typeof i?.customUserAgent&&i.customUserAgent.trim()?i.customUserAgent.trim():a9;try{let d=await ba({storageState:b,userAgent:j,signal:a.signal});c=await a6({baseUrl:a8,accessToken:d,cookie:aW(b),userAgent:j,body:f,signal:a.signal,log:a.log})}catch(a){if(a?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(a?.message||""))return null;throw a}if(!c.hasTools)return{response:ax(g,{text:c.text},h),url:a8,headers:{},transformedBody:f};let k=ax(g,{text:c.text},!1);return{response:await (0,ak.N)(k,c.requestedTools,h,{idSeed:"call",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:g}),url:a8,headers:{},transformedBody:f}}async generateMedia({prompt:a,n:b=1,size:c,credentials:d,signal:e,log:f}){if(!a)throw Error("prompt is required for image generation");let g=at(d),h=d.providerSpecificData,i="string"==typeof h?.customUserAgent&&h.customUserAgent.trim()?h.customUserAgent.trim():a9,j=[];for(let h=0;h<Math.max(1,b);h++)j.push(await this.#b({prompt:a,size:c,storageState:g,userAgent:i,signal:e,log:f,credentials:d}));return j}async #b({prompt:a,size:b,storageState:c,userAgent:d,signal:e,log:f,credentials:g}){try{let g=await ba({storageState:c,userAgent:d,signal:e});return await a2({baseUrl:a8,accessToken:g,cookie:aW(c),userAgent:d,prompt:a,sizeHint:b,signal:e,log:f})}catch(a){if(a?.code!=="TURNSTILE_REQUIRED"&&!/Turnstile/i.test(a?.message||""))throw a;f?.warn?.("CGPT-WEB","Sentinel demanded Turnstile — falling back to the browser path")}let h="string"==typeof g?.connectionId&&g.connectionId.trim()?g.connectionId.trim():null;if(!h)throw Error("ChatGPT Web image generation requires a connection ID");let i=g.providerSpecificData,j=await aw({connectionId:h,storageState:c,selection:{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0},userAgent:d,locale:"string"==typeof i?.locale?i.locale:void 0,timezone:"string"==typeof i?.timezone?i.timezone:void 0,chromeExecutablePath:av(i?.chromeExecutablePath)});try{return await j.start(),await aH(j.page,{prompt:a,sizeHint:b,signal:e,log:f})}finally{await j.page.close().catch(()=>{})}}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>n});var d=c(74957),e=c(12643),f=c(57247),g=c(8521),h=c(39609),i=c(49426),j=c(41004);let k=new Map;function l(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function m(a){if(k.has(a))return k.get(a);let b=await (0,i.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&k.set(a,e),e}class n extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,g.Sc)(d?.apiKey),h=l(d?.apiKey),i=!!e||!!h||!!d?.accessToken,j=i?null:d?.apiKey,k=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||(0,f.V2)(this.provider,a)?.defaultLocation||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=k?`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),j&&(o+=b?`&key=${j}`:`?key=${j}`),o}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,g.Sc)(a?.apiKey);if(!c)return null;let d=await (0,g.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:k=null}){let n,o=(0,g.Sc)(d?.apiKey),p=l(d?.apiKey);if(o){let a=await (0,g.pb)(o,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,g.I9)(p.refresh_token,p.client_id,p.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await m(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,i.n)(e,this.config?.timeoutMs||j.Z1);try{n=await (0,h.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},k)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},74161:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(96179),e=c(94526);class f extends d.L{constructor(){super("zcode")}transformRequest(a,b,c,d){return function(a){var b;let c;if(!a||"object"!=typeof a||Array.isArray(a)||!((c=(Array.isArray(b=a.system)?b:"string"==typeof b?[b]:[]).map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"")).length>3)&&e.L.every(a=>c.some(b=>b===a.text)))return a;let d=function(a){if("string"==typeof a)return e.L.some(b=>b.text===a)?null:{text:a,cacheControl:null};if(!Array.isArray(a))return null;let b=null,c=[];for(let d of a){if("string"==typeof d){d&&!e.L.some(a=>a.text===d)&&c.push(d);continue}"string"==typeof d?.text&&d.text&&!e.L.some(a=>a.text===d.text)&&c.push(d.text),d?.cache_control&&(b=d.cache_control)}return c.length?{text:c.join("\n\n"),cacheControl:b}:null}(a.system);if(d)return{...a,system:[...e.L,{type:"text",text:d.text,...d.cacheControl?{cache_control:{...d.cacheControl}}:{}}]};let f=null;if(Array.isArray(a.system))for(let b of a.system)b?.cache_control&&(f=b.cache_control);if(!f)return{...a,system:[...e.L]};let g=e.L.map((a,b)=>b===e.L.length-1?{...a,cache_control:{...f}}:a);return{...a,system:g}}(super.transformRequest(a,b,c,d))}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(12643),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
|
|
271
|
+
${a}`})),x(),w({},"stop"),b.enqueue(d.encode(e.$U)),b.close()},r=!1,{finishOnce:()=>{if(!r){r=!0;try{q()}catch{}}},hasFinished:()=>r}),{scheduleFinishAfterDrain:A,clearFinishedDrain:B,isDrainPending:C}=p=function(a,b=750){let c=null,d=()=>{c&&(clearTimeout(c),c=null)};return{scheduleFinishAfterDrain:()=>{d(),c=setTimeout(()=>{c=null,a()},b)},clearFinishedDrain:d,isDrainPending:()=>null!==c}}(y),D=a=>{let b=X(a,h);if(!b)return;x(),v=!0;let c=l;!c&&m?c="thinking":!c&&W(h)&&(c="content"),"thinking"===c?w({reasoning_content:b}):w({content:b})},E=(a,b=!1)=>{let c;if(b&&("THINK"===(c=String(a?.type||"").toUpperCase())?l="thinking":("ANSWER"===c||"RESPONSE"===c)&&(l="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?l="thinking":("ANSWER"===b||"RESPONSE"===b)&&(l="content")}D(a.content)}};try{for(;;){let{done:a,value:b}=await s.read();if(a)break;let c=(t+=g.decode(b,{stream:!0})).split("\n");for(let a of(t=c.pop()||"",c)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void y();try{b=JSON.parse(c)}catch{continue}let d=b?.p,e=b?.o,f=b?.v;if(f&&"object"==typeof f&&f.response){!0===f.response.thinking_enabled?l="thinking":!1===f.response.thinking_enabled&&(l="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)E(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)E(a,!0);else f&&"object"==typeof f&&E(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(l="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)n.length=0,n.push(...f);else for(let a of f){let b=String(a?.p||"").match(/^(\d+)\/cite_index$/);if(b){let c=parseInt(b[1],10);n[c]&&(n[c].cite_index=a.v)}}continue}if("string"==typeof f)D(f);else if(Array.isArray(f)&&"response"===d){for(let a of f)if(Array.isArray(a?.v)){let b=a.v.map(a=>a?.content||"").join("");b&&D(b)}}if("response/status"===d&&"FINISHED"===f){u=!0,A();continue}C()&&A()}}}}catch(a){B(),z()||b.error(a);return}if(!u&&!v){B(),b.error(Error("DeepSeek web session ended before completion (no FINISHED signal received) — likely a dropped cookie session or network interruption upstream. Retry the request."));return}u||c?.warn?.("DEEPSEEK-WEB","upstream closed without FINISHED after partial content; completing with what arrived"),y()},cancel(a){p?.clearFinishedDrain(),o?.cancel(a).catch(()=>{})}},{highWaterMark:16384})}(F.body,J,h),a=j.getReader(),new ReadableStream({async pull(b){let{done:c,value:d}=await a.read();if(c){b.close(),I().catch(()=>{});return}b.enqueue(d)},cancel(){a.cancel(),I().catch(()=>{})}}));return{response:new Response(b,{status:200,headers:{...e.uB}}),url:_,headers:G,transformedBody:H}}let{content:K,reasoningContent:L}=await ai(F.body,J);await I();let M={role:"assistant",content:K};L&&(M.reasoning_content=L);let N={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||z,choices:[{index:0,message:M,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(N),{status:200,headers:{"Content-Type":"application/json"}}),url:_,headers:G,transformedBody:H}}catch(c){let a=c instanceof Error?c.message:String(c);if(h?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof Error&&"AbortError"===c.name)return{response:af(499,"Request cancelled"),url:_,headers:{},transformedBody:b};return{response:af(502,`DeepSeek error: ${a}`),url:_,headers:{},transformedBody:b}}}}new an},61433:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(74957),g=c(12643);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},71880:(a,b,c)=>{c.d(b,{y:()=>u});var d=c(77598),e=c.n(d),f=c(96179),g=c(41004),h=c(93943),i=c(7630),j=c(57247),k=c(43659);let l=["max_tokens","max_completion_tokens","max_output_tokens"],m=new Set(["4016","4015","4011",4016,4015,4011]),n="currently overloaded",o=Symbol.for("deveco.chatId");function p(a){let b=String(a||""),c=b.indexOf("/");return c>=0?b.slice(c+1):b}function q(a){return a?e().createHash("sha256").update(String(a)).digest("hex").slice(0,32):e().randomUUID().replace(/-/g,"")}function r(a){let b=p(a);return(0,j.KC)("deveco").find(a=>a.id===b)||null}async function s(a,b){let c=a.body.getReader(),d=[],e=0,f=!1,g=null,h=new Promise(a=>{g=setTimeout(()=>a("timeout"),b)}),i=null;try{for(;e<8192;){i=c.read();let a=await Promise.race([i,h]);if("timeout"===a){f=!0;break}if(i=null,a.done||(d.push(a.value),e+=a.value.byteLength,Buffer.from(t(d)).toString("utf8").includes(n)))break}}catch{}return clearTimeout(g),{head:d.length?Buffer.from(t(d)).toString("utf8"):"",replayed:new Response(new ReadableStream({async start(a){try{for(let b of d)a.enqueue(b);let b=i;for(;;){let{done:d,value:e}=await (b||c.read());if(b=null,d)break;a.enqueue(e)}a.close()}catch(b){a.error(b)}},cancel(a){c.cancel(a).catch(()=>{})}}),{status:a.status,statusText:a.statusText,headers:a.headers}),timedOut:f}}function t(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.byteLength,0)),c=0;for(let d of a)b.set(d,c),c+=d.byteLength;return b}class u extends f.L{constructor(a="deveco"){super(a)}async execute(a){var b,c,d;let e,f=q(a?.providerSessionId),h=a?{...a,credentials:{...a.credentials||{},[o]:f}}:a,i=await super.execute(h),j=i?.response;if(!j||200!==j.status)return i;if(!(j.headers?.get?.("content-type")||"").includes("event-stream")){let a=function(a){if(!a||!a.includes("errorCode"))return null;try{let b=JSON.parse(a);if(void 0===b.errorCode)return null;return m.has(b.errorCode)||/token|jwt|auth|login|realname/i.test(String(b.errorMsg||""))?b:null}catch{return null}}(await j.clone().text().catch(()=>""));return a?function(a,b,c){let{response:d}=a;return{...a,response:new Response(b,{status:c,statusText:d.statusText,headers:d.headers})}}(i,JSON.stringify({error:{type:"authentication_error",message:a.errorMsg||"DevEco token rejected — reconnect the account"}}),g.gx.UNAUTHORIZED):i}let l=r(a?.model);if(!l?.contextLength||(b=i,c=a,d=4.5*l.contextLength,(e=b.bodyStr||JSON.stringify(b.transformedBody||c?.body||{})).includes(";base64,")?!(Buffer.byteLength(e.replace(/;base64,[A-Za-z0-9+/=]+/g,""),"utf8")>d):!(e.length>d||!(3*e.length<=d)&&Buffer.byteLength(e,"utf8")>d)))return i;let{head:p,replayed:t,timedOut:u}=await s(j,3e3);return u||!p.includes(n)?{...i,response:t}:{...i,response:new Response(JSON.stringify((0,k.xJ)(g.gx.BAD_REQUEST,`prompt is too long: DevEco built-in models cap the conversation at ${l.contextLength} tokens and this request exceeds that window. Compact or shrink the context, or route this model to a larger-context provider.`)),{status:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);return e&&"object"==typeof e&&(e.model=p(e.model||a),e.stream=!0,l.some(a=>null!=e[a])||(e.max_tokens=r(e.model||a)?.maxOutputTokens||32e3),void 0===e.tool_choice||Array.isArray(e.tools)&&0!==e.tools.length||delete e.tool_choice),e}buildHeaders(a,b=!0,c,d,e){let f=a?.accessToken||a?.providerSpecificData?.securityToken||"";return{"Content-Type":"application/json",Authorization:`Bearer ${f}`,"Chat-Id":a?.[o]||q(null),lang:"en",...b?{Accept:"text/event-stream"}:{}}}parseError(a,b){if(b)try{let c=JSON.parse(b),d=c?.error?.message||c?.message;if("string"==typeof d&&d)return{status:a.status,message:d}}catch{}return super.parseError(a,b)}async refreshCredentials(a,b,c=null){let d=await (0,h.MF)(this.provider,a,()=>(0,i.WH)(a,{log:b,proxyOptions:c||a?.proxyOptions||null}));return d?.providerSpecificData&&(d.providerSpecificData={...a?.providerSpecificData||{},...d.providerSpecificData}),d}}},73870:(a,b,c)=>{c.d(b,{w:()=>n});var d=c(74957),e=c(12643),f=c(57247),g=c(8521),h=c(39609),i=c(49426),j=c(41004);let k=new Map;function l(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("authorized_user"===b.type&&b.client_id&&b.client_secret&&b.refresh_token)return b;return null}catch{return null}}async function m(a){if(k.has(a))return k.get(a);let b=await (0,i.S)(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&k.set(a,e),e}class n extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,g.Sc)(d?.apiKey),h=l(d?.apiKey),i=!!e||!!h||!!d?.accessToken,j=i?null:d?.apiKey,k=e?.project_id||h?.quota_project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!k)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/global/endpoints/openapi/chat/completions`;return j?`${a}?key=${j}`:a}let m=b?"streamGenerateContent":"generateContent";if(i){if(!k)throw Error("Vertex OAuth/ADC requires a project_id. Add quota_project_id to your ADC JSON or set providerSpecificData.projectId.");let c=d?.providerSpecificData?.location||(0,f.V2)(this.provider,a)?.defaultLocation||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${c}/publishers/google/models/${a}:${m}`;return b&&(e+="?alt=sse"),e}let n=d?.providerSpecificData?.location||"global",o=k?`https://aiplatform.googleapis.com/v1/projects/${k}/locations/${n}/publishers/google/models/${a}:${m}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${m}`;return b&&(o+="?alt=sse"),j&&(o+=b?`&key=${j}`:`?key=${j}`),o}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,g.Sc)(a?.apiKey);if(!c)return null;let d=await (0,g.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:k=null}){let n,o=(0,g.Sc)(d?.apiKey),p=l(d?.apiKey);if(o){let a=await (0,g.pb)(o,f);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if(p){let a=await (0,g.I9)(p.refresh_token,p.client_id,p.client_secret,f);if(!a?.accessToken)throw Error("Vertex: failed to refresh access token from ADC JSON (authorized_user)");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!o&&!p&&!d?.providerSpecificData?.projectId){let a=await m(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");f?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let q=this.buildUrl(a,c,0,d),r=this.buildHeaders(d,c),s=this.transformRequest(a,b,c,d),t=(0,i.n)(e,this.config?.timeoutMs||j.Z1);try{n=await (0,h.proxyAwareFetch)(q,{method:"POST",headers:r,body:JSON.stringify(s),signal:t.signal},k)}catch(a){throw t.settleError(a)}finally{t.clear()}return{response:n,url:q,headers:r,transformedBody:s}}}},74161:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(96179),e=c(94526);class f extends d.L{constructor(){super("zcode")}transformRequest(a,b,c,d){return function(a){var b;let c;if(!a||"object"!=typeof a||Array.isArray(a)||!((c=(Array.isArray(b=a.system)?b:"string"==typeof b?[b]:[]).map(a=>"string"==typeof a?a:"string"==typeof a?.text?a.text:"")).length>3)&&e.L.every(a=>c.some(b=>b===a.text)))return a;let d=function(a){if("string"==typeof a)return e.L.some(b=>b.text===a)?null:{text:a,cacheControl:null};if(!Array.isArray(a))return null;let b=null,c=[];for(let d of a){if("string"==typeof d){d&&!e.L.some(a=>a.text===d)&&c.push(d);continue}"string"==typeof d?.text&&d.text&&!e.L.some(a=>a.text===d.text)&&c.push(d.text),d?.cache_control&&(b=d.cache_control)}return c.length?{text:c.join("\n\n"),cacheControl:b}:null}(a.system);if(d)return{...a,system:[...e.L,{type:"text",text:d.text,...d.cacheControl?{cache_control:{...d.cacheControl}}:{}}]};let f=null;if(Array.isArray(a.system))for(let b of a.system)b?.cache_control&&(f=b.cache_control);if(!f)return{...a,system:[...e.L]};let g=e.L.map((a,b)=>b===e.L.length-1?{...a,cache_control:{...f}}:a);return{...a,system:g}}(super.transformRequest(a,b,c,d))}}},76467:(a,b,c)=>{c.d(b,{B:()=>M});var d=c(74957),e=c(12643),f=c(6382),g=c(94755),h=c(8521),i=c(78959),j=c(24),k=c(41004),l=c(68421),m=c(8658),n=c(12009);let o=l.bJ.maxMessageBytes,p=l.bJ.maxHeadersBytes,q=new Set(["assistantResponseEvent","reasoningContentEvent","codeEvent","toolUseEvent","messageStopEvent","metadataEvent","MetadataEvent","contextUsageEvent","meteringEvent","metricsEvent"]),r=new TextEncoder,s=new TextDecoder,t=Object.freeze({tool:"Retry the previous response because its Kiro tool_call wrapper was malformed. If you use the wrapper tool named tool_call, its input must contain a non-empty name and an arguments field.",ellipsis:"Retry the previous response because it ended with only an ellipsis. Return the complete final answer, not only ... or ….",short_final:"Retry the previous response because its final only announced a future action. Complete the check now and return the result or a concrete blocker."}),u=/^(?:(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再)(?:補|查|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|我(?:會|要|將)(?:再|重新)?(?:補(?:齊|查)?|抓取|查(?:詢)?|確認|驗證|追(?:查|蹤)?|繼續|檢查|測試)|(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b)/iu,v=/^目前證據顯示[\s\S]{1,700}[。.!?;;]\s*最後補查\s+504\s+access\s+log[,,]\s*確認\s+host[//]路徑與是否為集中流量[。.!]?$/iu,w=/^(?:(?:next|now|then)\b[\s,:-]*)?(?:i(?:'ll| will| am going to| need to)|let me)\s+(?:verify|check|confirm|validate|investigate|trace|continue|follow up|test)\b/iu,x=/(?:[:;\n]|[.!?]\s+\S|\b(?:status|checksum|response|deployment)\s+(?:is|are|was|were|matches?|equals?|returned)\b)/iu,y=/^(?:(?:現在|接著|接下來|下一步)[,,::\s]*(?:我(?:只)?(?:會|要|將|再)?\s*)?|我只再|我(?:會|要|將)(?:再|重新)?)(?:補|抓取|查|確認|驗證|追|繼續|檢查|測試)/u,z=/(?:[。!?]\s*\S|(?:版本|狀態|回應|結果|部署|校驗碼)(?:是|為|等於|顯示))/u,A=/(?:請(?:你|先)|你(?:先|需要|可以|提供|確認|批准|允許)|等待(?:你|使用者)|等你|核准|同意|授權|\b(?:after|when|once)\s+you\b|\byour\s+(?:approval|confirmation|permission|input)\b|\bwait(?:ing)?\s+for\s+you\b|\bplease\s+(?:approve|confirm|provide|send)\b)/iu,B=/(?:已(?:經)?完成|完成(?:了|驗證|確認)|修復完成|確認無誤|驗證(?:完成|通過)|測試(?:均)?通過|結論|總結|\b(?:done|completed|fixed|verified|confirmed|passed|in conclusion|summary)\b|\b(?:is|are) complete\b)/iu,C=/(?:顯示|發現|因此|成功|失敗|正常|無錯誤|沒有錯誤|\b(?:found|shows?|showed|because|therefore|succeeded|failed|healthy|green|no errors?)\b)/iu;function D(a,b){let c=Number.parseInt(process.env?.[a]||"",10);return Number.isFinite(c)&&c>0?c:b}function E(a,b){let c=new Uint8Array(b),d=0;for(let b of a)c.set(b,d),d+=b.byteLength;return c}async function F(a,b,c,d){let e=a?.body?.getReader?.();if(!e)return"";let f=[],g=0;try{for(;g<c;){let{done:a,value:h}=await (0,n.S)(e,b,d,"Kiro retry error body stalled");if(a)break;let i=c-g,j=h.byteLength>i?h.slice(0,i):h;if(f.push(j),g+=j.byteLength,h.byteLength>i)break}}finally{await e.cancel("bounded Kiro retry error body").catch(()=>{})}return s.decode(E(f,g))}function G(a){let b=String(a||"").trim().replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().replace(/[\s-]+/g,"_");return["endturn","end_turn","stop","stop_sequence"].includes(b)?"end_turn":["tooluse","tool_use","tool_calls"].includes(b)?"tool_use":["maxtokens","max_tokens","max_output_tokens","length"].includes(b)?"max_tokens":b||null}let H=new Set(["model_context_window_exceeded","max_tokens"]);function I(a,b){return["malformed_model_output","invalid_model_output"].includes(a)?"retryable_protocol_failure":["cancelled","pause_turn","model_context_window_exceeded"].includes(a)?"terminal_incomplete":"refusal"===a||/(?:content.*filter|guardrail|safety|policy|blocked)/u.test(a)?"terminal_refusal":"max_tokens"===a?b?"terminal_incomplete":"length":a&&!["end_turn","tool_use"].includes(a)?"unknown_failure":b||"tool_use"===a?"tool_use":a&&"end_turn"!==a?"unknown_failure":"complete"}function J(a,b){if(!b)return a;if(!a)return b;let c=a=>{let b=I(a,!1);return"terminal_refusal"===b?6:"terminal_incomplete"===b?5:"unknown_failure"===b?4:"retryable_protocol_failure"===b?3:"length"===b?2:1};return c(b)>c(a)?b:a}function K(a){return["...","…"].includes(String(a||"").trim())}function L(a,b,c){return r.encode(`data: ${JSON.stringify({error:{message:b,type:"upstream_error",code:a,...c?{details:c}:{}}})}
|
|
283
272
|
|
|
284
273
|
data: [DONE]
|
|
285
274
|
|
|
@@ -303,11 +292,24 @@ Content-Type: ${d||"application/octet-stream"}\r
|
|
|
303
292
|
|
|
304
293
|
`)),c.enqueue(i.encode(l.$U)),j=!0;return}h&&(n.handleInner(h,c),o())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(p(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(p(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),p(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{n.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class Z extends g.H{constructor(a="qoder"){super(a,h.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,n.e9)(a,this.region)}/algo${n.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}async execute({model:a,body:b,stream:c,credentials:e,signal:f,log:g,proxyOptions:h=null}){let k,l,p,q=e?.apiKey||e?.accessToken;if((0,o.zh)(q))try{e=await (0,o._M)(e,h,f,this.region)}catch(a){return g?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(e),headers:{},transformedBody:b}}let z=this.buildUrl(e),A=e?.providerSpecificData||{};if(!A.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};if(!e?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};try{({qoderKey:k,payload:l}=await S({model:a,body:b,credentials:e,log:g,proxyOptions:h,signal:f,region:this.region}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let B=`${this.provider}/${k}`,C=async a=>{let c,g,l=Buffer.from(JSON.stringify(a),"utf8"),n=Buffer.from(function(a){let b=(Buffer.isBuffer(a)?a:"string"==typeof a?Buffer.from(a,"utf8"):Buffer.from(a)).toString("base64"),c=b.length,e=Math.floor(c/3),f=b.slice(c-e)+b.slice(e,c-e)+b.slice(0,e),g=Buffer.alloc(c);for(let a=0;a<c;a++){let b=f.charCodeAt(a);b<128&&d[b]>=0?g[a]=d[b]:g[a]=b}return g.toString("latin1")}(l),"latin1");try{c=(0,r.dE)(n,z,{userId:A.userId,authToken:e.accessToken,name:e.displayName||"",email:e.email||"",machineId:A.machineId||(0,r.if)(A.userId)})}catch(a){return{error:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let o={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":k,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c},p=this.config?.timeoutMs||m.pH,q=(0,j.n)(f,p);try{g=await (0,i.proxyAwareFetch)(z,{method:"POST",headers:o,body:n,signal:q.signal},{...h,strictProxy:!0})}catch(a){if(f?.aborted)throw f.reason??a;throw q.settleError(a)}finally{q.clear()}return{response:g,url:z,headers:o,transformedBody:a}},D=async(a,b,c,d,g)=>{let j=function(a,{requestSetId:b,modelKey:c,queueType:d}={}){let e=new URLSearchParams;return b&&e.set("requestSetId",b),c&&e.set("modelKey",c),d&&e.set("queueType",d),`${a}/algo/api/v2/service/ask/queue/status?${e.toString()}`}((0,n.e9)(e,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,i.proxyAwareFetch)(j,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":d,"X-Session-ID":g||"",...(0,r.dE)(Buffer.alloc(0),j,{userId:A.userId,authToken:e.accessToken,name:e.displayName||"",email:e.email||"",machineId:A.machineId||(0,r.if)(A.userId)})},signal:f},h);if(!a.ok)return{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?x(a):a;if(!t(b))return null;let c=w(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:w(b.serviceAvailable),modelKey:v(b.modelKey),queueType:v(b.queueType),queueCount:u(b.queueCount),retryAfterSeconds:u(b.retryAfterSeconds),waitTime:u(b.waitTime)}}(await a.text().catch(()=>""));return b?{endpointOk:!0,info:b}:{endpointOk:!1,info:null}}catch(a){if(f?.aborted)throw a;return{endpointOk:!1,info:null}}},E=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:18e4,F=Date.now(),G=null,H=!0,I=!1,J=l;for(;;){let a=await C(J);if(a.error)return{response:a.error,url:a.url,headers:a.headers,transformedBody:a.transformedBody};if(!a.response.ok)return{response:a.response,url:a.url,headers:a.headers,transformedBody:a.transformedBody};let b=a.response.body.getReader(),c=new TextDecoder,d=await X(b,c),e=d.isError?function(a){let b="string"==typeof a?x(a):a;if(!b)return null;let c=function(a){let b=[],c=new Set,d=new Set,e=[a];for(;e.length>0;){let a=e.shift();if(t(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),s)){let b=a[f];if(t(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=x(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(t(b)||Array.isArray(b))&&e.push(b)}return b}(b),d={code:void 0,subCode:void 0,isQueued:void 0,modelKey:void 0,queueType:void 0,queueCount:void 0,serviceAvailable:void 0,retryAfterSeconds:void 0,waitTime:void 0};for(let a of c)void 0===d.code&&(d.code=v(a.code)),void 0===d.subCode&&(d.subCode=v(a.subCode)),void 0===d.isQueued&&(d.isQueued=w(a.isQueued)),void 0===d.modelKey&&(d.modelKey=v(a.modelKey)),void 0===d.queueType&&(d.queueType=v(a.queueType)),void 0===d.queueCount&&(d.queueCount=u(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=w(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=u(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=u(a.waitTime));return!0!==d.isQueued&&!1!==d.serviceAvailable&&"RESOURCE_LIMIT"!==d.subCode&&"10605"!==d.code?null:d}(d.message||""):null;if(!e){if(d.isError){let b=d.isBilling?m.gx.FORBIDDEN:Number.isInteger(d.statusVal)&&d.statusVal>=400&&d.statusVal<=599?d.statusVal:m.gx.BAD_GATEWAY;return{response:new Response(JSON.stringify({error:{message:d.message||"qoder upstream error",code:d.statusVal}}),{status:b,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}let c=new Response(new ReadableStream({start(a){let c=!1,e=()=>{if(!c){c=!0;try{a.close()}catch{}}},f=b=>{if(c)return!1;try{return a.enqueue(b),!0}catch{return c=!0,!1}},g=new TextEncoder;if(d.consumed&&!f(g.encode(d.consumed)))return;if(d.upstreamDone)return void e();let h=()=>{c||b.read().then(({done:a,value:b})=>{a?e():f(b)&&h()}).catch(()=>e())};h()},cancel:()=>b.cancel().catch(()=>{})}),{status:a.response.status,statusText:a.response.statusText,headers:a.response.headers});return{response:await Y(c,B,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}G=e;let h=Date.now()-F;if(h>=E)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(h/1e3)}s for ${B} (queueType=${G.queueType||"?"}, waitTime=${G.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${k}" is still queued after ${Math.round(h/1e3)}s (queueType=${G.queueType||"?"}); retry shortly`,code:"qoder_model_queued",type:"rate_limit_error"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody};let i=y(e);if(H){let a=J.request_set_id,b=await D(e.modelKey||k,e.queueType,a,J.request_id,J.session_id);b.endpointOk?!1===b.info.isQueued?I?(H=!1,g?.info?.("QODER",`queue status claims ready but "${k}" is still refused; falling back to timed replays`)):(I=!0,g?.info?.("QODER",`model "${k}" reported ready (queueType=${b.info.queueType||"?"}); replaying`),i=0):(i=y(b.info,{fromStatus:!0}),g?.info?.("QODER",`model "${k}" still queued (queueType=${b.info.queueType||"?"}, queueCount=${b.info.queueCount??"?"}); rechecking in ${Math.round(i/1e3)}s`)):H=!1}i>0&&await function(a,b){return a>0?new Promise((c,d)=>{if(b?.aborted)return void d(b.reason);let e=setTimeout(()=>{b?.removeEventListener?.("abort",f),c()},a),f=()=>{clearTimeout(e),d(b.reason)};b?.addEventListener?.("abort",f,{once:!0})}):Promise.resolve()}(i,f)}}async refreshCredentials(){return null}parseError(a,b){let c=super.parseError(a,b),d=function(a){let b=T(a);if(!U.test(b))return null;let c=b.match(/"retryAfterSeconds"\s*:\s*(\d+)/),d=c?Number(c[1]):0;return d>0?1e3*d:null}(b);return d&&(c.resetsAtMs=Date.now()+d),c}needsRefresh(){return!1}}},77919:(a,b,c)=>{c.d(b,{$:()=>M});var d=c(74957),e=c(12643),f=c(41004),g=c(39609),h=c(49426),i=c(78959),j=c(92536),k=c(22115);function l(a){let b=a?.content;return"string"==typeof b?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.text??"").filter(Boolean).join("\n"):""}function m(a){for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||""))return l(a[b]);return""}function n(a,b){let c=b&&"object"==typeof b?b:{},d=Object.keys(c).sort().map(a=>{var b;return`${a}=${"string"==typeof(b=c[a])?b.replace(/\s+/g," ").replace(/["'`]/g,"").toLowerCase():b}`});return`${a}(${d.join(",")})`}function o(a){let b=a&&"object"==typeof a?a.properties:null;return b&&"object"==typeof b?b:{}}function p(a){let b=a&&"object"==typeof a?a.required:null;return Array.isArray(b)?b:[]}function q(a){return`${a.name} ${a.description||""}`.toLowerCase()}function r(a,b){let c=new Set(Object.keys(o(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function s(a){return/\b(mcp|mcpproxy|upstream|registry|oauth|cache key|token usage|handoff|context management|memory|memories|lsp|language server|plan file|server management|tool discovery)\b/.test(q(a))}function t(a){return/\b(ctx_|memory|memories|conversation history|session notes|project memories|context\.db)\b/.test(q(a))}function u(a){if(s(a))return!1;let b=q(a),c=a.name.toLowerCase(),d=/\b(bash|shell|terminal|run_command|execute_command|exec|command)\b/.test(c),e=/\b(?:run|execute).{0,24}\b(?:shell|bash|terminal|command)\b|\b(?:shell|bash|terminal)\b/.test(b);return d||r(a,["command","cmd","shell"])&&e}function v(a){let b=q(a);return r(a,["filePath","file_path","path"])&&/\b(read|file|filesystem|open)\b/.test(b)&&!/\b(write|edit|patch|delete|remove|grep|search|bash|shell|command)\b/.test(b)}function w(a){let b=q(a),c=a.name.toLowerCase(),d=/\b(webfetch|web.fetch|fetch_url|url_fetch|read_url|browse_page|browsepage)\b/.test(c),e=/\b(?:fetch|browse|read).{0,32}\b(?:url|uri|web page|page content)\b|\b(?:url|uri|web page|page content).{0,32}\b(?:fetch|browse|read)\b/.test(b);return d||!s(a)&&r(a,["url","uri"])&&e}function x(a){let b=q(a);return r(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!s(a)&&!t(a)}function y(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function z(a){return null!=a&&""!==a}function A(a,b,c,d){let e=c.toolsByName.get(a);if(!e)return b;let f=o(e.parameters),g=p(e.parameters),h={...b};for(let a of("filePath"in f&&!z(h.filePath)&&(h.filePath=y(b.filePath,b.file_path,b.path)),"file_path"in f&&!z(h.file_path)&&(h.file_path=y(b.file_path,b.filePath,b.path)),"path"in f&&!z(h.path)&&(h.path=y(b.path,b.filePath,b.file_path)),"query"in f&&!z(h.query)&&(h.query=y(b.query,b.search,b.input)),"url"in f&&!z(h.url)&&(h.url=y(b.url,b.uri)),"uri"in f&&!z(h.uri)&&(h.uri=y(b.uri,b.url)),"input"in f&&!z(h.input)&&(h.input=y(b.input,b.query,b.command)),g)){if(z(h[a]))continue;let b=function(a,b,c){let d=a.toLowerCase(),e=y(b.command,b.cmd,b.shell,b.input),f=y(b.filePath,b.file_path,b.path,b.filename),g=y(b.query,b.search,b.input),h=y(b.url,b.uri);return"command"===d||"cmd"===d?e:"filepath"===d||"file_path"===d||"path"===d?f:"query"===d||"search"===d?g:"url"===d||"uri"===d?h:"input"===d?g||h||e||f:"description"===d||"reason"===d?e?`Execute shell command: ${e}`:f?`Read file: ${f}`:h?`Fetch URL: ${h}`:g?`Search: ${g}`:`Grok Web ${c} tool call`:void 0}(a,h,d);void 0!==b&&(h[a]=b)}let i={},j=new Set([...Object.keys(f),...g]);for(let a of Object.keys(h))(0===j.size||j.has(a))&&(i[a]=h[a]);return i}function B(a,b,c){if(!c.enabled||!a||"object"!=typeof a)return null;let d=b||`call_${crypto.randomUUID()}`,e=(a,b)=>{if(!b||"object"!=typeof b)return null;let e=function(a,b){let c=null;for(let d of b.toolsByName.values()){let e=function(a,b,c){let d=a.name.toLowerCase(),e=(a.description||"").toLowerCase(),f=new Set(Object.keys(o(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=String(c||"").toLowerCase(),i=0;if("bash"===b)u(a)||(i-=80),"bash"===d&&(i+=100),["shell","terminal","run_command","execute_command","exec","command"].includes(d)&&(i+=80),(f.has("command")||f.has("cmd"))&&(i+=60),/bash|shell|terminal|command|execute|run/.test(g)&&(i+=25),/read|search|grep|web|http|browser|context|note|memory/.test(d)&&(i-=50);else if("readFile"===b)v(a)||(i-=60),["read","read_file","readfile","file_read"].includes(d)&&(i+=100),(f.has("filepath")||f.has("file_path")||f.has("path"))&&(i+=50),/read.*file|file.*read|filesystem/.test(g)&&(i+=25),/write|edit|delete|remove|bash|shell|command/.test(g)&&(i-=50);else("webSearch"===b||"browsePage"===b)&&((t(a)||s(a))&&(i-=180),("browsePage"===b||/https?:\/\//.test(String(h||"")))&&(w(a)||(i-=60),/webfetch|web_fetch|fetch|browse|browse_page|read_url|url_fetch|page/.test(d)&&(i+=140),(f.has("url")||f.has("uri"))&&(i+=90),/fetch|browse|url|web page|page content|extract.*url|read.*url/.test(g)&&(i+=55),/websearch|web_search|search/.test(d)&&!(f.has("url")||f.has("uri"))&&(i-=80)),"webSearch"!==b||x(a)||(i-=60),["web_search","websearch","search"].includes(d)&&(i+=100),(f.has("query")||f.has("search"))&&(i+=50),/web.*search|search.*web|internet|browse/.test(g)&&(i+=25),/file|bash|shell|command|write|edit/.test(g)&&(i-=50));return i}(d,a,b.lastUserText);e<=0||(!c||e>c.score)&&(c={name:d.name,score:e})}return c?.name||null}(a,c);if(!e)return null;let f=A(e,b,c,a);return c.executedToolKeys.has(n(e,f))?null:{id:d,type:"function",function:{name:e,arguments:JSON.stringify(f)}}},f=a.bash?.args?e("bash",a.bash.args):null;if(f)return f;let g=(a.readFile||a.read_file)?.args?e("readFile",(a.readFile||a.read_file).args):null;if(g)return g;let h=a.webSearch?.args?e("webSearch",a.webSearch.args):null;if(h)return h;let i=(a.browsePage||a.browse_page)?.args?e("browsePage",(a.browsePage||a.browse_page).args):null;return i||null}function C(a,b){if(!b.enabled||!a.includes("<tool_call>"))return null;let c=[];for(let d of function*(a,b,c){for(;;){let d=b.exec(a);if(null===d)return;let e=d.index+d[0].length,f=c.exec(a.slice(e));if(null===f||(yield{inner:a.slice(e,e+f.index),after:e+f.index+f[0].length},b.lastIndex=c.lastIndex=0,!(a=a.slice(e+f.index+f[0].length)).includes("<tool_call>")))return}}(String(a),/<tool_call>/g,/<\/tool_call>/g)){let a;try{a=JSON.parse(d.inner.trim())}catch{continue}if(!a||"object"!=typeof a)continue;let e="string"==typeof a.name?a.name.trim():"";if(!e||!b.toolsByName.has(e))continue;let f=A(e,function(a){if(!a)return{};if("object"==typeof a)return a;if("string"==typeof a)try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{input:a}}return{}}(a.arguments),b,"clientTool");b.executedToolKeys.has(n(e,f))||c.push({id:"string"==typeof a.id&&a.id.trim()?a.id.trim():`call_${crypto.randomUUID()}`,type:"function",function:{name:e,arguments:JSON.stringify(f)}})}return c.length>0?c:null}var D=c(10079);let E=e.xq["grok-web"].baseUrl,F={"grok-3":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-3-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function G(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;b<a;b++)d+=c[Math.floor(Math.random()*c.length)];return d}function H(){return btoa(.5>Math.random()?`x1:TypeError: Cannot read properties of null (reading 'children["${G(5,!0)}"]')`:`x1:TypeError: Cannot read properties of undefined (reading '${G(10)}')`)}function I(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}async function*J(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{c.releaseLock()}}async function*K(a,b,c){let d="",e="",f=!1;for await(let g of J(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.toolUsageCard){yield{toolCard:a.toolUsageCard,toolCardId:a.toolUsageCardId,fingerprint:d,responseId:e};continue}if(a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}async function L(a,b,c,d,e,f,g){let h="",i="",j=[],k=[];for await(let b of K(a,e,f)){if(b.fingerprint&&(i=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.toolCard&&g){let a=B(b.toolCard,b.toolCardId,g);a&&k.push(a);continue}if(b.done)break;b.fullMessage?h=b.fullMessage:b.delta&&(h+=b.delta)}let l={role:"assistant",content:h};j.length>0&&(l.reasoning_content=j.join("\n"));let m=(g?.enabled?C(h,g):null)||(k.length?k:null),n="stop";m?.length&&(l.content=h.replace(/<tool_call>[\s\S]*?<\/tool_call>/g,"").trim(),l.tool_calls=m,n="tool_calls");let o=Math.ceil(h.length/4),p=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:i||null,choices:[{index:0,message:l,finish_reason:n,logprobs:null}],usage:{prompt_tokens:o,completion_tokens:p,total_tokens:o+p}}),{status:200,headers:{"Content-Type":"application/json"}})}class M extends d.H{constructor(){super("grok-web",e.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:r,proxyOptions:y=null}){let z,A,G=b?.messages;if(!G||!Array.isArray(G)||0===G.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let J=F[a];J||r?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:M,modelMode:N,isThinking:O}=J||F["grok-4.1-fast"],P=function(a){let b=Array.isArray(a?.tools)?a.tools:[],c=Array.isArray(a?.messages)?a.messages:[],d=a?.tool_choice??"auto",e=function(a){let b=new Set,c=[];for(let d of a)if("assistant"===String(d?.role||"")&&Array.isArray(d.tool_calls))for(let a of d.tool_calls){let d=a?.function||{},e={};try{e=JSON.parse(d.arguments||"{}")}catch{}b.add(n(d.name||"",e)),c.push(function(a,b){let c=b&&"object"==typeof b?b:{},d=Object.keys(c).sort().map(a=>String(c[a]).slice(0,60)).join(", ");return`${a}(${d})`}(d.name||"tool",e))}return{keys:b,summaries:c}}(c);if("none"===d)return{enabled:!1,toolsByName:new Map,lastUserText:m(c),executedToolKeys:e.keys,completedToolCalls:e.summaries};let f=b.map(a=>{let b=a?.function;if(a?.type!=="function"||!b||"object"!=typeof b)return null;let c="string"==typeof b.name?b.name.trim():"";return c?{name:c,..."string"==typeof b.description?{description:b.description}:{},parameters:b.parameters||{type:"object",properties:{}}}:null}).filter(Boolean),g=d&&"object"==typeof d&&"string"==typeof d.function?.name?d.function.name:null,h=g?f.filter(a=>a.name===g):f;return{enabled:h.length>0,toolsByName:new Map(h.map(a=>[a.name,a])),lastUserText:m(c),executedToolKeys:e.keys,completedToolCalls:e.summaries}}(b),Q=P.enabled?function(a,b,c){var d,e;let f=(d=b,e=c,d.enabled?['CLIENT_TOOLS: use this caller-runtime tool list as the tool interface for this request. To call one, respond only with <tool_call>{"name":"exact_tool_name","arguments":{...}}</tool_call>. After tool results, answer normally.',`tool_choice=${JSON.stringify(e??"auto")}`,...d.completedToolCalls.length?["completed_tool_calls:",...d.completedToolCalls.map(a=>`- ${a}`),"Do not repeat completed tool calls unless a different result is required; use their tool results to answer."]:[],"tools (priority order for this request):",...[...d.toolsByName.values()].map((a,b)=>({tool:a,index:b,score:w(a)?90:x(a)?85:v(a)?75:u(a)?70:/\b(glob|grep|search files?|file search|content search)\b/.test(q(a))?60:/\b(edit|write|patch|modify|apply)\b/.test(q(a))?50:/\b(task|agent|delegate|subagent)\b/.test(q(a))?40:t(a)?20:s(a)?10:30})).sort((a,b)=>b.score-a.score||a.index-b.index).map(({tool:a},b)=>{var c;let d,e,f;return`${b+1}. name: ${a.name}${d=Object.keys(o(c=a.parameters)),e=p(c),f=[],d.length&&f.push(`args=${d.join(",")}`),e.length&&f.push(`required=${e.join(",")}`),f.length?` (${f.join("; ")})`:""}${a.description?`
|
|
305
294
|
description: ${a.description}`:""}`})].join("\n"):""),g=[],h=-1;for(let b=a.length-1;b>=0;b--)if("user"===String(a[b]?.role||"")){h=b;break}let i=[];for(let b=0;b<a.length;b++){let c=a[b],d=String(c?.role||"user");"developer"===d&&(d="system");let e=l(c);if("tool"===d){if(b<h)continue;let a="string"==typeof c.name?c.name:"unknown_tool";e=`CLIENT TOOL RESULT from caller runtime for ${a} (${c.tool_call_id||"unknown_call"}). Use this result to answer; do not call the same tool again:
|
|
306
|
-
${e}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<h)continue;let a=c.tool_calls.map(a=>({id:a.id,function:a.function}));e=[e,`Previous assistant tool calls: ${JSON.stringify(a)}`].filter(Boolean).join("\n")}e.trim()&&i.push({role:d,text:e})}let j=-1;for(let a=i.length-1;a>=0;a--)if("user"===i[a].role){j=a;break}for(let a=0;a<i.length;a++)g.push(a===j?i[a].text:`${i[a].role}: ${i[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(G,P,b?.tool_choice):function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(G);if(!Q.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let R={temporary:!0,modelName:M,modelMode:N,message:Q,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},S=I(16),T=I(8),U={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":k.CO,"x-statsig-id":H(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${S}-${T}-00`};if(d.apiKey){let a=(0,D.lT)(d.apiKey);a&&(U.Cookie=a)}r?.info?.("GROK-WEB",`Query to ${a} (grok=${M}, mode=${N}), len=${Q.length}`);let V=!(0,g.hasProxyEgress)(E,y),W=(0,h.n)(e,this.config?.timeoutMs||f.Z1);try{z=V?await (0,k.X7)(E,{method:"POST",headers:U,body:JSON.stringify(R),timeoutMs:12e4,signal:W.signal}):await (0,g.proxyAwareFetch)(E,{method:"POST",headers:U,body:JSON.stringify(R),signal:W.signal},y)}catch(a){if(a instanceof k.jm)return{response:new Response(JSON.stringify({error:{message:a.message,type:"configuration_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};return r?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}finally{W.clear()}if(!z.ok){let a=z.status,b=`Grok returned HTTP ${a}`;return(0,k.ZB)(await z.clone().text().catch(()=>""))?b="Grok returned a Cloudflare challenge — cf_clearance in the pasted Cookie header no longer matches this machine. Re-copy the full Cookie header from a logged-in grok.com browser on this machine.":401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),r?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}if(!z.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};let X=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,Y=Math.floor(Date.now()/1e3);if(c){var Z;let b;A=new Response((Z=z.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f="",g="",h=!1,k=[];for await(let i of K(Z,O,e)){if(i.fingerprint&&(f=i.fingerprint),i.error){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:`[Error: ${i.error}]`},finish_reason:null,logprobs:null}]})));break}if(i.thinking){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{reasoning_content:i.thinking},finish_reason:null,logprobs:null}]})));continue}if(i.toolCard&&P){let a=B(i.toolCard,i.toolCardId,P);a&&k.push(a);continue}if(i.done)break;if(i.delta)if(P?.enabled){var d;if(g+=i.delta,d=g,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){h=!0;continue}if(h)continue;let e=Math.min(12,g.length),k=g.slice(0,g.length-e);k&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),g=g.slice(g.length-e)}else c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:i.delta},finish_reason:null,logprobs:null}]})));i.fullMessage&&P?.enabled&&(g=i.fullMessage)}let l=(P?.enabled?C(g,P):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else g&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:g},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(i.$U))}catch(d){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U))}finally{c.close()}}})),{status:200,headers:{...i.uB}})}else A=await L(z.body,a,X,Y,O,e,P);return{response:A,url:E,headers:U,transformedBody:R}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:h}){if("image"!==b&&"video"!==b)throw Error("Grok Web supports image and video generation only");if(!a?.trim())throw Error("prompt is required for media generation");let i="video"===b?1:Math.max(1,e),j=(0,D.lT)(String(f?.apiKey||""));if(!j)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<i;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":k.CO,"Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Origin:"https://grok.com",Referer:"https://grok.com/","Browser-Id":e,"x-xai-request-id":e,"x-statsig-id":H(),Cookie:j},i="video"===b?function({prompt:a,size:b,duration:c}){return{modelName:"imagine-video-gen",message:`${a} --mode=custom`,enableImageStreaming:!0,enableSideBySide:!0,sendFinalMetadata:!0,responseMetadata:{experiments:[],modelConfigOverride:{modelMap:{}}},mediaGenInput:{textToVideo:{prompt:a,aspectRatio:/^\d{1,2}:\d{1,2}$/.test(String(b||""))?String(b):"16:9",duration:Number.isFinite(Number(c))&&Number(c)>0?Number(c):6,resolutionName:"480p"}},kind:"CONVERSATION_KIND_IMAGINE"}}({prompt:a,size:c,duration:d}):{temporary:!0,modelName:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",message:c?`Generate an image (${c}): ${a}`:`Generate an image: ${a}`,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!0,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!0,imageGenerationCount:1,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},m=await (0,k.X7)(E,{method:"POST",headers:f,body:JSON.stringify(i),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,k.ZB)(n))throw Error((0,k.ZB)(n)?"Grok returned a Cloudflare challenge — re-copy the full Cookie header (with cf_clearance) from a logged-in grok.com browser on this machine":`grok ${b} request failed: HTTP ${m.status} ${n.slice(0,200)}`);if("video"===b){let a=function(a){let b=[],c=a=>{if(!(b.length>8)){if("string"==typeof a){if(/\.mp4(\?|#|$)/i.test(a))return void b.push(a);let d=a.trim();if(d.startsWith("{")||d.startsWith("["))try{c(JSON.parse(d))}catch{}return}if(Array.isArray(a))return void a.forEach(c);a&&"object"==typeof a&&Object.values(a).forEach(c)}};for(let b of String(a).split("\n")){let a=b.trim();if(a.startsWith("{"))try{c(JSON.parse(a))}catch{}}return b[b.length-1]||null}(n);if(!a)throw h?.warn?.("GROK-WEB",`no video URL in stream, tail: ${n.slice(-300)}`),Error("grok returned no video asset — quota may be exhausted (1 video/day) or the prompt was moderated");let b=await (0,k.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:12e4,signal:g});if(!b.ok)throw Error(`video download failed: HTTP ${b.status}`);let c=Buffer.from(await b.arrayBuffer());l.push({b64:c.toString("base64"),mime:"video/mp4"});break}let o=null;for(let a of n.split("\n")){let b,c;if(!a.trim().startsWith("{"))continue;try{b=JSON.parse(a)}catch{continue}let d=b?.result?.response?.cardAttachment?.jsonData;if("string"!=typeof d)continue;try{c=JSON.parse(d)}catch{continue}let e=c?.image_chunk;e&&Number(e.progress)>=100&&e.imageUrl&&(o=e)}if(!o)throw Error("grok returned no completed image chunk — prompt may have been moderated or image generation is unavailable for this account");let p=await (0,k.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:6e4,signal:g});if(!p.ok)throw Error(`image download failed: HTTP ${p.status}`);let q=Buffer.from(await p.arrayBuffer());l.push({b64:q.toString("base64"),mime:o.mimeType||"image/jpeg"})}return h?.info?.("GROK-WEB",`${b} generation completed (${l.length} item(s))`),l}}},80479:(a,b,c)=>{c.d(b,{qG:()=>I,we:()=>J,zD:()=>K}),c(4573);var d=c(20742),e=c(31421),f=c(77030);let g=null,h=null;async function i(){let a=process.env.OBSCURA_BIN;if(a)return a;let{resolve:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d,accessSync:e,constants:f}=await Promise.resolve().then(c.t.bind(c,73024,23));for(let a of(process.env.PATH||"").split(":")){let c=b(a,"obscura");try{if(e(c,f.X_OK),d(c))return c}catch{}}return null}async function j(a,b){let c=Date.now()+b;for(;Date.now()<c;){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1500),d=a.replace(/^ws/,"http").replace(/\/$/,"")+"/json/version",e=await fetch(d,{signal:b.signal});if(clearTimeout(c),e.ok)return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function k(){let a;if(void 0!==(a=process.env.NINEROUTER_BROWSER_POOL)&&("off"===a||"0"===a||"false"===a))return null;if(g)return g;if(h)return h;h=(async()=>{let a=process.env.OBSCURA_CDP_ENDPOINT;if(a)return g={child:null,endpoint:a};let b=await i();if(!b)return null;let c=Number(process.env.OBSCURA_PORT)||await new Promise((a,b)=>{let c=(0,f.createServer)();c.once("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("obscura: could not allocate a free port"))})})}),d=(0,e.spawn)(b,["serve","--port",String(c),"--host","127.0.0.1"],{stdio:["ignore","ignore","pipe"]});d.stderr?.on("data",()=>{});let h=`http://127.0.0.1:${c}`,k=new Promise(a=>{d.once("exit",()=>a(!0)),d.once("error",()=>a(!0))});return!0!==await Promise.race([j(h,3e4),k.then(()=>!1)])?(d.kill("SIGKILL"),null):g={child:d,endpoint:h}})();try{return await h}finally{h=null}}async function l(){let a=await k();if(!a)return null;try{let{chromium:b}=await (0,d.A)("playwright-core");return{browser:await b.connectOverCDP(a.endpoint),child:a.child}}catch{return null}}let m="Missing X server or $DISPLAY: a headed browser needs a display. Install Xvfb (apt-get install xvfb) or run with xvfb-run.";class n extends Error{constructor(a){super(a?`${m} (${a})`:m),this.name="MissingDisplayError",this.code="NINER_NO_DISPLAY"}}let o=null,p=null,q=!1;async function r(a={}){let b=a.env??process.env;if(!((a.platform??process.platform)!=="linux"||function(a=process.env){return!!(a.DISPLAY||a.WAYLAND_DISPLAY)}(b))){if(o&&null===o.child.exitCode&&!o.child.killed)return o.display;if(o=null,!p){var c,d;p=(c=a.spawn??e.spawn,d=a.timeoutMs??5e3,new Promise((a,b)=>{let e=c("Xvfb",["-displayfd","3","-screen","0","1280x1024x24","-nolisten","tcp"],{stdio:["ignore","ignore","ignore","pipe"]}),f=!1,g="",h=a=>{if(!f){f=!0,clearTimeout(i);try{e.kill("SIGTERM")}catch{}b(a)}},i=setTimeout(()=>h(new n("Xvfb start timeout")),d);i.unref?.(),e.once("error",a=>h(new n("ENOENT"===a.code?"Xvfb not found":a.message))),e.once("exit",()=>{o?.child===e&&(o=null),h(new n("Xvfb exited"))});let j=e.stdio?.[3];j?.on("data",b=>{g+=b.toString();let c=/^(\d+)\n/.exec(g);if(!c||f)return;f=!0,clearTimeout(i);let d=`:${c[1]}`;o={child:e,display:d},e.unref?.(),a(d)})})).finally(()=>{p=null}),q||a.spawn||(q=!0,process.once("exit",()=>s()))}return p}}function s(){let a=o?.child;o=null;try{a?.kill("SIGTERM")}catch{}}var t=c(4052);let u={browser:null,engine:null,headedBrowser:null,contexts:new Map,pendingContexts:new Map,launching:null,headedLaunching:null,generation:0,lastActivity:0,idleTimer:null,evictTimer:null,cloakLaunch:null,cloakLaunchResolved:!1,metrics:{browserLaunches:0,browserLaunchFailures:0,contextsCreated:0,contextsReused:0,contextsEvicted:0,contextsReleased:0,contextCreateFailures:0,shutdowns:0,lastShutdownReason:null}};async function v(){if(u.cloakLaunchResolved)return u.cloakLaunch;u.cloakLaunchResolved=!0;try{u.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{u.cloakLaunch=null}return u.cloakLaunch}function w(){u.idleTimer&&clearTimeout(u.idleTimer),u.idleTimer=setTimeout(()=>{L("idle-timeout")},3e5),u.idleTimer.unref?.()}function x(a){let b=a?u.browser:u.headedBrowser;return b?.isConnected()?b:(b&&y(a,null),null)}function y(a,b){a?u.browser=b:u.headedBrowser=b}function z(a){return a?u.launching:u.headedLaunching}function A(a,b){a?u.launching=b:u.headedLaunching=b}function B(a,b){z(a)===b&&A(a,null)}function C(a){let b=!1!==a.headless;return{headless:b,...a.executablePath?{executablePath:a.executablePath}:{},args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled","--disk-cache-size=52428800",...b?[]:["--window-position=-32000,-32000"]]}}async function D(a,b){if(!b){let{chromium:b}=await (0,d.A)("playwright-core"),c=await r(),e=C(a);return c&&(e.env={...process.env,DISPLAY:c}),(0,t.KI)(b,e)}let c=await l();if(c)return u.engine="obscura",c.browser;let e=await v();if(e)return u.engine="cloakbrowser",e({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});u.engine="chromium";let{chromium:f}=await (0,d.A)("playwright-core");return(0,t.KI)(f,C(a))}async function E(a){let b=!1!==a.headless,c=x(b);if(c)return c;let d=z(b);if(d)return d;let e=u.generation,f=(async()=>{let c=await D(a,b);if(u.generation!==e)throw await c.close().catch(()=>{}),Error("Pool shut down during browser launch");return y(b,c),u.metrics.browserLaunches++,c})();A(b,f);try{let a=await f;return B(b,f),a}catch(a){throw B(b,f),u.metrics.browserLaunchFailures++,a}}function F(a,b){b&&u.metrics.contextCreateFailures++,u.pendingContexts.delete(a)}async function G(a,b){if(b.cookieString){var c,d;let e=(c=b.cookieString,d=b.cookieDomain,c.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(b<0)return null;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();return c&&e?{name:c,value:e,domain:d.startsWith(".")?d:`.${d}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));e.length>0&&await a.addCookies(e)}if(!b.localStorage||0===Object.keys(b.localStorage).length)return;let e=new URL(b.localStorageOrigin||b.warmupUrl||"").origin;await a.addInitScript(({expectedOrigin:a,entries:b})=>{if(window.location.origin===a)for(let[a,c]of b)window.localStorage.setItem(a,c)},{expectedOrigin:e,entries:Object.entries(b.localStorage)})}async function H(a,b){if(!b)return null;let c=null;try{return c=await a.newPage(),await c.goto(b,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500)),c}catch{return await c?.close().catch(()=>{}),null}}async function I(a,b){let c;if(void 0!==(c=process.env.NINEROUTER_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: NINEROUTER_BROWSER_POOL=off — context requested but pool is disabled");let d=!1!==b.headless,e=`${d?"headless":"headed"}:${a}`,f=u.contexts.get(e);if(f)return f.lastUsed=Date.now(),u.lastActivity=Date.now(),u.metrics.contextsReused++,w(),f;let g=u.pendingContexts.get(e);if(g)return g.promise;let h=(async()=>{let a=await E(b),c=d&&("obscura"===u.engine||null!==u.cloakLaunch),f=await a.newContext({userAgent:b.userAgent||"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",locale:b.locale||"en-US",timezoneId:b.timezone||"America/New_York",viewport:{width:1280,height:800},...b.storageState?{storageState:b.storageState}:{}});await G(f,b);let g=await H(f,b.warmupUrl);if(x(d)!==a)throw await f.close().catch(()=>{}),g&&await g.close().catch(()=>{}),Error("Pool shut down during context creation");let h={id:e,context:f,warmupPage:g,lastUsed:Date.now(),isStealth:c};return u.contexts.set(e,h),u.metrics.contextsCreated++,u.lastActivity=Date.now(),w(),u.evictTimer&&clearInterval(u.evictTimer),u.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of u.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context","(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),u.contexts.delete(b),u.metrics.contextsEvicted++,c.context.close().catch(()=>{}));for(let[b,c]of u.pendingContexts)a-c.createdAt>3e5&&(u.pendingContexts.delete(b),u.metrics.contextsEvicted++);0!==u.contexts.size||0!==u.pendingContexts.size||u.launching||u.headedLaunching||L("all-contexts-evicted")})(),6e4),u.evictTimer.unref?.(),h})();return u.pendingContexts.set(e,{promise:h,createdAt:Date.now()}),h.then(()=>F(e,!1)).catch(()=>F(e,!0)),h}async function J(a){return a.context.newPage()}async function K(a){let b=[a,`headless:${a}`,`headed:${a}`].find(a=>u.contexts.has(a));if(!b)return;let c=u.contexts.get(b);if(c){u.contexts.delete(b),u.metrics.contextsReleased++;try{await c.context.close()}catch{}0===u.contexts.size&&await L("last-context-closed")}}async function L(a){for(let[b,c]of(u.generation++,u.metrics.shutdowns++,u.metrics.lastShutdownReason=a,u.idleTimer&&(clearTimeout(u.idleTimer),u.idleTimer=null),u.evictTimer&&(clearInterval(u.evictTimer),u.evictTimer=null),u.pendingContexts.clear(),u.contexts)){try{await c.context.close()}catch{}u.contexts.delete(b)}if(u.browser){try{await u.browser.close()}catch{}u.browser=null}if(u.headedBrowser){try{await u.headedBrowser.close()}catch{}u.headedBrowser=null}u.launching=null,u.headedLaunching=null,s(),u.engine=null,u.lastActivity=Date.now()}},83243:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(96179),e=c(8521);let f=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function g(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!f.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class h extends d.L{async execute(a){let b=await super.execute(a);return b?.response?{...b,response:await g(b.response)}:b}async refreshCredentials(a,b){return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(12643);let i=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class j extends d.H{constructor(a="trae"){super(a,h.xq[a]),this.isEnterprise="trae-enterprise"===a}base(){let a=this.config?.baseUrl;if(a)return a.replace(/\/$/,"");if(!this.isEnterprise)return"https://core-normal.trae.ai/api/remote/v1";throw Error(`Trae provider "${this.provider}" has no transport baseUrl`)}buildHeaders(a,b=!0){let c=a?.providerSpecificData||{};return{...this.config?.headers||{},Authorization:`Cloud-IDE-JWT ${a?.accessToken||""}`,"Content-Type":"application/json","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase(),c="work"===b||"auto-work"===b||"solo-work"===b;if(c&&!this.isEnterprise)return{mode:"work",strategy:"auto",modelName:""};let d=!b||"auto"===b||c;return{mode:"code",strategy:d?"auto":"manual",modelName:d?"":a}}commonParams(a,b,c,d){let e=function(a){let b=String(a||"").split(".");if(3!==b.length)return{};try{let a=JSON.parse(Buffer.from(b[1],"base64url").toString());return a?.data||{}}catch{return{}}}(d),f=this.isEnterprise,g={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||(f?"3.5.54":"1.0.0.1229"),web_id:a.webId||"",user_identity:a.userIdentity||(f?"member":"Free"),is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||e.user_id||"",scope:a.scope||(f?e.scope||"saas":"marscode-us"),tenant:a.tenant||(f?e.tenant_id||"tob_online":"marscode"),region:a.region||(f?"cn-beijing":"US-East"),aiRegion:a.aiRegion||a.region||(f?"cn-beijing":"US-East"),is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(g.biz_session_id=c),JSON.stringify(g)}async createSession(a,b,c,d,h,i,j){let k,{mode:l,strategy:m,modelName:n}=this.resolveMode(c),o={mode:l,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:n,agent_type:"solo_agent_remote",model_selection_strategy:m,common_params:this.commonParams(d,l,null,i)},env:"remote",auto_create_project:!1,origin:"web"},p=(0,f.n)(h,this.config?.timeoutMs||g.pH);try{k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(o),signal:p.signal},j||null)}catch(a){throw p.settleError(a)}finally{p.clear()}let q=await k.text();if(!k.ok)throw Error(`[${k.status}] ${q}`);let r=JSON.parse(q);if(r?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(r)}`);return{sessionId:r.data.chat_session_id,messageId:r.data.message_id}}async streamEvents(a,b,c,d,f,g){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,j=new AbortController;f?.aborted&&j.abort();let k=setTimeout(()=>j.abort(Error("trae stream timeout")),i),l=()=>j.abort();f&&f.addEventListener("abort",l,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:j.signal},g||null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,i="",k=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(i+=f.decode(e,{stream:!0});(a=i.indexOf("\n"))>=0;){let b=i.slice(0,a).replace(/\r$/,"");if(i=i.slice(a+1),b.startsWith("event:"))k=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(k,a))return void await c.cancel().catch(()=>{})}else""===b&&(k=null)}}}finally{clearTimeout(k),f&&f.removeEventListener("abort",l)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=d?.providerSpecificData||{},h=d?.proxyOptions||null,i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
|
|
295
|
+
${e}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<h)continue;let a=c.tool_calls.map(a=>({id:a.id,function:a.function}));e=[e,`Previous assistant tool calls: ${JSON.stringify(a)}`].filter(Boolean).join("\n")}e.trim()&&i.push({role:d,text:e})}let j=-1;for(let a=i.length-1;a>=0;a--)if("user"===i[a].role){j=a;break}for(let a=0;a<i.length;a++)g.push(a===j?i[a].text:`${i[a].role}: ${i[a].text}`);return f.trim()&&g.push(f.trim()),g.join("\n\n")}(G,P,b?.tool_choice):function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;a<b.length;a++){let{role:e,text:f}=b[a];d.push(a===c?f:`${e}: ${f}`)}return d.join("\n\n")}(G);if(!Q.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:E,headers:{},transformedBody:b};let R={temporary:!0,modelName:M,modelMode:N,message:Q,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},S=I(16),T=I(8),U={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Baggage:"sentry-environment=production,sentry-release=d6add6fb0460641fd482d767a335ef72b9b6abb8,sentry-public_key=b311e0f2690c81f25e2c4cf6d4f7ce1c","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":k.CO,"x-statsig-id":H(),"Browser-Id":crypto.randomUUID(),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${S}-${T}-00`};if(d.apiKey){let a=(0,D.lT)(d.apiKey);a&&(U.Cookie=a)}r?.info?.("GROK-WEB",`Query to ${a} (grok=${M}, mode=${N}), len=${Q.length}`);let V=!(0,g.hasProxyEgress)(E,y),W=(0,h.n)(e,this.config?.timeoutMs||f.Z1);try{z=V?await (0,k.X7)(E,{method:"POST",headers:U,body:JSON.stringify(R),timeoutMs:12e4,signal:W.signal}):await (0,g.proxyAwareFetch)(E,{method:"POST",headers:U,body:JSON.stringify(R),signal:W.signal},y)}catch(a){if(a instanceof k.jm)return{response:new Response(JSON.stringify({error:{message:a.message,type:"configuration_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};return r?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}finally{W.clear()}if(!z.ok){let a=z.status,b=`Grok returned HTTP ${a}`;return(0,k.ZB)(await z.clone().text().catch(()=>""))?b="Grok returned a Cloudflare challenge — cf_clearance in the pasted Cookie header no longer matches this machine. Re-copy the full Cookie header from a logged-in grok.com browser on this machine.":401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),r?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R}}if(!z.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:E,headers:U,transformedBody:R};let X=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,Y=Math.floor(Date.now()/1e3);if(c){var Z;let b;A=new Response((Z=z.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f="",g="",h=!1,k=[];for await(let i of K(Z,O,e)){if(i.fingerprint&&(f=i.fingerprint),i.error){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:`[Error: ${i.error}]`},finish_reason:null,logprobs:null}]})));break}if(i.thinking){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{reasoning_content:i.thinking},finish_reason:null,logprobs:null}]})));continue}if(i.toolCard&&P){let a=B(i.toolCard,i.toolCardId,P);a&&k.push(a);continue}if(i.done)break;if(i.delta)if(P?.enabled){var d;if(g+=i.delta,d=g,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>")){h=!0;continue}if(h)continue;let e=Math.min(12,g.length),k=g.slice(0,g.length-e);k&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:k},finish_reason:null,logprobs:null}]}))),g=g.slice(g.length-e)}else c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:i.delta},finish_reason:null,logprobs:null}]})));i.fullMessage&&P?.enabled&&(g=i.fullMessage)}let l=(P?.enabled?C(g,P):null)||(k.length?k:null);if(l?.length){for(let d=0;d<l.length;d++)c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{tool_calls:[{index:d,...l[d]}]},finish_reason:null,logprobs:null}]})));c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]})))}else g&&c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{content:g},finish_reason:null,logprobs:null}]}))),c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:f||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]})));c.enqueue(b.encode(i.$U))}catch(d){c.enqueue(b.encode((0,j.N)({id:X,object:"chat.completion.chunk",created:Y,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode(i.$U))}finally{c.close()}}})),{status:200,headers:{...i.uB}})}else A=await L(z.body,a,X,Y,O,e,P);return{response:A,url:E,headers:U,transformedBody:R}}async generateMedia({prompt:a,kind:b="image",size:c,duration:d,n:e=1,credentials:f,signal:g,log:h}){if("image"!==b&&"video"!==b)throw Error("Grok Web supports image and video generation only");if(!a?.trim())throw Error("prompt is required for media generation");let i="video"===b?1:Math.max(1,e),j=(0,D.lT)(String(f?.apiKey||""));if(!j)throw Error("Grok Web requires the grok.com Cookie header (sso) pasted into the connection");let l=[];for(let e=0;e<i;e++){if(g?.aborted)throw Error("aborted");let e=crypto.randomUUID(),f={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":k.CO,"Sec-Ch-Ua":'"Chromium";v="146", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Origin:"https://grok.com",Referer:"https://grok.com/","Browser-Id":e,"x-xai-request-id":e,"x-statsig-id":H(),Cookie:j},i="video"===b?function({prompt:a,size:b,duration:c}){return{modelName:"imagine-video-gen",message:`${a} --mode=custom`,enableImageStreaming:!0,enableSideBySide:!0,sendFinalMetadata:!0,responseMetadata:{experiments:[],modelConfigOverride:{modelMap:{}}},mediaGenInput:{textToVideo:{prompt:a,aspectRatio:/^\d{1,2}:\d{1,2}$/.test(String(b||""))?String(b):"16:9",duration:Number.isFinite(Number(c))&&Number(c)>0?Number(c):6,resolutionName:"480p"}},kind:"CONVERSATION_KIND_IMAGINE"}}({prompt:a,size:c,duration:d}):{temporary:!0,modelName:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",message:c?`Generate an image (${c}): ${a}`:`Generate an image: ${a}`,fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!0,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!0,imageGenerationCount:1,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!1,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1,deviceEnvInfo:{darkModeEnabled:!1,devicePixelRatio:2,screenWidth:2056,screenHeight:1329,viewportWidth:2056,viewportHeight:1083}},m=await (0,k.X7)(E,{method:"POST",headers:f,body:JSON.stringify(i),timeoutMs:"video"===b?3e5:17e4,signal:g}),n=await m.text();if(!m.ok||(0,k.ZB)(n))throw Error((0,k.ZB)(n)?"Grok returned a Cloudflare challenge — re-copy the full Cookie header (with cf_clearance) from a logged-in grok.com browser on this machine":`grok ${b} request failed: HTTP ${m.status} ${n.slice(0,200)}`);if("video"===b){let a=function(a){let b=[],c=a=>{if(!(b.length>8)){if("string"==typeof a){if(/\.mp4(\?|#|$)/i.test(a))return void b.push(a);let d=a.trim();if(d.startsWith("{")||d.startsWith("["))try{c(JSON.parse(d))}catch{}return}if(Array.isArray(a))return void a.forEach(c);a&&"object"==typeof a&&Object.values(a).forEach(c)}};for(let b of String(a).split("\n")){let a=b.trim();if(a.startsWith("{"))try{c(JSON.parse(a))}catch{}}return b[b.length-1]||null}(n);if(!a)throw h?.warn?.("GROK-WEB",`no video URL in stream, tail: ${n.slice(-300)}`),Error("grok returned no video asset — quota may be exhausted (1 video/day) or the prompt was moderated");let b=await (0,k.X7)(a.startsWith("http")?a:`https://assets.grok.com/${a}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:12e4,signal:g});if(!b.ok)throw Error(`video download failed: HTTP ${b.status}`);let c=Buffer.from(await b.arrayBuffer());l.push({b64:c.toString("base64"),mime:"video/mp4"});break}let o=null;for(let a of n.split("\n")){let b,c;if(!a.trim().startsWith("{"))continue;try{b=JSON.parse(a)}catch{continue}let d=b?.result?.response?.cardAttachment?.jsonData;if("string"!=typeof d)continue;try{c=JSON.parse(d)}catch{continue}let e=c?.image_chunk;e&&Number(e.progress)>=100&&e.imageUrl&&(o=e)}if(!o)throw Error("grok returned no completed image chunk — prompt may have been moderated or image generation is unavailable for this account");let p=await (0,k.X7)(`https://assets.grok.com/${o.imageUrl}`,{method:"GET",headers:{"User-Agent":k.CO,Referer:"https://grok.com/",Cookie:j},timeoutMs:6e4,signal:g});if(!p.ok)throw Error(`image download failed: HTTP ${p.status}`);let q=Buffer.from(await p.arrayBuffer());l.push({b64:q.toString("base64"),mime:o.mimeType||"image/jpeg"})}return h?.info?.("GROK-WEB",`${b} generation completed (${l.length} item(s))`),l}}},80479:(a,b,c)=>{c.d(b,{qG:()=>J,we:()=>K,gZ:()=>u,zD:()=>L}),c(4573);var d=c(20742),e=c(31421),f=c(77030);let g=null,h=null;async function i(){let a=process.env.OBSCURA_BIN;if(a)return a;let{resolve:b}=await Promise.resolve().then(c.t.bind(c,76760,23)),{existsSync:d,accessSync:e,constants:f}=await Promise.resolve().then(c.t.bind(c,73024,23));for(let a of(process.env.PATH||"").split(":")){let c=b(a,"obscura");try{if(e(c,f.X_OK),d(c))return c}catch{}}return null}async function j(a,b){let c=Date.now()+b;for(;Date.now()<c;){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1500),d=a.replace(/^ws/,"http").replace(/\/$/,"")+"/json/version",e=await fetch(d,{signal:b.signal});if(clearTimeout(c),e.ok)return!0}catch{}await new Promise(a=>setTimeout(a,250))}return!1}async function k(){let a;if(void 0!==(a=process.env.NINEROUTER_BROWSER_POOL)&&("off"===a||"0"===a||"false"===a))return null;if(g)return g;if(h)return h;h=(async()=>{let a=process.env.OBSCURA_CDP_ENDPOINT;if(a)return g={child:null,endpoint:a};let b=await i();if(!b)return null;let c=Number(process.env.OBSCURA_PORT)||await new Promise((a,b)=>{let c=(0,f.createServer)();c.once("error",b),c.listen(0,"127.0.0.1",()=>{let d=c.address();c.close(()=>{d&&"object"==typeof d?a(d.port):b(Error("obscura: could not allocate a free port"))})})}),d=(0,e.spawn)(b,["serve","--port",String(c),"--host","127.0.0.1"],{stdio:["ignore","ignore","pipe"]});d.stderr?.on("data",()=>{});let h=`http://127.0.0.1:${c}`,k=new Promise(a=>{d.once("exit",()=>a(!0)),d.once("error",()=>a(!0))});return!0!==await Promise.race([j(h,3e4),k.then(()=>!1)])?(d.kill("SIGKILL"),null):g={child:d,endpoint:h}})();try{return await h}finally{h=null}}async function l(){let a=await k();if(!a)return null;try{let{chromium:b}=await (0,d.A)("playwright-core");return{browser:await b.connectOverCDP(a.endpoint),child:a.child}}catch{return null}}let m="Missing X server or $DISPLAY: a headed browser needs a display. Install Xvfb (apt-get install xvfb) or run with xvfb-run.";class n extends Error{constructor(a){super(a?`${m} (${a})`:m),this.name="MissingDisplayError",this.code="NINER_NO_DISPLAY"}}let o=null,p=null,q=!1;async function r(a={}){let b=a.env??process.env;if(!((a.platform??process.platform)!=="linux"||function(a=process.env){return!!(a.DISPLAY||a.WAYLAND_DISPLAY)}(b))){if(o&&null===o.child.exitCode&&!o.child.killed)return o.display;if(o=null,!p){var c,d;p=(c=a.spawn??e.spawn,d=a.timeoutMs??5e3,new Promise((a,b)=>{let e=c("Xvfb",["-displayfd","3","-screen","0","1280x1024x24","-nolisten","tcp"],{stdio:["ignore","ignore","ignore","pipe"]}),f=!1,g="",h=a=>{if(!f){f=!0,clearTimeout(i);try{e.kill("SIGTERM")}catch{}b(a)}},i=setTimeout(()=>h(new n("Xvfb start timeout")),d);i.unref?.(),e.once("error",a=>h(new n("ENOENT"===a.code?"Xvfb not found":a.message))),e.once("exit",()=>{o?.child===e&&(o=null),h(new n("Xvfb exited"))});let j=e.stdio?.[3];j?.on("data",b=>{g+=b.toString();let c=/^(\d+)\n/.exec(g);if(!c||f)return;f=!0,clearTimeout(i);let d=`:${c[1]}`;o={child:e,display:d},e.unref?.(),a(d)})})).finally(()=>{p=null}),q||a.spawn||(q=!0,process.once("exit",()=>s()))}return p}}function s(){let a=o?.child;o=null;try{a?.kill("SIGTERM")}catch{}}var t=c(4052);function u(a){let b=String(a?.connectionProxyUrl||a?.url||"").trim();if(!1===(a?.connectionProxyEnabled??a?.enabled))return null;if(!b){if(a?.strictProxy===!0&&String(a?.vercelRelayUrl||"").trim())throw Error("This connection proxies through a relay pool, which the browser page cannot use — set a plain http/socks5 proxy URL on the connection for it.");return null}let c=String(a?.connectionNoProxy||"").trim();return{server:b,...c?{bypass:c}:{}}}let v={browser:null,engine:null,headedBrowser:null,contexts:new Map,pendingContexts:new Map,launching:null,headedLaunching:null,generation:0,lastActivity:0,idleTimer:null,evictTimer:null,cloakLaunch:null,cloakLaunchResolved:!1,metrics:{browserLaunches:0,browserLaunchFailures:0,contextsCreated:0,contextsReused:0,contextsEvicted:0,contextsReleased:0,contextCreateFailures:0,shutdowns:0,lastShutdownReason:null}};async function w(){if(v.cloakLaunchResolved)return v.cloakLaunch;v.cloakLaunchResolved=!0;try{v.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{v.cloakLaunch=null}return v.cloakLaunch}function x(){v.idleTimer&&clearTimeout(v.idleTimer),v.idleTimer=setTimeout(()=>{M("idle-timeout")},3e5),v.idleTimer.unref?.()}function y(a){let b=a?v.browser:v.headedBrowser;return b?.isConnected()?b:(b&&z(a,null),null)}function z(a,b){a?v.browser=b:v.headedBrowser=b}function A(a){return a?v.launching:v.headedLaunching}function B(a,b){a?v.launching=b:v.headedLaunching=b}function C(a,b){A(a)===b&&B(a,null)}function D(a){let b=!1!==a.headless;return{headless:b,...a.executablePath?{executablePath:a.executablePath}:{},args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled","--disk-cache-size=52428800",...b?[]:["--window-position=-32000,-32000"]]}}async function E(a,b){if(!b){let{chromium:b}=await (0,d.A)("playwright-core"),c=await r(),e=D(a);return c&&(e.env={...process.env,DISPLAY:c}),(0,t.KI)(b,e)}let c=await l();if(c)return v.engine="obscura",c.browser;let e=await w();if(e)return v.engine="cloakbrowser",e({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});v.engine="chromium";let{chromium:f}=await (0,d.A)("playwright-core");return(0,t.KI)(f,D(a))}async function F(a){let b=!1!==a.headless,c=y(b);if(c)return c;let d=A(b);if(d)return d;let e=v.generation,f=(async()=>{let c=await E(a,b);if(v.generation!==e)throw await c.close().catch(()=>{}),Error("Pool shut down during browser launch");return z(b,c),v.metrics.browserLaunches++,c})();B(b,f);try{let a=await f;return C(b,f),a}catch(a){throw C(b,f),v.metrics.browserLaunchFailures++,a}}function G(a,b){b&&v.metrics.contextCreateFailures++,v.pendingContexts.delete(a)}async function H(a,b){if(b.cookieString){var c,d;let e=(c=b.cookieString,d=b.cookieDomain,c.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(b<0)return null;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();return c&&e?{name:c,value:e,domain:d.startsWith(".")?d:`.${d}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));e.length>0&&await a.addCookies(e)}if(!b.localStorage||0===Object.keys(b.localStorage).length)return;let e=new URL(b.localStorageOrigin||b.warmupUrl||"").origin;await a.addInitScript(({expectedOrigin:a,entries:b})=>{if(window.location.origin===a)for(let[a,c]of b)window.localStorage.setItem(a,c)},{expectedOrigin:e,entries:Object.entries(b.localStorage)})}async function I(a,b){if(!b)return null;let c=null;try{return c=await a.newPage(),await c.goto(b,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500)),c}catch{return await c?.close().catch(()=>{}),null}}async function J(a,b){let c;if(void 0!==(c=process.env.NINEROUTER_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: NINEROUTER_BROWSER_POOL=off — context requested but pool is disabled");let d=!1!==b.headless,e=`${d?"headless":"headed"}:${a}`,f=v.contexts.get(e);if(f)return f.lastUsed=Date.now(),v.lastActivity=Date.now(),v.metrics.contextsReused++,x(),f;let g=v.pendingContexts.get(e);if(g)return g.promise;let h=(async()=>{let a=await F(b),c=d&&("obscura"===v.engine||null!==v.cloakLaunch),f=b.proxy||u(b.proxyOptions),g=await a.newContext({userAgent:b.userAgent||"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",locale:b.locale||"en-US",timezoneId:b.timezone||"America/New_York",viewport:{width:1280,height:800},...f?{proxy:f}:{},...b.storageState?{storageState:b.storageState}:{}});await H(g,b);let h=await I(g,b.warmupUrl);if(y(d)!==a)throw await g.close().catch(()=>{}),h&&await h.close().catch(()=>{}),Error("Pool shut down during context creation");let i={id:e,context:g,warmupPage:h,lastUsed:Date.now(),isStealth:c};return v.contexts.set(e,i),v.metrics.contextsCreated++,v.lastActivity=Date.now(),x(),v.evictTimer&&clearInterval(v.evictTimer),v.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of v.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context","(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),v.contexts.delete(b),v.metrics.contextsEvicted++,c.context.close().catch(()=>{}));for(let[b,c]of v.pendingContexts)a-c.createdAt>3e5&&(v.pendingContexts.delete(b),v.metrics.contextsEvicted++);0!==v.contexts.size||0!==v.pendingContexts.size||v.launching||v.headedLaunching||M("all-contexts-evicted")})(),6e4),v.evictTimer.unref?.(),i})();return v.pendingContexts.set(e,{promise:h,createdAt:Date.now()}),h.then(()=>G(e,!1)).catch(()=>G(e,!0)),h}async function K(a){return a.context.newPage()}async function L(a){let b=[a,`headless:${a}`,`headed:${a}`].find(a=>v.contexts.has(a));if(!b)return;let c=v.contexts.get(b);if(c){v.contexts.delete(b),v.metrics.contextsReleased++;try{await c.context.close()}catch{}0===v.contexts.size&&await M("last-context-closed")}}async function M(a){for(let[b,c]of(v.generation++,v.metrics.shutdowns++,v.metrics.lastShutdownReason=a,v.idleTimer&&(clearTimeout(v.idleTimer),v.idleTimer=null),v.evictTimer&&(clearInterval(v.evictTimer),v.evictTimer=null),v.pendingContexts.clear(),v.contexts)){try{await c.context.close()}catch{}v.contexts.delete(b)}if(v.browser){try{await v.browser.close()}catch{}v.browser=null}if(v.headedBrowser){try{await v.headedBrowser.close()}catch{}v.headedBrowser=null}v.launching=null,v.headedLaunching=null,s(),v.engine=null,v.lastActivity=Date.now()}},83243:(a,b,c)=>{c.d(b,{M:()=>h});var d=c(96179),e=c(8521);let f=/insufficient|balance|credit|quota|exhaust|limit|余额|积分|额度|不足|用完|上限/i;async function g(a){let b=a?.status;if(!a||402!==b&&403!==b&&429!==b)return a;let c=await a.text().catch(()=>"");if(429===b||!f.test(c)){let d=new Headers(a.headers);return d.delete("content-length"),d.delete("content-encoding"),new Response(c,{status:b,statusText:a.statusText,headers:d})}let d=c.trim();try{let a=JSON.parse(c);d=a?.error?.message??a?.message??a?.msg??a?.base_resp?.status_msg??d}catch{}let e=new Headers(a.headers);return e.delete("content-length"),e.delete("content-encoding"),e.set("content-type","application/json"),new Response(JSON.stringify({type:"error",error:{type:"rate_limit_error",message:`usage limit reached: ${d}`}}),{status:429,statusText:"Too Many Requests",headers:e})}class h extends d.L{async execute(a){let b=await super.execute(a);return b?.response?{...b,response:await g(b.response)}:b}async refreshCredentials(a,b){return a?.refreshToken?(0,e.rE)(this.provider,a.refreshToken,b):null}}},85308:(a,b,c)=>{c.d(b,{A:()=>j});var d=c(74957),e=c(39609),f=c(49426),g=c(41004),h=c(12643);let i=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class j extends d.H{constructor(a="trae"){super(a,h.xq[a]),this.isEnterprise="trae-enterprise"===a}base(){let a=this.config?.baseUrl;if(a)return a.replace(/\/$/,"");if(!this.isEnterprise)return"https://core-normal.trae.ai/api/remote/v1";throw Error(`Trae provider "${this.provider}" has no transport baseUrl`)}buildHeaders(a,b=!0){let c=a?.providerSpecificData||{};return{...this.config?.headers||{},Authorization:`Cloud-IDE-JWT ${a?.accessToken||""}`,"Content-Type":"application/json","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:b?"text/event-stream":"application/json"}}resolveMode(a){let b=(a||"").trim().toLowerCase(),c="work"===b||"auto-work"===b||"solo-work"===b;if(c&&!this.isEnterprise)return{mode:"work",strategy:"auto",modelName:""};let d=!b||"auto"===b||c;return{mode:"code",strategy:d?"auto":"manual",modelName:d?"":a}}commonParams(a,b,c,d){let e=function(a){let b=String(a||"").split(".");if(3!==b.length)return{};try{let a=JSON.parse(Buffer.from(b[1],"base64url").toString());return a?.data||{}}catch{return{}}}(d),f=this.isEnterprise,g={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||(f?"3.5.54":"1.0.0.1229"),web_id:a.webId||"",user_identity:a.userIdentity||(f?"member":"Free"),is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||e.user_id||"",scope:a.scope||(f?e.scope||"saas":"marscode-us"),tenant:a.tenant||(f?e.tenant_id||"tob_online":"marscode"),region:a.region||(f?"cn-beijing":"US-East"),aiRegion:a.aiRegion||a.region||(f?"cn-beijing":"US-East"),is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(g.biz_session_id=c),JSON.stringify(g)}async createSession(a,b,c,d,h,i,j){let k,{mode:l,strategy:m,modelName:n}=this.resolveMode(c),o={mode:l,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:n,agent_type:"solo_agent_remote",model_selection_strategy:m,common_params:this.commonParams(d,l,null,i)},env:"remote",auto_create_project:!1,origin:"web"},p=(0,f.n)(h,this.config?.timeoutMs||g.pH);try{k=await (0,e.proxyAwareFetch)(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(o),signal:p.signal},j||null)}catch(a){throw p.settleError(a)}finally{p.clear()}let q=await k.text();if(!k.ok)throw Error(`[${k.status}] ${q}`);let r=JSON.parse(q);if(r?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(r)}`);return{sessionId:r.data.chat_session_id,messageId:r.data.message_id}}async streamEvents(a,b,c,d,f,g){let h=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,j=new AbortController;f?.aborted&&j.abort();let k=setTimeout(()=>j.abort(Error("trae stream timeout")),i),l=()=>j.abort();f&&f.addEventListener("abort",l,{once:!0});try{let b=await (0,e.proxyAwareFetch)(h,{method:"GET",headers:a,signal:j.signal},g||null);if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),f=new TextDecoder,i="",k=null;for(;;){let a,{done:b,value:e}=await c.read();if(b)break;for(i+=f.decode(e,{stream:!0});(a=i.indexOf("\n"))>=0;){let b=i.slice(0,a).replace(/\r$/,"");if(i=i.slice(a+1),b.startsWith("event:"))k=b.slice(6).trim();else if(b.startsWith("data:")){let a,e=b.slice(5).trim();try{a=JSON.parse(e)}catch{a={_raw:e}}if(d(k,a))return void await c.cancel().catch(()=>{})}else""===b&&(k=null)}}}finally{clearTimeout(k),f&&f.removeEventListener("abort",l)}}async execute({model:a,body:b,stream:c,credentials:d,signal:e}){let f,g=d?.providerSpecificData||{},h=d?.proxyOptions||null,i=function(a){let b=[];for(let c of a){let a="";"string"==typeof c.content?a=c.content:Array.isArray(c.content)&&(a=c.content.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??""):"").join("")),"system"===c.role?b.push(`[System]
|
|
307
296
|
${a}`):"assistant"===c.role?b.push(`[Assistant]
|
|
308
297
|
${a}`):b.push(a)}return JSON.stringify([{type:"text",data:{content:b.join("\n\n")}}])}(b?.messages||[]),j=`chatcmpl-${this.provider}-${Date.now()}`,k=Math.floor(Date.now()/1e3),l=(a,b)=>new Response(JSON.stringify({error:{message:b,type:"api_error",code:""}}),{status:a,headers:{"Content-Type":"application/json"}}),m=d?.accessToken||"";if(!m)return{response:l(401,`${this.provider}: no Cloud-IDE-JWT — reconnect this provider`),url:this.base(),headers:{},transformedBody:b};let n=this.buildHeaders({...d,accessToken:m},!1!==c);try{f=await this.createSession(n,i,a,g,e,m,h)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:n,transformedBody:b}}let o=[],p={},q=0,r=null,s=null,t="",u=a=>{a.tool_call_info?.name==="finish"&&(t=a.tool_call_info?.params?.summary||t);let b=a.id;if(!b)return"";b in p||o.push(b);let c=a.thought||"";c.length>=(p[b]||"").length&&(p[b]=c);let d=o.map(a=>p[a]).join(""),e=d.slice(q);return q=d.length,e},v=()=>{let a=o.map(a=>p[a]).join("");return t.startsWith(a)&&t.length>a.length?t.slice(a.length):""};if(!1!==c){let c=new TextEncoder;return{response:new Response(new ReadableStream({start:async b=>{let d=a=>b.enqueue(c.encode(`data: ${JSON.stringify(a)}
|
|
309
298
|
|
|
310
|
-
`));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{if(await this.streamEvents(n,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return s=c,!0;if("token_usage"===b&&(r=c),"plan_item"===b){let b=u(c);b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},e,h),s)d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`${this.provider} ${s.code||""}: ${s.message||""}`,type:"api_error"}});else{let b=v();b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]}),r&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}}),d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]})}b.enqueue(c.encode("data: [DONE]\n\n")),b.close()}catch(a){b.error(a)}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:this.base(),headers:n,transformedBody:b}}try{await this.streamEvents(n,f.sessionId,f.messageId,(a,b)=>"error"===a?(s=b,!0):("token_usage"===a&&(r=b),"plan_item"===a&&u(b),"done"===a),e,h)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:n,transformedBody:b}}if(s)return{response:l(502,`${this.provider} ${s.code||""}: ${s.message||""}`),url:this.base(),headers:n,transformedBody:b};let w={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:o.map(a=>p[a]).join("")+v()},finish_reason:"stop"}]};return r&&(w.usage={prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}),{response:new Response(JSON.stringify(w),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:n,transformedBody:b}}async refreshCredentials(){return null}}},88331:(a,b,c)=>{c.d(b,{Q:()=>s});var d=c(40610),e=c.n(d),f=c(77030),g=c(74957);let h="https://veoaifree.com",i=`${h}/wp-admin/admin-ajax.php`,j=new Set([202,404,409,425]);function k(a){let b=String(a).toLowerCase().replace(/^\[|\]$/g,""),c=b.startsWith("::ffff:")?b.slice(7):b;if(c.includes(".")){let[a,b]=c.split(".").map(Number);return 0===a||10===a||127===a||a>=224||172===a&&b>=16&&b<=31||192===a&&168===b||169===a&&254===b}return"::1"===c||c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe80")||c.startsWith("fe9")||c.startsWith("fea")||c.startsWith("feb")}async function l(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if((0,f.isIP)(b)){if(k(b))throw Error("artifact host is a blocked address");return}let c=await e().promises.lookup(b,{all:!0}).catch(()=>[]);if(!c.length)throw Error("artifact host could not be resolved");for(let{address:a}of c)if(k(a))throw Error("artifact host resolves to a blocked address")}async function m(a,b,c={}){let d=new AbortController,e=setTimeout(()=>d.abort(Error("veoaifree request timed out")),3e4),f=()=>d.abort(a.signal?.reason||Error("aborted"));a.signal?.aborted?f():a.signal?.addEventListener("abort",f,{once:!0});try{let e={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Referer:`${h}/`,...c.headers||{}};a.cookieHeader&&void 0===e.Cookie&&(e.Cookie=a.cookieHeader);let f=await fetch(b,{...c,headers:e,signal:d.signal});return!function(a,b){let c="function"==typeof b.headers.getSetCookie?b.headers.getSetCookie():b.headers.get("set-cookie")?[b.headers.get("set-cookie")]:[];if(!c.length)return;let d=new Map(a.cookieHeader.split(";").filter(Boolean).map(a=>{let b=a.trim().indexOf("=");return b>0?[a.trim().slice(0,b),a.trim().slice(b+1)]:null}).filter(Boolean));for(let a of c){let b=a.split(";")[0]?.trim(),c=b?.indexOf("=");c>0&&b.slice(c+1)&&d.set(b.slice(0,c).trim(),b.slice(c+1))}a.cookieHeader=[...d.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(a,f),f}finally{clearTimeout(e),a.signal?.removeEventListener("abort",f)}}async function n(a){let b=await m(a,h),c=(await b.text()).match(/nonce":"([a-f0-9]+)"/);if(!c)throw Error("failed to extract CSRF nonce from veoaifree.com (site layout changed or rate limited)");return c[1]}async function o(a,b,c){let d=new URLSearchParams({action:"veo_video_generator",nonce:b,...c});return(await m(a,i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:h},body:d.toString()})).text()}function p(a,b){let c=String(a||"").toLowerCase();return/9:16|portrait/.test(c)?`${b}_PORTRAIT`:/1:1|square/.test(c)?`${b}_SQUARE`:`${b}_LANDSCAPE`}async function q(a,b){let c=b;for(let b=0;b<=3;b++){let b=new URL(c);if("https:"!==b.protocol)throw Error("artifact URL must use HTTPS");await l(b.hostname);let d=await m(a,b.toString(),{method:"GET",redirect:"manual"});if(d.status>=300&&d.status<400){let a=d.headers.get("location");if(!a)throw Error("artifact redirect is missing a destination");c=new URL(a,b.toString()).toString();continue}if(j.has(d.status))throw Object.assign(Error("artifact not available yet"),{retryable:!0});if(!d.ok)throw Error(`artifact download failed (HTTP ${d.status})`);let e=(d.headers.get("content-type")||"").split(";")[0].trim().toLowerCase();if(!["video/mp4","application/octet-stream"].includes(e))throw Error(`artifact returned unsupported content type (${e})`);let f=Buffer.from(await d.arrayBuffer());if(f.byteLength>0x6400000)throw Error("artifact exceeds 100MB limit");if(f.length<12||"ftyp"!==f.toString("ascii",4,8))throw Error("artifact is not a valid MP4 file");return f}throw Error("artifact exceeded the redirect limit")}async function r(a,b){let c=null;for(let d=0;d<12;d++)try{return await q(a,b)}catch(a){if(!a.retryable)throw a;c=a,await new Promise(a=>setTimeout(a,5e3))}throw c||Error("artifact did not become available in time")}class s extends g.H{constructor(){super("veoaifree-web",{id:"veoaifree-web",baseUrl:h})}async execute(){return{response:new Response(JSON.stringify({error:{message:"veoaifree-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="video",size:c,credentials:d,signal:e,log:f}){if("video"!==b&&"image"!==b)throw Error("veoaifree-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let g={cookieHeader:"",signal:e},h=await n(g);if("image"===b){let b=(await o(g,h,{promptIMG:a,totalVariationsIMG:"1",aspectRatioIMG:p(c,"IMAGE_ASPECT_RATIO"),actionType:"banan-image-generator"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))throw Error(`veoaifree image generation failed: ${b.slice(0,120)}`);return b.split(",").map(a=>a.trim()).filter(Boolean).map(a=>/^https?:\/\//i.test(a)?{url:a}:{b64:a,mime:"image/png"})}let i=(await o(g,h,{prompt:a,totalVariations:"1",aspectRatio:p(c,"VIDEO_ASPECT_RATIO"),actionType:"full-video-generate"})).trim();if(!i||"0"===i||i.toLowerCase().includes("error"))throw Error(`veoaifree video submit failed: ${i.slice(0,120)}`);for(let a=0;a<30;a++){if(e?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,2e4));let b=(await o(g,h,{sceneData:i,actionType:"final-video-results"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))continue;let c=b.split(/[,\n]/).map(a=>a.trim()).find(a=>/^https?:\/\//i.test(a));if(!c)continue;let d=await r(g,c);return f?.info?.("VEOAI-FREE",`video ready after ${a+1} poll(s)`),[{b64:d.toString("base64"),mime:"video/mp4"}]}throw Error("veoaifree video generation timed out after 10 minutes")}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(55511),e=c(74957),f=c(12643),g=c(47723),h=c(78959);class i extends e.H{constructor(){super("commandcode",f.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers||{},"x-session-id":(0,d.randomUUID)()},e=a?.apiKey||a?.accessToken;return e&&(c.Authorization=`Bearer ${e}`),b&&(c.Accept="text/event-stream"),c}async execute(a){for(let b=0;b<=2;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await j(c.response,a.model);if(!d.ok&&b<2&&(502===d.status||503===d.status||504===d.status)){a.log?.debug?.("RETRY",`CommandCode upstream returned status ${d.status}, retrying ${b+1}/2...`),await new Promise(a=>setTimeout(a,1e3*(b+1)));continue}return c.response=d,c}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function j(a,b){var c,d;let e,f=a.body.getReader(),i=new TextDecoder,j="",k=[],l=null;try{for(;;){let{value:a,done:b}=await f.read();if(b){let a=j.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"&&(l=c)}catch{}break}k.push(a);let c=(j+=i.decode(a,{stream:!0})).split("\n");j=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){d=!0;break}try{b=JSON.parse(e)}catch{continue}if(b?.type==="error"){l=b,d=!0;break}if(b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{f.releaseLock()}catch{}return a}if(l){try{await f.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(l);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",i={model:b},j=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
|
|
299
|
+
`));d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]});try{if(await this.streamEvents(n,f.sessionId,f.messageId,(b,c)=>{if("error"===b)return s=c,!0;if("token_usage"===b&&(r=c),"plan_item"===b){let b=u(c);b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},e,h),s)d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],error:{message:`${this.provider} ${s.code||""}: ${s.message||""}`,type:"api_error"}});else{let b=v();b&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]}),r&&d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[],usage:{prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}}),d({id:j,object:"chat.completion.chunk",created:k,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]})}b.enqueue(c.encode("data: [DONE]\n\n")),b.close()}catch(a){b.error(a)}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:this.base(),headers:n,transformedBody:b}}try{await this.streamEvents(n,f.sessionId,f.messageId,(a,b)=>"error"===a?(s=b,!0):("token_usage"===a&&(r=b),"plan_item"===a&&u(b),"done"===a),e,h)}catch(a){return{response:l(502,a?.message?String(a.message):String(a)),url:this.base(),headers:n,transformedBody:b}}if(s)return{response:l(502,`${this.provider} ${s.code||""}: ${s.message||""}`),url:this.base(),headers:n,transformedBody:b};let w={id:j,object:"chat.completion",created:k,model:a,choices:[{index:0,message:{role:"assistant",content:o.map(a=>p[a]).join("")+v()},finish_reason:"stop"}]};return r&&(w.usage={prompt_tokens:r.prompt_tokens||0,completion_tokens:r.completion_tokens||0,total_tokens:r.total_tokens||0}),{response:new Response(JSON.stringify(w),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:n,transformedBody:b}}async refreshCredentials(){return null}}},88198:(a,b,c)=>{c.d(b,{RF:()=>bj});var d=c(74957),e=c(77598),f=c(73024),g=c(76760),h=c(80479);let i={"image/gif":"gif","image/jpeg":"jpg","image/jpg":"jpg","image/png":"png","image/webp":"webp"};class j extends Error{constructor(a){super(a),this.name="ChatGptWebAttachmentError",this.status=400}}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function m(a,b){return((a??"").split(/[\\/]/).pop()?.replace(/[\u0000-\u001f\u007f]/g,"").trim()||b).slice(0,180)}function n(a){let b=/^data:([^;,]+);base64,/i.exec(a);return b?.[1]?.trim().toLowerCase()}async function o(a){if(a.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");let b=[],c=0;for(let d of a){let a="image"===d.kind?0x1400000:0x3200000;if(!d.ref.toLowerCase().startsWith("data:"))throw new j("ChatGPT Web attachments must be data URLs");let e=function(a){let b=a.indexOf(",");if(b<0)throw new j("Attachment data URL is malformed");let c=a.slice(5,b);if(!/(?:^|;)base64(?:;|$)/i.test(c))throw new j("Attachment data URL must be base64 encoded");let d=(c.split(";")[0]||"application/octet-stream").toLowerCase(),e=a.slice(b+1);if(e.length>0x6400000)throw new j("Attachment is too large");let f=e.replace(/\s/g,"");if(!f||f.length%4!=0||!/^[A-Za-z0-9+/]+={0,2}$/.test(f))throw new j("Attachment contains invalid base64 data");let g=Buffer.from(f,"base64");if(!g.length||g.toString("base64").replace(/=+$/,"")!==f.replace(/=+$/,""))throw new j("Attachment contains invalid base64 data");return{bytes:g,mimeType:d}}(d.ref);if(!e.bytes.length)throw new j("Attachment is empty");if(e.bytes.length>a)throw new j("Attachment is too large");if((c+=e.bytes.length)>0x3200000)throw new j("Combined ChatGPT Web attachments are too large");if("image"===d.kind){let a=function(a,b){let c=a.length>=8&&0x89504e47===a.readUInt32BE(0)?"png":a.length>=3&&255===a[0]&&216===a[1]?"jpeg":a.length>=3&&"GIF"===a.toString("ascii",0,3)?"gif":a.length>=12&&"RIFF"===a.toString("ascii",0,4)&&"WEBP"===a.toString("ascii",8,12)?"webp":null,d=(a.length<24||0x89504e47!==a.readUInt32BE(0)?null:{width:a.readUInt32BE(16),height:a.readUInt32BE(20)})??function(a){if(a.length<4||255!==a[0]||216!==a[1])return null;let b=2;for(;b+9<a.length;){if(255!==a[b]){b+=1;continue}let c=a[b+1];if(c>=192&&c<=195||c>=197&&c<=199||c>=201&&c<=203||c>=205&&c<=207)return{height:a.readUInt16BE(b+5),width:a.readUInt16BE(b+7)};if(216===c||1===c||c>=208&&c<=215){b+=2;continue}b+=2+a.readUInt16BE(b+2)}return null}(a)??(a.length<10||"GIF"!==a.toString("ascii",0,3)?null:{width:a.readUInt16LE(6),height:a.readUInt16LE(8)})??function(a){if(a.length<30||"RIFF"!==a.toString("ascii",0,4)||"WEBP"!==a.toString("ascii",8,12))return null;let b=a.toString("ascii",12,16);if("VP8X"===b)return a.length<30?null:{width:1+((a[24]|a[25]<<8|a[26]<<16)&0xffffff),height:1+((a[27]|a[28]<<8|a[29]<<16)&0xffffff)};if("VP8 "===b)return a.length<30?null:{width:16383&a.readUInt16LE(26),height:16383&a.readUInt16LE(28)};if("VP8L"===b){if(a.length<25)return null;let b=a.readUInt32LE(21);return{width:(16383&b)+1,height:(b>>14&16383)+1}}return null}(a),e="jpeg"===c?"image/jpeg":c?`image/${c}`:void 0;if(!e||!d)throw new j("Image attachment is undecodable or unsupported");if(b.startsWith("image/")&&b!==e&&("image/jpg"!==b||"image/jpeg"!==e))throw new j("Image attachment type does not match its data");if(Math.max(d.width,d.height)>11264||d.width*d.height>4e7)throw new j("Image attachment dimensions are too large");return{mimeType:e,width:d.width,height:d.height}}(e.bytes,d.mimeType??e.mimeType);b.push({kind:"image",name:d.name,mimeType:a.mimeType,size:e.bytes.length,data:e.bytes,width:a.width,height:a.height});continue}b.push({kind:"file",name:d.name,mimeType:d.mimeType??e.mimeType,size:e.bytes.length,data:e.bytes})}return b}function p(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function q(a){return structuredClone(a)}let r=new Set(["add","append","patch","replace"]),s=new Set(["__proto__","constructor","prototype"]);function t(a){if(Array.isArray(a)){for(let b of a)t(b);return}if(p(a))for(let[b,c]of Object.entries(a)){if(s.has(b))throw Error(`Unsafe object key in ChatGPT Web delta: ${b}`);t(c)}}function u(a){let b=[],c=a.replace(/\r\n?/g,"\n").split("\n"),d="message",e=[],f=!1,g=()=>{if(!f){d="message",e=[];return}let a=e.join("\n"),c="[DONE]"===a?{parsed:!1}:function(a){try{return{parsed:!0,value:JSON.parse(a)}}catch{return{parsed:!1}}}(a);b.push({event:d,data:a,...c.parsed?{json:c.value}:{},done:"[DONE]"===a}),d="message",e=[],f=!1};for(let a of c){if(""===a){g();continue}if(a.startsWith(":"))continue;let b=a.indexOf(":"),c=b>=0?a.slice(0,b):a,h=b>=0?a.slice(b+1):"";h.startsWith(" ")&&(h=h.slice(1)),"event"===c?d=h||"message":"data"===c&&(e.push(h),f=!0)}return g(),b}function v(a,b,c){if(c&&"-"===a)return b;if(!/^(?:0|[1-9]\d*)$/.test(a))throw Error(`Invalid ChatGPT Web array index: ${a}`);let d=Number(a);if(!Number.isSafeInteger(d)||d<0||d>(c?b:b-1))throw Error(`ChatGPT Web array index is out of bounds: ${a}`);return d}function w(a,b){if(t(b),null==a)return q(b);if("string"==typeof a&&"string"==typeof b)return a+b;if(Array.isArray(a)){let c=q(a);return Array.isArray(b)?c.push(...q(b)):c.push(q(b)),c}if(p(a)&&p(b))return{...q(a),...q(b)};throw Error(`Cannot append ChatGPT Web delta values (${typeof a}, ${typeof b})`)}function x(a){if("string"!=typeof a||!r.has(a))throw Error(`Unsupported delta operation: ${String(a)}`);return a}class y{constructor(){this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1}snapshot(){return q(this.document)}ingest(a){let b=u(a),c=!1;for(let a of b){if("delta_encoding"===a.event){if("v1"!==a.json)throw Error(`Unsupported ChatGPT Web delta encoding: ${String(a.json)}`);this.document=null,this.lastPath=null,this.lastOperation=null,this.streamDone=!1;continue}"delta"===a.event&&(this.applyDelta(a.json),c=!0),a.done&&(this.streamDone=!0)}return{events:b,changed:c,done:this.streamDone}}applyDelta(a){if(!p(a))throw Error("ChatGPT Web delta payload must be an object");let b=void 0===a.p?this.lastPath:a.p,c=void 0===a.o?this.lastOperation:x(a.o);if("string"!=typeof b||null===c)throw Error("ChatGPT Web delta requires a current or inherited path and operation");this.lastPath=b,this.lastOperation=c,this.applyAt(b,c,a.v)}applyAt(a,b,c){t(c);let d=function(a){if(""===a)return[];if(!a.startsWith("/"))throw Error(`Invalid ChatGPT Web JSON Pointer: ${a}`);return a.slice(1).split("/").map(a=>{let b=a.replace(/~1/g,"/").replace(/~0/g,"~");if(s.has(b))throw Error(`Unsafe JSON Pointer segment: ${b}`);return b})}(a);if(0===d.length)return void this.applyAtRoot(b,c);let e=this.document;for(let b of d.slice(0,-1))if(Array.isArray(e))e=e[v(b,e.length,!1)];else if(p(e)&&Object.hasOwn(e,b))e=e[b];else throw Error(`ChatGPT Web delta path does not exist: ${a}`);let f=d[d.length-1];if(Array.isArray(e))return void this.applyToArray(e,f,b,c);if(!p(e))throw Error(`ChatGPT Web delta path is not mutable: ${a}`);this.applyToObject(e,f,b,c)}applyAtRoot(a,b){if("add"===a||"replace"===a){this.document=q(b);return}if("append"===a){this.document=w(this.document,b);return}if(!Array.isArray(b))throw Error("ChatGPT Web patch value must be an array");for(let a of b){if(!p(a)||"string"!=typeof a.p)throw Error("ChatGPT Web patch entry requires an explicit path and operation");this.applyAt(a.p,x(a.o),a.v)}}applyToArray(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"===c)return void a.splice(v(b,a.length,!0),0,q(d));let e=v(b,a.length,!1);a[e]="append"===c?w(a[e],d):q(d)}applyToObject(a,b,c,d){if("patch"===c)throw Error("Nested ChatGPT Web patch is unsupported");if("add"!==c&&!Object.hasOwn(a,b))throw Error(`ChatGPT Web delta target does not exist: ${b}`);a[b]="append"===c?w(a[b],d):q(d)}}let z="https://chatgpt.com",A=/^\/(?:cdn|unauth-mweb|auth-mweb)\/(?:assets|scripts)\/[A-Za-z0-9._-]+\.js$/,B=/(?:^|\.)oaiusercontent\.com$/i,C="__ninerouterChatGptFirstPartyV1",D="__ninerouterChatGptAbortV1",E="__ninerouterChatGptRequestV1",F=new Map,G=new WeakMap,H=null;function I(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function J(a,b){let c=a.lastIndexOf("export{");if(c<0)return null;let d=a.slice(c+7).match(RegExp(`(?:^|,)${I(b)} as ([A-Za-z_$][\\w$]*)`));return d?.[1]??null}function K(a){let b=new URL(a);if(b.origin!==z||!A.test(b.pathname))throw Error("ChatGPT Web exposed an invalid first-party asset URL");return b.toString()}async function L(a){let b=new AbortController,c=setTimeout(()=>b.abort(),2e4);c.unref?.();try{let c=await fetch(a,{signal:b.signal});if(!c.ok)throw Error("ChatGPT Web first-party asset could not be loaded");let d=Number(c.headers.get("content-length")??"0");if(Number.isFinite(d)&&d>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");let e=new Uint8Array(await c.arrayBuffer());if(e.byteLength>0x1800000)throw Error("ChatGPT Web first-party asset exceeded the size limit");return new TextDecoder().decode(e)}finally{clearTimeout(c)}}function M(a,b){return a instanceof Error?a:Error(b)}async function N(a){let b=await a.evaluate(()=>({modulePreloadUrls:Array.from(document.querySelectorAll('link[rel="modulepreload"][href]'),a=>a.href),resourceUrls:performance.getEntriesByType("resource").map(a=>a.name)}));return Array.from(new Set([...b.resourceUrls,...b.modulePreloadUrls])).filter(a=>{try{let b=new URL(a);return b.origin===z&&A.test(b.pathname)}catch{return!1}})}async function O(a,b){let c,d;try{c=K(a)}catch(a){return b.lastError=M(a,"Invalid ChatGPT asset URL"),null}if(b.visited.has(c))return null;b.visited.add(c);let e=F.get(c);if(e)try{return{assetUrl:c,contract:await e}}catch{F.delete(c)}try{d=await L(c)}catch(a){return b.lastError=M(a,"ChatGPT asset discovery failed"),null}try{let a=function(a){let b=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1],c=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),d=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1],e=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1],f=c?.[1],g=c?.[2];if(!b||!f||!g||!d||!e)throw Error("ChatGPT Web first-party module contract was not found");let h={finalizeRequirements:J(a,b),proofManager:J(a,f),turnstileManager:J(a,g),requestClient:J(a,d),buildSentinelHeaders:J(a,e)};if(Object.values(h).some(a=>null===a))throw Error("ChatGPT Web first-party module contract exports were not found");return h}(d);return F.set(c,Promise.resolve(a)),H=c,{assetUrl:c,contract:a}}catch(f){for(let[a,e]of Object.entries(function(a){let b={},c=a.match(/function ([A-Za-z_$][\w$]*)\(e=!1,t=`none`(?:,n=[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)?)?\)\{return [A-Za-z_$][\w$]*\(`finalized`,e,t(?:,n)?\)\}/)?.[1]??a.match(/finalizeChatRequirements\s*:\s*\(\)\s*=>\s*([A-Za-z_$][\w$]*)/)?.[1];c&&(b.finalizeRequirements=J(a,c)??c);let d=a.match(/Promise\.all\(\[([A-Za-z_$][\w$]*)\.getEnforcementToken\(t,\{forceSync:!0\}\),([A-Za-z_$][\w$]*)\.getEnforcementToken\(t\)\]\)/),e=d?.[1]??a.match(/([A-Za-z_$][\w$]*)\.getEnforcementToken\([^)]*forceSync\s*:\s*!0/)?.[1],f=d?.[2];e&&(b.proofManager=J(a,e)??e),f&&(b.turnstileManager=J(a,f)??f);let g=a.match(/([A-Za-z_$][\w$]*)\.safePost\(`\/sentinel\/chat-requirements\/prepare`/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\.(?:safePost|post)\([`"]\/sentinel\/chat-requirements\/prepare[`"]/)?.[1];g&&(b.requestClient=J(a,g)??g);let h=a.match(/function ([A-Za-z_$][\w$]*)\(e,t,n,r,i,a\)\{let o=\{\};return e\?\.token\?o\[`OpenAI-Sentinel-Chat-Requirements-Token`\]/)?.[1]??a.match(/([A-Za-z_$][\w$]*)\s*=\s*[^;]{0,1200}OpenAI-Sentinel-Chat-Requirements-Token/)?.[1];h&&(b.buildSentinelHeaders=J(a,h)??h);let i=a.match(/(?:^|\}\),)([A-Za-z0-9_$]+):\(function\(e,t,n\)\{n\.d\(t,\{([^}]+)\}\);[\s\S]{0,1800}?async function ([A-Za-z_$][\w$]*)\(e\)\{let t=[A-Za-z_$][\w$]*\(\),n=[A-Za-z_$][\w$]*\(await e\(t\)\)/);if(i){let[,a,c,d]=i,e=c.match(RegExp(`(?:^|,)\\s*([A-Za-z_$][\\w$]*):\\(\\)=>${I(d)}(?:,|$)`))?.[1];e&&(b.resolveIntegrity=e,b.resolveIntegrityModule=a)}return b}(d)))b.partial[a]||(b.partial[a]=e,b.symbolAssetUrls[a]=c);if(b.partial.requestClient&&(b.partial.resolveIntegrity&&b.partial.resolveIntegrityModule||b.partial.finalizeRequirements&&b.partial.proofManager&&b.partial.buildSentinelHeaders)){let a={finalizeRequirements:b.partial.finalizeRequirements??"",proofManager:b.partial.proofManager??"",turnstileManager:b.partial.turnstileManager??b.partial.proofManager??"",requestClient:b.partial.requestClient,buildSentinelHeaders:b.partial.buildSentinelHeaders??"",...b.partial.resolveIntegrity?{resolveIntegrity:b.partial.resolveIntegrity,resolveIntegrityModule:b.partial.resolveIntegrityModule}:{}},d=b.symbolAssetUrls.finalizeRequirements??c;return H=d,{assetUrl:d,contract:a}}let a=Object.keys(b.partial);b.lastError=a.length?Error(`ChatGPT module discovery incomplete: found ${a.join(", ")}`):M(f,"ChatGPT module discovery failed");let e=function(a,b){let c=[],d=new Set,e=/["']\.\/([A-Za-z0-9_-]+\.js)["']/g;for(let f=e.exec(a);f;f=e.exec(a)){let a;try{a=K(new URL(`./${f[1]}`,b).toString())}catch{continue}d.has(a)||(d.add(a),c.push(a))}return c}(d,c);return b.queue.push(...e.filter(a=>!b.visited.has(a))),null}}async function P(a){for(;a.index<a.queue.length&&a.visited.size<512;){let b=a.queue[a.index];a.index+=1;let c=await O(b,a);if(c)return c}return null}async function Q(a){let b={queue:[...H?[H]:[]],visited:new Set,index:0,lastError:null,partial:{},symbolAssetUrls:{}},c=Date.now()+15e3;for(;Date.now()<=c&&b.visited.size<512;){b.queue.push(...await N(a));let d=await P(b);if(d)return d;Date.now()<c&&await new Promise(a=>setTimeout(a,250))}throw Error("ChatGPT Web first-party request module was not loaded")}async function R(a){let b,c,d,e,f,g;if(await a.evaluate(a=>{let b=globalThis;return"object"==typeof b[a]&&null!==b[a]},C))return;let{assetUrl:h,contract:i}=await Q(a),j=(b=JSON.stringify(K(h)),c=JSON.stringify(i),d=JSON.stringify(C),i.resolveIntegrity&&i.resolveIntegrityModule?`import * as upstream from ${b};const names = ${c};const modules = upstream.__webpack_modules__;const factory = modules?.[names.resolveIntegrityModule];if (typeof factory !== "function") throw new Error("ChatGPT integrity module factory is unavailable");const exports = {};const requireShim = id => {if (id === "TI" || id === "DD") return { a: () => crypto.randomUUID() };const real = modules[id];if (typeof real === "function") {const nested = {};real({}, nested, requireShim);return nested;}throw new Error("Unsupported ChatGPT integrity dependency: " + id);};requireShim.d = (target, definitions) => {for (const [name, getter] of Object.entries(definitions)) {Object.defineProperty(target, name, { enumerable: true, get: getter });}};factory({}, exports, requireShim);const resolveIntegrity = exports[names.resolveIntegrity];if (typeof resolveIntegrity !== "function") throw new Error("ChatGPT integrity resolver is unavailable");const sessionPromise = fetch("/api/auth/session", { credentials: "include" }).then(async response => {if (!response.ok) throw new Error("ChatGPT browser session is unavailable");return response.json();});const requestClient = {safePost: async (path, options = {}) => {const headers = new Headers(options.additionalHeaders || {});const session = await sessionPromise;if (typeof session?.accessToken === "string" && session.accessToken) {headers.set("Authorization", "Bearer " + session.accessToken);}headers.set("Accept", "application/json");if (!headers.has("Content-Type")) headers.set("Content-Type", "application/json");const body = typeof options.requestBody === "string" ? options.requestBody : JSON.stringify(options.requestBody ?? {});const response = await fetch("/backend-api" + path, {method: "POST", credentials: "include", headers, body, signal: options.signal});if (options.skipJsonTransform) return response;if (!response.ok) throw new Error("ChatGPT request failed with status " + response.status);return response.json();}};window[${d}] = { requestClient, resolveIntegrity };`:`import * as upstream from ${b};const names = ${c};window[${d}] = {finalizeRequirements: upstream[names.finalizeRequirements],proofManager: upstream[names.proofManager],turnstileManager: upstream[names.turnstileManager],requestClient: upstream[names.requestClient],buildSentinelHeaders: upstream[names.buildSentinelHeaders],resolveIntegrity: names.resolveIntegrity ? upstream[names.resolveIntegrity] : undefined};`),k=(e=[],f=a=>{let b=a.url();(b===h||b.startsWith("blob:"))&&e.push({kind:"requestfailed",detail:`${b} failed: ${a.failure()?.errorText??"unknown error"}`})},g=a=>{e.push({kind:"pageerror",detail:a instanceof Error?a.message:String(a)})},a.on("requestfailed",f),a.on("pageerror",g),{signals:e,dispose:()=>{a.off("requestfailed",f),a.off("pageerror",g)}});try{await a.evaluate(({bridgeKey:a,moduleSource:b})=>new Promise((c,d)=>{let e=globalThis;if("object"==typeof e[a]&&null!==e[a])return void c();let f="",g=new AbortController;document.addEventListener("securitypolicyviolation",a=>{f||(f=`${a.violatedDirective} blocked ${a.blockedURI}`)},{signal:g.signal});let h=URL.createObjectURL(new Blob([b],{type:"text/javascript"})),i=document.createElement("script");i.type="module",i.src=h,i.onload=()=>{URL.revokeObjectURL(h),g.abort(),"object"==typeof e[a]&&null!==e[a]?c():d(Error("ChatGPT Web first-party bridge did not initialize"))},i.onerror=()=>{URL.revokeObjectURL(h),g.abort(),d(Error(f?`csp: ${f}`:"no in-page reason"))},document.head.appendChild(i)}),{bridgeKey:C,moduleSource:j})}catch(c){let a=c instanceof Error?c.message:String(c),b=[...k.signals];throw a.startsWith("csp: ")?b.unshift({kind:"csp",detail:a.slice(5)}):a&&"no in-page reason"!==a&&b.push({kind:"pageerror",detail:a}),Error(function(a){let b="ChatGPT Web first-party bridge module failed to load";if(0===a.length)return`${b} (no CSP violation, failed request or page error was captured)`;let c=a.find(a=>"csp"===a.kind)??a.find(a=>"requestfailed"===a.kind)??a[0];return`${b}: ${c.kind}: ${c.detail}`}(b))}finally{k.dispose()}}async function S(a,b,c){return a.evaluate(async({abortKey:a,attachments:b,bridgeKey:c,requestId:d})=>{let e=globalThis,f=e[c];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a]??={},h=new AbortController;g[d]=h;let i=[];for(let a of b){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files",{requestBody:{file_name:a.name,file_size:a.size,use_case:b,timezone_offset_min:new Date().getTimezoneOffset(),reset_rate_limits:!1,supports_direct_azure_multipart:!0,mime_type:a.mimeType,entry_surface:"chat_composer",selection_method:"file_picker",client_resolved_mime_type:a.mimeType,mime_resolution_source:"filename_extension",store_in_library:!1},signal:h.signal}),d=c;if(c instanceof Response){if(!c.ok){let a=c.status;throw await c.body?.cancel().catch(()=>{}),Error(`ChatGPT Web file registration failed with status ${a}`)}d=await c.json()}if(!d||"object"!=typeof d||"string"!=typeof d.file_id||"string"!=typeof d.upload_url)throw Error("ChatGPT Web file registration returned an invalid response");i.push({fileId:d.file_id,uploadUrl:d.upload_url})}return i},{abortKey:D,attachments:c.map(({kind:a,mimeType:b,name:c,size:d})=>({kind:a,mimeType:b,name:c,size:d})),bridgeKey:C,requestId:b})}async function T(a,b){for(let c of a){let a=await fetch(function(a){let b=new URL(a);if("https:"!==b.protocol||!B.test(b.hostname))throw Error("ChatGPT Web returned an invalid upload destination");return b.toString()}(c.uploadUrl),{method:"PUT",headers:{Accept:"application/json, text/plain, */*","Content-Type":c.attachment.mimeType,"x-ms-blob-type":"BlockBlob","x-ms-version":"2020-04-08"},body:new Uint8Array(c.attachment.data),signal:b??void 0});if(!a.ok)throw Error(`ChatGPT Web attachment upload failed with status ${a.status}`)}}async function U(a,b,c){await a.evaluate(async({abortKey:a,bridgeKey:b,registered:c,requestId:d})=>{let e=globalThis,f=e[b];if("function"!=typeof f?.requestClient?.safePost)throw Error("ChatGPT Web first-party request client is unavailable");let g=e[a],h=g?.[d];if(!h)throw Error("ChatGPT Web request cancellation scope is unavailable");for(let a of c){let b="image"===a.kind?"multimodal":"my_files",c=await f.requestClient.safePost("/files/process_upload_stream",{requestBody:{file_id:a.fileId,use_case:b,index_for_retrieval:"image"!==a.kind,file_name:a.name,entry_surface:"chat_composer",metadata:{store_in_library:!1,is_temporary_chat:!0,library_eligibility_reason:"eligible",is_project_thread:!1}},signal:h.signal,skipJsonTransform:!0});if(c instanceof Response){let a=c.status,b=c.ok;if(await c.text(),!b)throw Error(`ChatGPT Web file processing failed with status ${a}`)}}},{abortKey:D,bridgeKey:C,registered:c,requestId:b})}async function V(a,b,c,d){let e=function(a){if("free"===a.kind)return{model:"auto",reason:a.thinkEnabled};let b="GPT-5.6 Sol"===a.modelLabel?"gpt-5-6":"gpt-5-5";return 4===a.effortIndex?{model:`${b}-pro`,reason:!1}:{model:b,reason:a.effortIndex>0}}(b.selection);await a.evaluate(({mode:a,prompt:b,registered:c,requestId:d,requestKey:e,pluginHints:f})=>{let g=globalThis,h=c.filter(a=>"image"===a.kind),i=c.map(a=>({id:a.fileId,size:a.size,name:a.name,mime_type:a.mimeType,..."image"===a.kind?{width:a.width,height:a.height}:{non_library_my_files_injest_upload:!0},source:"local",is_big_paste:!1})),j=[...a.reason?["reason"]:[],...Array.isArray(f)?f:[]],k={...j.length?{system_hints:j}:{},...i.length?{attachments:i}:{},serialization_metadata:{custom_symbol_offsets:[]}},l=h.length?{content_type:"multimodal_text",parts:[...h.map(a=>({content_type:"image_asset_pointer",asset_pointer:`sediment://${a.fileId}`,size_bytes:a.size,width:a.width,height:a.height})),b]}:{content_type:"text",parts:[b]};(g[e]??={})[d]={body:{action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:l,metadata:k}],parent_message_id:"client-created-root",model:a.model,timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,history_and_training_disabled:!0,conversation_mode:{kind:"primary_assistant"},system_hints:j,supports_buffering:!0,supported_encodings:["v1"]}}},{mode:e,prompt:b.prompt,registered:d,requestId:c,requestKey:E,pluginHints:Array.isArray(b.pluginHints)?b.pluginHints:[]})}async function W(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b],g=[f?.finalizeRequirements,f?.proofManager?.getEnforcementToken,f?.turnstileManager?.getEnforcementToken,f?.buildSentinelHeaders].every(a=>"function"==typeof a),h="function"==typeof f?.resolveIntegrity&&"function"==typeof f?.requestClient?.safePost;if(!g&&!h)throw Error("ChatGPT Web first-party challenge bridge is incomplete");let i=e[a]?.[c],j=e[d]?.[c];if(!i||!j)throw Error("ChatGPT Web request scope is unavailable");if(h){let a=await f.resolveIntegrity(async a=>f.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a},signal:i.signal}));j.additionalHeaders=a?.headers??{}}else{let a=await f.finalizeRequirements(!1,"none");if(i.signal.aborted)throw new DOMException("Aborted","AbortError");let[b,c]=await Promise.all([f.proofManager.getEnforcementToken(a,{forceSync:!0}),f.turnstileManager.getEnforcementToken(a)]);j.additionalHeaders=f.buildSentinelHeaders(a,c,b,null,null,null)}},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function X(a,b){await a.evaluate(async({abortKey:a,bridgeKey:b,requestId:c,requestKey:d})=>{let e=globalThis,f=e[b]?.requestClient,g=e[a]?.[c],h=e[d]?.[c];if("function"!=typeof f?.safePost||!g||!h)throw Error("ChatGPT Web conversation request scope is unavailable");let i=await f.safePost("/f/conversation",{requestBody:h.body,additionalHeaders:h.additionalHeaders,signal:g.signal,skipJsonTransform:!0});if(!(i instanceof Response))throw Error("ChatGPT Web conversation returned an invalid response");if(!i.ok){let a=i.status,b="";try{let a=await i.json(),c=a.detail&&"object"==typeof a.detail?a.detail:a.error&&"object"==typeof a.error?a.error:a,d=c.code??c.message??c.type;"string"==typeof d&&(b=d.slice(0,160))}catch{await i.body?.cancel().catch(()=>{})}throw Error(`ChatGPT Web conversation failed with status ${a}${b?` (${b})`:""}`)}h.response=i},{abortKey:D,bridgeKey:C,requestId:b,requestKey:E})}async function Y(a,b){return a.evaluate(async({requestId:a,requestKey:b,responseLimit:c})=>{let d=globalThis,e=d[b]?.[a],f=e?.response;if(!(f instanceof Response))throw Error("ChatGPT Web conversation response is unavailable");let g=f.body?.getReader();if(!g)throw Error("ChatGPT Web conversation returned an empty stream");let h=new TextDecoder,i=[],j=0;try{for(;;){let{done:a,value:b}=await g.read();if(a)break;if(b){if((j+=b.byteLength)>c)throw await g.cancel().catch(()=>{}),Error("ChatGPT Web conversation response exceeded the size limit");i.push(h.decode(b,{stream:!0}))}}i.push(h.decode())}finally{try{g.releaseLock()}catch{}}return i.join("")},{requestId:b,requestKey:E,responseLimit:0x1000000})}async function Z(a,b,c,d){let e=d.map(({attachment:a,fileId:b})=>({fileId:b,kind:a.kind,mimeType:a.mimeType,name:a.name,size:a.size,width:a.width,height:a.height}));return await U(a,c,e),await V(a,b,c,e),await W(a,c),await X(a,c),Y(a,c)}async function $(a,b){await a.evaluate(({abortKey:a,requestId:b,requestKey:c})=>{let d=globalThis,e=d[a],f=d[c];delete e?.[b],delete f?.[b]},{abortKey:D,requestId:b,requestKey:E}).catch(()=>{})}async function _(a,b){await a.evaluate(({abortKey:a,requestId:b})=>{let c=globalThis[a];c?.[b]?.abort()},{abortKey:D,requestId:b}).catch(()=>{})}async function aa(a,b){let c=G.get(a)??Promise.resolve(),d=()=>{},e=new Promise(a=>{d=a}),f=c.catch(()=>{}).then(()=>e);G.set(a,f),await c.catch(()=>{});try{return await b()}finally{d(),G.get(a)===f&&G.delete(a)}}async function ab(a,b,c={}){let d=c.requestId??crypto.randomUUID();return aa(a,async()=>{if(c.signal?.aborted)throw new DOMException("Aborted","AbortError");let e=()=>{_(a,d)};c.signal?.addEventListener("abort",e,{once:!0});try{await R(a);let e=(await S(a,d,b.attachments)).map((a,c)=>({...a,attachment:b.attachments[c]}));return await T(e,c.signal),await Z(a,b,d,e)}finally{c.signal?.removeEventListener("abort",e),await $(a,d)}})}let ac="https://chatgpt.com";function ad(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ae(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web browser turn requires a non-empty prompt");return a}function af(a){let b;try{b=new URL(a)}catch{throw Error("ChatGPT Web browser session requires a valid URL")}if(b.origin!==ac)throw Error("ChatGPT Web browser session requires the first-party chatgpt.com origin")}function ag(a,b,c){if(!ad(a)||!ad(a.message))return null;let d=a.message,e=ad(d.author)?d.author:null,f=ad(d.content)?d.content:null,g=Array.isArray(f?.parts)?f.parts:[];return e?.role==="assistant"&&f?.content_type==="text"&&g.every(a=>"string"==typeof a)&&"finished_successfully"===d.status&&!0===d.end_turn?{conversationId:b,turnExchangeId:c,text:g.join(""),status:d.status,endTurn:!0}:null}class ah{constructor(a,b={}){this.page=a,this.pageUrl=b.pageUrl??"https://chatgpt.com/?temporary-chat=true",this.selection=b.selection,this.closePageOnCleanup=!0===b.closePageOnCleanup,this.executePageRequest=b.executePageRequest??ab}url(){return this.pageUrl}async start(){af(this.pageUrl);let a=async()=>{this.closePageOnCleanup&&await this.page.close().catch(()=>{})};try{let b=!1;try{b=new URL(this.page.url()).origin===ac}catch{b=!1}return b||await this.page.goto(this.pageUrl,{waitUntil:"domcontentloaded",timeout:3e4}),af(this.page.url()),a}catch(b){throw await a(),b}}async submitPrompt(a){if(!this.selection)throw Error("ChatGPT Web direct request requires a model selection");return af(this.page.url()),this.executePageRequest(this.page,{prompt:ae(a.prompt),attachments:a.attachments,selection:this.selection,pluginHints:a.pluginHints??[]},{signal:a.signal})}}async function ai(a,b){let c;if(b.signal?.aborted)throw Error("ChatGPT Web browser turn aborted");let d=ae(b.prompt);af(a.url());let e=b.timeoutMs??18e4;if(!Number.isFinite(e)||e<=0)throw Error("ChatGPT Web browser turn requires a positive timeout");let f=null,g=new Promise((a,b)=>{c=setTimeout(()=>b(Error("ChatGPT Web browser turn timed out")),e),c.unref?.()});try{let c=(async()=>(f=await a.start(),function(a){if("string"!=typeof a||!a.trim())throw Error("ChatGPT Web direct conversation returned an empty stream");let b=new y,c="",d="",e=null;for(let f of u(a))ad(f.json)&&("string"==typeof f.json.conversation_id&&(c=f.json.conversation_id),"string"==typeof f.json.turn_exchange_id&&(d=f.json.turn_exchange_id)),"delta_encoding"===f.event&&(e=ag(b.snapshot(),c,d)??e,b=new y),b.ingest(function(a){let b="message"===a.event?"":`event: ${a.event}
|
|
300
|
+
`;return`${b}data: ${a.data}
|
|
301
|
+
|
|
302
|
+
`}(f)),e=ag(b.snapshot(),c,d)??e;let f=ag(b.snapshot(),c,d)??e;return f?{...f,conversationId:c,turnExchangeId:d}:function(a,b,c){let d=ag(a,b,c);if(d)return d;if(!ad(a)||!ad(a.message)){let b=ad(a)?Object.keys(a).sort().join(","):"non-object";throw Error(`ChatGPT Web assistant document is incomplete (root=${b})`)}let e=a.message,f=ad(e.author)?e.author:null,g=ad(e.content)?e.content:null,h=Array.isArray(g?.parts)?g.parts:[],i=JSON.stringify({messageKeys:Object.keys(e).sort(),role:f?.role??null,contentType:g?.content_type??null,partCount:h.length,partTypes:h.map(a=>typeof a),status:e.status??null,endTurn:e.end_turn??null});throw Error(`ChatGPT Web assistant document is incomplete (${i})`)}(b.snapshot(),c,d)}(await a.submitPrompt({prompt:d,attachments:b.attachments??[],pluginHints:b.pluginHints??[],signal:b.signal}))))();return c.catch(()=>{}),await Promise.race([c,g])}finally{clearTimeout(c),await f?.()}}var aj=c(14229),ak=c(25360);let al="https://chatgpt.com/?temporary-chat=true",am=["chatgpt.com","openai.com"];function an(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ao(a){let b=a.toLowerCase().replace(/^\./,"");return am.some(a=>b===a||b.endsWith(`.${a}`))}function ap(a){if(!an(a)||!Array.isArray(a.cookies)||!Array.isArray(a.origins))throw Error("ChatGPT Web browser storage state is invalid");for(let b of a.cookies){if(!an(b)||"string"!=typeof b.name||!b.name||"string"!=typeof b.value||"string"!=typeof b.domain||"string"!=typeof b.path||!b.path.startsWith("/")||"number"!=typeof b.expires||!Number.isFinite(b.expires)||"boolean"!=typeof b.httpOnly||"boolean"!=typeof b.secure||!["Strict","Lax","None"].includes(String(b.sameSite)))throw Error("ChatGPT Web browser storage state contains an invalid cookie");if(!ao(b.domain))throw Error("ChatGPT Web browser storage state contains a foreign cookie domain")}for(let b of a.origins)!function(a){let b;if(!an(a)||"string"!=typeof a.origin||!Array.isArray(a.localStorage))throw Error("ChatGPT Web browser storage state contains an invalid origin");try{b=new URL(a.origin)}catch{throw Error("ChatGPT Web browser storage state contains an invalid origin")}if("https:"!==b.protocol||!ao(b.hostname))throw Error("ChatGPT Web browser storage state contains a foreign origin");for(let b of a.localStorage)if(!an(b)||"string"!=typeof b.name||"string"!=typeof b.value)throw Error("ChatGPT Web browser storage state contains invalid local storage")}(b);let b=structuredClone(a);for(let a of b.cookies)a.name.startsWith("__Host-")&&(a.domain=a.domain.replace(/^\./,""),a.path="/",a.secure=!0);return b}function aq(a){if(null==a)return"";if("string"==typeof a)return a;if(!Array.isArray(a))throw Error("ChatGPT Web clean-room adapter supports text content only");let b=[];for(let c of a){if(an(c)&&("text"===c.type||"input_text"===c.type)&&"string"==typeof c.text){b.push(c.text);continue}if(!("string"==typeof c?c.toLowerCase().startsWith("data:image/"):!!k(c)&&["file","image","image_url","input_file","input_image"].includes(l(c.type)?.toLowerCase()??"")))throw Error("ChatGPT Web clean-room adapter received unsupported content")}return b.join("")}function ar(a){return"string"==typeof a.reasoning_effort?a.reasoning_effort.toLowerCase():an(a.reasoning)&&"string"==typeof a.reasoning.effort?a.reasoning.effort.toLowerCase():null}function as(a){if(null===a||"medium"===a)return 1;if(["none","off","minimal","low"].includes(a))return 0;if("high"===a)return 2;if("xhigh"===a||"max"===a)return 3;throw Error(`ChatGPT Web clean-room adapter does not support reasoning effort ${a}`)}function at(a){let b=a.providerSpecificData,c=b?.storageState??a.apiKey;if("string"==typeof c){let a=c.trim();if(a.startsWith("{"))try{return ap(JSON.parse(a))}catch{throw Error("ChatGPT Web browser storage state JSON is invalid")}let b=a.trim().replace(/^Cookie:\s*/i,"");if(!b)throw Error("ChatGPT Web Cookie header is empty");if(!b.includes("="))return ap({cookies:[{name:"__Secure-next-auth.session-token",value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:!0,secure:!0,sameSite:"Lax"}],origins:[]});let d=b.split(/;\s*/).map(a=>{let b=a.indexOf("=");if(b<=0)throw Error("ChatGPT Web Cookie header contains an invalid cookie");return[a.slice(0,b).trim(),a.slice(b+1)]});if(!d.some(([a])=>/^__Secure-next-auth\.session-token(?:\.\d+)?$/.test(a))){if(b.includes(";")||b.includes("="))throw Error("ChatGPT Web Cookie header is missing __Secure-next-auth.session-token");d.splice(0,d.length,["__Secure-next-auth.session-token",b])}return ap({cookies:d.map(([a,b])=>({name:a,value:b,domain:".chatgpt.com",path:"/",expires:-1,httpOnly:a.startsWith("__Secure-")||a.startsWith("__Host-"),secure:!0,sameSite:"Lax"})),origins:[]})}return ap(c)}function au(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function av(a){let b=process.env;return[a,b.CHATGPT_WEB_CHROME_PATH,b.CHROME_PATH,"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/usr/bin/chromium","/usr/bin/chromium-browser",...b.PROGRAMFILES?[(0,g.join)(b.PROGRAMFILES,"Google","Chrome","Application","chrome.exe")]:[],...b["PROGRAMFILES(X86)"]?[(0,g.join)(b["PROGRAMFILES(X86)"],"Google","Chrome","Application","chrome.exe")]:[],...b.LOCALAPPDATA?[(0,g.join)(b.LOCALAPPDATA,"Google","Chrome","Application","chrome.exe")]:[]].find(a=>!!(a?.trim()&&(0,f.existsSync)(a.trim())))}async function aw(a){let b=(0,h.gZ)(a.proxyOptions),c=function({connectionId:a,storageState:b,proxy:c}){return(0,e.createHash)("sha256").update(a).update("\0").update(JSON.stringify(b)).update("\0").update(c?c.server:"").update("\0").update(c?.bypass||"").digest("hex")}({connectionId:a.connectionId,storageState:a.storageState,proxy:b}),d=await (0,h.qG)(`chatgpt-web-cleanroom:${c}`,{cookieDomain:"chatgpt.com",storageState:a.storageState,userAgent:a.userAgent,locale:a.locale,timezone:a.timezone,warmupUrl:al,headless:!0,executablePath:a.chromeExecutablePath,...b?{proxy:b}:{}}),f=d.warmupPage&&!d.warmupPage.isClosed()?d.warmupPage:await (0,h.we)(d);return d.warmupPage!==f&&(d.warmupPage=f),new ah(f,{pageUrl:al,selection:a.selection,closePageOnCleanup:!1})}function ax(a,b,c,d={}){let f=d.id??`chatcmpl-${(0,e.randomUUID)()}`,g=d.created??Math.floor(Date.now()/1e3);return c?new Response([{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{content:b.text},finish_reason:null}]},{id:f,object:"chat.completion.chunk",created:g,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}].map(a=>`data: ${JSON.stringify(a)}
|
|
303
|
+
|
|
304
|
+
`).join("")+"data: [DONE]\n\n",{headers:{"Content-Type":"text/event-stream; charset=utf-8"}}):Response.json({id:f,object:"chat.completion",created:g,model:a,choices:[{index:0,message:{role:"assistant",content:b.text},finish_reason:"stop"}]})}async function ay(a){let b=function(a,b){if(!an(b))throw Error("ChatGPT Web clean-room adapter requires an object body");let{prompt:c,hasTools:d,requestedTools:e}=function(a){let b,c;if(!Array.isArray(a.messages)||0===a.messages.length)throw Error("ChatGPT Web clean-room adapter requires messages");let d=a.messages[0],e=1===a.messages.length&&an(d)&&"user"===d.role&&!(Array.isArray(a.tools)&&a.tools.length>0),f=!1;if(e)b=aq(d.content);else{let d=(0,aj.S$)(a,a.messages);f=d.hasTools,c=d.requestedTools,b=(function(a){let b=new Map,c=[],d=[],e=!1;for(let f of a){if(!an(f)||"string"!=typeof f.role)throw Error("ChatGPT Web clean-room adapter received an invalid message");let a=aq(f.content).trim();if("system"===f.role||"developer"===f.role){a&&c.push(a);continue}if("user"===f.role){a&&d.push(`User:
|
|
305
|
+
${a}`);continue}if("assistant"===f.role){let c=[];for(let d of(a&&c.push(a),Array.isArray(f.tool_calls)?f.tool_calls:[])){let a="string"==typeof d?.function?.name?d.function.name:"",f=d?.function?.arguments,g="string"==typeof f&&f?f:JSON.stringify(f??{});d?.id&&b.set(d.id,a),c.push(`<tool>{"name": ${JSON.stringify(a)}, "arguments": ${g}}</tool>`),e=!0}c.length&&d.push(`Assistant:
|
|
306
|
+
${c.join("\n")}`);continue}if("tool"===f.role){let c=f.tool_call_id&&b.get(f.tool_call_id)||f.name||"tool";d.push(`Tool result (${c}): ${a||"(no output)"}`),e=!0;continue}throw Error(`ChatGPT Web clean-room adapter does not support the "${f.role}" role`)}return e&&d.push("Continue the task using the tool results above. Do NOT repeat tool calls that already succeeded; perform the next step or give the final answer."),[...c,...d]})(d.effectiveMessages).join("\n\n")}if(!b.trim())throw Error("ChatGPT Web clean-room adapter requires non-empty text");if(new TextEncoder().encode(b).byteLength>4194304)throw Error("ChatGPT Web clean-room adapter prompt is too large");return{prompt:b,hasTools:f,requestedTools:c}}(b),f=function(a){let b=[...function(a){let b=[];for(let[c,d]of(a||[]).entries())if(Array.isArray(d?.content))for(let[a,e]of d.content.entries()){let d;if(!k(e))continue;let f=l(e.type)?.toLowerCase();if("image_url"===f&&k(e.image_url)?d=l(e.image_url.url):"input_image"===f?d=l(e.image_url??e.url):"image"===f&&"string"==typeof e.source&&(d=l(e.source)),!d)continue;let g=l(e.filename??e.name),h=b.length+1,j=n(d);b.push({kind:"image",ref:d,name:m(g,`image-${h}.${function(a){let b=n(a);if(b&&i[b])return i[b];try{let b=/\.([a-zA-Z0-9]{2,5})$/.exec(new URL(a).pathname);if(b&&["gif","jpeg","jpg","png","webp"].includes(b[1].toLowerCase()))return b[1].toLowerCase().replace("jpeg","jpg")}catch{}return"png"}(d)}`),...j?{mimeType:j}:{},messageIndex:c,partIndex:a})}return b}(a),...function(a){let b=[];for(let c of a||[])if(Array.isArray(c?.content))for(let a of c.content){if(!k(a))continue;let c=l(a.type)?.toLowerCase();("file"===c||"input_file"===c)&&b.push(function(a){let b=k(a.file)?a.file:a,c=l(b.file_data??a.file_data),d=l(b.mime_type??a.mime_type)?.toLowerCase(),e=c;if(!e)throw new j("ChatGPT Web file input requires base64 file_data");return e.toLowerCase().startsWith("data:")||(e=`data:${d??"application/octet-stream"};base64,${e}`),{kind:"file",ref:e,name:m(l(b.filename??a.filename),"attachment.bin"),...d?{mimeType:d}:{}}}(a))}return b}(a)];if(b.length>10)throw new j("ChatGPT Web accepts at most 10 attachments per request");return b}(b.messages);return{prompt:c,selection:function(a,b){let c=a.trim().toLowerCase().replace(/^chatgpt-web\//,"").replace(/^cgpt-web\//,"").replace(/\./g,"-");if("gpt-5-6-luna-free"===c)return{kind:"free",thinkEnabled:!1};if("gpt-5-6-luna-free-thinking"===c)return{kind:"free",thinkEnabled:!0};if("gpt-5-6-pro"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:4};if("gpt-5-6-instant"===c||"gpt-5-6"===c)return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0};if(["gpt-5-6-thinking","gpt-5-6-sol"].includes(c))return{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:as(ar(b))};if("gpt-5-5-pro"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:4};if("gpt-5-5-instant"===c)return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:0};if(["gpt-5-5","gpt-5-5-thinking"].includes(c))return{kind:"picker",modelLabel:"GPT-5.5",effortIndex:as(ar(b))};throw Error(`ChatGPT Web clean-room adapter received an unsupported model: ${a}`)}(a,b),attachments:f,hasTools:d,requestedTools:e}}(a.model,a.body),c=await o(b.attachments),d=at(a.credentials),f=au(a.credentials.connectionId);if(!f)throw Error("ChatGPT Web clean-room adapter requires a connection ID");let g=a.credentials.providerSpecificData,h=await aw({connectionId:f,storageState:d,selection:b.selection,userAgent:au(g?.customUserAgent),locale:au(g?.locale),timezone:au(g?.timezone),chromeExecutablePath:av(au(g?.chromeExecutablePath)),proxyOptions:a.proxyOptions||null}),p=await ai(h,{prompt:b.prompt,attachments:c,pluginHints:function(a){if(null==a)return[];let b=Array.isArray(a)?a:"string"==typeof a?a.split(/[,\n]/):[],c=new Set,d=[];for(let a of b){let b="string"==typeof a?a.trim():"";!/^plugin:[A-Za-z0-9_-]+$/.test(b)||c.has(b)||(c.add(b),d.push(b))}return d}(g?.pluginHints),signal:a.signal});if(!b.hasTools)return ax(a.model,p,a.stream);let q=ax(a.model,p,!1);return(0,ak.N)(q,b.requestedTools,a.stream,{idSeed:"cgpt",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:a.model})}let az=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aA=a=>new Promise(b=>setTimeout(b,a));class aB extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}async function aC(a){return a.evaluate(async a=>{let b=globalThis[a],c=[b?.finalizeRequirements,b?.proofManager?.getEnforcementToken,b?.turnstileManager?.getEnforcementToken,b?.buildSentinelHeaders].every(a=>"function"==typeof a),d="function"==typeof b?.resolveIntegrity&&"function"==typeof b?.requestClient?.safePost;if(!c&&!d)throw Error("ChatGPT Web first-party challenge bridge is incomplete");if(d){let a=await b.resolveIntegrity(async a=>b.requestClient.safePost("/sentinel/chat-requirements/prepare",{requestBody:{p:a}}));return{...a?.headers??{}}}let e=await b.finalizeRequirements(!1,"none"),[f,g]=await Promise.all([b.proofManager.getEnforcementToken(e,{forceSync:!0}),b.turnstileManager.getEnforcementToken(e)]);return b.buildSentinelHeaders(e,g,f,null,null,null)},C)}async function aD(a){return a.evaluate(async()=>{let a=await fetch("/api/auth/session",{credentials:"include"});if(!a.ok)throw Error("ChatGPT Web browser session is unavailable");let b=await a.json();if("string"!=typeof b?.accessToken||!b.accessToken)throw Error("ChatGPT Web browser session has no access token");return b.accessToken})}async function aE(a,b,{sizeHint:c,signal:d}){let e=await aC(a),f=await aD(a);return a.evaluate(async({accessToken:a,headers:b,prompt:c,sizeHint:d,maxBytes:e})=>{let f={...b,Authorization:`Bearer ${a}`},g=async(a,b)=>{let c=a.body?.getReader();if(!c)return"";let d=new TextDecoder,e=[],f=0;try{for(;;){let{done:a,value:g}=await c.read();if(a)break;if(g){if((f+=g.byteLength)>b)throw await c.cancel().catch(()=>{}),Error(`response exceeded ${b} bytes`);e.push(d.decode(g,{stream:!0}))}}e.push(d.decode())}finally{try{c.releaseLock()}catch{}}return e.join("")},h=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},i=await h("/backend-api/f/conversation/prepare",{method:"POST",credentials:"include",headers:{...f,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"success",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:crypto.randomUUID(),author:{role:"user"},content:{content_type:"text",parts:[c]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4);if(!i.ok)throw Error(`prepare failed with status ${i.status}`);let j=(await i.json()).conduit_token||"",k=d?`${c} (aspect ratio ${d})`:c,l=new AbortController,m=setTimeout(()=>l.abort(),9e4),n="";try{let a=await fetch("/backend-api/f/conversation",{method:"POST",credentials:"include",signal:l.signal,headers:{...f,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"X-Oai-Turn-Trace-Id":crypto.randomUUID()},body:JSON.stringify({action:"next",messages:[{id:crypto.randomUUID(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:crypto.randomUUID(),model:"auto",client_prepare_state:"sent",timezone_offset_min:new Date().getTimezoneOffset(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})});if(!a.ok){let b=a.status;throw await a.body?.cancel().catch(()=>{}),Error(`conversation failed with status ${b}`)}try{n=await g(a,e)}catch(a){if(!l.signal.aborted&&!/exceeded/.test(String(a?.message||"")))throw a}}finally{clearTimeout(m),l.abort()}let o=(n.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",p=[],q=[],r=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let a of n.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))r(p,a[1]);for(let a of n.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))r(p,a[0]);for(let a of n.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))r(q,a[1]);return{conversationId:o,fileIds:p,sedimentIds:q}},{accessToken:f,headers:e,prompt:b,sizeHint:c,maxBytes:0x1000000})}async function aF(a,b,c,d,{signal:e,log:f}){let g=Date.now(),h=[...d.fileIds],i=[...d.sedimentIds];for(await aA(8e3);;){if(e?.aborted)throw Error("Request aborted");if(Date.now()-g>24e4)throw new aB("ChatGPT image generation timed out",504);let d=await a.evaluate(async({accessToken:a,conversationId:b,maxBytes:c})=>{let d,e=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},f=await e(`/backend-api/conversation/${b}`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},3e4);if(!f.ok)return{status:f.status};if(Number(f.headers.get("content-length")??"0")>c)return{status:413};let g=await f.text();if(g.length>c)return{status:413};try{d=JSON.parse(g)}catch{return{status:502}}let h=[],i=[],j=(a,b)=>{b&&!a.includes(b)&&a.push(b)},k=a=>{if(Array.isArray(a))return a.some(k);if(a&&"object"==typeof a){if("image_asset_pointer"===String(a.content_type||""))return!0;let b=String(a.asset_pointer||"");return!!(b.startsWith("file-service://")||b.startsWith("sediment://"))||Object.values(a).some(k)}return!1},l=a=>{if("string"==typeof a){for(let b of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))j(h,b[1]);for(let b of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))j(h,b[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))j(i,b[1]);return}Array.isArray(a)?a.forEach(l):a&&"object"==typeof a&&Object.values(a).forEach(l)},m="";for(let a of Object.values(d.mapping||{})){let b=(a||{}).message||{},c=String(b.author?.role||"").toLowerCase();if("tool"!==c&&"assistant"!==c)continue;let d=b.metadata||{},e="image_gen"===d.async_task_type,f=k(b.content)||k(d);if(("assistant"!==c||e||f)&&(l({content:b.content,metadata:d}),"assistant"===c&&d.is_error&&b.content?.content_type==="text")){let a=(Array.isArray(b.content.parts)?b.content.parts:[]).filter(a=>"string"==typeof a).join("");a&&(m=a.slice(0,300))}}return{status:200,fileIds:h,sedimentIds:i,errorText:m}},{accessToken:b,conversationId:c,maxBytes:0x2000000});if(200!==d.status)f?.debug?.("CGPT-WEB-IMG",`conversation poll status ${d.status}, retrying`);else{for(let a of d.fileIds)h.includes(a)||h.push(a);for(let a of d.sedimentIds)i.includes(a)||i.push(a);if(h.length>0||i.length>0)return{fileIds:h.filter(a=>"file_upload"!==a),sedimentIds:i};if(d.errorText&&az.test(d.errorText))throw new aB(`ChatGPT refused the image request: ${d.errorText}`,400)}await aA(5e3)}}async function aG(a,b,c,{fileIds:d,sedimentIds:e}){for(let c of d){let d=await a.evaluate(async({accessToken:a,fileId:b})=>{let c=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},d=await c(`/backend-api/files/${b}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!d.ok)return{status:d.status};let e=await d.json(),f=e.download_url||e.url||"";if(!f)return{status:404};let g=await c(f,{},9e4);if(!g.ok)return{status:g.status};let h=await g.blob(),i=new Uint8Array(await h.arrayBuffer()),j="";for(let a=0;a<i.length;a+=32768)j+=String.fromCharCode(...i.subarray(a,a+32768));return{status:200,mime:h.type||"image/png",b64:btoa(j)}},{accessToken:b,fileId:c});if(200===d.status&&d.b64)return{b64:d.b64,mime:d.mime}}for(let d of e){let e=await a.evaluate(async({accessToken:a,conversationId:b,sedimentId:c})=>{let d=async(a,b,c)=>{let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{return await fetch(a,{...b,signal:d.signal})}finally{clearTimeout(e)}},e=await d(`/backend-api/conversation/${b}/attachment/${c}/download`,{credentials:"include",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},6e4);if(!e.ok)return{status:e.status};let f=await e.json(),g=f.download_url||f.url||"";if(!g)return{status:404};let h=await d(g,{},9e4);if(!h.ok)return{status:h.status};let i=await h.blob(),j=new Uint8Array(await i.arrayBuffer()),k="";for(let a=0;a<j.length;a+=32768)k+=String.fromCharCode(...j.subarray(a,a+32768));return{status:200,mime:i.type||"image/png",b64:btoa(k)}},{accessToken:b,conversationId:c,sedimentId:d});if(200===e.status&&e.b64)return{b64:e.b64,mime:e.mime}}throw new aB("ChatGPT image generation produced no downloadable file",502)}async function aH(a,{prompt:b,sizeHint:c,signal:d,log:e}){if(await R(a),d?.aborted)throw Error("Request aborted");let f=await aE(a,b,{sizeHint:c,signal:d});if(!f.conversationId&&0===f.fileIds.length&&0===f.sedimentIds.length)throw new aB("ChatGPT image conversation produced no conversation id",502);let g=await aD(a),h=f.fileIds.length>0||f.sedimentIds.length>0?f:await aF(a,g,f.conversationId,f,{signal:d,log:e});return aG(a,g,f.conversationId,h)}var aI=c(39609),aJ=c(49426),aK=c(41004);let aL="OpenAI-Sentinel-Chat-Requirements-Prepare-Token",aM=a=>Buffer.from(JSON.stringify(a),"utf8").toString("base64"),aN=["https://chatgpt.com/cdn/assets/685809.dec86dcdc1.js","https://chatgpt.com/cdn/assets/399565.a1117ca8b4.js"],aO=["cookie","domain","readyState","title","URL","charset","location"],aP=["caches","crypto","fetch","indexedDB","localStorage","origin"],aQ=["userAgent","language","hardwareConcurrency"],aR=a=>a[Math.floor(Math.random()*a.length)];function aS(a){let b=aR(aQ);return[2080,new Date().toString(),null,0,a,aR(aN),null,"en-US","en-US,en",0,`${b}−${a}`,aR(aO),aR(aP),0,crypto.randomUUID(),"",8,0,0,0,0,0,0,0,0]}async function aT(a,{headers:b,body:c,signal:d,proxyOptions:e=null,timeoutMs:f=aK.pH}){let g,h=(0,aJ.n)(d,f);try{g=await (0,aI.proxyAwareFetch)(a,{method:"POST",headers:{...b,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(c??{}),signal:h.signal},e)}catch(a){throw h.settleError(a)}finally{h.clear()}let i=await g.text().catch(()=>"");if(!g.ok)throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} failed (HTTP ${g.status}) ${i.slice(0,200)}`),{status:g.status});try{return JSON.parse(i)}catch{throw Object.assign(Error(`ChatGPT ${new URL(a).pathname} returned invalid JSON`),{status:502})}}async function aU({baseUrl:a,accessToken:b,userAgent:c,signal:d,proxyOptions:e=null}){let f,g={Authorization:`Bearer ${b}`,"User-Agent":c},h=await aT(`${a}/backend-api/sentinel/chat-requirements/prepare`,{headers:{...g,[aL]:((f=aS(c))[3]=1,f[9]=0,`gAAAAAC${aM(f)}`)},signal:d,proxyOptions:e});if(!h?.prepare_token)throw Object.assign(Error("ChatGPT sentinel prepare returned no prepare_token"),{status:502});let i=await aT(`${a}/backend-api/sentinel/chat-requirements`,{headers:{...g,[aL]:h.prepare_token},signal:d,proxyOptions:e}),j={};return i?.token&&(j["OpenAI-Sentinel-Chat-Requirements-Token"]=i.token),i?.proofofwork?.required&&(j["OpenAI-Sentinel-Proof-Token"]=function({seed:a,difficulty:b,userAgent:c}){if(!a||!b)throw Error("ChatGPT sentinel asked for proof of work without seed/difficulty");let d=performance.now(),e=aS(c);for(let c=0;c<5e5;c++){e[3]=c,e[9]=Math.round(performance.now()-d);let f=aM(e);if((function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b^=b>>>16,b=Math.imul(b,0x85ebca6b)>>>0,b^=b>>>13,b=Math.imul(b,0xc2b2ae35)>>>0,((b^=b>>>16)>>>0).toString(16).padStart(8,"0")})(`${a}${f}`).slice(0,b.length)<=b)return`gAAAAAB${f}~S`}throw Error("ChatGPT sentinel proof of work exhausted its iteration budget")}({seed:i.proofofwork.seed,difficulty:i.proofofwork.difficulty,userAgent:c})),j}async function aV({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:e,proxyOptions:f=null,log:g=null,timeoutMs:h=aK.pH}){if(!e)return!1;let i=(0,aJ.n)(null,h);try{let h=await (0,aI.proxyAwareFetch)(`${a}/backend-api/conversation/${encodeURIComponent(e)}/delete`,{method:"POST",headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json","Content-Type":"application/json",...c?{Cookie:c}:{}},body:"{}",signal:i.signal},f);return g?.debug?.("CGPT-WEB",`conversation delete HTTP ${h.status}`),h.ok}catch(a){return g?.debug?.("CGPT-WEB",`conversation delete failed: ${a?.message||a}`),!1}finally{i.clear()}}let aW=/(content policy|violat(?:es|ed|ion)|can't create|cannot create|i can't generate|i cannot generate|not able to create|unable to create|safety)/i,aX=a=>new Promise(b=>setTimeout(b,a));class aY extends Error{constructor(a,b){super(a),this.name="ChatGptWebImageError",b&&(this.status=b)}}function aZ(a,b,c,d,e=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c),h=()=>f.abort();return d?.addEventListener("abort",h,{once:!0}),(0,aI.proxyAwareFetch)(a,{...b,signal:f.signal},e).finally(()=>{clearTimeout(g),d?.removeEventListener("abort",h)})}function a$(a){return(Array.isArray(a?.cookies)?a.cookies:[]).filter(a=>a?.name&&"string"==typeof a.value).map(a=>`${a.name}=${a.value}`).join("; ")}async function a_(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}let a0=(a,b,c)=>{let d=(a,b)=>{b&&!a.includes(b)&&a.push(b)};for(let c of a.matchAll(/file-service:\/\/([A-Za-z0-9_-]+)/g))d(b,c[1]);for(let c of a.matchAll(/\bfile_00000000[a-f0-9]{24}\b/g))d(b,c[0]);for(let b of a.matchAll(/sediment:\/\/([A-Za-z0-9_-]+)/g))d(c,b[1])};function a1({accessToken:a,userAgent:b,cookie:c,sentinel:d}){return{...d,Authorization:`Bearer ${a}`,"User-Agent":b,...c?{Cookie:c}:{}}}async function a2(a,b,c,d){let{baseUrl:f}=a,g=a1(a),h=await aZ(`${f}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({action:"next",fork_from_shared_post:!1,parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},system_hints:["picture_v2"],partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[b]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,d,a.proxyOptions);if(!h.ok)throw new aY(`ChatGPT prepare failed (HTTP ${h.status})`,h.status||502);let i=await h.json().catch(()=>null),j=i?.conduit_token||"",k=c?`${b} (aspect ratio ${c})`:b,l=await aZ(`${f}/backend-api/f/conversation`,{method:"POST",headers:{...g,"Content-Type":"application/json",Accept:"text/event-stream","X-Conduit-Token":j,"X-Oai-Turn-Trace-Id":(0,e.randomUUID)()},body:JSON.stringify({action:"next",messages:[{id:(0,e.randomUUID)(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[k]},metadata:{developer_mode_connector_ids:[],selected_github_repos:[],selected_all_github_repos:!1,system_hints:["picture_v2"],serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"sent",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,system_hints:["picture_v2"],supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{is_dark_mode:!1,time_since_loaded:1200,page_height:1072,page_width:1724,pixel_ratio:1.2,screen_height:1440,screen_width:2560,app_name:"chatgpt.com"},paragen_cot_summary_display_override:"allow",force_parallel_switch:"auto"})},105e3,d,a.proxyOptions);if(!l.ok)throw new aY(`ChatGPT conversation failed (HTTP ${l.status})`,l.status||502);let m=await a_(l,0x1000000,9e4),n=(m.match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"",o=[],p=[];return a0(m,o,p),{conversationId:n,fileIds:o,sedimentIds:p}}async function a3(a,b,c,{signal:d,log:e}){let f=Date.now(),g=[...c.fileIds],h=[...c.sedimentIds],i={...a1(a),Accept:"application/json"};for(await aX(5e3);Date.now()-f<=24e4;){if(d?.aborted)throw Error("Request aborted");let c=await aZ(`${a.baseUrl}/backend-api/conversation/${b}`,{headers:i},3e4,d,a.proxyOptions).catch(()=>null);if(!c?.ok){e?.debug?.("CGPT-WEB-IMG",`conversation poll status ${c?.status??"network"}, retrying`),await aX(5e3);continue}if(Number(c.headers.get("content-length")??"0")>0x2000000)throw new aY("ChatGPT conversation document is unexpectedly large",502);let f=await c.text().catch(()=>"");if(f.length>0x2000000)throw new aY("ChatGPT conversation document is unexpectedly large",502);if(a0(f,g,h),g.length>0||h.length>0)return{fileIds:g.filter(a=>"file_upload"!==a),sedimentIds:h};if(aW.test(f)&&/"is_error"\s*:\s*true/.test(f))throw new aY("ChatGPT refused the image request (content policy)",400);if(/ChatGPTAgentToolRateLimitException|Free plan limit for image generation/i.test(f))throw new aY("ChatGPT account has hit its image generation quota — add another account or wait for the reset",429);await aX(5e3)}throw new aY("ChatGPT image generation timed out",504)}async function a4(a,b,c){let d=await aZ(b,{},9e4,c,a.proxyOptions);if(!d.ok)return null;let e=Buffer.from(await d.arrayBuffer());return e.length?{b64:e.toString("base64"),mime:(d.headers.get("content-type")||"image/png").split(";")[0]}:null}async function a5(a,b,{fileIds:c,sedimentIds:d},e){let f={...a1(a),Accept:"application/json"};for(let b of c){let c=await aZ(`${a.baseUrl}/backend-api/files/${b}/download`,{headers:f},6e4,e,a.proxyOptions).catch(()=>null);if(!c?.ok)continue;let d=await c.json().catch(()=>null),g=d?.download_url||d?.url||"";if(!g)continue;let h=await a4(a,g,e);if(h)return h}for(let c of d){let d=await aZ(`${a.baseUrl}/backend-api/conversation/${b}/attachment/${c}/download`,{headers:f},6e4,e,a.proxyOptions).catch(()=>null);if(!d?.ok)continue;let g=await d.json().catch(()=>null),h=g?.download_url||g?.url||"";if(!h)continue;let i=await a4(a,h,e);if(i)return i}throw new aY("ChatGPT image generation produced no downloadable file",502)}async function a6({baseUrl:a,accessToken:b,cookie:c,userAgent:d,prompt:e,sizeHint:f,signal:g,log:h,proxyOptions:i=null}){if(!b)throw new aY("ChatGPT session has no access token",401);if(g?.aborted)throw Error("Request aborted");let j=await aU({baseUrl:a,accessToken:b,userAgent:d,signal:g,proxyOptions:i}),k={baseUrl:a,accessToken:b,cookie:c,userAgent:d,sentinel:j,proxyOptions:i||null},l=await a2(k,e,f,g);if(!l.conversationId&&0===l.fileIds.length&&0===l.sedimentIds.length)throw new aY("ChatGPT image conversation produced no conversation id",502);let m=l.fileIds.length>0||l.sedimentIds.length>0?l:await a3(k,l.conversationId,l,{signal:g,log:h});try{return await a5(k,l.conversationId,m,g)}finally{aV({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:l.conversationId,proxyOptions:i,log:h})}}let a7=a=>new Promise(b=>setTimeout(b,a));function a8(a,b,c,d,e=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c),h=()=>f.abort();return d?.addEventListener("abort",h,{once:!0}),(0,aI.proxyAwareFetch)(a,{...b,signal:f.signal},e).finally(()=>{clearTimeout(g),d?.removeEventListener("abort",h)})}async function a9(a,b,c){let d=a.body?.getReader();if(!d)return"";let e=new TextDecoder,f="",g=Date.now()+c;try{for(;Date.now()<g;){let{done:a,value:c}=await d.read();if(a)break;if(c&&(f+=e.decode(c,{stream:!0})).length>b)break}}catch{}finally{await d.cancel().catch(()=>{})}return f}async function ba(a,{limit:b,deadlineMs:c,signal:d,onText:e}){let f=a.body?.getReader();if(!f)return{raw:"",text:""};let g=new TextDecoder,h=new y,i=Date.now()+c,j="",k="",l="",m=()=>{let a=k.split(/\r?\n\r?\n/);for(let b of(k=a.pop()||"",a))if(b.trim())try{h.ingest(`${b}
|
|
307
|
+
|
|
308
|
+
`)}catch{}let b=function(a){let b=a?.mapping||{},c=null;for(let a of Object.values(b)){let b=a?.message;if(!b||"assistant"!==String(b.author?.role||"").toLowerCase()||b.content?.content_type!=="text")continue;let d=(b.content.parts||[]).filter(a=>"string"==typeof a).join(""),e=Number(b.create_time)||0;(!c||e>=c.at)&&(c={text:d,at:e})}return c?.text??""}(h.snapshot());b&&b!==l&&(b.startsWith(l)&&e(b.slice(l.length)),l=b)};try{for(;Date.now()<i;){if(d?.aborted)throw Error("Request aborted");let{done:a,value:c}=await f.read();if(a)break;if(!c)continue;let e=g.decode(c,{stream:!0});if(j+=e,k+=e,j.length>b)break;m()}}catch{}finally{await f.cancel().catch(()=>{})}return{raw:j,text:l}}async function bb({baseUrl:a,accessToken:b,cookie:c,userAgent:d,body:f,signal:g,log:h,proxyOptions:i=null,onDelta:j=null,onReady:k=null}){var l,m;if(!b)throw Object.assign(Error("ChatGPT session has no access token"),{status:401});if(g?.aborted)throw Error("Request aborted");let n=Array.isArray(f?.messages)?f.messages:[];if(0===n.length)throw Object.assign(Error("ChatGPT Web requires messages"),{status:400});let o=(0,aj.S$)(f,n),p=(l=function(a){let b=[],c=[];for(let d of a){let a=String(d?.role||"user"),e=[];if("string"==typeof d?.content)e.push(d.content);else if(Array.isArray(d?.content))for(let a of d.content)"string"==typeof a?e.push(a):"string"==typeof a?.text&&e.push(a.text);if(Array.isArray(d?.tool_calls))for(let a of d.tool_calls){let b=a?.function?.name;if(!b)continue;let c=a.function.arguments;try{c="string"==typeof c?JSON.parse(c):c}catch{}e.push(`<tool>${JSON.stringify({name:b,arguments:c})}</tool>`)}let f=e.join("\n").trim();f&&("system"===a||"developer"===a?b.push(f):"tool"===a?c.push(`Tool result${d?.tool_call_id?` (${d.tool_call_id})`:""}: ${f}`):"assistant"===a?c.push(`Assistant: ${f}`):c.push(f))}return[...b,...c].join("\n\n")}(o.effectiveMessages),m=o.hasTools,m?n.some(a=>"tool"===String(a?.role||"").toLowerCase())?l:`Use the client tools provided below. Do not answer with prose when a tool is needed.
|
|
309
|
+
|
|
310
|
+
${l}
|
|
311
|
+
|
|
312
|
+
Respond with ONLY <tool> blocks, one per line. No prose, no code fences, no explanation before or after the blocks.`:l);if(!p.trim())throw Object.assign(Error("ChatGPT Web requires non-empty text"),{status:400});let q={...await aU({baseUrl:a,accessToken:b,userAgent:d,signal:g,proxyOptions:i}),Authorization:`Bearer ${b}`,"User-Agent":d,...c?{Cookie:c}:{},"Content-Type":"application/json"},r=await a8(`${a}/backend-api/f/conversation/prepare`,{method:"POST",headers:{...q,Accept:"application/json"},body:JSON.stringify({action:"next",parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"success",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},partial_query:{id:(0,e.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[p]}},supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"}})},6e4,g,i);if(!r.ok){let a=(await r.text().catch(()=>"")).slice(0,200);throw Object.assign(Error(`ChatGPT prepare failed (HTTP ${r.status}) ${a}`),{status:r.status||502})}let s=await r.json().catch(()=>null),t=await a8(`${a}/backend-api/f/conversation`,{method:"POST",headers:{...q,Accept:"text/event-stream","X-Conduit-Token":s?.conduit_token||"","X-Oai-Turn-Trace-Id":(0,e.randomUUID)()},body:JSON.stringify({action:"next",messages:[{id:(0,e.randomUUID)(),author:{role:"user"},create_time:Date.now()/1e3,content:{content_type:"text",parts:[p]},metadata:{serialization_metadata:{custom_symbol_offsets:[]}}}],parent_message_id:(0,e.randomUUID)(),model:"auto",client_prepare_state:"sent",timezone_offset_min:0,timezone:"UTC",conversation_mode:{kind:"primary_assistant"},enable_message_followups:!0,supports_buffering:!0,supported_encodings:["v1"],client_contextual_info:{app_name:"chatgpt.com"},force_parallel_switch:"auto"})},135e3,g,i);if(!t.ok)throw Object.assign(Error(`ChatGPT conversation failed (HTTP ${t.status})`),{status:t.status||502});if("function"==typeof k)try{k()}catch{}let u="function"==typeof j,v="",w=((u?(await ba(t,{limit:0x1000000,deadlineMs:12e4,signal:g,onText:a=>{v+=a;try{j(a)}catch{}}})).raw:await a9(t,0x1000000,12e4)).match(/"conversation_id"\s*:\s*"([0-9a-f-]{36})"/)||[])[1]||"";if(!w)throw Object.assign(Error("ChatGPT conversation produced no conversation id"),{status:502});try{let e=Date.now();for(;Date.now()-e<=18e4;){if(g?.aborted)throw Error("Request aborted");let e=await a8(`${a}/backend-api/conversation/${w}`,{headers:{Authorization:`Bearer ${b}`,"User-Agent":d,Accept:"application/json",...c?{Cookie:c}:{}}},3e4,g,i).catch(()=>null);if(e?.ok){let a=await e.json().catch(()=>null),b=a?function(a){let b=a?.mapping||{},c="",d=!1,e="",f=!1;for(let a of Object.values(b)){let b=a?.message;if(b&&"assistant"===String(b.author?.role||"").toLowerCase()&&(b.metadata?.is_complete===!0&&(d=!0),b.content?.content_type==="text"&&(c+=(b.content.parts||[]).filter(a=>"string"==typeof a).join("")),b.metadata?.is_error)){f=!0;let a=(b.content?.parts||[]).filter(a=>"string"==typeof a).join("");a&&(e=a)}}return d?{text:c,errorText:e,isError:f}:null}(a):null;if(b){if(!b.text.trim()&&b.isError)throw Object.assign(Error(`ChatGPT refused the turn${b.errorText?`: ${b.errorText.slice(0,200)}`:""}`),{status:400});if(u)if(b.text.startsWith(v)){let a=b.text.slice(v.length);if(a){v+=a;try{j(a)}catch{}}}else b.text!==v&&h?.warn?.("CGPT-WEB","streamed text diverged from the final conversation document");return h&&!o.hasTools&&h.debug?.("CGPT-WEB",`chat turn complete (${b.text.length} chars)`),{text:b.text,hasTools:o.hasTools,requestedTools:o.requestedTools}}}else h&&h.debug?.("CGPT-WEB",`conversation poll status ${e?.status??"network"}, retrying`);await a7(1500)}throw Object.assign(Error("ChatGPT chat turn timed out"),{status:504})}finally{aV({baseUrl:a,accessToken:b,cookie:c,userAgent:d,conversationId:w,proxyOptions:i,log:h})}}var bc=c(4052),bd=c(92536),be=c(78959);let bf="https://chatgpt.com",bg="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36";async function bh({storageState:a,userAgent:b,signal:c,proxyOptions:d=null,timeoutMs:e=aK.pH}){let f,g=a$(a),h=(0,aJ.n)(c,e);try{f=await (0,aI.proxyAwareFetch)(`${bf}/api/auth/session`,{headers:{"User-Agent":b,Accept:"application/json",...g?{Cookie:g}:{}},signal:h.signal},d)}catch(a){throw h.settleError(a)}finally{h.clear()}if(!f.ok)throw Object.assign(Error(`ChatGPT session unavailable (HTTP ${f.status})`),{status:403===f.status?401:f.status||502});let i=await f.json().catch(()=>null);if("string"!=typeof i?.accessToken||!i.accessToken)throw Object.assign(Error("ChatGPT session is not signed in"),{status:401});return i.accessToken}function bi(a,b){return new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}})}class bj extends d.H{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:bf})}async testConnection(a){try{let b=a?.providerSpecificData?.storageState??a?.apiKey;if("string"!=typeof b||!b.trim())return!1;if(b.trim().startsWith("{"))return JSON.parse(b),!0;return/__Secure-next-auth\.session-token|^[\w-]+\.[\w-]+\.[\w-]+$/.test(b.trim())}catch{return!1}}async execute(a){try{let b=await this.#a(a);if(b)return b;return{response:await ay(a),url:bf,headers:{},transformedBody:a.body}}catch(c){let b=c instanceof Error?c.message:"ChatGPT Web browser execution failed";if((0,bc.BE)(b))return{response:bi(503,"ChatGPT Web requires a Chrome/Chromium browser (headed). Install Google Chrome on the host (or set CHATGPT_WEB_CHROME_PATH), and run `npx playwright-core install chromium`."),url:bf,headers:{},transformedBody:a.body};return{response:bi(Number.isInteger(c?.status)&&c.status>=400&&c.status<=599?c.status:/storage state|credentials|connection ID/i.test(b)?401:/(?:\bHTTP[_\s-]*429\b|\bstatus\s+429\b|\brate[-_\s]?limit(?:ed)?\b|\bquota\s+(?:exhausted|reached|exceeded)\b|\b(?:image(?:\s+upload)?|upload|usage)\s+limit\s+(?:reached|exceeded)\b|\breached\s+(?:your\s+)?(?:image(?:\s+upload)?|upload|usage)\s+limit\b)/i.test(b)?429:/request|messages|prompt|model|tools|text content|reasoning effort/i.test(b)?400:502,b),url:bf,headers:{},transformedBody:a.body}}}async #a(a){let b,c,{credentials:d,body:f,model:g,stream:h,proxyOptions:i=null}=a;try{b=at(d)}catch{return null}let j=d?.providerSpecificData,k="string"==typeof j?.customUserAgent&&j.customUserAgent.trim()?j.customUserAgent.trim():bg,l=Array.isArray(f?.tools)&&f.tools.length>0;if(!0===a.stream&&!l){let c=await bh({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});return this.#b({input:a,accessToken:c,storageState:b,userAgent:k,model:g})}try{let d=await bh({storageState:b,userAgent:k,signal:a.signal,proxyOptions:i});c=await bb({baseUrl:bf,accessToken:d,cookie:a$(b),userAgent:k,body:f,signal:a.signal,log:a.log,proxyOptions:i})}catch(a){if(a?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(a?.message||""))return null;throw a}if(!c.hasTools)return{response:ax(g,{text:c.text},h),url:bf,headers:{},transformedBody:f};let m=ax(g,{text:c.text},!1);return{response:await (0,ak.N)(m,c.requestedTools,h,{idSeed:"call",cid:`chatcmpl-${(0,e.randomUUID)()}`,created:Math.floor(Date.now()/1e3),model:g}),url:bf,headers:{},transformedBody:f}}async #b({input:a,accessToken:b,storageState:c,userAgent:d,model:f}){let g,h,{body:i,signal:j,log:k}=a,l=new TextEncoder,m=new AbortController,n=j?AbortSignal.any([j,m.signal]):m.signal,o=`chatcmpl-${(0,e.randomUUID)()}`,p=Math.floor(Date.now()/1e3),q="string"==typeof f&&f.trim()?f.trim():"chatgpt-web",r=!1,s=null,t=!1,u=new ReadableStream({start:a=>{s=a},cancel(){m.abort()}},{highWaterMark:16384}),v=(a,b=null)=>{if(!t)try{s.enqueue(l.encode((0,bd.N)({id:o,object:"chat.completion.chunk",created:p,model:q,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:b,logprobs:null}]})))}catch{t=!0}},w=new Promise((a,b)=>{g=a,h=b}),x=bb({baseUrl:bf,accessToken:b,cookie:a$(c),userAgent:d,body:i,signal:n,log:k,proxyOptions:a.proxyOptions||null,onReady:()=>g(),onDelta:a=>{r||(r=!0,v({role:"assistant",content:""})),v({content:a})}});x.catch(a=>h(a));try{await w}catch(b){if(b?.code==="TURNSTILE_REQUIRED"||/Turnstile/i.test(b?.message||""))return{response:await ay(a),url:bf,headers:{},transformedBody:i};throw b}return x.then(()=>{if(r||(r=!0,v({role:"assistant",content:""})),v({},"stop"),!t)try{s.enqueue(l.encode(be.$U)),s.close()}catch{t=!0}}).catch(a=>{if(!t){try{s.error(a)}catch{}t=!0}}),{response:new Response(u,{status:200,headers:{...be.uB}}),url:bf,headers:{},transformedBody:i}}async generateMedia({prompt:a,n:b=1,size:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){if(!a)throw Error("prompt is required for image generation");let h=at(d),i=d.providerSpecificData,j="string"==typeof i?.customUserAgent&&i.customUserAgent.trim()?i.customUserAgent.trim():bg,k=[];for(let i=0;i<Math.max(1,b);i++)k.push(await this.#c({prompt:a,size:c,storageState:h,userAgent:j,signal:e,log:f,credentials:d,proxyOptions:g}));return k}async #c({prompt:a,size:b,storageState:c,userAgent:d,signal:e,log:f,credentials:g,proxyOptions:h=null}){try{let g=await bh({storageState:c,userAgent:d,signal:e,proxyOptions:h});return await a6({baseUrl:bf,accessToken:g,cookie:a$(c),userAgent:d,prompt:a,sizeHint:b,signal:e,log:f,proxyOptions:h})}catch(a){if(a?.code!=="TURNSTILE_REQUIRED"&&!/Turnstile/i.test(a?.message||""))throw a;f?.warn?.("CGPT-WEB","Sentinel demanded Turnstile — falling back to the browser path")}let i="string"==typeof g?.connectionId&&g.connectionId.trim()?g.connectionId.trim():null;if(!i)throw Error("ChatGPT Web image generation requires a connection ID");let j=g.providerSpecificData,k=await aw({connectionId:i,storageState:c,selection:{kind:"picker",modelLabel:"GPT-5.6 Sol",effortIndex:0},userAgent:d,locale:"string"==typeof j?.locale?j.locale:void 0,timezone:"string"==typeof j?.timezone?j.timezone:void 0,chromeExecutablePath:av(j?.chromeExecutablePath),proxyOptions:h});try{return await k.start(),await aH(k.page,{prompt:a,sizeHint:b,signal:e,log:f})}finally{await k.page.close().catch(()=>{})}}}},88331:(a,b,c)=>{c.d(b,{Q:()=>s});var d=c(40610),e=c.n(d),f=c(77030),g=c(74957);let h="https://veoaifree.com",i=`${h}/wp-admin/admin-ajax.php`,j=new Set([202,404,409,425]);function k(a){let b=String(a).toLowerCase().replace(/^\[|\]$/g,""),c=b.startsWith("::ffff:")?b.slice(7):b;if(c.includes(".")){let[a,b]=c.split(".").map(Number);return 0===a||10===a||127===a||a>=224||172===a&&b>=16&&b<=31||192===a&&168===b||169===a&&254===b}return"::1"===c||c.startsWith("fc")||c.startsWith("fd")||c.startsWith("fe80")||c.startsWith("fe9")||c.startsWith("fea")||c.startsWith("feb")}async function l(a){let b=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if((0,f.isIP)(b)){if(k(b))throw Error("artifact host is a blocked address");return}let c=await e().promises.lookup(b,{all:!0}).catch(()=>[]);if(!c.length)throw Error("artifact host could not be resolved");for(let{address:a}of c)if(k(a))throw Error("artifact host resolves to a blocked address")}async function m(a,b,c={}){let d=new AbortController,e=setTimeout(()=>d.abort(Error("veoaifree request timed out")),3e4),f=()=>d.abort(a.signal?.reason||Error("aborted"));a.signal?.aborted?f():a.signal?.addEventListener("abort",f,{once:!0});try{let e={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Referer:`${h}/`,...c.headers||{}};a.cookieHeader&&void 0===e.Cookie&&(e.Cookie=a.cookieHeader);let f=await fetch(b,{...c,headers:e,signal:d.signal});return!function(a,b){let c="function"==typeof b.headers.getSetCookie?b.headers.getSetCookie():b.headers.get("set-cookie")?[b.headers.get("set-cookie")]:[];if(!c.length)return;let d=new Map(a.cookieHeader.split(";").filter(Boolean).map(a=>{let b=a.trim().indexOf("=");return b>0?[a.trim().slice(0,b),a.trim().slice(b+1)]:null}).filter(Boolean));for(let a of c){let b=a.split(";")[0]?.trim(),c=b?.indexOf("=");c>0&&b.slice(c+1)&&d.set(b.slice(0,c).trim(),b.slice(c+1))}a.cookieHeader=[...d.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(a,f),f}finally{clearTimeout(e),a.signal?.removeEventListener("abort",f)}}async function n(a){let b=await m(a,h),c=(await b.text()).match(/nonce":"([a-f0-9]+)"/);if(!c)throw Error("failed to extract CSRF nonce from veoaifree.com (site layout changed or rate limited)");return c[1]}async function o(a,b,c){let d=new URLSearchParams({action:"veo_video_generator",nonce:b,...c});return(await m(a,i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:h},body:d.toString()})).text()}function p(a,b){let c=String(a||"").toLowerCase();return/9:16|portrait/.test(c)?`${b}_PORTRAIT`:/1:1|square/.test(c)?`${b}_SQUARE`:`${b}_LANDSCAPE`}async function q(a,b){let c=b;for(let b=0;b<=3;b++){let b=new URL(c);if("https:"!==b.protocol)throw Error("artifact URL must use HTTPS");await l(b.hostname);let d=await m(a,b.toString(),{method:"GET",redirect:"manual"});if(d.status>=300&&d.status<400){let a=d.headers.get("location");if(!a)throw Error("artifact redirect is missing a destination");c=new URL(a,b.toString()).toString();continue}if(j.has(d.status))throw Object.assign(Error("artifact not available yet"),{retryable:!0});if(!d.ok)throw Error(`artifact download failed (HTTP ${d.status})`);let e=(d.headers.get("content-type")||"").split(";")[0].trim().toLowerCase();if(!["video/mp4","application/octet-stream"].includes(e))throw Error(`artifact returned unsupported content type (${e})`);let f=Buffer.from(await d.arrayBuffer());if(f.byteLength>0x6400000)throw Error("artifact exceeds 100MB limit");if(f.length<12||"ftyp"!==f.toString("ascii",4,8))throw Error("artifact is not a valid MP4 file");return f}throw Error("artifact exceeded the redirect limit")}async function r(a,b){let c=null;for(let d=0;d<12;d++)try{return await q(a,b)}catch(a){if(!a.retryable)throw a;c=a,await new Promise(a=>setTimeout(a,5e3))}throw c||Error("artifact did not become available in time")}class s extends g.H{constructor(){super("veoaifree-web",{id:"veoaifree-web",baseUrl:h})}async execute(){return{response:new Response(JSON.stringify({error:{message:"veoaifree-web is a media provider — use /v1/images/generations or /v1/videos/generations",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:{}}}async generateMedia({prompt:a,kind:b="video",size:c,credentials:d,signal:e,log:f}){if("video"!==b&&"image"!==b)throw Error("veoaifree-web supports image and video generation only");if(!a?.trim())throw Error("prompt is required");let g={cookieHeader:"",signal:e},h=await n(g);if("image"===b){let b=(await o(g,h,{promptIMG:a,totalVariationsIMG:"1",aspectRatioIMG:p(c,"IMAGE_ASPECT_RATIO"),actionType:"banan-image-generator"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))throw Error(`veoaifree image generation failed: ${b.slice(0,120)}`);return b.split(",").map(a=>a.trim()).filter(Boolean).map(a=>/^https?:\/\//i.test(a)?{url:a}:{b64:a,mime:"image/png"})}let i=(await o(g,h,{prompt:a,totalVariations:"1",aspectRatio:p(c,"VIDEO_ASPECT_RATIO"),actionType:"full-video-generate"})).trim();if(!i||"0"===i||i.toLowerCase().includes("error"))throw Error(`veoaifree video submit failed: ${i.slice(0,120)}`);for(let a=0;a<30;a++){if(e?.aborted)throw Error("aborted");await new Promise(a=>setTimeout(a,2e4));let b=(await o(g,h,{sceneData:i,actionType:"final-video-results"})).trim();if(!b||"0"===b||b.toLowerCase().includes("error"))continue;let c=b.split(/[,\n]/).map(a=>a.trim()).find(a=>/^https?:\/\//i.test(a));if(!c)continue;let d=await r(g,c);return f?.info?.("VEOAI-FREE",`video ready after ${a+1} poll(s)`),[{b64:d.toString("base64"),mime:"video/mp4"}]}throw Error("veoaifree video generation timed out after 10 minutes")}}},90926:(a,b,c)=>{c.d(b,{Ak:()=>i});var d=c(55511),e=c(74957),f=c(12643),g=c(47723),h=c(78959);class i extends e.H{constructor(){super("commandcode",f.xq.commandcode)}transformRequest(a,b,c,d){return b.stream=!0,b}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers||{},"x-session-id":(0,d.randomUUID)()},e=a?.apiKey||a?.accessToken;return e&&(c.Authorization=`Bearer ${e}`),b&&(c.Accept="text/event-stream"),c}async execute(a){for(let b=0;b<=2;b++){let c=await super.execute(a);if(!c?.response?.ok||!c.response.body)return c;let d=await j(c.response,a.model);if(!d.ok&&b<2&&(502===d.status||503===d.status||504===d.status)){a.log?.debug?.("RETRY",`CommandCode upstream returned status ${d.status}, retrying ${b+1}/2...`),await new Promise(a=>setTimeout(a,1e3*(b+1)));continue}return c.response=d,c}}parseError(a,b){let c=null;try{c=JSON.parse(b||"{}")}catch{c=null}let d=c?.error||c,e=d?.message||c?.message||b||a.statusText;return{status:Number(d?.code||d?.statusCode||a.status)||a.status,message:e||`CommandCode upstream error: ${a.status}`}}}async function j(a,b){var c,d;let e,f=a.body.getReader(),i=new TextDecoder,j="",k=[],l=null;try{for(;;){let{value:a,done:b}=await f.read();if(b){let a=j.trim();if(a)try{let b=a.startsWith("data:")?a.slice(5).trim():a,c=JSON.parse(b);c?.type==="error"&&(l=c)}catch{}break}k.push(a);let c=(j+=i.decode(a,{stream:!0})).split("\n");j=c.pop()||"";let d=!1;for(let a of c){let b,c=a.trim();if(!c)continue;let e=c.startsWith("data:")?c.slice(5).trim():c;if(!e||"[DONE]"===e){d=!0;break}try{b=JSON.parse(e)}catch{continue}if(b?.type==="error"){l=b,d=!0;break}if(b?.type==="text-delta"||b?.type==="reasoning-delta"||b?.type==="tool-input-start"||b?.type==="tool-call"||b?.type==="finish"||b?.type==="finish-step"){d=!0;break}}if(d)break}}catch{try{f.releaseLock()}catch{}return a}if(l){try{await f.cancel()}catch{}let{statusCode:a,message:b,type:c}=function(a){if(!a||"object"!=typeof a)return{statusCode:503,message:"CommandCode upstream error",type:"server_error"};let b=a.error??a.message??"unknown",c="",d=null,e="server_error";if("object"==typeof b&&null!==b?(c=b.message||b.error||JSON.stringify(b),b.statusCode&&Number.isInteger(Number(b.statusCode))?d=Number(b.statusCode):b.status&&Number.isInteger(Number(b.status))&&(d=Number(b.status)),b.type&&(e=b.type)):c="string"==typeof b?b:JSON.stringify(b),a.statusCode&&Number.isInteger(Number(a.statusCode))&&(d=Number(a.statusCode)),!d||d<400||d>599){let a=c.toLowerCase();a.includes("rate limit")||a.includes("too many requests")?(d=429,e="rate_limit_error"):a.includes("unauthorized")||a.includes("invalid api key")||a.includes("authentication")?(d=401,e="authentication_error"):a.includes("payment required")||a.includes("billing")?(d=402,e="billing_error"):a.includes("quota")||a.includes("forbidden")||a.includes("permission")?(d=403,e="permission_error"):a.includes("not found")?(d=404,e="invalid_request_error"):a.includes("unavailable")||a.includes("overloaded")||a.includes("server error")?(d=503,e="server_error"):d=503}return{statusCode:d,message:c,type:e}}(l);return new Response(JSON.stringify({error:{message:`[CommandCode error: ${b}]`,type:c,code:a}}),{status:a,statusText:503===a?"Service Unavailable":429===a?"Too Many Requests":"Bad Gateway",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}return function(a,b,c=null){let d=new TextDecoder,e=new TextEncoder,f="",i={model:b},j=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)}
|
|
311
313
|
|
|
312
314
|
`))},k=new TransformStream({transform(a,b){let c=(f+=d.decode(a,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c)){let c=a.trim();c&&j((0,g.H)(c,i),b)}},flush(a){let b=f.trim();b&&j((0,g.H)(b,i),a),a.enqueue(e.encode(h.$U))}});return new Response(a.pipeThrough(k),{status:c?.status||200,statusText:c?.statusText||"OK",headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive",...c?.headers?Object.fromEntries(c.headers.entries()):{},"content-type":"text/event-stream"}})}((c=k,d=f,e=0,new ReadableStream({async pull(a){if(e<c.length)return void a.enqueue(c[e++]);try{let{value:b,done:c}=await d.read();c?a.close():a.enqueue(b)}catch(b){a.error(b)}},async cancel(a){try{await d.cancel(a)}catch{}}})),b,a)}},92536:(a,b,c)=>{function d(a){return`data: ${JSON.stringify(a)}
|
|
313
315
|
|