@ltgiang/9router 0.5.33 → 0.5.34
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 +13 -13
- package/app/.next-cli-build/build-manifest.json +2 -2
- 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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.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_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 +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- 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/status/route.js.nft.json +1 -1
- 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.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/copilot-settings/route.js.nft.json +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/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/reorder/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/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/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/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/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/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/order/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/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/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/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-exchange/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]/connections/disabled/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]/pool/pull/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/pool/push/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/pool/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/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/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/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/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/settings/database/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 +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/translator/console-logs/route.js +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/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.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.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/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.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/[kind]/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/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/version/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.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 +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
- 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 +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- 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_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 +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- 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 +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- 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 +6 -6
- 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/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +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 +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
- 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 +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
- 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/login.segments/login.segment.rsc +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 +13 -13
- package/app/.next-cli-build/server/chunks/1961.js +1 -1
- package/app/.next-cli-build/server/chunks/1999.js +1 -1
- package/app/.next-cli-build/server/chunks/238.js +1 -1
- package/app/.next-cli-build/server/chunks/2604.js +1 -1
- package/app/.next-cli-build/server/chunks/3008.js +1 -1
- package/app/.next-cli-build/server/chunks/4046.js +1 -1
- package/app/.next-cli-build/server/chunks/4713.js +1 -1
- package/app/.next-cli-build/server/chunks/4885.js +1 -1
- package/app/.next-cli-build/server/chunks/5330.js +41 -41
- package/app/.next-cli-build/server/chunks/5842.js +1 -1
- package/app/.next-cli-build/server/chunks/7094.js +1 -1
- package/app/.next-cli-build/server/chunks/7386.js +1 -1
- package/app/.next-cli-build/server/chunks/8279.js +1 -1
- package/app/.next-cli-build/server/chunks/8668.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +6 -6
- package/app/.next-cli-build/server/chunks/920.js +5 -5
- package/app/.next-cli-build/server/chunks/9212.js +1 -1
- package/app/.next-cli-build/server/chunks/9325.js +1 -1
- package/app/.next-cli-build/server/chunks/9350.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +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/static/chunks/{1321-a56bacd85515954d.js → 1321-9e1795846380aff8.js} +1 -1
- package/app/cli/.build-home/.9router/db/backups/{upgrade-0.5.28-to-0.5.29-0.5.29-20260701-224354 → upgrade-0.5.32-to-0.5.33-0.5.33-20260706-071327}/data.sqlite +0 -0
- package/app/cli/.build-home/.9router/db/data.sqlite +0 -0
- package/app/open-sse/stubs/lib/db/compressionCombos.js +1 -1
- package/app/open-sse/stubs/lib/db/compressionRunTelemetry.js +1 -1
- package/app/open-sse/stubs/lib/db/settings.js +2 -1
- package/app/open-sse/stubs/lib/plugins/hooks.js +3 -3
- package/app/open-sse/stubs/lib/quota/enforce.js +1 -1
- package/app/open-sse/stubs/lib/quota/saturationSignals.js +2 -2
- package/app/package.json +1 -1
- package/package.json +1 -1
- /package/app/.next-cli-build/static/{HN4CGPC0iHrM2dDnVXnrw → HAFJZsWNWI09Kee_8T1D7}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{HN4CGPC0iHrM2dDnVXnrw → HAFJZsWNWI09Kee_8T1D7}/_ssgManifest.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
exports.id=5330,exports.ids=[4989,5330],exports.modules={368:(a,b,c)=>{
|
|
1
|
+
"use strict";exports.id=5330,exports.ids=[4989,5330],exports.modules={368:(a,b,c)=>{c.d(b,{GX:()=>x,JM:()=>t,PZ:()=>v,Yy:()=>B,_3:()=>e,aZ:()=>C,dK:()=>q,dY:()=>l,dt:()=>i,no:()=>w,pA:()=>f,tk:()=>E,u0:()=>n,x5:()=>h,zj:()=>g});var d=c(77598);let e="2.1.195",f="0.94.0";function g(){switch(process.platform){case"win32":return"Windows";case"darwin":return"MacOS";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return"Unknown"}}function h(){switch(process.arch){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x32";default:return process.arch}}function i(){return process.version}function j(a,b,c,d){if(!a.has(b)&&a.size>=d){let b=a.keys().next().value;void 0!==b&&a.delete(b)}a.set(b,c)}let k=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function l(a){if(!a)return null;let b=a["x-claude-code-session-id"]??a["X-Claude-Code-Session-Id"];if("string"!=typeof b)return null;let c=b.trim();return k.test(c)?c:null}let m=new Map;function n(a){let b=m.get(a);return b||j(m,a,b=(0,d.randomUUID)(),1e4),b}let o=new Map,p=/^[a-f0-9]{64}$/i;function q(a,b){let c=a?.cliUserID;if("string"==typeof c&&p.test(c))return c;let e=a?.userID;if("string"==typeof e&&p.test(e))return e;let f=o.get(b);return f||j(o,b,f=(0,d.randomBytes)(32).toString("hex"),1e4),f}let r=new Map,s=new Set;async function t(a){let b=new AbortController,c=setTimeout(()=>b.abort(),1e4);try{let c=await fetch("https://api.anthropic.com/api/claude_cli/bootstrap",{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":`claude-cli/${e} (external, cli)`,"anthropic-beta":"oauth-2025-04-20"},signal:b.signal});if(!c.ok)return null;let d=await c.json().catch(()=>null),f=d?.oauth_account;if(!f||"object"!=typeof f)return null;return{account_uuid:f.account_uuid||null,account_email:f.account_email||null,organization_uuid:f.organization_uuid||null,organization_name:f.organization_name||null,organization_type:f.organization_type||null,organization_rate_limit_tier:f.organization_rate_limit_tier||null}}catch{return null}finally{clearTimeout(c)}}async function u(a,b){if(s.has(b))return;let c=r.get(b);if(!c?.uuid&&!(c&&Date.now()-c.fetchedAt<3e5)){s.add(b);try{let c=await t(a);j(r,b,{uuid:c?.account_uuid??null,fetchedAt:Date.now()},1e4)}finally{s.delete(b)}}}function v(a,b,c){var e;let f=a?.accountUUID;if("string"==typeof f&&f.length>=32)return f;let g=a?.account_uuid;if("string"==typeof g&&g.length>=32)return g;let h=r.get(b);return h?.uuid?h.uuid:(c&&u(c,b),[(e=(0,d.createHash)("sha256").update("account:"+b).digest("hex")).slice(0,8),e.slice(8,12),"4"+e.slice(13,16),(3&parseInt(e.charAt(16),16)|8).toString(16)+e.slice(17,20),e.slice(20,32)].join("-"))}function w(a){return JSON.stringify({device_id:a.deviceId,account_uuid:a.accountUUID,session_id:a.sessionId})}function x(a){let b;if(!a)return null;let c=a.metadata,d=c?.user_id;if("string"!=typeof d||0===d.length)return null;try{b=JSON.parse(d)}catch{return null}if(!b||"object"!=typeof b)return null;let{device_id:e,account_uuid:f,session_id:g}=b;return"string"==typeof e&&p.test(e)&&"string"==typeof f&&k.test(f)&&"string"==typeof g&&k.test(g)?{device_id:e,account_uuid:f,session_id:g}:null}let y=["claude-opus","claude-sonnet"],z=["claude-opus"];function A(a,b){if("string"!=typeof a)return!1;let c=a.toLowerCase();return b.some(a=>c.includes(a))}function B(a,b,c){let d=a||{},e="string"==typeof c&&c.trim().length>0?new Set(c.split(",").map(a=>a.trim()).filter(Boolean)):null,f=null===e||e.has("interleaved-thinking-2025-05-14"),g=null===e||e.has("advanced-tool-use-2025-11-20")||e.has("effort-2025-11-24"),h=!!d.system&&("string"==typeof d.system||Array.isArray(d.system)&&d.system.length>0),i=d.tools,j=Array.isArray(i)&&i.length>0,k=d.output_config,l=!!(k&&k.format?.type==="json_schema")||!!d.response_format?.type,m=j&&h,n=b??("string"==typeof d.model?d.model:""),o=m&&A(n,y),p=m&&A(n,z),q=[];return m&&q.push("claude-code-20250219"),q.push("oauth-2025-04-20"),p&&q.push("context-1m-2025-08-07","mid-conversation-system-2026-04-07"),f&&q.push("interleaved-thinking-2025-05-14","redact-thinking-2026-02-12","thinking-token-count-2026-05-13"),q.push("context-management-2025-06-27","prompt-caching-scope-2026-01-05"),(l||m)&&q.push("advisor-tool-2026-03-01"),l&&!m&&q.push("structured-outputs-2025-12-15"),m&&q.push("extended-cache-ttl-2025-04-11","cache-diagnosis-2026-04-07"),o&&g&&q.push("advanced-tool-use-2025-11-20","effort-2025-11-24"),q.join(",")}function C(a,b){return(0,d.createHash)("sha256").update(`${b}${a}`).digest("hex").slice(0,3)}let D="proxy_";function E(a){let b=a=>{if("string"==typeof a)return a.startsWith(D)?a.slice(D.length):a},c=a.tools;if(Array.isArray(c))for(let a of c){let c=b(a.name);void 0!==c&&(a.name=c)}let d=a.tool_choice;if(d&&"string"==typeof d.name){let a=b(d.name);void 0!==a&&(d.name=a)}let e=a.messages;if(Array.isArray(e))for(let a of e){let c=a.content;if(Array.isArray(c)){for(let a of c)if(a?.type==="tool_use"){let c=b(a.name);void 0!==c&&(a.name=c)}}}}},2324:(a,b,c)=>{c.d(b,{j:()=>o});var d=c(97510),e=c(43659),f=c(72221),g=c(50954);let h="https://chat.qwen.ai",i=`${h}/api/v2/chats/new`,j=`${h}/api/v2/chat/completions`,k={"qwen-plus":"qwen3.7-plus","qwen-max":"qwen3.7-max","qwen-turbo":"qwen3.6-plus","qwen3-plus":"qwen3.7-plus","qwen3-max":"qwen3.7-max","qwen3-flash":"qwen3.6-plus","qwen3-coder-plus":"qwen3.7-max","qwen3-coder-flash":"qwen3.6-plus",qwen:"qwen3.7-max",qwen3:"qwen3.7-max"};function l(){return crypto.randomUUID()}function m(a,b,c){return!!b.includes("text/html")||504===a||/aliyun_waf|baxia|<html/i.test(c)}let n="Qwen session expired or blocked by Alibaba's WAF. Re-login at https://chat.qwen.ai and paste a fresh full Cookie header (must include cna, ssxmod_itna and token) — a bearer token alone is no longer accepted by the v2 endpoint.";class o extends d.Hv{constructor(){super("qwen-web",{id:"qwen-web",baseUrl:h})}buildHeaders(a,b,c){let d={"Content-Type":"application/json",Accept:"*/*","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",Origin:h,Referer:c?`${h}/c/${c}`:`${h}/`,source:"web",version:"0.2.66","x-request-id":l(),"bx-v":"2.5.36","bx-umidtoken":"T2gA0000000000000000000000000000000000000000"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d.Cookie=b),d}async execute(a){let b,c,{body:d,credentials:h,signal:l,stream:o}=a,p=d||{},q=String(h?.apiKey??"").trim(),r=(0,g.fk)(q),s=(0,g.W9)(q);!s&&h?.accessToken&&(s=String(h.accessToken).trim());let t=p.messages||[],u=p.model||"qwen3.7-max",v=k[u]||u,{hasTools:w,requestedTools:x,effectiveMessages:y}=(0,f.S$)(p,t),z=this.foldMessages(y);try{let a=await fetch(i,{method:"POST",headers:this.buildHeaders(s,r),body:JSON.stringify({title:"New Chat",models:[v],chat_mode:"normal",chat_type:"t2t",timestamp:Date.now()}),signal:l}),c=a.headers.get("content-type")||"";if(!a.ok||c.includes("text/html")){let b=await a.text().catch(()=>"");if(m(a.status,c,b))return(0,e.DV)(401,n,d,i);return(0,e.DV)(a.status||502,`Qwen create-chat failed: ${b.slice(0,300)}`,d,i)}let f=await a.json();if(!(b=f?.data?.id??""))return(0,e.DV)(502,"Qwen create-chat returned no chat id",d,i)}catch(a){return(0,e.DV)(502,`Qwen create-chat error: ${a instanceof Error?a.message:"unknown"}`,d,i)}let A=`${j}?chat_id=${b}`,B=this.buildMessagePayload(b,v,z,u);try{c=await fetch(A,{method:"POST",headers:this.buildHeaders(s,r,b),body:JSON.stringify(B),signal:l})}catch(a){return(0,e.DV)(502,`Qwen completion fetch failed: ${a instanceof Error?a.message:"unknown"}`,d,A)}let C=c.headers.get("content-type")||"";if(!c.ok||C.includes("text/html")){let a=await c.text().catch(()=>"");return m(c.status,C,a)?(0,e.DV)(401,n,d,A):(0,e.DV)(c.status||502,`Qwen error: ${a.slice(0,300)}`,d,A)}if(!o){let{content:a}=await this.collectStream(c);if(w){let{content:b,toolCalls:c,finishReason:d}=(0,f.mU)(a,x,"qwen"),e={role:"assistant",content:b};return c&&(e.tool_calls=c,e.content=null),this.jsonResponse(v,e,d,A,B)}return this.jsonResponse(v,{role:"assistant",content:a},"stop",A,B)}return{response:new Response(this.buildClientStream(c,v,w,x,l),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:A,headers:this.buildHeaders(s,r,b),transformedBody:B}}foldMessages(a){let b="",c="";for(let d of a){let a=String(d.content??"");"system"===d.role?b+=(b?"\n\n":"")+a:"user"===d.role&&(c=a)}return b?`${b}
|
|
2
2
|
|
|
3
3
|
User: ${c}`:c}buildMessagePayload(a,b,c,d){let e=l(),f=/think|reason|r1/i.test(d);return{stream:!0,incremental_output:!0,chat_id:a,chat_mode:"normal",model:b,parent_id:null,messages:[{fid:e,parentId:null,childrenIds:[],role:"user",content:c,user_action:"chat",files:[],timestamp:Math.floor(Date.now()/1e3),models:[b],chat_type:"t2t",feature_config:{thinking_enabled:f,output_schema:"phase",auto_thinking:f,research_mode:"normal",auto_search:!1},sub_chat_type:"t2t",parent_id:null}]}}async collectStream(a){let b=a.body?.getReader(),c=new TextDecoder,d="",e="";if(!b)return{content:d,reasoning:e};let f="";try{for(;;){let{done:a,value:g}=await b.read();if(a)break;let h=(f+=c.decode(g,{stream:!0})).split("\n");for(let a of(f=h.pop()||"",h)){let b=p(a);b&&("answer"===b.kind?d+=b.text:"think"===b.kind&&(e+=b.text))}}}catch{}return{content:d,reasoning:e}}buildClientStream(a,b,c,d,e){let g=new TextEncoder,h=new TextDecoder,i=`chatcmpl-qwen-${Date.now()}`,j=Math.floor(Date.now()/1e3),k=(a,c)=>`data: ${JSON.stringify({id:i,object:"chat.completion.chunk",created:j,model:b,choices:[{index:0,delta:a,finish_reason:c}]})}
|
|
4
4
|
|
|
5
|
-
`;return new ReadableStream({async start(b){let i=a.body?.getReader();if(!i){b.enqueue(g.encode("data: [DONE]\n\n")),b.close();return}let j="",l="";b.enqueue(g.encode(k({role:"assistant",content:""},null)));try{for(;;){let{done:a,value:d}=await i.read();if(a)break;let e=(j+=h.decode(d,{stream:!0})).split("\n");for(let a of(j=e.pop()||"",e)){let d=p(a);d&&d.text&&("answer"===d.kind?(l+=d.text,c||b.enqueue(g.encode(k({content:d.text},null)))):"think"!==d.kind||c||b.enqueue(g.encode(k({reasoning_content:d.text},null))))}}}catch(a){if(!e?.aborted)return void b.error(a)}if(c){let{content:a,toolCalls:c,finishReason:e}=(0,f.mU)(l,d,"qwen");b.enqueue(g.encode(k(c?{role:"assistant",content:null,tool_calls:c}:{role:"assistant",content:a},null))),b.enqueue(g.encode(k({},e)))}else b.enqueue(g.encode(k({},"stop")));b.enqueue(g.encode("data: [DONE]\n\n")),b.close()}})}jsonResponse(a,b,c,d,e){return{response:new Response(JSON.stringify({id:`chatcmpl-qwen-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:b,finish_reason:c}]}),{headers:{"Content-Type":"application/json"}}),url:d,headers:{},transformedBody:e}}}function p(a){let b;if(!a.startsWith("data:"))return null;let c=a.slice(5).trim();if(!c||"[DONE]"===c)return null;try{b=JSON.parse(c)}catch{return null}let d=b?.choices?.[0]?.delta;if(!d)return null;let e=d.phase,f="string"==typeof d.content?d.content:"";return"think"===e||"thinking_summary"===e?{kind:"think",text:f}:"answer"===e||null==e?{kind:"answer",text:f}:null}},4188:(a,b,c)=>{
|
|
5
|
+
`;return new ReadableStream({async start(b){let i=a.body?.getReader();if(!i){b.enqueue(g.encode("data: [DONE]\n\n")),b.close();return}let j="",l="";b.enqueue(g.encode(k({role:"assistant",content:""},null)));try{for(;;){let{done:a,value:d}=await i.read();if(a)break;let e=(j+=h.decode(d,{stream:!0})).split("\n");for(let a of(j=e.pop()||"",e)){let d=p(a);d&&d.text&&("answer"===d.kind?(l+=d.text,c||b.enqueue(g.encode(k({content:d.text},null)))):"think"!==d.kind||c||b.enqueue(g.encode(k({reasoning_content:d.text},null))))}}}catch(a){if(!e?.aborted)return void b.error(a)}if(c){let{content:a,toolCalls:c,finishReason:e}=(0,f.mU)(l,d,"qwen");b.enqueue(g.encode(k(c?{role:"assistant",content:null,tool_calls:c}:{role:"assistant",content:a},null))),b.enqueue(g.encode(k({},e)))}else b.enqueue(g.encode(k({},"stop")));b.enqueue(g.encode("data: [DONE]\n\n")),b.close()}})}jsonResponse(a,b,c,d,e){return{response:new Response(JSON.stringify({id:`chatcmpl-qwen-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:b,finish_reason:c}]}),{headers:{"Content-Type":"application/json"}}),url:d,headers:{},transformedBody:e}}}function p(a){let b;if(!a.startsWith("data:"))return null;let c=a.slice(5).trim();if(!c||"[DONE]"===c)return null;try{b=JSON.parse(c)}catch{return null}let d=b?.choices?.[0]?.delta;if(!d)return null;let e=d.phase,f="string"==typeof d.content?d.content:"";return"think"===e||"thinking_summary"===e?{kind:"think",text:f}:"answer"===e||null==e?{kind:"answer",text:f}:null}},4188:(a,b,c)=>{c.d(b,{$:()=>d});let d={"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version, x-omniroute-connection, x-internal-test, accept"}},5341:(a,b,c)=>{c.d(b,{XP:()=>k});var d=c(61408);function e(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function f(a){return/^(?:ping|keepalive|heartbeat)$/i.test(a)}function g(a){let b=a.currentEvent,c=a.dataLines.join("\n").trim();if(a.currentEvent="",a.dataLines=[],f(b)||!c||"[DONE]"===c)return!1;try{return function(a,b=""){let c=function(a,b=""){if(!e(a))return b;let c=a.type??a.event??a.object;return"string"==typeof c?c:b}(a,b);return!(f(b)||f(c))&&(Array.isArray(a)?a.length>0:e(a)?Object.keys(a).length>0:null!=a)}(JSON.parse(c),b)}catch{return c.length>0}}function h(a,b){let c=b.trim();return!c||c.startsWith(":")?!c&&g(a):(c.startsWith("event:")?a.currentEvent=c.slice(6).trim():c.startsWith("data:")&&a.dataLines.push(c.slice(5).trimStart()),!1)}function i(a,b){let c=`${a.pendingLine}${b}`.split(/\r?\n/);for(let b of(a.pendingLine=c.pop()??"",c))if(h(a,b))return!0;return!1}function j(a,b,c,d){return new Response(JSON.stringify({error:{message:b,type:d,code:c}}),{status:a,headers:{"Content-Type":"application/json"}})}async function k(a,b){if(!a.body||b.timeoutMs<=0)return{ok:!0,response:a};let c=a.body.getReader(),e=[],f=new TextDecoder,k={currentEvent:"",dataLines:[],pendingLine:""},l=Date.now(),m=Math.max(0,Math.floor(b.timeoutMs)),n=l+m,o=!1,p=()=>new Response(new ReadableStream({async start(a){try{for(let b of e)a.enqueue(b);for(;;){let{done:b,value:d}=await c.read();if(b)break;d&&a.enqueue(d)}a.close()}catch(b){a.error(b)}finally{c.releaseLock()}},async cancel(a){await c.cancel(a).catch(()=>{}),c.releaseLock()}}),{status:a.status,statusText:a.statusText,headers:a.headers}),q=()=>`Stream produced no non-ping SSE event within ${m}ms`;try{for(;;){let a,m=n-Date.now();if(m<=0){let a=q();return b.log?.warn?.("STREAM",`${a} (${b.provider||"provider"}/${b.model||"unknown"})`),await c.cancel(a).catch(()=>{}),{ok:!1,reason:a,code:"STREAM_READINESS_TIMEOUT",type:"stream_timeout",response:j(d.gx.GATEWAY_TIMEOUT,a,"STREAM_READINESS_TIMEOUT","stream_timeout")}}try{a=await function(a,b){return new Promise((c,d)=>{let e=setTimeout(()=>d(Error("STREAM_READINESS_TIMEOUT")),b);a.read().then(a=>{clearTimeout(e),c(a)},a=>{clearTimeout(e),d(a)})})}(c,m)}catch{let a=q();return b.log?.warn?.("STREAM",`${a} (${b.provider||"provider"}/${b.model||"unknown"})`),await c.cancel(a).catch(()=>{}),{ok:!1,reason:a,code:"STREAM_READINESS_TIMEOUT",type:"stream_timeout",response:j(d.gx.GATEWAY_TIMEOUT,a,"STREAM_READINESS_TIMEOUT","stream_timeout")}}if(a.done){let a=f.decode(void 0,{stream:!1});if(a&&i(k,a)||k.pendingLine&&h(k,k.pendingLine)||(k.pendingLine="",g(k)))return o=!0,{ok:!0,response:p()};let c="Stream ended before producing a non-ping SSE event";return b.log?.warn?.("STREAM",`${c} (${b.provider||"provider"}/${b.model||"unknown"})`),{ok:!1,reason:c,code:"STREAM_EARLY_EOF",type:"stream_early_eof",response:j(d.gx.BAD_GATEWAY,c,"STREAM_EARLY_EOF","stream_early_eof")}}if(!a.value)continue;e.push(a.value);let r=f.decode(a.value,{stream:!0});if(i(k,r))return b.log?.debug?.("STREAM",`Stream readiness confirmed in ${Date.now()-l}ms (${b.provider||"provider"}/${b.model||"unknown"})`),o=!0,{ok:!0,response:p()}}}finally{o||c.releaseLock()}}},7882:(a,b,c)=>{let d;c.d(b,{Fs:()=>s,OG:()=>l,OU:()=>n,VN:()=>o,ov:()=>p});var e=c(16698),f=c(11745);let g=Symbol.for("omniroute.providerRequestCapture.state"),h=((d=globalThis)[g]||(d[g]={context:new e.AsyncLocalStorage,wrappedFetch:null,wrappedInnerFetch:null}),d[g]),i=new Set(["POST","PUT","PATCH"]),j=new Set(["access_token","client_secret","grant_type","id_token","refresh_token"]),k=new Set(["conversationId","conversation_id","contents","input","messages","model","prompt","request","tools","userSelectedModel"]);function l(a){try{return JSON.parse(a)}catch{return a}}async function m(a,b,c,d,e,f){if(!a)return;let g=a.latest?.();if(g?.url!==b||g.bodyString!==e)try{await a.capture({url:b,headers:c,body:d,bodyString:e})}catch(a){f?.warn?.("REQUEST_LOG",`Provider request logging hook failed: ${a instanceof Error?a.message:String(a)}`)}}function n(a,b,c,d,e){return m(h.context.getStore(),a,b,c,d,e)}function o(a,b,c,d){return n(a,b,l(c),c,d)}function p(a,b){return globalThis.fetch!==h.wrappedFetch&&(h.wrappedInnerFetch=globalThis.fetch.bind(globalThis),h.wrappedFetch=async(a,b)=>{let c=h.context.getStore();return c&&await q(c,a,b),h.wrappedInnerFetch(a,b)},globalThis.fetch=h.wrappedFetch),h.context.run(a,b)}async function q(a,b,c){var d,e,f,g,h,n,o;let p,q,s=(d=b,e=c,String(e?.method||(r(d)?d.method:"GET")||"GET").toUpperCase());if(!i.has(s))return;let t="string"==typeof(f=c?.body)?f:f instanceof URLSearchParams?f.toString():f instanceof ArrayBuffer?new TextDecoder().decode(f):ArrayBuffer.isView(f)?new TextDecoder().decode(f.buffer.slice(f.byteOffset,f.byteOffset+f.byteLength)):null;if(!t)return;let u=l(t);!(!(g=u)||"object"!=typeof g||Array.isArray(g))&&!Object.keys(g).some(a=>j.has(a))&&(Object.keys(g).some(a=>k.has(a))||"string"==typeof g.query&&g.variables&&"object"==typeof g.variables)&&await m(a,"string"==typeof(h=b)?h:h instanceof URL?h.toString():r(h)?h.url:String(h),(n=b,o=c,p=new Headers(r(n)?n.headers:void 0),o?.headers&&new Headers(o.headers).forEach((a,b)=>p.set(b,a)),q={},p.forEach((a,b)=>{q[b]=a}),q),u,t)}function r(a){return"u">typeof Request&&a instanceof Request}function s(a,b){let c=null;return{capture(d){c=d,a.logTargetRequest(d.url,d.headers,d.body),(0,f.pC)(b,{providerRequest:d.body,providerUrl:d.url,stage:"sending_to_provider"})},body(a){let b=c?.body??a;if(b!==a&&b&&"object"==typeof b&&a&&"object"==typeof a){let c=a._toolNameMap;c instanceof Map&&!(b._toolNameMap instanceof Map)&&Object.defineProperty(b,"_toolNameMap",{value:c,enumerable:!1,configurable:!0,writable:!0})}return b},latest:()=>c}}},9073:(a,b,c)=>{c.d(b,{Xi:()=>k,buildQoderCompletionPayload:()=>i,extractTextFromQoderEnvelope:()=>h,u1:()=>o});var d=c(55511),e=c.n(d);function f(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function g(a){return"string"==typeof a?a:""}function h(a){let b=f(a),c=f(b.message).content??b.content??b.delta??b.text??null;return"string"==typeof c?c:Array.isArray(c)?c.map(a=>{let b=f(a),c=g(b.type).trim();return"text"!==c&&c?"":g(b.text)}).filter(Boolean).join(""):""}function i({model:a,text:b}){let c=Math.floor(Date.now()/1e3);return{id:`chatcmpl-${e().randomUUID()}`,object:"chat.completion",created:c,model:a||"qoder-rome-30ba3b",choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}let j=`-----BEGIN PUBLIC KEY-----
|
|
6
6
|
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8iMH5c02LilrsERw9t6Pv5Nc
|
|
7
7
|
4k6Pz1EaDicBMpdpxKduSZu5OANqUq8er4GM95omAGIOPOh+Nx0spthYA2BqGz+l
|
|
8
8
|
6HRkPJ7S236FZz73In/KVuLnwI8JJ2CbuJap8kvheCCZpmAWpb/cPx/3Vr/J6I17
|
|
@@ -11,15 +11,15 @@ XcW+ML9FoCI6AOvOzwIDAQAB
|
|
|
11
11
|
${i}
|
|
12
12
|
${k}
|
|
13
13
|
${a}
|
|
14
|
-
/api/v2/service/pro/sse/agent_chat_generation`,o=e().createHash("md5").update(n).digest("hex");return{Authorization:`Bearer COSY.${m}.${o}`,"Cosy-Key":i,"Cosy-User":f,"Cosy-Date":k,"Content-Type":"application/json"}}let l=new Map,m=new Map;async function n(a,b={}){let c=b.fetchImpl||fetch,d=await c("https://openapi.qoder.sh/api/v1/jobToken/exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({personal_token:a}),signal:b.signal||AbortSignal.timeout(15e3)});if(!d||!d.ok)return null;let e=null;try{e=await d.json()}catch{return null}let h=f(e),i=f(h.data),j=[h.job_token,h.jobToken,h.jt,h.token,i.job_token,i.jobToken,i.jt,i.token].map(g).find(a=>a.trim().startsWith("jt-"))||"";if(!j)return null;let k=[h.expires_in,h.expiresIn,i.expires_in,i.expiresIn].find(a=>"number"==typeof a&&Number.isFinite(a)&&a>0);return{jobToken:j,expiresInMs:Math.max(k?1e3*k:828e5,6e4)}}async function o(a,b={}){let c=(a||"").trim();if(!("string"==typeof c&&c.trim().startsWith("pt-")))return c;let d=b.now??Date.now(),e=l.get(c);if(e&&e.expiresAt>d)return e.jobToken;let f=m.get(c);f||(f=n(c,{fetchImpl:b.fetchImpl}).finally(()=>{m.delete(c)}),m.set(c,f));let g=await f;return g?(l.set(c,{jobToken:g.jobToken,expiresAt:d+g.expiresInMs}),g.jobToken):c}},9379:(a,b,c)=>{
|
|
14
|
+
/api/v2/service/pro/sse/agent_chat_generation`,o=e().createHash("md5").update(n).digest("hex");return{Authorization:`Bearer COSY.${m}.${o}`,"Cosy-Key":i,"Cosy-User":f,"Cosy-Date":k,"Content-Type":"application/json"}}let l=new Map,m=new Map;async function n(a,b={}){let c=b.fetchImpl||fetch,d=await c("https://openapi.qoder.sh/api/v1/jobToken/exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({personal_token:a}),signal:b.signal||AbortSignal.timeout(15e3)});if(!d||!d.ok)return null;let e=null;try{e=await d.json()}catch{return null}let h=f(e),i=f(h.data),j=[h.job_token,h.jobToken,h.jt,h.token,i.job_token,i.jobToken,i.jt,i.token].map(g).find(a=>a.trim().startsWith("jt-"))||"";if(!j)return null;let k=[h.expires_in,h.expiresIn,i.expires_in,i.expiresIn].find(a=>"number"==typeof a&&Number.isFinite(a)&&a>0);return{jobToken:j,expiresInMs:Math.max(k?1e3*k:828e5,6e4)}}async function o(a,b={}){let c=(a||"").trim();if(!("string"==typeof c&&c.trim().startsWith("pt-")))return c;let d=b.now??Date.now(),e=l.get(c);if(e&&e.expiresAt>d)return e.jobToken;let f=m.get(c);f||(f=n(c,{fetchImpl:b.fetchImpl}).finally(()=>{m.delete(c)}),m.set(c,f));let g=await f;return g?(l.set(c,{jobToken:g.jobToken,expiresAt:d+g.expiresInMs}),g.jobToken):c}},9379:(a,b,c)=>{c.d(b,{B:()=>h});var d=c(97510),e=c(43659);let f="https://v0.dev",g=`${f}/api/chat`;class h extends d.Hv{constructor(){super("v0-vercel-web",{id:"v0-vercel-web",baseUrl:"https://v0.dev"})}async execute(a){let b,{body:c,credentials:d,signal:h,stream:i}=a,j=c||{},k=(0,e.sY)(String(d?.apiKey??"").trim()),l=j.messages||[],m=j.model||"v0-default",n={messages:l.map(a=>({role:a.role,content:a.content})),model:m,stream:i},o={"Content-Type":"application/json","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",Accept:i?"text/event-stream":"application/json",Referer:`${f}/`,Origin:f};k&&(o.Cookie=k);try{b=await fetch(g,{method:"POST",headers:o,body:JSON.stringify(n),signal:h})}catch(a){return(0,e.DV)(502,`v0 fetch failed: ${a instanceof Error?a.message:"unknown"}`,c,g)}if(!b.ok){let a=await b.text().catch(()=>"");return(0,e.DV)(b.status,`v0 error: ${a}`,c,g)}if(!i){let a=await b.json(),c=a?.choices?.[0]?.message?.content||a?.content||"";return{response:new Response(JSON.stringify({id:`chatcmpl-v0-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,message:{role:"assistant",content:c},finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:g,headers:o,transformedBody:n}}let p=new TextEncoder,q=new TextDecoder;return{response:new Response(new ReadableStream({async start(a){let c=b.body?.getReader();if(!c)return void a.close();let d="";try{for(;;){let{done:b,value:e}=await c.read();if(b)break;let f=(d+=q.decode(e,{stream:!0})).split("\n");for(let b of(d=f.pop()||"",f)){if(!b.startsWith("data:"))continue;let c=b.slice(5).trim();if("[DONE]"===c){a.enqueue(p.encode("data: [DONE]\n\n"));continue}try{let b=JSON.parse(c),d=b.choices?.[0]?.delta?.content||"";if(d){let b={id:`chatcmpl-v0-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,delta:{content:d},finish_reason:null}]};a.enqueue(p.encode(`data: ${JSON.stringify(b)}
|
|
15
15
|
|
|
16
|
-
`))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},9927:(a,b,c)=>{
|
|
16
|
+
`))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},9927:(a,b,c)=>{let d;c.d(b,{RF:()=>aZ});var e=c(97510);let f={401:"ChatGPT auth failed — session may have expired. Re-paste your __Secure-next-auth.session-token.",403:"ChatGPT auth failed — session may have expired. Re-paste your __Secure-next-auth.session-token.",404:"ChatGPT returned 404 — usually the model is no longer available on this account or the chat-requirements-token expired. Retry will start a fresh conversation.",413:"ChatGPT returned 413 — the request payload is too large for ChatGPT web's size limit (often hit by agentic clients like Cline/Kilo that send big system prompts and file context). Reduce the context: enable compression, trim the conversation/files, or use a smaller request.",429:"ChatGPT rate limited. Wait a moment and retry."};var g=c(72221);let h={"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"};async function i(a,b){let c=await a.text();try{let d=JSON.parse(c),e=d?.choices?.[0]?.message?.content||"",{content:f,toolCalls:h,finishReason:i}=(0,g.mU)(e,b,"cgpt");return h?(d.choices[0].message={role:"assistant",content:null,tool_calls:h},d.choices[0].finish_reason=i):d.choices[0].message.content=f,new Response(JSON.stringify(d),{status:a.status,headers:{"Content-Type":"application/json"}})}catch{return new Response(c,{status:a.status,headers:{"Content-Type":"application/json"}})}}async function j(a,b,c,d){var e,f,g,j;let k,l,m,n,o,p=await i(a,b);return c?new Response((e=await p.json(),f=d.cid,g=d.created,j=d.model,k=new TextEncoder,m=(l=e?.choices?.[0]??{}).message??{},n=l.finish_reason??"stop",o=(a,b)=>{var c;return k.encode((c={id:f,object:"chat.completion.chunk",created:g,model:j,system_fingerprint:null,choices:[{index:0,delta:a,finish_reason:b,logprobs:null}]},`data: ${JSON.stringify(c)}
|
|
17
17
|
|
|
18
18
|
`))},new ReadableStream({start(a){a.enqueue(o({role:"assistant"},null));let b=m.tool_calls?{tool_calls:m.tool_calls}:{content:m.content??""};a.enqueue(o(b,n)),a.enqueue(k.encode("data: [DONE]\n\n")),a.close()}})),{status:200,headers:h}):p}var k=c(77598);let l=(1n<<64n)-1n,m=[1n,32898n,0x800000000000808an,0x8000000080008000n,32907n,2147483649n,0x8000000080008081n,0x8000000000008009n,138n,136n,2147516425n,2147483658n,2147516555n,0x800000000000008bn,0x8000000000008089n,0x8000000000008003n,0x8000000000008002n,0x8000000000000080n,32778n,0x800000008000000an,0x8000000080008081n,0x8000000000008080n,2147483649n,0x8000000080008008n],n=[0,1,62,28,27,36,44,6,55,20,3,10,43,25,39,41,45,15,21,8,18,2,61,56,14];function o(a,b){if(0===b)return a;let c=BigInt(b);return(a<<c|a>>64n-c)&l}function p(a){return"string"==typeof a?new Uint8Array(Buffer.from(a,"utf8")):a}var q=c(48161),r=c(76760),s=c(51455),t=c(95538),u=c(93804);let v=null,w=!1,x=Number.parseInt(process.env.OMNIROUTE_CHATGPT_TLS_TIMEOUT_MS||"",10)||6e4,y=Number.parseInt(process.env.OMNIROUTE_CHATGPT_TLS_GRACE_MS||"",10)||1e4,z=Number.parseInt(process.env.OMNIROUTE_CHATGPT_STREAM_FIRST_BYTE_TIMEOUT_MS||"",10)||3e4;class A extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function B(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new A(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(F(c)):(e=()=>b(F(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function C(){return v||(v=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(w)return;w=!0;let a=async()=>{if(v)try{let a=await v;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){v=null;let a=b instanceof Error?b.message:String(b);throw new D(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),v}class D extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function E(a,b={}){var c;let d;if(b.signal?.aborted)throw F(b.signal);let e=await C();if(b.signal?.aborted)throw F(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"firefox_148",timeoutMilliseconds:b.timeoutMs??x,followRedirects:!0,withRandomTLSExtensionOrder:!0,isByteResponse:!0===b.byteResponse,proxyUrl:(c=b.proxyUrl,(0,u.G)("https://chatgpt.com",c,t.l))};if(b.stream)return await H(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??x)+y,z);try{d=await B(e.request(a,f),(b.timeoutMs??x)+y,b.signal??null)}catch(a){throw a instanceof A&&(v=null),a}if(b.signal?.aborted)throw F(b.signal);return{status:d.status,headers:G(d.headers),text:d.body,body:null}}function F(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function G(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function H(a,b,c,d="[DONE]",e=null,f=x+y,g=z){let h,i=await (0,s.mkdtemp)((0,r.join)((0,q.tmpdir)(),"cgpt-stream-")),j=(0,r.join)(i,`${(0,k.randomUUID)()}.sse`),l={...c,streamOutputPath:j,streamOutputBlockSize:1024,streamOutputEOFSymbol:d},m=!0,n=B(a.request(b,l),f,e).catch(a=>{throw m&&a instanceof A&&(v=null,m=!1),a});if(!await L(j,g,n)){let a=await n.catch(a=>({status:502,headers:{},body:String(a)})),b=await J(j);return await I(j),{status:a.status,headers:G(a.headers),text:b||a.body,body:null}}if(!((h=(await K(j,256)).replace(/^[\s\r\n]+/,""))&&(h.startsWith(":")||/^(data|event|id|retry):/i.test(h)))){let a=await n.catch(a=>({status:502,headers:{},body:String(a)})),b=await J(j);return await I(j),{status:a.status,headers:G(a.headers),text:a.body||b,body:null}}let o=function(a,b,c,d=null){return new ReadableStream({async start(e){let f=await (0,s.open)(a,"r"),g=Buffer.alloc(65536),h=0,i=!1,j=!1,k=null;c.then(()=>{i=!0},a=>{k=a instanceof Error?a:Error(String(a)),i=!0});let l=()=>{j=!0};d&&(d.aborted?j=!0:d.addEventListener("abort",l,{once:!0}));let m=!1;try{for(;!j;){let{bytesRead:a}=await f.read(g,0,g.length,h);if(a>0){let c=g.subarray(0,a);h+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.indexOf(b)+b.length;e.enqueue(new Uint8Array(c.subarray(0,a)));break}e.enqueue(new Uint8Array(c))}else if(i){k&&(e.error(k),m=!0);break}else await M(25)}}catch(a){e.error(a),m=!0}finally{d&&d.removeEventListener("abort",l),await f.close().catch(()=>{}),await (0,s.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,s.rmdir)(b).catch(()=>{}),m||e.close()}}})}(j,d,n,e);return{status:200,headers:new Headers({"Content-Type":"text/event-stream","Cache-Control":"no-cache"}),text:null,body:o}}async function I(a){await (0,s.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,s.rmdir)(b).catch(()=>{})}async function J(a){try{return await (0,s.readFile)(a,"utf8")}catch{return""}}async function K(a,b){let c=await (0,s.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function L(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,s.stat)(a)).size>0)return!0}catch{}if(d)break;await M(25)}return!1}function M(a){return new Promise(b=>setTimeout(b,a))}var N=c(36770);let O="https://chatgpt.com",P=`${O}/api/auth/session`,Q=`${O}/backend-api/sentinel/chat-requirements/prepare`,R=`${O}/backend-api/sentinel/chat-requirements`,S=`${O}/backend-api/f/conversation`,T=`${O}/backend-api/settings/user_last_used_model_config`,U="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:152.0) Gecko/20100101 Firefox/152.0",V="prod-81e0c5cdf6140e8c5db714d613337f4aeab94029",W=new Map,X={"gpt-5-5-pro":"gpt-5-5-pro","gpt-5-5-pro-extended":"gpt-5-5-pro","gpt-5-5-thinking":"gpt-5-5-thinking","gpt-5-5":"gpt-5-5","gpt-5-4-pro":"gpt-5-4-pro","gpt-5-4-thinking":"gpt-5-4-thinking","gpt-5-4-t-mini":"gpt-5-4-t-mini","gpt-5-3":"gpt-5-3","gpt-5-3-mini":"gpt-5-3-mini","gpt-5.5-pro":"gpt-5-5-pro","gpt-5.5-pro-extended":"gpt-5-5-pro","gpt-5.5-thinking":"gpt-5-5-thinking","gpt-5.5":"gpt-5-5","gpt-5.4-pro":"gpt-5-4-pro","gpt-5.4-thinking":"gpt-5-4-thinking","gpt-5.4-thinking-mini":"gpt-5-4-t-mini","gpt-5.3-instant":"gpt-5-3-instant","gpt-5.3":"gpt-5-3","gpt-5.3-mini":"gpt-5-3-mini",o3:"o3"},Y={"gpt-5-5-pro":"standard","gpt-5-5-pro-extended":"extended","gpt-5.5-pro":"standard","gpt-5.5-pro-extended":"extended"},Z=new Set(Object.entries(X).filter(([a])=>a.includes("thinking")||"o3"===a).map(([,a])=>a));function $(){return{Accept:"*/*","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache",Origin:O,Pragma:"no-cache",Referer:`${O}/`,"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":U}}function _(a,b){return{"OAI-Language":"en-US","OAI-Device-Id":b,"OAI-Client-Version":V,"OAI-Client-Build-Number":"6128297","OAI-Session-Id":a}}let aa=new Map;function ab(a){return(0,k.createHash)("sha256").update(a).digest("hex").slice(0,16)}let ac=/^__Secure-next-auth\.session-token(?:\.\d+)?$/;function ad(a){let b=a.trim();return(/^cookie\s*:\s*/i.test(b)&&(b=b.replace(/^cookie\s*:\s*/i,"")),/__Secure-next-auth\.session-token(?:\.\d+)?\s*=/.test(b))?b:`__Secure-next-auth.session-token=${b}`}async function ae(a,b){let c,d=(c=aa.get(ab(a)))?Date.now()>=c.expiresAt?(aa.delete(ab(a)),null):c:null;if(d)return d;let e={...$(),Accept:"application/json",Cookie:ad(a)},f=await E(P,{method:"GET",headers:e,timeoutMs:3e4,signal:b});if(401===f.status||403===f.status)throw new af("Invalid session cookie");if(f.status>=400)throw Error(`Session exchange failed (HTTP ${f.status})`);let g=function(a,b){if(!b)return null;let c=Array.from(b.matchAll(/(__Secure-next-auth\.session-token(?:\.\d+)?)=([^;,\s]+)/g));if(0===c.length)return null;let d=new Map;for(let a of c)d.set(a[1],a[2]);let e=a.trim();if(/^cookie\s*:\s*/i.test(e)&&(e=e.replace(/^cookie\s*:\s*/i,"")),!/=/.test(e))return Array.from(d,([a,b])=>`${a}=${b}`).join("; ");let f=e.split(/;\s*/).filter(Boolean),g=[],h=!1,i=!1;for(let a of f){let b=a.indexOf("=");if(b<0){g.push(a);continue}let c=a.slice(0,b).trim(),e=a.slice(b+1);if(ac.test(c)){d.has(c)&&d.get(c)===e||(h=!0),i=!0;continue}g.push(`${c}=${e}`)}for(let[a,b]of d)g.push(`${a}=${b}`);return i||(h=!0),h?g.join("; "):null}(a,f.headers.get("set-cookie")),h={};try{h=JSON.parse(f.text||"{}")}catch{console.warn("[chatgpt-web] session response JSON parse failed")}if(!h.accessToken)throw new af("Session response missing accessToken — cookie likely expired");let i=h.expires?new Date(h.expires).getTime():Date.now()+3e5,j={accessToken:h.accessToken,accountId:h.user?.id??null,expiresAt:Math.min(i,Date.now()+3e5),refreshedCookie:g??void 0};if(aa.size>=200&&!aa.has(ab(a))){let a=aa.keys().next().value;a&&aa.delete(a)}return aa.set(ab(a),j),j}class af extends Error{constructor(a){super(a),this.name="SessionAuthError"}}let ag=new Map;async function ah(a,b,c,d,e,f,g){let h=ab(e)+":"+a.slice(-8),i=Date.now(),j=ag.get(h);if(j&&i-j<6e4)return;if(ag.size>=200&&!ag.has(h)){let a=ag.keys().next().value;a&&ag.delete(a)}ag.set(h,i);let k={...$(),..._(c,d),Accept:"*/*",Authorization:`Bearer ${a}`,Cookie:ad(e),Priority:"u=1, i"};for(let a of(b&&(k["chatgpt-account-id"]=b),[`${O}/backend-api/me`,`${O}/backend-api/conversations?offset=0&limit=28&order=updated`,`${O}/backend-api/models?history_and_training_disabled=false`]))try{let b=await E(a,{method:"GET",headers:k,timeoutMs:15e3,signal:f});g?.debug?.("CGPT-WEB",`warmup ${a.split("/backend-api/")[1]} → ${b.status}`)}catch(b){g?.debug?.("CGPT-WEB",`warmup ${a} failed: ${b instanceof Error?b.message:String(b)}`)}}let ai=new Map;function aj(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return"extended"===b||"high"===b||"xhigh"===b?"extended":"standard"===b||"low"===b||"medium"===b||"minimal"===b?"standard":null}async function ak(a,b,c,d,e,f,g,h,i){let j=`${ab(g)}:${a}:${b}`,k=Date.now(),l=ai.get(j);if(l&&k-l<3e5)return void i?.debug?.("CGPT-WEB",`thinking_effort cached (${a}=${b}) — skip PATCH`);if(ai.size>=400&&!ai.has(j)){let a=ai.keys().next().value;a&&ai.delete(a)}let m=`${T}?model_slug=${encodeURIComponent(a)}&thinking_effort=${encodeURIComponent(b)}`,n={...$(),..._(e,f),Accept:"application/json",Authorization:`Bearer ${c}`,Cookie:ad(g),Priority:"u=4"};d&&(n["chatgpt-account-id"]=d);try{let c=await E(m,{method:"PATCH",headers:n,timeoutMs:15e3,signal:h});if(c.status>=400)return void i?.warn?.("CGPT-WEB",`thinking_effort PATCH ${c.status} for ${a}=${b} (continuing)`);ai.set(j,k),i?.debug?.("CGPT-WEB",`thinking_effort PATCH OK (${a}=${b})`)}catch(a){i?.warn?.("CGPT-WEB",`thinking_effort PATCH failed: ${a instanceof Error?a.message:String(a)}`)}}async function al(a,b,c,d,e,f,g,h){let i=au(U,f.dpl,f.scriptSrc),j=await aw(i,h),k={...$(),..._(c,d),"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:ad(e),Priority:"u=1, i"};b&&(k["chatgpt-account-id"]=b);let l=await E(Q,{method:"POST",headers:k,body:JSON.stringify({p:j}),timeoutMs:3e4,signal:g});if(401===l.status||403===l.status)throw new am(`Sentinel /prepare blocked (HTTP ${l.status})`);if(l.status>=400)throw Error(`Sentinel /prepare failed (HTTP ${l.status})`);let m={};try{m=JSON.parse(l.text||"{}")}catch{console.warn("[chatgpt-web] chat requirements prep JSON parse failed")}if(!m.prepare_token)return m;let n={p:j,prepare_token:m.prepare_token},o=await E(R,{method:"POST",headers:k,body:JSON.stringify(n),timeoutMs:3e4,signal:g});if(401===o.status||403===o.status)throw new am(`Sentinel /chat-requirements blocked (HTTP ${o.status})`);if(o.status>=400)return m;try{return{...JSON.parse(o.text||"{}"),prepare_token:m.prepare_token}}catch{return console.warn("[chatgpt-web] chat requirements response JSON parse failed"),m}}class am extends Error{constructor(a){super(a),this.name="SentinelBlockedError"}}let an=null;async function ao(a,b){if(an&&Date.now()<an.expiresAt)return{dpl:an.dpl,scriptSrc:an.scriptSrc};let c={...$(),Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",Cookie:ad(a)},d=(await E(`${O}/`,{method:"GET",headers:c,timeoutMs:2e4,signal:b})).text||"",e=d.match(/data-build="([^"]+)"/),f=e?`dpl=${e[1]}`:`dpl=${V.replace(/^prod-/,"")}`,g=d.match(/<script[^>]+src="(https?:\/\/[^"]*\.js[^"]*)"/),h=g?.[1]??`${O}/_next/static/chunks/webpack-${ap(16)}.js`;return an={dpl:f,scriptSrc:h,expiresAt:Date.now()+36e5},{dpl:f,scriptSrc:h}}function ap(a){return(0,k.randomBytes)(Math.ceil(a/2)).toString("hex").slice(0,a)}let aq=["webdriver−false","geolocation","languages","language","platform","userAgent","vendor","hardwareConcurrency","deviceMemory","permissions","plugins","mediaDevices"],ar=["_reactListeningkfj3eavmks","_reactListeningo743lnnpvdg","location","scrollingElement","documentElement"],as=["webpackChunk_N_E","__NEXT_DATA__","chrome","history","screen","navigation","scrollX","scrollY"];function at(a){return a[Math.floor(Math.random()*a.length)]}function au(a,b,c){let d=new Date().toString(),e=performance.now(),f=Date.now()-e;return[at([3e3,4e3,3120,4160]),d,0xfffc0000,0,a,c,b,"en-US","en-US,en",0,at(aq),at(ar),at(as),e,(0,k.randomUUID)(),"",at([8,16,24,32]),f]}async function av(a){let b=[...a.config];for(let c=0;c<a.maxIter;c++){c>0&&c%1e3==0&&await new Promise(a=>setImmediate(a)),b[3]=c;let e=JSON.stringify(b),f=Buffer.from(e).toString("base64"),g=function(a){let b=p(a);if(void 0===d&&(d=function(){try{return(0,k.createHash)("sha3-512").update(Buffer.alloc(0)).digest("hex"),a=>(0,k.createHash)("sha3-512").update(a).digest("hex")}catch{return null}}()),d)try{return d(b)}catch{d=null}return Buffer.from(function(a){let b=Array(25).fill(0n),c=72-a.length%72,d=new Uint8Array(a.length+c);d.set(a),d[a.length]=6,d[d.length-1]|=128;for(let a=0;a<d.length;a+=72){for(let c=0;c<9;c++){let e=0n;for(let b=0;b<8;b++)e|=BigInt(d[a+8*c+b])<<BigInt(8*b);b[c]^=e}!function(a){let b=[,,,,,],c=[,,,,,],d=Array(25);for(let e=0;e<24;e++){for(let c=0;c<5;c++)b[c]=a[c]^a[c+5]^a[c+10]^a[c+15]^a[c+20];for(let a=0;a<5;a++)c[a]=b[(a+4)%5]^o(b[(a+1)%5],1);for(let b=0;b<5;b++)for(let d=0;d<5;d++)a[b+5*d]^=c[b];for(let b=0;b<5;b++)for(let c=0;c<5;c++)d[c+(2*b+3*c)%5*5]=o(a[b+5*c],n[b+5*c]);for(let b=0;b<5;b++)for(let c=0;c<5;c++)a[b+5*c]=d[b+5*c]^~d[(b+1)%5+5*c]&l&d[(b+2)%5+5*c];a[0]^=m[e]}}(b)}let e=new Uint8Array(64);for(let a=0;a<8;a++){let c=b[a];for(let b=0;b<8;b++)e[8*a+b]=Number(c>>BigInt(8*b)&255n)}return e}(p(b))).toString("hex")}(a.seed+f);if(a.target&&g.slice(0,a.target.length)<=a.target)return`${a.prefix}${f}`}a.log?.warn?.("CGPT-WEB",`PoW (${a.label}) exhausted ${a.maxIter} iterations against target=${a.target||"<empty>"}; submitting unsolved token (Sentinel may reject)`);let c=Buffer.from(JSON.stringify(b)).toString("base64");return`${a.prefix}${c}`}async function aw(a,b){return av({config:a,seed:"",target:"0fffff",prefix:"gAAAAAC",maxIter:1e5,label:"prepare",log:b})}async function ax(a,b,c,d){return av({config:c,seed:a,target:(b||"").toLowerCase(),prefix:"gAAAAAB",maxIter:5e5,label:"conversation",log:d})}let ay=/!\[([^\]]*)\]\(data:image\/[^)]+\)/g,az=/\/v1\/chatgpt-web\/image\/([a-f0-9]{16,64})(?=[)\s"'<>]|$)/gi,aA=[/\b(?:generate|create|make|draw|paint|render|produce|design|sketch|illustrate|show me)\b[\s\S]{0,40}\b(?:image|picture|photo|photograph|drawing|illustration|sketch|painting|portrait|logo|icon|art|artwork|wallpaper|render|graphic)\b/i,/\b(?:image|picture|photo|photograph|illustration|drawing|painting|render)\s+of\b/i,/\b(?:draw|paint|sketch|render|illustrate)\s+(?:me\s+)?(?:a|an|some|the)\s+\w+/i,/^\s*\/(?:image|imagine|img|draw|paint)\b/im],aB=[/<chat_history>/i,/^### Task:/im,/\bJSON format:\s*\{/i,/\bfollow_?ups\b.*\barray of strings\b/i],aC=[/<context>\s*The requested image has been (?:created|edited and created) by the system successfully/i,/<context>\s*The requested image has been edited and created and is now being shown to the user/i,/<context>\s*Image generation was attempted but failed/i];function aD(a){return aC.some(b=>b.test(a.systemMsg))}let aE=[/\b(?:edit|adjust|modify|change|update|alter|revise|retouch|fix)\b[\s\S]{0,120}\b(?:it|image|picture|photo|lighting|background|style|color|colour|composition|scene|time of day)\b/i,/\b(?:make|turn|set|switch)\s+(?:it|the\s+(?:image|picture|photo|scene))\b[\s\S]{0,120}\b/i,/\b(?:add|remove|replace)\b[\s\S]{0,120}\b(?:it|image|picture|photo|background|sky|person|object|text|logo)\b/i,/\b(?:brighter|darker|night|daytime|time of day|sunset|sunrise|morning|evening|lighting|relight|background|style)\b/i,/^\s*(?:now|then|also)\b[\s\S]{0,120}\b(?:make|turn|change|adjust|add|remove|replace|edit)\b/i];async function*aF(a,b){let c=a.getReader(),d=new TextDecoder,e="",f=[],g=null;function h(){if(0===f.length)return g=null,null;let a=f.join("\n");f=[];let b=g;g=null;let c=a.trim();if(!c||"[DONE]"===c)return"done";try{let a=JSON.parse(c);return b&&!a.type&&(a.type=b),a}catch{return console.warn("[chatgpt-web] stream event JSON parse failed"),null}}try{for(;;){if(b?.aborted)return;let{value:a,done:i}=await c.read();if(i)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a);e=e.slice(a+1);let c=b.endsWith("\r")?b.slice(0,-1):b;if(""===c){let a=h();if("done"===a)return;a&&(yield a);continue}c.startsWith("event:")?g=c.slice(6).trim():c.startsWith("data:")&&f.push(c.slice(5).trimStart())}}(e+=d.decode()).trim().startsWith("data:")&&f.push(e.trim().slice(5).trimStart());let a=h();a&&"done"!==a&&(yield a)}finally{c.releaseLock()}}function aG(a){let b=[];for(let c of a)c&&"object"==typeof c&&"image_asset_pointer"===c.content_type&&"string"==typeof c.asset_pointer&&b.push(c.asset_pointer);return b}async function*aH(a,b){let c=null,d=null,e="",f=0,g=!1,h=new Map,i=!1,j=!1;for await(let k of aF(a,b)){if(k.error){let a="string"==typeof k.error?k.error:k.error.message||"ChatGPT stream error";yield{error:a,done:!0};return}if(k.conversation_id&&(c=k.conversation_id),"stream_handoff"===k.type){j=!0,yield{conversationId:c??void 0,handoff:!0};continue}if("server_ste_metadata"===k.type){let a=k.metadata;a&&"image gen"===a.turn_use_case&&(i=!0)}let a=k.message;if(!a||(a.metadata&&"string"==typeof a.metadata.image_gen_task_id&&(i=!0),a.author?.role!=="assistant"))continue;let b=a.id??null,l=a.status??"";b&&b!==d&&(d=b,e="",f=0,g=!1),"in_progress"===l&&(g=!0);let m=a.content?.parts??[];if(0===m.length)continue;if("finished_successfully"===l||""===l||g)for(let a of aG(m)){let c=h.get(a);h.set(a,c?.messageId?c:{pointer:a,...b?{messageId:b}:{}})}let n=m.map(a=>"string"==typeof a?a:"").join("");if(n.length>e.length&&(e=n),g&&e.length>f){let a=e.slice(f);f=e.length,yield{delta:a,answer:e,conversationId:c??void 0,messageId:d??void 0}}}!g&&e.length>f&&(yield{delta:e.slice(f),answer:e,conversationId:c??void 0,messageId:d??void 0}),yield{delta:"",answer:e,conversationId:c??void 0,messageId:d??void 0,imagePointers:h.size>0?Array.from(h.values()):void 0,imageGenAsync:i,handoff:j,done:!0}}function aI(a){if("string"==typeof a)return a;if(!a||"object"!=typeof a)return"";for(let b of["text","content","summary"]){let c=a[b];if("string"==typeof c)return c}return""}async function aJ(a,b){let c=`${O}/backend-api/conversation/${encodeURIComponent(a)}`,d={...$(),..._(b.sessionId,b.deviceId),Accept:"application/json",Authorization:`Bearer ${b.accessToken}`,Cookie:ad(b.cookie)};b.accountId&&(d["chatgpt-account-id"]=b.accountId);try{let a=await E(c,{method:"GET",headers:d,timeoutMs:3e4,signal:b.signal,byteResponse:!0});if(a.status>=400)return b.log?.warn?.("CGPT-WEB",`conversation poll ${a.status}: ${(a.text||"").slice(0,300)}`),{detail:null,terminal:[401,403,404].includes(a.status)};if(!a.text)return{detail:null,terminal:!1};return{detail:JSON.parse(function(a){let b=";base64,";if(!a.startsWith("data:")||!a.includes(b))return a;let c=a.slice(a.indexOf(b)+b.length);return new TextDecoder().decode(Buffer.from(c,"base64"))}(a.text)),terminal:!1}}catch(a){return b.log?.warn?.("CGPT-WEB",`conversation poll failed: ${a instanceof Error?a.message:String(a)}`),{detail:null,terminal:!1}}}async function aK(a,b){let c,d,e=Date.now(),f=!Number.isFinite(c=Number(process.env.OMNIROUTE_CGPT_WEB_PRO_TIMEOUT_MS))||c<=0?12e5:Math.floor(c),g=!Number.isFinite(d=Number(process.env.OMNIROUTE_CGPT_WEB_PRO_POLL_INTERVAL_MS))||d<=0?4e3:Math.floor(d),h=null,i=!1;for(;!b.signal?.aborted&&Date.now()-e<f;){let{detail:c,terminal:d}=await aJ(a,b);if(c){let a=function(a){let b=Object.values(a.mapping??{}),c=null;for(let a of b){let b=a.message;if(!b||b.author?.role!=="assistant"||b.metadata?.is_visually_hidden===!0)continue;let d=b.content?.content_type??"";if(d.includes("thought")||d.includes("reasoning"))continue;let e=(function(a){let b=a.content;return b?"string"==typeof b.text?b.text:(b.parts??[]).map(aI).join(""):""})(b).trim();if(!e)continue;let f="finished_successfully"===b.status&&!1!==b.end_turn,g=b.update_time??b.create_time??0;c&&(!f||c.finished&&!(g>=c.sort))&&(f||c.finished||!(g>=c.sort))||(c={text:e,messageId:b.id,finished:f,sort:g})}return c?{text:c.text,messageId:c.messageId,finished:c.finished}:null}(c);if(a&&(h=a,a.finished))return a}if(d){i=!0;break}let j=f-(Date.now()-e);if(j<=0)break;await function(a,b){return a<=0||b?.aborted?Promise.resolve():new Promise(c=>{let d=setTimeout(()=>{b?.removeEventListener("abort",e),c()},a),e=()=>{clearTimeout(d),b?.removeEventListener("abort",e),c()};b?.addEventListener("abort",e,{once:!0})})}(Math.min(g,j),b.signal)}return h?b.log?.warn?.("CGPT-WEB",i?`conversation poll stopped before finished_successfully; returning latest assistant text for ${a}`:`conversation poll timed out before finished_successfully; returning latest assistant text for ${a}`):b.log?.warn?.("CGPT-WEB",i?`conversation poll stopped without assistant text for ${a}`:`conversation poll timed out without assistant text for ${a}`),h}function aL(a){return`data: ${JSON.stringify(a)}
|
|
19
19
|
|
|
20
20
|
`}function aM(a){return 0===a.length?"":"\n\n"+a.map(a=>``).join("\n\n")}async function aN(a,b,c,d,e){if(!a||0===a.length||!c)return[];let f=[];for(let g of a)try{let a=await c(g.pointer,b,g.messageId??e);a&&f.push(a)}catch(a){d?.warn?.("CGPT-WEB",`Image resolve failed (${g.pointer}): ${a instanceof Error?a.message:String(a)}`)}return f}async function aO(a,b,c,d,e,f,g,h,i,j){let k,l="",m=null,n=!1,o=!1,p=null;for await(let b of aH(a,j)){if(b.conversationId&&(m=b.conversationId),b.messageId&&(p=b.messageId),b.handoff&&(o=!0),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"CHATGPT_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.done){l=b.answer||l,k=b.imagePointers,n=b.imageGenAsync??!1,o=o||(b.handoff??!1),b.messageId&&(p=b.messageId);break}b.answer&&(l=b.answer)}if(h&&m&&(o||!l.trim())){let a=await h(m);a?.text&&(l=a.text,a.messageId&&(p=a.messageId))}if(l=a_(l),n&&m&&(!k||0===k.length)&&g)try{let a=await g(m);a.length>0&&(k=a)}catch(a){i?.warn?.("CGPT-WEB",`Async image poll failed: ${a instanceof Error?a.message:String(a)}`)}l+=aM(await aN(k,m,f,i,p));let q=Math.ceil(e.length/4),r=Math.ceil(l.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:{role:"assistant",content:l},finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:q,completion_tokens:r,total_tokens:q+r}}),{status:200,headers:{"Content-Type":"application/json"}})}function aP(a,b,c){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",...c?{code:c}:{}}}),{status:a,headers:{"Content-Type":"application/json"}})}function aQ(a){let b=a?.trim();return b?b.replace(/\/+$/,"").replace(/\/v1$/i,""):null}function aR(a){return a?.split(",")[0]?.trim()||null}let aS="file-service://",aT="sediment://";async function aU(a,b){let c={...$(),..._(b.sessionId,b.deviceId),Accept:"application/json",Authorization:`Bearer ${b.accessToken}`,Cookie:ad(b.cookie)};b.accountId&&(c["chatgpt-account-id"]=b.accountId);let d=await E(a,{method:"GET",headers:c,timeoutMs:3e4,signal:b.signal});if(200!==d.status)return b.log?.warn?.("CGPT-WEB",`Image download URL fetch failed (${d.status}) for ${a}`),null;let e={};try{e=JSON.parse(d.text||"{}")}catch{return console.warn("[chatgpt-web] image download URL parse failed"),null}return e.download_url??null}async function aV(a,b,c){let d,e,f,g={...$(),Accept:"image/*,*/*;q=0.8",Authorization:`Bearer ${b.accessToken}`,Cookie:ad(b.cookie)};b.accountId&&(g["chatgpt-account-id"]=b.accountId);try{d=await E(a,{method:"GET",headers:g,timeoutMs:6e4,signal:b.signal,byteResponse:!0})}catch(a){return b.log?.warn?.("CGPT-WEB",`Image fetch failed: ${a instanceof Error?a.message:String(a)}`),null}if(200!==d.status)return b.log?.warn?.("CGPT-WEB",`Image fetch returned HTTP ${d.status} (${(d.text||"").slice(0,120)})`),null;if(null==d.text||0===d.text.length)return null;if(/^data:[^;]{1,256};base64,/.test(d.text)){let a=d.text.indexOf(",");f=d.text.slice(5,a).split(";")[0]||"image/png",e=Buffer.from(d.text.slice(a+1),"base64")}else e=Buffer.from(d.text,"binary"),f=d.headers.get("content-type")?.split(";")[0]?.trim()||"image/png";if(0===e.length||e.length>8388608)return e.length>8388608&&b.log?.warn?.("CGPT-WEB",`Image too large to cache (${e.length} bytes > 8388608); skipping`),null;let h=(0,N.Gt)(e,f,void 0,c);return`${b.publicBaseUrl}/v1/chatgpt-web/image/${h}`}async function aW(a){let b=[{url:`${O}/backend-api/celsius/ws/user`,method:"GET"},{url:`${O}/backend-api/register-websocket`,method:"POST"}],c={...$(),..._(a.sessionId,a.deviceId),Accept:"application/json",Authorization:`Bearer ${a.accessToken}`,Cookie:ad(a.cookie)};for(let{url:d,method:e}of(a.accountId&&(c["chatgpt-account-id"]=a.accountId),b)){let b;try{b=await E(d,{method:e,headers:c,body:"POST"===e?"":void 0,timeoutMs:3e4,signal:a.signal})}catch(b){a.log?.warn?.("CGPT-WEB",`register-websocket fetch failed for ${d}: ${b instanceof Error?b.message:String(b)}`);continue}if(200===b.status)try{let c=JSON.parse(b.text||"{}"),e=c.websocket_url??c.wss_url;if(e)return a.log?.debug?.("CGPT-WEB",`Got WebSocket URL via ${d}`),e}catch{console.warn("[chatgpt-web] WebSocket URL parse failed, falling through")}a.log?.warn?.("CGPT-WEB",`register-websocket via ${d} → ${b.status}: ${(b.text||"").slice(0,200)}`)}return null}async function aX(a,b,c,d){return new Promise(e=>{let f=new Map,g=!1,h=!1,i=!1,j=()=>{if(!g){g=!0;try{k.close()}catch{console.warn("[chatgpt-web] ws.close failed")}e({pointers:Array.from(f.values()),errored:h,gotAnyMessage:i})}},k=new WebSocket(a),l=setTimeout(()=>{d.log?.warn?.("CGPT-WEB",`WebSocket image wait timed out after ${c}ms`),j()},c),m=()=>{d.log?.debug?.("CGPT-WEB","WebSocket aborted by client"),j()};d.signal?.addEventListener?.("abort",m),k.onopen=()=>{i=!0,d.log?.debug?.("CGPT-WEB","WebSocket open — waiting for image events")},k.onerror=a=>{h=!0,d.log?.warn?.("CGPT-WEB",`WebSocket error: ${a.message??"unknown"}`)},k.onclose=()=>{clearTimeout(l),d.signal?.removeEventListener?.("abort",m),j()},k.onmessage=a=>{let c;i=!0;let d="string"==typeof a.data?a.data:a.data.toString();try{c=JSON.parse(d)}catch{console.warn("[chatgpt-web] WebSocket event JSON parse failed");return}let e=c,g=[],h=e.payload,k=h?.update_content;for(let a of(k?.message&&g.push({message:k.message,conversation_id:h?.conversation_id}),h?.message&&g.push({message:h.message,conversation_id:h.conversation_id}),e.data?.message&&g.push(e.data),g)){if(a?.conversation_id&&a.conversation_id!==b)continue;let c=a?.message;if(Array.isArray(c?.content?.parts))for(let a of aG(c.content?.parts??[])){let b=f.get(a);f.set(a,b?.messageId?b:{pointer:a,...c?.id?{messageId:c.id}:{}})}if(c?.metadata&&"object"==typeof c.metadata){let a=c.metadata,b=a.asset_pointer??a.image_asset_pointer;if("string"==typeof b){let a=f.get(b);f.set(b,a?.messageId?a:{pointer:b,...c?.id?{messageId:c.id}:{}})}}}f.size>0&&j()}})}async function aY(a,b,c={}){let d,e=c.timeoutMs??(!Number.isFinite(d=Number(process.env.OMNIROUTE_CGPT_WEB_IMAGE_TIMEOUT_MS))||d<=0?18e4:Math.floor(d)),f=Date.now()+e;for(let c=0;c<2;c++){let d=f-Date.now();if(d<=0)break;let e=await aW(b);if(!e){if(b.log?.warn?.("CGPT-WEB",0===c?"Could not register WebSocket — async image gen not retrievable":`WebSocket re-registration failed on retry attempt ${c+1}`),0===c)continue;break}b.log?.debug?.("CGPT-WEB",`Registered WebSocket for async image (attempt ${c+1}, ${d}ms remaining)`);let g=await aX(e,a,d,b);if(g.pointers.length>0)return g.pointers;if(b.signal?.aborted||!g.errored||g.gotAnyMessage)break;b.log?.warn?.("CGPT-WEB",`WebSocket attempt ${c+1} ended in transport error before any frame; retrying`)}return[]}class aZ extends e.Hv{constructor(){super("chatgpt-web",{id:"chatgpt-web",baseUrl:S})}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:h,onCredentialsRefreshed:i,clientHeaders:l}){var m,n,o;let p,q,r,s,t,u,v,w,x,y=b?.messages;if(!y||!Array.isArray(y)||0===y.length)return{response:aP(400,"Missing or empty messages array"),url:S,headers:{},transformedBody:b};let{hasTools:z,requestedTools:A,effectiveMessages:B}=(0,g.S$)(b||{},y);if(!d.apiKey)return{response:aP(401,"ChatGPT auth failed — paste your __Secure-next-auth.session-token cookie value."),url:S,headers:{},transformedBody:b};let C=d.apiKey;try{p=await ae(C,e)}catch(a){if(a instanceof af)return h?.warn?.("CGPT-WEB",a.message),{response:aP(401,"ChatGPT auth failed — re-paste your __Secure-next-auth.session-token cookie from chatgpt.com.","HTTP_401"),url:P,headers:{},transformedBody:b};return h?.error?.("CGPT-WEB",`Session exchange failed: ${a instanceof Error?a.message:String(a)}`),{response:aP(502,`ChatGPT session exchange failed: ${a instanceof Error?a.message:String(a)}`),url:P,headers:{},transformedBody:b}}if(p.refreshedCookie&&p.refreshedCookie!==C){let a={...d,apiKey:p.refreshedCookie};try{await i?.(a)}catch(a){h?.warn?.("CGPT-WEB",`Failed to persist refreshed cookie: ${a instanceof Error?a.message:String(a)}`)}}try{q=await ao(C,e)}catch(a){h?.warn?.("CGPT-WEB",`DPL warmup failed (continuing with fallback): ${a instanceof Error?a.message:String(a)}`),q={dpl:`dpl=${V.replace(/^prod-/,"")}`,scriptSrc:`${O}/_next/static/chunks/webpack-${ap(16)}.js`}}let F=(0,k.randomUUID)(),G=function(a){let b=ab(a),c=W.get(b);if(!c){let d=(0,k.createHash)("sha256").update(a).digest("hex");if(c=`${d.slice(0,8)}-${d.slice(8,12)}-4${d.slice(13,16)}-${(3&parseInt(d.slice(16,17),16)|8).toString(16)}${d.slice(17,20)}-`+d.slice(20,32),W.size>=200){let a=W.keys().next().value;a&&W.delete(a)}W.set(b,c)}return c}(C);await ah(p.accessToken,p.accountId,F,G,C,e,h);let H=(m=d.providerSpecificData,v=X[a]??a,{slug:v,effort:Y[a]??null??function(a,b){if(b&&void 0!==b.thinkingEffort)return aj(b.thinkingEffort);let c=a??null;if(!c)return null;let d=aj(c.reasoning_effort);return d||aj(c.reasoning?.effort)}(b,m),isPro:"gpt-5-5-pro"===v}),I=H.slug,J=H.effort;J&&(a.includes("thinking")||"o3"===a||I.includes("thinking")||Z.has(I)||Z.has(a))&&await ak(I,J,p.accessToken,p.accountId,F,G,C,e,h);try{r=await al(p.accessToken,p.accountId,F,G,C,q,e,h)}catch(a){if(a instanceof am)return h?.warn?.("CGPT-WEB",a.message),{response:aP(403,"ChatGPT blocked the request (Sentinel/Turnstile required). Try again later or open chatgpt.com in a browser to refresh state.","SENTINEL_BLOCKED"),url:Q,headers:{},transformedBody:b};return h?.error?.("CGPT-WEB",`Sentinel failed: ${a instanceof Error?a.message:String(a)}`),{response:aP(502,`ChatGPT sentinel failed: ${a instanceof Error?a.message:String(a)}`),url:Q,headers:{},transformedBody:b}}h?.debug?.("CGPT-WEB",`sentinel: token=${r.token?"y":"n"} pow=${r.proofofwork?.required?"y":"n"} turnstile=${r.turnstile?.required?"y":"n"}`);let K="string"==typeof d.providerSpecificData?.turnstileToken?d.providerSpecificData.turnstileToken:null,L=null;if(r.proofofwork?.required&&r.proofofwork.seed&&r.proofofwork.difficulty){let a=au(U,q.dpl,q.scriptSrc);L=await ax(r.proofofwork.seed,r.proofofwork.difficulty,a,h)}let M=function(a){let b="",c=[],d=null;for(let e of a){let a=String(e.role||"user");"developer"===a&&(a="system");let f="";"string"==typeof e.content?f=e.content:Array.isArray(e.content)&&(f=e.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" "));let g=function(a){let b=null;for(let c of a.matchAll(az)){let a=c[1],d=(0,N.Vv)(a);d&&(b=d)}return b}(f=f.replace(ay,(a,b)=>b?`[${b}: generated image]`:"[generated image]"));g&&(d=g),f.trim()&&("system"===a?b+=(b?"\n":"")+f:("user"===a||"assistant"===a)&&c.push({role:a,content:f}))}let e="";return c.length>0&&"user"===c[c.length-1].role&&(e=c.pop().content),{systemMsg:b,history:c,currentMsg:e,latestImageContext:d}}(B);if(!M.currentMsg.trim()&&0===M.history.length)return{response:aP(400,"Empty user message"),url:S,headers:{},transformedBody:b};let R=function(a){if(!a.latestImageContext)return!1;let b=a.currentMsg.trim();return!(!b||aB.some(a=>a.test(b))||aD(a))&&aE.some(a=>a.test(b))}(M),T=R?M.latestImageContext:null,ac=!(!(w=M.currentMsg.trim())||aB.some(a=>a.test(w))||aD(M))&&aA.some(a=>a.test(w))||R,ag=ac||!!T;ac?h?.debug?.("CGPT-WEB",T?"Image edit intent detected — continuing saved image conversation":"Image-gen intent detected — disabling Temporary Chat for this turn"):H.isPro&&h?.debug?.("CGPT-WEB","GPT-5.5 Pro text request — keeping Temporary Chat enabled");let ai=function(a,b,c,d){let e=[];a.systemMsg.trim()&&e.push(a.systemMsg.trim());let f=d.continuation??null;if(!f&&a.history.length>0){let b=a.history.map(a=>`${"assistant"===a.role?"Assistant":"User"}: ${a.content}`).join("\n\n");e.push(`Prior conversation (for context — answer only the new user message below):
|
|
21
21
|
|
|
22
|
-
${b}`)}let g=[];e.length>0&&g.push({id:(0,k.randomUUID)(),author:{role:"system"},content:{content_type:"text",parts:[e.join("\n\n")]}});let h=aD(a)?"Briefly acknowledge the image result described in the system context. Do not generate, edit, or request another image.":a.currentMsg||"";return g.push({id:(0,k.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[h]}}),{action:"next",messages:g,model:b,conversation_id:f?.conversationId??null,parent_message_id:f?.parentMessageId??c,timezone_offset_min:-new Date().getTimezoneOffset(),history_and_training_disabled:!d.persistConversation,suggestions:[],websocket_request_id:(0,k.randomUUID)(),conversation_mode:{kind:"primary_assistant"},supports_buffering:!0,force_parallel_switch:"auto",paragen_cot_summary_display_override:"allow",...d.thinkingEffort?{thinking_effort:d.thinkingEffort}:{}}}(M,I,T?.parentMessageId??(0,k.randomUUID)(),{persistConversation:ag,thinkingEffort:J,continuation:T}),an={...$(),..._(F,G),"Content-Type":"application/json",Accept:"text/event-stream",Authorization:`Bearer ${p.accessToken}`,Cookie:ad(C)};p.accountId&&(an["chatgpt-account-id"]=p.accountId),r.token&&(an["openai-sentinel-chat-requirements-token"]=r.token),r.prepare_token&&(an["openai-sentinel-chat-requirements-prepare-token"]=r.prepare_token),L&&(an["openai-sentinel-proof-token"]=L),K&&(an["openai-sentinel-turnstile-token"]=K),h?.info?.("CGPT-WEB",`Conversation request → ${I} (pow=${!!L})`);try{s=await E(S,{method:"POST",headers:an,body:JSON.stringify(ai),timeoutMs:12e4,signal:e,stream:c})}catch(b){h?.error?.("CGPT-WEB",`Fetch failed: ${b instanceof Error?b.message:String(b)}`);let a=b instanceof D?"TLS_UNAVAILABLE":void 0;return{response:aP(502,`ChatGPT connection failed: ${b instanceof Error?b.message:String(b)}`,a),url:S,headers:an,transformedBody:ai}}if(s.status>=400){let a=s.status;h?.warn?.("CGPT-WEB",`conv ${a}: ${(s.text||"").slice(0,400)}`);let b=f[a]??`ChatGPT returned HTTP ${a}`;return(401===a||403===a)&&aa.delete(ab(C)),h?.warn?.("CGPT-WEB",b),{response:aP(a,b,`HTTP_${a}`),url:S,headers:an,transformedBody:ai}}if(s.body)t=s.body;else{let a;if(!s.text)return{response:aP(502,"ChatGPT returned empty response body"),url:S,headers:an,transformedBody:ai};o=s.text,a=new TextEncoder,t=new ReadableStream({start(b){b.enqueue(a.encode(o)),b.close()}})}let aq=`chatcmpl-cgpt-${crypto.randomUUID().slice(0,12)}`,ar=Math.floor(Date.now()/1e3),as={accessToken:p.accessToken,accountId:p.accountId,sessionId:F,deviceId:G,cookie:C,signal:e,log:h,publicBaseUrl:function(a,b){let c=aQ(process.env.OMNIROUTE_PUBLIC_BASE_URL);if(c)return b?.debug?.("CGPT-WEB","derivePublicBaseUrl: using OMNIROUTE_PUBLIC_BASE_URL"),c;let d=function(a){let b={};for(let[c,d]of Object.entries(a??{}))b[c.toLowerCase()]=d;let c=aR(b["x-forwarded-host"]),d=aR(b["x-forwarded-proto"]),e=c||aR(b.host);if(!e)return null;let f=e.includes("localhost")||/^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(e)||e.endsWith(".local")||e.includes(":");return`${d||(f?"http":"https")}://${e}`}(a),e=aQ(process.env.OMNIROUTE_BASE_URL)||aQ(process.env.NEXT_PUBLIC_BASE_URL);return(b?.debug?.("CGPT-WEB",`derivePublicBaseUrl: configured=${e??"-"} header=${d??"-"}`),e&&(!d||!function(a){try{let b=new URL(a).hostname.toLowerCase();return"localhost"===b||"127.0.0.1"===b||"::1"===b||"0.0.0.0"===b}catch{return console.warn("[chatgpt-web] URL parse failed, falling back to regex"),/\b(?:localhost|127\.0\.0\.1|0\.0\.0\.0)\b/i.test(a)}}(e)))?e:d||e||`http://localhost:${process.env.PORT||20128}`}(l,h)},at=(x=new Map,async(a,b,c)=>{if(x.has(a))return x.get(a)??null;let d=null;a.startsWith(aS)?d=a.slice(aS.length):a.startsWith(aT)?d=a.slice(aT.length):as.log?.warn?.("CGPT-WEB",`Unknown asset_pointer scheme: ${a}`);let e=null;d&&((e=await aU(`${O}/backend-api/files/${encodeURIComponent(d)}/download`,as))||!b||(e=await aU(`${O}/backend-api/conversation/${encodeURIComponent(b)}/attachment/${encodeURIComponent(d)}/download`,as)));let f=null;if(e&&(f=await aV(e,as,b&&c?{conversationId:b,parentMessageId:c}:void 0)),x.set(a,f),f){let b=f.startsWith("data:")?`data:... (${f.length} chars)`:f.slice(0,80)+"...";as.log?.debug?.("CGPT-WEB",`Resolved ${a} → ${b}`)}return f}),av=a=>aY(a,as),aw=H.isPro?a=>aK(a,as):null,aC=z&&!ac;if(c&&!aC){let b;u=new Response((n=t,b=new TextEncoder,new ReadableStream({async start(c){try{let d;c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f=null,g=!1,i=!1,j="",k="",l=null,m=d=>{let e=a_(d);e&&(j+=e,c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))))},o=(d=5e3)=>{let e=aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:""},finish_reason:null,logprobs:null}]}),f=setInterval(()=>{try{c.enqueue(b.encode(e))}catch{console.warn("[chatgpt-web] heartbeat enqueue failed - controller closed"),clearInterval(f)}},d);return()=>clearInterval(f)};for await(let h of aH(n,e)){if(h.conversationId&&(f=h.conversationId),h.messageId&&(l=h.messageId),h.handoff&&(i=!0),h.error){c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${h.error}]`},finish_reason:null,logprobs:null}]})));break}if(h.done){d=h.imagePointers,g=h.imageGenAsync??!1,i=i||(h.handoff??!1),h.messageId&&(l=h.messageId);break}h.delta&&m(h.delta)}if(aw&&f&&i){let a=o();try{let a=await aw(f);a?.text&&(k=a.text,a.messageId&&(l=a.messageId))}finally{a()}}if(k&&(a=>{let b=a_(a),c=b.trim();if(!c)return;let d=j.trim();if(d===c||d.endsWith(c))return;let e=d&&!j.endsWith("\n")?"\n\n":"";m(`${e}${b}`)})(k),g&&f&&(!d||0===d.length)&&av){c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:"_Generating image…_\n\n"},finish_reason:null,logprobs:null}]})));let e=o();try{let a=await av(f);a.length>0&&(d=a)}catch(a){h?.warn?.("CGPT-WEB",`Async image poll failed: ${a instanceof Error?a.message:String(a)}`)}finally{e()}}let p=o(),q=[];try{q=await aN(d,f,at,h,l)}finally{p()}if(e?.aborted)return;let r=aM(q),s=a=>{try{return c.enqueue(a),!0}catch{return console.warn("[chatgpt-web] controller enqueue failed"),!1}};if(r&&!s(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:r},finish_reason:null,logprobs:null}]})))||!s(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))))return;s(b.encode("data: [DONE]\n\n"))}catch(d){c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d instanceof Error?d.message:String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{try{c.close()}catch{}}}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else u=await aO(t,a,aq,ar,M.currentMsg,at,av,aw,h,e),aC&&(u=await j(u,A,c,{cid:aq,created:ar,model:a}));return{response:u,url:S,headers:an,transformedBody:ai}}}let a$=/entity\["[^"]*","([^"]*)"[^\]]*\]/g;function a_(a){return a.replace(a$,"$1")}},10082:(a,b,c)=>{"use strict";c.d(b,{E:()=>e});var d=c(39326);class e extends d.id{constructor(a={}){super(),this.lastRefreshTime=0,this.refreshTimer=null,this.sessionValid=!1,this.retryCount=0,this.maxRetries=2,this.currentUserToken="",this.refreshConfig={sessionRefreshInterval:3e6,maxRefreshRetries:3,autoRefresh:!0,...a}}async execute(a){this.retryCount=0;let b=a.credentials;return this.setCurrentUserToken((0,d.sO)(b)),this.executeWithRetry(a)}isSessionValid(){return this.sessionValid}getTimeSinceRefresh(){return Date.now()-this.lastRefreshTime}async refreshSession(){await this.doRefreshSession()}destroy(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=null)}startAutoRefresh(){this.refreshTimer&&clearInterval(this.refreshTimer),this.refreshTimer=setInterval(async()=>{if(!this.currentUserToken){this.sessionValid=!1;return}try{await this.doRefreshSession()}catch(a){console.error("[DeepSeek-WEB-AUTO-REFRESH] Auto-refresh failed:",a)}},this.refreshConfig.sessionRefreshInterval),"object"==typeof this.refreshTimer&&"unref"in this.refreshTimer&&this.refreshTimer.unref?.()}setCurrentUserToken(a){!a||this.currentUserToken!==a&&(this.currentUserToken=a,this.sessionValid=!1,this.refreshConfig.autoRefresh&&this.startAutoRefresh())}async doRefreshSession(){if(!this.currentUserToken)throw this.sessionValid=!1,Error("No userToken available for session refresh");let{maxRefreshRetries:a}=this.refreshConfig;for(let b=0;b<a;b++)try{if(d.Az.delete(this.currentUserToken),await (0,d.kG)(this.currentUserToken)){this.lastRefreshTime=Date.now(),this.sessionValid=!0;return}}catch(d){let c=d instanceof Error?d.message:String(d);if(c.includes("invalid")||c.includes("expired"))throw this.sessionValid=!1,Error("Token expired — get a new userToken from DeepSeek localStorage");if(b>=a-1)throw d;await new Promise(a=>setTimeout(a,1e3*Math.pow(2,b)))}throw Error("Failed to refresh session after max retries")}executeBase(a){return super.execute(a)}async executeWithRetry(a){try{return await this.executeBase(a)}catch(c){let b=c instanceof Error?c.message:String(c);if((b.includes("401")||b.includes("Unauthorized")||b.includes("expired"))&&this.retryCount<this.maxRetries){this.retryCount++;try{return await this.doRefreshSession(),await this.executeBase(a)}catch(a){console.error(`[DeepSeek-WEB] Session refresh failed (attempt ${this.retryCount}/${this.maxRetries}):`,a)}}throw(b.includes("429")||b.includes("Rate limit"))&&console.warn("[DeepSeek-WEB] Rate limited:",b),c}}}new e},11191:(a,b,c)=>{"use strict";let d;c.d(b,{T1:()=>L,kn:()=>z,t6:()=>f.t6,IM:()=>f.IM,XK:()=>F,H5:()=>y});var e=c(96303),f=c(37664),g=c(68404),h=c(97510);let i=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
|
|
22
|
+
${b}`)}let g=[];e.length>0&&g.push({id:(0,k.randomUUID)(),author:{role:"system"},content:{content_type:"text",parts:[e.join("\n\n")]}});let h=aD(a)?"Briefly acknowledge the image result described in the system context. Do not generate, edit, or request another image.":a.currentMsg||"";return g.push({id:(0,k.randomUUID)(),author:{role:"user"},content:{content_type:"text",parts:[h]}}),{action:"next",messages:g,model:b,conversation_id:f?.conversationId??null,parent_message_id:f?.parentMessageId??c,timezone_offset_min:-new Date().getTimezoneOffset(),history_and_training_disabled:!d.persistConversation,suggestions:[],websocket_request_id:(0,k.randomUUID)(),conversation_mode:{kind:"primary_assistant"},supports_buffering:!0,force_parallel_switch:"auto",paragen_cot_summary_display_override:"allow",...d.thinkingEffort?{thinking_effort:d.thinkingEffort}:{}}}(M,I,T?.parentMessageId??(0,k.randomUUID)(),{persistConversation:ag,thinkingEffort:J,continuation:T}),an={...$(),..._(F,G),"Content-Type":"application/json",Accept:"text/event-stream",Authorization:`Bearer ${p.accessToken}`,Cookie:ad(C)};p.accountId&&(an["chatgpt-account-id"]=p.accountId),r.token&&(an["openai-sentinel-chat-requirements-token"]=r.token),r.prepare_token&&(an["openai-sentinel-chat-requirements-prepare-token"]=r.prepare_token),L&&(an["openai-sentinel-proof-token"]=L),K&&(an["openai-sentinel-turnstile-token"]=K),h?.info?.("CGPT-WEB",`Conversation request → ${I} (pow=${!!L})`);try{s=await E(S,{method:"POST",headers:an,body:JSON.stringify(ai),timeoutMs:12e4,signal:e,stream:c})}catch(b){h?.error?.("CGPT-WEB",`Fetch failed: ${b instanceof Error?b.message:String(b)}`);let a=b instanceof D?"TLS_UNAVAILABLE":void 0;return{response:aP(502,`ChatGPT connection failed: ${b instanceof Error?b.message:String(b)}`,a),url:S,headers:an,transformedBody:ai}}if(s.status>=400){let a=s.status;h?.warn?.("CGPT-WEB",`conv ${a}: ${(s.text||"").slice(0,400)}`);let b=f[a]??`ChatGPT returned HTTP ${a}`;return(401===a||403===a)&&aa.delete(ab(C)),h?.warn?.("CGPT-WEB",b),{response:aP(a,b,`HTTP_${a}`),url:S,headers:an,transformedBody:ai}}if(s.body)t=s.body;else{let a;if(!s.text)return{response:aP(502,"ChatGPT returned empty response body"),url:S,headers:an,transformedBody:ai};o=s.text,a=new TextEncoder,t=new ReadableStream({start(b){b.enqueue(a.encode(o)),b.close()}})}let aq=`chatcmpl-cgpt-${crypto.randomUUID().slice(0,12)}`,ar=Math.floor(Date.now()/1e3),as={accessToken:p.accessToken,accountId:p.accountId,sessionId:F,deviceId:G,cookie:C,signal:e,log:h,publicBaseUrl:function(a,b){let c=aQ(process.env.OMNIROUTE_PUBLIC_BASE_URL);if(c)return b?.debug?.("CGPT-WEB","derivePublicBaseUrl: using OMNIROUTE_PUBLIC_BASE_URL"),c;let d=function(a){let b={};for(let[c,d]of Object.entries(a??{}))b[c.toLowerCase()]=d;let c=aR(b["x-forwarded-host"]),d=aR(b["x-forwarded-proto"]),e=c||aR(b.host);if(!e)return null;let f=e.includes("localhost")||/^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(e)||e.endsWith(".local")||e.includes(":");return`${d||(f?"http":"https")}://${e}`}(a),e=aQ(process.env.OMNIROUTE_BASE_URL)||aQ(process.env.NEXT_PUBLIC_BASE_URL);return(b?.debug?.("CGPT-WEB",`derivePublicBaseUrl: configured=${e??"-"} header=${d??"-"}`),e&&(!d||!function(a){try{let b=new URL(a).hostname.toLowerCase();return"localhost"===b||"127.0.0.1"===b||"::1"===b||"0.0.0.0"===b}catch{return console.warn("[chatgpt-web] URL parse failed, falling back to regex"),/\b(?:localhost|127\.0\.0\.1|0\.0\.0\.0)\b/i.test(a)}}(e)))?e:d||e||`http://localhost:${process.env.PORT||20128}`}(l,h)},at=(x=new Map,async(a,b,c)=>{if(x.has(a))return x.get(a)??null;let d=null;a.startsWith(aS)?d=a.slice(aS.length):a.startsWith(aT)?d=a.slice(aT.length):as.log?.warn?.("CGPT-WEB",`Unknown asset_pointer scheme: ${a}`);let e=null;d&&((e=await aU(`${O}/backend-api/files/${encodeURIComponent(d)}/download`,as))||!b||(e=await aU(`${O}/backend-api/conversation/${encodeURIComponent(b)}/attachment/${encodeURIComponent(d)}/download`,as)));let f=null;if(e&&(f=await aV(e,as,b&&c?{conversationId:b,parentMessageId:c}:void 0)),x.set(a,f),f){let b=f.startsWith("data:")?`data:... (${f.length} chars)`:f.slice(0,80)+"...";as.log?.debug?.("CGPT-WEB",`Resolved ${a} → ${b}`)}return f}),av=a=>aY(a,as),aw=H.isPro?a=>aK(a,as):null,aC=z&&!ac;if(c&&!aC){let b;u=new Response((n=t,b=new TextEncoder,new ReadableStream({async start(c){try{let d;c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let f=null,g=!1,i=!1,j="",k="",l=null,m=d=>{let e=a_(d);e&&(j+=e,c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))))},o=(d=5e3)=>{let e=aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:""},finish_reason:null,logprobs:null}]}),f=setInterval(()=>{try{c.enqueue(b.encode(e))}catch{console.warn("[chatgpt-web] heartbeat enqueue failed - controller closed"),clearInterval(f)}},d);return()=>clearInterval(f)};for await(let h of aH(n,e)){if(h.conversationId&&(f=h.conversationId),h.messageId&&(l=h.messageId),h.handoff&&(i=!0),h.error){c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${h.error}]`},finish_reason:null,logprobs:null}]})));break}if(h.done){d=h.imagePointers,g=h.imageGenAsync??!1,i=i||(h.handoff??!1),h.messageId&&(l=h.messageId);break}h.delta&&m(h.delta)}if(aw&&f&&i){let a=o();try{let a=await aw(f);a?.text&&(k=a.text,a.messageId&&(l=a.messageId))}finally{a()}}if(k&&(a=>{let b=a_(a),c=b.trim();if(!c)return;let d=j.trim();if(d===c||d.endsWith(c))return;let e=d&&!j.endsWith("\n")?"\n\n":"";m(`${e}${b}`)})(k),g&&f&&(!d||0===d.length)&&av){c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:"_Generating image…_\n\n"},finish_reason:null,logprobs:null}]})));let e=o();try{let a=await av(f);a.length>0&&(d=a)}catch(a){h?.warn?.("CGPT-WEB",`Async image poll failed: ${a instanceof Error?a.message:String(a)}`)}finally{e()}}let p=o(),q=[];try{q=await aN(d,f,at,h,l)}finally{p()}if(e?.aborted)return;let r=aM(q),s=a=>{try{return c.enqueue(a),!0}catch{return console.warn("[chatgpt-web] controller enqueue failed"),!1}};if(r&&!s(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:r},finish_reason:null,logprobs:null}]})))||!s(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))))return;s(b.encode("data: [DONE]\n\n"))}catch(d){c.enqueue(b.encode(aL({id:aq,object:"chat.completion.chunk",created:ar,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d instanceof Error?d.message:String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{try{c.close()}catch{}}}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else u=await aO(t,a,aq,ar,M.currentMsg,at,av,aw,h,e),aC&&(u=await j(u,A,c,{cid:aq,created:ar,model:a}));return{response:u,url:S,headers:an,transformedBody:ai}}}let a$=/entity\["[^"]*","([^"]*)"[^\]]*\]/g;function a_(a){return a.replace(a$,"$1")}},10082:(a,b,c)=>{c.d(b,{E:()=>e});var d=c(39326);class e extends d.id{constructor(a={}){super(),this.lastRefreshTime=0,this.refreshTimer=null,this.sessionValid=!1,this.retryCount=0,this.maxRetries=2,this.currentUserToken="",this.refreshConfig={sessionRefreshInterval:3e6,maxRefreshRetries:3,autoRefresh:!0,...a}}async execute(a){this.retryCount=0;let b=a.credentials;return this.setCurrentUserToken((0,d.sO)(b)),this.executeWithRetry(a)}isSessionValid(){return this.sessionValid}getTimeSinceRefresh(){return Date.now()-this.lastRefreshTime}async refreshSession(){await this.doRefreshSession()}destroy(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=null)}startAutoRefresh(){this.refreshTimer&&clearInterval(this.refreshTimer),this.refreshTimer=setInterval(async()=>{if(!this.currentUserToken){this.sessionValid=!1;return}try{await this.doRefreshSession()}catch(a){console.error("[DeepSeek-WEB-AUTO-REFRESH] Auto-refresh failed:",a)}},this.refreshConfig.sessionRefreshInterval),"object"==typeof this.refreshTimer&&"unref"in this.refreshTimer&&this.refreshTimer.unref?.()}setCurrentUserToken(a){!a||this.currentUserToken!==a&&(this.currentUserToken=a,this.sessionValid=!1,this.refreshConfig.autoRefresh&&this.startAutoRefresh())}async doRefreshSession(){if(!this.currentUserToken)throw this.sessionValid=!1,Error("No userToken available for session refresh");let{maxRefreshRetries:a}=this.refreshConfig;for(let b=0;b<a;b++)try{if(d.Az.delete(this.currentUserToken),await (0,d.kG)(this.currentUserToken)){this.lastRefreshTime=Date.now(),this.sessionValid=!0;return}}catch(d){let c=d instanceof Error?d.message:String(d);if(c.includes("invalid")||c.includes("expired"))throw this.sessionValid=!1,Error("Token expired — get a new userToken from DeepSeek localStorage");if(b>=a-1)throw d;await new Promise(a=>setTimeout(a,1e3*Math.pow(2,b)))}throw Error("Failed to refresh session after max retries")}executeBase(a){return super.execute(a)}async executeWithRetry(a){try{return await this.executeBase(a)}catch(c){let b=c instanceof Error?c.message:String(c);if((b.includes("401")||b.includes("Unauthorized")||b.includes("expired"))&&this.retryCount<this.maxRetries){this.retryCount++;try{return await this.doRefreshSession(),await this.executeBase(a)}catch(a){console.error(`[DeepSeek-WEB] Session refresh failed (attempt ${this.retryCount}/${this.maxRetries}):`,a)}}throw(b.includes("429")||b.includes("Rate limit"))&&console.warn("[DeepSeek-WEB] Rate limited:",b),c}}}new e},11191:(a,b,c)=>{let d;c.d(b,{T1:()=>L,kn:()=>z,t6:()=>f.t6,IM:()=>f.IM,XK:()=>F,H5:()=>y});var e=c(96303),f=c(37664),g=c(68404),h=c(97510);let i=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
|
|
23
23
|
|
|
24
24
|
## General
|
|
25
25
|
|
|
@@ -141,16 +141,16 @@ data: ${d}
|
|
|
141
141
|
`))}catch{}y({reason:"upstream_failed"})},A=new ReadableStream({async start(a){v=a,w=()=>{y({reason:"client_aborted"})},i.signal?.addEventListener("abort",w,{once:!0});try{if(t=await p(/^wss?:\/\//.test(B)?B:B.startsWith("https:")?B.replace(/^https:/,"wss:"):B.startsWith("http:")?B.replace(/^http:/,"ws:"):B,{browser:"chrome_142",os:"windows",headers:j}),r)return;if(i.signal?.aborted)return void y({reason:"client_aborted"});t.onmessage=b=>{if(r)return;let c="string"==typeof b.data?b.data:Buffer.from(b.data).toString("utf8"),d=function(a){let b="message",c=a,d=!1;try{let e=JSON.parse(a);if(e&&"string"==typeof e.type&&e.type.trim()){if(b=e.type.trim(),"error"===b||"response.failed"===b){let a,d,f,g,h,i,j,k,l=(a=e.response&&"object"==typeof e.response&&!Array.isArray(e.response)?e.response:null,d=a?.error&&"object"==typeof a.error&&!Array.isArray(a.error)?a.error:e.error&&"object"==typeof e.error&&!Array.isArray(e.error)?e.error:e,f="string"==typeof d.code?d.code:"string"==typeof d.type?d.type:"upstream_error",g="string"==typeof d.type?d.type:"",h="string"==typeof d.message&&d.message.trim()?d.message:"Codex upstream error",i={code:f,message:h},k=J(e.status_code)??J(e.status)??J(a?.status_code)??J(a?.status)??J(d.status_code)??J(d.status)??((j=`${f} ${g} ${h}`.toLowerCase()).includes("usage_limit_reached")||j.includes("rate_limit")||j.includes("rate limit")||j.includes("quota")||j.includes("too many requests")||j.includes("limit has been reached")||j.includes("limit reached")?429:null),g&&(i.type=g),null!==k&&(i.status_code=k),{type:"response.failed",response:{id:"string"==typeof a?.id?a.id:null,status:"failed",error:i}});c=JSON.stringify(l),b="response.failed"}d="response.completed"===b||"response.failed"===b}}catch{console.warn("[codex] SSE payload parse failed, using raw payload")}return b.startsWith("codex.")&&K()||!c.trim()?{sse:"",terminal:d}:{sse:`event: ${b}
|
|
142
142
|
data: ${c}
|
|
143
143
|
|
|
144
|
-
`,terminal:d}}(c);if(!r){if(d.sse)try{a.enqueue(q.encode(d.sse))}catch{y({reason:"downstream_closed",emitDone:!1,closeController:!1});return}d.terminal&&y({reason:"terminal_event"})}},t.onerror=a=>{z("upstream_websocket_error",a.message||"Codex upstream WebSocket error")},t.onclose=()=>{y({reason:"upstream_closed",closeSocket:!1})},r||(await u.VN(B,j,o,i.log),t.send(o))}catch(a){z("upstream_websocket_connect_failed",a instanceof Error?a.message:String(a))}},cancel(){y({reason:"client_cancelled",emitDone:!1,closeController:!1})}});return{response:new Response(A,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:B,headers:j,transformedBody:n}}buildUrl(a,b,c=0,d=null){let e=E(d?.requestEndpointPath);if(null!==e){let a=String(this.config.baseUrl||"").replace(/\/$/,"");return a.endsWith("/responses")?`${a}${e}`:`${a}/responses${e}`}return super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0){let c=F(a?.requestEndpointPath),d=super.buildHeaders(a,!c);d.Version=(0,k.zq)(),(0,h.Uv)(d,(0,k.EQ)());let e=a?.providerSpecificData?.workspaceId;"string"==typeof e&&e&&(d["chatgpt-account-id"]=e);let f=a?.providerSpecificData?.codexClientIdentity;d.originator="codex_cli_rs";let g=this.getPromptCacheSessionId(a,null);return g&&(d.session_id=g),f&&(d.session_id=f.sessionId,d["x-client-request-id"]=f.sessionId,d["x-codex-window-id"]=f.windowId,d["x-codex-turn-metadata"]=JSON.stringify({session_id:f.sessionId,thread_source:"user",turn_id:f.turnId,sandbox:"none"})),d}getPromptCacheSessionId(a,b){let c=(0,k.Eh)(b?.prompt_cache_key);if(c)return c;let d=b?.session_id??b?.conversation_id,e=(0,k.Eh)(d);return e||(0,k.Eh)(a?.providerSpecificData?.workspaceId)||null}async refreshCredentials(a,b){if(!a?.refreshToken)return b?.warn?.("TOKEN_REFRESH","Codex: no refresh token available, re-authentication required"),null;let c=await (0,n.iD)("codex",a,b);return c?c.error?(b?.warn?.("TOKEN_REFRESH",`Codex: token refresh failed (${c.error}) — re-authentication required`),null):c:(b?.warn?.("TOKEN_REFRESH","Codex: token refresh failed — re-authentication required"),null)}transformRequest(a,b,c,d){var f,g;let h,j,k,l,m=b&&"object"==typeof b?structuredClone(b):{},n=m?._nativeCodexPassthrough===!0,p=F(d?.requestEndpointPath),s=(0,e.vr)(d?.providerSpecificData),u=(0,r.IZ)().mode===r.g8.PASSTHROUGH;m._omnirouteResponsesStore,delete m._omnirouteResponsesStore,p?(delete m.stream,delete m.stream_options,delete m.client_metadata):m.stream=!0,delete m._nativeCodexPassthrough;let v=function(a){if("string"!=typeof a)return;let b=a.trim().toLowerCase();if(b)return"fast"===b?"priority":b}(m.service_tier);if(v?m.service_tier=v:s.serviceTier&&(m.service_tier=s.serviceTier),!m.input&&Array.isArray(m.messages)?m.input=m.messages.map(a=>({type:"message",role:"string"==typeof a.role?a.role:"user",..."string"==typeof a.phase?{phase:a.phase}:{},content:"string"==typeof a.content?[{type:"input_text",text:a.content}]:Array.isArray(a.content)?a.content.map(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"text"===a.type?{type:"input_text",text:a.text}:a):[]})):!m.input&&"string"==typeof m.prompt&&m.prompt.trim()?m.input=[{type:"message",role:"user",content:[{type:"input_text",text:m.prompt}]}]:!m.input&&Array.isArray(m.prompt)&&(m.input=m.prompt.map(a=>({type:"message",role:"user",content:[{type:"input_text",text:"string"==typeof a?a:JSON.stringify(a)}]}))),(0,t.z)(m),Array.isArray(m.input)&&(m.input=(0,o.y)(m.input,!1,{dropInternalAssistantMessages:!n})),function(a){if(!Array.isArray(a.input))return;let b=new Set;for(let c of a.input)!(!c||"object"!=typeof c||Array.isArray(c))&&"function_call_output"===c.type&&"string"==typeof c.call_id&&c.call_id.trim()&&b.add(c.call_id.trim());let c=[],d=0;for(let e of a.input){if(c.push(e),!e||"object"!=typeof e||Array.isArray(e)||"function_call"!==e.type)continue;let a="string"==typeof e.call_id?e.call_id.trim():"";!(!a||b.has(a))&&(c.push({type:"function_call_output",call_id:a,output:""}),b.add(a),d++)}d>0&&(a.input=c,console.debug(`[Codex] repairMissingCodexFunctionCallOutputs: inserted ${d} empty function_call_output item(s)`))}(m),Array.isArray(m.input))for(let a of m.input){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b="string"==typeof a.role?a.role:"",c="string"==typeof a.type?a.type:"";"system"!==b||c&&"message"!==c||(a.role="developer")}if(n)m.instructions&&("string"!=typeof m.instructions||""!==m.instructions.trim())||(m.instructions="Follow the developer instructions in the conversation.");else{let a=Array.isArray(m.tools)&&m.tools.length>0;m.instructions&&("string"!=typeof m.instructions||""!==m.instructions.trim())||(a?m.instructions=i:m.instructions="You are a ChatGPT agent.")}let w=d?.providerSpecificData&&"object"==typeof d.providerSpecificData&&!Array.isArray(d.providerSpecificData)?d.providerSpecificData.openaiStoreEnabled:void 0;p?delete m.store:!0===w?m.store=!0:m.store=!1,function(a,b){if(!Array.isArray(a.tools))return;let 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("namespace"===d){if(Array.isArray(a.tools)){for(let b of a.tools)if(b&&"object"==typeof b&&!Array.isArray(b)){let a="string"==typeof b.name?b.name.trim().slice(0,128):"";a&&c.add(a)}}return!0}if("custom"===d&&b?.preserveCustomTools===!0){let b="string"==typeof a.name?a.name.trim().slice(0,128):"";return!!b&&(a.name=b,c.add(b),!0)}if("function"!==d){let c=a.function&&"object"==typeof a.function,e="string"==typeof a.name;return!!d&&!c&&!e&&(D.has(d)?"image_generation"!==d||b?.dropImageGeneration!==!0:(console.debug(`[Codex] dropping unknown hosted tool type: ${d}`),!1))}let e=("string"==typeof a.name?a.name:a.function&&"object"==typeof a.function&&!Array.isArray(a.function)&&"string"==typeof a.function.name?a.function.name:"").trim();if(!e)return!1;let f=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,g="string"==typeof a.description?a.description:"string"==typeof f?.description?f.description:"",h=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:f?.parameters&&"object"==typeof f.parameters&&!Array.isArray(f.parameters)?f.parameters:{type:"object",properties:{}},i="boolean"==typeof a.strict?a.strict:"boolean"==typeof f?.strict?f.strict:void 0;for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=e.slice(0,128),g&&(a.description=g),a.parameters=h,void 0!==i&&(a.strict=i),c.add(e),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)){let b=a.tool_choice;if("function"===b.type){let d="string"==typeof b.name?b.name.trim():"";d&&c.has(d)||delete a.tool_choice}else"local_shell"===b.type&&delete a.tool_choice}}(m,{dropImageGeneration:function(a){if(!a||"object"!=typeof a)return!1;let b=a.workspacePlanType;return"string"==typeof b&&"free"===b.trim().toLowerCase()}(d?.providerSpecificData),preserveCustomTools:n}),function(a){if(Array.isArray(a.input)&&0===a.input.length&&(a.input=[{type:"message",role:"user",content:[{type:"input_text",text:"continue"}]}]),!Array.isArray(a.input))return;let b=/^(rs|fc|resp|msg)_/,c=0;a.input=a.input.filter(a=>"string"==typeof a&&b.test(a)||a&&"object"==typeof a&&!Array.isArray(a)&&"item_reference"===a.type||a&&"object"==typeof a&&!Array.isArray(a)&&"reasoning"===a.type?(c++,!1):(a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.id&&b.test(a.id)&&(delete a.id,c++),!0)),c>0&&console.debug(`[Codex] stripStoredItemReferences: sanitized ${c} server-generated ID(s) from input`)}(m),delete m.messages,delete m.prompt;let x=null,y="string"==typeof m.model?m.model:a,z=C(y);z.effort&&(x=z.effort,m.model=z.baseModel,y=z.baseModel);let B=m.reasoning&&"object"==typeof m.reasoning&&!Array.isArray(m.reasoning)?m.reasoning:null,E=I(B?.effort),J=I(m.reasoning_effort),K=u?s.reasoningEffort||"medium":void 0,L=x||E||J||K;if(L&&(m.reasoning={...B||{},effort:(h=G[f=y]??"xhigh",A.indexOf(L)>A.indexOf(h)?(console.debug(`[Codex] clampEffort: "${L}" → "${h}" (model: ${f})`),h):L)}),!function(a){let b=a.reasoning&&"object"==typeof a.reasoning&&!Array.isArray(a.reasoning)?a.reasoning:null;if(b&&"none"!==I(b.effort)){if("summary"in b||(b.summary="auto"),!Array.isArray(a.include)){a.include=[H];return}a.include.includes(H)||(a.include=[...a.include,H])}}(m),delete m.reasoning_effort,delete m.max_tokens,delete m.max_output_tokens,delete m.truncation,delete m.background,delete m.prompt_cache_retention,delete m.safety_identifier,delete m.user,!m.prompt_cache_key){let a=this.getPromptCacheSessionId(d,m);a&&(m.prompt_cache_key=a)}if(p||function(a,b){if(!b)return;let c=a.client_metadata&&"object"==typeof a.client_metadata&&!Array.isArray(a.client_metadata)?a.client_metadata:{};a.client_metadata={...c,"x-codex-installation-id":b.installationId}}(m,d?.providerSpecificData?.codexClientIdentity),delete m.session_id,delete m.conversation_id,n)return m;k=(j=(g=m.text)&&"object"==typeof g&&!Array.isArray(g)?g:null)?q(j.verbosity):void 0,(l=q(m.verbosity))&&(k=l),delete m.verbosity,k?m.text={verbosity:k}:delete m.text;let M=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","previous_response_id","prompt_cache_key","client_metadata","text","_omnirouteResponsesStore"]);for(let a of Object.keys(m))M.has(a)||delete m[a];return m}}},11655:(a,b,c)=>{"use strict";c.d(b,{x:()=>j});var d=c(97510),e=c(61408),f=c(57247),g=c(86522),h=c(26203),i=c(78340);class j extends d.Hv{constructor(){super("github",e.xq.github)}getCopilotToken(a){return a?.copilotToken||a?.providerSpecificData?.copilotToken||null}getCopilotTokenExpiresAt(a){return a?.copilotTokenExpiresAt||a?.providerSpecificData?.copilotTokenExpiresAt||null}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!b||!(b.includes("gemini")||b.includes("claude"))}buildUrl(a,b,c=0){return("openai-responses"===(0,f.ux)("gh",a)||/codex/i.test(a))&&this.supportsResponsesEndpoint(a)?this.config.responsesBaseUrl||this.config.baseUrl?.replace(/\/chat\/completions\/?$/,"/responses")||"https://api.githubcopilot.com/responses":this.config.baseUrl}injectResponseFormat(a,b){if(!b)return a;let c="";if("json_object"===b.type?c="Respond only with valid JSON. Do not include any text before or after the JSON object.":"json_schema"===b.type&&b.json_schema&&(c=`Respond only with valid JSON matching this schema:
|
|
144
|
+
`,terminal:d}}(c);if(!r){if(d.sse)try{a.enqueue(q.encode(d.sse))}catch{y({reason:"downstream_closed",emitDone:!1,closeController:!1});return}d.terminal&&y({reason:"terminal_event"})}},t.onerror=a=>{z("upstream_websocket_error",a.message||"Codex upstream WebSocket error")},t.onclose=()=>{y({reason:"upstream_closed",closeSocket:!1})},r||(await u.VN(B,j,o,i.log),t.send(o))}catch(a){z("upstream_websocket_connect_failed",a instanceof Error?a.message:String(a))}},cancel(){y({reason:"client_cancelled",emitDone:!1,closeController:!1})}});return{response:new Response(A,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:B,headers:j,transformedBody:n}}buildUrl(a,b,c=0,d=null){let e=E(d?.requestEndpointPath);if(null!==e){let a=String(this.config.baseUrl||"").replace(/\/$/,"");return a.endsWith("/responses")?`${a}${e}`:`${a}/responses${e}`}return super.buildUrl(a,b,c,d)}buildHeaders(a,b=!0){let c=F(a?.requestEndpointPath),d=super.buildHeaders(a,!c);d.Version=(0,k.zq)(),(0,h.Uv)(d,(0,k.EQ)());let e=a?.providerSpecificData?.workspaceId;"string"==typeof e&&e&&(d["chatgpt-account-id"]=e);let f=a?.providerSpecificData?.codexClientIdentity;d.originator="codex_cli_rs";let g=this.getPromptCacheSessionId(a,null);return g&&(d.session_id=g),f&&(d.session_id=f.sessionId,d["x-client-request-id"]=f.sessionId,d["x-codex-window-id"]=f.windowId,d["x-codex-turn-metadata"]=JSON.stringify({session_id:f.sessionId,thread_source:"user",turn_id:f.turnId,sandbox:"none"})),d}getPromptCacheSessionId(a,b){let c=(0,k.Eh)(b?.prompt_cache_key);if(c)return c;let d=b?.session_id??b?.conversation_id,e=(0,k.Eh)(d);return e||(0,k.Eh)(a?.providerSpecificData?.workspaceId)||null}async refreshCredentials(a,b){if(!a?.refreshToken)return b?.warn?.("TOKEN_REFRESH","Codex: no refresh token available, re-authentication required"),null;let c=await (0,n.iD)("codex",a,b);return c?c.error?(b?.warn?.("TOKEN_REFRESH",`Codex: token refresh failed (${c.error}) — re-authentication required`),null):c:(b?.warn?.("TOKEN_REFRESH","Codex: token refresh failed — re-authentication required"),null)}transformRequest(a,b,c,d){var f,g;let h,j,k,l,m=b&&"object"==typeof b?structuredClone(b):{},n=m?._nativeCodexPassthrough===!0,p=F(d?.requestEndpointPath),s=(0,e.vr)(d?.providerSpecificData),u=(0,r.IZ)().mode===r.g8.PASSTHROUGH;m._omnirouteResponsesStore,delete m._omnirouteResponsesStore,p?(delete m.stream,delete m.stream_options,delete m.client_metadata):m.stream=!0,delete m._nativeCodexPassthrough;let v=function(a){if("string"!=typeof a)return;let b=a.trim().toLowerCase();if(b)return"fast"===b?"priority":b}(m.service_tier);if(v?m.service_tier=v:s.serviceTier&&(m.service_tier=s.serviceTier),!m.input&&Array.isArray(m.messages)?m.input=m.messages.map(a=>({type:"message",role:"string"==typeof a.role?a.role:"user",..."string"==typeof a.phase?{phase:a.phase}:{},content:"string"==typeof a.content?[{type:"input_text",text:a.content}]:Array.isArray(a.content)?a.content.map(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"text"===a.type?{type:"input_text",text:a.text}:a):[]})):!m.input&&"string"==typeof m.prompt&&m.prompt.trim()?m.input=[{type:"message",role:"user",content:[{type:"input_text",text:m.prompt}]}]:!m.input&&Array.isArray(m.prompt)&&(m.input=m.prompt.map(a=>({type:"message",role:"user",content:[{type:"input_text",text:"string"==typeof a?a:JSON.stringify(a)}]}))),(0,t.z)(m),Array.isArray(m.input)&&(m.input=(0,o.y)(m.input,!1,{dropInternalAssistantMessages:!n})),function(a){if(!Array.isArray(a.input))return;let b=new Set;for(let c of a.input)!(!c||"object"!=typeof c||Array.isArray(c))&&"function_call_output"===c.type&&"string"==typeof c.call_id&&c.call_id.trim()&&b.add(c.call_id.trim());let c=[],d=0;for(let e of a.input){if(c.push(e),!e||"object"!=typeof e||Array.isArray(e)||"function_call"!==e.type)continue;let a="string"==typeof e.call_id?e.call_id.trim():"";!(!a||b.has(a))&&(c.push({type:"function_call_output",call_id:a,output:""}),b.add(a),d++)}d>0&&(a.input=c,console.debug(`[Codex] repairMissingCodexFunctionCallOutputs: inserted ${d} empty function_call_output item(s)`))}(m),Array.isArray(m.input))for(let a of m.input){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b="string"==typeof a.role?a.role:"",c="string"==typeof a.type?a.type:"";"system"!==b||c&&"message"!==c||(a.role="developer")}if(n)m.instructions&&("string"!=typeof m.instructions||""!==m.instructions.trim())||(m.instructions="Follow the developer instructions in the conversation.");else{let a=Array.isArray(m.tools)&&m.tools.length>0;m.instructions&&("string"!=typeof m.instructions||""!==m.instructions.trim())||(a?m.instructions=i:m.instructions="You are a ChatGPT agent.")}let w=d?.providerSpecificData&&"object"==typeof d.providerSpecificData&&!Array.isArray(d.providerSpecificData)?d.providerSpecificData.openaiStoreEnabled:void 0;p?delete m.store:!0===w?m.store=!0:m.store=!1,function(a,b){if(!Array.isArray(a.tools))return;let 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("namespace"===d){if(Array.isArray(a.tools)){for(let b of a.tools)if(b&&"object"==typeof b&&!Array.isArray(b)){let a="string"==typeof b.name?b.name.trim().slice(0,128):"";a&&c.add(a)}}return!0}if("custom"===d&&b?.preserveCustomTools===!0){let b="string"==typeof a.name?a.name.trim().slice(0,128):"";return!!b&&(a.name=b,c.add(b),!0)}if("function"!==d){let c=a.function&&"object"==typeof a.function,e="string"==typeof a.name;return!!d&&!c&&!e&&(D.has(d)?"image_generation"!==d||b?.dropImageGeneration!==!0:(console.debug(`[Codex] dropping unknown hosted tool type: ${d}`),!1))}let e=("string"==typeof a.name?a.name:a.function&&"object"==typeof a.function&&!Array.isArray(a.function)&&"string"==typeof a.function.name?a.function.name:"").trim();if(!e)return!1;let f=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,g="string"==typeof a.description?a.description:"string"==typeof f?.description?f.description:"",h=a.parameters&&"object"==typeof a.parameters&&!Array.isArray(a.parameters)?a.parameters:f?.parameters&&"object"==typeof f.parameters&&!Array.isArray(f.parameters)?f.parameters:{type:"object",properties:{}},i="boolean"==typeof a.strict?a.strict:"boolean"==typeof f?.strict?f.strict:void 0;for(let b of Object.keys(a))delete a[b];return a.type="function",a.name=e.slice(0,128),g&&(a.description=g),a.parameters=h,void 0!==i&&(a.strict=i),c.add(e),!0}),a.tool_choice&&"object"==typeof a.tool_choice&&!Array.isArray(a.tool_choice)){let b=a.tool_choice;if("function"===b.type){let d="string"==typeof b.name?b.name.trim():"";d&&c.has(d)||delete a.tool_choice}else"local_shell"===b.type&&delete a.tool_choice}}(m,{dropImageGeneration:function(a){if(!a||"object"!=typeof a)return!1;let b=a.workspacePlanType;return"string"==typeof b&&"free"===b.trim().toLowerCase()}(d?.providerSpecificData),preserveCustomTools:n}),function(a){if(Array.isArray(a.input)&&0===a.input.length&&(a.input=[{type:"message",role:"user",content:[{type:"input_text",text:"continue"}]}]),!Array.isArray(a.input))return;let b=/^(rs|fc|resp|msg)_/,c=0;a.input=a.input.filter(a=>"string"==typeof a&&b.test(a)||a&&"object"==typeof a&&!Array.isArray(a)&&"item_reference"===a.type||a&&"object"==typeof a&&!Array.isArray(a)&&"reasoning"===a.type?(c++,!1):(a&&"object"==typeof a&&!Array.isArray(a)&&"string"==typeof a.id&&b.test(a.id)&&(delete a.id,c++),!0)),c>0&&console.debug(`[Codex] stripStoredItemReferences: sanitized ${c} server-generated ID(s) from input`)}(m),delete m.messages,delete m.prompt;let x=null,y="string"==typeof m.model?m.model:a,z=C(y);z.effort&&(x=z.effort,m.model=z.baseModel,y=z.baseModel);let B=m.reasoning&&"object"==typeof m.reasoning&&!Array.isArray(m.reasoning)?m.reasoning:null,E=I(B?.effort),J=I(m.reasoning_effort),K=u?s.reasoningEffort||"medium":void 0,L=x||E||J||K;if(L&&(m.reasoning={...B||{},effort:(h=G[f=y]??"xhigh",A.indexOf(L)>A.indexOf(h)?(console.debug(`[Codex] clampEffort: "${L}" → "${h}" (model: ${f})`),h):L)}),!function(a){let b=a.reasoning&&"object"==typeof a.reasoning&&!Array.isArray(a.reasoning)?a.reasoning:null;if(b&&"none"!==I(b.effort)){if("summary"in b||(b.summary="auto"),!Array.isArray(a.include)){a.include=[H];return}a.include.includes(H)||(a.include=[...a.include,H])}}(m),delete m.reasoning_effort,delete m.max_tokens,delete m.max_output_tokens,delete m.truncation,delete m.background,delete m.prompt_cache_retention,delete m.safety_identifier,delete m.user,!m.prompt_cache_key){let a=this.getPromptCacheSessionId(d,m);a&&(m.prompt_cache_key=a)}if(p||function(a,b){if(!b)return;let c=a.client_metadata&&"object"==typeof a.client_metadata&&!Array.isArray(a.client_metadata)?a.client_metadata:{};a.client_metadata={...c,"x-codex-installation-id":b.installationId}}(m,d?.providerSpecificData?.codexClientIdentity),delete m.session_id,delete m.conversation_id,n)return m;k=(j=(g=m.text)&&"object"==typeof g&&!Array.isArray(g)?g:null)?q(j.verbosity):void 0,(l=q(m.verbosity))&&(k=l),delete m.verbosity,k?m.text={verbosity:k}:delete m.text;let M=new Set(["model","input","instructions","tools","tool_choice","stream","store","reasoning","service_tier","include","previous_response_id","prompt_cache_key","client_metadata","text","_omnirouteResponsesStore"]);for(let a of Object.keys(m))M.has(a)||delete m[a];return m}}},11655:(a,b,c)=>{c.d(b,{x:()=>j});var d=c(97510),e=c(61408),f=c(57247),g=c(86522),h=c(26203),i=c(78340);class j extends d.Hv{constructor(){super("github",e.xq.github)}getCopilotToken(a){return a?.copilotToken||a?.providerSpecificData?.copilotToken||null}getCopilotTokenExpiresAt(a){return a?.copilotTokenExpiresAt||a?.providerSpecificData?.copilotTokenExpiresAt||null}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!b||!(b.includes("gemini")||b.includes("claude"))}buildUrl(a,b,c=0){return("openai-responses"===(0,f.ux)("gh",a)||/codex/i.test(a))&&this.supportsResponsesEndpoint(a)?this.config.responsesBaseUrl||this.config.baseUrl?.replace(/\/chat\/completions\/?$/,"/responses")||"https://api.githubcopilot.com/responses":this.config.baseUrl}injectResponseFormat(a,b){if(!b)return a;let c="";if("json_object"===b.type?c="Respond only with valid JSON. Do not include any text before or after the JSON object.":"json_schema"===b.type&&b.json_schema&&(c=`Respond only with valid JSON matching this schema:
|
|
145
145
|
${JSON.stringify(b.json_schema.schema,null,2)}
|
|
146
146
|
Do not include any text before or after the JSON.`),!c)return a;let d=a.findIndex(a=>"system"===a.role);return d>=0?a.map((a,b)=>b===d?{...a,content:`${a.content}
|
|
147
147
|
|
|
148
|
-
${c}`}:a):[{role:"system",content:c},...a]}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?b:{},f={...e};return Array.isArray(e.input)&&(f.input=(0,h.y)(e.input,!1)),Array.isArray(e.messages)&&(f.messages=e.messages.map(a=>{if(!a||"object"!=typeof a||"assistant"!==("string"==typeof a.role?a.role.toLowerCase():"")||void 0===a.reasoning_text&&void 0===a.reasoning_content)return a;let b={...a};return delete b.reasoning_text,delete b.reasoning_content,b})),f.response_format&&a.toLowerCase().includes("claude")&&(f.messages=this.injectResponseFormat(Array.isArray(f.messages)?f.messages:[],f.response_format),delete f.response_format),Array.isArray(f.tools)&&f.tools.length>128&&(f.tools=f.tools.slice(0,128)),"string"==typeof a&&/gpt-5\.4/i.test(a)&&void 0!==f.temperature&&delete f.temperature,Array.isArray(f.messages)&&(f.messages=f.messages.map(a=>this.sanitizeChatCompletionsMessage(a))),Array.isArray(f.messages)&&(f.messages=this.dropTrailingAssistantPrefill(f.messages)),(0,i.c)("github",a,f),f}sanitizeChatCompletionsMessage(a){if(!a||"object"!=typeof a||"string"==typeof a.content||null==a.content||!Array.isArray(a.content))return a;let b=a.content.map(a=>{if(!a||"object"!=typeof a||"text"===a.type||"image_url"===a.type)return a;let b="string"==typeof a.text&&a.text||"string"==typeof a.thinking&&a.thinking||"string"==typeof a.content&&a.content||null!=a.content&&JSON.stringify(a.content)||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>!(a&&"text"===a.type&&""===a.text));return{...a,content:b.length>0?b:null}}dropTrailingAssistantPrefill(a){if(!Array.isArray(a)||0===a.length)return a;let b=a.length;for(;b>1&&a[b-1]?.role==="assistant";)b--;return b===a.length?a:a.slice(0,b)}async execute(a){let b=await super.execute(a);if(!b||!b.response)return b;if(!a.stream){let a=b.response.status,c=b.response.statusText,d=new Headers(b.response.headers),e=await b.response.text();b.response=new Response(e,{status:a,statusText:c,headers:d})}return b}buildHeaders(a,b=!0,c){let d=this.getCopilotToken(a)||a.accessToken,e=c?.["x-initiator"]||c?.["X-Initiator"];if(!e&&c){for(let a in c)if("x-initiator"===a.toLowerCase()){e=c[a];break}}let f="agent"===e||"user"===e?e:"user";return{...(0,g.uk)(b?"text/event-stream":"application/json",f),Authorization:`Bearer ${d}`,"x-request-id":crypto.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`}}async refreshCopilotToken(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:(0,g.H_)(`token ${a}`)});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b){try{let c=new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId});this.config.clientSecret&&c.set("client_secret",this.config.clientSecret);let d=await fetch(e.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:c});if(!d.ok)return null;let f=await d.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b){let c=await this.refreshCopilotToken(a.accessToken,b);if(!c&&a.refreshToken){let d=await this.refreshGitHubToken(a.refreshToken,b);if(d?.accessToken)return(c=await this.refreshCopilotToken(d.accessToken,b))?{...d,copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt,providerSpecificData:{copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt}}:d}return c?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt,providerSpecificData:{copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt}}:null}needsRefresh(a){if(!this.getCopilotToken(a))return!0;let b=this.getCopilotTokenExpiresAt(a);if(b){let a=b;if("number"==typeof a&&a<1e12?a*=1e3:"string"==typeof a&&(a=new Date(a).getTime()),a-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},11745:(a,b,c)=>{
|
|
148
|
+
${c}`}:a):[{role:"system",content:c},...a]}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?b:{},f={...e};return Array.isArray(e.input)&&(f.input=(0,h.y)(e.input,!1)),Array.isArray(e.messages)&&(f.messages=e.messages.map(a=>{if(!a||"object"!=typeof a||"assistant"!==("string"==typeof a.role?a.role.toLowerCase():"")||void 0===a.reasoning_text&&void 0===a.reasoning_content)return a;let b={...a};return delete b.reasoning_text,delete b.reasoning_content,b})),f.response_format&&a.toLowerCase().includes("claude")&&(f.messages=this.injectResponseFormat(Array.isArray(f.messages)?f.messages:[],f.response_format),delete f.response_format),Array.isArray(f.tools)&&f.tools.length>128&&(f.tools=f.tools.slice(0,128)),"string"==typeof a&&/gpt-5\.4/i.test(a)&&void 0!==f.temperature&&delete f.temperature,Array.isArray(f.messages)&&(f.messages=f.messages.map(a=>this.sanitizeChatCompletionsMessage(a))),Array.isArray(f.messages)&&(f.messages=this.dropTrailingAssistantPrefill(f.messages)),(0,i.c)("github",a,f),f}sanitizeChatCompletionsMessage(a){if(!a||"object"!=typeof a||"string"==typeof a.content||null==a.content||!Array.isArray(a.content))return a;let b=a.content.map(a=>{if(!a||"object"!=typeof a||"text"===a.type||"image_url"===a.type)return a;let b="string"==typeof a.text&&a.text||"string"==typeof a.thinking&&a.thinking||"string"==typeof a.content&&a.content||null!=a.content&&JSON.stringify(a.content)||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>!(a&&"text"===a.type&&""===a.text));return{...a,content:b.length>0?b:null}}dropTrailingAssistantPrefill(a){if(!Array.isArray(a)||0===a.length)return a;let b=a.length;for(;b>1&&a[b-1]?.role==="assistant";)b--;return b===a.length?a:a.slice(0,b)}async execute(a){let b=await super.execute(a);if(!b||!b.response)return b;if(!a.stream){let a=b.response.status,c=b.response.statusText,d=new Headers(b.response.headers),e=await b.response.text();b.response=new Response(e,{status:a,statusText:c,headers:d})}return b}buildHeaders(a,b=!0,c){let d=this.getCopilotToken(a)||a.accessToken,e=c?.["x-initiator"]||c?.["X-Initiator"];if(!e&&c){for(let a in c)if("x-initiator"===a.toLowerCase()){e=c[a];break}}let f="agent"===e||"user"===e?e:"user";return{...(0,g.uk)(b?"text/event-stream":"application/json",f),Authorization:`Bearer ${d}`,"x-request-id":crypto.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`}}async refreshCopilotToken(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:(0,g.H_)(`token ${a}`)});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b){try{let c=new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId});this.config.clientSecret&&c.set("client_secret",this.config.clientSecret);let d=await fetch(e.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:c});if(!d.ok)return null;let f=await d.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b){let c=await this.refreshCopilotToken(a.accessToken,b);if(!c&&a.refreshToken){let d=await this.refreshGitHubToken(a.refreshToken,b);if(d?.accessToken)return(c=await this.refreshCopilotToken(d.accessToken,b))?{...d,copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt,providerSpecificData:{copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt}}:d}return c?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt,providerSpecificData:{copilotToken:c.token,copilotTokenExpiresAt:c.expiresAt}}:null}needsRefresh(a){if(!this.getCopilotToken(a))return!0;let b=this.getCopilotTokenExpiresAt(a);if(b){let a=b;if("number"==typeof a&&a<1e12?a*=1e3:"string"==typeof a&&(a=new Date(a).getTime()),a-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},11745:(a,b,c)=>{c.d(b,{Gn:()=>d,pC:()=>e});let d=async()=>void 0,e=async()=>void 0},12022:(a,b,c)=>{c.d(b,{x:()=>f});var d=c(97510),e=c(61408);class f extends d.Hv{constructor(){super("cloudflare-ai",e.xq["cloudflare-ai"]||{format:"openai"})}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.accountId||d?.accountId||process.env.CLOUDFLARE_ACCOUNT_ID;if(!e)throw Error("Cloudflare Workers AI requires an Account ID. Add it in provider settings under 'Account ID'. Find it at: https://dash.cloudflare.com (right sidebar).");return`https://api.cloudflare.com/client/v4/accounts/${e}/ai/v1/chat/completions`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey||a.accessToken}`};return b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){if(!Array.isArray(b.messages))return b;let e=b.messages.map(a=>{var b;return a&&Array.isArray(a.content)?{...a,content:"string"!=typeof(b=a.content)&&Array.isArray(b)?b.map(a=>a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text?a.text:"").join(""):b}:a});return{...b,messages:e}}}},12103:(a,b,c)=>{c.d(b,{am:()=>n});var d=c(97510),e=c(61408),f=c(50954),g=c(72221);let h="https://app.blackbox.ai/api/chat",i=new Map;function j(a){return`data: ${JSON.stringify(a)}
|
|
149
149
|
|
|
150
150
|
`}async function k(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)throw b.reason??new DOMException("Aborted","AbortError");let{value:a,done:f}=await c.read();if(f)break;e+=d.decode(a,{stream:!0})}return e+=d.decode()}finally{c.releaseLock()}}function l(a,b,c,d){let e=new TextEncoder;return new ReadableStream({start(f){f.enqueue(e.encode(j({id:c,object:"chat.completion.chunk",created:d,model:b,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]}))),a&&f.enqueue(e.encode(j({id:c,object:"chat.completion.chunk",created:d,model:b,system_fingerprint:null,choices:[{index:0,delta:{content:a},finish_reason:null,logprobs:null}]}))),f.enqueue(e.encode(j({id:c,object:"chat.completion.chunk",created:d,model:b,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),f.enqueue(e.encode("data: [DONE]\n\n")),f.close()}},{highWaterMark:16384})}function m(a,b,c,d){let e=Math.max(1,Math.ceil((a||"").length/4));return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:{role:"assistant",content:a},finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:e,completion_tokens:e,total_tokens:2*e}}),{status:200,headers:{"Content-Type":"application/json"}})}class n extends d.Hv{constructor(){super("blackbox-web",{id:"blackbox-web",baseUrl:h})}async execute({model:a,body:b,stream:c,credentials:j,signal:n,log:o,upstreamExtraHeaders:p}){var q;let r,s,t=b||{},u=t.messages;if(!u||!Array.isArray(u)||0===u.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:h,headers:{},transformedBody:b};let{hasTools:v,requestedTools:w,effectiveMessages:x}=(0,g.S$)(t,u),y=crypto.randomUUID().slice(0,7),z=function(a,b){let c=[],d=[];for(let f of a){var e;let a=String(f.role||"user"),g="string"==typeof(e=f.content)?e.trim():Array.isArray(e)?e.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";if(g){if("system"===a||"developer"===a){c.push(g);continue}("assistant"===a||"user"===a)&&d.push({id:"user"===a?b:crypto.randomUUID(),role:a,content:g})}}if(c.length>0){let a=`System instructions:
|
|
151
151
|
${c.join("\n\n")}`,e=d.findIndex(a=>"user"===a.role);e>=0?d[e]={...d[e],content:`${a}
|
|
152
152
|
|
|
153
|
-
${d[e].content}`}:d.unshift({id:b,role:"user",content:a})}return d}(x,y);if(0===z.length)return{response:new Response(JSON.stringify({error:{message:"Empty query after processing messages",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:b};let A=(q=j.apiKey||"",(0,f.p1)(q,"next-auth.session-token")),B={Accept:"application/json",Cookie:A,Origin:"https://app.blackbox.ai","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"},C=null,D=null,E="",F=i.get(A);if(F&&Date.now()-F.fetchedAt<3e5)C=F.sessionData,D=F.subscriptionCache,E=F.teamAccount,o?.debug?.("BLACKBOX-WEB",`Session cache hit (${E||"no email"})`);else{let a=n?(0,d.OW)(n,AbortSignal.timeout(1e4)):AbortSignal.timeout(1e4);try{let b=await fetch("https://app.blackbox.ai/api/auth/session",{method:"GET",headers:{...B,Accept:"application/json"},signal:a});C=b.ok?await b.json():null;let c=C?.user?.email;if(E=c||"",o?.debug?.("BLACKBOX-WEB",`Session email: ${c??"none"}`),c){let b=await fetch("https://app.blackbox.ai/api/check-subscription",{method:"POST",headers:{...B,"Content-Type":"application/json"},body:JSON.stringify({email:c}),signal:a}),d=b.ok?await b.json():null;d&&(D={status:d.hasActiveSubscription?"PREMIUM":"FREE",customerId:d.customerId??null,expiryTimestamp:d.expiryTimestamp??null,lastChecked:Date.now(),isTrialSubscription:d.isTrialSubscription??!1,hasPaymentVerificationFailure:!1,verificationFailureTimestamp:null,requiresAuthentication:!1,isTeam:d.isTeam??!1,numSeats:d.numSeats??1,provider:d.provider??null,previouslySubscribed:d.previouslySubscribed??!1,activeInsuffientCredits:d.activeInsuffientCredits??!1},o?.debug?.("BLACKBOX-WEB",`Subscription: ${D.status}`))}for(i.set(A,{sessionData:C,subscriptionCache:D,teamAccount:E,fetchedAt:Date.now()});i.size>100;){let a=i.keys().next().value;if(void 0!==a)i.delete(a);else break}}catch(a){o?.debug?.("BLACKBOX-WEB",`Session/subscription fetch failed (non-fatal): ${a}`)}}let G={...B,Accept:"text/plain, */*","Content-Type":"application/json",Referer:`https://app.blackbox.ai/chat/${y}`};(0,d._F)(G,p);let H={messages:z,id:y,previewToken:null,userId:j.providerSpecificData?.userId??null,codeModelMode:!0,trendingAgentMode:{},isMicMode:!1,userSystemPrompt:null,maxTokens:Number(b.max_tokens)||1024,playgroundTopP:null,playgroundTemperature:null,isChromeExt:!1,githubToken:"",clickedAnswer2:!1,clickedAnswer3:!1,clickedForceWebSearch:!1,visitFromDelta:!1,isMemoryEnabled:!1,mobileClient:!1,userSelectedModel:a||null,userSelectedAgent:"VscodeAgent",validated:(s=(process.env.BLACKBOX_WEB_VALIDATED_TOKEN||"").trim())||crypto.randomUUID(),imageGenerationMode:!1,imageGenMode:"autoMode",webSearchModePrompt:!1,deepSearchMode:!1,promptSelection:"",domains:null,vscodeClient:!1,codeInterpreterMode:!1,customProfile:{name:"",occupation:"",traits:[],additionalInfo:"",enableNewChats:!1},webSearchModeOption:{autoMode:!0,webMode:!1,offlineMode:!1},session:C,isPremium:D?"PREMIUM"===D.status:j.providerSpecificData?.isPremium??!0,teamAccount:E,subscriptionCache:D,beastMode:!1,reasoningMode:!1,designerMode:!1,workspaceId:"",asyncMode:!1,integrations:{},isTaskPersistent:!1,selectedElement:null},I=AbortSignal.timeout(e.MT),J=n?(0,d.OW)(n,I):I;try{r=await fetch(h,{method:"POST",headers:G,body:JSON.stringify(H),signal:J})}catch(b){let a=b instanceof Error?b.message:String(b);return o?.error?.("BLACKBOX-WEB",`Fetch failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`Blackbox Web connection failed: ${a}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H}}if(!r.ok){let a,b=r.status,c=`Blackbox Web returned HTTP ${b}`,d=await r.text().catch(()=>"");return 403===b&&((a=(d||"").toLowerCase()).includes("invalid validated token")||a.includes("invalid validated")||a.includes("validation token")||a.includes("invalid token"))?c="Blackbox Web rejected the request with an invalid `validated` token. If you have a valid frontend token (the `tk` value from app.blackbox.ai's Next.js bundle), set BLACKBOX_WEB_VALIDATED_TOKEN in your environment and restart.":401===b||403===b?c="Blackbox Web auth failed — your app.blackbox.ai session cookie may be missing or expired.":429===b&&(c="Blackbox Web rate limited the session. Wait a moment and retry."),{response:new Response(JSON.stringify({error:{message:c,type:"upstream_error",code:`HTTP_${b}`}}),{status:b,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H}}if(!r.body)return{response:new Response(JSON.stringify({error:{message:"Blackbox Web returned an empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};let K=(await k(r.body,n)).trim();o?.debug?.("BLACKBOX-WEB",`Response (first 300 chars): ${K.slice(0,300)}`),o?.debug?.("BLACKBOX-WEB",`userSelectedModel sent: ${H.userSelectedModel}`),o?.debug?.("BLACKBOX-WEB",`isPremium sent: ${H.isPremium}`);let L=K.toLowerCase(),M=/not upgraded|upgrade to a premium plan|upgrade.required/i.test(K)||L.includes("please upgrade"),N=/please login|login required|authentication required/i.test(K)&&!M,O=/rate limit|too many requests/i.test(K)&&!M;if(M)return o?.warn?.("BLACKBOX-WEB","Blackbox returned subscription error in response body"),{response:new Response(JSON.stringify({error:{message:"Blackbox reports your account lacks a premium subscription. If you have a paid plan, re-paste your session cookie from app.blackbox.ai.",type:"upstream_error",code:"BLACKBOX_SUBSCRIPTION_REQUIRED"}}),{status:402,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};if(N)return o?.warn?.("BLACKBOX-WEB","Blackbox returned auth error in response body"),{response:new Response(JSON.stringify({error:{message:"Blackbox session is not authenticated — re-paste next-auth.session-token from app.blackbox.ai",type:"upstream_error",code:"BLACKBOX_AUTH_REQUIRED"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};if(O)return o?.warn?.("BLACKBOX-WEB","Blackbox returned rate-limit error in response body"),{response:new Response(JSON.stringify({error:{message:"Blackbox Web rate limited the session. Wait a moment and retry.",type:"upstream_error",code:"BLACKBOX_RATE_LIMIT"}}),{status:429,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};let P=`chatcmpl-blackbox-${crypto.randomUUID().slice(0,12)}`,Q=Math.floor(Date.now()/1e3);if(v){let{content:b,toolCalls:d,finishReason:e}=(0,g.mU)(K,w,"bbx");return d?{response:new Response(JSON.stringify({id:P,object:"chat.completion",created:Q,model:a,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:d},finish_reason:e}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H}:{response:c?new Response(l(b,a,P,Q),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}):m(b,a,P,Q),url:h,headers:G,transformedBody:H}}return{response:c?new Response(l(K,a,P,Q),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}):m(K,a,P,Q),url:h,headers:G,transformedBody:H}}}},12560:(a,b,c)=>{"use strict";c.d(b,{mu:()=>l});var d=c(97510),e=c(43659);let f="https://arena.ai",g=`${f}/nextjs-api/stream`,h="arena-auth-prod-v1";function i(a){if(!a||!a.trim())return a;let b=function(a){let b=[];for(let c of a.split(";")){let a=c.indexOf("=");if(a<0)continue;let d=c.slice(0,a).trim();if(!d)continue;let e=c.slice(a+1).trim();b.push({name:d,value:e})}return b}(a),c=b.find(a=>a.name===h);if(c&&c.value)return a;let d=`${h}.`,e=new Map;for(let{name:a,value:c}of b){if(!a.startsWith(d))continue;let b=a.slice(d.length);/^\d+$/.test(b)&&e.set(Number(b),c)}let f=[];for(let a=0;e.has(a);a++)f.push(e.get(a)??"");let g=f.join("");if(!g)return a;let i=b.filter(a=>a.name!==h&&!a.name.startsWith(d));return[`${h}=${g}`,...i.map(a=>`${a.name}=${a.value}`)].join("; ")}function j(a){if(!a||"object"!=typeof a)return"";let b="string"==typeof a.cookie?a.cookie:"";if(b.trim())return i(b);let c="string"==typeof a.apiKey?a.apiKey:"";if(c.trim())return i(c);let d=a.providerSpecificData;if(d&&"object"==typeof d){let a=d.cookie;if("string"==typeof a&&a.trim())return i(a)}return""}function k(a){if(a.startsWith("a0:"))try{let b=JSON.parse(a.substring(3));return{type:"text",content:"string"==typeof b?b:b.text||""}}catch{}else if(a.startsWith("ag:"))try{let b=JSON.parse(a.substring(3));return{type:"thinking",content:"string"==typeof b?b:b.thinking||""}}catch{}else if(a.startsWith("a3:")||a.startsWith("ae:"))try{let b=JSON.parse(a.substring(3));return{type:"error",content:"string"==typeof b?b:b.error||JSON.stringify(b)}}catch{return{type:"error",content:a.substring(3)}}else if(a.startsWith("ad:"))return{type:"done"};else if(a.startsWith("a2:"))return{type:"heartbeat"};return null}class l extends d.Hv{constructor(a={}){super("lmarena",{format:"openai",...a})}buildUrl(a,b){return g}buildHeaders(a,b,c){let d=j(b),e={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:f,Referer:`${f}/`};return d&&(e.Cookie=d),e}transformRequest(a,b){return{messages:a.messages.map(a=>({role:a.role,content:a.content})),model:b,stream:a.stream||!1}}async execute(a){let{model:b,body:c,stream:d,credentials:f,signal:g,log:h}=a,i=this.buildUrl(b,f),k=this.buildHeaders(b,f,c),l=this.transformRequest(c,b);if(!j(f))return{response:new Response(JSON.stringify({error:{message:"LMArena requires a session cookie. Please provide cookie in credentials.",type:"authentication_error",code:"missing_cookie"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:i,headers:k,transformedBody:l};h?.info?.("LMArenaExecutor",`Executing request for model: ${b}`);try{let a=await fetch(i,{method:"POST",headers:k,body:JSON.stringify(l),signal:g});if(!a.ok){let b=await a.text(),c=`LMArena API error: ${a.status}`;try{let a=JSON.parse(b);c=a.error?.message||a.message||c}catch{c=b||c}return{response:new Response(JSON.stringify({error:{message:(0,e.sanitizeErrorMessage)(c),type:"api_error",code:String(a.status)}}),{status:a.status,headers:{"Content-Type":"application/json"}}),url:i,headers:k,transformedBody:l}}return{response:d?await this.handleStreamingResponse(a,b,h):await this.handleNonStreamingResponse(a,b,h),url:i,headers:k,transformedBody:l}}catch(b){let a=b instanceof Error?b.message:String(b);return h?.error?.("LMArenaExecutor",`Request failed: ${a}`),{response:new Response(JSON.stringify({error:{message:(0,e.sanitizeErrorMessage)(a),type:"network_error",code:"request_failed"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:k,transformedBody:l}}}async handleStreamingResponse(a,b,c){let d=a.body?.getReader();if(!d)throw Error("No response body for streaming");let e=new TextDecoder,f="",g="",h="",i=new ReadableStream({async start(a){try{for(;;){let{done:c,value:i}=await d.read();if(c)break;let j=(f+=e.decode(i,{stream:!0})).split("\n");for(let c of(f=j.pop()||"",j)){if(!c.trim())continue;let d=c.startsWith("data: ")?c.substring(6):c,e=k(d);if(e){if("text"===e.type&&e.content){g+=e.content;let c={id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{content:e.content},finish_reason:null}]};a.enqueue(`data: ${JSON.stringify(c)}
|
|
153
|
+
${d[e].content}`}:d.unshift({id:b,role:"user",content:a})}return d}(x,y);if(0===z.length)return{response:new Response(JSON.stringify({error:{message:"Empty query after processing messages",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:b};let A=(q=j.apiKey||"",(0,f.p1)(q,"next-auth.session-token")),B={Accept:"application/json",Cookie:A,Origin:"https://app.blackbox.ai","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"},C=null,D=null,E="",F=i.get(A);if(F&&Date.now()-F.fetchedAt<3e5)C=F.sessionData,D=F.subscriptionCache,E=F.teamAccount,o?.debug?.("BLACKBOX-WEB",`Session cache hit (${E||"no email"})`);else{let a=n?(0,d.OW)(n,AbortSignal.timeout(1e4)):AbortSignal.timeout(1e4);try{let b=await fetch("https://app.blackbox.ai/api/auth/session",{method:"GET",headers:{...B,Accept:"application/json"},signal:a});C=b.ok?await b.json():null;let c=C?.user?.email;if(E=c||"",o?.debug?.("BLACKBOX-WEB",`Session email: ${c??"none"}`),c){let b=await fetch("https://app.blackbox.ai/api/check-subscription",{method:"POST",headers:{...B,"Content-Type":"application/json"},body:JSON.stringify({email:c}),signal:a}),d=b.ok?await b.json():null;d&&(D={status:d.hasActiveSubscription?"PREMIUM":"FREE",customerId:d.customerId??null,expiryTimestamp:d.expiryTimestamp??null,lastChecked:Date.now(),isTrialSubscription:d.isTrialSubscription??!1,hasPaymentVerificationFailure:!1,verificationFailureTimestamp:null,requiresAuthentication:!1,isTeam:d.isTeam??!1,numSeats:d.numSeats??1,provider:d.provider??null,previouslySubscribed:d.previouslySubscribed??!1,activeInsuffientCredits:d.activeInsuffientCredits??!1},o?.debug?.("BLACKBOX-WEB",`Subscription: ${D.status}`))}for(i.set(A,{sessionData:C,subscriptionCache:D,teamAccount:E,fetchedAt:Date.now()});i.size>100;){let a=i.keys().next().value;if(void 0!==a)i.delete(a);else break}}catch(a){o?.debug?.("BLACKBOX-WEB",`Session/subscription fetch failed (non-fatal): ${a}`)}}let G={...B,Accept:"text/plain, */*","Content-Type":"application/json",Referer:`https://app.blackbox.ai/chat/${y}`};(0,d._F)(G,p);let H={messages:z,id:y,previewToken:null,userId:j.providerSpecificData?.userId??null,codeModelMode:!0,trendingAgentMode:{},isMicMode:!1,userSystemPrompt:null,maxTokens:Number(b.max_tokens)||1024,playgroundTopP:null,playgroundTemperature:null,isChromeExt:!1,githubToken:"",clickedAnswer2:!1,clickedAnswer3:!1,clickedForceWebSearch:!1,visitFromDelta:!1,isMemoryEnabled:!1,mobileClient:!1,userSelectedModel:a||null,userSelectedAgent:"VscodeAgent",validated:(s=(process.env.BLACKBOX_WEB_VALIDATED_TOKEN||"").trim())||crypto.randomUUID(),imageGenerationMode:!1,imageGenMode:"autoMode",webSearchModePrompt:!1,deepSearchMode:!1,promptSelection:"",domains:null,vscodeClient:!1,codeInterpreterMode:!1,customProfile:{name:"",occupation:"",traits:[],additionalInfo:"",enableNewChats:!1},webSearchModeOption:{autoMode:!0,webMode:!1,offlineMode:!1},session:C,isPremium:D?"PREMIUM"===D.status:j.providerSpecificData?.isPremium??!0,teamAccount:E,subscriptionCache:D,beastMode:!1,reasoningMode:!1,designerMode:!1,workspaceId:"",asyncMode:!1,integrations:{},isTaskPersistent:!1,selectedElement:null},I=AbortSignal.timeout(e.MT),J=n?(0,d.OW)(n,I):I;try{r=await fetch(h,{method:"POST",headers:G,body:JSON.stringify(H),signal:J})}catch(b){let a=b instanceof Error?b.message:String(b);return o?.error?.("BLACKBOX-WEB",`Fetch failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`Blackbox Web connection failed: ${a}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H}}if(!r.ok){let a,b=r.status,c=`Blackbox Web returned HTTP ${b}`,d=await r.text().catch(()=>"");return 403===b&&((a=(d||"").toLowerCase()).includes("invalid validated token")||a.includes("invalid validated")||a.includes("validation token")||a.includes("invalid token"))?c="Blackbox Web rejected the request with an invalid `validated` token. If you have a valid frontend token (the `tk` value from app.blackbox.ai's Next.js bundle), set BLACKBOX_WEB_VALIDATED_TOKEN in your environment and restart.":401===b||403===b?c="Blackbox Web auth failed — your app.blackbox.ai session cookie may be missing or expired.":429===b&&(c="Blackbox Web rate limited the session. Wait a moment and retry."),{response:new Response(JSON.stringify({error:{message:c,type:"upstream_error",code:`HTTP_${b}`}}),{status:b,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H}}if(!r.body)return{response:new Response(JSON.stringify({error:{message:"Blackbox Web returned an empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};let K=(await k(r.body,n)).trim();o?.debug?.("BLACKBOX-WEB",`Response (first 300 chars): ${K.slice(0,300)}`),o?.debug?.("BLACKBOX-WEB",`userSelectedModel sent: ${H.userSelectedModel}`),o?.debug?.("BLACKBOX-WEB",`isPremium sent: ${H.isPremium}`);let L=K.toLowerCase(),M=/not upgraded|upgrade to a premium plan|upgrade.required/i.test(K)||L.includes("please upgrade"),N=/please login|login required|authentication required/i.test(K)&&!M,O=/rate limit|too many requests/i.test(K)&&!M;if(M)return o?.warn?.("BLACKBOX-WEB","Blackbox returned subscription error in response body"),{response:new Response(JSON.stringify({error:{message:"Blackbox reports your account lacks a premium subscription. If you have a paid plan, re-paste your session cookie from app.blackbox.ai.",type:"upstream_error",code:"BLACKBOX_SUBSCRIPTION_REQUIRED"}}),{status:402,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};if(N)return o?.warn?.("BLACKBOX-WEB","Blackbox returned auth error in response body"),{response:new Response(JSON.stringify({error:{message:"Blackbox session is not authenticated — re-paste next-auth.session-token from app.blackbox.ai",type:"upstream_error",code:"BLACKBOX_AUTH_REQUIRED"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};if(O)return o?.warn?.("BLACKBOX-WEB","Blackbox returned rate-limit error in response body"),{response:new Response(JSON.stringify({error:{message:"Blackbox Web rate limited the session. Wait a moment and retry.",type:"upstream_error",code:"BLACKBOX_RATE_LIMIT"}}),{status:429,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H};let P=`chatcmpl-blackbox-${crypto.randomUUID().slice(0,12)}`,Q=Math.floor(Date.now()/1e3);if(v){let{content:b,toolCalls:d,finishReason:e}=(0,g.mU)(K,w,"bbx");return d?{response:new Response(JSON.stringify({id:P,object:"chat.completion",created:Q,model:a,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:d},finish_reason:e}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:h,headers:G,transformedBody:H}:{response:c?new Response(l(b,a,P,Q),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}):m(b,a,P,Q),url:h,headers:G,transformedBody:H}}return{response:c?new Response(l(K,a,P,Q),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}):m(K,a,P,Q),url:h,headers:G,transformedBody:H}}}},12560:(a,b,c)=>{c.d(b,{mu:()=>l});var d=c(97510),e=c(43659);let f="https://arena.ai",g=`${f}/nextjs-api/stream`,h="arena-auth-prod-v1";function i(a){if(!a||!a.trim())return a;let b=function(a){let b=[];for(let c of a.split(";")){let a=c.indexOf("=");if(a<0)continue;let d=c.slice(0,a).trim();if(!d)continue;let e=c.slice(a+1).trim();b.push({name:d,value:e})}return b}(a),c=b.find(a=>a.name===h);if(c&&c.value)return a;let d=`${h}.`,e=new Map;for(let{name:a,value:c}of b){if(!a.startsWith(d))continue;let b=a.slice(d.length);/^\d+$/.test(b)&&e.set(Number(b),c)}let f=[];for(let a=0;e.has(a);a++)f.push(e.get(a)??"");let g=f.join("");if(!g)return a;let i=b.filter(a=>a.name!==h&&!a.name.startsWith(d));return[`${h}=${g}`,...i.map(a=>`${a.name}=${a.value}`)].join("; ")}function j(a){if(!a||"object"!=typeof a)return"";let b="string"==typeof a.cookie?a.cookie:"";if(b.trim())return i(b);let c="string"==typeof a.apiKey?a.apiKey:"";if(c.trim())return i(c);let d=a.providerSpecificData;if(d&&"object"==typeof d){let a=d.cookie;if("string"==typeof a&&a.trim())return i(a)}return""}function k(a){if(a.startsWith("a0:"))try{let b=JSON.parse(a.substring(3));return{type:"text",content:"string"==typeof b?b:b.text||""}}catch{}else if(a.startsWith("ag:"))try{let b=JSON.parse(a.substring(3));return{type:"thinking",content:"string"==typeof b?b:b.thinking||""}}catch{}else if(a.startsWith("a3:")||a.startsWith("ae:"))try{let b=JSON.parse(a.substring(3));return{type:"error",content:"string"==typeof b?b:b.error||JSON.stringify(b)}}catch{return{type:"error",content:a.substring(3)}}else if(a.startsWith("ad:"))return{type:"done"};else if(a.startsWith("a2:"))return{type:"heartbeat"};return null}class l extends d.Hv{constructor(a={}){super("lmarena",{format:"openai",...a})}buildUrl(a,b){return g}buildHeaders(a,b,c){let d=j(b),e={"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:f,Referer:`${f}/`};return d&&(e.Cookie=d),e}transformRequest(a,b){return{messages:a.messages.map(a=>({role:a.role,content:a.content})),model:b,stream:a.stream||!1}}async execute(a){let{model:b,body:c,stream:d,credentials:f,signal:g,log:h}=a,i=this.buildUrl(b,f),k=this.buildHeaders(b,f,c),l=this.transformRequest(c,b);if(!j(f))return{response:new Response(JSON.stringify({error:{message:"LMArena requires a session cookie. Please provide cookie in credentials.",type:"authentication_error",code:"missing_cookie"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:i,headers:k,transformedBody:l};h?.info?.("LMArenaExecutor",`Executing request for model: ${b}`);try{let a=await fetch(i,{method:"POST",headers:k,body:JSON.stringify(l),signal:g});if(!a.ok){let b=await a.text(),c=`LMArena API error: ${a.status}`;try{let a=JSON.parse(b);c=a.error?.message||a.message||c}catch{c=b||c}return{response:new Response(JSON.stringify({error:{message:(0,e.sanitizeErrorMessage)(c),type:"api_error",code:String(a.status)}}),{status:a.status,headers:{"Content-Type":"application/json"}}),url:i,headers:k,transformedBody:l}}return{response:d?await this.handleStreamingResponse(a,b,h):await this.handleNonStreamingResponse(a,b,h),url:i,headers:k,transformedBody:l}}catch(b){let a=b instanceof Error?b.message:String(b);return h?.error?.("LMArenaExecutor",`Request failed: ${a}`),{response:new Response(JSON.stringify({error:{message:(0,e.sanitizeErrorMessage)(a),type:"network_error",code:"request_failed"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:k,transformedBody:l}}}async handleStreamingResponse(a,b,c){let d=a.body?.getReader();if(!d)throw Error("No response body for streaming");let e=new TextDecoder,f="",g="",h="",i=new ReadableStream({async start(a){try{for(;;){let{done:c,value:i}=await d.read();if(c)break;let j=(f+=e.decode(i,{stream:!0})).split("\n");for(let c of(f=j.pop()||"",j)){if(!c.trim())continue;let d=c.startsWith("data: ")?c.substring(6):c,e=k(d);if(e){if("text"===e.type&&e.content){g+=e.content;let c={id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{content:e.content},finish_reason:null}]};a.enqueue(`data: ${JSON.stringify(c)}
|
|
154
154
|
|
|
155
155
|
`)}else if("thinking"===e.type&&e.content)h+=e.content;else if("error"===e.type){let c={id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{},finish_reason:"stop"}],error:{message:e.content}};a.enqueue(`data: ${JSON.stringify(c)}
|
|
156
156
|
|
|
@@ -158,7 +158,7 @@ ${d[e].content}`}:d.unshift({id:b,role:"user",content:a})}return d}(x,y);if(0===
|
|
|
158
158
|
|
|
159
159
|
`),a.enqueue("data: [DONE]\n\n"),a.close();return}}}}let c={id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]};a.enqueue(`data: ${JSON.stringify(c)}
|
|
160
160
|
|
|
161
|
-
`),a.enqueue("data: [DONE]\n\n"),a.close()}catch(d){let b=d instanceof Error?d.message:String(d);c?.error?.("LMArenaExecutor",`Streaming error: ${b}`),a.error(d)}}});return new Response(i,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async handleNonStreamingResponse(a,b,c){let d=(await a.text()).split("\n"),f="",g=null;for(let a of d){if(!a.trim())continue;let b=k(a.startsWith("data: ")?a.substring(6):a);if(b){if("text"===b.type&&b.content)f+=b.content;else if("thinking"===b.type&&b.content)b.content;else if("error"===b.type){g=b.content||"Unknown error";break}else if("done"===b.type)break}}return g?new Response(JSON.stringify({error:{message:(0,e.sanitizeErrorMessage)(g),type:"api_error",code:"lmarena_error"}}),{status:502,headers:{"Content-Type":"application/json"}}):new Response(JSON.stringify({id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:{role:"assistant",content:f},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}})}}},13511:(a,b,c)=>{
|
|
161
|
+
`),a.enqueue("data: [DONE]\n\n"),a.close()}catch(d){let b=d instanceof Error?d.message:String(d);c?.error?.("LMArenaExecutor",`Streaming error: ${b}`),a.error(d)}}});return new Response(i,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async handleNonStreamingResponse(a,b,c){let d=(await a.text()).split("\n"),f="",g=null;for(let a of d){if(!a.trim())continue;let b=k(a.startsWith("data: ")?a.substring(6):a);if(b){if("text"===b.type&&b.content)f+=b.content;else if("thinking"===b.type&&b.content)b.content;else if("error"===b.type){g=b.content||"Unknown error";break}else if("done"===b.type)break}}return g?new Response(JSON.stringify({error:{message:(0,e.sanitizeErrorMessage)(g),type:"api_error",code:"lmarena_error"}}),{status:502,headers:{"Content-Type":"application/json"}}):new Response(JSON.stringify({id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:{role:"assistant",content:f},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}})}}},13511:(a,b,c)=>{c.d(b,{Br:()=>o});var d=c(97510),e=c(61408),f=c(94755),g=c(8590);class h{push(a){a instanceof Uint8Array&&0!==a.length&&(this.chunks.push(a),this.length+=a.length)}peekUint32BE(a=0){if(this.length<a+4)return null;let b=0;for(let c=0;c<4;c++)b=b<<8|this.byteAt(a+c);return b>>>0}read(a){if(a<0||this.length<a)return null;let b=new Uint8Array(a),c=0;for(;c<a;){let d=this.chunks[0],e=Math.min(d.length-this.headOffset,a-c);b.set(d.subarray(this.headOffset,this.headOffset+e),c),c+=e,this.headOffset+=e,this.length-=e,this.headOffset>=d.length&&(this.chunks.shift(),this.headOffset=0)}return b}byteAt(a){let b=a;for(let a=0;a<this.chunks.length;a++){let c=this.chunks[a],d=0===a?this.headOffset:0,e=c.length-d;if(b<e)return c[d+b];b-=e}return 0}constructor(){this.chunks=[],this.headOffset=0,this.length=0}}let i=new Uint32Array(256),j=new TextEncoder,k=new TextDecoder;for(let a=0;a<256;a++){let b=a;for(let a=0;a<8;a++)b=1&b?0xedb88320^b>>>1:b>>>1;i[a]=b>>>0}let l="true"===process.env.KIRO_VERIFY_FULL_CRC;function m(a){let b=0xffffffff;for(let c=0;c<a.length;c++)b=i[(b^a[c])&255]^b>>>8;return(0xffffffff^b)>>>0}function n(a,b,c){if(!a.toolArgsBuffered||0===a.toolArgsBuffered.size)return;let{responseId:d,created:e,model:f}=c;for(let[c,g]of a.toolArgsBuffered){let h=a.toolArgsEmitted.get(c)||"";if(g.canonical&&g.canonical!==h){let h={id:d,object:"chat.completion.chunk",created:e,model:f,choices:[{index:0,delta:{tool_calls:[{index:g.toolIndex,function:{arguments:g.canonical}}]},finish_reason:null}]};b.enqueue(j.encode(`data: ${JSON.stringify(h)}
|
|
162
162
|
|
|
163
163
|
`)),a.toolArgsEmitted.set(c,g.canonical)}}a.toolArgsBuffered.clear()}class o extends d.Hv{constructor(a="kiro"){super(a,e.xq[a]||e.xq.kiro)}buildHeaders(a,b=!0){let c={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,f.A)(),"x-amzn-bedrock-cache-control":"enable","anthropic-beta":"prompt-caching-2024-07-31"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c}transformRequest(a,b,c,d){let e={};if(void 0!==b.conversationState&&(e.conversationState=b.conversationState),void 0!==b.profileArn&&(e.profileArn=b.profileArn),void 0!==b.inferenceConfig&&(e.inferenceConfig=b.inferenceConfig),!e.conversationState){let{model:a,...c}=b;return c}return e}async execute({model:a,body:b,stream:c,credentials:e,signal:f,log:g,upstreamExtraHeaders:h}){let i=function(a){let b=a?.providerSpecificData||{},c="string"==typeof b.region?b.region.trim().toLowerCase():"";if(c)return c;let d=("string"==typeof b.profileArn?b.profileArn.toLowerCase():"").match(/^arn:aws:codewhisperer:([a-z0-9-]+):/);return d?d[1]:"us-east-1"}(e),j=`${"us-east-1"===i?"https://codewhisperer.us-east-1.amazonaws.com":`https://q.${i}.amazonaws.com`}/generateAssistantResponse`,k=this.buildHeaders(e,c);(0,d._F)(k,h);let l=await this.transformRequest(a,b,c,e),m=await fetch(j,{method:"POST",headers:k,body:JSON.stringify(l),signal:f});if(!m.ok)return{response:m,url:j,headers:k,transformedBody:l};let n=(l?.conversationState?.currentMessage?.userInputMessage?.content||"").includes("<thinking_mode>enabled</thinking_mode>");return{response:this.transformEventStreamToSSE(m,a,{thinkingExpected:n}),url:j,headers:k,transformedBody:l}}transformEventStreamToSSE(a,b,c={}){let d=!!c.thinkingExpected,e=new h,f=0,g=`chatcmpl-${Date.now()}`,i=Math.floor(Date.now()/1e3),o={endDetected:!1,finishEmitted:!1,startEmitted:!1,stopSeen:!1,hasToolCalls:!1,toolCallIndex:0,seenToolIds:new Map,toolArgsEmitted:new Map,toolArgsBuffered:new Map,hasReasoningContent:!1,reasoningChunkCount:0,thinking:d?{thinkingMode:!1,pendingTag:""}:void 0},p=new TransformStream({async transform(a,c){e.push(a);let h=0;for(;e.length>=16&&h<1e3;){h++;let a=e.peekUint32BE(0);if(!a||a<16||a>e.length)break;let p=e.read(a);if(!p)break;let q=function(a){try{let b=new DataView(a.buffer,a.byteOffset);b.getUint32(0,!1);let c=b.getUint32(4,!1),d=b.getUint32(8,!1),e=m(a.slice(0,8));if(d!==e)return console.warn(`[Kiro] Prelude CRC mismatch: expected ${d}, got ${e} — skipping corrupted frame`),null;if(l){let c=b.getUint32(a.length-4,!1),d=m(a.slice(0,a.length-4));if(c!==d)return console.warn(`[Kiro] Message CRC mismatch: expected ${c}, got ${d} — skipping corrupted frame`),null}let f={},g=12,h=12+c;for(;g<h&&g<a.length;){let b=a[g];if(++g+b>a.length)break;let c=k.decode(a.subarray(g,g+b)),d=a[g+=b];if(g++,7===d){let b=a[g]<<8|a[g+1];if((g+=2)+b>a.length)break;let d=k.decode(a.subarray(g,g+b));g+=b,f[c]=d}else break}let i=12+c,j=a.length-4,n=null;if(j>i){let b=k.decode(a.subarray(i,j));if(!b||!b.trim())return{headers:f,payload:null};try{n=JSON.parse(b)}catch(c){let a=c instanceof Error?c:Error(String(c));console.warn(`[Kiro] Failed to parse payload: ${a.message} | payload: ${b.substring(0,100)}`),n={raw:b}}}return{headers:f,payload:n}}catch(b){let a=b instanceof Error?b:Error(String(b));return console.warn(`[Kiro] Frame parse error: ${a.message}`),null}}(p);if(!q)continue;if(!o.startEmitted){o.startEmitted=!0;let a={id:g,object:"chat.completion.chunk",created:i,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]};f++,c.enqueue(j.encode(`data: ${JSON.stringify(a)}
|
|
164
164
|
|
|
@@ -180,7 +180,7 @@ ${d[e].content}`}:d.unshift({id:b,role:"user",content:a})}return d}(x,y);if(0===
|
|
|
180
180
|
|
|
181
181
|
`)))}),!o.finishEmitted){let c;o.finishEmitted=!0,function(a){if(a.usage)return;let b=a.totalContentLength&&a.totalContentLength>0?Math.max(1,Math.floor(a.totalContentLength/4)):0,c=a.contextUsagePercentage&&a.contextUsagePercentage>0?Math.floor(2e5*a.contextUsagePercentage/100):0;c<=0&&b<=0||(a.usage={prompt_tokens:c,completion_tokens:b,total_tokens:c+b})}(o);let d=(c={id:g,object:"chat.completion.chunk",created:i,model:b,choices:[{index:0,delta:{},finish_reason:o.hasToolCalls?"tool_calls":"stop"}]},o.usage&&(c.usage=o.usage),c);a.enqueue(j.encode(`data: ${JSON.stringify(d)}
|
|
182
182
|
|
|
183
|
-
`))}a.enqueue(j.encode("data: [DONE]\n\n"))}},{highWaterMark:16384},{highWaterMark:16384});return new Response(a.body.pipeThrough(p),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await (0,g.Ql)(a.refreshToken,a.providerSpecificData,b);if(!c||c.error)return c;if(c._newClientId){let b={...a.providerSpecificData||{},clientId:c._newClientId,clientSecret:c._newClientSecret,clientSecretExpiresAt:c._newClientSecretExpiresAt};return{accessToken:c.accessToken,refreshToken:c.refreshToken,expiresIn:c.expiresIn,providerSpecificData:b}}return c}catch(c){let a=c instanceof Error?c:Error(String(c));return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},13568:(a,b,c)=>{
|
|
183
|
+
`))}a.enqueue(j.encode("data: [DONE]\n\n"))}},{highWaterMark:16384},{highWaterMark:16384});return new Response(a.body.pipeThrough(p),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await (0,g.Ql)(a.refreshToken,a.providerSpecificData,b);if(!c||c.error)return c;if(c._newClientId){let b={...a.providerSpecificData||{},clientId:c._newClientId,clientSecret:c._newClientSecret,clientSecretExpiresAt:c._newClientSecretExpiresAt};return{accessToken:c.accessToken,refreshToken:c.refreshToken,expiresIn:c.expiresIn,providerSpecificData:b}}return c}catch(c){let a=c instanceof Error?c:Error(String(c));return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},13568:(a,b,c)=>{c.d(b,{G:()=>h});var d=c(55511),e=c(97510);let f=["x-opencode-session","x-opencode-request","x-opencode-project","x-opencode-client"];function g(a,b){return Object.entries(a).find(([a])=>a.toLowerCase()===b.toLowerCase())?.[1]}function h(a,b,c){let h=b["User-Agent"]||b["user-agent"];for(let c of(h&&(0,e.Uv)(a,h),f)){let d=g(b,c);d&&(a[c]=d)}if(c?.synthesizeRequestId&&!a["x-opencode-session"]){let c=g(b,"x-session-affinity")||g(b,"x-session-id");c&&(a["x-opencode-session"]=c,a["x-opencode-request"]||(a["x-opencode-request"]=(0,d.randomUUID)()))}}},15890:(a,b,c)=>{c.d(b,{i:()=>r});var d=c(97510),e=c(61408),f=c(77598);let g="https://server.self-serve.windsurf.com/exa.language_server_pb.LanguageServerService/GetChatMessage",h="3.14.0",i={"swe-1.6-fast":"swe-1-6-fast","swe-1.6":"swe-1-6","swe-1.5-fast":"swe-1p5","swe-1.5":"swe-1p5","claude-opus-4.7-max":"claude-opus-4-7-max","claude-opus-4.7-xhigh":"claude-opus-4-7-xhigh","claude-opus-4.7-high":"claude-opus-4-7-high","claude-opus-4.7-medium":"claude-opus-4-7-medium","claude-opus-4.7-low":"claude-opus-4-7-low","claude-opus-4.7-review":"opus-4-7-review","claude-sonnet-4.6-thinking-1m":"claude-sonnet-4-6-thinking-1m","claude-sonnet-4.6-1m":"claude-sonnet-4-6-1m","claude-sonnet-4.6-thinking":"claude-sonnet-4-6-thinking","claude-sonnet-4.6":"claude-sonnet-4-6","claude-opus-4.6-thinking":"claude-opus-4-6-thinking","claude-opus-4.6":"claude-opus-4-6","claude-opus-4.5-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-opus-4.5":"MODEL_CLAUDE_4_5_OPUS","claude-sonnet-4.5-thinking":"MODEL_PRIVATE_3","claude-sonnet-4.5":"MODEL_PRIVATE_2","claude-haiku-4.5":"MODEL_PRIVATE_11","claude-4.5-opus-thinking":"MODEL_CLAUDE_4_5_OPUS_THINKING","claude-4.5-opus":"MODEL_CLAUDE_4_5_OPUS","claude-4.5-sonnet-thinking":"MODEL_PRIVATE_3","claude-4.5-sonnet":"MODEL_PRIVATE_2","claude-4.5-haiku":"MODEL_PRIVATE_11","gpt-5.5-xhigh-fast":"gpt-5-5-xhigh-priority","gpt-5.5-high-fast":"gpt-5-5-high-priority","gpt-5.5-medium-fast":"gpt-5-5-medium-priority","gpt-5.5-low-fast":"gpt-5-5-low-priority","gpt-5.5-none-fast":"gpt-5-5-none-priority","gpt-5.5-xhigh":"gpt-5-5-xhigh","gpt-5.5-high":"gpt-5-5-high","gpt-5.5-medium":"gpt-5-5-medium","gpt-5.5-low":"gpt-5-5-low","gpt-5.5-none":"gpt-5-5-none","gpt-5.5-review":"gpt-5-5-review","gpt-5.5":"gpt-5-5-medium","gpt-5.4-xhigh-fast":"gpt-5-4-xhigh-priority","gpt-5.4-high-fast":"gpt-5-4-high-priority","gpt-5.4-medium-fast":"gpt-5-4-medium-priority","gpt-5.4-low-fast":"gpt-5-4-low-priority","gpt-5.4-none-fast":"gpt-5-4-none-priority","gpt-5.4-xhigh":"gpt-5-4-xhigh","gpt-5.4-high":"gpt-5-4-high","gpt-5.4-medium":"gpt-5-4-medium","gpt-5.4-low":"gpt-5-4-low","gpt-5.4-none":"gpt-5-4-none","gpt-5.4-mini-xhigh":"gpt-5-4-mini-xhigh","gpt-5.4-mini-high":"gpt-5-4-mini-high","gpt-5.4-mini-medium":"gpt-5-4-mini-medium","gpt-5.4-mini-low":"gpt-5-4-mini-low","gpt-5.4":"gpt-5-4-medium","gpt-5.3-codex-xhigh-fast":"gpt-5-3-codex-xhigh-priority","gpt-5.3-codex-high-fast":"gpt-5-3-codex-high-priority","gpt-5.3-codex-medium-fast":"gpt-5-3-codex-medium-priority","gpt-5.3-codex-low-fast":"gpt-5-3-codex-low-priority","gpt-5.3-codex-xhigh":"gpt-5-3-codex-xhigh","gpt-5.3-codex-high":"gpt-5-3-codex-high","gpt-5.3-codex-medium":"gpt-5-3-codex-medium","gpt-5.3-codex-low":"gpt-5-3-codex-low","gpt-5.3-codex":"gpt-5-3-codex-medium","gpt-5.2-xhigh":"MODEL_GPT_5_2_XHIGH","gpt-5.2-high":"MODEL_GPT_5_2_HIGH","gpt-5.2-medium":"MODEL_GPT_5_2_MEDIUM","gpt-5.2-low":"MODEL_GPT_5_2_LOW","gpt-5.2-none":"MODEL_GPT_5_2_NONE","gpt-5.2":"MODEL_GPT_5_2_MEDIUM","gpt-5":"gpt-5","gpt-4.1":"MODEL_CHAT_GPT_4_1_2025_04_14","gpt-4.1-mini":"gpt-4.1-mini","gpt-4o":"MODEL_CHAT_GPT_4O_2024_08_06","gemini-3.1-pro-high":"gemini-3-1-pro-high","gemini-3.1-pro-low":"gemini-3-1-pro-low","gemini-3.1-pro":"gemini-3-1-pro-high","gemini-3.0-flash-high":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-3.0-flash-medium":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MEDIUM","gemini-3.0-flash-low":"MODEL_GOOGLE_GEMINI_3_0_FLASH_LOW","gemini-3.0-flash-minimal":"MODEL_GOOGLE_GEMINI_3_0_FLASH_MINIMAL","gemini-3.0-flash":"MODEL_GOOGLE_GEMINI_3_0_FLASH_HIGH","gemini-2.5-pro":"MODEL_GOOGLE_GEMINI_2_5_PRO","deepseek-v4":"deepseek-v4","kimi-k2.6":"kimi-k2-6","kimi-k2.5":"kimi-k2-5","glm-5.1":"glm-5-1"};function j(a){let b=[],c=a>>>0;for(;c>127;)b.push(127&c|128),c>>>=7;return b.push(127&c),new Uint8Array(b)}function k(a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}let l=new TextEncoder,m=new TextDecoder;function n(a,b){return k([j(a<<3|2),j(b.length),b])}function o(a,b){return n(a,l.encode(b))}function p(a,b){let c=0,d=0;for(;b<a.length;){let e=a[b++];if(c|=(127&e)<<d,(128&e)==0)break;d+=7}return[c>>>0,b]}function q(a,b){let c=0;for(;c<a.length;){let d;[d,c]=p(a,c);let e=d>>>3,f=7&d;if(2===f){let d;[d,c]=p(a,c);let f=a.slice(c,c+d);if(c+=d,e===b)return m.decode(f)}else if(0===f){let b;[b,c]=p(a,c)}else if(1===f)c+=8;else if(5===f)c+=4;else break}return null}class r extends d.Hv{constructor(){super("windsurf",e.xq.windsurf||{id:"windsurf",baseUrl:g})}buildUrl(){return g}buildHeaders(a){let b=a.accessToken||a.apiKey||"";return{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto",...b?{Authorization:`Bearer ${b}`}:{},"User-Agent":`windsurf/${h}`,"X-Grpc-Web":"1"}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:e,signal:g,log:j,upstreamExtraHeaders:l}){let m,p=e.accessToken||e.apiKey||"",q=i[a]??a,r=b??{},s=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));b.push({role:a,content:d,toolCallId:c.tool_call_id})}return b}(Array.isArray(r.messages)?r.messages:[]);0===s.length&&s.push({role:"user",content:""});let t=function(a,b,c){let d=(0,f.randomUUID)(),e=(0,f.randomUUID)(),g=[n(1,k([o(1,a),o(2,"windsurf"),o(3,h),o(4,"3.14.0"),o(5,d),o(6,"en-US")])),o(2,e),n(3,o(1,b))];for(let a of c)g.push(n(4,function(a){let b=[o(1,a.role),o(2,a.content)];return a.toolCallId&&b.push(o(3,a.toolCallId)),k(b)}(a)));return k(g)}(p,q,s),u=((m=new Uint8Array(5+t.length))[0]=0,new DataView(m.buffer).setUint32(1,t.length,!1),m.set(t,5),m),v=this.buildUrl(),w=this.buildHeaders(e);(0,d._F)(w,l),j?.info?.("WS",`Windsurf → ${q} (${s.length} messages)`);let x=await fetch(v,{method:"POST",headers:w,body:u,signal:g??void 0});return x.ok||200===x.status?{response:this.transformToSSE(x,a,c),url:v,headers:w,transformedBody:t}:{response:x,url:v,headers:w,transformedBody:t}}transformToSSE(a,b,c){let d=`chatcmpl-ws-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=new ReadableStream({async start(c){let f=new TextEncoder,g=!1,h="",i=0,j=0,l=null;function n(a){c.enqueue(f.encode(a))}try{let f=new Uint8Array(0),o=a.body?.getReader(),r=(a,c)=>{if(128===a){let a=m.decode(c),b=/grpc-status:\s*(\d+)/i.exec(a);if(b&&"0"!==b[1]){let c=/grpc-message:\s*(.+)/i.exec(a);l=c?decodeURIComponent(c[1].trim()):`gRPC status ${b[1]}`}return}if(0!==a)return;let f=function(a){let b=0;for(;b<a.length;){let d;[d,b]=p(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=p(a,b);let f=a.slice(b,b+d);if(b+=d,1===e){var c;let a=(c=f,q(c,1));if(null!==a)return{kind:"content",text:a}}else if(3===e){let a=function(a){let b=0,c=null;for(;b<a.length;){let d;[d,b]=p(a,b);let e=d>>>3,f=7&d;if(2===f){let d;[d,b]=p(a,b),1===e&&(c=a.slice(b,b+d)),b+=d}else if(0===f){let c;[c,b]=p(a,b)}else break}if(!c)return[0,0];let d=0,e=0;for(b=0;b<c.length;){let a;[a,b]=p(c,b);let f=a>>>3,g=7&a;if(0===g){let a;[a,b]=p(c,b),1===f?d=a:2===f&&(e=a)}else if(2===g){let a;[a,b]=p(c,b),b+=a}else break}return[d,e]}(f);return{kind:"done",promptTokens:a[0],completionTokens:a[1]}}else if(4===e)return{kind:"error",message:q(f,1)??"unknown windsurf error"}}else if(0===f){let c;[c,b]=p(a,b)}else if(1===f)b+=8;else if(5===f)b+=4;else break}return{kind:"unknown"}}(c);"content"===f.kind&&f.text?(h+=f.text,g||(n(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
184
184
|
|
|
185
185
|
`),g=!0),n(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{content:f.text},finish_reason:null}]})}
|
|
186
186
|
|
|
@@ -194,7 +194,7 @@ ${d[e].content}`}:d.unshift({id:b,role:"user",content:a})}return d}(x,y);if(0===
|
|
|
194
194
|
|
|
195
195
|
`),n("data: [DONE]\n\n")}catch(b){let a=b instanceof Error?b.message:String(b);n(`data: ${JSON.stringify({error:{message:`Windsurf stream error: ${a}`,type:"windsurf_error"}})}
|
|
196
196
|
|
|
197
|
-
`),n("data: [DONE]\n\n")}c.close()}});return new Response(f,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}}},18812:(a,b,c)=>{
|
|
197
|
+
`),n("data: [DONE]\n\n")}c.close()}});return new Response(f,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}}},18812:(a,b,c)=>{c.d(b,{SC:()=>m});var d=c(97510),e=c(61408),f=c(57148),g=c(425);let h="127.0.0.1",i=/^mcp_(?=[^_])/;function j(a){return"string"==typeof a&&i.test(a)?"M"+a.slice(1):null}let k=null;async function l(){if(k&&Date.now()-k.ts<6e4)return k.url;try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=await a();if("string"==typeof b.cliproxyapi_url&&b.cliproxyapi_url.trim()){let a=b.cliproxyapi_url.trim();return k={url:a,ts:Date.now()},a}}catch{}let a=process.env.CLIPROXYAPI_HOST||h,b=parseInt(process.env.CLIPROXYAPI_PORT||String(8317),10),d=`http://${a}:${b}`;return k={url:d,ts:Date.now()},d}(async()=>{try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=await a();"string"==typeof b.cliproxyapi_url&&b.cliproxyapi_url.trim()&&(k={url:b.cliproxyapi_url.trim(),ts:Date.now()})}catch{}})();class m extends d.Hv{constructor(a){const b=a??function(){if(k&&Date.now()-k.ts<6e4)return k.url;let a=process.env.CLIPROXYAPI_HOST||h,b=parseInt(process.env.CLIPROXYAPI_PORT||String(8317),10);return`http://${a}:${b}`}();super("cliproxyapi",{id:"cliproxyapi",baseUrl:b+"/v1/chat/completions",headers:{"Content-Type":"application/json"}}),this.upstreamBaseUrl=b}buildUrl(a,b,c=0,d=null){return`${this.upstreamBaseUrl}/v1/chat/completions`}isAnthropicShape(a){if(!a||"object"!=typeof a)return!1;if(void 0!==a.system||void 0!==a.thinking||a.metadata&&"object"==typeof a.metadata&&void 0!==a.metadata.user_id)return!0;let b=a.messages;if(Array.isArray(b)&&b.length>0){let a=b[0];if(Array.isArray(a?.content))return!0}return!1}selectEndpoint(a){return this.isAnthropicShape(a)?"/v1/messages":"/v1/chat/completions"}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return c&&(d.Authorization=`Bearer ${c}`),b&&(d.Accept="text/event-stream"),d}transformRequest(a,b,c,d){if(!b||"object"!=typeof b)return b;let e={...b};if(e.model!==a&&(e.model=a),this.isAnthropicShape(e)){delete e.output_config,delete e.context_management,delete e.client_info,delete e.prompt_cache_key,delete e.safety_identifier,delete e.metadata;let a=e.thinking;if(a&&"object"==typeof a){let b="enabled"===a.type||"disabled"===a.type,c="number"==typeof a.budget_tokens&&a.budget_tokens>=0,d="display"in a;b&&c&&!d||delete e.thinking}Array.isArray(e.tools)&&(e.tools=(0,g.SN)(e.tools));let b=(0,f.Aq)(e,{skip:a=>i.test(a)}),c=function(a){let b=new Map,c=(a,c)=>{b.set(c,a)},d=a.tools;Array.isArray(d)&&(a.tools=d.map(a=>{if(!a||"object"!=typeof a)return a;let b="string"==typeof a.name?a.name:"",d=j(b);return d?(c(b,d),{...a,name:d}):a}));let e=a.messages;Array.isArray(e)&&(a.messages=e.map(a=>{if(!a||"object"!=typeof a)return a;let b=a.content;if(!Array.isArray(b))return a;let d=!1,e=b.map(a=>{if(!a||"object"!=typeof a||"tool_use"!==a.type)return a;let b="string"==typeof a.name?a.name:"",e=j(b);return e?(d=!0,c(b,e),{...a,name:e}):a});return d?{...a,content:e}:a}));let f=a.tool_choice;if(f&&"object"==typeof f&&"tool"===f.type&&"string"==typeof f.name){let b=j(f.name);if(b){let d=f.name;a.tool_choice={...f,name:b},c(d,b)}}return b}(e),d=new Map(b);for(let[a,b]of c)d.set(a,b);d.size>0&&Object.defineProperty(e,"_toolNameMap",{value:d,enumerable:!1,configurable:!0,writable:!0})}return e}async execute(a){let b=await l(),c=this.selectEndpoint(a.body),f=`${b}${c}`,g="/v1/messages"===c?"anthropic":"openai",h=this.buildHeaders(a.credentials,a.stream),i=this.transformRequest(a.model,a.body,a.stream,a.credentials);(0,d._F)(h,a.upstreamExtraHeaders);let j=AbortSignal.timeout(e.MT),k=a.signal?(0,d.OW)(a.signal,j):j;a.log?.info?.("CPA",`CLIProxyAPI → ${f} (model: ${a.model}, shape: ${g})`);let m=i&&"object"==typeof i?JSON.stringify(i,(a,b)=>"_toolNameMap"===a?void 0:b):JSON.stringify(i),n=await fetch(f,{method:"POST",headers:h,body:m,signal:k});return n.status===e.gx.RATE_LIMITED&&a.log?.warn?.("CPA",`CLIProxyAPI rate limited: ${n.status}`),{response:n,url:f,headers:h,transformedBody:i}}async healthCheck(){let a=Date.now();try{let b=await l(),c=await fetch(`${b}/v1/models`,{signal:AbortSignal.timeout(5e3)});return{ok:c.ok,latencyMs:Date.now()-a,...!c.ok?{error:`HTTP ${c.status}`}:{}}}catch(b){return{ok:!1,latencyMs:Date.now()-a,error:b instanceof Error?b.message:String(b)}}}}},19497:(a,b,c)=>{c.d(b,{rU:()=>h});var d=c(21820),e=c(33873);let f=null,g=0;function h(){let a=Date.now();if(f&&a-g<36e5)return f;try{let b=new(c(87550))(function(){if(process.env.CURSOR_STATE_DB_PATH)return process.env.CURSOR_STATE_DB_PATH;let a=process.env.HOME||process.env.USERPROFILE||(0,d.homedir)(),b=process.platform;return"darwin"===b?(0,e.join)(a,"Library/Application Support/Cursor/User/globalStorage/state.vscdb"):"win32"===b?(0,e.join)(process.env.APPDATA||a,"Cursor/User/globalStorage/state.vscdb"):(0,e.join)(a,".config/Cursor/User/globalStorage/state.vscdb")}(),{readonly:!0,fileMustExist:!0});try{let c=b.prepare("SELECT value FROM itemTable WHERE key = ?").get("cursorupdate.lastUpdatedAndShown.version");if(c?.value)return f=c.value,g=a,f}finally{b.close()}}catch{}return"3.9"}},19946:(a,b,c)=>{c.a(a,async(a,d)=>{try{let a;c.d(b,{ou:()=>J});var e=c(97510),f=c(61408),g=c(98946),h=c(82601),i=c(73483),j=c(19497),k=c(43659),l=c(12468),m=c(82568),n=c(74051),o=c(55511),p=c.n(o),q=c(73024),r=c(38522),s=c(57975);let y="Tool not available in this environment. Use the MCP tools provided instead.",z=(0,s.promisify)(r.gunzip);function t(a){return"object"==typeof a&&null!==a}let A=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{A=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{A=null}let B="1"===process.env.CURSOR_DEBUG||"1"===process.env.CURSOR_STREAM_DEBUG,C=(...a)=>{B&&console.log(...a)},D=(a=parseInt(process.env.CURSOR_STREAM_TIMEOUT_MS||"300000",10),Number.isInteger(a)&&a>0?a:3e5),E="</think>";function u(a){let b=String(a??"").split("/").pop();return/^composer(?:-|$)/i.test(b??"")}let F=/^\s*<[||]\s*final\s*[||]>\s*/i,G=/\s*<[||]\s*\/\s*final\s*[||]>\s*$/i,H=/^\s*<(?![||/])/,I=/^\s*<[||][^>]*$/;function v(a,b){return{responseId:`chatcmpl-cursor-${Date.now()}`,created:Math.floor(Date.now()/1e3),model:a,emit:b,emittedRoleChunk:!1,totalText:"",thinkingText:"",tokenDelta:0,receivedText:!1,kvAfterTextSeen:!1,endReason:null,midStreamError:null,emittedToolCallIndex:0,toolCalls:[],pendingToolCalls:new Map,composerVisibleEmittedLength:0,composerToolParserState:u(a)?(0,m.Ih)():null,composerInlineToolCallsEmitted:!1}}function w(a,b,c=null){let d={id:a.responseId,object:"chat.completion.chunk",created:a.created,model:a.model,choices:[{index:0,delta:b,finish_reason:c}]};a.emit(`data: ${JSON.stringify(d)}
|
|
198
198
|
|
|
199
199
|
`)}function x(a,b){let c=(0,i.bC)(b),d=a.tokenDelta>0?a.tokenDelta:(0,i.oT)(a.totalText.length+a.thinkingText.length),e={prompt_tokens:c,completion_tokens:d,total_tokens:c+d,estimated:!0};return a.thinkingText.length>0&&(e.completion_tokens_details={reasoning_tokens:(0,i.oT)(a.thinkingText.length)}),(0,i.O9)(e)}class J extends e.Hv{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return"https://agentn.global.api5.cursor.sh/agent.v1.AgentService/Run"}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.ghostMode!==!1,d=b.includes("::")?b.split("::")[1]:b,e=p().randomUUID(),f=`00-${p().randomBytes(16).toString("hex")}-${p().randomBytes(8).toString("hex")}-01`;return{authorization:`Bearer ${d}`,"backend-traceparent":f,"connect-accept-encoding":"gzip","connect-protocol-version":"1","content-type":"application/connect+proto",traceparent:f,"user-agent":"connect-es/1.6.1","x-cursor-client-type":"cli","x-cursor-client-version":`cli-${(0,j.rU)()}`,"x-ghost-mode":c?"true":"false","x-original-request-id":e,"x-request-id":e}}assembleTextAndTools(a){var b;let c=a.messages||[],d=Array.isArray(a.tools)?a.tools:void 0,e="none"===a.tool_choice?void 0:d,f=(0,g.FA)(c);return e&&e.length>0&&"0"!==process.env.CURSOR_TOOL_DIRECTIVE&&(f=`You are serving an OpenAI-compatible API request and the client has provided executable tools.
|
|
200
200
|
When a tool is needed to answer (real-time data, web/search lookups, file or project operations), you MUST issue the actual tool call. Do NOT describe what you are about to do as prose and then stop — call the tool.
|
|
@@ -210,7 +210,7 @@ ${b.map(a=>`- ${a}`).join("\n")}`:""}(a),tools:e}}async resolveRequestImages(a){
|
|
|
210
210
|
|
|
211
211
|
`),a.emit("data: [DONE]\n\n");return}if(a.emittedRoleChunk||w(a,{role:"assistant",content:""}),u(a.model)&&!a.composerInlineToolCallsEmitted&&a.totalText){let b=(0,m.bp)(a.totalText);if(b.toolCalls.length>0)for(let c of(a.composerInlineToolCallsEmitted=!0,a.totalText=b.content,b.toolCalls)){let b=a.emittedToolCallIndex++;a.toolCalls.push({id:c.id,name:c.function.name,argumentsJson:c.function.arguments}),w(a,{tool_calls:[{index:b,id:c.id,type:"function",function:{name:c.function.name,arguments:c.function.arguments}}]})}}let e=a.toolCalls.length>0?"tool_calls":"stop";w(a,{},e),c=x(a,b),d={id:a.responseId,object:"chat.completion.chunk",created:a.created,model:a.model,choices:[],usage:c},a.emit(`data: ${JSON.stringify(d)}
|
|
212
212
|
|
|
213
|
-
`),a.emit("data: [DONE]\n\n")}buildResponseFromCtx(a,b){if(a.midStreamError&&0===a.totalText.length)return new Response(JSON.stringify({error:{message:a.midStreamError.message,type:a.midStreamError.status===f.gx.RATE_LIMITED?"rate_limit_error":"api_error"}}),{status:a.midStreamError.status,headers:{"Content-Type":"application/json"}});if(u(a.model)&&!a.composerInlineToolCallsEmitted&&a.totalText){let b=(0,m.bp)(a.totalText);if(b.toolCalls.length>0)for(let c of(a.composerInlineToolCallsEmitted=!0,a.totalText=b.content,b.toolCalls))a.toolCalls.push({id:c.id,name:c.function.name,argumentsJson:c.function.arguments})}let c=x(a,b),d=a.toolCalls.length>0?"tool_calls":"stop",e={role:"assistant",content:a.totalText.length>0?a.totalText:null};if(a.thinkingText.length>0){let b=u(a.model)?function(a){if(!a)return"";let b=a.lastIndexOf(E);return b<0?a:a.slice(0,b)}(a.thinkingText):a.thinkingText;b.length>0&&(e.reasoning_content=b)}return a.toolCalls.length>0&&(e.tool_calls=a.toolCalls.map(a=>({id:a.id,type:"function",function:{name:a.name,arguments:a.argumentsJson}}))),new Response(JSON.stringify({id:a.responseId,object:"chat.completion",created:a.created,model:a.model,choices:[{index:0,message:e,finish_reason:d}],usage:c}),{status:200,headers:{"Content-Type":"application/json"}})}async refreshCredentials(){return null}}d()}catch(a){d(a)}},1)},21880:(a,b,c)=>{
|
|
213
|
+
`),a.emit("data: [DONE]\n\n")}buildResponseFromCtx(a,b){if(a.midStreamError&&0===a.totalText.length)return new Response(JSON.stringify({error:{message:a.midStreamError.message,type:a.midStreamError.status===f.gx.RATE_LIMITED?"rate_limit_error":"api_error"}}),{status:a.midStreamError.status,headers:{"Content-Type":"application/json"}});if(u(a.model)&&!a.composerInlineToolCallsEmitted&&a.totalText){let b=(0,m.bp)(a.totalText);if(b.toolCalls.length>0)for(let c of(a.composerInlineToolCallsEmitted=!0,a.totalText=b.content,b.toolCalls))a.toolCalls.push({id:c.id,name:c.function.name,argumentsJson:c.function.arguments})}let c=x(a,b),d=a.toolCalls.length>0?"tool_calls":"stop",e={role:"assistant",content:a.totalText.length>0?a.totalText:null};if(a.thinkingText.length>0){let b=u(a.model)?function(a){if(!a)return"";let b=a.lastIndexOf(E);return b<0?a:a.slice(0,b)}(a.thinkingText):a.thinkingText;b.length>0&&(e.reasoning_content=b)}return a.toolCalls.length>0&&(e.tool_calls=a.toolCalls.map(a=>({id:a.id,type:"function",function:{name:a.name,arguments:a.argumentsJson}}))),new Response(JSON.stringify({id:a.responseId,object:"chat.completion",created:a.created,model:a.model,choices:[{index:0,message:e,finish_reason:d}],usage:c}),{status:200,headers:{"Content-Type":"application/json"}})}async refreshCredentials(){return null}}d()}catch(a){d(a)}},1)},21880:(a,b,c)=>{c.d(b,{l:()=>h});var d=c(55511),e=c(97510),f=c(43659);let g="https://zenmux.ai/api/anthropic/v1/messages";class h extends e.Hv{constructor(){super("zenmux-free",{id:"zenmux-free",baseUrl:g})}async execute(a){let b,c,{body:e,credentials:h,signal:j,stream:k}=a,l=e||{},m=(0,f.sY)(String(h?.apiKey??"").trim()),n=(c=m.match(/ctoken=([^;]+)/))?c[1]:"";if(!n)return(0,f.DV)(401,"ZenMux Free: ctoken not found in cookies. Export all cookies from zenmux.ai and paste as the credential.",e,g);let o=l.messages||[],p=l.model||"deepseek/deepseek-chat",q=l.max_tokens||4096,r=o.filter(a=>"user"===a.role),s=o.filter(a=>"system"===a.role),t=r[r.length-1],u="string"==typeof t?.content?t.content:JSON.stringify(t?.content??"Hello"),v=s.length>0?"string"==typeof s[0].content?s[0].content:JSON.stringify(s[0].content):null,w=v?`${v}
|
|
214
214
|
|
|
215
215
|
${u}`:u,x=(0,d.randomUUID)().replace(/-/g,""),y={model:p,max_tokens:q,messages:[{role:"user",content:[{type:"text",text:w}]}],stream:!0};void 0!==l.temperature&&(y.temperature=l.temperature);let z=new URL(g);z.searchParams.set("ctoken",n);let A={"Content-Type":"application/json","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Accept:"text/event-stream",Origin:"https://zenmux.ai",Referer:"https://zenmux.ai/platform/chat","anthropic-version":"2023-06-01","chat-request-id":x,"x-zenmux-accept-processing":"true, true","x-zenmux-apikey-source":"subscription"};m&&(A.Cookie=m);try{b=await fetch(z.toString(),{method:"POST",headers:A,body:JSON.stringify(y),signal:j})}catch(a){return(0,f.DV)(502,`ZenMux Free fetch failed: ${a instanceof Error?a.message:"unknown"}`,e,g)}if(!b.ok){if(401===b.status||403===b.status)return(0,f.DV)(401,"ZenMux Free: cookies expired or invalid",e,g);if(402===b.status)return(0,f.DV)(402,"ZenMux Free: free-tier quota exhausted",e,g);let a=await b.text().catch(()=>"");return(0,f.DV)(b.status,`ZenMux Free error: ${a}`,e,g)}let B=`chatcmpl-zmf-${(0,d.randomUUID)().slice(0,12)}`,C=Math.floor(Date.now()/1e3);if(!k){let a=await i(b.body);return{response:new Response(JSON.stringify({id:B,object:"chat.completion",created:C,model:p,choices:[{index:0,message:{role:"assistant",content:a},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:Math.ceil(a.length/4),total_tokens:0}}),{headers:{"Content-Type":"application/json"}}),url:g,headers:A,transformedBody:y}}let D=new TextEncoder,E=new TextDecoder;return{response:new Response(new ReadableStream({async start(a){let c=b.body?.getReader();if(!c)return void a.close();a.enqueue(D.encode(`data: ${JSON.stringify({id:B,object:"chat.completion.chunk",created:C,model:p,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})}
|
|
216
216
|
|
|
@@ -218,9 +218,9 @@ ${u}`:u,x=(0,d.randomUUID)().replace(/-/g,""),y={model:p,max_tokens:q,messages:[
|
|
|
218
218
|
|
|
219
219
|
`))}else"message_delta"===b.type&&c&&a.enqueue(D.encode(`data: ${JSON.stringify({id:B,object:"chat.completion.chunk",created:C,model:p,choices:[{index:0,delta:{},finish_reason:c.stop_reason||"stop"}]})}
|
|
220
220
|
|
|
221
|
-
`))}catch{}}}}catch(b){j?.aborted||a.error(b)}finally{a.enqueue(D.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:A,transformedBody:y}}}async function i(a){if(!a)return"";let b=a.getReader(),c=new TextDecoder,d="",e="";for(;;){let{done:a,value:f}=await b.read();if(a)break;let g=(d+=c.decode(f,{stream:!0})).split("\n");for(let a of(d=g.pop()||"",g)){let b=a.trim();if(b.startsWith("data: "))try{let a=JSON.parse(b.slice(6)),c=a.delta;"content_block_delta"===a.type&&c&&(e+=c.text||c.thinking||"")}catch{}}}return e}},22376:(a,b,c)=>{"use strict";c.d(b,{h:()=>i});var d=c(97510),e=c(61408),f=c(98395),g=c(44708),h=c.n(g);class i extends d.Hv{constructor(){super("grok-cli",e.xq["grok-cli"])}async execute(a){let{model:b,body:c,stream:d,credentials:e,signal:f}=a,g=this.buildUrl(b,d,0,e),h=this.buildHeaders(e,d),i=this.transformRequest(b,c,d,e),j=JSON.stringify(i);return{response:await this.nativePost(g,h,j,f),url:g,headers:h,transformedBody:i}}async refreshCredentials(a,b){if(!a?.refreshToken)return b?.warn?.("TOKEN_REFRESH","Grok Build: no refresh token available"),null;let c=(0,f.Cf)("grok_id","GROK_OAUTH_CLIENT_ID");try{let d=new URLSearchParams({grant_type:"refresh_token",client_id:c,refresh_token:a.refreshToken}),e=await this.nativeHttpsPost("https://auth.x.ai/oauth2/token",{"Content-Type":"application/x-www-form-urlencoded"},d.toString(),1e4);if(200!==e.status)return b?.warn?.("TOKEN_REFRESH",`Grok Build: refresh failed with status ${e.status}`),null;let f=JSON.parse(e.body);if(!f.access_token)return b?.warn?.("TOKEN_REFRESH","Grok Build: no access_token in refresh response"),null;let g=f.expires_in||21600,h=new Date(Date.now()+1e3*g).toISOString();return b?.info?.("TOKEN_REFRESH",`Grok Build: token refreshed, expires ${h}`),{accessToken:f.access_token,refreshToken:f.refresh_token||a.refreshToken,expiresAt:h}}catch(a){return b?.warn?.("TOKEN_REFRESH",`Grok Build: refresh error: ${a instanceof Error?a.message:String(a)}`),null}}nativeHttpsPost(a,b,c,d=1e4){let e=new URL(a);return new Promise((a,f)=>{let g=setTimeout(()=>i.destroy(Error("Timeout")),d),i=h().request({hostname:e.hostname,port:443,path:e.pathname+e.search,method:"POST",family:4,headers:{...b,"Content-Length":Buffer.byteLength(c)}},b=>{let c=[];b.on("data",a=>c.push(a)),b.on("end",()=>{clearTimeout(g),a({status:b.statusCode??500,body:Buffer.concat(c).toString("utf-8")})})});i.on("error",a=>{clearTimeout(g),f(a)}),i.write(c),i.end()})}nativePost(a,b,c,d){let e=new URL(a);return d?.aborted?Promise.reject(Error("Aborted")):new Promise((a,f)=>{let g=setTimeout(()=>k.destroy(Error("Timeout")),6e4),i=!1,j=a=>{i||(i=!0,clearTimeout(g),a())},k=h().request({hostname:e.hostname,port:443,path:e.pathname+e.search,method:"POST",family:4,headers:{...b,"Content-Length":Buffer.byteLength(c)}},b=>{let c=[];b.on("data",a=>c.push(a)),b.on("end",()=>{j(()=>{let d=Buffer.concat(c).toString("utf-8"),e={};for(let[a,c]of Object.entries(b.headers))"string"==typeof c?e[a]=c:Array.isArray(c)&&(e[a]=c.join(", "));a(new Response(d,{status:b.statusCode??500,headers:e}))})})});if(d){let a=()=>j(()=>f(Error("Aborted")));d.addEventListener("abort",a,{once:!0}),k.on("close",()=>d.removeEventListener("abort",a))}k.on("error",a=>j(()=>f(a))),k.write(c),k.end()})}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken?c.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(c.Authorization=`Bearer ${a.apiKey}`),c.Accept=b?"text/event-stream":"application/json",c["x-grok-client-version"]="0.2.72",c["x-grok-client-identifier"]="grok_cli_rs",c["User-Agent"]="grok-cli/0.2.72 (Windows 10.0.26200; x64)",c}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?{...b}:{};for(let b of(e.model||(e.model=a||"grok-composer-2.5-fast"),e.stream=!!c,["presencePenalty","frequencyPenalty","logprobs","topLogprobs"]))b in e&&delete e[b];return e}}},22965:(a,b,c)=>{"use strict";c.d(b,{A:()=>V});var d=c(97510),e=c(48161),f=c(76760),g=c(51455),h=c(77598),i=c(95538),j=c(93804);let k=null,l=!1,m=Number.parseInt(process.env.OMNIROUTE_PPLX_TLS_TIMEOUT_MS||"",10)||3e4,n=Number.parseInt(process.env.OMNIROUTE_PPLX_TLS_GRACE_MS||"",10)||1e4;class o extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function p(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new o(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(t(c)):(e=()=>b(t(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function q(){return k||(k=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(l)return;l=!0;let a=async()=>{if(k)try{let a=await k;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){k=null;let a=b instanceof Error?b.message:String(b);throw new r(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),k}class r extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function s(a,b={}){var c;let d;if(b.signal?.aborted)throw t(b.signal);let e=await q();if(b.signal?.aborted)throw t(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"firefox_148",timeoutMilliseconds:b.timeoutMs??m,followRedirects:!0,withRandomTLSExtensionOrder:!0,proxyUrl:(c=b.proxyUrl,(0,j.G)("https://www.perplexity.ai",c,i.l))};if(b.stream)return await v(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??m)+n);try{d=await p(e.request(a,f),(b.timeoutMs??m)+n,b.signal??null)}catch(a){throw a instanceof o&&(k=null),a}if(b.signal?.aborted)throw t(b.signal);return{status:d.status,headers:u(d.headers),text:d.body,body:null}}function t(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function u(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function v(a,b,c,d="[DONE]",i=null,j=m+n){let l,q=await (0,g.mkdtemp)((0,f.join)((0,e.tmpdir)(),"pplx-stream-")),r=(0,f.join)(q,`${(0,h.randomUUID)()}.sse`),s={...c,streamOutputPath:r,streamOutputBlockSize:1024,streamOutputEOFSymbol:d},t=!0,A=p(a.request(b,s),j,i).catch(a=>{throw t&&a instanceof o&&(k=null,t=!1),a});if(!await y(r,5e3,A)||!((l=(await x(r,256)).replace(/^[\s\r\n]+/,""))&&(l.startsWith(":")||/^(data|event|id|retry):/i.test(l)))){let a=await A.catch(a=>({status:502,headers:{},body:String(a)}));return await w(r),{status:a.status,headers:u(a.headers),text:a.body,body:null}}let B=function(a,b,c,d=null){return new ReadableStream({async start(e){let f=await (0,g.open)(a,"r"),h=Buffer.alloc(65536),i=0,j=!1,k=!1,l=null;c.then(()=>{j=!0},a=>{l=a instanceof Error?a:Error(String(a)),j=!0});let m=()=>{k=!0};d&&(d.aborted?k=!0:d.addEventListener("abort",m,{once:!0}));let n=!1;try{for(;!k;){let{bytesRead:a}=await f.read(h,0,h.length,i);if(a>0){let c=h.subarray(0,a);i+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.indexOf(b)+b.length;e.enqueue(new Uint8Array(c.subarray(0,a)));break}e.enqueue(new Uint8Array(c))}else if(j){l&&(e.error(l),n=!0);break}else await z(25)}}catch(a){e.error(a),n=!0}finally{d&&d.removeEventListener("abort",m),await f.close().catch(()=>{}),await (0,g.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,g.rmdir)(b).catch(()=>{}),n||e.close()}}})}(r,d,A,i);return{status:200,headers:new Headers({"Content-Type":"text/event-stream","Cache-Control":"no-cache"}),text:null,body:B}}async function w(a){await (0,g.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,g.rmdir)(b).catch(()=>{})}async function x(a,b){let c=await (0,g.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function y(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,g.stat)(a)).size>0)return!0}catch{}if(d)break;await z(25)}return!1}function z(a){return new Promise(b=>setTimeout(b,a))}var A=c(72221),B=c(43659);let C="https://www.perplexity.ai/rest/sse/perplexity_ask",D=["answer_modes","media_items","knowledge_cards","inline_entity_cards","place_widgets","finance_widgets","sports_widgets","news_widgets","shopping_widgets","jobs_widgets","search_result_widgets","inline_images","inline_assets","placeholder_cards","diff_blocks","inline_knowledge_cards","entity_group_v2","refinement_filters","canvas_mode","maps_preview","answer_tabs","price_comparison_widgets","preserve_latex","generic_onboarding_widgets","in_context_suggestions","pending_followups","inline_claims","unified_assets","workflow_steps","background_agents"],E={"pplx-auto":["concise","pplx_pro"],"pplx-sonar":["copilot","experimental"],"pplx-gpt":["copilot","gpt54"],"pplx-gemini":["copilot","gemini31pro_high"],"pplx-sonnet":["copilot","claude46sonnet"],"pplx-opus":["copilot","claude46opus"],"pplx-nemotron":["copilot","nv_nemotron_3_super"]},F={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},G=/\[\d+\]/g,H=/<grok:[^>]*>.*?<\/grok:[^>]*>/gs,I=/<grok:[^>]*\/>/g,J=/<[?]xml[^?]*[?]>/g,K=/<\/?response\b[^>]*>/gi,L=/ {2,}/g,M=/\n{3,}/g,N=new Map;function O(a){let b=a.map(a=>`${a.role}:${a.content}`).join("\n"),c=0x811c9dc5;for(let a=0;a<b.length;a++)c^=b.charCodeAt(a),c=0x1000193*c>>>0;return c.toString(16).padStart(8,"0")}function P(a,b,c,d){if(!d)return;let e=O([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(N.set(e,{backendUuid:d,ts:Date.now()}),N.size>200){let a=null,b=1/0;for(let[c,d]of N)d.ts<b&&(b=d.ts,a=c);a&&N.delete(a)}}function Q(a,b=!0){let c=a;return c=(c=(c=(c=(c=c.replace(J,"")).replace(G,"")).replace(H,"")).replace(I,"")).replace(K,""),b&&(c=(c=(c=c.replace(L," ")).replace(M,"\n\n")).trim()),c}async function*R(a,b){let c=a.getReader(),d=new TextDecoder,e="",f=[];function g(){if(0===f.length)return null;let a=f.join("\n");f=[];let b=a.trim();if(!b||"[DONE]"===b)return"done";try{return JSON.parse(b)}catch{return null}}try{for(;;){if(b?.aborted)return;let{value:a,done:h}=await c.read();if(h)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a);e=e.slice(a+1);let c=b.endsWith("\r")?b.slice(0,-1):b;if(""===c){let a=g();if("done"===a)return;a&&(yield a);continue}if(c.startsWith("data:")&&f.push(c.slice(5).trimStart()),"event: end_of_stream"===c)return}}(e+=d.decode()).trim().startsWith("data:")&&f.push(e.trim().slice(5).trimStart());let a=g();a&&"done"!==a&&(yield a)}finally{c.releaseLock()}}async function*S(a,b){let c="",d=null,e=0,f=new Set,g=new Map,h=null;for await(let i of R(a,b)){if(i.error_code||i.error_message)return void(yield{error:i.error_message||`Perplexity error: ${i.error_code}`,done:!0});i.backend_uuid&&(d=i.backend_uuid);let a=i.blocks??[];for(let b of a){let a=b.intended_usage??"";if("pro_search_steps"===a&&b.plan_block?.steps){for(let a of b.plan_block.steps)if("SEARCH_WEB"===a.step_type)for(let b of a.search_web_content?.queries??[]){let a=b.query??"";a&&!f.has(a)&&(f.add(a),yield{thinking:`Searching: ${a}`,backendUuid:d??void 0})}else if("READ_RESULTS"===a.step_type)for(let b of(a.read_results_content?.urls??[]).slice(0,3))b&&!f.has(b)&&(f.add(b),yield{thinking:`Reading: ${b}`,backendUuid:d??void 0})}if("plan"===a&&b.plan_block?.goals)for(let a of b.plan_block.goals){let b=a.description??"";b&&!f.has(b)&&(f.add(b),yield{thinking:b,backendUuid:d??void 0})}if(!("ask_text"===a||/^ask_text_\d+_markdown$/.test(a)||a.includes("markdown")))continue;let c=g.get(a);if(c||(c={chunks:[]},g.set(a,c)),b.diff_block&&Array.isArray(b.diff_block.patches))!function(a,b){for(let c of b){let b=c.path??"";if(""===b){let b=c.value??{};a.chunks=Array.isArray(b.chunks)?b.chunks.map(a=>String(a)):[];continue}let d=/^\/chunks\/(\d+)$/.exec(b);if(d&&"string"==typeof c.value){let b=Number.parseInt(d[1],10);a.chunks[b]=c.value}}}(c,b.diff_block.patches);else if(b.markdown_block){let a=b.markdown_block;Array.isArray(a.chunks)&&a.chunks.length>0?c.chunks=a.chunks.map(a=>String(a)):"string"==typeof a.answer&&a.answer.length>0&&(c.chunks=[a.answer])}"ask_text"===a?h="ask_text":h||(h=a)}if(h){let a=(g.get(h)?.chunks??[]).join("");if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if(!h&&0===a.length&&i.text){let a=i.text.trim();if(!(a.startsWith("{")||a.startsWith("["))&&a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if("COMPLETED"===i.status)break}yield{delta:"",answer:c,backendUuid:d??void 0,done:!0}}function T(a){return`data: ${JSON.stringify(a)}
|
|
221
|
+
`))}catch{}}}}catch(b){j?.aborted||a.error(b)}finally{a.enqueue(D.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:A,transformedBody:y}}}async function i(a){if(!a)return"";let b=a.getReader(),c=new TextDecoder,d="",e="";for(;;){let{done:a,value:f}=await b.read();if(a)break;let g=(d+=c.decode(f,{stream:!0})).split("\n");for(let a of(d=g.pop()||"",g)){let b=a.trim();if(b.startsWith("data: "))try{let a=JSON.parse(b.slice(6)),c=a.delta;"content_block_delta"===a.type&&c&&(e+=c.text||c.thinking||"")}catch{}}}return e}},22376:(a,b,c)=>{c.d(b,{h:()=>i});var d=c(97510),e=c(61408),f=c(98395),g=c(44708),h=c.n(g);class i extends d.Hv{constructor(){super("grok-cli",e.xq["grok-cli"])}async execute(a){let{model:b,body:c,stream:d,credentials:e,signal:f}=a,g=this.buildUrl(b,d,0,e),h=this.buildHeaders(e,d),i=this.transformRequest(b,c,d,e),j=JSON.stringify(i);return{response:await this.nativePost(g,h,j,f),url:g,headers:h,transformedBody:i}}async refreshCredentials(a,b){if(!a?.refreshToken)return b?.warn?.("TOKEN_REFRESH","Grok Build: no refresh token available"),null;let c=(0,f.Cf)("grok_id","GROK_OAUTH_CLIENT_ID");try{let d=new URLSearchParams({grant_type:"refresh_token",client_id:c,refresh_token:a.refreshToken}),e=await this.nativeHttpsPost("https://auth.x.ai/oauth2/token",{"Content-Type":"application/x-www-form-urlencoded"},d.toString(),1e4);if(200!==e.status)return b?.warn?.("TOKEN_REFRESH",`Grok Build: refresh failed with status ${e.status}`),null;let f=JSON.parse(e.body);if(!f.access_token)return b?.warn?.("TOKEN_REFRESH","Grok Build: no access_token in refresh response"),null;let g=f.expires_in||21600,h=new Date(Date.now()+1e3*g).toISOString();return b?.info?.("TOKEN_REFRESH",`Grok Build: token refreshed, expires ${h}`),{accessToken:f.access_token,refreshToken:f.refresh_token||a.refreshToken,expiresAt:h}}catch(a){return b?.warn?.("TOKEN_REFRESH",`Grok Build: refresh error: ${a instanceof Error?a.message:String(a)}`),null}}nativeHttpsPost(a,b,c,d=1e4){let e=new URL(a);return new Promise((a,f)=>{let g=setTimeout(()=>i.destroy(Error("Timeout")),d),i=h().request({hostname:e.hostname,port:443,path:e.pathname+e.search,method:"POST",family:4,headers:{...b,"Content-Length":Buffer.byteLength(c)}},b=>{let c=[];b.on("data",a=>c.push(a)),b.on("end",()=>{clearTimeout(g),a({status:b.statusCode??500,body:Buffer.concat(c).toString("utf-8")})})});i.on("error",a=>{clearTimeout(g),f(a)}),i.write(c),i.end()})}nativePost(a,b,c,d){let e=new URL(a);return d?.aborted?Promise.reject(Error("Aborted")):new Promise((a,f)=>{let g=setTimeout(()=>k.destroy(Error("Timeout")),6e4),i=!1,j=a=>{i||(i=!0,clearTimeout(g),a())},k=h().request({hostname:e.hostname,port:443,path:e.pathname+e.search,method:"POST",family:4,headers:{...b,"Content-Length":Buffer.byteLength(c)}},b=>{let c=[];b.on("data",a=>c.push(a)),b.on("end",()=>{j(()=>{let d=Buffer.concat(c).toString("utf-8"),e={};for(let[a,c]of Object.entries(b.headers))"string"==typeof c?e[a]=c:Array.isArray(c)&&(e[a]=c.join(", "));a(new Response(d,{status:b.statusCode??500,headers:e}))})})});if(d){let a=()=>j(()=>f(Error("Aborted")));d.addEventListener("abort",a,{once:!0}),k.on("close",()=>d.removeEventListener("abort",a))}k.on("error",a=>j(()=>f(a))),k.write(c),k.end()})}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken?c.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(c.Authorization=`Bearer ${a.apiKey}`),c.Accept=b?"text/event-stream":"application/json",c["x-grok-client-version"]="0.2.72",c["x-grok-client-identifier"]="grok_cli_rs",c["User-Agent"]="grok-cli/0.2.72 (Windows 10.0.26200; x64)",c}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?{...b}:{};for(let b of(e.model||(e.model=a||"grok-composer-2.5-fast"),e.stream=!!c,["presencePenalty","frequencyPenalty","logprobs","topLogprobs"]))b in e&&delete e[b];return e}}},22965:(a,b,c)=>{c.d(b,{A:()=>V});var d=c(97510),e=c(48161),f=c(76760),g=c(51455),h=c(77598),i=c(95538),j=c(93804);let k=null,l=!1,m=Number.parseInt(process.env.OMNIROUTE_PPLX_TLS_TIMEOUT_MS||"",10)||3e4,n=Number.parseInt(process.env.OMNIROUTE_PPLX_TLS_GRACE_MS||"",10)||1e4;class o extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function p(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new o(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(t(c)):(e=()=>b(t(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function q(){return k||(k=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(l)return;l=!0;let a=async()=>{if(k)try{let a=await k;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){k=null;let a=b instanceof Error?b.message:String(b);throw new r(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),k}class r extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function s(a,b={}){var c;let d;if(b.signal?.aborted)throw t(b.signal);let e=await q();if(b.signal?.aborted)throw t(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"firefox_148",timeoutMilliseconds:b.timeoutMs??m,followRedirects:!0,withRandomTLSExtensionOrder:!0,proxyUrl:(c=b.proxyUrl,(0,j.G)("https://www.perplexity.ai",c,i.l))};if(b.stream)return await v(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??m)+n);try{d=await p(e.request(a,f),(b.timeoutMs??m)+n,b.signal??null)}catch(a){throw a instanceof o&&(k=null),a}if(b.signal?.aborted)throw t(b.signal);return{status:d.status,headers:u(d.headers),text:d.body,body:null}}function t(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function u(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function v(a,b,c,d="[DONE]",i=null,j=m+n){let l,q=await (0,g.mkdtemp)((0,f.join)((0,e.tmpdir)(),"pplx-stream-")),r=(0,f.join)(q,`${(0,h.randomUUID)()}.sse`),s={...c,streamOutputPath:r,streamOutputBlockSize:1024,streamOutputEOFSymbol:d},t=!0,A=p(a.request(b,s),j,i).catch(a=>{throw t&&a instanceof o&&(k=null,t=!1),a});if(!await y(r,5e3,A)||!((l=(await x(r,256)).replace(/^[\s\r\n]+/,""))&&(l.startsWith(":")||/^(data|event|id|retry):/i.test(l)))){let a=await A.catch(a=>({status:502,headers:{},body:String(a)}));return await w(r),{status:a.status,headers:u(a.headers),text:a.body,body:null}}let B=function(a,b,c,d=null){return new ReadableStream({async start(e){let f=await (0,g.open)(a,"r"),h=Buffer.alloc(65536),i=0,j=!1,k=!1,l=null;c.then(()=>{j=!0},a=>{l=a instanceof Error?a:Error(String(a)),j=!0});let m=()=>{k=!0};d&&(d.aborted?k=!0:d.addEventListener("abort",m,{once:!0}));let n=!1;try{for(;!k;){let{bytesRead:a}=await f.read(h,0,h.length,i);if(a>0){let c=h.subarray(0,a);i+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.indexOf(b)+b.length;e.enqueue(new Uint8Array(c.subarray(0,a)));break}e.enqueue(new Uint8Array(c))}else if(j){l&&(e.error(l),n=!0);break}else await z(25)}}catch(a){e.error(a),n=!0}finally{d&&d.removeEventListener("abort",m),await f.close().catch(()=>{}),await (0,g.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,g.rmdir)(b).catch(()=>{}),n||e.close()}}})}(r,d,A,i);return{status:200,headers:new Headers({"Content-Type":"text/event-stream","Cache-Control":"no-cache"}),text:null,body:B}}async function w(a){await (0,g.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,g.rmdir)(b).catch(()=>{})}async function x(a,b){let c=await (0,g.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function y(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,g.stat)(a)).size>0)return!0}catch{}if(d)break;await z(25)}return!1}function z(a){return new Promise(b=>setTimeout(b,a))}var A=c(72221),B=c(43659);let C="https://www.perplexity.ai/rest/sse/perplexity_ask",D=["answer_modes","media_items","knowledge_cards","inline_entity_cards","place_widgets","finance_widgets","sports_widgets","news_widgets","shopping_widgets","jobs_widgets","search_result_widgets","inline_images","inline_assets","placeholder_cards","diff_blocks","inline_knowledge_cards","entity_group_v2","refinement_filters","canvas_mode","maps_preview","answer_tabs","price_comparison_widgets","preserve_latex","generic_onboarding_widgets","in_context_suggestions","pending_followups","inline_claims","unified_assets","workflow_steps","background_agents"],E={"pplx-auto":["concise","pplx_pro"],"pplx-sonar":["copilot","experimental"],"pplx-gpt":["copilot","gpt54"],"pplx-gemini":["copilot","gemini31pro_high"],"pplx-sonnet":["copilot","claude46sonnet"],"pplx-opus":["copilot","claude46opus"],"pplx-nemotron":["copilot","nv_nemotron_3_super"]},F={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},G=/\[\d+\]/g,H=/<grok:[^>]*>.*?<\/grok:[^>]*>/gs,I=/<grok:[^>]*\/>/g,J=/<[?]xml[^?]*[?]>/g,K=/<\/?response\b[^>]*>/gi,L=/ {2,}/g,M=/\n{3,}/g,N=new Map;function O(a){let b=a.map(a=>`${a.role}:${a.content}`).join("\n"),c=0x811c9dc5;for(let a=0;a<b.length;a++)c^=b.charCodeAt(a),c=0x1000193*c>>>0;return c.toString(16).padStart(8,"0")}function P(a,b,c,d){if(!d)return;let e=O([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(N.set(e,{backendUuid:d,ts:Date.now()}),N.size>200){let a=null,b=1/0;for(let[c,d]of N)d.ts<b&&(b=d.ts,a=c);a&&N.delete(a)}}function Q(a,b=!0){let c=a;return c=(c=(c=(c=(c=c.replace(J,"")).replace(G,"")).replace(H,"")).replace(I,"")).replace(K,""),b&&(c=(c=(c=c.replace(L," ")).replace(M,"\n\n")).trim()),c}async function*R(a,b){let c=a.getReader(),d=new TextDecoder,e="",f=[];function g(){if(0===f.length)return null;let a=f.join("\n");f=[];let b=a.trim();if(!b||"[DONE]"===b)return"done";try{return JSON.parse(b)}catch{return null}}try{for(;;){if(b?.aborted)return;let{value:a,done:h}=await c.read();if(h)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a);e=e.slice(a+1);let c=b.endsWith("\r")?b.slice(0,-1):b;if(""===c){let a=g();if("done"===a)return;a&&(yield a);continue}if(c.startsWith("data:")&&f.push(c.slice(5).trimStart()),"event: end_of_stream"===c)return}}(e+=d.decode()).trim().startsWith("data:")&&f.push(e.trim().slice(5).trimStart());let a=g();a&&"done"!==a&&(yield a)}finally{c.releaseLock()}}async function*S(a,b){let c="",d=null,e=0,f=new Set,g=new Map,h=null;for await(let i of R(a,b)){if(i.error_code||i.error_message)return void(yield{error:i.error_message||`Perplexity error: ${i.error_code}`,done:!0});i.backend_uuid&&(d=i.backend_uuid);let a=i.blocks??[];for(let b of a){let a=b.intended_usage??"";if("pro_search_steps"===a&&b.plan_block?.steps){for(let a of b.plan_block.steps)if("SEARCH_WEB"===a.step_type)for(let b of a.search_web_content?.queries??[]){let a=b.query??"";a&&!f.has(a)&&(f.add(a),yield{thinking:`Searching: ${a}`,backendUuid:d??void 0})}else if("READ_RESULTS"===a.step_type)for(let b of(a.read_results_content?.urls??[]).slice(0,3))b&&!f.has(b)&&(f.add(b),yield{thinking:`Reading: ${b}`,backendUuid:d??void 0})}if("plan"===a&&b.plan_block?.goals)for(let a of b.plan_block.goals){let b=a.description??"";b&&!f.has(b)&&(f.add(b),yield{thinking:b,backendUuid:d??void 0})}if(!("ask_text"===a||/^ask_text_\d+_markdown$/.test(a)||a.includes("markdown")))continue;let c=g.get(a);if(c||(c={chunks:[]},g.set(a,c)),b.diff_block&&Array.isArray(b.diff_block.patches))!function(a,b){for(let c of b){let b=c.path??"";if(""===b){let b=c.value??{};a.chunks=Array.isArray(b.chunks)?b.chunks.map(a=>String(a)):[];continue}let d=/^\/chunks\/(\d+)$/.exec(b);if(d&&"string"==typeof c.value){let b=Number.parseInt(d[1],10);a.chunks[b]=c.value}}}(c,b.diff_block.patches);else if(b.markdown_block){let a=b.markdown_block;Array.isArray(a.chunks)&&a.chunks.length>0?c.chunks=a.chunks.map(a=>String(a)):"string"==typeof a.answer&&a.answer.length>0&&(c.chunks=[a.answer])}"ask_text"===a?h="ask_text":h||(h=a)}if(h){let a=(g.get(h)?.chunks??[]).join("");if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if(!h&&0===a.length&&i.text){let a=i.text.trim();if(!(a.startsWith("{")||a.startsWith("["))&&a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if("COMPLETED"===i.status)break}yield{delta:"",answer:c,backendUuid:d??void 0,done:!0}}function T(a){return`data: ${JSON.stringify(a)}
|
|
222
222
|
|
|
223
|
-
`}async function U(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of S(a,g)){if(b.backendUuid&&(i=b.backendUuid),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"PPLX_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.done){h=b.answer||h;break}b.answer&&(h=b.answer)}P(e,f,h=Q(h),i);let k=j.length>0?j.join("\n"):void 0,l={role:"assistant",content:h};k&&(l.reasoning_content=k);let m=Math.ceil(f.length/4),n=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:l,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:m,completion_tokens:n,total_tokens:m+n}}),{status:200,headers:{"Content-Type":"application/json"}})}class V extends d.Hv{constructor(){super("perplexity-web",{id:"perplexity-web",baseUrl:C})}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){var g,h,i,j,k,l,m;let n,o,p,q,t,u=b||{},v=u.messages;if(!v||!Array.isArray(v)||0===v.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:C,headers:{},transformedBody:b};let{hasTools:w,requestedTools:x,effectiveMessages:y}=(0,A.S$)(u,v);(!0===u.thinking||null!=u.reasoning_effort&&"none"!==u.reasoning_effort)&&F[a]?(n="copilot",o=F[a],f?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${o}`)):E[a]?[n,o]=E[a]:(n="copilot",o=a,f?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let z=function(a){let b="",c=[];for(let d of a){let a=String(d.role||"user");"developer"===a&&(a="system");let e="";"string"==typeof d.content?e=d.content:Array.isArray(d.content)&&(e=d.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),e.trim()&&("system"===a?b+=e+"\n":("user"===a||"assistant"===a)&&c.push({role:a,content:e}))}let d="";return c.length>0&&"user"===c[c.length-1].role&&(d=c.pop().content),{systemMsg:b,history:c,currentMsg:d}}(y),G=function(a){if(0===a.length)return null;let b=O(a),c=N.get(b);return c?Date.now()-c.ts>36e5?(N.delete(b),null):c.backendUuid:null}(z.history);G&&f?.info?.("PPLX-WEB",`Session continue: ${G.slice(0,12)}...`);let H=function(a,b){if(b)return a.currentMsg;let c={};a.systemMsg.trim()&&(c.instructions=[a.systemMsg.trim(),"You have built-in web search. Answer questions directly using search results."]),a.history.length>0&&(c.history=a.history),a.currentMsg?c.query=a.currentMsg:0===a.history.length&&(c.query="");let d=JSON.stringify(c);return d.length>96e3?d.slice(-96e3):d}(z,G);if(!H.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:C,headers:{},transformedBody:b};let I=crypto.randomUUID(),J=(g=z.currentMsg,h=n,i=o,t={attachments:[],language:"en-US",timezone:"u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",search_focus:"internet",sources:["web"],frontend_uuid:I,mode:h,model_preference:i,is_related_query:!1,is_sponsored:!1,frontend_context_uuid:crypto.randomUUID(),prompt_source:"user",query_source:"home",is_incognito:!0,local_search_enabled:!1,use_schematized_api:!0,send_back_text_in_streaming_api:!1,supported_block_use_cases:D,client_coordinates:null,mentions:[],dsl_query:g&&g.trim()?g:H,skip_search_enabled:!0,is_nav_suggestions_disabled:!1,source:"default",always_search_override:!1,override_no_search:!1,client_search_results_cache_key:I,should_ask_for_mcp_tool_confirmation:!0,browser_agent_allow_once_from_toggle:!1,force_enable_browser_agent:!1,supported_features:["browser_agent_permission_banner_v1.1"],extended_context:!1,version:"2.18",rum_session_id:crypto.randomUUID()},G&&(t.last_backend_uuid=G),{query_str:H,params:t}),K={"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:148.0) Gecko/20100101 Firefox/148.0","x-perplexity-request-endpoint":C,"x-perplexity-request-reason":"ask-query-state-provider","x-perplexity-request-try-number":"1","x-request-id":I};d.accessToken?K.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(K.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),f?.info?.("PPLX-WEB",`Query to ${a} (pref=${o}, mode=${n}), len=${H.length}`);try{p=await s(C,{method:"POST",headers:K,body:JSON.stringify(J),signal:e??null,stream:!0,streamEofSymbol:"[DONE]"})}catch(b){let a=b instanceof r;return f?.error?.("PPLX-WEB",`Fetch failed: ${b instanceof Error?b.message:String(b)}`),{response:new Response(JSON.stringify({error:{message:a?`Perplexity TLS client unavailable: ${(0,B.sanitizeErrorMessage)(b.message)}`:`Perplexity connection failed: ${(0,B.sanitizeErrorMessage)(b instanceof Error?b.message:String(b))}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:C,headers:K,transformedBody:J}}if(200!==p.status||!p.body&&!p.text){let a=p.status,b=`Perplexity returned HTTP ${a}`;return 401===a||403===a?(j=p.text)&&/just a moment|window\._cf_chl_opt|challenges\.cloudflare\.com|attention required|cf-chl/i.test(j)?(b="Cloudflare blocked the request — Perplexity's edge rejected this server's TLS fingerprint (common on VPS/datacenter IPs). Ensure tls-client-node is installed with its native binary, or route perplexity-web through a residential proxy.",f?.error?.("PPLX-WEB","Cloudflare challenge detected — TLS bypass failed")):b="Perplexity auth failed — session cookie may be expired. Re-paste your __Secure-next-auth.session-token.":429===a&&(b="Perplexity rate limited. Wait a moment and retry."),f?.warn?.("PPLX-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:C,headers:K,transformedBody:J}}if(!p.body)return{response:new Response(JSON.stringify({error:{message:"Perplexity returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:C,headers:K,transformedBody:J};let L=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,M=Math.floor(Date.now()/1e3);if(c){let b;q=new Response((k=p.body,l=z.history,m=z.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",f=null;for await(let g of S(k,e)){if(g.backendUuid&&(f=g.backendUuid),g.error){c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:g.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(g.done){d=g.answer||d;break}let e=g.delta||"";e&&(e=Q(e,!1))&&c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),g.answer&&(d=g.answer)}c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n")),P(l,m,Q(d),f)}catch(d){c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d instanceof Error?d.message:String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{try{c.close()}catch{}}}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else q=await U(p.body,a,L,M,z.history,z.currentMsg,e);if(w&&!c){let a=await q.text();try{let b=JSON.parse(a),c=b?.choices?.[0]?.message?.content||"",{content:d,toolCalls:e,finishReason:f}=(0,A.mU)(c,x,"pplx");e?(b.choices[0].message={role:"assistant",content:null,tool_calls:e},b.choices[0].finish_reason=f):b.choices[0].message.content=d,q=new Response(JSON.stringify(b),{status:200,headers:{"Content-Type":"application/json"}})}catch{}}return{response:q,url:C,headers:K,transformedBody:J}}}},23060:(a,b,c)=>{"use strict";c.d(b,{W:()=>d});let d={minSessions:6,maxSessions:20,cooldownBase:1e3,cooldownMax:3e4,cooldownJitter:5e3,requestTimeout:3e4,requestJitter:50}},26203:(a,b,c)=>{"use strict";c.d(b,{y:()=>k});let d=new Set(["commentary"]),e={function_call:"fc_",message:"msg_",reasoning:"rs_"},f=/^(fc|msg|rs|resp)_/;function g(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function h(a){return"message"===a.type||!a.type&&"string"==typeof a.role}function i(a){if("string"==typeof a)return a;let b=g(a);return"string"==typeof b?.url?b.url:""}function j(a,b){let c=g(a);if(!c)return a;if("image_url"===c.type){let a=i(c.image_url);if("user"===b){let b={type:"input_image",image_url:a},d=g(c.image_url);return d?.detail!==void 0&&(b.detail=d.detail),b}return{type:"output_text",text:a?`[Image: ${a}]`:"[Image]"}}if("assistant"===b&&"input_image"===c.type){let a=i(c.image_url);return{type:"output_text",text:a?`[Image: ${a}]`:"[Image]"}}return a}function k(a,b=!0,c={}){let i=c.dropInternalAssistantMessages??!0,l=[];for(let c of a){let a=g(c);if(i&&a&&function(a){if(!h(a)||"assistant"!==a.role)return!1;let b="string"==typeof a.phase?a.phase.trim().toLowerCase():"";return!!b&&d.has(b)}(a))continue;let k=b?structuredClone(c):c;l.push(function(a){let b=g(a);if(!b)return a;let c=function(a){if("string"!=typeof a.id)return a;let b=e["string"==typeof a.type?a.type:""];if(b?a.id.startsWith(b):f.test(a.id))return a;let c={...a};return delete c.id,c}(b);return h(c)&&(c=function(a){if(!Array.isArray(a.content))return a;let b="string"==typeof a.role?a.role.toLowerCase():"",c=a.content.map(a=>j(a,b));return{...a,content:c}}(c)),"function_call"!==(c=function(a){if(!Array.isArray(a.output))return a;let b="function_call_output"===a.type?"user":"assistant",c=a.output.map(a=>j(a,b));return{...a,output:c}}(c)).type&&"function_call_output"!==c.type||"string"!=typeof c.name||/^[a-zA-Z0-9_-]{1,128}$/.test(c.name)||(c={...c,name:c.name.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,128)}),c}(k))}return l}},27216:(a,b,c)=>{"use strict";c.d(b,{wf:()=>r});var d=c(48161),e=c(76760),f=c(51455),g=c(77598),h=c(95538),i=c(93804);let j=null,k=!1,l=Number.parseInt(process.env.OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS||"",10)||6e4,m=Number.parseInt(process.env.OMNIROUTE_CLAUDE_TLS_GRACE_MS||"",10)||1e4;class n extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function o(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new n(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(s(c)):(e=()=>b(s(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function p(){return j||(j=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(k)return;k=!0;let a=async()=>{if(j)try{let a=await j;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){j=null;let a=b instanceof Error?b.message:String(b);throw new q(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),j}class q extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function r(a,b={}){var c;let d;if(b.signal?.aborted)throw s(b.signal);let e=await p();if(b.signal?.aborted)throw s(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"chrome_146",timeoutMilliseconds:b.timeoutMs??l,followRedirects:!0,withRandomTLSExtensionOrder:!0,isByteResponse:!0===b.byteResponse,proxyUrl:(c=b.proxyUrl,(0,i.G)("https://claude.ai",c,h.l))};if(b.stream)return await u(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??l)+m);try{d=await o(e.request(a,f),(b.timeoutMs??l)+m,b.signal??null)}catch(a){throw a instanceof n&&(j=null),a}if(b.signal?.aborted)throw s(b.signal);return{status:d.status,headers:t(d.headers),text:d.body,body:null}}function s(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function t(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function u(a,b,c,h="[DONE]",i=null,k=l+m){let p,q=await (0,f.mkdtemp)((0,e.join)((0,d.tmpdir)(),"cgpt-stream-")),r=(0,e.join)(q,`${(0,g.randomUUID)()}.sse`),s={...c,streamOutputPath:r,streamOutputBlockSize:1024,streamOutputEOFSymbol:h},z=!0,A=o(a.request(b,s),k,i).catch(a=>{throw z&&a instanceof n&&(j=null,z=!1),a});if(!await x(r,5e3,A)||!((p=(await w(r,256)).replace(/^[\s\r\n]+/,""))&&(p.startsWith(":")||/^(data|event|id|retry):/i.test(p)))){let a=await A.catch(a=>({status:502,headers:{},body:String(a)}));return await v(r),{status:a.status,headers:t(a.headers),text:a.body,body:null}}let B=function(a,b,c,d=null){return new ReadableStream({async start(e){let g=await (0,f.open)(a,"r"),h=Buffer.alloc(65536),i=0,j=!1,k=!1,l=null;c.then(()=>{j=!0},a=>{l=a instanceof Error?a:Error(String(a)),j=!0});let m=()=>{k=!0};d&&(d.aborted?k=!0:d.addEventListener("abort",m,{once:!0}));let n=!1;try{for(;!k;){let{bytesRead:a}=await g.read(h,0,h.length,i);if(a>0){let c=h.subarray(0,a);i+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.indexOf(b)+b.length;e.enqueue(new Uint8Array(c.subarray(0,a)));break}e.enqueue(new Uint8Array(c))}else if(j){l&&(e.error(l),n=!0);break}else await y(25)}}catch(a){e.error(a),n=!0}finally{d&&d.removeEventListener("abort",m),await g.close().catch(()=>{}),await (0,f.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,f.rmdir)(b).catch(()=>{}),n||e.close()}}})}(r,h,A,i);return{status:200,headers:new Headers({"Content-Type":"text/event-stream","Cache-Control":"no-cache"}),text:null,body:B}}async function v(a){await (0,f.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,f.rmdir)(b).catch(()=>{})}async function w(a,b){let c=await (0,f.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function x(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,f.stat)(a)).size>0)return!0}catch{}if(d)break;await y(25)}return!1}function y(a){return new Promise(b=>setTimeout(b,a))}},28537:(a,b,c)=>{"use strict";c.d(b,{Kt:()=>m});var d=c(97510),e=c(43659),f=c(50954);let g="https://www.kimi.com",h=`${g}/apiv2/kimi.gateway.chat.v1.ChatService/Chat`,i="SCENARIO_K2D5";function j(a,b){if(b+5>a.length)return{consumed:0,frame:null};let c=a[b],d=a[b+1]<<24|a[b+2]<<16|a[b+3]<<8|a[b+4],e=d<0?d+0x100000000:d;if(e>8388608)return{consumed:-1,frame:null};if(b+5+e>a.length)return{consumed:0,frame:null};let f=a.subarray(b+5,b+5+e),g=null;if(e>0)try{g=JSON.parse(new TextDecoder().decode(f))}catch{g=null}return{consumed:5+e,frame:{flags:c,message:g}}}function k(a){if(!a)return null;let b=String(a.op??""),c=String(a.mask??""),d=a.block??{};if("append"===b){if("block.text.content"===c){let a=String((d.text??{}).content??"");return a?{kind:"text",text:a}:null}if("block.think.content"===c){let a=String((d.think??{}).content??"");return a?{kind:"think",text:a}:null}return null}if("set"===b){if("block.text"===c){let a=String((d.text??{}).content??"");return a?{kind:"text",text:a}:null}if("block.think"===c){let a=String((d.think??{}).content??"");return a?{kind:"think",text:a}:null}}return null}function l(a){if(!a)return!1;let b=a.message??null;return!!b&&"MESSAGE_STATUS_COMPLETED"===String(b.status??"")&&"assistant"===String(b.role??"")}class m extends d.Hv{constructor(){super("kimi-web",{id:"kimi-web",baseUrl:g})}buildKimiHeaders(a){let b={"Content-Type":"application/connect+json",Accept:"*/*","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",Origin:g,Referer:`${g}/`,"connect-protocol-version":"1"};return a&&(b.Authorization=`Bearer ${a}`,b.Cookie=`kimi-auth=${a}`),b}buildRequestBody(a,b){return JSON.stringify({scenario:i,tools:[{type:"TOOL_TYPE_SEARCH",search:{}},{type:"TOOL_TYPE_CRON_JOB"}],message:{role:"user",blocks:[{message_id:"",text:{content:a}}],scenario:i},options:{thinking:b,enable_plugin:!0}})}async execute(a){let b,c,d,g,{body:i,credentials:m,signal:n,stream:o}=a,p=i||{},q=String(m?.apiKey??"").trim(),r=(0,f.Lf)(q);if(!r)return(0,e.DV)(400,"Missing Kimi session — paste the full Cookie header from www.kimi.com (must contain kimi-auth=<JWT>) or just the JWT itself.",i,h);let s=p.messages||[],t=p.model||"kimi-default",u=/k2\.6|k2-6|think/i.test(t),v="none"!==p.reasoning_effort&&u,w=function(a){let b="",c="";for(let d of a){let a="string"==typeof d.content?d.content:JSON.stringify(d.content??"");"system"===d.role?b+=(b?"\n\n":"")+a:"user"===d.role?c=c?`${c}
|
|
223
|
+
`}async function U(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of S(a,g)){if(b.backendUuid&&(i=b.backendUuid),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"PPLX_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.done){h=b.answer||h;break}b.answer&&(h=b.answer)}P(e,f,h=Q(h),i);let k=j.length>0?j.join("\n"):void 0,l={role:"assistant",content:h};k&&(l.reasoning_content=k);let m=Math.ceil(f.length/4),n=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:l,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:m,completion_tokens:n,total_tokens:m+n}}),{status:200,headers:{"Content-Type":"application/json"}})}class V extends d.Hv{constructor(){super("perplexity-web",{id:"perplexity-web",baseUrl:C})}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){var g,h,i,j,k,l,m;let n,o,p,q,t,u=b||{},v=u.messages;if(!v||!Array.isArray(v)||0===v.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:C,headers:{},transformedBody:b};let{hasTools:w,requestedTools:x,effectiveMessages:y}=(0,A.S$)(u,v);(!0===u.thinking||null!=u.reasoning_effort&&"none"!==u.reasoning_effort)&&F[a]?(n="copilot",o=F[a],f?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${o}`)):E[a]?[n,o]=E[a]:(n="copilot",o=a,f?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let z=function(a){let b="",c=[];for(let d of a){let a=String(d.role||"user");"developer"===a&&(a="system");let e="";"string"==typeof d.content?e=d.content:Array.isArray(d.content)&&(e=d.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),e.trim()&&("system"===a?b+=e+"\n":("user"===a||"assistant"===a)&&c.push({role:a,content:e}))}let d="";return c.length>0&&"user"===c[c.length-1].role&&(d=c.pop().content),{systemMsg:b,history:c,currentMsg:d}}(y),G=function(a){if(0===a.length)return null;let b=O(a),c=N.get(b);return c?Date.now()-c.ts>36e5?(N.delete(b),null):c.backendUuid:null}(z.history);G&&f?.info?.("PPLX-WEB",`Session continue: ${G.slice(0,12)}...`);let H=function(a,b){if(b)return a.currentMsg;let c={};a.systemMsg.trim()&&(c.instructions=[a.systemMsg.trim(),"You have built-in web search. Answer questions directly using search results."]),a.history.length>0&&(c.history=a.history),a.currentMsg?c.query=a.currentMsg:0===a.history.length&&(c.query="");let d=JSON.stringify(c);return d.length>96e3?d.slice(-96e3):d}(z,G);if(!H.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:C,headers:{},transformedBody:b};let I=crypto.randomUUID(),J=(g=z.currentMsg,h=n,i=o,t={attachments:[],language:"en-US",timezone:"u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",search_focus:"internet",sources:["web"],frontend_uuid:I,mode:h,model_preference:i,is_related_query:!1,is_sponsored:!1,frontend_context_uuid:crypto.randomUUID(),prompt_source:"user",query_source:"home",is_incognito:!0,local_search_enabled:!1,use_schematized_api:!0,send_back_text_in_streaming_api:!1,supported_block_use_cases:D,client_coordinates:null,mentions:[],dsl_query:g&&g.trim()?g:H,skip_search_enabled:!0,is_nav_suggestions_disabled:!1,source:"default",always_search_override:!1,override_no_search:!1,client_search_results_cache_key:I,should_ask_for_mcp_tool_confirmation:!0,browser_agent_allow_once_from_toggle:!1,force_enable_browser_agent:!1,supported_features:["browser_agent_permission_banner_v1.1"],extended_context:!1,version:"2.18",rum_session_id:crypto.randomUUID()},G&&(t.last_backend_uuid=G),{query_str:H,params:t}),K={"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:148.0) Gecko/20100101 Firefox/148.0","x-perplexity-request-endpoint":C,"x-perplexity-request-reason":"ask-query-state-provider","x-perplexity-request-try-number":"1","x-request-id":I};d.accessToken?K.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(K.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),f?.info?.("PPLX-WEB",`Query to ${a} (pref=${o}, mode=${n}), len=${H.length}`);try{p=await s(C,{method:"POST",headers:K,body:JSON.stringify(J),signal:e??null,stream:!0,streamEofSymbol:"[DONE]"})}catch(b){let a=b instanceof r;return f?.error?.("PPLX-WEB",`Fetch failed: ${b instanceof Error?b.message:String(b)}`),{response:new Response(JSON.stringify({error:{message:a?`Perplexity TLS client unavailable: ${(0,B.sanitizeErrorMessage)(b.message)}`:`Perplexity connection failed: ${(0,B.sanitizeErrorMessage)(b instanceof Error?b.message:String(b))}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:C,headers:K,transformedBody:J}}if(200!==p.status||!p.body&&!p.text){let a=p.status,b=`Perplexity returned HTTP ${a}`;return 401===a||403===a?(j=p.text)&&/just a moment|window\._cf_chl_opt|challenges\.cloudflare\.com|attention required|cf-chl/i.test(j)?(b="Cloudflare blocked the request — Perplexity's edge rejected this server's TLS fingerprint (common on VPS/datacenter IPs). Ensure tls-client-node is installed with its native binary, or route perplexity-web through a residential proxy.",f?.error?.("PPLX-WEB","Cloudflare challenge detected — TLS bypass failed")):b="Perplexity auth failed — session cookie may be expired. Re-paste your __Secure-next-auth.session-token.":429===a&&(b="Perplexity rate limited. Wait a moment and retry."),f?.warn?.("PPLX-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:C,headers:K,transformedBody:J}}if(!p.body)return{response:new Response(JSON.stringify({error:{message:"Perplexity returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:C,headers:K,transformedBody:J};let L=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,M=Math.floor(Date.now()/1e3);if(c){let b;q=new Response((k=p.body,l=z.history,m=z.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",f=null;for await(let g of S(k,e)){if(g.backendUuid&&(f=g.backendUuid),g.error){c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:g.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(g.done){d=g.answer||d;break}let e=g.delta||"";e&&(e=Q(e,!1))&&c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),g.answer&&(d=g.answer)}c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n")),P(l,m,Q(d),f)}catch(d){c.enqueue(b.encode(T({id:L,object:"chat.completion.chunk",created:M,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d instanceof Error?d.message:String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{try{c.close()}catch{}}}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else q=await U(p.body,a,L,M,z.history,z.currentMsg,e);if(w&&!c){let a=await q.text();try{let b=JSON.parse(a),c=b?.choices?.[0]?.message?.content||"",{content:d,toolCalls:e,finishReason:f}=(0,A.mU)(c,x,"pplx");e?(b.choices[0].message={role:"assistant",content:null,tool_calls:e},b.choices[0].finish_reason=f):b.choices[0].message.content=d,q=new Response(JSON.stringify(b),{status:200,headers:{"Content-Type":"application/json"}})}catch{}}return{response:q,url:C,headers:K,transformedBody:J}}}},23060:(a,b,c)=>{c.d(b,{W:()=>d});let d={minSessions:6,maxSessions:20,cooldownBase:1e3,cooldownMax:3e4,cooldownJitter:5e3,requestTimeout:3e4,requestJitter:50}},26203:(a,b,c)=>{c.d(b,{y:()=>k});let d=new Set(["commentary"]),e={function_call:"fc_",message:"msg_",reasoning:"rs_"},f=/^(fc|msg|rs|resp)_/;function g(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function h(a){return"message"===a.type||!a.type&&"string"==typeof a.role}function i(a){if("string"==typeof a)return a;let b=g(a);return"string"==typeof b?.url?b.url:""}function j(a,b){let c=g(a);if(!c)return a;if("image_url"===c.type){let a=i(c.image_url);if("user"===b){let b={type:"input_image",image_url:a},d=g(c.image_url);return d?.detail!==void 0&&(b.detail=d.detail),b}return{type:"output_text",text:a?`[Image: ${a}]`:"[Image]"}}if("assistant"===b&&"input_image"===c.type){let a=i(c.image_url);return{type:"output_text",text:a?`[Image: ${a}]`:"[Image]"}}return a}function k(a,b=!0,c={}){let i=c.dropInternalAssistantMessages??!0,l=[];for(let c of a){let a=g(c);if(i&&a&&function(a){if(!h(a)||"assistant"!==a.role)return!1;let b="string"==typeof a.phase?a.phase.trim().toLowerCase():"";return!!b&&d.has(b)}(a))continue;let k=b?structuredClone(c):c;l.push(function(a){let b=g(a);if(!b)return a;let c=function(a){if("string"!=typeof a.id)return a;let b=e["string"==typeof a.type?a.type:""];if(b?a.id.startsWith(b):f.test(a.id))return a;let c={...a};return delete c.id,c}(b);return h(c)&&(c=function(a){if(!Array.isArray(a.content))return a;let b="string"==typeof a.role?a.role.toLowerCase():"",c=a.content.map(a=>j(a,b));return{...a,content:c}}(c)),"function_call"!==(c=function(a){if(!Array.isArray(a.output))return a;let b="function_call_output"===a.type?"user":"assistant",c=a.output.map(a=>j(a,b));return{...a,output:c}}(c)).type&&"function_call_output"!==c.type||"string"!=typeof c.name||/^[a-zA-Z0-9_-]{1,128}$/.test(c.name)||(c={...c,name:c.name.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,128)}),c}(k))}return l}},27216:(a,b,c)=>{c.d(b,{wf:()=>r});var d=c(48161),e=c(76760),f=c(51455),g=c(77598),h=c(95538),i=c(93804);let j=null,k=!1,l=Number.parseInt(process.env.OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS||"",10)||6e4,m=Number.parseInt(process.env.OMNIROUTE_CLAUDE_TLS_GRACE_MS||"",10)||1e4;class n extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function o(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new n(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(s(c)):(e=()=>b(s(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function p(){return j||(j=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(k)return;k=!0;let a=async()=>{if(j)try{let a=await j;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){j=null;let a=b instanceof Error?b.message:String(b);throw new q(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),j}class q extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function r(a,b={}){var c;let d;if(b.signal?.aborted)throw s(b.signal);let e=await p();if(b.signal?.aborted)throw s(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"chrome_146",timeoutMilliseconds:b.timeoutMs??l,followRedirects:!0,withRandomTLSExtensionOrder:!0,isByteResponse:!0===b.byteResponse,proxyUrl:(c=b.proxyUrl,(0,i.G)("https://claude.ai",c,h.l))};if(b.stream)return await u(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??l)+m);try{d=await o(e.request(a,f),(b.timeoutMs??l)+m,b.signal??null)}catch(a){throw a instanceof n&&(j=null),a}if(b.signal?.aborted)throw s(b.signal);return{status:d.status,headers:t(d.headers),text:d.body,body:null}}function s(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function t(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function u(a,b,c,h="[DONE]",i=null,k=l+m){let p,q=await (0,f.mkdtemp)((0,e.join)((0,d.tmpdir)(),"cgpt-stream-")),r=(0,e.join)(q,`${(0,g.randomUUID)()}.sse`),s={...c,streamOutputPath:r,streamOutputBlockSize:1024,streamOutputEOFSymbol:h},z=!0,A=o(a.request(b,s),k,i).catch(a=>{throw z&&a instanceof n&&(j=null,z=!1),a});if(!await x(r,5e3,A)||!((p=(await w(r,256)).replace(/^[\s\r\n]+/,""))&&(p.startsWith(":")||/^(data|event|id|retry):/i.test(p)))){let a=await A.catch(a=>({status:502,headers:{},body:String(a)}));return await v(r),{status:a.status,headers:t(a.headers),text:a.body,body:null}}let B=function(a,b,c,d=null){return new ReadableStream({async start(e){let g=await (0,f.open)(a,"r"),h=Buffer.alloc(65536),i=0,j=!1,k=!1,l=null;c.then(()=>{j=!0},a=>{l=a instanceof Error?a:Error(String(a)),j=!0});let m=()=>{k=!0};d&&(d.aborted?k=!0:d.addEventListener("abort",m,{once:!0}));let n=!1;try{for(;!k;){let{bytesRead:a}=await g.read(h,0,h.length,i);if(a>0){let c=h.subarray(0,a);i+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.indexOf(b)+b.length;e.enqueue(new Uint8Array(c.subarray(0,a)));break}e.enqueue(new Uint8Array(c))}else if(j){l&&(e.error(l),n=!0);break}else await y(25)}}catch(a){e.error(a),n=!0}finally{d&&d.removeEventListener("abort",m),await g.close().catch(()=>{}),await (0,f.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,f.rmdir)(b).catch(()=>{}),n||e.close()}}})}(r,h,A,i);return{status:200,headers:new Headers({"Content-Type":"text/event-stream","Cache-Control":"no-cache"}),text:null,body:B}}async function v(a){await (0,f.unlink)(a).catch(()=>{});let b=a.substring(0,a.lastIndexOf("/"));await (0,f.rmdir)(b).catch(()=>{})}async function w(a,b){let c=await (0,f.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function x(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,f.stat)(a)).size>0)return!0}catch{}if(d)break;await y(25)}return!1}function y(a){return new Promise(b=>setTimeout(b,a))}},28537:(a,b,c)=>{c.d(b,{Kt:()=>m});var d=c(97510),e=c(43659),f=c(50954);let g="https://www.kimi.com",h=`${g}/apiv2/kimi.gateway.chat.v1.ChatService/Chat`,i="SCENARIO_K2D5";function j(a,b){if(b+5>a.length)return{consumed:0,frame:null};let c=a[b],d=a[b+1]<<24|a[b+2]<<16|a[b+3]<<8|a[b+4],e=d<0?d+0x100000000:d;if(e>8388608)return{consumed:-1,frame:null};if(b+5+e>a.length)return{consumed:0,frame:null};let f=a.subarray(b+5,b+5+e),g=null;if(e>0)try{g=JSON.parse(new TextDecoder().decode(f))}catch{g=null}return{consumed:5+e,frame:{flags:c,message:g}}}function k(a){if(!a)return null;let b=String(a.op??""),c=String(a.mask??""),d=a.block??{};if("append"===b){if("block.text.content"===c){let a=String((d.text??{}).content??"");return a?{kind:"text",text:a}:null}if("block.think.content"===c){let a=String((d.think??{}).content??"");return a?{kind:"think",text:a}:null}return null}if("set"===b){if("block.text"===c){let a=String((d.text??{}).content??"");return a?{kind:"text",text:a}:null}if("block.think"===c){let a=String((d.think??{}).content??"");return a?{kind:"think",text:a}:null}}return null}function l(a){if(!a)return!1;let b=a.message??null;return!!b&&"MESSAGE_STATUS_COMPLETED"===String(b.status??"")&&"assistant"===String(b.role??"")}class m extends d.Hv{constructor(){super("kimi-web",{id:"kimi-web",baseUrl:g})}buildKimiHeaders(a){let b={"Content-Type":"application/connect+json",Accept:"*/*","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",Origin:g,Referer:`${g}/`,"connect-protocol-version":"1"};return a&&(b.Authorization=`Bearer ${a}`,b.Cookie=`kimi-auth=${a}`),b}buildRequestBody(a,b){return JSON.stringify({scenario:i,tools:[{type:"TOOL_TYPE_SEARCH",search:{}},{type:"TOOL_TYPE_CRON_JOB"}],message:{role:"user",blocks:[{message_id:"",text:{content:a}}],scenario:i},options:{thinking:b,enable_plugin:!0}})}async execute(a){let b,c,d,g,{body:i,credentials:m,signal:n,stream:o}=a,p=i||{},q=String(m?.apiKey??"").trim(),r=(0,f.Lf)(q);if(!r)return(0,e.DV)(400,"Missing Kimi session — paste the full Cookie header from www.kimi.com (must contain kimi-auth=<JWT>) or just the JWT itself.",i,h);let s=p.messages||[],t=p.model||"kimi-default",u=/k2\.6|k2-6|think/i.test(t),v="none"!==p.reasoning_effort&&u,w=function(a){let b="",c="";for(let d of a){let a="string"==typeof d.content?d.content:JSON.stringify(d.content??"");"system"===d.role?b+=(b?"\n\n":"")+a:"user"===d.role?c=c?`${c}
|
|
224
224
|
|
|
225
225
|
${a}`:a:"assistant"===d.role&&(c=c?`${c}
|
|
226
226
|
|
|
@@ -228,7 +228,7 @@ Assistant: ${a}`:`Assistant: ${a}`)}return b?`${b}
|
|
|
228
228
|
|
|
229
229
|
${c}`:c}(s),x=this.buildRequestBody(w,v),y=this.buildKimiHeaders(r),z=((d=new Uint8Array(5+(c=new TextEncoder().encode(x)).length))[0]=0,g=c.length,d[1]=g>>>24&255,d[2]=g>>>16&255,d[3]=g>>>8&255,d[4]=255&g,d.set(c,5),d);try{b=await fetch(h,{method:"POST",headers:y,body:new Uint8Array(z),signal:n})}catch(a){return(0,e.DV)(502,`Kimi fetch failed: ${a instanceof Error?a.message:"unknown"}`,i,h)}if(!b.ok){let a=await b.text().catch(()=>"");return(0,e.DV)(b.status,`Kimi error: ${(0,e.sanitizeErrorMessage)(a)}`,i,h)}let A=new TextEncoder,B=`chatcmpl-kimi-${Date.now()}`,C=Math.floor(Date.now()/1e3),D=(a,b,c=null)=>{a.enqueue(A.encode(`data: ${JSON.stringify({id:B,object:"chat.completion.chunk",created:C,model:t,choices:[{index:0,delta:b,finish_reason:c}]})}
|
|
230
230
|
|
|
231
|
-
`))},E=b.body??new ReadableStream({start:a=>a.close()});if(o){let a=new ReadableStream({async start(a){let b=E.getReader(),c=new Uint8Array(0),d=!1;try{for(;;){let{done:e,value:f}=await b.read();if(e)break;if(f){let b=new Uint8Array(c.length+f.length);b.set(c,0),b.set(f,c.length),c=b;let e=0;for(;e<c.length;){let{consumed:b,frame:f}=j(c,e);if(-1===b)return void a.error(Error("Kimi Connect frame exceeded MAX_FRAME_LEN"));if(0===b)break;if(e+=b,!f?.message)continue;let g=k(f.message);if(g&&(d||(d=!0,D(a,{role:"assistant",content:""})),"think"===g.kind?D(a,{reasoning_content:g.text}):D(a,{content:g.text})),l(f.message)){D(a,{},"stop"),a.enqueue(A.encode("data: [DONE]\n\n")),a.close();return}}c=c.subarray(e)}}d||D(a,{role:"assistant",content:""}),D(a,{},"stop"),a.enqueue(A.encode("data: [DONE]\n\n")),a.close()}catch(b){if(!n?.aborted)try{a.error(b)}catch{}}}});return{response:new Response(a,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:h,headers:y,transformedBody:JSON.parse(x)}}let F="",G="",H=E.getReader(),I=new Uint8Array(0);try{for(;;){let{done:a,value:b}=await H.read();if(a)break;if(!b)continue;let c=new Uint8Array(I.length+b.length);c.set(I,0),c.set(b,I.length),I=c;let d=0;for(;d<I.length;){let{consumed:a,frame:b}=j(I,d);if(-1===a||0===a)break;if(d+=a,!b?.message)continue;let c=k(b.message);if(c&&("think"===c.kind?G+=c.text:F+=c.text),l(b.message)){d=I.length;break}}I=I.subarray(d)}}catch{}let J={role:"assistant",content:F};return G&&(J.reasoning_content=G),{response:new Response(JSON.stringify({id:B,object:"chat.completion",created:C,model:t,choices:[{index:0,message:J,finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:h,headers:y,transformedBody:JSON.parse(x)}}}},30973:(a,b,c)=>{
|
|
231
|
+
`))},E=b.body??new ReadableStream({start:a=>a.close()});if(o){let a=new ReadableStream({async start(a){let b=E.getReader(),c=new Uint8Array(0),d=!1;try{for(;;){let{done:e,value:f}=await b.read();if(e)break;if(f){let b=new Uint8Array(c.length+f.length);b.set(c,0),b.set(f,c.length),c=b;let e=0;for(;e<c.length;){let{consumed:b,frame:f}=j(c,e);if(-1===b)return void a.error(Error("Kimi Connect frame exceeded MAX_FRAME_LEN"));if(0===b)break;if(e+=b,!f?.message)continue;let g=k(f.message);if(g&&(d||(d=!0,D(a,{role:"assistant",content:""})),"think"===g.kind?D(a,{reasoning_content:g.text}):D(a,{content:g.text})),l(f.message)){D(a,{},"stop"),a.enqueue(A.encode("data: [DONE]\n\n")),a.close();return}}c=c.subarray(e)}}d||D(a,{role:"assistant",content:""}),D(a,{},"stop"),a.enqueue(A.encode("data: [DONE]\n\n")),a.close()}catch(b){if(!n?.aborted)try{a.error(b)}catch{}}}});return{response:new Response(a,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:h,headers:y,transformedBody:JSON.parse(x)}}let F="",G="",H=E.getReader(),I=new Uint8Array(0);try{for(;;){let{done:a,value:b}=await H.read();if(a)break;if(!b)continue;let c=new Uint8Array(I.length+b.length);c.set(I,0),c.set(b,I.length),I=c;let d=0;for(;d<I.length;){let{consumed:a,frame:b}=j(I,d);if(-1===a||0===a)break;if(d+=a,!b?.message)continue;let c=k(b.message);if(c&&("think"===c.kind?G+=c.text:F+=c.text),l(b.message)){d=I.length;break}}I=I.subarray(d)}}catch{}let J={role:"assistant",content:F};return G&&(J.reasoning_content=G),{response:new Response(JSON.stringify({id:B,object:"chat.completion",created:C,model:t,choices:[{index:0,message:J,finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:h,headers:y,transformedBody:JSON.parse(x)}}}},30973:(a,b,c)=>{c.d(b,{G:()=>w});var d=c(77598),e=c(97510),f=c(72221),g=c(43659);let h="https://chatapi.innerai.com/chat",i="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",j=new Map,k=new Map;function l(a,b){let c=a.get(b);if(void 0!==c)return a.delete(b),a.set(b,c),c}function m(a,b,c){for(a.has(b)&&a.delete(b),a.set(b,c);a.size>1e3;){let b=a.keys().next().value;if(void 0===b)break;a.delete(b)}}function n(a){return(0,d.createHash)("sha256").update(a).digest("hex")}function o(a){try{let b=a.split(".");if(b.length<2)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=c+"=".repeat((4-c.length%4)%4);return JSON.parse(atob(d))}catch{return null}}function p(a,b,c){return{response:new Response(JSON.stringify({error:{message:(0,g.sanitizeErrorMessage)(b),type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:h,headers:{},transformedBody:c}}function q(a,b,c){let d={"Content-Type":"application/json","User-Agent":i,Cookie:`token=${a}`,"USER-TOKEN":a,"DEVICE-ID":c,Origin:"https://app.innerai.com",Referer:"https://app.innerai.com/"};return b&&(d["USER-EMAIL"]=b),d}async function r(a,b,c){let d=n(a),e=l(j,d);if(e)return e;let f=o(a),g=String(f?.device_id??f?.deviceId??f?.["device-id"]??f?.did??"").trim(),h={Cookie:`token=${a}`,"USER-TOKEN":a,"User-Agent":i,Origin:"https://app.innerai.com",Referer:"https://app.innerai.com/"};g&&(h["DEVICE-ID"]=g);let k="";try{let a=await fetch("https://platformapi.innerai.com/api/v1/users/profile",{headers:h,signal:c??void 0});if(a.ok){let b=await a.json().catch(()=>null);k=String(b?.data?.email??b?.user?.email??b?.profile?.email??b?.email??"").trim()}}catch{}!k&&b&&(k=b),!k&&"string"==typeof f?.sub&&f.sub.includes("@")&&(k=f.sub);let p={email:k,deviceId:g};return m(j,d,p),p}class s extends Error{constructor(a,b){super(`Inner.ai /ai-models returned HTTP ${a}`),this.status=a,this.responsePreview=b,this.name="InnerAiModelsError"}}async function t(a,b,c,d){let e=n(a),f=l(k,e);if(f&&Date.now()<f.expiresAt)return f.models;let g=await fetch("https://platformapi.innerai.com/api/v1/ai_models",{headers:q(a,c,b),signal:d??void 0});if(!g.ok){let b=await g.text().catch(()=>""),c=new s(g.status,b.slice(0,200));throw(401===g.status||403===g.status)&&j.delete(n(a)),c}let h=await g.json().catch(()=>null),i=[];Array.isArray(h)?i=h:Array.isArray(h?.data)?i=h.data:Array.isArray(h?.ai_models)&&(i=h.ai_models);let p=String(o(a)?.plan??o(a)?.tier??o(a)?.subscription??"").toLowerCase(),r=p.includes("ultra")||p.includes("enterprise"),t=r||p.includes("pro")||p.includes("plus"),u=/image|video|audio|img|vid|sound|music|voice|tts|stt|track|clip|avatar|cartoon|flux|stable.diff|recraft|ideogram|leonardo|magnific|bria|seedream|luma|kling|pika|veo|wan-|heygen|did-|vidu|pixverse|sora-|gen-[0-9]|playground|gemini-fal|gamma|lyria|clothes|whisper/i,v=i.filter(a=>{if(!1===a.enable||a.unavailable_api||a.ultra_only&&!r||a.pro_only&&!t)return!1;let b=Array.isArray(a.ai_model_categories)?a.ai_model_categories:null;return b&&b.length>0?b.some(a=>"text"===String(a.unique_identifier??a.name??"").toLowerCase()):!u.test(a.llm_model)});return m(k,e,{models:v,expiresAt:Date.now()+36e5}),v}class u extends Error{constructor(a,b,c){super(c),this.status=a,this.code=b,this.name="InnerAiStreamError"}}async function v(a){let b=new TextDecoder,c=a.getReader(),d="",e="";for(;;){let{done:a,value:f}=await c.read();if(a)break;let g=(d+=b.decode(f,{stream:!0})).split("\n");for(let a of(d=g.pop()??"",g)){let b;if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(!c||"[DONE]"===c)continue;try{b=JSON.parse(c)}catch{continue}let d=b.type;if("text"===d&&"string"==typeof b.item){e+=b.item;continue}if("missing_credits"===d||"reached_limit"===d||"rate_limit_reached"===d||"rate_limit_longer_reached"===d){let a="missing_credits"===d?"Inner.ai: not enough credits":"reached_limit"===d?"Inner.ai: usage limit reached":"Inner.ai: rate limit reached — try again later";throw new u(429,String(d),a)}}}return e}class w extends e.Hv{constructor(){super("inner-ai",{id:"inner-ai",baseUrl:"https://chatapi.innerai.com"})}async execute(a){let b,c,d,{body:e,credentials:i,signal:k,stream:l}=a,m=e||{},o=String(i?.apiKey??"").trim();if(!o)return p(401,"Missing Inner.ai token — paste your token cookie from DevTools → Application → Cookies → .innerai.com",e);let{token:w,credEmail:x}=function(a){let b=a.trim(),c=b.indexOf("="),d=c>0&&!b.startsWith("eyJ")?b.slice(c+1).trim():b,e=d.lastIndexOf(" ");if(e>0){let a=d.slice(e+1).trim();if(a.includes("@"))return{token:d.slice(0,e).trim(),credEmail:a}}return{token:d,credEmail:""}}(o);try{b=await r(w,x,k)}catch(b){let a=b instanceof Error?b.message:"Failed to authenticate with Inner.ai";return j.delete(n(w)),p(401,a,e)}let{email:y,deviceId:z}=b,A=String(m.model??"").trim()||"gpt-4o",B=[];try{B=await t(w,z,y,k)}catch(a){if(a instanceof s&&(401===a.status||403===a.status))return p(a.status,"Inner.ai /ai-models authentication failed — re-paste your token cookie",e);console.warn(`[InnerAI] /ai-models fetch failed (status=${a instanceof s?a.status:"n/a"}) — falling back to synthetic model entry`)}let C=function(a,b){if(0===a.length)return null;let c=b.toLowerCase();return a.find(a=>a.llm_model===b)??a.find(a=>a.llm_model.toLowerCase()===c)??a.find(a=>a.llm_model.toLowerCase().includes(c))??null}(B,A)??{id:"",llm_model:A},D=Array.isArray(m.messages)?m.messages:[],{hasTools:E,requestedTools:F,effectiveMessages:G}=(0,f.S$)(m,D),H=function(a){let b=[];for(let c of a){let a="string"==typeof c.content?c.content:Array.isArray(c.content)?c.content.filter(a=>a?.type==="text").map(a=>String(a.text??"")).join(""):"";a.trim()&&("system"===c.role?b.push(`[Instructions]
|
|
232
232
|
${a}`):"assistant"===c.role?b.push(`[Assistant]
|
|
233
233
|
${a}`):b.push(a))}return b.join("\n\n")}(G);if(!H.trim())return p(400,"No message content to send",e);let I={message:H,session_id:crypto.randomUUID(),context_type:"no_context",ai_model:{id:C?.id||void 0,llm_model:C?.llm_model??A},is_extension:!1,env:"production",temporary:!0,use_web_search:!1,knowledge_list:[]},J=q(w,y,z);try{c=await fetch(h,{method:"POST",headers:J,body:JSON.stringify(I),signal:k??void 0})}catch(b){let a=b instanceof Error?b.message:"Request failed";return p(502,`Inner.ai request failed: ${(0,g.sanitizeErrorMessage)(a)}`,e)}if(401===c.status||403===c.status)return j.delete(n(w)),p(c.status,"Inner.ai authentication failed — re-paste your token cookie",e);if(!c.ok){let a=await c.text().catch(()=>"");return p(c.status,`Inner.ai returned HTTP ${c.status}: ${(0,g.sanitizeErrorMessage)(a)}`,e)}if(!c.body)return p(502,"Inner.ai returned an empty response",e);let K=C?.llm_model??A;if(!1!==l){var L;let a,b,d,e,f,i,j;return{response:new Response((L=c.body,a=new TextEncoder,b=new TextDecoder,d=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e=Math.floor(Date.now()/1e3),f="",i=!1,j=(a,b)=>`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:K,choices:[{index:0,delta:a,finish_reason:b??null}]})}
|
|
234
234
|
|
|
@@ -236,11 +236,11 @@ ${a}`):b.push(a))}return b.join("\n\n")}(G);if(!H.trim())return p(400,"No messag
|
|
|
236
236
|
|
|
237
237
|
`)),c.enqueue(a.encode("data: [DONE]\n\n")),c.close();return}}}}catch(d){let b=d instanceof Error?d.message:String(d||"Stream error");c.enqueue(a.encode(`data: ${JSON.stringify({error:{message:(0,g.sanitizeErrorMessage)(b),type:"upstream_error"}})}
|
|
238
238
|
|
|
239
|
-
`))}i||c.enqueue(a.encode(j({role:"assistant",content:""}))),c.enqueue(a.encode(j({},"stop"))),c.enqueue(a.encode("data: [DONE]\n\n")),c.close()}})),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:h,headers:J,transformedBody:I}}try{d=await v(c.body)}catch(a){if(a instanceof u)return p(a.status,a.message,e);throw a}let M=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;if(E){let{content:a,toolCalls:b,finishReason:c}=(0,f.mU)(d,F,"inner");if(b)return{response:new Response(JSON.stringify({id:M,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:K,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:b},finish_reason:c}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:h,headers:J,transformedBody:I};d=a}return{response:new Response(JSON.stringify({id:M,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:K,choices:[{index:0,message:{role:"assistant",content:d},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{headers:{"Content-Type":"application/json"}}),url:h,headers:J,transformedBody:I}}}},31655:(a,b,c)=>{
|
|
239
|
+
`))}i||c.enqueue(a.encode(j({role:"assistant",content:""}))),c.enqueue(a.encode(j({},"stop"))),c.enqueue(a.encode("data: [DONE]\n\n")),c.close()}})),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:h,headers:J,transformedBody:I}}try{d=await v(c.body)}catch(a){if(a instanceof u)return p(a.status,a.message,e);throw a}let M=`chatcmpl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;if(E){let{content:a,toolCalls:b,finishReason:c}=(0,f.mU)(d,F,"inner");if(b)return{response:new Response(JSON.stringify({id:M,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:K,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:b},finish_reason:c}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:h,headers:J,transformedBody:I};d=a}return{response:new Response(JSON.stringify({id:M,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:K,choices:[{index:0,message:{role:"assistant",content:d},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{headers:{"Content-Type":"application/json"}}),url:h,headers:J,transformedBody:I}}}},31655:(a,b,c)=>{c.d(b,{L:()=>l});var d=c(77598),e=c(97510),f=c(61408);let g="chatdolphin";function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a){return`data: ${JSON.stringify(a)}
|
|
240
240
|
|
|
241
|
-
`}function j(a,b,c,d){let e=new TextEncoder;return new Response(new ReadableStream({start(f){f.enqueue(e.encode(i({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]}))),a&&f.enqueue(e.encode(i({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:a},finish_reason:null}]}))),f.enqueue(e.encode(i({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}))),f.enqueue(e.encode("data: [DONE]\n\n")),f.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})}function k(a,b){return new Response(JSON.stringify({error:{message:b,type:401===a||403===a?"authentication_error":429===a?"rate_limit_error":"api_error"}}),{status:a,headers:{"Content-Type":"application/json"}})}class l extends e.Hv{constructor(){super("nlpcloud",f.xq.nlpcloud||{format:"openai"})}buildUrl(a,b,c=0,d=null){let e,f=(e=String(("string"==typeof d?.providerSpecificData?.baseUrl?d.providerSpecificData.baseUrl:this.config.baseUrl)||"https://api.nlpcloud.io/v1/gpu").trim().replace(/\/+$/,"")).endsWith("/chatbot")?e.replace(/\/[^/]+\/chatbot$/,""):e.endsWith("/v1/gpu")?e:e.endsWith("/v1")?`${e}/gpu`:e;return`${f}/${encodeURIComponent(a||g)}/chatbot`}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return c&&(d.Authorization=`Token ${c}`),d.Accept=b?"text/event-stream":"application/json",d}buildRequestPayload(a,b,c){let d=h(b),e=function(a){if(!Array.isArray(a))return{input:"",context:null,history:[]};let b=[],c=[];for(let e of a){var d;let a=String(e?.role||"user").toLowerCase(),f="string"==typeof(d=e?.content)?d.trim():Array.isArray(d)?d.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";if(f){if("system"===a||"developer"===a){b.push(f);continue}("user"===a||"assistant"===a)&&c.push({role:a,text:f})}}let e=[...c].map(a=>a.role).lastIndexOf("user");if(-1===e)return{input:"",context:b.length>0?b.join("\n\n"):null,history:[]};let f=[],g=null;for(let a=0;a<e;a+=1){let b=c[a];if("user"===b.role){g=b.text;continue}"assistant"===b.role&&g&&(f.push({input:g,response:b.text}),g=null)}return{input:c[e]?.text||"",context:b.length>0?b.join("\n\n"):null,history:f}}(Array.isArray(d.messages)?d.messages:[]);return e.input?{input:e.input,...e.context?{context:e.context}:{},...e.history.length>0?{history:e.history}:{},...c?{stream:!0}:{},..."number"==typeof d.temperature?{temperature:d.temperature}:{},..."number"==typeof d.top_p?{top_p:d.top_p}:{},model:a}:null}async transformEventStreamToSse(a,b){let c=a.body;if(!c)return j("",b,`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,Math.floor(Date.now()/1e3));let e=new TextDecoder,f=new TextEncoder,g=`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,k=Math.floor(Date.now()/1e3);return new Response(new ReadableStream({async start(a){a.enqueue(f.encode(i({id:g,object:"chat.completion.chunk",created:k,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})));let d=c.getReader(),j="",l=!1,m=()=>{l||(l=!0,a.enqueue(f.encode(i({id:g,object:"chat.completion.chunk",created:k,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}))),a.enqueue(f.encode("data: [DONE]\n\n")),a.close())},n=c=>{let d=c.replace(/\r/g,"").split("\n"),e=[];for(let a of d)if(a){if(a.startsWith("data:")){e.push(a.slice(5).trimStart());continue}a.startsWith("event:")||a.startsWith("id:")||a.startsWith(":")||e.push(a.trim())}let j=e.join("\n").trim();if(j){var l;if("[DONE]"===j)return void m();(l=function(a){let b=a.trim();if(!b||"[DONE]"===b)return"";if(b.startsWith("{"))try{let a=h(JSON.parse(b));return("string"==typeof a.response?a.response:"string"==typeof a.content?a.content:"string"==typeof a.token?a.token:"").trim()}catch{}return b}(j))&&a.enqueue(f.encode(i({id:g,object:"chat.completion.chunk",created:k,model:b,choices:[{index:0,delta:{content:l},finish_reason:null}]})))}};try{for(;;){let{done:a,value:b}=await d.read();if(a)break;j+=e.decode(b,{stream:!0});let c=(j=j.replace(/\r\n/g,"\n")).indexOf("\n\n");for(;-1!==c;){let a=j.slice(0,c);j=j.slice(c+2),n(a),c=j.indexOf("\n\n")}}let a=j.trim();a&&n(a),m()}catch(b){a.error(b)}finally{d.releaseLock()}}}),{status:a.status,headers:{"Content-Type":"text/event-stream"}})}async execute({model:a,body:b,stream:c,credentials:f,signal:i,upstreamExtraHeaders:l}){let m=a||g,n=this.buildRequestPayload(m,b,c),o=this.buildUrl(m,c,0,f),p=this.buildHeaders(f,c);if((0,e._F)(p,l),!n)return{response:k(400,"NLP Cloud requests require at least one user message."),url:o,headers:p,transformedBody:b};try{var q,r,s,t;let a,b=await fetch(o,{method:"POST",headers:p,body:JSON.stringify(n),signal:i});if(!b.ok){let a=await b.text();return{response:k(b.status,`NLP Cloud API failed with status ${b.status}: ${a||"Unknown error"}`),url:o,headers:p,transformedBody:n}}if(c){if((b.headers.get("Content-Type")||"").includes("application/json")){let a=h(await b.json()),c="string"==typeof a.response?a.response:"";return{response:j(c,m,`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,Math.floor(Date.now()/1e3)),url:o,headers:p,transformedBody:n}}return{response:await this.transformEventStreamToSse(b,m),url:o,headers:p,transformedBody:n}}let e=h(await b.json());return{response:(q="string"==typeof e.response?e.response:"",r=m,s=`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,t=Math.floor(Date.now()/1e3),a=Math.max(1,Math.ceil(q.length/4)),new Response(JSON.stringify({id:s,object:"chat.completion",created:t,model:r,choices:[{index:0,message:{role:"assistant",content:q},finish_reason:"stop"}],usage:{prompt_tokens:a,completion_tokens:a,total_tokens:2*a}}),{status:200,headers:{"Content-Type":"application/json"}})),url:o,headers:p,transformedBody:n}}catch(b){let a=b instanceof Error?b.message:String(b||"Unknown error");return{response:k(502,`NLP Cloud fetch error: ${a}`),url:o,headers:p,transformedBody:n}}}}},33085:(a,b,c)=>{
|
|
241
|
+
`}function j(a,b,c,d){let e=new TextEncoder;return new Response(new ReadableStream({start(f){f.enqueue(e.encode(i({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]}))),a&&f.enqueue(e.encode(i({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:a},finish_reason:null}]}))),f.enqueue(e.encode(i({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}))),f.enqueue(e.encode("data: [DONE]\n\n")),f.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})}function k(a,b){return new Response(JSON.stringify({error:{message:b,type:401===a||403===a?"authentication_error":429===a?"rate_limit_error":"api_error"}}),{status:a,headers:{"Content-Type":"application/json"}})}class l extends e.Hv{constructor(){super("nlpcloud",f.xq.nlpcloud||{format:"openai"})}buildUrl(a,b,c=0,d=null){let e,f=(e=String(("string"==typeof d?.providerSpecificData?.baseUrl?d.providerSpecificData.baseUrl:this.config.baseUrl)||"https://api.nlpcloud.io/v1/gpu").trim().replace(/\/+$/,"")).endsWith("/chatbot")?e.replace(/\/[^/]+\/chatbot$/,""):e.endsWith("/v1/gpu")?e:e.endsWith("/v1")?`${e}/gpu`:e;return`${f}/${encodeURIComponent(a||g)}/chatbot`}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return c&&(d.Authorization=`Token ${c}`),d.Accept=b?"text/event-stream":"application/json",d}buildRequestPayload(a,b,c){let d=h(b),e=function(a){if(!Array.isArray(a))return{input:"",context:null,history:[]};let b=[],c=[];for(let e of a){var d;let a=String(e?.role||"user").toLowerCase(),f="string"==typeof(d=e?.content)?d.trim():Array.isArray(d)?d.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";if(f){if("system"===a||"developer"===a){b.push(f);continue}("user"===a||"assistant"===a)&&c.push({role:a,text:f})}}let e=[...c].map(a=>a.role).lastIndexOf("user");if(-1===e)return{input:"",context:b.length>0?b.join("\n\n"):null,history:[]};let f=[],g=null;for(let a=0;a<e;a+=1){let b=c[a];if("user"===b.role){g=b.text;continue}"assistant"===b.role&&g&&(f.push({input:g,response:b.text}),g=null)}return{input:c[e]?.text||"",context:b.length>0?b.join("\n\n"):null,history:f}}(Array.isArray(d.messages)?d.messages:[]);return e.input?{input:e.input,...e.context?{context:e.context}:{},...e.history.length>0?{history:e.history}:{},...c?{stream:!0}:{},..."number"==typeof d.temperature?{temperature:d.temperature}:{},..."number"==typeof d.top_p?{top_p:d.top_p}:{},model:a}:null}async transformEventStreamToSse(a,b){let c=a.body;if(!c)return j("",b,`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,Math.floor(Date.now()/1e3));let e=new TextDecoder,f=new TextEncoder,g=`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,k=Math.floor(Date.now()/1e3);return new Response(new ReadableStream({async start(a){a.enqueue(f.encode(i({id:g,object:"chat.completion.chunk",created:k,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})));let d=c.getReader(),j="",l=!1,m=()=>{l||(l=!0,a.enqueue(f.encode(i({id:g,object:"chat.completion.chunk",created:k,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}))),a.enqueue(f.encode("data: [DONE]\n\n")),a.close())},n=c=>{let d=c.replace(/\r/g,"").split("\n"),e=[];for(let a of d)if(a){if(a.startsWith("data:")){e.push(a.slice(5).trimStart());continue}a.startsWith("event:")||a.startsWith("id:")||a.startsWith(":")||e.push(a.trim())}let j=e.join("\n").trim();if(j){var l;if("[DONE]"===j)return void m();(l=function(a){let b=a.trim();if(!b||"[DONE]"===b)return"";if(b.startsWith("{"))try{let a=h(JSON.parse(b));return("string"==typeof a.response?a.response:"string"==typeof a.content?a.content:"string"==typeof a.token?a.token:"").trim()}catch{}return b}(j))&&a.enqueue(f.encode(i({id:g,object:"chat.completion.chunk",created:k,model:b,choices:[{index:0,delta:{content:l},finish_reason:null}]})))}};try{for(;;){let{done:a,value:b}=await d.read();if(a)break;j+=e.decode(b,{stream:!0});let c=(j=j.replace(/\r\n/g,"\n")).indexOf("\n\n");for(;-1!==c;){let a=j.slice(0,c);j=j.slice(c+2),n(a),c=j.indexOf("\n\n")}}let a=j.trim();a&&n(a),m()}catch(b){a.error(b)}finally{d.releaseLock()}}}),{status:a.status,headers:{"Content-Type":"text/event-stream"}})}async execute({model:a,body:b,stream:c,credentials:f,signal:i,upstreamExtraHeaders:l}){let m=a||g,n=this.buildRequestPayload(m,b,c),o=this.buildUrl(m,c,0,f),p=this.buildHeaders(f,c);if((0,e._F)(p,l),!n)return{response:k(400,"NLP Cloud requests require at least one user message."),url:o,headers:p,transformedBody:b};try{var q,r,s,t;let a,b=await fetch(o,{method:"POST",headers:p,body:JSON.stringify(n),signal:i});if(!b.ok){let a=await b.text();return{response:k(b.status,`NLP Cloud API failed with status ${b.status}: ${a||"Unknown error"}`),url:o,headers:p,transformedBody:n}}if(c){if((b.headers.get("Content-Type")||"").includes("application/json")){let a=h(await b.json()),c="string"==typeof a.response?a.response:"";return{response:j(c,m,`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,Math.floor(Date.now()/1e3)),url:o,headers:p,transformedBody:n}}return{response:await this.transformEventStreamToSse(b,m),url:o,headers:p,transformedBody:n}}let e=h(await b.json());return{response:(q="string"==typeof e.response?e.response:"",r=m,s=`chatcmpl-nlpcloud-${(0,d.randomUUID)()}`,t=Math.floor(Date.now()/1e3),a=Math.max(1,Math.ceil(q.length/4)),new Response(JSON.stringify({id:s,object:"chat.completion",created:t,model:r,choices:[{index:0,message:{role:"assistant",content:q},finish_reason:"stop"}],usage:{prompt_tokens:a,completion_tokens:a,total_tokens:2*a}}),{status:200,headers:{"Content-Type":"application/json"}})),url:o,headers:p,transformedBody:n}}catch(b){let a=b instanceof Error?b.message:String(b||"Unknown error");return{response:k(502,`NLP Cloud fetch error: ${a}`),url:o,headers:p,transformedBody:n}}}}},33085:(a,b,c)=>{c.d(b,{c:()=>h});var d=c(97510),e=c(43659);let f="https://www.doubao.com",g=`${f}/api/chat`;class h extends d.Hv{constructor(){super("doubao-web",{id:"doubao-web",baseUrl:"https://www.doubao.com"})}async execute(a){let b,{body:c,credentials:d,signal:h,stream:i}=a,j=c||{},k=(0,e.sY)(String(d?.apiKey??"").trim()),l=j.messages||[],m=j.model||"doubao-default",n={messages:l.map(a=>({role:a.role,content:a.content})),model:m,stream:i,max_tokens:j.max_tokens||4096},o={"Content-Type":"application/json","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",Accept:i?"text/event-stream":"application/json",Referer:`${f}/`,Origin:f};k&&(o.Cookie=k);try{b=await fetch(g,{method:"POST",headers:o,body:JSON.stringify(n),signal:h})}catch(a){return(0,e.DV)(502,`Doubao fetch failed: ${a instanceof Error?a.message:"unknown"}`,c,g)}if(!b.ok){let a=await b.text().catch(()=>"");return(0,e.DV)(b.status,`Doubao error: ${a}`,c,g)}if(!i){let a=await b.json(),c=a?.choices?.[0]?.message?.content||a?.content||"";return{response:new Response(JSON.stringify({id:`chatcmpl-doubao-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,message:{role:"assistant",content:c},finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:g,headers:o,transformedBody:n}}let p=new TextEncoder,q=new TextDecoder;return{response:new Response(new ReadableStream({async start(a){let c=b.body?.getReader();if(!c)return void a.close();let d="";try{for(;;){let{done:b,value:e}=await c.read();if(b)break;let f=(d+=q.decode(e,{stream:!0})).split("\n");for(let b of(d=f.pop()||"",f)){if(!b.startsWith("data:"))continue;let c=b.slice(5).trim();if("[DONE]"===c){a.enqueue(p.encode("data: [DONE]\n\n"));continue}try{let b=JSON.parse(c),d=b.choices?.[0]?.delta?.content||"";if(d){let b={id:`chatcmpl-doubao-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,delta:{content:d},finish_reason:null}]};a.enqueue(p.encode(`data: ${JSON.stringify(b)}
|
|
242
242
|
|
|
243
|
-
`))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},34156:(a,b,c)=>{"use strict";c.d(b,{f:()=>f});var d=c(74350),e=c(9427);class f extends d.L{constructor(){super("azure-openai")}buildUrl(a,b,c=0,d=null){var f;let g,h=d?.providerSpecificData||{},i=(f=h.baseUrl||this.config.baseUrl,(g=(0,e.o)((f||"").trim()))?g.replace(/\/openai$/i,"").replace(/\/openai\/deployments\/[^/]+\/chat\/completions[^/]*$/i,""):""),j="string"==typeof h.apiVersion&&h.apiVersion.trim()?h.apiVersion.trim():"2024-12-01-preview";return`${i}/openai/deployments/${encodeURIComponent(a)}/chat/completions?api-version=${encodeURIComponent(j)}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json","api-key":a?.apiKey||a?.accessToken||""};return c.Accept=b?"text/event-stream":"application/json",c}}},35538:(a,b,c)=>{"use strict";c.d(b,{P:()=>k});var d=c(97510),e=c(61408),f=c(57247);let g=[/deepseek/i,/\bkimi\b/i,/\bk2\b/i,/\bminimax\b/i];var h=c(95538),i=c(13568);let j=["low","medium","high","max"];class k extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai),this._requestFormat=null,this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0}syncAccountsFromCredentials(a){let b=a?.providerSpecificData,c=Array.isArray(b?.fingerprints)?b.fingerprints.filter(a=>"string"==typeof a):[],d=b?.accountProxies,e=Array.isArray(d)?new Map(d.map(a=>[a.fingerprint,a.proxy??null])):null;if(0===c.length){this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0;return}let f=new Map(this.accounts.map(a=>[a.fingerprint,a]));this.accounts=c.map(a=>{let b=f.get(a);return{fingerprint:a,cooldownUntil:b?.cooldownUntil??0,consecutiveFails:b?.consecutiveFails??0,proxy:e?e.get(a)??null:null}}),this.nextAccountIdx>=this.accounts.length&&(this.nextAccountIdx=0)}isAccountReady(a){return a.cooldownUntil<=Date.now()}pickAccount(){for(let a=0;a<this.accounts.length;a++){let b=(this.nextAccountIdx+a)%this.accounts.length,c=this.accounts[b];if(this.isAccountReady(c))return this.nextAccountIdx=(b+1)%this.accounts.length,c}let a=this.nextAccountIdx%this.accounts.length;return this.nextAccountIdx=(this.nextAccountIdx+1)%this.accounts.length,this.accounts[a]}markCooldown(a){a.consecutiveFails++;let b=Math.min(5e3*Math.pow(2,a.consecutiveFails-1),6e4);a.cooldownUntil=Date.now()+b+1e3*Math.random()}markSuccess(a){a.consecutiveFails=0}static maskAccountId(a){return a?`${a.slice(0,8)}…`:"direct"}async execute(a){this._requestFormat=(0,f.ux)(this.provider,a.model)||"openai";try{this.syncAccountsFromCredentials(a.credentials);let b=this.accounts.some(a=>null!==a.proxy);if(1===this.accounts.length&&!b)return await super.execute(a);let{log:c}=a,d=null;for(let b=0;b<this.accounts.length;b++){let e=this.pickAccount(),f=k.maskAccountId(e.fingerprint);c?.info?.("OPENCODE",`dispatch via account ${f} (idx ${b+1}/${this.accounts.length})`+(e.proxy?` through proxy ${e.proxy.host}:${e.proxy.port}`:" direct"));let g=await (0,h.jf)(e.proxy,()=>super.execute({...a,skipUpstreamRetry:!0}));d=g;let i=g.response.status;if(429===i){this.markCooldown(e),c?.warn?.("OPENCODE",`Rate limited (429) on account ${f}, rotating to next…`);continue}return this.markSuccess(e),g}return d??await super.execute(a)}finally{this._requestFormat=null}}buildUrl(a,b,c=0,d=null){let e=this.config.baseUrl;switch(this._requestFormat){case"claude":return`${e}/messages`;case"openai-responses":return`${e}/responses`;case"gemini":return`${e}/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:return`${e}/chat/completions`}}buildHeaders(a,b=!0,c,d){let e={"Content-Type":"application/json"},f=a?.apiKey||a?.accessToken;return f&&("claude"===this._requestFormat?e["x-api-key"]=f:e.Authorization=`Bearer ${f}`),"claude"===this._requestFormat&&(e["anthropic-version"]="2023-06-01"),b&&(e.Accept="text/event-stream"),c&&(0,i.G)(e,c,{synthesizeRequestId:!0}),e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(e&&"object"==typeof e&&Array.isArray(e.tools)&&e.tools.length>128&&(e.tools=e.tools.slice(0,128)),e&&"object"==typeof e&&!Array.isArray(e)){let b,c,d=e,f=(b=String(a||""),(c=j.find(a=>b.endsWith(`-${a}`)))&&"deepseek-v4-pro"===b.slice(0,-c.length-1).toLowerCase()?{baseModel:"deepseek-v4-pro",effort:c}:null);f&&(d.model=f.baseModel,void 0===d.reasoning_effort&&(d.reasoning_effort=f.effort))}return a&&"string"==typeof a&&g.some(b=>b.test(a))&&(e=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||!Array.isArray(a.messages))return a;let b=!1,c=a.messages.map(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"assistant"===a.role?"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0?a:(b=!0,{...a,reasoning_content:" "}):a);return b?{...a,messages:c}:a}(e)),e}}},36770:(a,b,c)=>{"use strict";c.d(b,{Gt:()=>i,Vv:()=>j});var d=c(77598);let e=new Map,f=0;function g(a){let b=e.get(a);b&&(f-=b.bytes.length,e.delete(a))}function h(a=Date.now()){for(let[b,c]of e)a>=c.expiresAt&&g(b)}function i(a,b,c=18e5,j){let k;h(),!function(a,b){for(;(e.size>=25||f+b>a)&&e.size>0;){let a=e.keys().next().value;if(!a)break;g(a)}}(!Number.isFinite(k=Number(process.env.OMNIROUTE_CGPT_WEB_IMAGE_CACHE_MAX_MB))||k<=0?0xa00000:Math.floor(1024*k*1024),a.length);let l=(0,d.randomUUID)().replace(/-/g,""),m=(0,d.createHash)("sha256").update(a).digest("hex");return e.set(l,{bytes:a,mime:b,expiresAt:Date.now()+c,context:j,bytesSha256:m}),f+=a.length,l}function j(a){let b;return(h(),!(b=e.get(a))?null:Date.now()>=b.expiresAt?(g(a),null):b)?.context??null}},39326:(a,b,c)=>{"use strict";let d;c.d(b,{id:()=>R,kG:()=>N,sO:()=>E,Az:()=>B});var e=c(97510),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(73136);class k{getCachedUint8Memory(){return this.cachedUint8Memory?.byteLength||(this.cachedUint8Memory=new Uint8Array(this.wasmInstance.memory.buffer)),this.cachedUint8Memory}encodeString(a,b,c){let d=a.length,e=b(d,1)>>>0,f=this.getCachedUint8Memory(),g=0;for(;g<d&&!(a.charCodeAt(g)>127);g++)f[e+g]=a.charCodeAt(g);if(g!==d){g>0&&(a=a.slice(g)),e=c(e,d,g+3*a.length,1)>>>0;let b=this.cachedTextEncoder.encodeInto(a,this.getCachedUint8Memory().subarray(e+g,e+g+3*a.length));g+=b.written,e=c(e,g+3*a.length,g,1)>>>0}return this.offset=g,e}calculateHash(a,b,c){try{let d=this.wasmInstance.__wbindgen_add_to_stack_pointer(-16),e=this.encodeString(a,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),f=this.offset,g=this.encodeString(b,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),h=this.offset;this.wasmInstance.wasm_solve(d,e,f,g,h,c);let i=new DataView(this.wasmInstance.memory.buffer),j=i.getInt32(d+0,!0),k=i.getFloat64(d+8,!0);return 0===j?void 0:k}finally{this.wasmInstance.__wbindgen_add_to_stack_pointer(16)}}async init(a){let b=await g().promises.readFile(a),{instance:c}=await WebAssembly.instantiate(b,{wbg:{}});this.wasmInstance=c.exports}constructor(){this.offset=0,this.cachedUint8Memory=null,this.cachedTextEncoder=new TextEncoder}}let l=null,m=!1;async function n(){if(m)return null;if(l)return l;try{let a=new k,b=i().join(i().dirname((0,j.fileURLToPath)("file:///home/giang/work/9router/open-sse/lib/deepseek-pow.js")),"sha3_wasm_bg.wasm");return await a.init(b),l=a,a}catch{return m=!0,null}}async function o(a,b,e,f,g){let h;if("DeepSeekHashV1"!==a)throw Error(`Unsupported: ${a}`);let i=`${e}_${g}_`,j=await n();if(j){let a=j.calculateHash(b,i,f);return void 0===a?-1:a}let k=(void 0===d&&(d=c(96369).U),d),l=((h={})._sponge=new k({capacity:256,padding:6}),h.update=a=>(h._sponge.absorb(Buffer.from(a,"utf8")),h),h.digest=a=>h._sponge.squeeze(6).toString(a||"hex"),h.copy=()=>{let a={};return a._sponge=h._sponge.copy(),a.update=b=>(a._sponge.absorb(Buffer.from(b,"utf8")),a),a.digest=b=>a._sponge.squeeze(6).toString(b||"hex"),a},h);l.update(i);for(let a=0;a<f;a++)if(l.copy().update(String(a)).digest("hex")===b)return a;return -1}var p=c(72221);function q(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let r=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function s(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 t(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let u=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function v(a){return"string"==typeof a&&a.length>0?a:null}var w=c(43659);let x="https://chat.deepseek.com",y=`${x}/api`,z=`${y}/v0/chat/completion`,A={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:x,Referer:`${x}/`,"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-App-Version":"20241129.1","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"1.8.0"},B=new Map,C=new Map;function D(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function E(a){let b=a?.apiKey||a?.accessToken;if("string"!=typeof b||0===b.length)return null;try{let a=JSON.parse(b);if("string"==typeof a?.value)return a.value}catch{}return b}function F(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 G(){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 H(a){let b=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at);if(b<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:b,signature:a.signature,target_path:a.target_path})).toString("base64")}function I(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function J(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function K(a,b){let c=a.replace(/FINISHED/g,"").replace(/^(SEARCH|WEB_SEARCH|SEARCHING)\s*/i,"");return J(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function L(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")}async function M(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=b||"deepseek-web",j=I(i),k=[],l=a=>{let b=K(a,i);if(!b)return;let c=h;!c&&j?c="thinking":!c&&J(i)&&(c="content"),"thinking"===c?g+=b:f+=b},m=(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")}l(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(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)m(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)m(a,!0);else d&&"object"==typeof d&&m(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")k.length=0,k.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);k[c]&&(k[c].cite_index=a.v)}}continue}if("string"==typeof d)l(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&&l(b)}}}catch{}}}let n=L(k,i);return n&&(f+=`
|
|
243
|
+
`))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},34156:(a,b,c)=>{c.d(b,{f:()=>f});var d=c(74350),e=c(9427);class f extends d.L{constructor(){super("azure-openai")}buildUrl(a,b,c=0,d=null){var f;let g,h=d?.providerSpecificData||{},i=(f=h.baseUrl||this.config.baseUrl,(g=(0,e.o)((f||"").trim()))?g.replace(/\/openai$/i,"").replace(/\/openai\/deployments\/[^/]+\/chat\/completions[^/]*$/i,""):""),j="string"==typeof h.apiVersion&&h.apiVersion.trim()?h.apiVersion.trim():"2024-12-01-preview";return`${i}/openai/deployments/${encodeURIComponent(a)}/chat/completions?api-version=${encodeURIComponent(j)}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json","api-key":a?.apiKey||a?.accessToken||""};return c.Accept=b?"text/event-stream":"application/json",c}}},35538:(a,b,c)=>{c.d(b,{P:()=>k});var d=c(97510),e=c(61408),f=c(57247);let g=[/deepseek/i,/\bkimi\b/i,/\bk2\b/i,/\bminimax\b/i];var h=c(95538),i=c(13568);let j=["low","medium","high","max"];class k extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai),this._requestFormat=null,this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0}syncAccountsFromCredentials(a){let b=a?.providerSpecificData,c=Array.isArray(b?.fingerprints)?b.fingerprints.filter(a=>"string"==typeof a):[],d=b?.accountProxies,e=Array.isArray(d)?new Map(d.map(a=>[a.fingerprint,a.proxy??null])):null;if(0===c.length){this.accounts=[{fingerprint:"",cooldownUntil:0,consecutiveFails:0,proxy:null}],this.nextAccountIdx=0;return}let f=new Map(this.accounts.map(a=>[a.fingerprint,a]));this.accounts=c.map(a=>{let b=f.get(a);return{fingerprint:a,cooldownUntil:b?.cooldownUntil??0,consecutiveFails:b?.consecutiveFails??0,proxy:e?e.get(a)??null:null}}),this.nextAccountIdx>=this.accounts.length&&(this.nextAccountIdx=0)}isAccountReady(a){return a.cooldownUntil<=Date.now()}pickAccount(){for(let a=0;a<this.accounts.length;a++){let b=(this.nextAccountIdx+a)%this.accounts.length,c=this.accounts[b];if(this.isAccountReady(c))return this.nextAccountIdx=(b+1)%this.accounts.length,c}let a=this.nextAccountIdx%this.accounts.length;return this.nextAccountIdx=(this.nextAccountIdx+1)%this.accounts.length,this.accounts[a]}markCooldown(a){a.consecutiveFails++;let b=Math.min(5e3*Math.pow(2,a.consecutiveFails-1),6e4);a.cooldownUntil=Date.now()+b+1e3*Math.random()}markSuccess(a){a.consecutiveFails=0}static maskAccountId(a){return a?`${a.slice(0,8)}…`:"direct"}async execute(a){this._requestFormat=(0,f.ux)(this.provider,a.model)||"openai";try{this.syncAccountsFromCredentials(a.credentials);let b=this.accounts.some(a=>null!==a.proxy);if(1===this.accounts.length&&!b)return await super.execute(a);let{log:c}=a,d=null;for(let b=0;b<this.accounts.length;b++){let e=this.pickAccount(),f=k.maskAccountId(e.fingerprint);c?.info?.("OPENCODE",`dispatch via account ${f} (idx ${b+1}/${this.accounts.length})`+(e.proxy?` through proxy ${e.proxy.host}:${e.proxy.port}`:" direct"));let g=await (0,h.jf)(e.proxy,()=>super.execute({...a,skipUpstreamRetry:!0}));d=g;let i=g.response.status;if(429===i){this.markCooldown(e),c?.warn?.("OPENCODE",`Rate limited (429) on account ${f}, rotating to next…`);continue}return this.markSuccess(e),g}return d??await super.execute(a)}finally{this._requestFormat=null}}buildUrl(a,b,c=0,d=null){let e=this.config.baseUrl;switch(this._requestFormat){case"claude":return`${e}/messages`;case"openai-responses":return`${e}/responses`;case"gemini":return`${e}/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:return`${e}/chat/completions`}}buildHeaders(a,b=!0,c,d){let e={"Content-Type":"application/json"},f=a?.apiKey||a?.accessToken;return f&&("claude"===this._requestFormat?e["x-api-key"]=f:e.Authorization=`Bearer ${f}`),"claude"===this._requestFormat&&(e["anthropic-version"]="2023-06-01"),b&&(e.Accept="text/event-stream"),c&&(0,i.G)(e,c,{synthesizeRequestId:!0}),e}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(e&&"object"==typeof e&&Array.isArray(e.tools)&&e.tools.length>128&&(e.tools=e.tools.slice(0,128)),e&&"object"==typeof e&&!Array.isArray(e)){let b,c,d=e,f=(b=String(a||""),(c=j.find(a=>b.endsWith(`-${a}`)))&&"deepseek-v4-pro"===b.slice(0,-c.length-1).toLowerCase()?{baseModel:"deepseek-v4-pro",effort:c}:null);f&&(d.model=f.baseModel,void 0===d.reasoning_effort&&(d.reasoning_effort=f.effort))}return a&&"string"==typeof a&&g.some(b=>b.test(a))&&(e=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||!Array.isArray(a.messages))return a;let b=!1,c=a.messages.map(a=>a&&"object"==typeof a&&!Array.isArray(a)&&"assistant"===a.role?"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0?a:(b=!0,{...a,reasoning_content:" "}):a);return b?{...a,messages:c}:a}(e)),e}}},36770:(a,b,c)=>{c.d(b,{Gt:()=>i,Vv:()=>j});var d=c(77598);let e=new Map,f=0;function g(a){let b=e.get(a);b&&(f-=b.bytes.length,e.delete(a))}function h(a=Date.now()){for(let[b,c]of e)a>=c.expiresAt&&g(b)}function i(a,b,c=18e5,j){let k;h(),!function(a,b){for(;(e.size>=25||f+b>a)&&e.size>0;){let a=e.keys().next().value;if(!a)break;g(a)}}(!Number.isFinite(k=Number(process.env.OMNIROUTE_CGPT_WEB_IMAGE_CACHE_MAX_MB))||k<=0?0xa00000:Math.floor(1024*k*1024),a.length);let l=(0,d.randomUUID)().replace(/-/g,""),m=(0,d.createHash)("sha256").update(a).digest("hex");return e.set(l,{bytes:a,mime:b,expiresAt:Date.now()+c,context:j,bytesSha256:m}),f+=a.length,l}function j(a){let b;return(h(),!(b=e.get(a))?null:Date.now()>=b.expiresAt?(g(a),null):b)?.context??null}},39326:(a,b,c)=>{let d;c.d(b,{id:()=>R,kG:()=>N,sO:()=>E,Az:()=>B});var e=c(97510),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(73136);class k{getCachedUint8Memory(){return this.cachedUint8Memory?.byteLength||(this.cachedUint8Memory=new Uint8Array(this.wasmInstance.memory.buffer)),this.cachedUint8Memory}encodeString(a,b,c){let d=a.length,e=b(d,1)>>>0,f=this.getCachedUint8Memory(),g=0;for(;g<d&&!(a.charCodeAt(g)>127);g++)f[e+g]=a.charCodeAt(g);if(g!==d){g>0&&(a=a.slice(g)),e=c(e,d,g+3*a.length,1)>>>0;let b=this.cachedTextEncoder.encodeInto(a,this.getCachedUint8Memory().subarray(e+g,e+g+3*a.length));g+=b.written,e=c(e,g+3*a.length,g,1)>>>0}return this.offset=g,e}calculateHash(a,b,c){try{let d=this.wasmInstance.__wbindgen_add_to_stack_pointer(-16),e=this.encodeString(a,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),f=this.offset,g=this.encodeString(b,this.wasmInstance.__wbindgen_export_0,this.wasmInstance.__wbindgen_export_1),h=this.offset;this.wasmInstance.wasm_solve(d,e,f,g,h,c);let i=new DataView(this.wasmInstance.memory.buffer),j=i.getInt32(d+0,!0),k=i.getFloat64(d+8,!0);return 0===j?void 0:k}finally{this.wasmInstance.__wbindgen_add_to_stack_pointer(16)}}async init(a){let b=await g().promises.readFile(a),{instance:c}=await WebAssembly.instantiate(b,{wbg:{}});this.wasmInstance=c.exports}constructor(){this.offset=0,this.cachedUint8Memory=null,this.cachedTextEncoder=new TextEncoder}}let l=null,m=!1;async function n(){if(m)return null;if(l)return l;try{let a=new k,b=i().join(i().dirname((0,j.fileURLToPath)("file:///home/giang/work/9router/open-sse/lib/deepseek-pow.js")),"sha3_wasm_bg.wasm");return await a.init(b),l=a,a}catch{return m=!0,null}}async function o(a,b,e,f,g){let h;if("DeepSeekHashV1"!==a)throw Error(`Unsupported: ${a}`);let i=`${e}_${g}_`,j=await n();if(j){let a=j.calculateHash(b,i,f);return void 0===a?-1:a}let k=(void 0===d&&(d=c(96369).U),d),l=((h={})._sponge=new k({capacity:256,padding:6}),h.update=a=>(h._sponge.absorb(Buffer.from(a,"utf8")),h),h.digest=a=>h._sponge.squeeze(6).toString(a||"hex"),h.copy=()=>{let a={};return a._sponge=h._sponge.copy(),a.update=b=>(a._sponge.absorb(Buffer.from(b,"utf8")),a),a.digest=b=>a._sponge.squeeze(6).toString(b||"hex"),a},h);l.update(i);for(let a=0;a<f;a++)if(l.copy().update(String(a)).digest("hex")===b)return a;return -1}var p=c(72221);function q(a){return Array.isArray(a)?a.filter(a=>a?.type==="text").map(a=>a?.text??"").join("\n"):null==a?"":String(a)}let r=/<(\/?)(?:tool_call|tool)(:[A-Za-z0-9_.+-]+)?((?:\s[^>]*)?)\/?>/g;function s(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 t(a,b){let c=RegExp(`<${b}\\b[^>]*>([\\s\\S]*?)<\\/${b}>`,"i").exec(a);return c?c[1].trim():null}let u=/<parameter\b([^>]*?)\/?>(?:((?:(?!<parameter\b)[\s\S])*?)<\/parameter>)?/gi;function v(a){return"string"==typeof a&&a.length>0?a:null}var w=c(43659);let x="https://chat.deepseek.com",y=`${x}/api`,z=`${y}/v0/chat/completion`,A={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9",Origin:x,Referer:`${x}/`,"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-App-Version":"20241129.1","X-Client-Locale":"en-US","X-Client-Platform":"web","X-Client-Version":"1.8.0"},B=new Map,C=new Map;function D(a){if(a.size>=100){let b=a.keys().next().value;b&&a.delete(b)}}function E(a){let b=a?.apiKey||a?.accessToken;if("string"!=typeof b||0===b.length)return null;try{let a=JSON.parse(b);if("string"==typeof a?.value)return a.value}catch{}return b}function F(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 G(){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 H(a){let b=await o(a.algorithm,a.challenge,a.salt,a.difficulty,a.expire_at);if(b<0)throw Error("PoW solver failed");return Buffer.from(JSON.stringify({algorithm:a.algorithm,challenge:a.challenge,salt:a.salt,answer:b,signature:a.signature,target_path:a.target_path})).toString("base64")}function I(a){let b=a.toLowerCase();return b.includes("think")||b.includes("r1")||b.includes("reason")}function J(a){let b=a.toLowerCase();return b.includes("search")||b.includes("fold")}function K(a,b){let c=a.replace(/FINISHED/g,"").replace(/^(SEARCH|WEB_SEARCH|SEARCHING)\s*/i,"");return J(b)?b.toLowerCase().includes("search-silent")?c.replace(/\[citation:(\d+)\]/g,""):c.replace(/\[citation:(\d+)\]/g,"[$1]"):c}function L(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")}async function M(a,b){let c=new TextDecoder,d=a.getReader(),e="",f="",g="",h="",i=b||"deepseek-web",j=I(i),k=[],l=a=>{let b=K(a,i);if(!b)return;let c=h;!c&&j?c="thinking":!c&&J(i)&&(c="content"),"thinking"===c?g+=b:f+=b},m=(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")}l(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(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)m(a,!1);if("response/fragments"===c)if(Array.isArray(d))for(let a of d)m(a,!0);else d&&"object"==typeof d&&m(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")k.length=0,k.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);k[c]&&(k[c].cite_index=a.v)}}continue}if("string"==typeof d)l(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&&l(b)}}}catch{}}}let n=L(k,i);return n&&(f+=`
|
|
244
244
|
|
|
245
245
|
${n}`),{content:f,reasoningContent:g}}async function N(a,b,c){let d=B.get(a);if(d&&d.expiresAt>Math.floor(Date.now()/1e3))return d.accessToken;c?.info?.("DEEPSEEK-WEB","Acquiring access token from /users/current...");let e=await fetch(`${y}/v0/users/current`,{headers:{Authorization:`Bearer ${a}`,...A},signal:b??void 0});if(401===e.status||403===e.status)throw Error("Token invalid or expired — get a new userToken from DeepSeek localStorage");if(!e.ok)throw Error(`users/current HTTP ${e.status}`);let f=await e.json();if(f?.code&&0!==f.code){let b=f.msg||f?.data?.biz_msg||`error code ${f.code}`;throw B.delete(a),Error(`DeepSeek rejected token: ${b}`)}let g=f?.data?.biz_data||f?.biz_data;if(!g?.token){let a=f?.msg||f?.data?.biz_msg||"Unknown error";throw Error(`Failed to acquire token: ${a}`)}let h=g.token;return D(B),B.set(a,{accessToken:h,expiresAt:Math.floor(Date.now()/1e3)+3600}),c?.info?.("DEEPSEEK-WEB",`Access token acquired (${h.length} chars)`),h}async function O(a,b){let c=await fetch(`${y}/v0/chat_session/create`,{method:"POST",headers:{...A,"Content-Type":"application/json",Authorization:`Bearer ${a}`,Cookie:G()},body:JSON.stringify({}),signal:b??void 0});if(!c.ok)throw Error(`chat_session/create HTTP ${c.status}`);let d=await c.json(),e=d?.data?.biz_data||d?.biz_data,f=e?.chat_session?.id;if(!f)throw Error(`No session id: code=${d?.code}`);return f}async function P(a,b){try{await fetch(`${y}/v0/chat_session/delete`,{method:"POST",headers:{...A,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({chat_session_id:b})})}catch{}}async function Q(a,b){let c=await fetch(`${y}/v0/chat/create_pow_challenge`,{method:"POST",headers:{...A,"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:JSON.stringify({target_path:"/api/v0/chat/completion"}),signal:b??void 0});if(!c.ok)throw Error(`create_pow_challenge HTTP ${c.status}`);let d=await c.json(),e=d?.data?.biz_data||d?.biz_data;if(!e?.challenge?.challenge)throw Error(`No PoW challenge: code=${d?.code}`);return e.challenge}class R extends e.Hv{constructor(){super("deepseek-web",{baseUrl:x})}async testConnection(a,b){try{let c=E(a);if(!c)return!1;return!!await N(c,b)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f}){var g,h;let i,j,k=b||{},l=k.tools,m=Array.isArray(l)&&l.length>0,n=m?function(a){if(!Array.isArray(a)||0===a.length)return"";let b=[];for(let c of a){let a=c?.function;if(!a?.name)continue;let d="string"==typeof a.description&&a.description?a.description:"",e="";try{e=a.parameters?JSON.stringify(a.parameters):""}catch{e=""}b.push(`- ${a.name}${d?`: ${d}`:""}${e?`
|
|
246
246
|
parameters: ${e}`:""}`)}return 0===b.length?"":["You can call tools. To call a tool, output ONLY this exact block (no markdown fence):",'<tool>{"name": "<tool_name>", "arguments": { ... }}</tool>',"Rules:","- Use exactly <tool>...</tool>. Do NOT use <tool:name>, <tool_call>, <name>, <parameter>, id=/name= attributes, or code fences.",'- "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 no tool is needed, just answer normally without any <tool> block.","","Available tools:",...b].join("\n")}(l):"",o=Array.isArray(k.messages)?k.messages:[],x=n?[{role:"system",content:n},...o]:o,y=E(d);if(!y)return{response:F(400,"Invalid credentials: paste your userToken from DeepSeek localStorage (DevTools → Application → Local Storage → chat.deepseek.com → userToken)"),url:z,headers:{},transformedBody:b};let{modelType:R,thinkingEnabled:S,searchEnabled:T}=(j=(i=(a||"").toLowerCase()).includes("pro")||i.includes("expert")?"expert":"default",{modelType:j,thinkingEnabled:i.includes("r1")||i.includes("think")||i.includes("reason")||k?.thinking_enabled===!0||k?.thinking===!0||!!k?.reasoning_effort,searchEnabled:i.includes("search")||k?.search_enabled===!0||k?.search===!0||k?.web_search===!0}),U=d.providerSpecificData??{},V=!0===U.persistSession,W="number"==typeof U.historyWindow&&U.historyWindow>0?U.historyWindow:0;try{let b=Date.now(),d=await N(y,e,f);f?.info?.("DEEPSEEK-WEB",`Token acquired in ${Date.now()-b}ms`);let i=m?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=q(b.content).trim();a&&c.push(a)}else if("user"===b.role){let a=q(b.content).trim();a&&d.push(`User: ${a}`)}else if("assistant"===b.role){let a=q(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=q(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,"")}(o,n):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=[];if(c.length>0&&h.push(c.join("\n\n")),b>0&&d.length>1){let a=d.slice(-b).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,"")}(x,W),j=Array.isArray(k.ref_file_ids)?k.ref_file_ids:[];f?.info?.("DEEPSEEK-WEB",`model_type=${R}, thinking=${S}, search=${T}, files=${j.length}, stream=${!1!==c}, persist=${V}, window=${W}`);let w=async a=>{let b=await Q(d,e),c=await H(b),f={...A,"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Ds-Pow-Response":c,"X-Client-Timezone-Offset":String(-60*new Date().getTimezoneOffset()),Cookie:G()},g={chat_session_id:a,parent_message_id:null,model_type:R,prompt:i,ref_file_ids:j,thinking_enabled:S,search_enabled:T,preempt:!1};return{resp:await fetch(z,{method:"POST",headers:f,body:JSON.stringify(g),signal:e??void 0}),reqHeaders:f,requestPayload:g}},E=async()=>{if(V){let a=C.get(y);if(a)return{sessionId:a.sessionId,reused:!0};let b=await O(d,e);return D(C),C.set(y,{sessionId:b,createdAt:Date.now()}),{sessionId:b,reused:!1}}return{sessionId:await O(d,e),reused:!1}};b=Date.now();let{sessionId:U,reused:X}=await E();f?.info?.("DEEPSEEK-WEB",`Session ${X?"reused":"created"} in ${Date.now()-b}ms`),b=Date.now(),f?.info?.("DEEPSEEK-WEB",`POST ${z}`);let{resp:Y,reqHeaders:Z,requestPayload:$}=await w(U);if(f?.info?.("DEEPSEEK-WEB",`Completion response in ${Date.now()-b}ms, status=${Y.status}`),!Y.ok&&V&&X&&(f?.warn?.("DEEPSEEK-WEB","Reused session failed — retrying with a fresh session"),C.delete(y),U=await O(d,e),D(C),C.set(y,{sessionId:U,createdAt:Date.now()}),X=!1,{resp:Y,reqHeaders:Z,requestPayload:$}=await w(U)),!Y.ok){let a=Y.status,b=`DeepSeek API error (${a})`;401===a||403===a?(B.delete(y),b="DeepSeek token expired — get a fresh userToken from localStorage."):429===a&&(b="DeepSeek rate limited. Wait and retry."),f?.warn?.("DEEPSEEK-WEB",b);try{let a=await Y.json();a?.code&&0!==a.code&&(b=`DeepSeek error ${a.code}: ${a.msg}`)}catch{}return V&&C.delete(y),P(d,U).catch(()=>{}),{response:F(a,b),url:z,headers:Z,transformedBody:$}}if((Y.headers.get("content-type")||"").includes("application/json"))try{let a=await Y.json(),b=function(a){if(!a||"object"!=typeof a)return null;let b=a.code,c="number"==typeof b?b:void 0,d=a.msg,e=a.data,f=e?.biz_msg;return void 0!==c&&0!==c?{code:c,message:("string"==typeof d?d:"string"==typeof f?f:"")||`DeepSeek error ${c}`}:null}(a);if(b){let a=`DeepSeek error ${b.code}: ${b.message}`;f?.warn?.("DEEPSEEK-WEB",a);let c=40003===b.code?401:40002===b.code?429:502;return 40003===b.code&&B.delete(y),V&&C.delete(y),P(d,U).catch(()=>{}),{response:F(c,a,b.code),url:z,headers:Z,transformedBody:$}}return V||P(d,U).catch(()=>{}),{response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}}),url:z,headers:Z,transformedBody:$}}catch{}let _=V?async()=>{}:()=>P(d,U),aa="string"==typeof a&&a.trim()?a.trim():"deepseek-web";if(m){let{content:a,reasoningContent:b}=await M(Y.body,aa);await _();let{content:d,toolCalls:e}=function(a,b="call",c){if("string"!=typeof a||0===a.length)return{content:a??"",toolCalls:null};let d=function(a){let b,c=[];for(r.lastIndex=0;null!==(b=r.exec(a));)c.push({start:b.index,end:r.lastIndex,closing:"/"===b[1],suffix:b[2]?b[2].slice(1):"",attrs:b[3]||""});return c}(a);if(0===d.length)return(0,p.uQ)(a,b,c);let e=(0,p.x2)(c),f=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),g=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}(d,a.length),h=[],i=[];for(let c of g.filter(a=>!g.some(b=>b!==a&&b.open.start>=a.innerStart&&b.close.end<=a.innerEnd)).sort((a,b)=>a.open.start-b.open.start)){let d=c.open.suffix||s(c.open.attrs,"name")||s(c.open.attrs,"id")||"",g=function(a,b,c,d){let e,f=b.trim(),g=t(f,"name"),h=t(f,"arguments")??t(f,"parameters"),i=h?null:function(a){let b,c={},d=!1;for(u.lastIndex=0;null!==(b=u.exec(a));){let a=b[1]||"",e=b[2],f=s(a,"name");if(!f)continue;let g=s(a,"content")??("string"==typeof e?e.trim():"");c[f]=g,d=!0}return d?c:null}(f),j=g||h||i?null:(0,p.n)(f),k=j?v(j.name)??v(j.type):null,l=g?(0,p.Ub)(g,c):null,m=k?(0,p.Ub)(k,c):null,n=a?(0,p.Ub)(a,c):null,o=null,q=!1,r=(a,b)=>{!o&&a&&(o=a,q=b)};if(r(l,!1),r(m,!1),r(n,!0),r(g,!1),r(k,!1),r(a,!0),!o&&!a&&j){let a=v(j.command),b=a?(0,p.Ub)(a,c):null;b&&(o=b,q=!1)}if(!o&&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&&(o=b[0],q=!1)}}if(!o)return null;if(h)e=(0,p.n)(h)??h;else if(i)e=i;else if(j)if(void 0!==j.arguments)e=j.arguments;else if(void 0!==j.params)e=j.params;else if(q)e=j;else{let{name:a,type:b,id:c,command:d,arguments:f,params:g,...h}=j;e=h}else e={};return{name:o,arguments:(0,p.r3)(e)}}(d,a.slice(c.innerStart,c.innerEnd),e,f);g&&(h.push({id:`${b}_${h.length}`,type:"function",function:{name:g.name,arguments:g.arguments}}),i.push({start:c.open.start,end:c.close.end}))}if(0===h.length)return(0,p.uQ)(a,b,c);let j=[...i,...d.filter(a=>!i.some(b=>a.start>=b.start&&a.end<=b.end)).map(a=>({start:a.start,end:a.end}))];return{content:(0,p.LW)(a,j),toolCalls:h}}(a,`call-${Date.now()}`,l);return function(a){let{stream:b,clientModel:c,content:d,reasoningContent:e,toolCalls:f,reqHeaders:g,requestPayload:h}=a,i=!!f&&f.length>0,j=i?"tool_calls":"stop",k=`chatcmpl-${Date.now()}`,l=Math.floor(Date.now()/1e3);if(b){let a=new TextEncoder,b=(b,d,e)=>{b.enqueue(a.encode(`data: ${JSON.stringify({id:k,object:"chat.completion.chunk",created:l,model:c,choices:[{index:0,delta:d,finish_reason:e}]})}
|
|
@@ -249,21 +249,21 @@ ${n}`),{content:f,reasoningContent:g}}async function N(a,b,c){let d=B.get(a);if(
|
|
|
249
249
|
|
|
250
250
|
`))},o=()=>{f||(f=!0,n({role:"assistant",content:""}))},p=()=>{let b=L(k,c);b&&(o(),n({content:`
|
|
251
251
|
|
|
252
|
-
${b}`})),o(),n({},"stop"),h.enqueue(a.encode("data: [DONE]\n\n")),h.close()},q=a=>{let b=K(a,c);if(!b)return;o();let d=i;!d&&j?d="thinking":!d&&J(c)&&(d="content"),"thinking"===d?n({reasoning_content:b}):n({content:b})},r=(a,b=!1)=>{let c;if(b&&(c=String(a?.type||"").toUpperCase(),"THINK"===c?i="thinking":("ANSWER"===c||"RESPONSE"===c)&&(i="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?i="thinking":("ANSWER"===b||"RESPONSE"===b)&&(i="content")}q(a.content)}};try{for(;;){let{done:a,value:c}=await l.read();if(a)break;let d=(m+=b.decode(c,{stream:!0})).split("\n");for(let a of(m=d.pop()||"",d)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void p();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?i="thinking":!1===f.response.thinking_enabled&&(i="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)r(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)r(a,!0);else f&&"object"==typeof f&&r(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(i="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)k.length=0,k.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);k[c]&&(k[c].cite_index=a.v)}}continue}if("string"==typeof f)q(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&&q(b)}}if("response/status"===d&&"FINISHED"===f)continue}}}}catch(a){h.error(a);return}p()}},{highWaterMark:16384}),l=h.getReader(),new ReadableStream({async pull(a){let{done:b,value:c}=await l.read();if(b){a.close(),_().catch(()=>{});return}a.enqueue(c)},cancel(){l.cancel(),_().catch(()=>{})}}));return{response:new Response(m,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:z,headers:Z,transformedBody:$}}let{content:ab,reasoningContent:ac}=await M(Y.body,aa);await _();let ad={role:"assistant",content:ab};ac&&(ad.reasoning_content=ac);let ae={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||R,choices:[{index:0,message:ad,finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(ae),{status:200,headers:{"Content-Type":"application/json"}}),url:z,headers:Z,transformedBody:$}}catch(c){let a=c instanceof Error?c.message:String(c);if(f?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof DOMException&&"AbortError"===c.name)return{response:F(499,"Request cancelled"),url:z,headers:{},transformedBody:b};return{response:F(502,`DeepSeek error: ${(0,w.sanitizeErrorMessage)(a)}`),url:z,headers:{},transformedBody:b}}}}new R},42686:(a,b,c)=>{
|
|
252
|
+
${b}`})),o(),n({},"stop"),h.enqueue(a.encode("data: [DONE]\n\n")),h.close()},q=a=>{let b=K(a,c);if(!b)return;o();let d=i;!d&&j?d="thinking":!d&&J(c)&&(d="content"),"thinking"===d?n({reasoning_content:b}):n({content:b})},r=(a,b=!1)=>{let c;if(b&&(c=String(a?.type||"").toUpperCase(),"THINK"===c?i="thinking":("ANSWER"===c||"RESPONSE"===c)&&(i="content")),"string"==typeof a?.content&&0!==a.content.length){if(!b){let b=String(a?.type||"").toUpperCase();"THINK"===b?i="thinking":("ANSWER"===b||"RESPONSE"===b)&&(i="content")}q(a.content)}};try{for(;;){let{done:a,value:c}=await l.read();if(a)break;let d=(m+=b.decode(c,{stream:!0})).split("\n");for(let a of(m=d.pop()||"",d)){let b;if(!a.startsWith("data: ")&&!a.startsWith("data:"))continue;let c=a.replace(/^data:\s*/,"").trim();if("[DONE]"===c)return void p();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?i="thinking":!1===f.response.thinking_enabled&&(i="content");let a=f.response.fragments;if(Array.isArray(a))for(let b of a)r(b,!1)}if("response/fragments"===d)if(Array.isArray(f))for(let a of f)r(a,!0);else f&&"object"==typeof f&&r(f,!0);if("response"===d&&Array.isArray(f))for(let a of f)a?.p==="response"&&a?.v?.thinking_enabled===!0&&(i="thinking");if("response/search_status"!==d){if("response/search_results"===d&&Array.isArray(f)){if("BATCH"!==e)k.length=0,k.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);k[c]&&(k[c].cite_index=a.v)}}continue}if("string"==typeof f)q(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&&q(b)}}if("response/status"===d&&"FINISHED"===f)continue}}}}catch(a){h.error(a);return}p()}},{highWaterMark:16384}),l=h.getReader(),new ReadableStream({async pull(a){let{done:b,value:c}=await l.read();if(b){a.close(),_().catch(()=>{});return}a.enqueue(c)},cancel(){l.cancel(),_().catch(()=>{})}}));return{response:new Response(m,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:z,headers:Z,transformedBody:$}}let{content:ab,reasoningContent:ac}=await M(Y.body,aa);await _();let ad={role:"assistant",content:ab};ac&&(ad.reasoning_content=ac);let ae={id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||R,choices:[{index:0,message:ad,finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(ae),{status:200,headers:{"Content-Type":"application/json"}}),url:z,headers:Z,transformedBody:$}}catch(c){let a=c instanceof Error?c.message:String(c);if(f?.error?.("DEEPSEEK-WEB",`Execute failed: ${a}`),c instanceof DOMException&&"AbortError"===c.name)return{response:F(499,"Request cancelled"),url:z,headers:{},transformedBody:b};return{response:F(502,`DeepSeek error: ${(0,w.sanitizeErrorMessage)(a)}`),url:z,headers:{},transformedBody:b}}}}new R},42686:(a,b,c)=>{c.d(b,{N:()=>i});var d=c(77598),e=c(97510),f=c(43659);let g="https://business.gemini.google/home",h={"gemini-3-pro":70,"gemini-3-ultra":71,"gemini-3-flash":75,"gemini-2.5-pro":53,"gemini-2.5-flash":54,"gemini-2.5-flash-thinking":55,"gemini-2.0-pro":51,"gemini-2.0-flash":52,"gemini-2.0-flash-thinking":56,"gemini-3-pro-image":76,"gemini-2.0-flash-image":57,"veo-3.1-generate":80};class i extends e.Hv{constructor(){super("gemini-business",{id:"gemini-business",baseUrl:g})}async execute(a){var b,c,e,i,m,n,o,p,q;let r,s,t,u,v,w,x,y,z,A,B,{model:C,body:D,stream:E,credentials:F,signal:G}=a,H=j(F?.apiKey)||j(F?.cookie),I=k(F?.providerSpecificData,["__Secure-1PSID","cookie"]),J=k(F?.providerSpecificData,["__Secure-1PSIDTS"]),K=H||[I,J].filter(Boolean).join("; ");if(!K)return(0,f.DV)(401,"Missing Gemini Business cookies. Set __Secure-1PSID and __Secure-1PSIDTS from your enterprise account (business.gemini.google).",D,g);let{baseOrigin:L,pathPrefix:M}=function(a){let b={baseOrigin:"https://business.gemini.google",pathPrefix:"/home"},c=a.trim();if(!c)return b;let d=/^[a-z]+:\/\//i.test(c)?c:`https://${c}`;try{let a=new URL(d);if(!a.host)return b;return{baseOrigin:`${a.protocol}//${a.host}`,pathPrefix:a.pathname.replace(/\/$/,"")||"/"}}catch{return b}}(k(F?.providerSpecificData,["entryUrl","entry_url"])||g),N=(D.messages||[]).filter(a=>"user"===a.role).pop(),O="string"==typeof(b=N?.content)?b.trim():Array.isArray(b)?b.map(a=>{if("string"==typeof a)return a;if(a&&"object"==typeof a&&"text"in a){let b=a.text;return"string"==typeof b?b:""}return""}).join("").trim():"";if(!O)return(0,f.DV)(400,"No user message found in request body.",D,g);let P=C||"gemini-2.5-pro",Q=(c=O,e=h[P]??53,(r=Array(80).fill(null))[0]=[c,0,null,null,null,null,0],r[1]=["en"],r[2]=["","","",null,null,null,null,null,null,""],r[6]=[0],r[7]=1,r[10]=1,r[11]=0,r[17]=[[0]],r[18]=0,r[27]=1,r[30]=[4],r[41]=[2],r[53]=0,r[59]=(0,d.randomUUID)(),r[61]=[],r[68]=1,r[79]=e,r),R=`${L}${M}/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate?bl=boq_assistant-bard-web-server_20240619.16_p0&hl=en&_reqid=${Math.floor(9e5*Math.random())+1e5}&rt=c`,S=new URLSearchParams;S.set("f.req",JSON.stringify([null,JSON.stringify(Q)]));let T={"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8",Accept:"*/*","Accept-Language":"en-US,en;q=0.9",Cookie:K,"X-Same-Domain":"1","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:L,Referer:`${L}${M}/`},U=l(K,"SAPISID")||l(K,"__Secure-3PAPISID");U&&(i=U,m=L,s=Math.floor(Date.now()/1e3),t=`${s} ${i} ${m}`,u=(0,d.createHash)("sha1").update(t).digest("hex"),T.Authorization=`SAPISIDHASH ${s}_${u}`);try{B=await fetch(R,{method:"POST",headers:T,body:S.toString(),signal:combineAbortSignals(G,AbortSignal.timeout(6e4))})}catch(c){let a=c instanceof Error?c.message:"fetch failed",b=c instanceof Error&&"TimeoutError"===c.name;return(0,f.DV)(b?504:502,`Gemini Business ${b?"request timed out":"network error"}: ${a}`,D,R)}if(!B.ok){let a=await B.text().catch(()=>"");return(0,f.DV)(B.status,`Gemini Business returned HTTP ${B.status}: ${a.slice(0,200)}`,D,R)}let V=await B.text();if(V.includes("auth.business.gemini.google/account-chooser"))return(0,f.DV)(403,"Gemini Business account-chooser detected. Your enterprise cookies may be stale or the entry URL is wrong. Re-extract __Secure-1PSID/PSIDTS from business.gemini.google/home/cid/{YOUR-CID} after signing in.",D,R);let W=function(a){let b=a.split("\n"),c=[];for(let a of b){let b=a.trim();if(!(!b||")]}'"===b||/^\d+$/.test(b))&&b.includes("wrb.fr"))try{let a=JSON.parse(b);if(!Array.isArray(a)||!a[0]||"wrb.fr"!==a[0][0])continue;let d=a[0]?.[2];if("string"!=typeof d)continue;let e=JSON.parse(d),f=e?.[4]?.[0]?.[1];if(!Array.isArray(f))continue;let g=f.filter(a=>"string"==typeof a).join("");g&&c.push(g)}catch{}}return c.join("")}(V);return W?E?{response:(n=W,o=P,v=new TextEncoder,w=`chatcmpl-${(0,d.randomUUID)()}`,x=Math.floor(Date.now()/1e3),y=`data: ${JSON.stringify({id:w,object:"chat.completion.chunk",created:x,model:o,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})}
|
|
253
253
|
|
|
254
254
|
`,z=`data: ${JSON.stringify({id:w,object:"chat.completion.chunk",created:x,model:o,choices:[{index:0,delta:{content:n},finish_reason:null}]})}
|
|
255
255
|
|
|
256
256
|
`,A=`data: ${JSON.stringify({id:w,object:"chat.completion.chunk",created:x,model:o,choices:[{index:0,delta:{},finish_reason:"stop"}]})}
|
|
257
257
|
|
|
258
|
-
`,new Response(new ReadableStream({start(a){a.enqueue(v.encode(y)),a.enqueue(v.encode(z)),a.enqueue(v.encode(A)),a.enqueue(v.encode("data: [DONE]\n\n")),a.close()}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})),url:R,headers:{},transformedBody:D}:{response:(p=W,q=P,new Response(JSON.stringify({id:`chatcmpl-${(0,d.randomUUID)()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:q,choices:[{index:0,message:{role:"assistant",content:p},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}})),url:R,headers:{},transformedBody:D}:(0,f.DV)(502,"Gemini Business returned no text. The cookie may be expired or the entry URL is wrong.",D,R)}}function j(a){if("string"!=typeof a)return"";let b=a.trim();return b||""}function k(a,b){if(!a||"object"!=typeof a)return"";for(let c of b){let b=a[c];if("string"==typeof b&&b.trim().length>0)return b.trim()}return""}function l(a,b){for(let c of a.split(";")){let[a,...d]=c.trim().split("=");if(a===b)return d.join("=")}return null}},47360:(a,b,c)=>{"use strict";c.d(b,{I:()=>g});var d=c(97510),e=c(61408),f=c(23060);class g extends d.Hv{constructor(){super("pollinations",e.xq.pollinations||{format:"openai"}),this.poolConfig=f.W}buildUrl(a,b,c=0,d=null){let e=this.getBaseUrls();return e[c]||e[0]||"https://gen.pollinations.ai/v1/chat/completions"}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return c&&(d.Authorization=`Bearer ${c}`),b&&(d.Accept="text/event-stream"),d}transformRequest(a,b,c,d){if("object"==typeof b&&null!==b){b.model=a,b.stream=c;let d=b.response_format?.type;("json_object"===d||"json_schema"===d)&&(b.jsonMode=!0)}return b}async execute(a){let b;if(!(!a.credentials?.apiKey&&!a.credentials?.accessToken))return super.execute(a);let c=this.getPool();try{b=c?await c.acquireBlocking(1e4):null}catch{b=null}b&&(a.upstreamExtraHeaders={...b.buildHeaders(),...a.upstreamExtraHeaders});try{let d=await super.execute(a);if(b&&c){let a=d.response.status;429===a?c.reportCooldown(b):a>=500?c.reportDead(b):c.reportSuccess(b)}return d}catch(d){if(b&&c&&c.reportCooldown(b),d?.status===401||d?.statusCode===401){let b=a.model||"";if(["claude","claude-fast","claude-large","gemini","gemini-fast","midijourney","midijourney-large"].includes(b)){let a=Error(`Pollinations model "${b}" requires an API key. Free keyless models: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Get a Pollinations API key at https://enter.pollinations.ai and add it in Settings → API Keys.`);throw a.status=401,a.type="authentication_error",a}}throw d}finally{b?.release()}}}},47370:(a,b,c)=>{"use strict";c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,gK:()=>e,j$:()=>d.j$,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(58246);async function e(a){return null}},48565:a=>{function b(a){return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b})}b.keys=()=>[],b.resolve=b,b.id=48565,a.exports=b},49059:(a,b,c)=>{"use strict";c.d(b,{K:()=>e});var d=c(74350);class e extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(!e||"object"!=typeof e||Array.isArray(e))return e;e.stream=!0;let f=e.reasoning_effort;return"none"===f||"off"===f?delete e.reasoning_effort:f&&(e.reasoning_summary="auto"),e}}},50954:(a,b,c)=>{"use strict";c.d(b,{Lf:()=>f,W9:()=>g,fk:()=>e,lT:()=>d,of:()=>i,p1:()=>h});let d=()=>void 0,e=()=>void 0,f=()=>void 0,g=()=>void 0,h=()=>void 0,i=()=>void 0},52089:(a,b,c)=>{"use strict";c.d(b,{No:()=>m});var d=c(97510);let e="https://theoldllm.vercel.app/api/chatgpt",f="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",g={"gpt-5.4":"GPT_5_4","gpt-5.3":"GPT_5_3","gpt-5.2":"GPT_5_2","gpt-5.1":"GPT_5_1","gpt-5":"GPT_5",gpt5_4:"GPT_5_4",gpt5_3:"GPT_5_3",gpt5_2:"GPT_5_2",gpt5_1:"GPT_5_1",gpt_4o:"GPT_4O","gpt-4o":"GPT_4O",gpt_5_3:"GPT_5_3",gpt_5_2:"GPT_5_2",gpt_5_1:"GPT_5_1",gpt_5:"GPT_5"},h={"claude-4.6-opus":"CLAUDE_4_6_OPUS","claude-4.6-sonnet":"CLAUDE_4_6_SONNET","claude-4.5-haiku":"CLAUDE_4_5_HAIKU",claude_opus_4:"CLAUDE_4_6_OPUS",claude_sonnet_4:"CLAUDE_4_6_SONNET",claude_haiku_3_5:"CLAUDE_4_5_HAIKU","claude opus 4":"CLAUDE_4_6_OPUS","claude sonnet 4":"CLAUDE_4_6_SONNET","claude haiku 3.5":"CLAUDE_4_5_HAIKU"};function i(a){let b=a.toLowerCase().trim(),c=b.replace(/[_\s]+/g,"-");if(g[c])return g[c];let d=b.replace(/[-\s]+/g,"_");if(g[d])return g[d];if(h[b])return h[b];if(b.includes("claude")){if(b.includes("opus"))return"CLAUDE_4_6_OPUS";if(b.includes("sonnet"))return"CLAUDE_4_6_SONNET";if(b.includes("haiku"))return"CLAUDE_4_5_HAIKU"}return b.includes("gpt")&&b.includes("5"),"GPT_5_4"}let j=f.slice(0,20);function k(){let a=Date.now(),b=`${a}-oldllm-client-2026-${j}`,c=0;for(let a=0;a<b.length;a++)c=(c<<5)-c+b.charCodeAt(a),c&=c;let d=crypto.randomUUID().replace(/-/g,"").slice(0,8);return`${a.toString(36)}-${Math.abs(c).toString(36)}-${d}`}async function l(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),12e4),g=b?()=>c.abort(b.reason):void 0;b?.addEventListener("abort",g,{once:!0});try{return await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Version":"3.8.4","X-Request-Token":k(),"User-Agent":f},body:JSON.stringify(a),signal:c.signal})}finally{clearTimeout(d),g&&b?.removeEventListener("abort",g)}}class m extends d.Hv{constructor(){super("theoldllm",{format:"openai"})}buildUrl(a,b){return e}buildHeaders(a){return{"Content-Type":"application/json","X-Client-Version":"3.8.4","User-Agent":f}}transformRequest(a,b,c){return"object"==typeof b&&null!==b?{...b,model:i(a)}:b}async testConnection(a,b,c){try{let a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Version":"3.8.4","X-Request-Token":k(),"User-Agent":f},body:JSON.stringify({model:"GPT_5_4",messages:[{role:"user",content:"ping"}],stream:!1}),signal:b??void 0});return 200===a.status}catch{return c?.warn?.("THEOLDLLM","testConnection network error"),!1}}async execute(a){let{model:b,stream:c,body:d,signal:f,log:g}=a,h=new TextEncoder;if(f?.aborted)return{response:new Response(h.encode(JSON.stringify({error:{message:"Request aborted",type:"abort",code:"ABORTED"}})),{status:499,headers:{"Content-Type":"application/json"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d};try{let k={...d,model:i(b),stream:!0},m=await l(k,f),n=await m.text();if(function(a,b){if(401===a||403===a)return!0;try{let a=JSON.parse(b);return a?.error?.type==="access_denied"||"string"==typeof a?.error&&/blocked|denied|invalid/i.test(a.error)}catch{return!1}}(m.status,n)&&(g?.warn?.("THEOLDLLM",`Token rejected (${m.status}), retrying with fresh token…`),m=await l(k,f),n=await m.text()),200===m.status&&n){var j;let f=c?n:(j=function(a){let b="";for(let c of a.split("\n"))if(c.startsWith("data: ")&&"data: [DONE]"!==c)try{let a=JSON.parse(c.slice(6));b+=a.choices?.[0]?.delta?.content||a.choices?.[0]?.delta?.text||""}catch{}return b}(n),JSON.stringify({id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:i(b),choices:[{index:0,message:{role:"assistant",content:j},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}));return{response:new Response(h.encode(f),{status:200,headers:{"Content-Type":c?"text/event-stream":"application/json","Cache-Control":"no-cache"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d}}return{response:new Response(h.encode(function(a,b){let c=b;for(let a of b.split("\n"))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6));if(b.error){c=JSON.stringify(b.error);break}}catch{}return JSON.stringify({error:{message:c,type:"upstream_error",code:`HTTP_${a}`}})}(m.status,n)),{status:m.status,headers:{"Content-Type":"application/json"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d}}catch(c){let b=c instanceof Error?c.message:String(c);return g?.error?.("THEOLDLLM",`Executor error: ${b}`),{response:new Response(h.encode(JSON.stringify({error:{message:b,type:"upstream_error",code:"EXECUTOR_ERROR"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d}}}}},53198:(a,b,c)=>{"use strict";c.d(b,{A:()=>x});var d=c(77598),e=c(74199),f=c(36081),g=c(97510);let h=process.env.COMMAND_CODE_VERSION?.trim()||"0.33.2",i=new TextEncoder;function j(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function k(a){return Array.isArray(a)?a.filter(j):[]}function l(a){return"string"==typeof a?a:void 0}function m(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}function n(a){if(j(a))return a;if("string"==typeof a&&a.trim())try{let b=JSON.parse(a);if(j(b))return b}catch(a){console.warn("[commandCode] tool arg parse failed:",a instanceof Error?a.message:String(a))}return{}}function o(a){return"string"==typeof a?a:k(a).filter(a=>"text"===a.type).map(a=>l(a.text)||"").join("\n")}let p=[/kimi-k2/i,/qwen3\.\d/i,/step-?3/i,/claude-fable/i,/gpt-5/i,/fugu/i],q=["reasoning_effort","reasoning","thinking","effort","output_config","extra_body"];function r(a){let b=a.trim();if(!(!b||b.startsWith(":")||b.startsWith("event:"))&&(b.startsWith("data:")&&(b=b.slice(5).trim()),b&&"[DONE]"!==b))try{return JSON.parse(b)}catch(a){console.warn("[commandCode] stream line parse failed:",a instanceof Error?a.message:String(a));return}}function s(a){return"tool-calls"===a||"tool_calls"===a||"toolUse"===a?"tool_calls":"length"===a||"max_tokens"===a||"max-tokens"===a||"max_output_tokens"===a?"length":"stop"}function t(a,b,c,d=null){return{id:a,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:c,finish_reason:d}]}}function u(a){return i.encode(`data: ${JSON.stringify(a)}
|
|
258
|
+
`,new Response(new ReadableStream({start(a){a.enqueue(v.encode(y)),a.enqueue(v.encode(z)),a.enqueue(v.encode(A)),a.enqueue(v.encode("data: [DONE]\n\n")),a.close()}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})),url:R,headers:{},transformedBody:D}:{response:(p=W,q=P,new Response(JSON.stringify({id:`chatcmpl-${(0,d.randomUUID)()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:q,choices:[{index:0,message:{role:"assistant",content:p},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}})),url:R,headers:{},transformedBody:D}:(0,f.DV)(502,"Gemini Business returned no text. The cookie may be expired or the entry URL is wrong.",D,R)}}function j(a){if("string"!=typeof a)return"";let b=a.trim();return b||""}function k(a,b){if(!a||"object"!=typeof a)return"";for(let c of b){let b=a[c];if("string"==typeof b&&b.trim().length>0)return b.trim()}return""}function l(a,b){for(let c of a.split(";")){let[a,...d]=c.trim().split("=");if(a===b)return d.join("=")}return null}},47360:(a,b,c)=>{c.d(b,{I:()=>g});var d=c(97510),e=c(61408),f=c(23060);class g extends d.Hv{constructor(){super("pollinations",e.xq.pollinations||{format:"openai"}),this.poolConfig=f.W}buildUrl(a,b,c=0,d=null){let e=this.getBaseUrls();return e[c]||e[0]||"https://gen.pollinations.ai/v1/chat/completions"}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return c&&(d.Authorization=`Bearer ${c}`),b&&(d.Accept="text/event-stream"),d}transformRequest(a,b,c,d){if("object"==typeof b&&null!==b){b.model=a,b.stream=c;let d=b.response_format?.type;("json_object"===d||"json_schema"===d)&&(b.jsonMode=!0)}return b}async execute(a){let b;if(!(!a.credentials?.apiKey&&!a.credentials?.accessToken))return super.execute(a);let c=this.getPool();try{b=c?await c.acquireBlocking(1e4):null}catch{b=null}b&&(a.upstreamExtraHeaders={...b.buildHeaders(),...a.upstreamExtraHeaders});try{let d=await super.execute(a);if(b&&c){let a=d.response.status;429===a?c.reportCooldown(b):a>=500?c.reportDead(b):c.reportSuccess(b)}return d}catch(d){if(b&&c&&c.reportCooldown(b),d?.status===401||d?.statusCode===401){let b=a.model||"";if(["claude","claude-fast","claude-large","gemini","gemini-fast","midijourney","midijourney-large"].includes(b)){let a=Error(`Pollinations model "${b}" requires an API key. Free keyless models: openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning. Get a Pollinations API key at https://enter.pollinations.ai and add it in Settings → API Keys.`);throw a.status=401,a.type="authentication_error",a}}throw d}finally{b?.release()}}}},47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,gK:()=>e,j$:()=>d.j$,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(58246);async function e(a){return null}},49059:(a,b,c)=>{c.d(b,{K:()=>e});var d=c(74350);class e extends d.L{constructor(){super("codebuddy-cn")}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d);if(!e||"object"!=typeof e||Array.isArray(e))return e;e.stream=!0;let f=e.reasoning_effort;return"none"===f||"off"===f?delete e.reasoning_effort:f&&(e.reasoning_summary="auto"),e}}},50954:(a,b,c)=>{c.d(b,{Lf:()=>f,W9:()=>g,fk:()=>e,lT:()=>d,of:()=>i,p1:()=>h});let d=()=>void 0,e=()=>void 0,f=()=>void 0,g=()=>void 0,h=()=>void 0,i=()=>void 0},52089:(a,b,c)=>{c.d(b,{No:()=>m});var d=c(97510);let e="https://theoldllm.vercel.app/api/chatgpt",f="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",g={"gpt-5.4":"GPT_5_4","gpt-5.3":"GPT_5_3","gpt-5.2":"GPT_5_2","gpt-5.1":"GPT_5_1","gpt-5":"GPT_5",gpt5_4:"GPT_5_4",gpt5_3:"GPT_5_3",gpt5_2:"GPT_5_2",gpt5_1:"GPT_5_1",gpt_4o:"GPT_4O","gpt-4o":"GPT_4O",gpt_5_3:"GPT_5_3",gpt_5_2:"GPT_5_2",gpt_5_1:"GPT_5_1",gpt_5:"GPT_5"},h={"claude-4.6-opus":"CLAUDE_4_6_OPUS","claude-4.6-sonnet":"CLAUDE_4_6_SONNET","claude-4.5-haiku":"CLAUDE_4_5_HAIKU",claude_opus_4:"CLAUDE_4_6_OPUS",claude_sonnet_4:"CLAUDE_4_6_SONNET",claude_haiku_3_5:"CLAUDE_4_5_HAIKU","claude opus 4":"CLAUDE_4_6_OPUS","claude sonnet 4":"CLAUDE_4_6_SONNET","claude haiku 3.5":"CLAUDE_4_5_HAIKU"};function i(a){let b=a.toLowerCase().trim(),c=b.replace(/[_\s]+/g,"-");if(g[c])return g[c];let d=b.replace(/[-\s]+/g,"_");if(g[d])return g[d];if(h[b])return h[b];if(b.includes("claude")){if(b.includes("opus"))return"CLAUDE_4_6_OPUS";if(b.includes("sonnet"))return"CLAUDE_4_6_SONNET";if(b.includes("haiku"))return"CLAUDE_4_5_HAIKU"}return b.includes("gpt")&&b.includes("5"),"GPT_5_4"}let j=f.slice(0,20);function k(){let a=Date.now(),b=`${a}-oldllm-client-2026-${j}`,c=0;for(let a=0;a<b.length;a++)c=(c<<5)-c+b.charCodeAt(a),c&=c;let d=crypto.randomUUID().replace(/-/g,"").slice(0,8);return`${a.toString(36)}-${Math.abs(c).toString(36)}-${d}`}async function l(a,b){let c=new AbortController,d=setTimeout(()=>c.abort(),12e4),g=b?()=>c.abort(b.reason):void 0;b?.addEventListener("abort",g,{once:!0});try{return await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Version":"3.8.4","X-Request-Token":k(),"User-Agent":f},body:JSON.stringify(a),signal:c.signal})}finally{clearTimeout(d),g&&b?.removeEventListener("abort",g)}}class m extends d.Hv{constructor(){super("theoldllm",{format:"openai"})}buildUrl(a,b){return e}buildHeaders(a){return{"Content-Type":"application/json","X-Client-Version":"3.8.4","User-Agent":f}}transformRequest(a,b,c){return"object"==typeof b&&null!==b?{...b,model:i(a)}:b}async testConnection(a,b,c){try{let a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Client-Version":"3.8.4","X-Request-Token":k(),"User-Agent":f},body:JSON.stringify({model:"GPT_5_4",messages:[{role:"user",content:"ping"}],stream:!1}),signal:b??void 0});return 200===a.status}catch{return c?.warn?.("THEOLDLLM","testConnection network error"),!1}}async execute(a){let{model:b,stream:c,body:d,signal:f,log:g}=a,h=new TextEncoder;if(f?.aborted)return{response:new Response(h.encode(JSON.stringify({error:{message:"Request aborted",type:"abort",code:"ABORTED"}})),{status:499,headers:{"Content-Type":"application/json"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d};try{let k={...d,model:i(b),stream:!0},m=await l(k,f),n=await m.text();if(function(a,b){if(401===a||403===a)return!0;try{let a=JSON.parse(b);return a?.error?.type==="access_denied"||"string"==typeof a?.error&&/blocked|denied|invalid/i.test(a.error)}catch{return!1}}(m.status,n)&&(g?.warn?.("THEOLDLLM",`Token rejected (${m.status}), retrying with fresh token…`),m=await l(k,f),n=await m.text()),200===m.status&&n){var j;let f=c?n:(j=function(a){let b="";for(let c of a.split("\n"))if(c.startsWith("data: ")&&"data: [DONE]"!==c)try{let a=JSON.parse(c.slice(6));b+=a.choices?.[0]?.delta?.content||a.choices?.[0]?.delta?.text||""}catch{}return b}(n),JSON.stringify({id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:i(b),choices:[{index:0,message:{role:"assistant",content:j},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}));return{response:new Response(h.encode(f),{status:200,headers:{"Content-Type":c?"text/event-stream":"application/json","Cache-Control":"no-cache"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d}}return{response:new Response(h.encode(function(a,b){let c=b;for(let a of b.split("\n"))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6));if(b.error){c=JSON.stringify(b.error);break}}catch{}return JSON.stringify({error:{message:c,type:"upstream_error",code:`HTTP_${a}`}})}(m.status,n)),{status:m.status,headers:{"Content-Type":"application/json"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d}}catch(c){let b=c instanceof Error?c.message:String(c);return g?.error?.("THEOLDLLM",`Executor error: ${b}`),{response:new Response(h.encode(JSON.stringify({error:{message:b,type:"upstream_error",code:"EXECUTOR_ERROR"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:e,headers:this.buildHeaders(a.credentials),transformedBody:d}}}}},53198:(a,b,c)=>{c.d(b,{A:()=>x});var d=c(77598),e=c(74199),f=c(36081),g=c(97510);let h=process.env.COMMAND_CODE_VERSION?.trim()||"0.33.2",i=new TextEncoder;function j(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function k(a){return Array.isArray(a)?a.filter(j):[]}function l(a){return"string"==typeof a?a:void 0}function m(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}function n(a){if(j(a))return a;if("string"==typeof a&&a.trim())try{let b=JSON.parse(a);if(j(b))return b}catch(a){console.warn("[commandCode] tool arg parse failed:",a instanceof Error?a.message:String(a))}return{}}function o(a){return"string"==typeof a?a:k(a).filter(a=>"text"===a.type).map(a=>l(a.text)||"").join("\n")}let p=[/kimi-k2/i,/qwen3\.\d/i,/step-?3/i,/claude-fable/i,/gpt-5/i,/fugu/i],q=["reasoning_effort","reasoning","thinking","effort","output_config","extra_body"];function r(a){let b=a.trim();if(!(!b||b.startsWith(":")||b.startsWith("event:"))&&(b.startsWith("data:")&&(b=b.slice(5).trim()),b&&"[DONE]"!==b))try{return JSON.parse(b)}catch(a){console.warn("[commandCode] stream line parse failed:",a instanceof Error?a.message:String(a));return}}function s(a){return"tool-calls"===a||"tool_calls"===a||"toolUse"===a?"tool_calls":"length"===a||"max_tokens"===a||"max-tokens"===a||"max_output_tokens"===a?"length":"stop"}function t(a,b,c,d=null){return{id:a,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:c,finish_reason:d}]}}function u(a){return i.encode(`data: ${JSON.stringify(a)}
|
|
259
259
|
|
|
260
|
-
`)}function v(a,b){if("error"===a.type)throw Error(l((j(a.error)?a.error:{}).message)||l(a.error)||"Command Code stream error");switch(a.type){case"text-delta":b.content+=l(a.text)||"";break;case"reasoning-delta":b.reasoning+=l(a.text)||"";break;case"tool-call":{let c=n(a.input??a.args??a.arguments);b.toolCalls.push({id:l(a.toolCallId)||l(a.id)||(0,d.randomUUID)(),type:"function",function:{name:l(a.toolName)||l(a.name)||"",arguments:JSON.stringify(c)}});break}case"finish":b.finishReason=s(a.finishReason),b.usage=j(a.totalUsage)?a.totalUsage:null}}async function w(a,b,c){let e=a.body?.getReader();if(!e)throw Error("Command Code response missing body");let f=new TextDecoder,g="",h={content:"",reasoning:"",toolCalls:[],finishReason:"stop",usage:null};try{for(;;){if(c?.aborted)throw new DOMException("The operation was aborted","AbortError");let{done:a,value:b}=await e.read();if(a)break;let d=(g+=f.decode(b,{stream:!0})).split("\n");for(let a of(g=d.pop()||"",d)){let b=r(a);j(b)&&v(b,h)}}if(g.trim()){let a=r(g);j(a)&&v(a,h)}}finally{try{await e.cancel()}catch(a){console.warn("[commandCode] reader cancel failed:",a instanceof Error?a.message:String(a))}try{e.releaseLock()}catch(a){console.warn("[commandCode] reader releaseLock failed:",a instanceof Error?a.message:String(a))}}let i={role:"assistant",content:h.content};h.reasoning&&(i.reasoning_content=h.reasoning),h.toolCalls.length>0&&(i.tool_calls=h.toolCalls);let k={id:`chatcmpl-${(0,d.randomUUID)()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:i,finish_reason:h.finishReason}]},l=function(a){if(!a)return;let b=j(a.inputTokenDetails)?a.inputTokenDetails:{},c=(m(a.inputTokens)||0)+(m(b.cacheReadTokens)||0),d=m(a.outputTokens)||0;return{prompt_tokens:c,completion_tokens:d,total_tokens:c+d}}(h.usage);return l&&(k.usage=l),new Response(JSON.stringify(k),{status:200,headers:{"Content-Type":"application/json"}})}class x extends g.Hv{constructor(a="command-code"){super(a,f.Mo["command-code"])}buildUrl(){let a=(this.config.baseUrl||"https://api.commandcode.ai").replace(/\/$/,"");return`${a}${this.config.chatPath||"/alpha/generate"}`}async execute({model:a,body:b,stream:c,credentials:f,signal:v,upstreamExtraHeaders:x}){let y,z,A,B,C,D,E,F=f?.apiKey||f?.accessToken;if(!F)throw Error("Command Code API key required");let G={"Content-Type":"application/json",Authorization:`Bearer ${F}`,"x-command-code-version":h,"x-cli-environment":"external","x-project-slug":"pi-cc","x-taste-learning":"false","x-co-flag":"false","x-session-id":(0,d.randomUUID)()};(0,g._F)(G,x);let H=function(a,b,c=!1){let d=j(b)?b:{},f="string"==typeof d.model&&d.model.trim().length>0?d.model:a,g=function(a,b){let c=k(a),d=function(a){let b=new Set,c=new Set;for(let d of a)if("assistant"===d.role)for(let a of k(d.tool_calls)){let c=l(a.id);c&&b.add(c)}else if("tool"===d.role){let a=l(d.tool_call_id);a&&c.add(a)}return new Set([...b].filter(a=>c.has(a)))}(c),f=[],g=[],h=!(!b||/(?:^|\/)mimo-v2\.5-pro$/i.test(b))&&(!!(/(?:^|\/)mimo-v2\.5$/i.test(b)||/(?:^|\/)mimo-v2-omni$/i.test(b)||p.some(a=>a.test(b)))||(0,e.R)(b));for(let a of c){let b=l(a.role);if("system"===b||"developer"===b){let b=o(a.content);b&&g.push(b);continue}if("user"===b){f.push({role:"user",content:function(a,b){if(!b||"string"==typeof a)return o(a);let c=[];for(let b of k(a)){var d;if("text"===b.type){let a=l(b.text);a&&c.push({type:"text",text:a});continue}let a="image"===(d=b).type?l(d.image):"image_url"===d.type?j(d.image_url)?l(d.image_url.url):l(d.image_url):void 0;if(a){c.push({type:"image",image:a});continue}}return 0===c.length&&c.push({type:"text",text:""}),c}(a.content,h)});continue}if("assistant"===b){let b=[],c=o(a.content);for(let e of(c&&b.push({type:"text",text:c}),k(a.tool_calls))){let a=l(e.id)||"";if(!a||!d.has(a))continue;let c=j(e.function)?e.function:{};b.push({type:"tool-call",toolCallId:a,toolName:l(c.name)||"",input:n(c.arguments)})}b.length>0&&f.push({role:"assistant",content:b});continue}if("tool"===b){let b=l(a.tool_call_id)||"";if(!b||!d.has(b))continue;f.push({role:"tool",content:[{type:"tool-result",toolCallId:b,toolName:l(a.name)||"",output:{type:"text",value:o(a.content)}}]})}}return{system:g.join("\n\n"),messages:f}}(d.messages,f),h="string"==typeof d.system?d.system:"",i=[g.system,h].filter(Boolean).join("\n\n"),r={model:f,messages:g.messages,tools:k(d.tools).map(a=>{let b=j(a.function)?a.function:a;return{type:"function",name:l(b.name)||"",description:l(b.description)||"",input_schema:j(b.parameters)?b.parameters:{}}}),system:i,stream:!0},s=function(a){let b=m(a);if(void 0!==b&&!(b<=0))return Math.min(Math.floor(b),2e5)}(d.max_tokens??d.max_completion_tokens);for(let a of(void 0!==s&&(r.max_tokens=s),q)){let b=d[a];null!=b&&(r[a]=b)}return{config:{workingDir:"/workspace",date:new Date().toISOString().slice(0,10),environment:"external",structure:[],isGitRepo:!1,currentBranch:"",mainBranch:"",gitStatus:"",recentCommits:[]},memory:"",taste:"",skills:"",permissionMode:"standard",params:r}}(a,b,c),I=this.buildUrl(),J=await fetch(I,{method:"POST",headers:G,body:JSON.stringify(H),signal:v||void 0});return J.ok?{response:c?(y=`chatcmpl-${(0,d.randomUUID)()}`,z=J.body?.getReader(),A=new TextDecoder,B="",C=!1,D=!1,E={content:"",reasoning:"",toolCalls:[],finishReason:"stop",usage:null},new Response(new ReadableStream({start(b){if(!z)return void b.error(Error("Command Code response missing body"));let c=()=>{D=!0,z.cancel().catch(()=>void 0),b.error(new DOMException("The operation was aborted","AbortError"))};v?.addEventListener("abort",c,{once:!0});let e=c=>{if(j(c)&&!D)switch(!C&&(C=!0,b.enqueue(u(t(y,a,{role:"assistant"})))),c.type){case"text-delta":{let d=l(c.text)||"";d&&b.enqueue(u(t(y,a,{content:d}))),E.content+=d;break}case"reasoning-delta":{let d=l(c.text)||"";d&&(b.enqueue(u(t(y,a,{reasoning_content:d}))),E.reasoning+=d);break}case"tool-call":{let e=E.toolCalls.length,f=n(c.input??c.args??c.arguments),g={id:l(c.toolCallId)||l(c.id)||(0,d.randomUUID)(),type:"function",function:{name:l(c.toolName)||l(c.name)||"",arguments:JSON.stringify(f)}};E.toolCalls.push(g),b.enqueue(u(t(y,a,{tool_calls:[{index:e,...g}]})));break}case"reasoning-end":break;case"finish":E.finishReason=s(c.finishReason),E.usage=j(c.totalUsage)?c.totalUsage:null,b.enqueue(u(t(y,a,{},E.finishReason))),b.enqueue(i.encode("data: [DONE]\n\n")),D=!0,b.close(),z.cancel().catch(()=>void 0);break;case"error":throw Error(l((j(c.error)?c.error:{}).message)||l(c.error)||"Command Code stream error")}};(async()=>{try{for(;;){if(D)return;let{done:a,value:b}=await z.read();if(a)break;let c=(B+=A.decode(b,{stream:!0})).split("\n");for(let a of(B=c.pop()||"",c))e(r(a))}B.trim()&&e(r(B)),D||(C||b.enqueue(u(t(y,a,{role:"assistant"}))),b.enqueue(u(t(y,a,{},E.finishReason))),b.enqueue(i.encode("data: [DONE]\n\n")),b.close())}catch(a){b.error(a)}finally{v?.removeEventListener("abort",c);try{z.releaseLock()}catch(a){console.warn("[commandCode] reader releaseLock failed:",a instanceof Error?a.message:String(a))}}})()},cancel:()=>(D=!0,z?.cancel())}),{status:200,headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache"}})):await w(J,a,v),url:I,headers:G,transformedBody:H}:{response:new Response(await J.text().catch(()=>(console.warn("[commandCode] upstream text failed"),""))||`Command Code API error ${J.status}`,{status:J.status,statusText:J.statusText,headers:J.headers}),url:I,headers:G,transformedBody:H}}}},54669:(a,b,c)=>{"use strict";c.d(b,{extractContextEditingTelemetry:()=>i,fm:()=>f});let d="clear_tool_uses_20250919",e="clear_thinking_20251015";function f(a,b){if(!b.enabled||!a||"object"!=typeof a)return;let c=a.context_management&&"object"==typeof a.context_management?a.context_management:{},f=Array.isArray(c.edits)?[...c.edits]:[];f.some(a=>a&&a.type===d)||(f.push({type:d,trigger:{type:"input_tokens",value:1e5},keep:{type:"tool_uses",value:3}}),f.sort((a,b)=>(a&&a.type===e?0:1)-(b&&b.type===e?0:1))),c.edits=f,a.context_management=c}function g(a){if("number"==typeof a&&Number.isFinite(a))return Math.max(0,Math.floor(a));if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return Math.max(0,Math.floor(b))}return 0}function h(a,b){let c=a;for(let a of b){if(!c||"object"!=typeof c)return;c=c[a]}return c}function i(a){if(!a||"object"!=typeof a)return null;let b=[h(a,["context_management","applied_edits"]),h(a,["usage","context_management","applied_edits"]),h(a,["usage","applied_edits"])].find(a=>Array.isArray(a));if(!Array.isArray(b)||0===b.length)return null;let c=0,d=0;for(let a of b)a&&"object"==typeof a&&(c+=g(a.cleared_input_tokens??a.clearedInputTokens),d+=g(a.cleared_tool_uses??a.clearedToolUses));return c<=0&&d<=0?null:{editCount:b.length,clearedInputTokens:c,clearedToolUses:d}}},55330:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>ag});var e=c(59078),f=c(11655),g=c(78269),h=c(13511),i=c(11191),j=c(19946),k=c(85308),l=c(74350),m=c(83041),n=c(84664),o=c(47360),p=c(12022),q=c(35538),r=c(61592),s=c(73870),t=c(18812),u=c(75582),v=c(22965),w=c(78095),x=c(98492),y=c(42686),z=c(9927),A=c(12103),B=c(88357),C=c(34156),D=c(53198),E=c(79855),F=c(31655),G=c(15890),H=c(95089),I=c(10082),J=c(56168),K=c(63882),L=c(98185),M=c(98026),N=c(88331),O=c(57197),P=c(60059),Q=c(30973),R=c(81551),S=c(64029),T=c(87943),U=c(9379),V=c(28537),W=c(33085),X=c(2324),Y=c(71394),Z=c(52089),$=c(76422),_=c(12560),aa=c(69071),ab=c(22376),ac=c(49059),ad=c(21880);c(97510),c(87836);var ae=c(69505);c(39326);var af=a([j,K,ae]);[j,K,ae]=af.then?(await af)():af;let ah={antigravity:new e.cV,agy:new e.cV,github:new f.x,qoder:new g.DH,kiro:new h.Br,"amazon-q":new h.Br("amazon-q"),bedrock:new m.UD,codex:new i.T1,cursor:new j.ou,trae:new k.q,glm:new n.a("glm"),"glm-cn":new n.a("glm-cn"),glmt:new n.a("glmt"),cu:new j.ou,"azure-openai":new C.f,"command-code":new D.A,cmd:new D.A,gitlab:new E.L,"gitlab-duo":new E.L("gitlab-duo"),nlpcloud:new F.L,pollinations:new o.I,pol:new o.I,"cloudflare-ai":new p.x,cf:new p.x,"opencode-zen":new q.P("opencode-zen"),"opencode-go":new q.P("opencode-go"),opencode:new q.P("opencode-zen"),puter:new r.I,pu:new r.I,vertex:new s.w0,"vertex-partner":new s.w0,cliproxyapi:new t.SC,cpa:new t.SC,"9router":new u.Fs,nr:new u.Fs,"perplexity-web":new v.A,"pplx-web":new v.A,"grok-web":new w.$,"claude-web":new K.z,"cw-web":new K.z,"gemini-web":new x.d,gweb:new x.d,"gemini-business":new y.N,gembiz:new y.N,"chatgpt-web":new z.RF,"cgpt-web":new z.RF,"blackbox-web":new A.am,"bb-web":new A.am,"muse-spark-web":new B.nq,"ms-web":new B.nq,windsurf:new G.i,ws:new G.i,"devin-cli":new H.c,devin:new H.c,"deepseek-web":new I.E,"ds-web":new I.E,"adapta-web":new J.N,"adp-web":new J.N,"copilot-web":new L.yx,"copilot-m365-web":new M.T,copilot:new L.yx,"veoaifree-web":new N.q,"veo-free":new N.q,"duckduckgo-web":new O.eN,ddgw:new O.eN,"t3-web":new P.lc,t3chat:new P.lc,"inner-ai":new Q.G,"in-ai":new Q.G,huggingchat:new R.P,hc:new R.P,"poe-web":new S.I,poe:new S.I,"venice-web":new T.g,ven:new T.g,"v0-vercel-web":new U.B,v0:new U.B,"kimi-web":new V.Kt,"kimi-coding-apikey":new Y.C,"kimi-coding":new Y.C,"doubao-web":new W.c,db:new W.c,"qwen-web":new X.j,qw:new X.j,theoldllm:new Z.No,tllm:new Z.No,chipotle:new $.OD,pepper:new $.OD,lmarena:new _.mu,lma:new _.mu,mimocode:new aa.Vr,mcode:new aa.Vr,"grok-cli":new ab.h,gc:new ab.h,"codebuddy-cn":new ac.K,cbcn:new ac.K,"zenmux-free":new ad.l,zmf:new ad.l},ai=new Map;function ag(a){return ah[a]?ah[a]:(ai.has(a)||ai.set(a,new l.L(a)),ai.get(a))}d()}catch(a){d(a)}})},56168:(a,b,c)=>{"use strict";c.d(b,{N:()=>t});var d=c(97510),e=c(72221),f=c(43659);let g="https://agent.adapta.one",h="https://clerk.agent.adapta.one",i=`${g}/api/chat/stream/v1`,j={"adapta-one":14,"adapta-gpt":14,"adapta-claude":14,"adapta-gemini":14,"adapta-grok":14,"adapta-deepseek":14,"adapta-llama":14},k="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",l=new Map;function m(a){return a.slice(0,32)}function n(a){let b=a.trim(),c=b.indexOf("=");return c>0&&!b.startsWith("eyJ")?b.slice(c+1).trim():b}function o(a,b){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}})}async function p(a,b,c){let d=await fetch(`${h}/v1/client`,{headers:{Cookie:`__client=${a}`,"User-Agent":k,Origin:g},signal:b??void 0});if(!d.ok)throw Error(`Clerk /v1/client returned HTTP ${d.status} — check your __client cookie`);let e=await d.json(),f=(e?.response?.sessions??[]).find(a=>"active"===a.status);if(!f?.id)throw Error("No active Clerk session found — your __client cookie may be expired or invalid");return c?.info?.("ADAPTA-WEB",`Got session ID: ${f.id}`),f.id}async function q(a,b,c,d){let e=await fetch(`${h}/v1/client/sessions/${b}/tokens`,{method:"POST",headers:{Cookie:`__client=${a}`,"Content-Type":"application/json","User-Agent":k,Origin:g},signal:c??void 0});if(!e.ok)throw Error(`Clerk token refresh returned HTTP ${e.status}`);let f=await e.json(),i=f?.jwt;if("string"!=typeof i||!i.startsWith("eyJ"))throw Error("Clerk token refresh did not return a valid JWT");return d?.info?.("ADAPTA-WEB",`Got fresh session JWT (${i.length} chars)`),i}async function r(a,b,c){var d;let e,f=!(e=l.get(m(a)))||Date.now()>=e.jwtExpiresAt-3e4?null:e.jwt;if(f)return c?.info?.("ADAPTA-WEB","Using cached session JWT"),f;let g=await p(a,b,c),h=await q(a,g,b,c);return d=function(a){try{let b=a.split(".");if(b.length<2)return 0;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=JSON.parse(atob(c));return"number"==typeof d.exp?1e3*d.exp:0}catch{return 0}}(h)||Date.now()+55e3,l.set(m(a),{sessionId:g,jwt:h,jwtExpiresAt:d}),h}function s(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>String(a.text??"")).join(""):String(a??"")}class t extends d.Hv{constructor(){super("adapta-web",{baseUrl:i})}async testConnection(a,b){try{let c=String(a?.apiKey??"");if(!c)return!1;let d=n(c);return!!await p(d,b)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:p}){let q,t=b??{},u=Array.isArray(t.messages)?t.messages:[],{hasTools:v,requestedTools:w,effectiveMessages:x}=(0,e.S$)(t,u),y=String(d?.apiKey??"");if(!y)return{response:o(401,"Missing Adapta credentials — paste your __client cookie from .clerk.agent.adapta.one"),url:i,headers:{},transformedBody:b};let z=n(y);try{p?.info?.("ADAPTA-WEB","Obtaining session JWT via Clerk..."),q=await r(z,h,p)}catch(c){let a=c instanceof Error?c.message:String(c);return p?.warn?.("ADAPTA-WEB",`Auth failed: ${a}`),{response:o(401,`Adapta auth failed: ${(0,f.sanitizeErrorMessage)(a)}`),url:i,headers:{},transformedBody:b}}let A=j[a]??14,B=function(a){let b="",c=[];for(let d of a)"system"===("developer"===d.role?"system":d.role)?b+=(b?"\n":"")+s(d.content):c.push(d);let d=[],e=!1;for(let a of c){if("user"!==a.role&&"assistant"!==a.role)continue;let c=s(a.content);c.trim()&&(!e&&b&&"user"===a.role?(d.push({role:"user",parts:[{type:"text",text:`${b}
|
|
260
|
+
`)}function v(a,b){if("error"===a.type)throw Error(l((j(a.error)?a.error:{}).message)||l(a.error)||"Command Code stream error");switch(a.type){case"text-delta":b.content+=l(a.text)||"";break;case"reasoning-delta":b.reasoning+=l(a.text)||"";break;case"tool-call":{let c=n(a.input??a.args??a.arguments);b.toolCalls.push({id:l(a.toolCallId)||l(a.id)||(0,d.randomUUID)(),type:"function",function:{name:l(a.toolName)||l(a.name)||"",arguments:JSON.stringify(c)}});break}case"finish":b.finishReason=s(a.finishReason),b.usage=j(a.totalUsage)?a.totalUsage:null}}async function w(a,b,c){let e=a.body?.getReader();if(!e)throw Error("Command Code response missing body");let f=new TextDecoder,g="",h={content:"",reasoning:"",toolCalls:[],finishReason:"stop",usage:null};try{for(;;){if(c?.aborted)throw new DOMException("The operation was aborted","AbortError");let{done:a,value:b}=await e.read();if(a)break;let d=(g+=f.decode(b,{stream:!0})).split("\n");for(let a of(g=d.pop()||"",d)){let b=r(a);j(b)&&v(b,h)}}if(g.trim()){let a=r(g);j(a)&&v(a,h)}}finally{try{await e.cancel()}catch(a){console.warn("[commandCode] reader cancel failed:",a instanceof Error?a.message:String(a))}try{e.releaseLock()}catch(a){console.warn("[commandCode] reader releaseLock failed:",a instanceof Error?a.message:String(a))}}let i={role:"assistant",content:h.content};h.reasoning&&(i.reasoning_content=h.reasoning),h.toolCalls.length>0&&(i.tool_calls=h.toolCalls);let k={id:`chatcmpl-${(0,d.randomUUID)()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:i,finish_reason:h.finishReason}]},l=function(a){if(!a)return;let b=j(a.inputTokenDetails)?a.inputTokenDetails:{},c=(m(a.inputTokens)||0)+(m(b.cacheReadTokens)||0),d=m(a.outputTokens)||0;return{prompt_tokens:c,completion_tokens:d,total_tokens:c+d}}(h.usage);return l&&(k.usage=l),new Response(JSON.stringify(k),{status:200,headers:{"Content-Type":"application/json"}})}class x extends g.Hv{constructor(a="command-code"){super(a,f.Mo["command-code"])}buildUrl(){let a=(this.config.baseUrl||"https://api.commandcode.ai").replace(/\/$/,"");return`${a}${this.config.chatPath||"/alpha/generate"}`}async execute({model:a,body:b,stream:c,credentials:f,signal:v,upstreamExtraHeaders:x}){let y,z,A,B,C,D,E,F=f?.apiKey||f?.accessToken;if(!F)throw Error("Command Code API key required");let G={"Content-Type":"application/json",Authorization:`Bearer ${F}`,"x-command-code-version":h,"x-cli-environment":"external","x-project-slug":"pi-cc","x-taste-learning":"false","x-co-flag":"false","x-session-id":(0,d.randomUUID)()};(0,g._F)(G,x);let H=function(a,b,c=!1){let d=j(b)?b:{},f="string"==typeof d.model&&d.model.trim().length>0?d.model:a,g=function(a,b){let c=k(a),d=function(a){let b=new Set,c=new Set;for(let d of a)if("assistant"===d.role)for(let a of k(d.tool_calls)){let c=l(a.id);c&&b.add(c)}else if("tool"===d.role){let a=l(d.tool_call_id);a&&c.add(a)}return new Set([...b].filter(a=>c.has(a)))}(c),f=[],g=[],h=!(!b||/(?:^|\/)mimo-v2\.5-pro$/i.test(b))&&(!!(/(?:^|\/)mimo-v2\.5$/i.test(b)||/(?:^|\/)mimo-v2-omni$/i.test(b)||p.some(a=>a.test(b)))||(0,e.R)(b));for(let a of c){let b=l(a.role);if("system"===b||"developer"===b){let b=o(a.content);b&&g.push(b);continue}if("user"===b){f.push({role:"user",content:function(a,b){if(!b||"string"==typeof a)return o(a);let c=[];for(let b of k(a)){var d;if("text"===b.type){let a=l(b.text);a&&c.push({type:"text",text:a});continue}let a="image"===(d=b).type?l(d.image):"image_url"===d.type?j(d.image_url)?l(d.image_url.url):l(d.image_url):void 0;if(a){c.push({type:"image",image:a});continue}}return 0===c.length&&c.push({type:"text",text:""}),c}(a.content,h)});continue}if("assistant"===b){let b=[],c=o(a.content);for(let e of(c&&b.push({type:"text",text:c}),k(a.tool_calls))){let a=l(e.id)||"";if(!a||!d.has(a))continue;let c=j(e.function)?e.function:{};b.push({type:"tool-call",toolCallId:a,toolName:l(c.name)||"",input:n(c.arguments)})}b.length>0&&f.push({role:"assistant",content:b});continue}if("tool"===b){let b=l(a.tool_call_id)||"";if(!b||!d.has(b))continue;f.push({role:"tool",content:[{type:"tool-result",toolCallId:b,toolName:l(a.name)||"",output:{type:"text",value:o(a.content)}}]})}}return{system:g.join("\n\n"),messages:f}}(d.messages,f),h="string"==typeof d.system?d.system:"",i=[g.system,h].filter(Boolean).join("\n\n"),r={model:f,messages:g.messages,tools:k(d.tools).map(a=>{let b=j(a.function)?a.function:a;return{type:"function",name:l(b.name)||"",description:l(b.description)||"",input_schema:j(b.parameters)?b.parameters:{}}}),system:i,stream:!0},s=function(a){let b=m(a);if(void 0!==b&&!(b<=0))return Math.min(Math.floor(b),2e5)}(d.max_tokens??d.max_completion_tokens);for(let a of(void 0!==s&&(r.max_tokens=s),q)){let b=d[a];null!=b&&(r[a]=b)}return{config:{workingDir:"/workspace",date:new Date().toISOString().slice(0,10),environment:"external",structure:[],isGitRepo:!1,currentBranch:"",mainBranch:"",gitStatus:"",recentCommits:[]},memory:"",taste:"",skills:"",permissionMode:"standard",params:r}}(a,b,c),I=this.buildUrl(),J=await fetch(I,{method:"POST",headers:G,body:JSON.stringify(H),signal:v||void 0});return J.ok?{response:c?(y=`chatcmpl-${(0,d.randomUUID)()}`,z=J.body?.getReader(),A=new TextDecoder,B="",C=!1,D=!1,E={content:"",reasoning:"",toolCalls:[],finishReason:"stop",usage:null},new Response(new ReadableStream({start(b){if(!z)return void b.error(Error("Command Code response missing body"));let c=()=>{D=!0,z.cancel().catch(()=>void 0),b.error(new DOMException("The operation was aborted","AbortError"))};v?.addEventListener("abort",c,{once:!0});let e=c=>{if(j(c)&&!D)switch(!C&&(C=!0,b.enqueue(u(t(y,a,{role:"assistant"})))),c.type){case"text-delta":{let d=l(c.text)||"";d&&b.enqueue(u(t(y,a,{content:d}))),E.content+=d;break}case"reasoning-delta":{let d=l(c.text)||"";d&&(b.enqueue(u(t(y,a,{reasoning_content:d}))),E.reasoning+=d);break}case"tool-call":{let e=E.toolCalls.length,f=n(c.input??c.args??c.arguments),g={id:l(c.toolCallId)||l(c.id)||(0,d.randomUUID)(),type:"function",function:{name:l(c.toolName)||l(c.name)||"",arguments:JSON.stringify(f)}};E.toolCalls.push(g),b.enqueue(u(t(y,a,{tool_calls:[{index:e,...g}]})));break}case"reasoning-end":break;case"finish":E.finishReason=s(c.finishReason),E.usage=j(c.totalUsage)?c.totalUsage:null,b.enqueue(u(t(y,a,{},E.finishReason))),b.enqueue(i.encode("data: [DONE]\n\n")),D=!0,b.close(),z.cancel().catch(()=>void 0);break;case"error":throw Error(l((j(c.error)?c.error:{}).message)||l(c.error)||"Command Code stream error")}};(async()=>{try{for(;;){if(D)return;let{done:a,value:b}=await z.read();if(a)break;let c=(B+=A.decode(b,{stream:!0})).split("\n");for(let a of(B=c.pop()||"",c))e(r(a))}B.trim()&&e(r(B)),D||(C||b.enqueue(u(t(y,a,{role:"assistant"}))),b.enqueue(u(t(y,a,{},E.finishReason))),b.enqueue(i.encode("data: [DONE]\n\n")),b.close())}catch(a){b.error(a)}finally{v?.removeEventListener("abort",c);try{z.releaseLock()}catch(a){console.warn("[commandCode] reader releaseLock failed:",a instanceof Error?a.message:String(a))}}})()},cancel:()=>(D=!0,z?.cancel())}),{status:200,headers:{"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache"}})):await w(J,a,v),url:I,headers:G,transformedBody:H}:{response:new Response(await J.text().catch(()=>(console.warn("[commandCode] upstream text failed"),""))||`Command Code API error ${J.status}`,{status:J.status,statusText:J.statusText,headers:J.headers}),url:I,headers:G,transformedBody:H}}}},54669:(a,b,c)=>{c.d(b,{extractContextEditingTelemetry:()=>i,fm:()=>f});let d="clear_tool_uses_20250919",e="clear_thinking_20251015";function f(a,b){if(!b.enabled||!a||"object"!=typeof a)return;let c=a.context_management&&"object"==typeof a.context_management?a.context_management:{},f=Array.isArray(c.edits)?[...c.edits]:[];f.some(a=>a&&a.type===d)||(f.push({type:d,trigger:{type:"input_tokens",value:1e5},keep:{type:"tool_uses",value:3}}),f.sort((a,b)=>(a&&a.type===e?0:1)-(b&&b.type===e?0:1))),c.edits=f,a.context_management=c}function g(a){if("number"==typeof a&&Number.isFinite(a))return Math.max(0,Math.floor(a));if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return Math.max(0,Math.floor(b))}return 0}function h(a,b){let c=a;for(let a of b){if(!c||"object"!=typeof c)return;c=c[a]}return c}function i(a){if(!a||"object"!=typeof a)return null;let b=[h(a,["context_management","applied_edits"]),h(a,["usage","context_management","applied_edits"]),h(a,["usage","applied_edits"])].find(a=>Array.isArray(a));if(!Array.isArray(b)||0===b.length)return null;let c=0,d=0;for(let a of b)a&&"object"==typeof a&&(c+=g(a.cleared_input_tokens??a.clearedInputTokens),d+=g(a.cleared_tool_uses??a.clearedToolUses));return c<=0&&d<=0?null:{editCount:b.length,clearedInputTokens:c,clearedToolUses:d}}},55330:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>ag});var e=c(59078),f=c(11655),g=c(78269),h=c(13511),i=c(11191),j=c(19946),k=c(85308),l=c(74350),m=c(83041),n=c(84664),o=c(47360),p=c(12022),q=c(35538),r=c(61592),s=c(73870),t=c(18812),u=c(75582),v=c(22965),w=c(78095),x=c(98492),y=c(42686),z=c(9927),A=c(12103),B=c(88357),C=c(34156),D=c(53198),E=c(79855),F=c(31655),G=c(15890),H=c(95089),I=c(10082),J=c(56168),K=c(63882),L=c(98185),M=c(98026),N=c(88331),O=c(57197),P=c(60059),Q=c(30973),R=c(81551),S=c(64029),T=c(87943),U=c(9379),V=c(28537),W=c(33085),X=c(2324),Y=c(71394),Z=c(52089),$=c(76422),_=c(12560),aa=c(69071),ab=c(22376),ac=c(49059),ad=c(21880);c(97510),c(87836);var ae=c(69505);c(39326);var af=a([j,K,ae]);[j,K,ae]=af.then?(await af)():af;let ah={antigravity:new e.cV,agy:new e.cV,github:new f.x,qoder:new g.DH,kiro:new h.Br,"amazon-q":new h.Br("amazon-q"),bedrock:new m.UD,codex:new i.T1,cursor:new j.ou,trae:new k.q,glm:new n.a("glm"),"glm-cn":new n.a("glm-cn"),glmt:new n.a("glmt"),cu:new j.ou,"azure-openai":new C.f,"command-code":new D.A,cmd:new D.A,gitlab:new E.L,"gitlab-duo":new E.L("gitlab-duo"),nlpcloud:new F.L,pollinations:new o.I,pol:new o.I,"cloudflare-ai":new p.x,cf:new p.x,"opencode-zen":new q.P("opencode-zen"),"opencode-go":new q.P("opencode-go"),opencode:new q.P("opencode-zen"),puter:new r.I,pu:new r.I,vertex:new s.w0,"vertex-partner":new s.w0,cliproxyapi:new t.SC,cpa:new t.SC,"9router":new u.Fs,nr:new u.Fs,"perplexity-web":new v.A,"pplx-web":new v.A,"grok-web":new w.$,"claude-web":new K.z,"cw-web":new K.z,"gemini-web":new x.d,gweb:new x.d,"gemini-business":new y.N,gembiz:new y.N,"chatgpt-web":new z.RF,"cgpt-web":new z.RF,"blackbox-web":new A.am,"bb-web":new A.am,"muse-spark-web":new B.nq,"ms-web":new B.nq,windsurf:new G.i,ws:new G.i,"devin-cli":new H.c,devin:new H.c,"deepseek-web":new I.E,"ds-web":new I.E,"adapta-web":new J.N,"adp-web":new J.N,"copilot-web":new L.yx,"copilot-m365-web":new M.T,copilot:new L.yx,"veoaifree-web":new N.q,"veo-free":new N.q,"duckduckgo-web":new O.eN,ddgw:new O.eN,"t3-web":new P.lc,t3chat:new P.lc,"inner-ai":new Q.G,"in-ai":new Q.G,huggingchat:new R.P,hc:new R.P,"poe-web":new S.I,poe:new S.I,"venice-web":new T.g,ven:new T.g,"v0-vercel-web":new U.B,v0:new U.B,"kimi-web":new V.Kt,"kimi-coding-apikey":new Y.C,"kimi-coding":new Y.C,"doubao-web":new W.c,db:new W.c,"qwen-web":new X.j,qw:new X.j,theoldllm:new Z.No,tllm:new Z.No,chipotle:new $.OD,pepper:new $.OD,lmarena:new _.mu,lma:new _.mu,mimocode:new aa.Vr,mcode:new aa.Vr,"grok-cli":new ab.h,gc:new ab.h,"codebuddy-cn":new ac.K,cbcn:new ac.K,"zenmux-free":new ad.l,zmf:new ad.l},ai=new Map;function ag(a){return ah[a]?ah[a]:(ai.has(a)||ai.set(a,new l.L(a)),ai.get(a))}d()}catch(a){d(a)}})},56168:(a,b,c)=>{c.d(b,{N:()=>t});var d=c(97510),e=c(72221),f=c(43659);let g="https://agent.adapta.one",h="https://clerk.agent.adapta.one",i=`${g}/api/chat/stream/v1`,j={"adapta-one":14,"adapta-gpt":14,"adapta-claude":14,"adapta-gemini":14,"adapta-grok":14,"adapta-deepseek":14,"adapta-llama":14},k="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",l=new Map;function m(a){return a.slice(0,32)}function n(a){let b=a.trim(),c=b.indexOf("=");return c>0&&!b.startsWith("eyJ")?b.slice(c+1).trim():b}function o(a,b){return new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}})}async function p(a,b,c){let d=await fetch(`${h}/v1/client`,{headers:{Cookie:`__client=${a}`,"User-Agent":k,Origin:g},signal:b??void 0});if(!d.ok)throw Error(`Clerk /v1/client returned HTTP ${d.status} — check your __client cookie`);let e=await d.json(),f=(e?.response?.sessions??[]).find(a=>"active"===a.status);if(!f?.id)throw Error("No active Clerk session found — your __client cookie may be expired or invalid");return c?.info?.("ADAPTA-WEB",`Got session ID: ${f.id}`),f.id}async function q(a,b,c,d){let e=await fetch(`${h}/v1/client/sessions/${b}/tokens`,{method:"POST",headers:{Cookie:`__client=${a}`,"Content-Type":"application/json","User-Agent":k,Origin:g},signal:c??void 0});if(!e.ok)throw Error(`Clerk token refresh returned HTTP ${e.status}`);let f=await e.json(),i=f?.jwt;if("string"!=typeof i||!i.startsWith("eyJ"))throw Error("Clerk token refresh did not return a valid JWT");return d?.info?.("ADAPTA-WEB",`Got fresh session JWT (${i.length} chars)`),i}async function r(a,b,c){var d;let e,f=!(e=l.get(m(a)))||Date.now()>=e.jwtExpiresAt-3e4?null:e.jwt;if(f)return c?.info?.("ADAPTA-WEB","Using cached session JWT"),f;let g=await p(a,b,c),h=await q(a,g,b,c);return d=function(a){try{let b=a.split(".");if(b.length<2)return 0;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=JSON.parse(atob(c));return"number"==typeof d.exp?1e3*d.exp:0}catch{return 0}}(h)||Date.now()+55e3,l.set(m(a),{sessionId:g,jwt:h,jwtExpiresAt:d}),h}function s(a){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>String(a.text??"")).join(""):String(a??"")}class t extends d.Hv{constructor(){super("adapta-web",{baseUrl:i})}async testConnection(a,b){try{let c=String(a?.apiKey??"");if(!c)return!1;let d=n(c);return!!await p(d,b)}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:p}){let q,t=b??{},u=Array.isArray(t.messages)?t.messages:[],{hasTools:v,requestedTools:w,effectiveMessages:x}=(0,e.S$)(t,u),y=String(d?.apiKey??"");if(!y)return{response:o(401,"Missing Adapta credentials — paste your __client cookie from .clerk.agent.adapta.one"),url:i,headers:{},transformedBody:b};let z=n(y);try{p?.info?.("ADAPTA-WEB","Obtaining session JWT via Clerk..."),q=await r(z,h,p)}catch(c){let a=c instanceof Error?c.message:String(c);return p?.warn?.("ADAPTA-WEB",`Auth failed: ${a}`),{response:o(401,`Adapta auth failed: ${(0,f.sanitizeErrorMessage)(a)}`),url:i,headers:{},transformedBody:b}}let A=j[a]??14,B=function(a){let b="",c=[];for(let d of a)"system"===("developer"===d.role?"system":d.role)?b+=(b?"\n":"")+s(d.content):c.push(d);let d=[],e=!1;for(let a of c){if("user"!==a.role&&"assistant"!==a.role)continue;let c=s(a.content);c.trim()&&(!e&&b&&"user"===a.role?(d.push({role:"user",parts:[{type:"text",text:`${b}
|
|
261
261
|
|
|
262
262
|
${c}`}]}),e=!0):d.push({role:a.role,parts:[{type:"text",text:c}]}))}return d}(x);if(0===B.length)return{response:o(400,"No messages provided"),url:i,headers:{},transformedBody:b};let C={messages:B,aiModelId:A},D={Authorization:`Bearer ${q}`,"Content-Type":"application/json",Accept:"text/event-stream","User-Agent":k,Origin:g,Referer:`${g}/agentic-chat`};p?.info?.("ADAPTA-WEB",`POST ${i} | model=${a} aiModelId=${A} msgs=${B.length}`);let E=await fetch(i,{method:"POST",headers:D,body:JSON.stringify(C),signal:h??void 0});if(!E.ok){let a=`Adapta error HTTP ${E.status}`;return 401===E.status||403===E.status?(a="Adapta session expired or invalid — re-paste your __client cookie from .clerk.agent.adapta.one",l.delete(m(z))):429===E.status&&(a="Adapta rate limited — wait and retry"),p?.warn?.("ADAPTA-WEB",a),{response:o(E.status,a),url:i,headers:D,transformedBody:C}}if(!1!==c){var F;let b,c,d,e,f;return{response:new Response((F=E.body,b=new TextEncoder,c=new TextDecoder,d=`chatcmpl-adp-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e=Math.floor(Date.now()/1e3),f=!1,new ReadableStream({async start(g){let h=F.getReader(),i="",j=(c,f)=>{let h;return h={id:d,object:"chat.completion.chunk",created:e,model:a,choices:[{index:0,delta:c,finish_reason:f??null}]},g.enqueue(b.encode(`data: ${JSON.stringify(h)}
|
|
263
263
|
|
|
264
264
|
`))},k=()=>{f||(f=!0,j({role:"assistant",content:""}))},l=()=>{k(),j({},"stop"),g.enqueue(b.encode("data: [DONE]\n\n")),g.close()};try{for(;;){let{done:a,value:b}=await h.read();if(a)break;let d=(i+=c.decode(b,{stream:!0})).split("\n");for(let a of(i=d.pop()??"",d)){let b;if(!a.startsWith("data: "))continue;let c=a.slice(6).trim();if(!c)continue;try{b=JSON.parse(c)}catch{continue}let d=b.type;if("text-delta"===d){let a=b.delta;if("quick-response"===b.id)continue;"string"==typeof a&&a.length>0&&(k(),j({content:a}))}else if("text-end"===d){if("quick-response"===b.id)continue}else if("error"===d){let a=String(b.errorText??"Adapta upstream error");k(),j({content:`
|
|
265
265
|
|
|
266
|
-
[Erro: ${a}]`}),l();return}else if("done"===d||"end"===d)return void l()}}}catch{}l()}})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:i,headers:D,transformedBody:C}}let G=new TextDecoder,H=E.body.getReader(),I="",J="";try{for(;;){let{done:a,value:b}=await H.read();if(a)break;let c=(I+=G.decode(b,{stream:!0})).split("\n");for(let a of(I=c.pop()??"",c))if(a.startsWith("data: "))try{let b=JSON.parse(a.slice(6));"text-delta"===b.type&&"quick-response"!==b.id&&(J+=String(b.delta??""))}catch{}}}finally{H.releaseLock()}if(v){let{content:b,toolCalls:c,finishReason:d}=(0,e.mU)(J,w,"adp");return c?{response:new Response(JSON.stringify({id:`chatcmpl-adp-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:c},finish_reason:d}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:C}:{response:new Response(JSON.stringify({id:`chatcmpl-adp-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:C}}return{response:new Response(JSON.stringify({id:`chatcmpl-adp-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:J},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:C}}}},56452:(a,b,c)=>{
|
|
266
|
+
[Erro: ${a}]`}),l();return}else if("done"===d||"end"===d)return void l()}}}catch{}l()}})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:i,headers:D,transformedBody:C}}let G=new TextDecoder,H=E.body.getReader(),I="",J="";try{for(;;){let{done:a,value:b}=await H.read();if(a)break;let c=(I+=G.decode(b,{stream:!0})).split("\n");for(let a of(I=c.pop()??"",c))if(a.startsWith("data: "))try{let b=JSON.parse(a.slice(6));"text-delta"===b.type&&"quick-response"!==b.id&&(J+=String(b.delta??""))}catch{}}}finally{H.releaseLock()}if(v){let{content:b,toolCalls:c,finishReason:d}=(0,e.mU)(J,w,"adp");return c?{response:new Response(JSON.stringify({id:`chatcmpl-adp-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:c},finish_reason:d}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:C}:{response:new Response(JSON.stringify({id:`chatcmpl-adp-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:b},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:C}}return{response:new Response(JSON.stringify({id:`chatcmpl-adp-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:J},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:C}}}},56452:(a,b,c)=>{function d(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a}function e(a){if("number"!=typeof a||!Number.isFinite(a))return null;let b=Math.floor(a);return b>0?b:null}function f(a,b){var c;let f=d(a);if(!f||!b)return a;let g=!1,h={...f},i="number"==typeof(c=b.temperature)&&Number.isFinite(c)?c:null;void 0===h.temperature&&null!==i&&(h.temperature=i,g=!0);let j=e(b.maxTokens),k=e(h.max_tokens)||e(h.max_completion_tokens)||e(h.max_output_tokens),l=k;void 0===h.max_tokens&&null===k&&null!==j&&(h.max_tokens=j,l=j,g=!0);let m=e(b.thinkingBudgetTokens),n=d(h.thinking),o=n?.type==="enabled",p=null!==e(n?.budget_tokens);if(null!==m&&null!==l&&l>1){let a=Math.min(m,l-1);a>0&&(void 0===h.thinking?(h.thinking={type:"enabled",budget_tokens:a},g=!0):o&&!p&&(h.thinking={...n,budget_tokens:a},g=!0))}return g?h:a}c.d(b,{b:()=>f})},57197:(a,b,c)=>{c.d(b,{eN:()=>C});var d=c(77598),e=c(30714),f=c.n(e),g=c(40234),h=c(97510),i=c(61408),j=c(72221),k=c(74184),l=c(43659);let m="https://duckduckgo.com",n=`${m}/duckchat/v1/auth/token`,o=`${m}/country.json`,p=`${m}/duckchat/v1/status`,q=`${m}/duckchat/v1/chat`,r=/serp_\d{8}_\d{6}_[A-Z]{2}-[0-9a-f]{20,40}/,s={Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache",Origin:m,Pragma:"no-cache",Referer:`${m}/`,Priority:"u=1, i","Sec-Ch-Ua":'"Chromium";v="149", "Not-A.Brand";v="24", "Google Chrome";v="149"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Linux"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"},t=[["5","1"],["ah","wt-wt"],["dcs","1"],["dcm","3"],["isRecentChatOn","1"]],u=null,v=String.raw`
|
|
267
267
|
var __ua = __DDG_REAL_UA__;
|
|
268
268
|
var __HTML_LOOKUP = __DDG_HTML_LOOKUP__;
|
|
269
269
|
function __makeHtmlElement(tag) {
|
|
@@ -328,9 +328,9 @@ var fetch = function(){ return Promise.resolve(__mkObj('resp', {ok:true, status:
|
|
|
328
328
|
var getComputedStyle = __getComputedStyle;
|
|
329
329
|
`;function w(a){if(!a||"object"!=typeof a)return"";let b=a.content;if("string"==typeof b)return b;let c=a.message;return"string"==typeof c?c:""}function x(a){if(!a.startsWith("data: "))return null;try{return JSON.parse(a.slice(6))}catch(a){return null}}function y(...a){let b={},c=new Map;for(let d of a)if(d)for(let[a,e]of Object.entries(d)){let d=a.toLowerCase(),f=c.get(d);f&&delete b[f],c.set(d,a),b[a]=e}return b}async function z(a,b){let c=Buffer.from(a,"base64").toString("utf8"),e=v.replace("__DDG_REAL_UA__",JSON.stringify(b)).replace("__DDG_HTML_LOOKUP__",JSON.stringify(function(a){let b={},c=new Set;for(let d of a.matchAll(/(['"])(<[^'"]{1,400}?)\1/g)){let a=d[2];if(c.has(a))continue;c.add(a);let e=(0,g.oH)(a);b[a]={html:(0,g.lK)(e),count:Math.max(0,function a(b){if(!b||"object"!=typeof b)return 0;let c=b.nodeName&&"#document-fragment"!==b.nodeName?1:0,d=0;for(let c of b.childNodes??[])d+=a(c);return c+d}(e)-1)}}return b}(c))),h=f().createContext({});f().runInContext(e,h,{timeout:5e3});let i=await f().runInContext(c,h,{timeout:5e3}),j=Array.isArray(i.client_hashes)?i.client_hashes:[];if(0===j.length)throw Error("DuckDuckGo challenge returned empty client_hashes");return j[0]=b,i.client_hashes=j.map(a=>{var b;return b=String(a),(0,d.createHash)("sha256").update(b,"utf8").digest("base64")}),Buffer.from(JSON.stringify(i),"utf8").toString("base64")}function A(){let a=Date.now()-3e3,b=80+Math.floor(101*Math.random()),c=[{name:"onboarding_impression_1",delta:b}];c.push({name:"onboarding_impression_2",delta:b+=120+Math.floor(141*Math.random())}),c.push({name:"startNewChat",delta:b+=200+Math.floor(301*Math.random())});let d=6+Math.floor(13*Math.random());for(let a=0;a<d;a++)c.push({name:"user_input",delta:b+=40+Math.floor(141*Math.random())});c.push({name:"user_submit",delta:b+=120+Math.floor(231*Math.random())});let e={start:a,events:c,end:Math.max(b+20+Math.floor(71*Math.random()),3e3)};return Buffer.from(JSON.stringify(e),"utf8").toString("base64")}function B(a,b,c=!0){let e="gpt-5-mini"===a?{reasoningEffort:"minimal"}:"claude-haiku-4-5"===a||"tinfoil/gpt-oss-120b"===a?{reasoningEffort:"low"}:{reasoningEffort:null};return{model:a,metadata:{toolChoice:{NewsSearch:!1,VideosSearch:!1,LocalSearch:!1,WeatherForecast:!1}},messages:b,canUseTools:c,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:{},canUseApproxLocation:null,canDelegateImageGeneration:null,durableStream:{messageId:(0,d.randomUUID)(),conversationId:(0,d.randomUUID)(),publicKey:function(){if(!u){let{publicKey:a}=(0,d.generateKeyPairSync)("rsa",{modulusLength:2048,publicExponent:65537});u={...a.export({format:"jwk"}),alg:"RSA-OAEP-256",ext:!0,key_ops:["encrypt"],use:"enc"}}return u}()}}}class C extends h.Hv{constructor(){super("duckduckgo-web",{baseUrl:m}),this.poolConfig={minSessions:2,maxSessions:5,cooldownBase:1e3,cooldownMax:1e4,cooldownJitter:500,requestTimeout:3e4,requestJitter:50},this.warmed=!1,this.seeded=!1,this.feVersion="serp_20260424_180649_ET-0bdc33b2a02ebf8f235def65d887787f694720a1",this.pendingVqdHash1=null,this.cookieJar=new Map}buildRequestHeaders(a={}){let b={...s,...a},c=Array.from(this.cookieJar.entries()).map(([a,b])=>`${a}=${b}`).join("; ");return c?{...b,Cookie:c}:b}rememberResponseCookies(a){for(let b of function(a){let b=a.getSetCookie;if("function"==typeof b)return b.call(a);let c=a.get("set-cookie");return c?function(a){let b=[],c=0;for(let d=0;d<a.length;d++){if(","!==a[d])continue;let e=a.slice(d+1);/^\s*[^=;\s]+\s*=/.test(e)&&(b.push(a.slice(c,d).trim()),c=d+1)}return b.push(a.slice(c).trim()),b.filter(Boolean)}(c):[]}(a.headers))!function(a,b){let c=b.split(";",1)[0]?.trim();if(!c)return;let d=c.indexOf("=");d<=0||a.set(c.slice(0,d),c.slice(d+1))}(this.cookieJar,b)}seedBrowserCookies(){for(let[a,b]of t)this.cookieJar.has(a)||this.cookieJar.set(a,b)}async warmFetch(a,b,c){try{let d=await fetch(a,{headers:b,signal:c});return this.rememberResponseCookies(d),d}catch(a){return null}}async testConnection(a,b){try{let a=new AbortController,c=setTimeout(()=>a.abort(),i.MT),d=b?AbortSignal.any([b,a.signal]):a.signal,e=await fetch(p,{method:"GET",headers:this.buildRequestHeaders({Accept:"*/*","Cache-Control":"no-store","x-vqd-accept":"1"}),signal:d});return this.rememberResponseCookies(e),clearTimeout(c),e.ok&&(null!==e.headers.get("x-vqd-4")||null!==e.headers.get("x-vqd-hash-1"))}catch{return!1}}async execute(a){let b,{model:c,body:e,stream:f,signal:g,upstreamExtraHeaders:h}=a,m=function(a){if(!a)return"gpt-4o-mini";let b=a.startsWith("duckduckgo-web/")?a.slice(15):a;return"claude-3-5-haiku-20241022"===b?"claude-haiku-4-5":"llama-4-scout"===b?"meta-llama/Llama-4-Scout-17B-16E-Instruct":"mistral-small-2501"===b?"mistral-small-2603":"gpt-oss-120b"===b?"tinfoil/gpt-oss-120b":b}(c),n=e||{},o=Array.isArray(e?.messages)?e.messages:[],{hasTools:p,requestedTools:r,effectiveMessages:s}=(0,j.S$)(n,o),t=!1!==f,u=h||{},v=(a,b)=>new Response(JSON.stringify({error:{message:b}}),{status:a,headers:{"Content-Type":"application/json"}});if(0===s.length)return v(400,"No messages provided");if(function(){let a=process.env.WEB_COOKIE_USE_BROWSER;if("1"===a||"true"===a||"on"===a)return!0;let b=process.env.OMNIROUTE_BROWSER_POOL;return"on"===b||"1"===b||"true"===b}()){let a=w([...s].reverse().find(a=>"user"===a.role)??{content:""}),b=await (0,k.As)({poolKey:"duckduckgo-web",chatPageUrl:"https://duck.ai/chat",chatUrl:q,chatUrlMatchDomain:"duck.ai",userMessage:a||"Reply with OK",inputSelector:"textarea",submitButtonSelector:"button[aria-label='Ask']",signal:g??null,postSubmitWaitMs:15e3});if(b.status>0){let a=new Response(b.body,{status:b.status,headers:{"Content-Type":b.contentType||"text/event-stream"}});return await this.processResponse(a,t,p,r)}return v(502,"Browser-backed chat captured no upstream response")}let x=this.getPool();try{b=x?await x.acquireBlocking(1e4):null}catch{b=null}let z=b?b.buildHeaders():{};try{let a=new AbortController,c=setTimeout(()=>a.abort(),i.MT),e=g?AbortSignal.any([g,a.signal]):a.signal,f=async a=>{let b=B(m,s),c=await fetch(q,{method:"POST",headers:y(z,this.buildRequestHeaders(),u,{Accept:"text/event-stream","Content-Type":"application/json","x-ddg-journey-id":(0,d.randomUUID)().replaceAll("-",""),"x-fe-signals":A(),"x-fe-version":this.feVersion,...a.vqd4?{"x-vqd-4":a.vqd4}:{},...a.vqdHash1?{"x-vqd-hash-1":a.vqdHash1}:{}}),body:JSON.stringify(b),signal:e});return this.rememberResponseCookies(c),this.rememberChallengeHeader(c),c};if(e.aborted)return clearTimeout(c),v(499,"Request cancelled");await this.warmSession(e),await this.seedChallengeChain(m,e);let h=await this.acquireAuthHeaders(e);if(!h.vqd4&&!h.vqdHash1)return clearTimeout(c),v(503,"Failed to acquire VQD token");let j=await f(h);if(418===j.status){this.pendingVqdHash1=null;let a=await this.acquireAuthHeaders(e);(a.vqd4||a.vqdHash1)&&(j=await f(a))}if(clearTimeout(c),429===j.status)return x&&b&&x.reportCooldown(b),await this.processResponse(j,t,p,r);if(401===j.status||403===j.status){this.pendingVqdHash1=null;let a=await this.acquireAuthHeaders(e);if(a.vqd4||a.vqdHash1){let b=await f(a);return await this.processResponse(b,t,p,r)}return v(503,"Service unavailable")}if(j.status>=500)return x&&b&&x.reportDead(b),v(502,"Upstream error");let k=await this.processResponse(j,t,p,r);return x&&b&&(429===j.status?x.reportCooldown(b):j.status>=500?x.reportDead(b):x.reportSuccess(b)),k}catch(a){if(x&&b&&x.reportCooldown(b),a instanceof DOMException&&"AbortError"===a.name)return v(499,"Request cancelled");return v(500,(0,l.sanitizeErrorMessage)(a instanceof Error?a.message:"Unknown error"))}finally{b?.release()}}async acquireVqdHeaders(a){try{if(a.aborted)throw new DOMException("Aborted","AbortError");let b=await fetch(p,{method:"GET",headers:this.buildRequestHeaders({Accept:"*/*","Cache-Control":"no-store","x-vqd-accept":"1"}),signal:a});if(this.rememberResponseCookies(b),!b.ok)return{vqd4:null,vqdHash1:null};return{vqd4:b.headers.get("x-vqd-4"),vqdHash1:b.headers.get("x-vqd-hash-1")}}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;return{vqd4:null,vqdHash1:null}}}async acquireAuthHeaders(a){if(this.pendingVqdHash1){let a=this.pendingVqdHash1;this.pendingVqdHash1=null;try{return{vqd4:null,vqdHash1:await z(a,s["User-Agent"])}}catch(a){}}let b=await this.acquireVqdHeaders(a);if(b.vqdHash1)try{return{vqd4:b.vqd4,vqdHash1:await z(b.vqdHash1,s["User-Agent"])}}catch(a){}return b}rememberChallengeHeader(a){let b=a.headers.get("x-vqd-hash-1");b&&(this.pendingVqdHash1=b)}async warmSession(a){if(this.warmed||a.aborted)return;this.warmed=!0,this.seedBrowserCookies();let b=await this.warmFetch(`${m}/`,this.buildRequestHeaders({Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Upgrade-Insecure-Requests":"1"}),a);if(b)try{var c;let a=(c=await b.clone().text(),c.match(r)?.[0]??null);a&&(this.feVersion=a)}catch(a){}await this.warmFetch(o,this.buildRequestHeaders({Accept:"*/*"}),a),await this.warmFetch(n,this.buildRequestHeaders({Accept:"*/*"}),a),await this.warmFetch(`${m}/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1`,this.buildRequestHeaders({Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",Origin:m,Referer:`${m}/`,"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"none","Upgrade-Insecure-Requests":"1"}),a)}async seedChallengeChain(a,b){if(this.seeded||b.aborted)return;this.seeded=!0;let c=this.pendingVqdHash1;try{let e=await this.acquireAuthHeaders(b);if(!e.vqd4&&!e.vqdHash1){this.pendingVqdHash1=c;return}let f=await fetch(q,{method:"POST",headers:y(this.buildRequestHeaders(),{Accept:"text/event-stream","Content-Type":"application/json","x-ddg-journey-id":(0,d.randomUUID)().replaceAll("-",""),"x-fe-signals":A(),"x-fe-version":this.feVersion,...e.vqd4?{"x-vqd-4":e.vqd4}:{},...e.vqdHash1?{"x-vqd-hash-1":e.vqdHash1}:{}}),body:JSON.stringify(B(a,[{role:"user",content:"hi"}],!1)),signal:b});this.rememberResponseCookies(f),f.ok?this.rememberChallengeHeader(f):this.pendingVqdHash1=c,await f.body?.cancel().catch(()=>{})}catch(a){this.pendingVqdHash1=c}}async processResponse(a,b,c,d){if(!a.ok){let b=await a.text();return new Response(JSON.stringify({error:{message:function(a,b){let c=function(a){try{return JSON.parse(a)}catch(a){return null}}(b);if(c){let a="string"==typeof c.type?c.type:"",b="string"==typeof c.overrideCode?c.overrideCode:"";if("ERR_CHALLENGE"===a||"ERR_BN_LIMIT"===a){let c=b?` (${b})`:"";return`DuckDuckGo AI Chat anti-abuse challenge failed: ${a}${c}. Retry later or from a less rate-limited IP; DuckDuckGo is rejecting this anonymous session.`}if(a)return`DuckDuckGo AI Chat error: ${a}`}return`DuckDuckGo AI Chat returned HTTP ${a}`}(a.status,b)}}),{status:a.status,headers:{"Content-Type":"application/json"}})}if(b){if(!a.body)return new Response(JSON.stringify({error:{message:"No response body"}}),{status:500,headers:{"Content-Type":"application/json"}});let b=new TransformStream({async transform(a,b){for(let c of new TextDecoder().decode(a).split("\n")){if(!c.trim())continue;if("[DONE]"===c){b.enqueue(new TextEncoder().encode("data: [DONE]\n\n"));continue}let a=w(x(c));if(a){let c={choices:[{delta:{content:a},index:0}]},d=new TextEncoder().encode(`data: ${JSON.stringify(c)}
|
|
330
330
|
|
|
331
|
-
`);b.enqueue(d)}}}});return new Response(a.body.pipeThrough(b),{headers:{"Content-Type":"text/event-stream"}})}{let b=await a.text(),e="";for(let a of b.split("\n"))a.trim()&&"[DONE]"!==a&&(e+=w(x(a)));return new Response(JSON.stringify(c?(()=>{let{content:a,toolCalls:b,finishReason:c}=(0,j.mU)(e,d,"ddg"),f={role:"assistant",content:a};return b&&(f.tool_calls=b,f.content=null),{choices:[{index:0,message:f,finish_reason:c}]}})():{choices:[{message:{content:e,role:"assistant"},index:0,finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}})}}}new C},57441:(a,b,c)=>{"use strict";function d(a,b="Qwen"){let c;if(!0!==(c=a.thinking)&&!0!==a.enable_thinking&&("object"!=typeof c||null===c||Array.isArray(c)||"enabled"!==c.type))return a;let e=a.tool_choice;return"required"!==e&&("object"!=typeof e||null===e)?a:(console.warn(`[${b}] Neutralizing incompatible tool_choice ${"string"==typeof e?e:"object"} to "auto" (thinking mode active)`),{...a,tool_choice:"auto"})}c.d(b,{i8:()=>d})},59078:(a,b,c)=>{"use strict";c.d(b,{cV:()=>af,fZ:()=>Z,iU:()=>$});var d=c(55511),e=c.n(d),f=c(97510),g=c(69386),h=c(43659),i=c(61408);let j=["x-forwarded-for","x-forwarded-host","x-forwarded-proto","x-forwarded-port","x-real-ip","forwarded","via","x-title","x-stainless-lang","x-stainless-package-version","x-stainless-os","x-stainless-arch","x-stainless-runtime","x-stainless-runtime-version","x-stainless-timeout","x-stainless-retry-count","x-stainless-helper-method","http-referer","referer","sec-ch-ua","sec-ch-ua-mobile","sec-ch-ua-platform","sec-fetch-mode","sec-fetch-site","sec-fetch-dest","priority","accept-encoding"];var k=c(67518),l=c(62959),m=c(97594),n=c(87094),o=c(80540);let p=["opencode","open-code","cline","roo-cline","roo_cline","cursor","windsurf","aider","continue.dev","copilot","avante","codecompanion","claude code","claude-code","kilo code","kilocode","omniroute"],q=new Map;var r=c(42492),s=c(85955),t=c(59909);let u=new Map;async function v(a,b,c){let d=t.KJ.map(a=>`${a}/v1internal:loadCodeAssist`),e="harness"===c?(0,s.f0)(c,a):(0,k.He)("loadCodeAssist",a);for(let a of d)try{let c=await b(a,{method:"POST",headers:e,body:JSON.stringify({metadata:(0,k.iu)()}),signal:AbortSignal.timeout(8e3)});if(!c.ok){console.warn(`[models] antigravity loadCodeAssist failed at ${a} (${c.status}) — trying next`);continue}let d=(await c.json()).cloudaicompanionProject,f="string"==typeof d?d.trim():d&&"object"==typeof d&&"string"==typeof d.id?d.id.trim():"";if(f)return f;console.warn(`[models] antigravity loadCodeAssist at ${a} returned no project id — trying next`)}catch(c){let b=c instanceof Error?c.message:String(c);console.warn(`[models] antigravity loadCodeAssist threw for ${a}: ${b} — trying next`)}return null}async function w(a,b=fetch,c="ide"){let d=`${c}:${a}`;if(u.has(d))return u.get(d);let e=await v(a,b,c);if(e)return u.set(d,e),e}var x=c(25415);let y="_ide",z=["browser_subagent","command_status","find_by_name","generate_image","grep_search","list_dir","list_resources","multi_replace_file_content","notify_user","read_resource","read_terminal","read_url_content","replace_file_content","run_command","search_web","send_command_input","task_boundary","view_content_chunk","view_file","write_to_file"],A=[...z,"mcp_sequential_thinking_sequentialthinking"],B=new Set(z),C=A.map(a=>Object.freeze({name:a,description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}}));function D(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function E(a){return"string"==typeof a?a.trim():""}function F(a){return!(a.length>0)||B.has(a)||a.endsWith(y)?a:`${a}${y}`}var G=c(24286);let H=[/^claude-/i,/^gpt-oss-/i,/^tab_/i];function I(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function J(a){if(!I(a)||!("thinkingConfig"in a)&&!("thinking_config"in a))return a;let b={...a};return delete b.thinkingConfig,delete b.thinking_config,b}var K=c(90043),L=c(47593),M=c(23874),N=c(4368),O=c(7882);let P=[/high\s+traffic/i,/agent\s+(execution\s+)?terminated\s+due\s+to\s+error/i,/capacity/i,/temporarily\s+unavailable/i,/timeout/i,/stream\s+(ended|closed|terminated|interrupted)/i,/empty\s+response/i],Q=new Set([i.gx.SERVER_ERROR,i.gx.BAD_GATEWAY,i.gx.SERVICE_UNAVAILABLE,i.gx.GATEWAY_TIMEOUT]);function R(a,b){return b?new ReadableStream({async start(b){b.enqueue(new TextEncoder().encode(a)),b.close()}},{highWaterMark:16384}):a}function S(a,b,c){let d=function(a){if(!a||"object"!=typeof a)return a;try{return structuredClone(a)}catch{return JSON.parse(JSON.stringify(a))}}(c);return(0,g.IL)(a)?(0,g.BI)(a,{...b},d):{headers:b,bodyString:JSON.stringify(d)}}class T extends Error{constructor(a,b){super(`Antigravity upstream did not return response headers within ${a}ms: ${b}`),this.code=i.LD,this.status=i.gx.GATEWAY_TIMEOUT,this.name="TimeoutError"}}let U=new Map,V=setInterval(()=>{let a=Date.now();for(let[b,c]of U)a>=c&&U.delete(b)},6e4);"object"==typeof V&&"unref"in V&&V.unref?.();let W=new Map,X=!1,Y=setInterval(function(){let a=Date.now();for(let[b,c]of W)a-c.updatedAt>3e5&&W.delete(b);for(;W.size>50;){let a=W.keys().next().value;if(void 0!==a)W.delete(a);else break}},6e4);function Z(a){if(!X){X=!0;try{for(let[a,b]of null)W.has(a)||W.set(a,{balance:b,updatedAt:Date.now()})}catch{}}let b=W.get(a);return b?Date.now()-b.updatedAt>3e5?(W.delete(a),null):b.balance:null}function $(a,b){if(W.size>=50&&!W.has(a)){let a=W.keys().next().value;void 0!==a&&W.delete(a)}W.set(a,{balance:b,updatedAt:Date.now()})}function _(a){if(U.size>=50&&!U.has(a)){let a=Date.now();for(let[b,c]of U)a>=c&&U.delete(b);if(U.size>=50){let a=U.keys().next().value;void 0!==a&&U.delete(a)}}U.set(a,Date.now()+18e6)}function aa(a,b,c){if(a&&"[DONE]"!==a)try{let c=JSON.parse(a),d="string"==typeof c?.markdown?c.markdown:"string"==typeof c?.response?.markdown?c.response.markdown:null;d&&(b.textContent+=d);let e=c?.response?.candidates?.[0];if(e?.content?.parts){for(let a of e.content.parts)if("string"==typeof a.text&&!a.thought&&!a.thoughtSignature){let c=function(a){if("string"!=typeof a)return null;let b=a.replace(/[\u200B-\u200D\uFEFF]/g,"").match(/^[\s\S]*?\[Tool call:\s*([^\]\n]+)\]\s*\nArguments:\s*([\s\S]+?)\s*$/);if(!b)return null;let c=b[1]?.trim(),d=b[2]?.trim();if(!c||!d)return null;try{return{name:c,args:function a(b){return"string"==typeof b?b.replace(/[\u200B-\u200D\uFEFF]/g,""):Array.isArray(b)?b.map(b=>a(b)):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).map(([b,c])=>[b,a(c)])):b}(JSON.parse(d))}}catch{return null}}(a.text);if(c)b.toolCalls.push({id:`${c.name}-${Date.now()}-${b.toolCalls.length}`,index:b.toolCalls.length,type:"function",function:{name:c.name,arguments:JSON.stringify(c.args||{})}}),b.finishReason="tool_calls";else b.textContent+=a.text}}if(e?.finishReason&&(b.finishReason=(0,M.U)(String(e.finishReason).toLowerCase())),c?.response?.usageMetadata){let a=c.response.usageMetadata;b.usage={prompt_tokens:a.promptTokenCount||0,completion_tokens:a.candidatesTokenCount||0,total_tokens:a.totalTokenCount||0}}Array.isArray(c?.remainingCredits)&&(b.remainingCredits=c.remainingCredits)}catch{c?.debug?.("SSE_PARSE",`Skipping malformed SSE line: ${a.slice(0,80)}`)}}function ab(a,b,c,d){b.value+=a;let e=b.value.split("\n");for(let a of(b.value=e.pop()||"",e)){let b=a.trim();b.startsWith("data:")&&aa(b.slice(5).trim(),c,d)}}async function ac(a,b){if(b)return b.includes("/")?b.split("/").pop():b;if(!a)return a;let c=a.includes("/")?a.split("/").pop():a,d=c;try{let a=await (0,o.c)("antigravity");if(a&&"object"==typeof a){let b=a[c];if("string"==typeof b&&b){let a="antigravity/";d=b.startsWith(a)?b.slice(a.length):b}}}catch{}return d===c&&(d=(0,x.Vg)(d)),d}function ad(a,b){if(!b?.size||!a||"object"!=typeof a)return a;let c=Array.isArray(a)?[...a]:{...a};return Object.defineProperty(c,"_toolNameMap",{value:b,enumerable:!1,configurable:!0,writable:!0}),c}function ae(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}"object"==typeof Y&&"unref"in Y&&Y.unref?.();class af extends f.Hv{constructor(){super("antigravity",i.xq.antigravity)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0];return`${e}/v1internal:streamGenerateContent?alt=sse`}buildHeaders(a,b=!0){let c;var d={"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,k.FT)(),Accept:"text/event-stream","X-OmniRoute-Source":"omniroute"};let e={};for(let[a,b]of Object.entries(d)){let d=a.toLowerCase();if(!(d.startsWith("x-omniroute-")||j.includes(d))){if("authorization"===d){c=b;continue}e[a]=b}}return e["Accept-Encoding"]="gzip, deflate, br",void 0!==c&&(e.Authorization=c),e}async transformRequest(a,b,c,d,e){let f,g,h,i,j,k,l,m=a=>"string"!=typeof a?null:a.trim()||null,n=ae(b)??{},o=m(n.project),r=m(d?.projectId),s=m(d?.providerSpecificData?.projectId),t="1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&o?o:r||s||o;if(!t&&d?.accessToken){let a=await w(d.accessToken);a&&(t=a)}if(!t)return new Response(JSON.stringify({error:{message:"Missing Google projectId for Antigravity account. Auto-discovery via loadCodeAssist found no Cloud Code project. Please reconnect OAuth in Providers → Antigravity (and ensure the Google account has completed Gemini Code Assist onboarding).",type:"oauth_missing_project_id",code:"missing_project_id"}}),{status:422,headers:{"Content-Type":"application/json"}});if(!("string"==typeof t?t.trim():t))return new Response(JSON.stringify({error:{message:"Invalid (empty) Google projectId for Antigravity account. Please reconnect OAuth in Providers → Antigravity.",type:"oauth_missing_project_id",code:"missing_project_id"}}),{status:422,headers:{"Content-Type":"application/json"}});let u=await ac(a,e),v=u.toLowerCase().includes("claude"),x=!function(a,b){if(!a||!b)return!1;let c=String(b||"").trim().replace(/^models\//i,"").replace(/^antigravity\//i,"");if(H.some(a=>a.test(c)))return!0;let d=(0,G.js)(c);return"boolean"==typeof d?.supportsThinking&&!d.supportsThinking}(this.provider,u)?n:function(a){let b={...a};if(delete b.reasoning_effort,delete b.reasoning,delete b.thinking,"generationConfig"in b&&(b.generationConfig=J(b.generationConfig)),I(b.request)){let a={...b.request};delete a.reasoning_effort,delete a.reasoning,delete a.thinking,"generationConfig"in a&&(a.generationConfig=J(a.generationConfig)),b.request=a}return b}(n),y=ae(x.request),z=(Array.isArray(y?.contents)?y.contents:[]).map(a=>{let b="string"==typeof a.role?a.role:"user";a.parts?.some(a=>a.functionResponse)&&(b="user");let c=a.parts?.some(a=>a.functionCall)||!1,d=a.parts?.filter(a=>("string"!=typeof a.text||""!==a.text)&&(!a.functionCall||!!a.functionCall.name)&&!a.thought&&(c||!a.thoughtSignature||"skip_thought_signature_validator"===a.thoughtSignature))||[];return{...a,role:b,parts:d}})||[],A=[];for(let a of z)Array.isArray(a.parts)&&0!==a.parts.length&&(A.length>0&&A[A.length-1].role===a.role?A[A.length-1].parts.push(...a.parts):A.push(a));let B={...y,...A.length>0&&{contents:A},sessionId:(0,N.a0)(d,"string"==typeof y?.sessionId?y.sessionId:void 0),safetySettings:y?.safetySettings??L.fc,toolConfig:Array.isArray(y?.tools)&&y.tools.length>0?{functionCallingConfig:{mode:"VALIDATED"}}:y?.toolConfig},C=v?(f={},Array.isArray(B.contents)&&(f.contents=B.contents),ae(B.systemInstruction)&&(f.systemInstruction=B.systemInstruction),f.generationConfig=ae(B.generationConfig)?{...B.generationConfig}:{},(g=(0,K.B)(B.tools))?(f.tools=g,f.toolConfig={functionCallingConfig:{mode:"VALIDATED"}}):ae(B.toolConfig)&&(f.toolConfig=B.toolConfig),"string"==typeof B.sessionId&&(f.sessionId=B.sessionId),Array.isArray(B.safetySettings)&&(f.safetySettings=B.safetySettings),f):B,D=C.contents;if(Array.isArray(D)){for(let a of D)if(Array.isArray(a.parts))for(let b of a.parts)"string"==typeof b.text&&(b.text=function(a){if(!a||0===p.length)return a;let b=a;for(let a of p){if(!a)continue;let c=function(a){let b=q.get(a);return b||(q.size>2e3&&q.clear(),b=RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi"),q.set(a,b)),b}(a);b=b.replace(c,a=>a.length<=1?a:a[0]+""+a.slice(1))}return b}(b.text))}void 0===(h=C.generationConfig&&"object"==typeof C.generationConfig?C.generationConfig:{}).topK&&(h.topK=40),void 0===h.topP&&(h.topP=1),i=h.thinkingConfig&&"object"==typeof h.thinkingConfig?h.thinkingConfig:null,j=Number(i?.thinkingBudget),k=Number(h.maxOutputTokens),Number.isFinite(j)&&j>0&&(!Number.isFinite(k)||k<=j)&&(h.maxOutputTokens=Math.floor(j)+1),Number.isFinite(l=Number(h.maxOutputTokens))&&l>16384&&(h.maxOutputTokens=16384),C.generationConfig=h;let{project:E,model:F,userAgent:M,requestType:O,requestId:P,request:Q,output_config:R,output_format:S,thinking:T,reasoning_effort:U,reasoning:V,enable_thinking:W,thinking_budget:X,...Y}=x,Z="image_gen"===O?"image_gen":"agent",$={project:t,requestId:(0,N.Ep)(),request:C,model:u,userAgent:(0,N.Xv)(d),requestType:Z,...Y};return"agent"===Z&&void 0===$.enabledCreditTypes&&($.enabledCreditTypes=["GOOGLE_ONE_AI"]),$}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c={grant_type:"refresh_token",refresh_token:a.refreshToken};this.config.clientId&&(c.client_id=this.config.clientId),this.config.clientSecret&&(c.client_secret=this.config.clientSecret);let d=await fetch(i.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":(0,k.Rj)()},body:new URLSearchParams(c)});if(!d.ok){try{let a=await d.json();if("invalid_grant"===a.error)return b?.error?.("TOKEN","Antigravity refresh token revoked. Re-authentication required."),{error:"unrecoverable_refresh_error"}}catch{}return null}let e=await d.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:"string"==typeof e.access_token?e.access_token:void 0,refreshToken:"string"==typeof e.refresh_token&&e.refresh_token?e.refresh_token:a.refreshToken,expiresIn:"number"==typeof e.expires_in?e.expires_in:void 0,projectId:a.projectId,providerSpecificData:a.providerSpecificData}}catch(c){let a=c instanceof Error?c.message:String(c);return b?.error?.("TOKEN",`Antigravity refresh error: ${a}`),null}}generateSessionId(){return`-${parseInt((0,d.randomUUID)().replace(/-/g,"").substring(0,8),16)%9e18}`}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/resets? (?:after|in) (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return(b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),0===c)?2e3:c}extractErrorMessage(a,b=""){let c=[];if(a&&"object"==typeof a){let b=a.error;if(b&&"object"==typeof b){let a=b.message;"string"==typeof a?c.push(a):null!=a&&c.push(JSON.stringify(a))}else"string"==typeof b&&c.push(b);"string"==typeof a.message&&c.push(a.message)}return b&&c.push(b),c.filter(Boolean).join("\n")}isTransientAntigravityError(a,b){return!!(a===i.gx.RATE_LIMITED||Q.has(a))||P.some(a=>a.test(b||""))}collectStreamToResponse(a,b,c,d,f,g,h){if(!a.body)return Promise.resolve({response:a,url:c,headers:d,transformedBody:f});let i=a.body.getReader(),j=new TextDecoder,k=g||void 0;return(async()=>{let l,m={textContent:"",finishReason:"stop",toolCalls:[],usage:null,remainingCredits:null},n={value:""},o=!1,p=AbortSignal.timeout(12e4);try{for(;;){if(h?.aborted)throw Error("Request aborted during SSE collection");let{done:a,value:b}=await Promise.race([i.read(),new Promise((a,b)=>p.addEventListener("abort",()=>b(Error("SSE collection timed out")),{once:!0}))]);if(a)break;ab(j.decode(b,{stream:!0}),n,m,k)}}catch(c){let b=c?.message||String(c);o=b.includes("timed out"),g?.warn?.("SSE_COLLECT",`Error collecting SSE stream: ${b}`);try{i.releaseLock()}catch(a){}try{a.body?.cancel().catch(()=>{})}catch(a){}}finally{try{i.releaseLock()}catch(a){}}ab(j.decode(),n,m,k),l=n.value.trim(),n.value="",l.startsWith("data:")&&aa(l.slice(5).trim(),m,k);let q={id:`chatcmpl-${Date.now()}-${e().randomUUID().slice(0,8)}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:m.toolCalls.length>0?{role:"assistant",content:m.textContent||null,tool_calls:m.toolCalls}:{role:"assistant",content:m.textContent},finish_reason:o?"length":m.toolCalls.length>0?"tool_calls":m.finishReason}],...m.usage&&{usage:m.usage},...m.remainingCredits&&{_remainingCredits:m.remainingCredits}},r=o?504:a.status;return{response:new Response(JSON.stringify(q),{status:r,statusText:o?"Gateway Timeout":a.statusText,headers:[["Content-Type","application/json"]]}),url:c,headers:d,transformedBody:f}})()}async execute(a){await (0,r.f9)();let b=await ac(a.model),c=(0,x.L8)(b);if(c.length<=1)return this.executeOnce(a);let d=null;for(let e=0;e<c.length;e++){let f=c[e],g=await this.executeOnce(a,f);if(g.response.status!==i.gx.BAD_REQUEST)return g;if(0===e&&(d=g),e!==c.length-1){a.log?.debug?.("AG_PRO_FALLBACK",`400 on "${f}" — retrying with next Pro candidate "${c[e+1]}"`);continue}return a.log?.warn?.("AG_PRO_FALLBACK",`Pro fallback chain exhausted (all ${c.length} candidates 400'd) for "${b}"`),d??g}return d??this.executeOnce(a)}async executeOnce({model:a,body:b,stream:c,credentials:d,signal:e,log:g,upstreamExtraHeaders:j},k){await (0,r.f9)();let o=this.getFallbackCount(),p=null,q=0,t={},u=d?.connectionId||"unknown",v=(0,m.YX)(),w=(0,m.Ze)(d?.accessToken||"",v),x=async(a,b,c=i.TG)=>{let d=Math.max(0,Math.floor(c));if(d<=0)return fetch(a,b);let e=new AbortController,g=setTimeout(()=>{e.abort(new T(d,a))},d),h=b.signal instanceof AbortSignal?b.signal:null,j=h?(0,f.OW)(h,e.signal):e.signal;try{return await fetch(a,{...b,signal:j})}catch(a){if(e.signal.aborted&&function(a){if(!a||"object"!=typeof a)return null;let b=a.code;return"string"==typeof b?b:null}(e.signal.reason)===i.LD)throw e.signal.reason;throw a}finally{g&&(clearTimeout(g),g=null)}};for(let r=0;r<o;r++){let y=this.buildUrl(a,!0,r),z=this.buildHeaders(d,!0);(0,f._F)(z,j);let A=await this.transformRequest(a,b,!0,d,k),B=null;if(A instanceof Response)return{response:A,url:y,headers:z,transformedBody:b};let G=A;if(G&&"object"==typeof G){let a=function(a){let b=D(a.request);if(!b)return{body:a,toolNameMap:null};let c=a._toolNameMap instanceof Map?a._toolNameMap:null,d=c?new Map(c):new Map,e=!1,f={...b};if(Array.isArray(b.tools)){let a=[],c=[];for(let f of b.tools){let b=D(f);if(!b||!Array.isArray(b.functionDeclarations)){a.push(f);continue}for(let a of b.functionDeclarations){let b=D(a);if(!b)continue;let f=void 0!==b.parameters?{...b,parameters:function a(b){if(!b||"object"!=typeof b)return b;if(Array.isArray(b))return b.map(b=>a(b));let c={...b};delete c.enumDescriptions;let d=D(c.properties);if(d){let b={};for(let c of Object.keys(d))b[c]=a(d[c]);c.properties=b}return void 0!==c.items&&(c.items=a(c.items)),c}(b.parameters)}:b;f!==b&&(e=!0);let g=E(f.name);if(!g){c.push({...f});continue}let h=F(g);h!==g&&(e=!0,d.set(h,d.get(g)??g)),c.push({...f,name:h})}}if(c.length>0){let b=new Set(c.map(a=>E(a.name)).filter(a=>a.length>0));f.tools=[...a,{functionDeclarations:[...c,...C.filter(a=>!b.has(a.name))]}],e=!0}}if(Array.isArray(b.contents)){let a=!1,c=b.contents.map(b=>{let c=D(b);if(!c||!Array.isArray(c.parts))return b;let e=!1,f=c.parts.map(a=>{let b=D(a);if(!b)return a;let c={...b},f=D(b.functionCall);if(f){let a=E(f.name),b=F(a);b!==a&&(c.functionCall={...f,name:b},d.set(b,d.get(a)??a),e=!0)}let g=D(b.functionResponse);if(g){let a=E(g.name),b=F(a);b!==a&&(c.functionResponse={...g,name:b},d.set(b,d.get(a)??a),e=!0)}return e?c:a});return e?(a=!0,{...c,parts:f}):b});a&&(f.contents=c,e=!0)}return e?{body:{...a,request:f},toolNameMap:d.size>0?d:null}:{body:a,toolNameMap:d.size>0?d:null}}(G);G=a.body,B=a.toolNameMap}w&&(G=(0,m.IE)(G),g?.debug?.("AG_CREDITS","Credits-first enabled (ANTIGRAVITY_CREDITS=always)")),t[r]||(t[r]=0);try{let b=S(this.provider,z,G),f=b.headers,j=(a,b)=>O.VN(y,a,b,g),k=(0,s.Nc)(f,d,G);if(g?.debug?.("TELEMETRY",`[Antigravity] Execute - URL: ${y}, Model: ${a}, Target: ${function(a){let b=a.model;return"string"==typeof b&&b.length>0?b:"unknown"}(G)}, RetryAttempt: ${t[r]}`),g?.debug){let a={...f};a.Authorization&&(a.Authorization="Bearer ***"),g.debug("AG_REQUEST_HEADERS",JSON.stringify(a));let b=G,c=b.request;g.debug("AG_REQUEST_ENVELOPE",JSON.stringify({fieldOrder:Object.keys(b),project:b.project,requestId:b.requestId,model:b.model,userAgent:b.userAgent,requestType:b.requestType,enabledCreditTypes:b.enabledCreditTypes,clientProfile:k,sessionId:c?.sessionId,generationConfig:c?.generationConfig}))}await j(f,b.bodyString);let p=await x(y,{method:"POST",headers:f,body:R(b.bodyString,c),...c?{duplex:"half"}:{},signal:e});if(p.status===i.gx.FORBIDDEN&&f["x-goog-user-project"]){let a={...f};(0,s.H$)(a,"x-goog-user-project"),g?.debug?.("RETRY","403 with x-goog-user-project, retrying once without it"),await j(a,b.bodyString),p=await x(y,{method:"POST",headers:a,body:R(b.bodyString,c),...c?{duplex:"half"}:{},signal:e}),f=a}p.ok||g?.warn?.("TELEMETRY",`[Antigravity] Error Response - URL: ${y}, Status: ${p.status}, Model: ${a}`);let w=null;if(p.status===i.gx.RATE_LIMITED||p.status===i.gx.SERVICE_UNAVAILABLE){if(!(w=this.parseRetryHeaders(p.headers)))try{let b=await p.clone().text(),f=JSON.parse(b),h=f?.error?.message||f?.message||"";if(f?.error?.details&&Array.isArray(f.error.details))for(let a of f.error.details)a?.reason&&(h+=` ${a.reason}`);let k=this.parseRetryFromErrorMessage(h),o=(0,l._c)(h),q=(0,l.M0)(o,k);w=q.retryAfterMs,g?.debug?.("AG_429",`Category: ${o}, Decision: ${q.kind} — ${q.reason}`),"full_quota_exhausted"===q.kind&&w&&function(a,b){try{(0,n.qq)(a,Date.now()+b)}catch{}}(u,w);let r=null!=G.enabledCreditTypes;if("quota_exhausted"===o&&r&&((0,m.Z1)(d?.accessToken||""),g?.warn?.("AG_CREDITS","Credits-first request 429'd — credits likely exhausted"),_(u)),"quota_exhausted"===o&&"full_quota_exhausted"!==q.kind&&!r&&(0,m.SN)(d?.accessToken||"","off"!==v)){g?.info?.("AG_CREDITS","Retrying with Google One AI credits");let b=(0,m.IE)(G),f=S(this.provider,z,b),h=f.headers;try{await j(h,f.bodyString);let k=await x(y,{method:"POST",headers:h,body:R(f.bodyString,c),...c?{duplex:"half"}:{},signal:e});if(k.ok||k.status!==i.gx.RATE_LIMITED){if(g?.info?.("AG_CREDITS",`Credits retry succeeded: ${k.status}`),!c){let c=await this.collectStreamToResponse(k,a,y,h,b,g,e);try{let a=await c.response.clone().json(),b=a?._remainingCredits;if(Array.isArray(b)){let a=b.find(a=>"GOOGLE_ONE_AI"===a.creditType);if(a){let b=parseInt(a.creditAmount,10);isNaN(b)||$(u,b)}}}catch{}return{...c,transformedBody:ad(b,B)}}return{response:k,url:y,headers:h,transformedBody:ad(b,B)}}(0,m.Z1)(d?.accessToken||""),g?.warn?.("AG_CREDITS","Credits retry also 429'd"),_(u)}catch(a){(0,m.Z1)(d?.accessToken||""),g?.warn?.("AG_CREDITS",`Credits retry failed: ${a}`)}}}catch(a){}if(w&&w<=6e4&&t[r]<3){t[r]++;let a=Math.min(w,6e4);g?.debug?.("RETRY",`${p.status} retry ${t[r]}/3 with Retry-After: ${Math.ceil(a/1e3)}s, waiting...`),await new Promise(b=>setTimeout(b,a)),r--;continue}if((!w||0===w)&&t[r]<3){let a=p.status===i.gx.RATE_LIMITED;if(!a&&Q.has(p.status))try{let b=await p.clone().text(),c=null;try{c=b?JSON.parse(b):null}catch{}let d=this.extractErrorMessage(c,b);a=this.isTransientAntigravityError(p.status,d)}catch{}if(a){t[r]++;let a=p.status===i.gx.RATE_LIMITED?6e4:15e3,b=Math.min(1e3*2**t[r],a);g?.debug?.("RETRY",`${p.status} transient auto retry ${t[r]}/3 after ${b/1e3}s`),await new Promise(a=>setTimeout(a,b)),r--;continue}}if(g?.debug?.("RETRY",`${p.status}, Retry-After ${w?`too long (${Math.ceil(w/1e3)}s)`:"missing"}, trying fallback`),q=p.status,r+1<o)continue}if(this.shouldRetry(p.status,r)){g?.debug?.("RETRY",`${p.status} on ${y}, trying fallback ${r+1}`),q=p.status;continue}if(p.status===i.gx.RATE_LIMITED&&w&&w>6e4)try{let a,b=await p.clone().text();try{a=JSON.parse(b)}catch{a={}}a.retryAfterMs=w;let c=JSON.stringify(a);return{response:new Response(c,{status:p.status,headers:p.headers}),url:y,headers:f,transformedBody:ad(G,B)}}catch(a){g?.warn?.("RETRY",`Failed to embed retryAfterMs: ${a}`)}if(!c){if(!p.ok){let a=await p.clone().text().catch(()=>""),b=function(a,b,c){let d;try{d=JSON.parse(c)}catch{}let e=b?`: ${b}`:"";return(0,h.buildErrorBody)(a,`Antigravity upstream error (${a})${e}`,d)}(p.status,p.statusText,a);return{response:new Response(JSON.stringify(b),{status:p.status,headers:{"Content-Type":"application/json"}}),url:y,headers:f,transformedBody:ad(G,B)}}let b=await this.collectStreamToResponse(p,a,y,f,G,g,e);try{let a=await b.response.clone().json(),c=a?._remainingCredits;if(Array.isArray(c)){let a=c.find(a=>a?.creditType==="GOOGLE_ONE_AI");if(a){let b=parseInt(a.creditAmount,10);isNaN(b)||$(u,b)}}}catch{}return{...b,transformedBody:ad(G,B)}}if(p.body){if(e){let a=()=>{try{p.body?.cancel().catch(()=>{})}catch(a){}};e.aborted?a():e.addEventListener("abort",a,{once:!0})}let a="",b=new TextDecoder,c=new TransformStream({transform(c,d){d.enqueue(c);try{let d=b.decode(c,{stream:!0});if((a+=d).length>16384){let b=a.lastIndexOf("\n",a.length-16384);a=-1!==b?a.slice(b+1):""}}catch{}},flush(){try{let c=b.decode();a+=c}catch{}try{for(let b of a.split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);if(Array.isArray(a?.remainingCredits)){let b=a.remainingCredits.find(a=>{let b=ae(a);return b?.creditType==="GOOGLE_ONE_AI"});if(b){let a=parseInt(String(b.creditAmount??""),10);isNaN(a)||$(u,a)}}}catch{}}}catch{}a=""}},{highWaterMark:16384},{highWaterMark:16384}),d=p.body.pipeThrough(c);return{response:new Response(d,{status:p.status,statusText:p.statusText,headers:p.headers}),url:y,headers:f,transformedBody:ad(G,B)}}return{response:p,url:y,headers:f,transformedBody:ad(G,B)}}catch(b){if(p=b,g?.error?.("TELEMETRY",`[Antigravity] Network/Fetch Error - URL: ${y}, Model: ${a}, Error: ${b instanceof Error?b.message:String(b)}`),r+1<o){g?.debug?.("RETRY",`Error on ${y}, trying fallback ${r+1}`);continue}throw b}}throw p||Error(`All ${o} URLs failed with status ${q}`)}}},60059:(a,b,c)=>{"use strict";c.d(b,{lc:()=>o});var d=c(97510),e=c(43659),f=c(72221);let g="https://t3.chat",h=`${g}/_serverFn/`,i="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36";function j(a){let b="object"==typeof a&&null!==a?a:{},c=String(b.apiKey??b.accessToken??"").trim();if(!c)return{cookieHeader:"",cookies:"",convexSessionId:""};let d=c,e="";if(c.includes("convexSessionId")||c.includes("convex-session-id")){let a=c.split(/[,;\n]/).map(a=>a.trim()),b=[];for(let c of a)c.startsWith("convexSessionId=")||c.startsWith("convex-session-id=")?e=c.split("=").slice(1).join("="):c.startsWith("cookies=")?b.push(c.slice(8)):c.includes("=")&&b.push(c);b.length&&(d=b.join("; "))}let f=e&&!d.includes("convex-session-id")?`${d}; convex-session-id=${e}`:d;if(!e){let a=f.match(/convex-session-id=([^;]+)/);a&&(e=a[1].trim())}return{cookieHeader:f,cookies:d,convexSessionId:e}}function k(a){return!!a&&"string"==typeof a.cookieHeader&&a.cookieHeader.length>0&&"string"==typeof a.convexSessionId&&a.convexSessionId.length>0}function l(a,b){return(0,e.yj)(a,b)}function m(a){if("string"==typeof a?.text)return a.text;if("string"==typeof a?.delta)return a.delta;if("string"==typeof a?.content)return a.content;let b=a?.p;if(b?.k&&b?.v&&Array.isArray(b.k)&&Array.isArray(b.v)){for(let a=0;a<b.k.length;a++)if("content"===b.k[a]||"text"===b.k[a]||"delta"===b.k[a]){let c=b.v[a];if("string"==typeof c)return c;if(c?.t===2&&"string"==typeof c?.s)return c.s}}return a?.t===2&&"string"==typeof a?.s?a.s:null}async function n(a){let b=new TextDecoder,c=a.getReader(),d="",e=[];for(;;){let{done:a,value:f}=await c.read();if(a)break;let g=(d+=b.decode(f,{stream:!0})).split("\n");for(let a of(d=g.pop()||"",g)){let b=a.trim();if(!b)continue;let c=b.startsWith("data: ")?b.slice(6).trim():b;if("[DONE]"===c)break;try{let a=JSON.parse(c),b=m(a);"string"==typeof b&&e.push(b)}catch{}}}return e.join("")}class o extends d.Hv{constructor(){super("t3-web",{baseUrl:g})}async testConnection(a,b){try{let c=j(a);if(!k(c))return!1;return(await fetch(g,{method:"HEAD",headers:{"User-Agent":i,Cookie:c.cookieHeader},signal:b})).status<500}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:o}){let p=b||{},q=Array.isArray(p.messages)?p.messages:[],{hasTools:r,requestedTools:s,effectiveMessages:t}=(0,f.S$)(p,q),u=j(d);if(!k(u))return{response:l(400,"t3.chat credentials invalid: paste your full Cookie header (including convex-session-id) from t3.chat."),url:`${h}...`,headers:{},transformedBody:b};let v={"Content-Type":"application/json","User-Agent":i,Accept:"application/x-tss-framed, application/x-ndjson, application/json",Cookie:u.cookieHeader,Referer:`${g}/`,Origin:g};try{let b={model:a,messages:t,stream:!1!==c},d=`${g}/api/chat`;o?.info?.("T3-CHAT-WEB",`POST ${d} model=${a}`);let h=await fetch(d,{method:"POST",headers:v,body:JSON.stringify(b),signal:e});if(!h.ok){let a=h.status,c=`t3.chat API error (${a})`;return 401===a||403===a?c="t3.chat session expired or unauthorized — re-paste your cookies and convex-session-id.":429===a&&(c="t3.chat rate limited. Wait and retry."),o?.warn?.("T3-CHAT-WEB",c),{response:l(a,c),url:d,headers:v,transformedBody:b}}let i=h.headers.get("content-type")||"";if(i.includes("application/json")&&!i.includes("ndjson")){let c=await h.json();if(c?.error){let a=`t3.chat error: ${c.error?.message??JSON.stringify(c.error)}`;return o?.warn?.("T3-CHAT-WEB",a),{response:l(502,a),url:d,headers:v,transformedBody:b}}if(c?.choices)return{response:new Response(JSON.stringify(c),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b};let e=m(c)??c?.message?.content??"",f={id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:String(e)},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(f),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b}}if(!h.body)return{response:l(502,"t3.chat returned an empty response body"),url:d,headers:v,transformedBody:b};if(!1!==c){var w,x;let c,e,f,g,i,j=(w=h.body,x=a||"unknown",c=new TextEncoder,e=new TextDecoder,f=`chatcmpl-t3-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,g=Math.floor(Date.now()/1e3),i=!1,new ReadableStream({async start(a){let b=w.getReader(),d="",h=(b,d)=>{a.enqueue(c.encode(`data: ${JSON.stringify({id:f,object:"chat.completion.chunk",created:g,model:x,choices:[{index:0,delta:b,finish_reason:d??null}]})}
|
|
331
|
+
`);b.enqueue(d)}}}});return new Response(a.body.pipeThrough(b),{headers:{"Content-Type":"text/event-stream"}})}{let b=await a.text(),e="";for(let a of b.split("\n"))a.trim()&&"[DONE]"!==a&&(e+=w(x(a)));return new Response(JSON.stringify(c?(()=>{let{content:a,toolCalls:b,finishReason:c}=(0,j.mU)(e,d,"ddg"),f={role:"assistant",content:a};return b&&(f.tool_calls=b,f.content=null),{choices:[{index:0,message:f,finish_reason:c}]}})():{choices:[{message:{content:e,role:"assistant"},index:0,finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}})}}}new C},57441:(a,b,c)=>{c.d(b,{i8:()=>d});function d(a,b="Qwen"){let c;if(!0!==(c=a.thinking)&&!0!==a.enable_thinking&&("object"!=typeof c||null===c||Array.isArray(c)||"enabled"!==c.type))return a;let e=a.tool_choice;return"required"!==e&&("object"!=typeof e||null===e)?a:(console.warn(`[${b}] Neutralizing incompatible tool_choice ${"string"==typeof e?e:"object"} to "auto" (thinking mode active)`),{...a,tool_choice:"auto"})}},59078:(a,b,c)=>{c.d(b,{cV:()=>ah,fZ:()=>_,iU:()=>aa});var d=c(55511),e=c.n(d),f=c(97510),g=c(69386),h=c(43659),i=c(61408);let j=["x-forwarded-for","x-forwarded-host","x-forwarded-proto","x-forwarded-port","x-real-ip","forwarded","via","x-title","x-stainless-lang","x-stainless-package-version","x-stainless-os","x-stainless-arch","x-stainless-runtime","x-stainless-runtime-version","x-stainless-timeout","x-stainless-retry-count","x-stainless-helper-method","http-referer","referer","sec-ch-ua","sec-ch-ua-mobile","sec-ch-ua-platform","sec-fetch-mode","sec-fetch-site","sec-fetch-dest","priority","accept-encoding"];var k=c(67518),l=c(62959),m=c(97594);let n=async()=>null,o=async()=>void 0;var p=c(87094),q=c(80540);let r=["opencode","open-code","cline","roo-cline","roo_cline","cursor","windsurf","aider","continue.dev","copilot","avante","codecompanion","claude code","claude-code","kilo code","kilocode","omniroute"],s=new Map;var t=c(42492),u=c(85955),v=c(59909);let w=new Map;async function x(a,b,c){let d=v.KJ.map(a=>`${a}/v1internal:loadCodeAssist`),e="harness"===c?(0,u.f0)(c,a):(0,k.He)("loadCodeAssist",a);for(let a of d)try{let c=await b(a,{method:"POST",headers:e,body:JSON.stringify({metadata:(0,k.iu)()}),signal:AbortSignal.timeout(8e3)});if(!c.ok){console.warn(`[models] antigravity loadCodeAssist failed at ${a} (${c.status}) — trying next`);continue}let d=(await c.json()).cloudaicompanionProject,f="string"==typeof d?d.trim():d&&"object"==typeof d&&"string"==typeof d.id?d.id.trim():"";if(f)return f;console.warn(`[models] antigravity loadCodeAssist at ${a} returned no project id — trying next`)}catch(c){let b=c instanceof Error?c.message:String(c);console.warn(`[models] antigravity loadCodeAssist threw for ${a}: ${b} — trying next`)}return null}async function y(a,b=fetch,c="ide"){let d=`${c}:${a}`;if(w.has(d))return w.get(d);let e=await x(a,b,c);if(e)return w.set(d,e),e}var z=c(25415);let A="_ide",B=["browser_subagent","command_status","find_by_name","generate_image","grep_search","list_dir","list_resources","multi_replace_file_content","notify_user","read_resource","read_terminal","read_url_content","replace_file_content","run_command","search_web","send_command_input","task_boundary","view_content_chunk","view_file","write_to_file"],C=[...B,"mcp_sequential_thinking_sequentialthinking"],D=new Set(B),E=C.map(a=>Object.freeze({name:a,description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}}));function F(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function G(a){return"string"==typeof a?a.trim():""}function H(a){return!(a.length>0)||D.has(a)||a.endsWith(A)?a:`${a}${A}`}var I=c(24286);let J=[/^claude-/i,/^gpt-oss-/i,/^tab_/i];function K(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function L(a){if(!K(a)||!("thinkingConfig"in a)&&!("thinking_config"in a))return a;let b={...a};return delete b.thinkingConfig,delete b.thinking_config,b}var M=c(90043),N=c(47593),O=c(23874),P=c(4368),Q=c(7882);let R=[/high\s+traffic/i,/agent\s+(execution\s+)?terminated\s+due\s+to\s+error/i,/capacity/i,/temporarily\s+unavailable/i,/timeout/i,/stream\s+(ended|closed|terminated|interrupted)/i,/empty\s+response/i],S=new Set([i.gx.SERVER_ERROR,i.gx.BAD_GATEWAY,i.gx.SERVICE_UNAVAILABLE,i.gx.GATEWAY_TIMEOUT]);function T(a,b){return b?new ReadableStream({async start(b){b.enqueue(new TextEncoder().encode(a)),b.close()}},{highWaterMark:16384}):a}function U(a,b,c){let d=function(a){if(!a||"object"!=typeof a)return a;try{return structuredClone(a)}catch{return JSON.parse(JSON.stringify(a))}}(c);return(0,g.IL)(a)?(0,g.BI)(a,{...b},d):{headers:b,bodyString:JSON.stringify(d)}}class V extends Error{constructor(a,b){super(`Antigravity upstream did not return response headers within ${a}ms: ${b}`),this.code=i.LD,this.status=i.gx.GATEWAY_TIMEOUT,this.name="TimeoutError"}}let W=new Map,X=setInterval(()=>{let a=Date.now();for(let[b,c]of W)a>=c&&W.delete(b)},6e4);"object"==typeof X&&"unref"in X&&X.unref?.();let Y=new Map,Z=!1,$=setInterval(function(){let a=Date.now();for(let[b,c]of Y)a-c.updatedAt>3e5&&Y.delete(b);for(;Y.size>50;){let a=Y.keys().next().value;if(void 0!==a)Y.delete(a);else break}},6e4);function _(a){if(!Z){Z=!0;try{for(let[a,b]of n())Y.has(a)||Y.set(a,{balance:b,updatedAt:Date.now()})}catch{}}let b=Y.get(a);return b?Date.now()-b.updatedAt>3e5?(Y.delete(a),null):b.balance:null}function aa(a,b){if(Y.size>=50&&!Y.has(a)){let a=Y.keys().next().value;void 0!==a&&Y.delete(a)}Y.set(a,{balance:b,updatedAt:Date.now()});try{o(a,b)}catch{}}function ab(a){if(W.size>=50&&!W.has(a)){let a=Date.now();for(let[b,c]of W)a>=c&&W.delete(b);if(W.size>=50){let a=W.keys().next().value;void 0!==a&&W.delete(a)}}W.set(a,Date.now()+18e6)}function ac(a,b,c){if(a&&"[DONE]"!==a)try{let c=JSON.parse(a),d="string"==typeof c?.markdown?c.markdown:"string"==typeof c?.response?.markdown?c.response.markdown:null;d&&(b.textContent+=d);let e=c?.response?.candidates?.[0];if(e?.content?.parts){for(let a of e.content.parts)if("string"==typeof a.text&&!a.thought&&!a.thoughtSignature){let c=function(a){if("string"!=typeof a)return null;let b=a.replace(/[\u200B-\u200D\uFEFF]/g,"").match(/^[\s\S]*?\[Tool call:\s*([^\]\n]+)\]\s*\nArguments:\s*([\s\S]+?)\s*$/);if(!b)return null;let c=b[1]?.trim(),d=b[2]?.trim();if(!c||!d)return null;try{return{name:c,args:function a(b){return"string"==typeof b?b.replace(/[\u200B-\u200D\uFEFF]/g,""):Array.isArray(b)?b.map(b=>a(b)):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).map(([b,c])=>[b,a(c)])):b}(JSON.parse(d))}}catch{return null}}(a.text);if(c)b.toolCalls.push({id:`${c.name}-${Date.now()}-${b.toolCalls.length}`,index:b.toolCalls.length,type:"function",function:{name:c.name,arguments:JSON.stringify(c.args||{})}}),b.finishReason="tool_calls";else b.textContent+=a.text}}if(e?.finishReason&&(b.finishReason=(0,O.U)(String(e.finishReason).toLowerCase())),c?.response?.usageMetadata){let a=c.response.usageMetadata;b.usage={prompt_tokens:a.promptTokenCount||0,completion_tokens:a.candidatesTokenCount||0,total_tokens:a.totalTokenCount||0}}Array.isArray(c?.remainingCredits)&&(b.remainingCredits=c.remainingCredits)}catch{c?.debug?.("SSE_PARSE",`Skipping malformed SSE line: ${a.slice(0,80)}`)}}function ad(a,b,c,d){b.value+=a;let e=b.value.split("\n");for(let a of(b.value=e.pop()||"",e)){let b=a.trim();b.startsWith("data:")&&ac(b.slice(5).trim(),c,d)}}async function ae(a,b){if(b)return b.includes("/")?b.split("/").pop():b;if(!a)return a;let c=a.includes("/")?a.split("/").pop():a,d=c;try{let a=await (0,q.c)("antigravity");if(a&&"object"==typeof a){let b=a[c];if("string"==typeof b&&b){let a="antigravity/";d=b.startsWith(a)?b.slice(a.length):b}}}catch{}return d===c&&(d=(0,z.Vg)(d)),d}function af(a,b){if(!b?.size||!a||"object"!=typeof a)return a;let c=Array.isArray(a)?[...a]:{...a};return Object.defineProperty(c,"_toolNameMap",{value:b,enumerable:!1,configurable:!0,writable:!0}),c}function ag(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}"object"==typeof $&&"unref"in $&&$.unref?.();class ah extends f.Hv{constructor(){super("antigravity",i.xq.antigravity)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0];return`${e}/v1internal:streamGenerateContent?alt=sse`}buildHeaders(a,b=!0){let c;var d={"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,k.FT)(),Accept:"text/event-stream","X-OmniRoute-Source":"omniroute"};let e={};for(let[a,b]of Object.entries(d)){let d=a.toLowerCase();if(!(d.startsWith("x-omniroute-")||j.includes(d))){if("authorization"===d){c=b;continue}e[a]=b}}return e["Accept-Encoding"]="gzip, deflate, br",void 0!==c&&(e.Authorization=c),e}async transformRequest(a,b,c,d,e){let f,g,h,i,j,k,l,m=a=>"string"!=typeof a?null:a.trim()||null,n=ag(b)??{},o=m(n.project),p=m(d?.projectId),q=m(d?.providerSpecificData?.projectId),t="1"===process.env.OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE&&o?o:p||q||o;if(!t&&d?.accessToken){let a=await y(d.accessToken);a&&(t=a)}if(!t)return new Response(JSON.stringify({error:{message:"Missing Google projectId for Antigravity account. Auto-discovery via loadCodeAssist found no Cloud Code project. Please reconnect OAuth in Providers → Antigravity (and ensure the Google account has completed Gemini Code Assist onboarding).",type:"oauth_missing_project_id",code:"missing_project_id"}}),{status:422,headers:{"Content-Type":"application/json"}});if(!("string"==typeof t?t.trim():t))return new Response(JSON.stringify({error:{message:"Invalid (empty) Google projectId for Antigravity account. Please reconnect OAuth in Providers → Antigravity.",type:"oauth_missing_project_id",code:"missing_project_id"}}),{status:422,headers:{"Content-Type":"application/json"}});let u=await ae(a,e),v=u.toLowerCase().includes("claude"),w=!function(a,b){if(!a||!b)return!1;let c=String(b||"").trim().replace(/^models\//i,"").replace(/^antigravity\//i,"");if(J.some(a=>a.test(c)))return!0;let d=(0,I.js)(c);return"boolean"==typeof d?.supportsThinking&&!d.supportsThinking}(this.provider,u)?n:function(a){let b={...a};if(delete b.reasoning_effort,delete b.reasoning,delete b.thinking,"generationConfig"in b&&(b.generationConfig=L(b.generationConfig)),K(b.request)){let a={...b.request};delete a.reasoning_effort,delete a.reasoning,delete a.thinking,"generationConfig"in a&&(a.generationConfig=L(a.generationConfig)),b.request=a}return b}(n),x=ag(w.request),z=(Array.isArray(x?.contents)?x.contents:[]).map(a=>{let b="string"==typeof a.role?a.role:"user";a.parts?.some(a=>a.functionResponse)&&(b="user");let c=a.parts?.some(a=>a.functionCall)||!1,d=a.parts?.filter(a=>("string"!=typeof a.text||""!==a.text)&&(!a.functionCall||!!a.functionCall.name)&&!a.thought&&(c||!a.thoughtSignature||"skip_thought_signature_validator"===a.thoughtSignature))||[];return{...a,role:b,parts:d}})||[],A=[];for(let a of z)Array.isArray(a.parts)&&0!==a.parts.length&&(A.length>0&&A[A.length-1].role===a.role?A[A.length-1].parts.push(...a.parts):A.push(a));let B={...x,...A.length>0&&{contents:A},sessionId:(0,P.a0)(d,"string"==typeof x?.sessionId?x.sessionId:void 0),safetySettings:x?.safetySettings??N.fc,toolConfig:Array.isArray(x?.tools)&&x.tools.length>0?{functionCallingConfig:{mode:"VALIDATED"}}:x?.toolConfig},C=v?(f={},Array.isArray(B.contents)&&(f.contents=B.contents),ag(B.systemInstruction)&&(f.systemInstruction=B.systemInstruction),f.generationConfig=ag(B.generationConfig)?{...B.generationConfig}:{},(g=(0,M.B)(B.tools))?(f.tools=g,f.toolConfig={functionCallingConfig:{mode:"VALIDATED"}}):ag(B.toolConfig)&&(f.toolConfig=B.toolConfig),"string"==typeof B.sessionId&&(f.sessionId=B.sessionId),Array.isArray(B.safetySettings)&&(f.safetySettings=B.safetySettings),f):B,D=C.contents;if(Array.isArray(D)){for(let a of D)if(Array.isArray(a.parts))for(let b of a.parts)"string"==typeof b.text&&(b.text=function(a){if(!a||0===r.length)return a;let b=a;for(let a of r){if(!a)continue;let c=function(a){let b=s.get(a);return b||(s.size>2e3&&s.clear(),b=RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi"),s.set(a,b)),b}(a);b=b.replace(c,a=>a.length<=1?a:a[0]+""+a.slice(1))}return b}(b.text))}void 0===(h=C.generationConfig&&"object"==typeof C.generationConfig?C.generationConfig:{}).topK&&(h.topK=40),void 0===h.topP&&(h.topP=1),i=h.thinkingConfig&&"object"==typeof h.thinkingConfig?h.thinkingConfig:null,j=Number(i?.thinkingBudget),k=Number(h.maxOutputTokens),Number.isFinite(j)&&j>0&&(!Number.isFinite(k)||k<=j)&&(h.maxOutputTokens=Math.floor(j)+1),Number.isFinite(l=Number(h.maxOutputTokens))&&l>16384&&(h.maxOutputTokens=16384),C.generationConfig=h;let{project:E,model:F,userAgent:G,requestType:H,requestId:O,request:Q,output_config:R,output_format:S,thinking:T,reasoning_effort:U,reasoning:V,enable_thinking:W,thinking_budget:X,...Y}=w,Z="image_gen"===H?"image_gen":"agent",$={project:t,requestId:(0,P.Ep)(),request:C,model:u,userAgent:(0,P.Xv)(d),requestType:Z,...Y};return"agent"===Z&&void 0===$.enabledCreditTypes&&($.enabledCreditTypes=["GOOGLE_ONE_AI"]),$}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c={grant_type:"refresh_token",refresh_token:a.refreshToken};this.config.clientId&&(c.client_id=this.config.clientId),this.config.clientSecret&&(c.client_secret=this.config.clientSecret);let d=await fetch(i.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","User-Agent":(0,k.Rj)()},body:new URLSearchParams(c)});if(!d.ok){try{let a=await d.json();if("invalid_grant"===a.error)return b?.error?.("TOKEN","Antigravity refresh token revoked. Re-authentication required."),{error:"unrecoverable_refresh_error"}}catch{}return null}let e=await d.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:"string"==typeof e.access_token?e.access_token:void 0,refreshToken:"string"==typeof e.refresh_token&&e.refresh_token?e.refresh_token:a.refreshToken,expiresIn:"number"==typeof e.expires_in?e.expires_in:void 0,projectId:a.projectId,providerSpecificData:a.providerSpecificData}}catch(c){let a=c instanceof Error?c.message:String(c);return b?.error?.("TOKEN",`Antigravity refresh error: ${a}`),null}}generateSessionId(){return`-${parseInt((0,d.randomUUID)().replace(/-/g,"").substring(0,8),16)%9e18}`}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/resets? (?:after|in) (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return(b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),0===c)?2e3:c}extractErrorMessage(a,b=""){let c=[];if(a&&"object"==typeof a){let b=a.error;if(b&&"object"==typeof b){let a=b.message;"string"==typeof a?c.push(a):null!=a&&c.push(JSON.stringify(a))}else"string"==typeof b&&c.push(b);"string"==typeof a.message&&c.push(a.message)}return b&&c.push(b),c.filter(Boolean).join("\n")}isTransientAntigravityError(a,b){return!!(a===i.gx.RATE_LIMITED||S.has(a))||R.some(a=>a.test(b||""))}collectStreamToResponse(a,b,c,d,f,g,h){if(!a.body)return Promise.resolve({response:a,url:c,headers:d,transformedBody:f});let i=a.body.getReader(),j=new TextDecoder,k=g||void 0;return(async()=>{let l,m={textContent:"",finishReason:"stop",toolCalls:[],usage:null,remainingCredits:null},n={value:""},o=!1,p=AbortSignal.timeout(12e4);try{for(;;){if(h?.aborted)throw Error("Request aborted during SSE collection");let{done:a,value:b}=await Promise.race([i.read(),new Promise((a,b)=>p.addEventListener("abort",()=>b(Error("SSE collection timed out")),{once:!0}))]);if(a)break;ad(j.decode(b,{stream:!0}),n,m,k)}}catch(c){let b=c?.message||String(c);o=b.includes("timed out"),g?.warn?.("SSE_COLLECT",`Error collecting SSE stream: ${b}`);try{i.releaseLock()}catch(a){}try{a.body?.cancel().catch(()=>{})}catch(a){}}finally{try{i.releaseLock()}catch(a){}}ad(j.decode(),n,m,k),l=n.value.trim(),n.value="",l.startsWith("data:")&&ac(l.slice(5).trim(),m,k);let q={id:`chatcmpl-${Date.now()}-${e().randomUUID().slice(0,8)}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:m.toolCalls.length>0?{role:"assistant",content:m.textContent||null,tool_calls:m.toolCalls}:{role:"assistant",content:m.textContent},finish_reason:o?"length":m.toolCalls.length>0?"tool_calls":m.finishReason}],...m.usage&&{usage:m.usage},...m.remainingCredits&&{_remainingCredits:m.remainingCredits}},r=o?504:a.status;return{response:new Response(JSON.stringify(q),{status:r,statusText:o?"Gateway Timeout":a.statusText,headers:[["Content-Type","application/json"]]}),url:c,headers:d,transformedBody:f}})()}async execute(a){await (0,t.f9)();let b=await ae(a.model),c=(0,z.L8)(b);if(c.length<=1)return this.executeOnce(a);let d=null;for(let e=0;e<c.length;e++){let f=c[e],g=await this.executeOnce(a,f);if(g.response.status!==i.gx.BAD_REQUEST)return g;if(0===e&&(d=g),e!==c.length-1){a.log?.debug?.("AG_PRO_FALLBACK",`400 on "${f}" — retrying with next Pro candidate "${c[e+1]}"`);continue}return a.log?.warn?.("AG_PRO_FALLBACK",`Pro fallback chain exhausted (all ${c.length} candidates 400'd) for "${b}"`),d??g}return d??this.executeOnce(a)}async executeOnce({model:a,body:b,stream:c,credentials:d,signal:e,log:g,upstreamExtraHeaders:j},k){await (0,t.f9)();let n=this.getFallbackCount(),o=null,q=0,r={},s=d?.connectionId||"unknown",v=(0,m.YX)(),w=(0,m.Ze)(d?.accessToken||"",v),x=async(a,b,c=i.TG)=>{let d=Math.max(0,Math.floor(c));if(d<=0)return fetch(a,b);let e=new AbortController,g=setTimeout(()=>{e.abort(new V(d,a))},d),h=b.signal instanceof AbortSignal?b.signal:null,j=h?(0,f.OW)(h,e.signal):e.signal;try{return await fetch(a,{...b,signal:j})}catch(a){if(e.signal.aborted&&function(a){if(!a||"object"!=typeof a)return null;let b=a.code;return"string"==typeof b?b:null}(e.signal.reason)===i.LD)throw e.signal.reason;throw a}finally{g&&(clearTimeout(g),g=null)}};for(let t=0;t<n;t++){let y=this.buildUrl(a,!0,t),z=this.buildHeaders(d,!0);(0,f._F)(z,j);let A=await this.transformRequest(a,b,!0,d,k),B=null;if(A instanceof Response)return{response:A,url:y,headers:z,transformedBody:b};let C=A;if(C&&"object"==typeof C){let a=function(a){let b=F(a.request);if(!b)return{body:a,toolNameMap:null};let c=a._toolNameMap instanceof Map?a._toolNameMap:null,d=c?new Map(c):new Map,e=!1,f={...b};if(Array.isArray(b.tools)){let a=[],c=[];for(let f of b.tools){let b=F(f);if(!b||!Array.isArray(b.functionDeclarations)){a.push(f);continue}for(let a of b.functionDeclarations){let b=F(a);if(!b)continue;let f=void 0!==b.parameters?{...b,parameters:function a(b){if(!b||"object"!=typeof b)return b;if(Array.isArray(b))return b.map(b=>a(b));let c={...b};delete c.enumDescriptions;let d=F(c.properties);if(d){let b={};for(let c of Object.keys(d))b[c]=a(d[c]);c.properties=b}return void 0!==c.items&&(c.items=a(c.items)),c}(b.parameters)}:b;f!==b&&(e=!0);let g=G(f.name);if(!g){c.push({...f});continue}let h=H(g);h!==g&&(e=!0,d.set(h,d.get(g)??g)),c.push({...f,name:h})}}if(c.length>0){let b=new Set(c.map(a=>G(a.name)).filter(a=>a.length>0));f.tools=[...a,{functionDeclarations:[...c,...E.filter(a=>!b.has(a.name))]}],e=!0}}if(Array.isArray(b.contents)){let a=!1,c=b.contents.map(b=>{let c=F(b);if(!c||!Array.isArray(c.parts))return b;let e=!1,f=c.parts.map(a=>{let b=F(a);if(!b)return a;let c={...b},f=F(b.functionCall);if(f){let a=G(f.name),b=H(a);b!==a&&(c.functionCall={...f,name:b},d.set(b,d.get(a)??a),e=!0)}let g=F(b.functionResponse);if(g){let a=G(g.name),b=H(a);b!==a&&(c.functionResponse={...g,name:b},d.set(b,d.get(a)??a),e=!0)}return e?c:a});return e?(a=!0,{...c,parts:f}):b});a&&(f.contents=c,e=!0)}return e?{body:{...a,request:f},toolNameMap:d.size>0?d:null}:{body:a,toolNameMap:d.size>0?d:null}}(C);C=a.body,B=a.toolNameMap}w&&(C=(0,m.IE)(C),g?.debug?.("AG_CREDITS","Credits-first enabled (ANTIGRAVITY_CREDITS=always)")),r[t]||(r[t]=0);try{let b=U(this.provider,z,C),f=b.headers,j=(a,b)=>Q.VN(y,a,b,g),k=(0,u.Nc)(f,d,C);if(g?.debug?.("TELEMETRY",`[Antigravity] Execute - URL: ${y}, Model: ${a}, Target: ${function(a){let b=a.model;return"string"==typeof b&&b.length>0?b:"unknown"}(C)}, RetryAttempt: ${r[t]}`),g?.debug){let a={...f};a.Authorization&&(a.Authorization="Bearer ***"),g.debug("AG_REQUEST_HEADERS",JSON.stringify(a));let b=C,c=b.request;g.debug("AG_REQUEST_ENVELOPE",JSON.stringify({fieldOrder:Object.keys(b),project:b.project,requestId:b.requestId,model:b.model,userAgent:b.userAgent,requestType:b.requestType,enabledCreditTypes:b.enabledCreditTypes,clientProfile:k,sessionId:c?.sessionId,generationConfig:c?.generationConfig}))}await j(f,b.bodyString);let o=await x(y,{method:"POST",headers:f,body:T(b.bodyString,c),...c?{duplex:"half"}:{},signal:e});if(o.status===i.gx.FORBIDDEN&&f["x-goog-user-project"]){let a={...f};(0,u.H$)(a,"x-goog-user-project"),g?.debug?.("RETRY","403 with x-goog-user-project, retrying once without it"),await j(a,b.bodyString),o=await x(y,{method:"POST",headers:a,body:T(b.bodyString,c),...c?{duplex:"half"}:{},signal:e}),f=a}o.ok||g?.warn?.("TELEMETRY",`[Antigravity] Error Response - URL: ${y}, Status: ${o.status}, Model: ${a}`);let w=null;if(o.status===i.gx.RATE_LIMITED||o.status===i.gx.SERVICE_UNAVAILABLE){if(!(w=this.parseRetryHeaders(o.headers)))try{let b=await o.clone().text(),f=JSON.parse(b),h=f?.error?.message||f?.message||"";if(f?.error?.details&&Array.isArray(f.error.details))for(let a of f.error.details)a?.reason&&(h+=` ${a.reason}`);let k=this.parseRetryFromErrorMessage(h),n=(0,l._c)(h),q=(0,l.M0)(n,k);w=q.retryAfterMs,g?.debug?.("AG_429",`Category: ${n}, Decision: ${q.kind} — ${q.reason}`),"full_quota_exhausted"===q.kind&&w&&function(a,b){try{(0,p.qq)(a,Date.now()+b)}catch{}}(s,w);let r=null!=C.enabledCreditTypes;if("quota_exhausted"===n&&r&&((0,m.Z1)(d?.accessToken||""),g?.warn?.("AG_CREDITS","Credits-first request 429'd — credits likely exhausted"),ab(s)),"quota_exhausted"===n&&"full_quota_exhausted"!==q.kind&&!r&&(0,m.SN)(d?.accessToken||"","off"!==v)){g?.info?.("AG_CREDITS","Retrying with Google One AI credits");let b=(0,m.IE)(C),f=U(this.provider,z,b),h=f.headers;try{await j(h,f.bodyString);let k=await x(y,{method:"POST",headers:h,body:T(f.bodyString,c),...c?{duplex:"half"}:{},signal:e});if(k.ok||k.status!==i.gx.RATE_LIMITED){if(g?.info?.("AG_CREDITS",`Credits retry succeeded: ${k.status}`),!c){let c=await this.collectStreamToResponse(k,a,y,h,b,g,e);try{let a=await c.response.clone().json(),b=a?._remainingCredits;if(Array.isArray(b)){let a=b.find(a=>"GOOGLE_ONE_AI"===a.creditType);if(a){let b=parseInt(a.creditAmount,10);isNaN(b)||aa(s,b)}}}catch{}return{...c,transformedBody:af(b,B)}}return{response:k,url:y,headers:h,transformedBody:af(b,B)}}(0,m.Z1)(d?.accessToken||""),g?.warn?.("AG_CREDITS","Credits retry also 429'd"),ab(s)}catch(a){(0,m.Z1)(d?.accessToken||""),g?.warn?.("AG_CREDITS",`Credits retry failed: ${a}`)}}}catch(a){}if(w&&w<=6e4&&r[t]<3){r[t]++;let a=Math.min(w,6e4);g?.debug?.("RETRY",`${o.status} retry ${r[t]}/3 with Retry-After: ${Math.ceil(a/1e3)}s, waiting...`),await new Promise(b=>setTimeout(b,a)),t--;continue}if((!w||0===w)&&r[t]<3){let a=o.status===i.gx.RATE_LIMITED;if(!a&&S.has(o.status))try{let b=await o.clone().text(),c=null;try{c=b?JSON.parse(b):null}catch{}let d=this.extractErrorMessage(c,b);a=this.isTransientAntigravityError(o.status,d)}catch{}if(a){r[t]++;let a=o.status===i.gx.RATE_LIMITED?6e4:15e3,b=Math.min(1e3*2**r[t],a);g?.debug?.("RETRY",`${o.status} transient auto retry ${r[t]}/3 after ${b/1e3}s`),await new Promise(a=>setTimeout(a,b)),t--;continue}}if(g?.debug?.("RETRY",`${o.status}, Retry-After ${w?`too long (${Math.ceil(w/1e3)}s)`:"missing"}, trying fallback`),q=o.status,t+1<n)continue}if(this.shouldRetry(o.status,t)){g?.debug?.("RETRY",`${o.status} on ${y}, trying fallback ${t+1}`),q=o.status;continue}if(o.status===i.gx.RATE_LIMITED&&w&&w>6e4)try{let a,b=await o.clone().text();try{a=JSON.parse(b)}catch{a={}}a.retryAfterMs=w;let c=JSON.stringify(a);return{response:new Response(c,{status:o.status,headers:o.headers}),url:y,headers:f,transformedBody:af(C,B)}}catch(a){g?.warn?.("RETRY",`Failed to embed retryAfterMs: ${a}`)}if(!c){if(!o.ok){let a=await o.clone().text().catch(()=>""),b=function(a,b,c){let d;try{d=JSON.parse(c)}catch{}let e=b?`: ${b}`:"";return(0,h.buildErrorBody)(a,`Antigravity upstream error (${a})${e}`,d)}(o.status,o.statusText,a);return{response:new Response(JSON.stringify(b),{status:o.status,headers:{"Content-Type":"application/json"}}),url:y,headers:f,transformedBody:af(C,B)}}let b=await this.collectStreamToResponse(o,a,y,f,C,g,e);try{let a=await b.response.clone().json(),c=a?._remainingCredits;if(Array.isArray(c)){let a=c.find(a=>a?.creditType==="GOOGLE_ONE_AI");if(a){let b=parseInt(a.creditAmount,10);isNaN(b)||aa(s,b)}}}catch{}return{...b,transformedBody:af(C,B)}}if(o.body){if(e){let a=()=>{try{o.body?.cancel().catch(()=>{})}catch(a){}};e.aborted?a():e.addEventListener("abort",a,{once:!0})}let a="",b=new TextDecoder,c=new TransformStream({transform(c,d){d.enqueue(c);try{let d=b.decode(c,{stream:!0});if((a+=d).length>16384){let b=a.lastIndexOf("\n",a.length-16384);a=-1!==b?a.slice(b+1):""}}catch{}},flush(){try{let c=b.decode();a+=c}catch{}try{for(let b of a.split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if(c&&"[DONE]"!==c)try{let a=JSON.parse(c);if(Array.isArray(a?.remainingCredits)){let b=a.remainingCredits.find(a=>{let b=ag(a);return b?.creditType==="GOOGLE_ONE_AI"});if(b){let a=parseInt(String(b.creditAmount??""),10);isNaN(a)||aa(s,a)}}}catch{}}}catch{}a=""}},{highWaterMark:16384},{highWaterMark:16384}),d=o.body.pipeThrough(c);return{response:new Response(d,{status:o.status,statusText:o.statusText,headers:o.headers}),url:y,headers:f,transformedBody:af(C,B)}}return{response:o,url:y,headers:f,transformedBody:af(C,B)}}catch(b){if(o=b,g?.error?.("TELEMETRY",`[Antigravity] Network/Fetch Error - URL: ${y}, Model: ${a}, Error: ${b instanceof Error?b.message:String(b)}`),t+1<n){g?.debug?.("RETRY",`Error on ${y}, trying fallback ${t+1}`);continue}throw b}}throw o||Error(`All ${n} URLs failed with status ${q}`)}}},60059:(a,b,c)=>{c.d(b,{lc:()=>o});var d=c(97510),e=c(43659),f=c(72221);let g="https://t3.chat",h=`${g}/_serverFn/`,i="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36";function j(a){let b="object"==typeof a&&null!==a?a:{},c=String(b.apiKey??b.accessToken??"").trim();if(!c)return{cookieHeader:"",cookies:"",convexSessionId:""};let d=c,e="";if(c.includes("convexSessionId")||c.includes("convex-session-id")){let a=c.split(/[,;\n]/).map(a=>a.trim()),b=[];for(let c of a)c.startsWith("convexSessionId=")||c.startsWith("convex-session-id=")?e=c.split("=").slice(1).join("="):c.startsWith("cookies=")?b.push(c.slice(8)):c.includes("=")&&b.push(c);b.length&&(d=b.join("; "))}let f=e&&!d.includes("convex-session-id")?`${d}; convex-session-id=${e}`:d;if(!e){let a=f.match(/convex-session-id=([^;]+)/);a&&(e=a[1].trim())}return{cookieHeader:f,cookies:d,convexSessionId:e}}function k(a){return!!a&&"string"==typeof a.cookieHeader&&a.cookieHeader.length>0&&"string"==typeof a.convexSessionId&&a.convexSessionId.length>0}function l(a,b){return(0,e.yj)(a,b)}function m(a){if("string"==typeof a?.text)return a.text;if("string"==typeof a?.delta)return a.delta;if("string"==typeof a?.content)return a.content;let b=a?.p;if(b?.k&&b?.v&&Array.isArray(b.k)&&Array.isArray(b.v)){for(let a=0;a<b.k.length;a++)if("content"===b.k[a]||"text"===b.k[a]||"delta"===b.k[a]){let c=b.v[a];if("string"==typeof c)return c;if(c?.t===2&&"string"==typeof c?.s)return c.s}}return a?.t===2&&"string"==typeof a?.s?a.s:null}async function n(a){let b=new TextDecoder,c=a.getReader(),d="",e=[];for(;;){let{done:a,value:f}=await c.read();if(a)break;let g=(d+=b.decode(f,{stream:!0})).split("\n");for(let a of(d=g.pop()||"",g)){let b=a.trim();if(!b)continue;let c=b.startsWith("data: ")?b.slice(6).trim():b;if("[DONE]"===c)break;try{let a=JSON.parse(c),b=m(a);"string"==typeof b&&e.push(b)}catch{}}}return e.join("")}class o extends d.Hv{constructor(){super("t3-web",{baseUrl:g})}async testConnection(a,b){try{let c=j(a);if(!k(c))return!1;return(await fetch(g,{method:"HEAD",headers:{"User-Agent":i,Cookie:c.cookieHeader},signal:b})).status<500}catch{return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:o}){let p=b||{},q=Array.isArray(p.messages)?p.messages:[],{hasTools:r,requestedTools:s,effectiveMessages:t}=(0,f.S$)(p,q),u=j(d);if(!k(u))return{response:l(400,"t3.chat credentials invalid: paste your full Cookie header (including convex-session-id) from t3.chat."),url:`${h}...`,headers:{},transformedBody:b};let v={"Content-Type":"application/json","User-Agent":i,Accept:"application/x-tss-framed, application/x-ndjson, application/json",Cookie:u.cookieHeader,Referer:`${g}/`,Origin:g};try{let b={model:a,messages:t,stream:!1!==c},d=`${g}/api/chat`;o?.info?.("T3-CHAT-WEB",`POST ${d} model=${a}`);let h=await fetch(d,{method:"POST",headers:v,body:JSON.stringify(b),signal:e});if(!h.ok){let a=h.status,c=`t3.chat API error (${a})`;return 401===a||403===a?c="t3.chat session expired or unauthorized — re-paste your cookies and convex-session-id.":429===a&&(c="t3.chat rate limited. Wait and retry."),o?.warn?.("T3-CHAT-WEB",c),{response:l(a,c),url:d,headers:v,transformedBody:b}}let i=h.headers.get("content-type")||"";if(i.includes("application/json")&&!i.includes("ndjson")){let c=await h.json();if(c?.error){let a=`t3.chat error: ${c.error?.message??JSON.stringify(c.error)}`;return o?.warn?.("T3-CHAT-WEB",a),{response:l(502,a),url:d,headers:v,transformedBody:b}}if(c?.choices)return{response:new Response(JSON.stringify(c),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b};let e=m(c)??c?.message?.content??"",f={id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:String(e)},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(f),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b}}if(!h.body)return{response:l(502,"t3.chat returned an empty response body"),url:d,headers:v,transformedBody:b};if(!1!==c){var w,x;let c,e,f,g,i,j=(w=h.body,x=a||"unknown",c=new TextEncoder,e=new TextDecoder,f=`chatcmpl-t3-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,g=Math.floor(Date.now()/1e3),i=!1,new ReadableStream({async start(a){let b=w.getReader(),d="",h=(b,d)=>{a.enqueue(c.encode(`data: ${JSON.stringify({id:f,object:"chat.completion.chunk",created:g,model:x,choices:[{index:0,delta:b,finish_reason:d??null}]})}
|
|
332
332
|
|
|
333
|
-
`))},j=()=>{i||(i=!0,h({role:"assistant",content:""})),h({},"stop"),a.enqueue(c.encode("data: [DONE]\n\n")),a.close()};try{for(;;){let{done:a,value:c}=await b.read();if(a)break;let f=(d+=e.decode(c,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){var k;let b,c=a.trim();if(!c)continue;let d=c.startsWith("data: ")?c.slice(6).trim():c;if("[DONE]"===d)return void j();try{b=JSON.parse(d)}catch{continue}let e=m(b);if("string"==typeof e&&e.length>0&&(i||(i=!0,h({role:"assistant",content:""})),h({content:e})),k=b,k?.type==="done"||k?.done===!0||k?.status==="complete"||k?.finish_reason==="stop")return void j()}}}catch{}j()}},{highWaterMark:16384}));return{response:new Response(j,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:d,headers:v,transformedBody:b}}let j=await n(h.body);if(r){let{content:c,toolCalls:e,finishReason:g}=(0,f.mU)(j,s,"t3");if(e)return{response:new Response(JSON.stringify({id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:null,tool_calls:e},finish_reason:g}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b};let h={id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:c},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(h),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b}}let k={id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:j},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(k),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b}}catch(c){let a=c instanceof Error?c.message:String(c);if(o?.error?.("T3-CHAT-WEB",`Execute failed: ${a}`),c instanceof DOMException&&"AbortError"===c.name)return{response:l(499,"Request cancelled"),url:`${h}...`,headers:{},transformedBody:b};return{response:l(502,`t3.chat connection error: ${a}`),url:`${h}...`,headers:v,transformedBody:b}}}}new o},61592:(a,b,c)=>{
|
|
333
|
+
`))},j=()=>{i||(i=!0,h({role:"assistant",content:""})),h({},"stop"),a.enqueue(c.encode("data: [DONE]\n\n")),a.close()};try{for(;;){let{done:a,value:c}=await b.read();if(a)break;let f=(d+=e.decode(c,{stream:!0})).split("\n");for(let a of(d=f.pop()||"",f)){var k;let b,c=a.trim();if(!c)continue;let d=c.startsWith("data: ")?c.slice(6).trim():c;if("[DONE]"===d)return void j();try{b=JSON.parse(d)}catch{continue}let e=m(b);if("string"==typeof e&&e.length>0&&(i||(i=!0,h({role:"assistant",content:""})),h({content:e})),k=b,k?.type==="done"||k?.done===!0||k?.status==="complete"||k?.finish_reason==="stop")return void j()}}}catch{}j()}},{highWaterMark:16384}));return{response:new Response(j,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:d,headers:v,transformedBody:b}}let j=await n(h.body);if(r){let{content:c,toolCalls:e,finishReason:g}=(0,f.mU)(j,s,"t3");if(e)return{response:new Response(JSON.stringify({id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:null,tool_calls:e},finish_reason:g}]}),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b};let h={id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:c},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(h),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b}}let k={id:`chatcmpl-t3-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a||"unknown",choices:[{index:0,message:{role:"assistant",content:j},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(k),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:v,transformedBody:b}}catch(c){let a=c instanceof Error?c.message:String(c);if(o?.error?.("T3-CHAT-WEB",`Execute failed: ${a}`),c instanceof DOMException&&"AbortError"===c.name)return{response:l(499,"Request cancelled"),url:`${h}...`,headers:{},transformedBody:b};return{response:l(502,`t3.chat connection error: ${a}`),url:`${h}...`,headers:v,transformedBody:b}}}}new o},61592:(a,b,c)=>{c.d(b,{I:()=>f});var d=c(97510),e=c(61408);class f extends d.Hv{constructor(){super("puter",e.xq.puter||{format:"openai"})}buildUrl(a,b,c=0,d=null){return"https://api.puter.com/puterai/openai/v1/chat/completions"}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"},d=a?.apiKey||a?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}}},62156:(a,b,c)=>{c.d(b,{Cy:()=>j,Wt:()=>f,Y8:()=>n,b2:()=>l,h$:()=>k,x3:()=>g,y$:()=>m});let d=new Map,e=new Map;function f(a,b){let c=b.filter(a=>"string"==typeof a&&a.trim().length>0);if(!e.has(a)&&e.size>=500){let a=e.keys().next().value;void 0!==a&&e.delete(a)}e.set(a,c.length>0)}function g(a,b){return!!b&&b.length>0||(e.get(a)??!1)}let h=new Map;function i(a,b){let c=`${a}:${b}`;if(!h.has(c)){if(h.size>=500){let a=h.keys().next().value;void 0!==a&&h.delete(a)}h.set(c,{status:"active",failures:0,lastFailure:null,lastSuccess:null,totalRequests:0,totalFailures:0})}return h.get(c)}function j(a,b,c=[]){let e=c.filter(a=>"string"==typeof a&&a.trim().length>0);if(0===e.length)return b;let f=[b,...e].filter(Boolean);if(f.length<=1)return b;let g=d.get(a)??0,h=g%f.length;return d.set(a,g+1),f[h]}function k(a,b){let c=i(a,b);return c.failures++,c.totalRequests++,c.totalFailures++,c.lastFailure=new Date().toISOString(),c.failures>=2?c.status="invalid":c.failures>0&&(c.status="warning"),{...c}}function l(a,b){let c=i(a,b);return c.failures=Math.max(c.failures+1,2),c.totalRequests++,c.totalFailures++,c.lastFailure=new Date().toISOString(),c.status="invalid",{...c}}function m(a,b){let c=i(a,b);return c.failures=0,c.totalRequests++,c.lastSuccess=new Date().toISOString(),c.status="active",{...c}}function n(a,b,c,e){if(e&&"invalid"!==i(a,e).status){if("primary"===e&&b)return{key:b,keyId:"primary"};let a=/^extra_(\d+)$/.exec(e);if(a){let b=Number.parseInt(a[1],10);if(b>=0&&b<c.length&&c[b].trim().length>0)return{key:c[b],keyId:e}}}return function(a,b,c=[]){let e=c.filter(a=>"string"==typeof a&&a.trim().length>0),f=[];b&&("invalid"!==i(a,"primary").status?f.push({key:b,keyId:"primary"}):console.warn(`[KeyRotator] Skipping invalid primary key for connection ${a.slice(0,8)}`));for(let b=0;b<e.length;b++){let c=`extra_${b}`;"invalid"!==i(a,c).status&&f.push({key:e[b],keyId:c})}if(0===f.length)return null;if(1===f.length)return{key:f[0].key,keyId:f[0].keyId};let g=d.get(a)??0,h=g%f.length;return d.set(a,g+1),{key:f[h].key,keyId:f[h].keyId}}(a,b,c)}},62959:(a,b,c)=>{c.d(b,{Ef:()=>i,M0:()=>g,_c:()=>f,dY:()=>j});let d=["quota_exhausted","quota exhausted","quota reached","enable overages","individual quota"],e=["google_one_ai","insufficient credit","insufficient credits","not enough credit","not enough credits","credit exhausted","credits exhausted","credit balance","minimumcreditamountforusage","minimum credit amount for usage","minimum credit","insufficient_g1_credits_balance","g1_credits"];function f(a){let b=(a||"").toLowerCase();for(let a of d)if(b.includes(a))return"quota_exhausted";for(let a of e)if(b.includes(a))return"quota_exhausted";return b.includes("per minute")||b.includes("rpm")||b.includes("rate limit")||b.includes("rate_limit")||b.includes("too many requests")?"rate_limited":b.includes("free tier")||b.includes("daily limit")||b.includes("exhausted your capacity")?"quota_exhausted":b.includes("try again")||b.includes("temporarily")?"soft_rate_limit":"unknown"}function g(a,b){switch(a){case"soft_rate_limit":return{kind:b&&b<=3e3?"instant_retry_same_auth":"soft_retry",retryAfterMs:b??2e3,reason:"Soft rate limit — brief backoff"};case"rate_limited":return{kind:b&&b<=3e5?"soft_retry":"short_cooldown_switch_auth",retryAfterMs:b??6e4,reason:"RPM rate limit — switch auth if cooldown is long"};case"quota_exhausted":return{kind:"full_quota_exhausted",retryAfterMs:b??864e5,reason:"Quota exhausted — skip this account"};default:return{kind:"soft_retry",retryAfterMs:b??5e3,reason:"Unknown 429 — generic backoff"}}}let h=new Map;function i(a){let b=h.get(a)??{count:0,disabledUntil:0};return(b.count++,b.count>=3)?(b.disabledUntil=Date.now()+18e6,h.set(a,b),!0):(h.set(a,b),!1)}function j(a){let b=h.get(a);return!!b&&(b.disabledUntil>Date.now()||(h.delete(a),!1))}},63882:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{z:()=>h});var e=c(69505),f=c(68085),g=a([e,f]);[e,f]=g.then?(await g)():g;class h extends e.s{async execute(a){let{credentials:b,log:c}=a;return this.retryCount=0,this.executeWithRetry(a)}async executeWithRetry(a){let{credentials:b,log:c}=a,d=await super.execute(a);if(200===d.response.status)return d;if((403===d.response.status||401===d.response.status)&&this.retryCount<this.maxRetries){this.retryCount++,c?.warn?.("CLAUDE-WEB",`HTTP ${d.response.status} detected - attempt ${this.retryCount}/${this.maxRetries}`);try{let e,g=(0,f.D3)(),h=this.retryCount>1;c?.info?.("CLAUDE-WEB",`Solving Turnstile (cache: ${g.hasCached?`${Math.round((g.expiresIn||0)/1e3)}s left`:"empty"})...`);let i=await (0,f.Xb)({force:h}),j=String(b?.cookie||"");e=j.includes("cf_clearance=")?j.replace(/cf_clearance=[^;]+/,`cf_clearance=${i}`):`${j}; cf_clearance=${i}`,c?.info?.("CLAUDE-WEB","cf_clearance injected, retrying...");let k={...a,credentials:{...b,cookie:e}};d=await this.executeWithRetry(k)}catch(b){let a=b instanceof Error?b.message:String(b);c?.error?.("CLAUDE-WEB",`Auto-refresh failed: ${a}`)}}return d}async testConnection(a,b){try{if(await super.testConnection(a,b))return!0;let c=String(a?.cookie||"");if(!c.trim())return!1;let d=await (0,f.Xb)(),e=c.includes("cf_clearance=")?c.replace(/cf_clearance=[^;]+/,`cf_clearance=${d}`):`${c}; cf_clearance=${d}`;return await super.testConnection({...a,cookie:e},b)}catch{return!1}}constructor(...a){super(...a),this.retryCount=0,this.maxRetries=2}}d()}catch(a){d(a)}})},64029:(a,b,c)=>{c.d(b,{I:()=>i});var d=c(97510),e=c(43659);let f="https://www.poe.com",g=`${f}/api/gql_POST`,h={"gpt-4o":"GPT-4o","gpt-4-turbo":"GPT-4-Turbo","claude-3.5-sonnet":"Claude-3.5-Sonnet","claude-3-opus":"Claude-3-Opus","gemini-2.0-flash":"Gemini-2.0-Flash","llama-3-70b":"Llama-3-70B","mixtral-8x22b":"Mixtral-8x22B","poe-default":"Assistant"};class i extends d.Hv{constructor(){super("poe-web",{id:"poe-web",baseUrl:"https://www.poe.com"})}async execute(a){var b;let c,d,{body:i,credentials:j,signal:k,stream:l}=a,m=i||{},n=(d=(b=(0,e.sY)(String(j?.apiKey??"").trim())).match(/p-b=([^;]+)/))?d[1]:b,o=m.messages||[],p=m.model||"poe-default",q=h[p]||p,r=o.filter(a=>"user"===a.role).pop(),s={operationName:"ChatViewQuery",query:`query ChatViewQuery($bot: String!, $query: String!) {
|
|
334
334
|
chatWithBot(bot: $bot, query: $query) {
|
|
335
335
|
messageId
|
|
336
336
|
text
|
|
@@ -338,7 +338,7 @@ var getComputedStyle = __getComputedStyle;
|
|
|
338
338
|
}
|
|
339
339
|
}`,variables:{bot:q,query:r?.content||""}},t={"Content-Type":"application/json","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",Accept:"application/json",Referer:`${f}/`,Origin:f,Cookie:`p-b=${n}`};try{c=await fetch(g,{method:"POST",headers:t,body:JSON.stringify(s),signal:k})}catch(a){return(0,e.DV)(502,`Poe fetch failed: ${a instanceof Error?a.message:"unknown"}`,i,g)}if(!c.ok){let a=await c.text().catch(()=>"");return(0,e.DV)(c.status,`Poe error: ${a}`,i,g)}let u=(((await c.json()).data??{}).chatWithBot??{}).text||"";if(!l)return{response:new Response(JSON.stringify({id:`chatcmpl-poe-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:p,choices:[{index:0,message:{role:"assistant",content:u},finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:g,headers:t,transformedBody:s};let v=new TextEncoder,w={id:`chatcmpl-poe-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:p,choices:[{index:0,delta:{content:u},finish_reason:null}]};return{response:new Response(new ReadableStream({start(a){a.enqueue(v.encode(`data: ${JSON.stringify(w)}
|
|
340
340
|
|
|
341
|
-
`)),a.enqueue(v.encode("data: [DONE]\n\n")),a.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:t,transformedBody:s}}}},68085:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{D3:()=>l,Xb:()=>k});var e=c(83237),f=a([e]);async function g(a){try{let b=(await a.context().cookies()).find(a=>"cf_clearance"===a.name);return!!b?.value}catch{return!1}}async function h(a){let b=Date.now();for(;Date.now()-b<6e4;){if(await g(a))return;await a.waitForTimeout(500)}throw Error("Turnstile challenge not solved within 60000ms")}async function i(a){let b=(await a.context().cookies()).find(a=>"cf_clearance"===a.name);if(!b?.value)throw Error("cf_clearance cookie not found after challenge solve");return b.value}async function j(a){let b=a?.headless!==!1;a?.timeout;let c=null,d=null;try{c=await e.chromium.launch({headless:b});let a=await c.newContext({userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",viewport:{width:1280,height:720},ignoreHTTPSErrors:"true"===process.env.OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS});return d=await a.newPage(),await d.goto("https://claude.ai",{waitUntil:"domcontentloaded"}),await h(d),{cfClearance:await i(d),timestamp:Date.now()}}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to solve Turnstile: ${a}`)}finally{d&&await d.close().catch(()=>{}),c&&await c.close().catch(()=>{})}}e=(f.then?(await f)():f)[0];let m=new Map;async function k(a){let b="claude-cf-clearance",c=m.get(b);if(c&&!a?.force&&c.expiresAt>Date.now()+3e5)return c.token;let d=await j({headless:a?.headless!==!1});return m.set(b,{token:d.cfClearance,expiresAt:Date.now()+33e5}),d.cfClearance}function l(){let a=m.get("claude-cf-clearance");if(!a)return{hasCached:!1};let b=Math.max(0,a.expiresAt-Date.now());return{hasCached:!0,expiresIn:b}}d()}catch(a){d(a)}})},69071:(a,b,c)=>{"use strict";c.d(b,{Vr:()=>p});var d=c(77598),e=c(48161),f=c(97510),g=c(85376),h=c(47774);let i="mimocode-cli-free",j="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.";function k(a){let b=a.messages;return!Array.isArray(b)||b.some(a=>null!=a&&"object"==typeof a&&"system"===a.role&&"string"==typeof a.content&&a.content.includes(j))?a:{...a,messages:[{role:"system",content:j},...b]}}let l=["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","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"];function m(a){return!(a.cooldownUntil>Date.now())&&!!(a.jwt&&a.expiresAt-Date.now()>3e5)}let n=new Map;async function o(a,b,c,d){let e=n.get(b);if(e)return e;let f=`${a}/api/free-ai/bootstrap`,g=new AbortController,i=setTimeout(()=>g.abort(),15e3),j=c?()=>g.abort(c.reason):null;c&&j&&c.addEventListener("abort",j,{once:!0});let k=(async()=>{try{let a=d?await (0,h.fetch)(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client:b}),signal:g.signal,dispatcher:d}):await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client:b}),signal:g.signal});if(!a.ok){let b=await a.text().catch(()=>"");throw Error(`Bootstrap failed: ${a.status} ${b.slice(0,200)}`)}let c=await a.json();if(!c.jwt)throw Error("Bootstrap response missing jwt field");return{jwt:c.jwt,expiresAt:function(a){try{let b=a.split(".");if(b.length<2)return Date.now()+3e6;return(JSON.parse(Buffer.from(b[1],"base64url").toString()).exp??Math.floor(Date.now()/1e3)+3e3)*1e3}catch{return Date.now()+3e6}}(c.jwt)}}finally{clearTimeout(i),c&&j&&c.removeEventListener("abort",j),n.delete(b)}})();return n.set(b,k),k}class p extends f.Hv{static{this.encoder=new TextEncoder}constructor(){super("mimocode",{format:"openai"}),this.accounts=[],this.nextAccountIdx=0,this.proxyUrlMap=new Map,this.baseUrl=this.getBaseUrls()[0]||"https://api.xiaomimimo.com",this.accounts.push({fingerprint:function(){let a=e.hostname(),b=e.platform(),c=e.arch(),f=function(){try{let a=e.cpus();if(a.length>0&&a[0].model)return a[0].model.trim()}catch{}return"unknown-cpu"}(),g="unknown-user";try{g=e.userInfo().username}catch{}return d.createHash("sha256").update(`${a}|${b}|${c}|${f}|${g}`).digest("hex")}(),jwt:"",expiresAt:0,cooldownUntil:0,consecutiveFails:0,proxy:null})}getProxyDispatcher(a){let b=this.proxyUrlMap.get(a);if(b)return(0,g.I_)(b)}fetchWithProxy(a,b,c){let d=this.getProxyDispatcher(c);return d?(0,h.fetch)(a,{...b,dispatcher:d}):fetch(a,b)}syncAccountsFromCredentials(a){let b=a?.providerSpecificData,c=b?.fingerprints,d=b?.accountProxies;if(Array.isArray(d)){for(let a of d)if(a?.fingerprint&&a?.proxy?.host){let{type:b="socks5",host:c,port:d,username:e,password:f}=a.proxy,g=d??("socks5"===b?1080:8080),h=e?`${encodeURIComponent(e)}:${f?encodeURIComponent(f):""}@`:"";this.proxyUrlMap.set(a.fingerprint,`${b}://${h}${c}:${g}`)}}if(Array.isArray(c)){let a=new Set(this.accounts.map(a=>a.fingerprint));for(let b of c)"string"!=typeof b||a.has(b)||(this.accounts.push({fingerprint:b,jwt:"",expiresAt:0,cooldownUntil:0,consecutiveFails:0,proxy:null}),a.add(b))}let e=Array.isArray(d)?new Map(d.map(a=>[a.fingerprint,a.proxy])):null;for(let a of this.accounts)if(e){let b=e.get(a.fingerprint);a.proxy=void 0!==b?b??null:null}else a.proxy=null}async getJwtForAccount(a,b){if(m(a))return a.jwt;let c=this.getProxyDispatcher(a.fingerprint),d=await o(this.baseUrl,a.fingerprint,b,c);return a.jwt=d.jwt,a.expiresAt=d.expiresAt,a.jwt}pickAccount(){for(let a=0;a<this.accounts.length;a++){let b=(this.nextAccountIdx+a)%this.accounts.length,c=this.accounts[b];if(m(c))return this.nextAccountIdx=(b+1)%this.accounts.length,c}let a=this.nextAccountIdx%this.accounts.length;return this.nextAccountIdx=(this.nextAccountIdx+1)%this.accounts.length,this.accounts[a]}markCooldown(a){a.consecutiveFails++;let b=Math.min(5e3*Math.pow(2,a.consecutiveFails-1),6e4);a.cooldownUntil=Date.now()+b+1e3*Math.random()}markSuccess(a){a.consecutiveFails=0}buildUrl(a,b,c=0,d){return`${this.baseUrl.replace(/\/$/,"")}/api/free-ai/openai/chat`}buildHeaders(a,b=!0,c,d){let e={"Content-Type":"application/json","X-Mimo-Source":i,"User-Agent":l[Math.floor(Math.random()*l.length)]};return b&&(e.Accept="text/event-stream, application/json"),e}transformRequest(a,b,c,d){if("object"==typeof b&&null!==b){let c;return k({...b,model:(c=a.lastIndexOf("/"))>=0?a.slice(c+1):a})}return b}async testConnection(a,b,c){try{this.syncAccountsFromCredentials(a);let c=this.accounts[0],d=await this.getJwtForAccount(c,b),e=await this.fetchWithProxy(this.buildUrl("mimo-auto",!1),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Mimo-Source":i},body:JSON.stringify(k({model:"mimo-auto",messages:[{role:"user",content:"ping"}],stream:!1})),signal:b??void 0},c.fingerprint);return 200===e.status}catch{return c?.warn?.("MIMOCODE","testConnection network error"),!1}}async execute(a){let{model:b,stream:c,body:d,signal:e,log:f}=a,g=p.encoder;if(e?.aborted)return{response:new Response(g.encode(JSON.stringify({error:{message:"Request aborted",type:"abort",code:"ABORTED"}})),{status:499,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials,c),transformedBody:d};let h=this.buildUrl(b,c),i=this.transformRequest(b,d,c,a.credentials);this.syncAccountsFromCredentials(a.credentials);for(let b=0;b<this.accounts.length;b++){let j=this.pickAccount();try{let b=await this.getJwtForAccount(j,e),d=this.buildHeaders(a.credentials,c);d.Authorization=`Bearer ${b}`;let g=await this.fetchWithProxy(h,{method:"POST",headers:d,body:JSON.stringify(i),signal:e??void 0},j.fingerprint);if(401===g.status||403===g.status){f?.warn?.("MIMOCODE",`Auth failed (${g.status}) on account ${j.fingerprint.slice(0,8)}…`),j.jwt="",j.expiresAt=0,j.consecutiveFails=0;let a=await this.getJwtForAccount(j,e);d.Authorization=`Bearer ${a}`,g=await this.fetchWithProxy(h,{method:"POST",headers:d,body:JSON.stringify(i),signal:e??void 0},j.fingerprint)}if(429===g.status){this.markCooldown(j),f?.warn?.("MIMOCODE",`Rate limited on account ${j.fingerprint.slice(0,8)}, trying next…`);continue}this.markSuccess(j);let k={};return g.headers.forEach((a,b)=>{k[b]=a}),{response:g,url:h,headers:k,transformedBody:i}}catch(e){if(this.markCooldown(j),b===this.accounts.length-1){let b=e instanceof Error?e.message:String(e);return f?.error?.("MIMOCODE",`Executor error: ${b}`),{response:new Response(g.encode(JSON.stringify({error:{message:b,type:"upstream_error",code:"EXECUTOR_ERROR"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:this.buildHeaders(a.credentials,c),transformedBody:d}}}}return{response:new Response(g.encode(JSON.stringify({error:{message:"All accounts exhausted",type:"upstream_error",code:"NO_ACCOUNTS"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:this.buildHeaders(a.credentials,c),transformedBody:d}}}},69386:(a,b,c)=>{"use strict";c.d(b,{BI:()=>g,IL:()=>i});var d=c(57647),e=c(86522);let f={codex:{headerOrder:["Host","Content-Type","Authorization","Accept","User-Agent","Accept-Encoding"],bodyFieldOrder:["model","stream","input","instructions","store","reasoning","prompt_cache_key","tools","tool_choice","include","service_tier","client_metadata","parallel_tool_calls","metadata"]},claude:{headerOrder:["Accept","Authorization","Content-Type","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-app","x-client-request-id","Connection","Host","Accept-Encoding","Content-Length"],bodyFieldOrder:["model","messages","system","tools","tool_choice","metadata","max_tokens","temperature","thinking","context_management","output_config","stream"]},"claude-code-compatible":{headerOrder:["Host","Content-Type","Authorization","anthropic-version","anthropic-beta","anthropic-dangerous-direct-browser-access","x-app","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Retry-Count","X-Stainless-Timeout","X-Stainless-Lang","X-Stainless-Package-Version","X-Stainless-OS","X-Stainless-Arch","X-Stainless-Runtime","X-Stainless-Runtime-Version","Accept","accept-encoding","Connection"],bodyFieldOrder:["model","messages","system","tools","tool_choice","metadata","max_tokens","thinking","output_config","stream"]},github:{headerOrder:["Host","Authorization","X-Request-Id","Vscode-Sessionid","Vscode-Machineid","Editor-Version","Editor-Plugin-Version","Copilot-Integration-Id","Openai-Organization","Openai-Intent","Content-Type","User-Agent","Accept","Accept-Encoding"],bodyFieldOrder:["messages","model","temperature","top_p","max_tokens","n","stream","intent","intent_threshold","intent_content"],userAgent:e._K},antigravity:{headerOrder:["Accept","Accept-Encoding","Authorization","Content-Type","User-Agent","x-goog-api-client","x-client-name","x-client-version","x-machine-id","x-vscode-sessionid","Host","Connection"],bodyFieldOrder:["project","requestId","request","model","userAgent","requestType","enabledCreditTypes"],userAgent:e.l0},qwen:{headerOrder:["Host","Content-Type","Authorization","User-Agent","X-Dashscope-AuthType","X-Dashscope-CacheControl","X-Dashscope-UserAgent","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-Os","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","Connection","Accept","Accept-Language","Sec-Fetch-Mode","Accept-Encoding"],bodyFieldOrder:["model","messages","temperature","top_p","max_tokens","stream","tools","tool_choice","response_format","n","stop"],userAgent:(0,e.DS)()["User-Agent"],extraHeaders:(0,e.DS)()}};function g(a,b,c){var e;!(e=c)||"object"!=typeof e||Array.isArray(e)||(delete e._claudeCodeRequiresLowercaseToolNames,delete e._nativeCodexPassthrough,delete e._omnirouteResponsesStore),c=e;let g=f[(0,d.GK)(a)?"claude-code-compatible":void 0];return g?(g.userAgent&&(b["User-Agent"]="function"==typeof g.userAgent?g.userAgent():g.userAgent),g.extraHeaders&&Object.assign(b,g.extraHeaders),{headers:function(a,b){if(!b?.length||!a)return a;let c={},d=new Map;for(let[b,c]of Object.entries(a))d.set(b.toLowerCase(),[b,c]);for(let a of b){let b=d.get(a.toLowerCase());b&&(c[b[0]]=b[1],d.delete(a.toLowerCase()))}for(let[,[a,b]]of d)c[a]=b;return c}(b,g.headerOrder),bodyString:JSON.stringify(c&&"object"==typeof c&&!Array.isArray(c)?function(a,b){if(!b?.length||!a||"object"!=typeof a)return a;let c={},d=new Set(Object.keys(a));for(let e of b)e in a&&(c[e]=a[e],d.delete(e));for(let b of d)c[b]=a[b];return c}(c,g.bodyFieldOrder):c)}):{headers:b,bodyString:JSON.stringify(c)}}let h=new Set;function i(a){if((0,d.GK)(a))return!0;let b=a?.toLowerCase().replace(/[^a-z0-9]/g,"_");if(h.has(void 0))return!0;let c=`CLI_COMPAT_${b?.toUpperCase()}`;return"1"===process.env[c]||"true"===process.env[c]||"1"===process.env.CLI_COMPAT_ALL||"true"===process.env.CLI_COMPAT_ALL}},69505:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{s:()=>y});var e=c(97510),f=c(61408),g=c(27216),h=c(68085),i=c(50954),j=c(55511),k=c(43659),l=c(74184),m=a([h]);h=(m.then?(await m)():m)[0];let v="https://claude.ai/api",w=`${v}/organizations`;function n(a){if(!a||"object"!=typeof a)return"";let b="string"==typeof a.cookie?a.cookie:"";if(b.trim())return b;let c="string"==typeof a.apiKey?a.apiKey:"";if(c.trim())return c;let d=a.providerSpecificData;if(d&&"object"==typeof d){let a=d.cookie;if("string"==typeof a&&a.trim())return a}return""}function o(a){if(!a||"object"!=typeof a)return;if("string"==typeof a.deviceId&&a.deviceId.trim())return a.deviceId;let b=a.providerSpecificData;if(b&&"object"==typeof b){let a=b.deviceId;if("string"==typeof a&&a.trim())return a}}let x="claude-sonnet-4-6";function p(a){let b={Accept:"text/event-stream","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://claude.ai",Pragma:"no-cache",Priority:"u=1, i",Referer:"https://claude.ai/new","Sec-Ch-Ua":'"Chromium";v="149", "Not-A.Brand";v="24", "Google Chrome";v="149"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Linux"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","anthropic-client-platform":"web_claude_ai"};return a&&(b["anthropic-device-id"]=a),b}async function q(a,b){let c=(0,i.p1)(a,"sessionKey");if(c.includes("cf_clearance="))return c;if(b?.allowAutoSolve!==!1)try{b?.log?.info?.("CLAUDE-WEB","cf_clearance missing, attempting to solve Turnstile...");let a=await (0,h.Xb)(),d=`cf_clearance=${a}`;c=c?`${c}; ${d}`:d,b?.log?.info?.("CLAUDE-WEB","cf_clearance injected successfully")}catch(c){let a=c instanceof Error?c.message:String(c);b?.log?.warn?.("CLAUDE-WEB",`cf_clearance injection failed: ${a}`)}return c}function r(a,b,c){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{content:a},finish_reason:"end_turn"===c?"stop":null,logprobs:null}]}}async function s(a,b,c){try{let d=AbortSignal.timeout(f.MT),h=c?(0,e.OW)(c,d):d,i=await (0,g.wf)(w,{method:"GET",headers:{...p(b),Cookie:a},timeoutMs:f.MT,signal:h});return 200===i.status}catch(a){return!1}}async function t(a,b,c){try{let d=AbortSignal.timeout(f.MT),h=c?(0,e.OW)(c,d):d,i=await (0,g.wf)(w,{method:"GET",headers:{...p(b),Cookie:a},timeoutMs:f.MT,signal:h});if(200!==i.status)return null;let j=JSON.parse(i.text??"[]");return j?.[0]?.uuid||j?.[0]?.id||null}catch(a){return null}}async function u(a,b,c,d){let e=d??a.body;if(!e)return new Response(JSON.stringify({error:{message:"No upstream response body available",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}});let f=!1,g=new ReadableStream({async start(a){let d=e.getReader(),g=new TextDecoder,h="";try{for(;;){let{value:c,done:e}=await d.read();if(e)break;let i=(h+=g.decode(c,{stream:!0})).split("\n");for(let c of(h=i.pop()??"",i)){let d=c.trim();if(!d||!d.startsWith("data: "))continue;let e=d.slice(6);try{let c=JSON.parse(e);if("content_block_delta"===c.type){let d=c.delta,e=d?.text;if(e){let c=r(e,b),d=`data: ${JSON.stringify(c)}
|
|
341
|
+
`)),a.enqueue(v.encode("data: [DONE]\n\n")),a.close()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:t,transformedBody:s}}}},68085:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{D3:()=>l,Xb:()=>k});var e=c(83237),f=a([e]);async function g(a){try{let b=(await a.context().cookies()).find(a=>"cf_clearance"===a.name);return!!b?.value}catch{return!1}}async function h(a){let b=Date.now();for(;Date.now()-b<6e4;){if(await g(a))return;await a.waitForTimeout(500)}throw Error("Turnstile challenge not solved within 60000ms")}async function i(a){let b=(await a.context().cookies()).find(a=>"cf_clearance"===a.name);if(!b?.value)throw Error("cf_clearance cookie not found after challenge solve");return b.value}async function j(a){let b=a?.headless!==!1;a?.timeout;let c=null,d=null;try{c=await e.chromium.launch({headless:b});let a=await c.newContext({userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",viewport:{width:1280,height:720},ignoreHTTPSErrors:"true"===process.env.OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS});return d=await a.newPage(),await d.goto("https://claude.ai",{waitUntil:"domcontentloaded"}),await h(d),{cfClearance:await i(d),timestamp:Date.now()}}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to solve Turnstile: ${a}`)}finally{d&&await d.close().catch(()=>{}),c&&await c.close().catch(()=>{})}}e=(f.then?(await f)():f)[0];let m=new Map;async function k(a){let b="claude-cf-clearance",c=m.get(b);if(c&&!a?.force&&c.expiresAt>Date.now()+3e5)return c.token;let d=await j({headless:a?.headless!==!1});return m.set(b,{token:d.cfClearance,expiresAt:Date.now()+33e5}),d.cfClearance}function l(){let a=m.get("claude-cf-clearance");if(!a)return{hasCached:!1};let b=Math.max(0,a.expiresAt-Date.now());return{hasCached:!0,expiresIn:b}}d()}catch(a){d(a)}})},69071:(a,b,c)=>{c.d(b,{Vr:()=>p});var d=c(77598),e=c(48161),f=c(97510),g=c(85376),h=c(47774);let i="mimocode-cli-free",j="You are MiMoCode, an interactive CLI tool that helps users with software engineering tasks.";function k(a){let b=a.messages;return!Array.isArray(b)||b.some(a=>null!=a&&"object"==typeof a&&"system"===a.role&&"string"==typeof a.content&&a.content.includes(j))?a:{...a,messages:[{role:"system",content:j},...b]}}let l=["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","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"];function m(a){return!(a.cooldownUntil>Date.now())&&!!(a.jwt&&a.expiresAt-Date.now()>3e5)}let n=new Map;async function o(a,b,c,d){let e=n.get(b);if(e)return e;let f=`${a}/api/free-ai/bootstrap`,g=new AbortController,i=setTimeout(()=>g.abort(),15e3),j=c?()=>g.abort(c.reason):null;c&&j&&c.addEventListener("abort",j,{once:!0});let k=(async()=>{try{let a=d?await (0,h.fetch)(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client:b}),signal:g.signal,dispatcher:d}):await fetch(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client:b}),signal:g.signal});if(!a.ok){let b=await a.text().catch(()=>"");throw Error(`Bootstrap failed: ${a.status} ${b.slice(0,200)}`)}let c=await a.json();if(!c.jwt)throw Error("Bootstrap response missing jwt field");return{jwt:c.jwt,expiresAt:function(a){try{let b=a.split(".");if(b.length<2)return Date.now()+3e6;return(JSON.parse(Buffer.from(b[1],"base64url").toString()).exp??Math.floor(Date.now()/1e3)+3e3)*1e3}catch{return Date.now()+3e6}}(c.jwt)}}finally{clearTimeout(i),c&&j&&c.removeEventListener("abort",j),n.delete(b)}})();return n.set(b,k),k}class p extends f.Hv{static{this.encoder=new TextEncoder}constructor(){super("mimocode",{format:"openai"}),this.accounts=[],this.nextAccountIdx=0,this.proxyUrlMap=new Map,this.baseUrl=this.getBaseUrls()[0]||"https://api.xiaomimimo.com",this.accounts.push({fingerprint:function(){let a=e.hostname(),b=e.platform(),c=e.arch(),f=function(){try{let a=e.cpus();if(a.length>0&&a[0].model)return a[0].model.trim()}catch{}return"unknown-cpu"}(),g="unknown-user";try{g=e.userInfo().username}catch{}return d.createHash("sha256").update(`${a}|${b}|${c}|${f}|${g}`).digest("hex")}(),jwt:"",expiresAt:0,cooldownUntil:0,consecutiveFails:0,proxy:null})}getProxyDispatcher(a){let b=this.proxyUrlMap.get(a);if(b)return(0,g.I_)(b)}fetchWithProxy(a,b,c){let d=this.getProxyDispatcher(c);return d?(0,h.fetch)(a,{...b,dispatcher:d}):fetch(a,b)}syncAccountsFromCredentials(a){let b=a?.providerSpecificData,c=b?.fingerprints,d=b?.accountProxies;if(Array.isArray(d)){for(let a of d)if(a?.fingerprint&&a?.proxy?.host){let{type:b="socks5",host:c,port:d,username:e,password:f}=a.proxy,g=d??("socks5"===b?1080:8080),h=e?`${encodeURIComponent(e)}:${f?encodeURIComponent(f):""}@`:"";this.proxyUrlMap.set(a.fingerprint,`${b}://${h}${c}:${g}`)}}if(Array.isArray(c)){let a=new Set(this.accounts.map(a=>a.fingerprint));for(let b of c)"string"!=typeof b||a.has(b)||(this.accounts.push({fingerprint:b,jwt:"",expiresAt:0,cooldownUntil:0,consecutiveFails:0,proxy:null}),a.add(b))}let e=Array.isArray(d)?new Map(d.map(a=>[a.fingerprint,a.proxy])):null;for(let a of this.accounts)if(e){let b=e.get(a.fingerprint);a.proxy=void 0!==b?b??null:null}else a.proxy=null}async getJwtForAccount(a,b){if(m(a))return a.jwt;let c=this.getProxyDispatcher(a.fingerprint),d=await o(this.baseUrl,a.fingerprint,b,c);return a.jwt=d.jwt,a.expiresAt=d.expiresAt,a.jwt}pickAccount(){for(let a=0;a<this.accounts.length;a++){let b=(this.nextAccountIdx+a)%this.accounts.length,c=this.accounts[b];if(m(c))return this.nextAccountIdx=(b+1)%this.accounts.length,c}let a=this.nextAccountIdx%this.accounts.length;return this.nextAccountIdx=(this.nextAccountIdx+1)%this.accounts.length,this.accounts[a]}markCooldown(a){a.consecutiveFails++;let b=Math.min(5e3*Math.pow(2,a.consecutiveFails-1),6e4);a.cooldownUntil=Date.now()+b+1e3*Math.random()}markSuccess(a){a.consecutiveFails=0}buildUrl(a,b,c=0,d){return`${this.baseUrl.replace(/\/$/,"")}/api/free-ai/openai/chat`}buildHeaders(a,b=!0,c,d){let e={"Content-Type":"application/json","X-Mimo-Source":i,"User-Agent":l[Math.floor(Math.random()*l.length)]};return b&&(e.Accept="text/event-stream, application/json"),e}transformRequest(a,b,c,d){if("object"==typeof b&&null!==b){let c;return k({...b,model:(c=a.lastIndexOf("/"))>=0?a.slice(c+1):a})}return b}async testConnection(a,b,c){try{this.syncAccountsFromCredentials(a);let c=this.accounts[0],d=await this.getJwtForAccount(c,b),e=await this.fetchWithProxy(this.buildUrl("mimo-auto",!1),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${d}`,"X-Mimo-Source":i},body:JSON.stringify(k({model:"mimo-auto",messages:[{role:"user",content:"ping"}],stream:!1})),signal:b??void 0},c.fingerprint);return 200===e.status}catch{return c?.warn?.("MIMOCODE","testConnection network error"),!1}}async execute(a){let{model:b,stream:c,body:d,signal:e,log:f}=a,g=p.encoder;if(e?.aborted)return{response:new Response(g.encode(JSON.stringify({error:{message:"Request aborted",type:"abort",code:"ABORTED"}})),{status:499,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials,c),transformedBody:d};let h=this.buildUrl(b,c),i=this.transformRequest(b,d,c,a.credentials);this.syncAccountsFromCredentials(a.credentials);for(let b=0;b<this.accounts.length;b++){let j=this.pickAccount();try{let b=await this.getJwtForAccount(j,e),d=this.buildHeaders(a.credentials,c);d.Authorization=`Bearer ${b}`;let g=await this.fetchWithProxy(h,{method:"POST",headers:d,body:JSON.stringify(i),signal:e??void 0},j.fingerprint);if(401===g.status||403===g.status){f?.warn?.("MIMOCODE",`Auth failed (${g.status}) on account ${j.fingerprint.slice(0,8)}…`),j.jwt="",j.expiresAt=0,j.consecutiveFails=0;let a=await this.getJwtForAccount(j,e);d.Authorization=`Bearer ${a}`,g=await this.fetchWithProxy(h,{method:"POST",headers:d,body:JSON.stringify(i),signal:e??void 0},j.fingerprint)}if(429===g.status){this.markCooldown(j),f?.warn?.("MIMOCODE",`Rate limited on account ${j.fingerprint.slice(0,8)}, trying next…`);continue}this.markSuccess(j);let k={};return g.headers.forEach((a,b)=>{k[b]=a}),{response:g,url:h,headers:k,transformedBody:i}}catch(e){if(this.markCooldown(j),b===this.accounts.length-1){let b=e instanceof Error?e.message:String(e);return f?.error?.("MIMOCODE",`Executor error: ${b}`),{response:new Response(g.encode(JSON.stringify({error:{message:b,type:"upstream_error",code:"EXECUTOR_ERROR"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:this.buildHeaders(a.credentials,c),transformedBody:d}}}}return{response:new Response(g.encode(JSON.stringify({error:{message:"All accounts exhausted",type:"upstream_error",code:"NO_ACCOUNTS"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:h,headers:this.buildHeaders(a.credentials,c),transformedBody:d}}}},69386:(a,b,c)=>{c.d(b,{BI:()=>g,IL:()=>i});var d=c(57647),e=c(86522);let f={codex:{headerOrder:["Host","Content-Type","Authorization","Accept","User-Agent","Accept-Encoding"],bodyFieldOrder:["model","stream","input","instructions","store","reasoning","prompt_cache_key","tools","tool_choice","include","service_tier","client_metadata","parallel_tool_calls","metadata"]},claude:{headerOrder:["Accept","Authorization","Content-Type","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-app","x-client-request-id","Connection","Host","Accept-Encoding","Content-Length"],bodyFieldOrder:["model","messages","system","tools","tool_choice","metadata","max_tokens","temperature","thinking","context_management","output_config","stream"]},"claude-code-compatible":{headerOrder:["Host","Content-Type","Authorization","anthropic-version","anthropic-beta","anthropic-dangerous-direct-browser-access","x-app","User-Agent","X-Claude-Code-Session-Id","X-Stainless-Retry-Count","X-Stainless-Timeout","X-Stainless-Lang","X-Stainless-Package-Version","X-Stainless-OS","X-Stainless-Arch","X-Stainless-Runtime","X-Stainless-Runtime-Version","Accept","accept-encoding","Connection"],bodyFieldOrder:["model","messages","system","tools","tool_choice","metadata","max_tokens","thinking","output_config","stream"]},github:{headerOrder:["Host","Authorization","X-Request-Id","Vscode-Sessionid","Vscode-Machineid","Editor-Version","Editor-Plugin-Version","Copilot-Integration-Id","Openai-Organization","Openai-Intent","Content-Type","User-Agent","Accept","Accept-Encoding"],bodyFieldOrder:["messages","model","temperature","top_p","max_tokens","n","stream","intent","intent_threshold","intent_content"],userAgent:e._K},antigravity:{headerOrder:["Accept","Accept-Encoding","Authorization","Content-Type","User-Agent","x-goog-api-client","x-client-name","x-client-version","x-machine-id","x-vscode-sessionid","Host","Connection"],bodyFieldOrder:["project","requestId","request","model","userAgent","requestType","enabledCreditTypes"],userAgent:e.l0},qwen:{headerOrder:["Host","Content-Type","Authorization","User-Agent","X-Dashscope-AuthType","X-Dashscope-CacheControl","X-Dashscope-UserAgent","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-Os","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","Connection","Accept","Accept-Language","Sec-Fetch-Mode","Accept-Encoding"],bodyFieldOrder:["model","messages","temperature","top_p","max_tokens","stream","tools","tool_choice","response_format","n","stop"],userAgent:(0,e.DS)()["User-Agent"],extraHeaders:(0,e.DS)()}};function g(a,b,c){var e;!(e=c)||"object"!=typeof e||Array.isArray(e)||(delete e._claudeCodeRequiresLowercaseToolNames,delete e._nativeCodexPassthrough,delete e._omnirouteResponsesStore),c=e;let g=f[(0,d.GK)(a)?"claude-code-compatible":void 0];return g?(g.userAgent&&(b["User-Agent"]="function"==typeof g.userAgent?g.userAgent():g.userAgent),g.extraHeaders&&Object.assign(b,g.extraHeaders),{headers:function(a,b){if(!b?.length||!a)return a;let c={},d=new Map;for(let[b,c]of Object.entries(a))d.set(b.toLowerCase(),[b,c]);for(let a of b){let b=d.get(a.toLowerCase());b&&(c[b[0]]=b[1],d.delete(a.toLowerCase()))}for(let[,[a,b]]of d)c[a]=b;return c}(b,g.headerOrder),bodyString:JSON.stringify(c&&"object"==typeof c&&!Array.isArray(c)?function(a,b){if(!b?.length||!a||"object"!=typeof a)return a;let c={},d=new Set(Object.keys(a));for(let e of b)e in a&&(c[e]=a[e],d.delete(e));for(let b of d)c[b]=a[b];return c}(c,g.bodyFieldOrder):c)}):{headers:b,bodyString:JSON.stringify(c)}}let h=new Set;function i(a){if((0,d.GK)(a))return!0;let b=a?.toLowerCase().replace(/[^a-z0-9]/g,"_");if(h.has(void 0))return!0;let c=`CLI_COMPAT_${b?.toUpperCase()}`;return"1"===process.env[c]||"true"===process.env[c]||"1"===process.env.CLI_COMPAT_ALL||"true"===process.env.CLI_COMPAT_ALL}},69505:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{s:()=>y});var e=c(97510),f=c(61408),g=c(27216),h=c(68085),i=c(50954),j=c(55511),k=c(43659),l=c(74184),m=a([h]);h=(m.then?(await m)():m)[0];let v="https://claude.ai/api",w=`${v}/organizations`;function n(a){if(!a||"object"!=typeof a)return"";let b="string"==typeof a.cookie?a.cookie:"";if(b.trim())return b;let c="string"==typeof a.apiKey?a.apiKey:"";if(c.trim())return c;let d=a.providerSpecificData;if(d&&"object"==typeof d){let a=d.cookie;if("string"==typeof a&&a.trim())return a}return""}function o(a){if(!a||"object"!=typeof a)return;if("string"==typeof a.deviceId&&a.deviceId.trim())return a.deviceId;let b=a.providerSpecificData;if(b&&"object"==typeof b){let a=b.deviceId;if("string"==typeof a&&a.trim())return a}}let x="claude-sonnet-4-6";function p(a){let b={Accept:"text/event-stream","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache","Content-Type":"application/json",Origin:"https://claude.ai",Pragma:"no-cache",Priority:"u=1, i",Referer:"https://claude.ai/new","Sec-Ch-Ua":'"Chromium";v="149", "Not-A.Brand";v="24", "Google Chrome";v="149"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Linux"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","anthropic-client-platform":"web_claude_ai"};return a&&(b["anthropic-device-id"]=a),b}async function q(a,b){let c=(0,i.p1)(a,"sessionKey");if(c.includes("cf_clearance="))return c;if(b?.allowAutoSolve!==!1)try{b?.log?.info?.("CLAUDE-WEB","cf_clearance missing, attempting to solve Turnstile...");let a=await (0,h.Xb)(),d=`cf_clearance=${a}`;c=c?`${c}; ${d}`:d,b?.log?.info?.("CLAUDE-WEB","cf_clearance injected successfully")}catch(c){let a=c instanceof Error?c.message:String(c);b?.log?.warn?.("CLAUDE-WEB",`cf_clearance injection failed: ${a}`)}return c}function r(a,b,c){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{content:a},finish_reason:"end_turn"===c?"stop":null,logprobs:null}]}}async function s(a,b,c){try{let d=AbortSignal.timeout(f.MT),h=c?(0,e.OW)(c,d):d,i=await (0,g.wf)(w,{method:"GET",headers:{...p(b),Cookie:a},timeoutMs:f.MT,signal:h});return 200===i.status}catch(a){return!1}}async function t(a,b,c){try{let d=AbortSignal.timeout(f.MT),h=c?(0,e.OW)(c,d):d,i=await (0,g.wf)(w,{method:"GET",headers:{...p(b),Cookie:a},timeoutMs:f.MT,signal:h});if(200!==i.status)return null;let j=JSON.parse(i.text??"[]");return j?.[0]?.uuid||j?.[0]?.id||null}catch(a){return null}}async function u(a,b,c,d){let e=d??a.body;if(!e)return new Response(JSON.stringify({error:{message:"No upstream response body available",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}});let f=!1,g=new ReadableStream({async start(a){let d=e.getReader(),g=new TextDecoder,h="";try{for(;;){let{value:c,done:e}=await d.read();if(e)break;let i=(h+=g.decode(c,{stream:!0})).split("\n");for(let c of(h=i.pop()??"",i)){let d=c.trim();if(!d||!d.startsWith("data: "))continue;let e=d.slice(6);try{let c=JSON.parse(e);if("content_block_delta"===c.type){let d=c.delta,e=d?.text;if(e){let c=r(e,b),d=`data: ${JSON.stringify(c)}
|
|
342
342
|
|
|
343
343
|
`;a.enqueue(new TextEncoder().encode(d))}}else if("message_stop"===c.type){let c=r("",b,"end_turn"),d=`data: ${JSON.stringify(c)}
|
|
344
344
|
|
|
@@ -346,8 +346,8 @@ var getComputedStyle = __getComputedStyle;
|
|
|
346
346
|
|
|
347
347
|
`;a.enqueue(new TextEncoder().encode(d))}}}catch{}}}if(h.trim()){let c=h.trim();if(c.startsWith("data: ")){let d=c.slice(6);try{let c=JSON.parse(d);if("content_block_delta"===c.type){let d=c.delta,e=d?.text;if(e){let c=r(e,b);a.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)}
|
|
348
348
|
|
|
349
|
-
`))}}}catch{}}}f||a.enqueue(new TextEncoder().encode("data: [DONE]\n\n"))}catch(b){c?.error?.("CLAUDE-WEB-STREAM",`Stream error: ${String(b)}`),a.error(b)}finally{try{d.releaseLock()}catch{}try{a.close()}catch{}}}});return new Response(g,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}class y extends e.Hv{constructor(){super("claude-web",{baseUrl:v})}async testConnection(a,b){try{let c=n(a);if(!c.trim())return!1;let d=await q(c,{allowAutoSolve:!1}),e=o(a);return await s(d,e,b)}catch(a){return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:i}){let m=b||{};try{let b;if(!d||"object"!=typeof d)return{response:new Response(JSON.stringify({error:{message:"Invalid credentials",type:"invalid_request_error"}}),{status:400,statusText:"Bad Request",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m};let c=n(d);if(!c.trim())return{response:new Response(JSON.stringify({error:{message:"Missing session cookie",type:"authentication_error"}}),{status:401,statusText:"Unauthorized",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m};let k=await q(c,{allowAutoSolve:!0,log:i}),r=o(d);try{b=function(a,b){let c=Array.isArray(a.messages)?a.messages:[],d="";for(let a of c)"object"==typeof a&&null!==a&&"user"===a.role&&(d=String(a.content||""));if(!d.trim())throw Error("No user message found in request");return{prompt:d,model:b||x,timezone:"Asia/Jakarta",personalized_styles:[{type:"default",key:"Default",name:"Normal",nameKey:"normal_style_name",prompt:"Normal\n",summary:"Default responses from Claude",summaryKey:"normal_style_summary",isDefault:!0}],locale:"en-US",tools:[{name:"show_widget",description:"Display interactive widgets and visualizations",input_schema:{type:"object",properties:{widget_type:{type:"string",description:"Type of widget to display"}}},integration_name:"visualize",is_mcp_app:!0},{name:"read_me",description:"Read and reference documents",input_schema:{type:"object",properties:{file_path:{type:"string",description:"Path to the file to read"}}},integration_name:"visualize",is_mcp_app:!1},{type:"web_search_v0",name:"web_search"},{type:"artifacts_v0",name:"artifacts"},{type:"repl_v0",name:"repl"},{type:"widget",name:"weather_fetch"},{type:"widget",name:"recipe_display_v0"},{type:"widget",name:"places_map_display_v0"},{type:"widget",name:"message_compose_v1"},{type:"widget",name:"ask_user_input_v0"},{type:"widget",name:"recommend_claude_apps"},{type:"widget",name:"places_search"},{type:"widget",name:"fetch_sports_data"}],turn_message_uuids:{human_message_uuid:(0,j.randomUUID)(),assistant_message_uuid:(0,j.randomUUID)()},attachments:[],effort:"low",files:[],sync_sources:[],rendering_mode:"messages",thinking_mode:"off",create_conversation_params:{name:"",model:b||x,include_conversation_preferences:!0,paprika_mode:null,compass_mode:null,is_temporary:!1,enabled_imagine:!0,tool_search_mode:"auto"}}}(m,a)}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Invalid request format",type:"invalid_request_error"}}),{status:400,statusText:"Bad Request",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m}}let s=d?.orgId,w=d?.conversationId;!s&&((s=await t(k,r,h))||(i?.warn?.("CLAUDE-WEB","Could not retrieve organization ID, using fallback"),s="")),w||(w=(0,j.randomUUID)());let y=p(r);if(function(){let a=process.env.WEB_COOKIE_USE_BROWSER;if("1"===a||"true"===a||"on"===a)return!0;let b=process.env.OMNIROUTE_BROWSER_POOL;return"on"===b||"1"===b||"true"===b}()){let d=function(a){let b=Array.isArray(a.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){let c=b[a].content;if("string"==typeof c)return c;if(Array.isArray(c))return c.map(a=>"object"==typeof a&&a&&"text"in a?String(a.text):"").filter(Boolean).join("\n")}return"Reply with OK"}(m),e=s?`${v}/organizations/${s}/chat_conversations/PLACEHOLDER/completion`:`${v}/chat_conversations/PLACEHOLDER/completion`,f=await (0,l.As)({poolKey:"claude-web",chatPageUrl:"https://claude.ai/new",chatUrl:e,chatUrlMatchDomain:"claude.ai",cookieString:c,cookieDomain:".claude.ai",userMessage:d,inputSelector:"div[contenteditable='true']",postSubmitWaitMs:15e3,signal:h??null});if(f.status>0){let c=new Response(f.body,{status:f.status,headers:{"Content-Type":f.contentType||"text/event-stream"}});return{response:await u(c,a,i,null),url:e,headers:y,transformedBody:b}}return{response:new Response(JSON.stringify({error:{message:`Claude Web browser-backed chat captured no upstream response (timing: ${JSON.stringify(f.timing)})`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:e,headers:y,transformedBody:b}}let z=s&&w?`${v}/organizations/${s}/chat_conversations/${w}/completion`:`${v}/chat_conversations/new/completion`,A=AbortSignal.timeout(f.MT),B=h?(0,e.OW)(h,A):A;i?.debug?.("CLAUDE-WEB",`Making request to ${z}`);let C=await (0,g.wf)(z,{method:"POST",headers:{...y,Cookie:k},body:JSON.stringify(b),timeoutMs:f.MT,stream:!0,signal:B});if(C.status<200||C.status>=300){let a;if(i?.error?.("CLAUDE-WEB",`HTTP ${C.status}`),401===C.status)return{response:new Response(JSON.stringify({error:{message:"Session expired or invalid",type:"authentication_error"}}),{status:401,statusText:"Unauthorized",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b};if(429===C.status)return{response:new Response(JSON.stringify({error:{message:"Rate limited by Claude Web API",type:"rate_limit_error"}}),{status:429,statusText:"Too Many Requests",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b};let c="",d=null;try{if(C.body){let a=C.body.getReader(),b=new TextDecoder,d=[],e=0;for(;e<2048;){let{value:b,done:c}=await a.read();if(c||!b)break;d.push(b),e+=b.byteLength}try{a.releaseLock()}catch{}if(1===d.length)c=b.decode(d[0]);else{let a=new Uint8Array(e),f=0;for(let b of d)a.set(b,f),f+=b.byteLength;c=b.decode(a)}}else C.text&&(c=C.text)}catch{c=""}d=C.headers.get("cf-mitigated");let e=403===C.status&&("challenge"===d||/<title>\s*Just a moment/i.test(c)||/<title>\s*Attention Required/i.test(c));if(e)a=`Claude Web returned a Cloudflare bot-management challenge (cf-mitigated=${d??"challenge"}). The sandbox / VPS IP appears to be flagged; the cf_clearance cookie pasted from a residential IP won't pass. Probe from a residential network, or use the official Anthropic API (provider: 'claude') instead.`;else{let b=c.trim().slice(0,500);a=b?`Claude Web API error (${C.status}): ${b}`:`Claude Web API error (${C.status}) with no response body`}return{response:new Response(JSON.stringify({error:{message:a,type:e?"cloudflare_challenge":"api_error",code:e?"cf_mitigated_challenge":`HTTP_${C.status}`,...d?{cfMitigated:d}:{}}}),{status:C.status,statusText:"HTTP Error",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b}}return{response:await u(C,a,i,C.body),url:z,headers:y,transformedBody:b}}catch(b){let a=b instanceof Error?b.message:String(b);return i?.error?.("CLAUDE-WEB",`Fetch failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`Claude Web connection failed: ${(0,k.sanitizeErrorMessage)(a)}`,type:"api_connection_error"}}),{status:500,statusText:"Internal Server Error",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m}}}}d()}catch(a){d(a)}})},69734:(a,b,c)=>{"use strict";c.d(b,{Fx:()=>d,y9:()=>e});let d=()=>void 0,e=()=>void 0},69896:(a,b,c)=>{"use strict";c.d(b,{l:()=>m});var d=c(14170),e=c(81167),f=c(23874),g=c(31252);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=""){return"string"==typeof a?a:b}function j(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function k(...a){for(let b of a){let a=j(b,0);if(a>0)return a}return 0}function l(a){if(!Array.isArray(a.content))return"";let b="";for(let c of a.content){if(!c||"object"!=typeof c)continue;let a=h(c);"output_text"===a.type&&"string"==typeof a.text&&(b+=a.text)}return b}function m(a,b,c,m){if(b===c)return a;let n=a;if(b===d.h.OPENAI_RESPONSES){let b=h(a),c="response"===b.object?b:h(b.response??b),d=Array.isArray(c.output)?c.output:[],e=h(c.usage??b.usage),f=function(a){let b=a.map(a=>h(a)).filter(a=>"message"===a.type&&Array.isArray(a.content));for(let a=b.length-1;a>=0;a-=1){let c=l(b[a]);if(c.trim().length>0)return{text:c,selectedMessageIndex:a,messageItems:b}}if(b.length>0){let a=b.length-1;return{text:l(b[a]),selectedMessageIndex:a,messageItems:b}}return{text:"",selectedMessageIndex:-1,messageItems:[]}}(d),g=f.text,o="",p=[];for(let a of d){if(!a||"object"!=typeof a)continue;let b=h(a);if("message"===b.type&&Array.isArray(b.content))for(let a of b.content){if(!a||"object"!=typeof a)continue;let b=h(a);"summary_text"===b.type&&"string"==typeof b.text&&(o+=b.text)}else if("reasoning"===b.type&&Array.isArray(b.summary))for(let a of b.summary){let b=h(a);"summary_text"===b.type&&"string"==typeof b.text&&(o+=b.text)}else if("function_call"===b.type){let a=i(b.call_id)||i(b.id)||`call_${Date.now()}_${p.length}`,c=b.arguments;if(null!=c&&"object"==typeof c&&!Array.isArray(c)){let a={...c};for(let[b,c]of Object.entries(a))(""===c||Array.isArray(c)&&0===c.length)&&delete a[b];c=a}let d="string"==typeof c?c:JSON.stringify(c||{}),e=i(b.name),f=m?.get(e)??e;p.push({id:a,type:"function",function:{name:f,arguments:d}})}}let q={role:"assistant"};g&&(q.content=g),o&&(q.reasoning_content=o),p.length>0&&(q.tool_calls=p),void 0===q.content&&(q.content=""),"true"===process.env.DEBUG_RESPONSES_SSE_TO_JSON&&(console.log(`[ResponsesSSE] ${d.length} output items, ${f.messageItems.length} message items`),f.messageItems.forEach((a,b)=>{let c=l(a).length;console.log(` [${b}] text length: ${c}`)}),console.log(` → Selected message index: ${f.selectedMessageIndex}`),console.log(` → Final text content length: ${g.length}`));let r=j(c.created_at,Math.floor(Date.now()/1e3)),s=i(c.model||b.model,"openai-responses"),t=p.length>0?"tool_calls":"stop",u={id:`chatcmpl-${i(c.id,String(Date.now()))}`,object:"chat.completion",created:r,model:s,choices:[{index:0,message:q,finish_reason:t}]};if(Object.keys(e).length>0){let a=j(e.input_tokens,0),b=j(e.output_tokens,0),c=h(e.input_tokens_details),d=h(e.output_tokens_details),f=h(e.prompt_tokens_details),g=h(e.completion_tokens_details),i=k(c.cached_tokens,f.cached_tokens,e.cache_read_input_tokens),l=k(c.cache_creation_tokens,f.cache_creation_tokens,e.cache_creation_input_tokens),m=k(d.reasoning_tokens,g.reasoning_tokens,e.reasoning_tokens);if(u.usage={prompt_tokens:a,completion_tokens:b,total_tokens:a+b},m>0&&(u.usage.completion_tokens_details={reasoning_tokens:m}),i>0||l>0){u.usage.prompt_tokens_details={};let a=u.usage.prompt_tokens_details;i>0&&(a.cached_tokens=i),l>0&&(a.cache_creation_tokens=l)}}n=u}else if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY){let b=h(a),c=h(b.response??b),d=Array.isArray(c.candidates)?c.candidates:[],k=h(c.usageMetadata??b.usageMetadata),l=h(c.promptFeedback??b.promptFeedback);if(d.length>0||Object.keys(l).length>0){let a=Date.parse(i(c.createTime)),b=Number.isFinite(a)?Math.floor(a/1e3):Math.floor(Date.now()/1e3),l=d.length>0?d.map((a,b)=>{let c=h(a),d=h(c.content),j="",k=[],l=[],n="",o="";if(Array.isArray(d.parts))for(let a of d.parts){let b=h(a);if(!0===b.thought&&"string"==typeof b.text){n+=b.text;continue}let c=i(b.thoughtSignature??b.thought_signature);if(c&&(o=c),"string"==typeof b.text){let a=function(a){if("string"!=typeof a)return null;let b=a.replace(/[\u200B-\u200D\uFEFF]/g,"").match(/^[\s\S]*?\[Tool call:\s*([^\]\n]+)\]\s*\nArguments:\s*([\s\S]+?)\s*$/);if(!b)return null;let c=b[1]?.trim(),d=b[2]?.trim();if(!c||!d)return null;try{let a=JSON.parse(d);if("string"==typeof a){let b=a.trim();(b.startsWith("{")||b.startsWith("["))&&(a=JSON.parse(b))}if(a&&"object"==typeof a&&!Array.isArray(a))return{name:c,args:a}}catch{}return null}(b.text);if(a){let b=`call_${i(a.name,"unknown")}_${Date.now()}_${l.length}`;l.push({id:b,type:"function",function:{name:a.name,arguments:JSON.stringify(a.args||{})}})}else(0,g.vE)(b.text)||(j+=b.text,k.push({type:"text",text:b.text}))}let d=h(b.inlineData??b.inline_data);if("string"==typeof d.data&&d.data.length>0){let a=i(d.mimeType??d.mime_type,"image/png");k.push({type:"image_url",image_url:{url:`data:${a};base64,${d.data}`}})}if(b.functionCall){let a=h(b.functionCall),d=i(a.name),f=m?.get(d)??d,g=i(a.id),j=g.length>0?g:`call_${i(f,"unknown")}_${Date.now()}_${l.length}`,k=c||o;if(k){let a=(0,e.q)(null,j);(0,e.Sk)(a,k)}l.push({id:j,type:"function",function:{name:f,arguments:JSON.stringify(function(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!(b.startsWith("{")||b.startsWith("[")))return a;try{return JSON.parse(b)}catch{return a}}(a.args||{}))}})}}let p={role:"assistant"};1===k.length&&"text"===k[0].type?p.content=k[0].text:k.length>0?p.content=k:j&&(p.content=j),n&&(p.reasoning_content=n),l.length>0&&(p.tool_calls=l),p.content||p.tool_calls||(p.content="");let q=(0,f.U)(i(c.finishReason,"stop"));return"stop"===q&&l.length>0&&(q="tool_calls"),{index:b,message:p,finish_reason:q}}):[{index:0,message:{role:"assistant",content:""},finish_reason:"content_filter"}],o={id:`chatcmpl-${i(c.responseId,String(Date.now()))}`,object:"chat.completion",created:b,model:i(c.modelVersion,"gemini"),choices:l};if(Object.keys(k).length>0){let a=j(k.promptTokenCount,0),b=j(k.thoughtsTokenCount,0);o.usage={prompt_tokens:a,completion_tokens:j(k.candidatesTokenCount,0)+b,total_tokens:j(k.totalTokenCount,0)},b>0&&(o.usage.completion_tokens_details={reasoning_tokens:b}),j(k.cachedContentTokenCount,0)>0&&(o.usage.prompt_tokens_details={cached_tokens:j(k.cachedContentTokenCount,0)})}n=o}}else if(b===d.h.CLAUDE){let b=h(a),c=Array.isArray(b.content)?b.content:[];if(c.length>0){let a="",d="",e=[];for(let b of c){let c=h(b);if("text"===c.type)a+=i(c.text);else if("thinking"===c.type)d+=i(c.thinking);else if("tool_use"===c.type){let a=i(c.name),b=m?.get(a)??a;e.push({id:i(c.id,`call_${Date.now()}_${e.length}`),type:"function",function:{name:b,arguments:JSON.stringify(c.input||{})}})}}let f={role:"assistant"};a&&(f.content=a),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=e),void 0===f.content&&(f.content="");let g=i(b.stop_reason,"stop");"end_turn"===g&&(g="stop"),"tool_use"===g&&(g="tool_calls");let k={id:`chatcmpl-${i(b.id,String(Date.now()))}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:i(b.model,"claude"),choices:[{index:0,message:f,finish_reason:g}]},l=h(b.usage);if(Object.keys(l).length>0){let a=j(l.input_tokens,0),b=j(l.output_tokens,0);k.usage={prompt_tokens:a,completion_tokens:b,total_tokens:a+b}}n=k}}return c===d.h.CLAUDE&&c!==b?function(a){let b=a.choices,c=Array.isArray(b);if(!c&&"chat.completion"!==a.object)return a;let d=c?b[0]:null,e=d?h(d):{},f=e.message?h(e.message):{},g=[],k=!1;if(f.reasoning_content&&(k=!0,g.push({type:"thinking",thinking:i(f.reasoning_content)})),Array.isArray(f.tool_calls)&&f.tool_calls.length,void 0!==f.content&&null!==f.content){k=!0;let a=i(f.content);g.push({type:"text",text:""===a?"(empty response)":a})}else k||g.push({type:"text",text:"(empty response)"});if(Array.isArray(f.tool_calls))for(let a of f.tool_calls){let b=h(a),c=h(b.function);g.push({type:"tool_use",id:i(b.id,`call_${Date.now()}`),name:i(c.name),input:"string"==typeof c.arguments?JSON.parse(c.arguments||"{}"):c.arguments||{}})}let l=i(e.finish_reason,"end_turn");"stop"===l&&(l="end_turn"),"tool_calls"===l&&(l="tool_use");let m=h(a.usage);return{id:i(a.id,`msg_${Date.now()}`),type:"message",role:"assistant",model:i(a.model,"claude"),content:g,stop_reason:l,stop_sequence:null,usage:{input_tokens:j(m.prompt_tokens,0),output_tokens:j(m.completion_tokens,0)}}}(h(n)):n}},71394:(a,b,c)=>{"use strict";c.d(b,{C:()=>k});var d=c(74350),e=c(56452),f=c(33748);function g(a){return"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0}function h(a){return!!a&&"object"==typeof a&&!Array.isArray(a)&&"tool_use"===a.type}function i(a){return!!a&&"object"==typeof a&&!Array.isArray(a)&&("thinking"===a.type||"redacted_thinking"===a.type)}function j(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}class k extends d.L{constructor(a="kimi-coding"){super(a)}transformRequest(a,b,c,d){return function(a){let b,c=(0,e.b)(a,void 0),d=j(c);if(!d||!Array.isArray(d.messages))return c;let k=function(a){if(!(Array.isArray(a.system)||Array.isArray(a.messages)&&a.messages.some(a=>{let b=j(a);return!!b&&!!Array.isArray(b.content)&&b.content.some(a=>{let b=j(a);return b?.type==="text"||b?.type==="tool_use"||b?.type==="tool_result"})})))return a;let b=j(a.thinking)??{type:"enabled"};return null===b.keep?a:{...a,thinking:{...b,keep:null}}}(d);if(!(b=k.thinking)||"object"!=typeof b||Array.isArray(b)||"enabled"!==b.type&&"adaptive"!==b.type)return k;let l=!1,m=(Array.isArray(k.messages)?k.messages:d.messages).map(a=>{let b=j(a);if(!b||"assistant"!==b.role||!(Array.isArray(b.tool_calls)&&b.tool_calls.length>0||Array.isArray(b.content)&&b.content.some(h)))return a;let c=function(a){let b=g(a)?String(a.reasoning_content):f.A_,c=g(a)?a:{...a,reasoning_content:b};if(!Array.isArray(c.content))return c;let d=c.content.findIndex(h);if(d<0||c.content.some(i))return c;let e=[...c.content];return e.splice(d,0,{type:"thinking",thinking:b}),{...c,content:e}}(b);return c!==b&&(l=!0),c});return l?{...k,messages:m}:k}(super.transformRequest(a,b,c,d))}}},72221:(a,b,c)=>{"use strict";c.d(b,{LW:()=>k,S$:()=>n,Ub:()=>i,mU:()=>o,n:()=>j,r3:()=>l,uQ:()=>m,x2:()=>g});let d=/<tool>\s*([\s\S]*?)\s*<\/tool>/g,e=/<tool_call(?:\s+[^>]*)?\s*>\s*([\s\S]*?)\s*<\/tool_call>/g;function f(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function g(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){let a=f(d),e=f(a?.function),g="string"==typeof e?.name?e.name.trim():"";!g||c.has(g)||(c.add(g),b.push({original:g,normalized:h(g)}))}return b}function h(a){return a.toLowerCase().replace(/[^a-z0-9]/g,"")}function i(a,b){if(0===b.length)return a;let c=null,d=0;for(let e of b){let b=function(a,b){if(a===b.original)return 1;let c=h(a);if(!c||!b.normalized)return 0;if(c===b.normalized)return .98;let d=Math.min(c.length,b.normalized.length),e=Math.max(c.length,b.normalized.length);if(d>=4&&(c.includes(b.normalized)||b.normalized.includes(c)))return .86-(e-d)/Math.max(e,1)/4;let f=1-function(a,b){if(a===b)return 0;if(!a)return b.length;if(!b)return a.length;let c=Array.from({length:b.length+1},(a,b)=>b),d=Array(b.length+1);for(let e=1;e<=a.length;e+=1){d[0]=e;for(let f=1;f<=b.length;f+=1){let g=+(a[e-1]!==b[f-1]);d[f]=Math.min(d[f-1]+1,c[f]+1,c[f-1]+g)}let f=c;c=d,d=f}return c[b.length]}(c,b.normalized)/Math.max(e,1);return f>=.72?f:0}(a,e);!c||b>c.score?(d=c?.score??0,c={name:e.original,score:b}):b>d&&(d=b)}return!c||c.score<.72||c.score<.98&&c.score-d<.08?null:c.name}function j(a){let b=a.trim().replace(/^```(?:json|javascript|js|python)?\s*/i,"").replace(/\s*```$/i,"").trim();for(let a of[b,(function(a){let b="",c=!1,d=!1,e="",f=()=>{"True"===e?b+="true":"False"===e?b+="false":"None"===e?b+="null":b+=e,e=""};for(let g of a){if(d){e&&f(),b+=g,d=!1;continue}if("\\"===g){e&&f(),b+=g,d=c;continue}if('"'===g){e&&f(),c=!c,b+=g;continue}if(!c&&/[A-Za-z]/.test(g)){e+=g;continue}e&&f(),b+=g}return e&&f(),b})(function(a){let b="",c=!1,d=!1,e=!1;for(let f of a){if(e){b+='"'===f&&c?'\\"':f,e=!1;continue}if("\\"===f){b+=f,e=!0;continue}if('"'===f){c?b+='\\"':(d=!d,b+=f);continue}if("'"===f&&!d){c=!c,b+='"';continue}b+=f}return b}(b)).replace(/([{,]\s*)([A-Za-z_][A-Za-z0-9_-]*)(\s*:)/g,'$1"$2"$3').replace(/,\s*([}\]])/g,"$1")])try{return f(JSON.parse(a))}catch{}return null}function k(a,b){let c=a;for(let a of[...b].sort((a,b)=>b.start-a.start)){let b=c.lastIndexOf("\n",a.start-1)+1,d=c.indexOf("\n",a.end),e=-1===d?c.length:d,f=c.slice(b,a.start),g=c.slice(a.end,e),h=""===f.trim()&&""===g.trim(),i=h?b:a.start,j=h&&-1!==d?d+1:h?e:a.end;c=`${c.slice(0,i)}${c.slice(j)}`}return c.replace(/\n{3,}/g,"\n\n").trim()}function l(a){if(void 0===a)return"{}";if("string"==typeof a){let b=j(a);return b?JSON.stringify(b):a}try{return JSON.stringify(a)}catch{return"{}"}}function m(a,b="call",c){let f,h=g(c),n=h.length>0;if("string"!=typeof a||!a.includes("<tool>")&&!a.includes("<tool_call")&&!n)return{content:a??"",toolCalls:null};let o=[],p=[];for(d.lastIndex=0;null!==(f=d.exec(a));){let a={start:f.index,end:d.lastIndex};p.push(a),o.push({raw:f[1].trim(),start:a.start,end:a.end,requireRequestedTool:!1})}for(e.lastIndex=0;null!==(f=e.exec(a));){let a={start:f.index,end:e.lastIndex};p.push(a),o.push({raw:f[1].trim(),start:a.start,end:a.end,requireRequestedTool:!1})}if(n)for(let b of function(a){let b=[],c=-1,d=0,e="",f=!1;for(let g=0;g<a.length;g+=1){let h=a[g];if(0!==d||"{"===h){if(f){f=!1;continue}if(e){"\\"===h?f=!0:h===e&&(e="");continue}if('"'===h||"'"===h){e=h;continue}if("{"===h){0===d&&(c=g),d+=1;continue}if("}"===h&&d>0&&0==(d-=1)&&c>=0){let d=a.slice(c,g+1);/[{,]\s*["']?(name|command)["']?\s*:/i.test(d)&&/[{,]\s*["']?arguments["']?\s*:/i.test(d)&&b.push({raw:d,start:c,end:g+1,requireRequestedTool:!0}),c=-1}}}return b}(a))p.some(a=>a.start<b.end&&b.start<a.end)||o.push(b);o.sort((a,b)=>a.start-b.start);let q=[],r=[];for(let a of o){let c=j(a.raw),d=c&&"string"==typeof c.name?c.name:c&&"string"==typeof c.command?c.command:null;if(!d)continue;let e=i(d,h)||(a.requireRequestedTool?null:d);if(!e||a.requireRequestedTool&&0===h.length)continue;let f=l(c?.arguments);q.push({id:`${b}_${q.length}`,type:"function",function:{name:e,arguments:f}}),r.push({start:a.start,end:a.end})}return 0===q.length?{content:a,toolCalls:null}:{content:k(a,r),toolCalls:q}}function n(a,b){let c=a.tools;if(!(Array.isArray(c)&&c.length>0))return{hasTools:!1,requestedTools:c,effectiveMessages:b};let d=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=[];for(let c of a){let a=c?.function;if(!a?.name)continue;let d="string"==typeof a.description&&a.description?a.description:"",e="";try{e=a.parameters?JSON.stringify(a.parameters):""}catch{e=""}b.push(`- ${a.name}${d?`: ${d}`:""}${e?`
|
|
350
|
-
parameters: ${e}`:""}`)}return 0===b.length?"":["You can call tools. To call a tool, reply with a single line containing a <tool> block",'with JSON: <tool>{"name": "<tool_name>", "arguments": { ... }}</tool>',"Only emit the <tool> block when you actually want to call a tool; otherwise answer normally.","","Available tools:",...b].join("\n")}(c);return{hasTools:!0,requestedTools:c,effectiveMessages:[{role:"system",content:d},...b]}}function o(a,b,c="call"){let{content:d,toolCalls:e}=m(a,`${c}-${Date.now()}`,b);return{content:d,toolCalls:e,finishReason:e?"tool_calls":"stop"}}},73483:(a,b,c)=>{"use strict";c.d(b,{Gh:()=>n,IF:()=>t,O9:()=>k,OF:()=>s,WL:()=>l,bC:()=>q,f5:()=>o,lm:()=>g,oT:()=>r});var d=c(47370),e=c(78769),f=c(14170);let g={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"},h=null,i=0;async function j(){try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=(await a()).usageTokenBuffer;"number"==typeof b&&b>=0&&(h=b,i=Date.now())}catch{}}function k(a){if(!a||"object"!=typeof a)return a;let b=function(){let a=Date.now(),b=null!==h&&a-i>=3e4;if(null!==h&&!b)return h;let c=process.env.USAGE_TOKEN_BUFFER;if(void 0!==c){let b=parseInt(c,10);if(!isNaN(b)&&b>=0)return h=b,i=a,b}return(null===h||b)&&(null===h&&(h=2e3),i=a,j()),h}();if(0===b)return a;let c={...a};return void 0!==c.input_tokens&&(c.input_tokens+=b),void 0!==c.prompt_tokens&&(c.prompt_tokens+=b),void 0!==c.total_tokens?c.total_tokens+=b:void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens),c}function l(a,b){if(!a||"object"!=typeof a)return a;let c={...a};b===f.h.CLAUDE||b===f.h.OPENAI_RESPONSES?(void 0!==c.prompt_tokens&&void 0===c.input_tokens&&(c.input_tokens=c.prompt_tokens),void 0!==c.completion_tokens&&void 0===c.output_tokens&&(c.output_tokens=c.completion_tokens)):(void 0!==c.input_tokens&&void 0===c.prompt_tokens&&(c.prompt_tokens=c.input_tokens),void 0!==c.output_tokens&&void 0===c.completion_tokens&&(c.completion_tokens=c.output_tokens),void 0===c.total_tokens&&void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens));let d={[f.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[f.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[f.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},e=d[b];b===f.h.ANTIGRAVITY?e=d[f.h.GEMINI]:b===f.h.OPENAI_RESPONSE?e=d[f.h.OPENAI_RESPONSES]:e||(e=d.default);let g={};for(let a of e)void 0!==c[a]&&(g[a]=c[a]);return g}function m(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("input_tokens",a?.input_tokens),c("output_tokens",a?.output_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),0===Object.keys(b).length)?null:b}function n(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function o(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage){let b=a.message.usage,c=b.input_tokens||b.prompt_tokens||0,d=b.cache_read_input_tokens||0,e=b.cache_creation_input_tokens||0;if(c>0||d>0||e>0)return m({prompt_tokens:c+d+e,completion_tokens:b.output_tokens||b.completion_tokens||0,input_tokens:c+d+e,output_tokens:b.output_tokens||b.completion_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage){let b=a.usage.input_tokens||0,c=a.usage.cache_read_input_tokens||0,d=a.usage.cache_creation_input_tokens||0;return m({prompt_tokens:b+c+d,completion_tokens:a.usage.output_tokens||0,input_tokens:b+c+d,output_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens})}if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage;return m({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:b.input_tokens_details?.cached_tokens??b.prompt_tokens_details?.cached_tokens??b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens,reasoning_tokens:b.output_tokens_details?.reasoning_tokens??b.completion_tokens_details?.reasoning_tokens??b.reasoning_tokens})}if(a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.prompt_tokens||void 0!==a.usage.input_tokens))return m({prompt_tokens:a.usage.prompt_tokens??a.usage.input_tokens??0,completion_tokens:a.usage.completion_tokens??a.usage.output_tokens??0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens??a.usage.input_tokens_details?.cached_tokens??a.usage.prompt_cache_hit_tokens??a.usage.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens??a.usage.output_tokens_details?.reasoning_tokens??a.usage.reasoning_tokens});let b=a.usageMetadata||a.response?.usageMetadata;if(b&&"object"==typeof b)return m({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount});if(!0===a.done&&"number"==typeof a.prompt_eval_count){let b=a.prompt_eval_count||0,c=a.eval_count||0;return m({prompt_tokens:b,completion_tokens:c,total_tokens:b+c})}return null}function p(a){if(!a||"string"!=typeof a)return 0;let b=a.match(/[\u3000-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}]/gu);return(b?b.length:0)+Math.ceil(1.3*a.replace(/[\u3000-\u9fff\uf900-\ufaff]/g," ").split(/(\s+|[^\w\s]|(?<=[a-z])(?=[A-Z]))/).filter(a=>a&&a.trim().length>0).length)}function q(a){if(!a||"object"!=typeof a)return 0;try{let b=0,c=0;if(a.tools&&Array.isArray(a.tools)){let d=JSON.stringify(a.tools);b=Math.ceil(d.length/6);let{tools:e,...f}=a;c=p(JSON.stringify(f))}else c=p(JSON.stringify(a));return c+b}catch(a){return 0}}function r(a){return!a||a<=0?0:Math.max(1,Math.ceil(a/3.5))}function s(a,b,c=f.h.OPENAI){var d,e;return d=q(a),e=r(b),c===f.h.CLAUDE?k({input_tokens:d,output_tokens:e,estimated:!0}):k({prompt_tokens:d,completion_tokens:e,total_tokens:d+e,estimated:!0})}function t(a,b,c=null,f=null,h=null){if(!b||"object"!=typeof b)return;let i=a?.toUpperCase()||"UNKNOWN",j=(0,e.jf)(b),k=(0,e.eh)(b),l="string"==typeof f?f:void 0,m=l?l.slice(0,8)+"...":"unknown",n=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${g.green}[USAGE] ${i} | in=${j} | out=${k} | account=${m}${g.reset}`;b.estimated&&(n+=` ${g.yellow}(estimated)${g.reset}`);let o=(0,e.rO)(b);o&&(n+=` | cache_read=${o}`);let p=(0,e.I8)(b);p&&(n+=` | cache_create=${p}`);let q=b.reasoning_tokens;q&&(n+=` | reasoning=${q}`),console.log(n),(0,d.E5)({model:"string"==typeof c?c:void 0,provider:"string"==typeof a?a:void 0,connectionId:l,tokens:{input:j,output:k,cacheRead:o||0,cacheCreation:p||0,reasoning:q||0},status:"200 OK"}).catch(()=>{})}},73870:(a,b,c)=>{"use strict";c.d(b,{w0:()=>o});var d=c(89419),e=c(86935),f=c(97510),g=c(61408);let h=new Map,i=["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/generative-language.retriever"];function j(a){try{return JSON.parse(a)}catch{throw Error("Vertex AI requires a valid Service Account JSON as the API key")}}function k(a){if(!a||"string"!=typeof a)return!1;try{let b=JSON.parse(a);return!!b&&"object"==typeof b&&!Array.isArray(b)}catch{return!1}}async function l(a){if(!a.client_email||!a.private_key)throw Error("Service Account JSON is missing required fields (client_email or private_key)");let b=a.client_email,c=h.get(b);if(c&&Date.now()<c.expiresAt-6e4)return c.token;let f=await (0,d.Lf)(a.private_key,"RS256"),g=Math.floor(Date.now()/1e3),j=await new e.P({iss:a.client_email,sub:a.client_email,aud:"https://oauth2.googleapis.com/token",iat:g,exp:g+3600,scope:i.join(" ")}).setProtectedHeader({alg:"RS256",kid:a.private_key_id}).sign(f),k=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:j})});if(!k.ok){let a=await k.text();throw Error(`Failed to exchange JWT for Vertex access token: ${k.status} ${a}`)}let l=(await k.json()).access_token;if(!l)throw Error("Vertex AI token exchange succeeded but no access_token found");return h.set(b,{token:l,expiresAt:(g+3600)*1e3}),l}let m=new Set(["claude-3-5-sonnet","claude-3-opus","claude-3-haiku","deepseek-v3","deepseek-v3.2","deepseek-v4","deepseek-deepseek-r1","qwen3-next-80b","qwen3.6-","llama-3.1","mistral-","glm-5","glm-5.1","meta/llama"]);function n(a){let b=a.toLowerCase();return[...m].some(a=>b.startsWith(a))}class o extends f.Hv{constructor(){super("vertex",g.xq.vertex)}async execute(a){let{credentials:b,log:c}=a;if("string"==typeof b.apiKey&&(b.apiKey=b.apiKey.trim()),b.apiKey&&!b.accessToken&&k(b.apiKey))try{let a=j(b.apiKey);b.accessToken=await l(a)}catch(a){throw c?.error?.("VERTEX",`Failed to generate JWT token: ${a.message}`),a}return super.execute(a)}buildUrl(a,b,c=0,d=null){var e;if("string"==typeof(e=d?.apiKey)&&e.trim().length>0&&!k(e)&&!d?.accessToken){let c=encodeURIComponent(String(d.apiKey).trim());return n(a)?`https://aiplatform.googleapis.com/v1/publishers/openapi/chat/completions?key=${c}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse&":"generateContent?"}key=${c}`}let f=d?.providerSpecificData?.region||"us-central1",g="unknown-project";if(d?.apiKey)try{let a=j(d.apiKey);a.project_id&&(g=a.project_id)}catch{}return n(a)?`https://aiplatform.googleapis.com/v1/projects/${g}/locations/global/endpoints/openapi/chat/completions`:`https://aiplatform.googleapis.com/v1/projects/${g}/locations/${f}/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}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}}},74051:(a,b,c)=>{"use strict";c.d(b,{S:()=>f});var d=c(98946);class e{constructor(a={}){this.sessions=new Map,this.idleTtlMs=a.idleTtlMs??3e5,this.maxSessions=a.maxSessions??100}acquire(a){this.evictExpired();let b=this.sessions.get(a);if(b&&"awaiting_tool_result"===b.state)return this.clearIdleTimer(b),b.state="running",b.lastActivityTs=Date.now(),b}open(a,b,c,d){let e=this.sessions.get(a);e&&this.close(e);let f={conversationId:a,h2Client:b,h2Req:c,blobStore:d,pendingToolCalls:new Map,state:"running",lastActivityTs:Date.now()};return this.sessions.set(a,f),this.attachCloseHandlers(f),this.enforceMaxSessions(),f}release(a,b){if(a.lastActivityTs=Date.now(),"awaiting_tool_result"===b){a.state="awaiting_tool_result",this.armIdleTimer(a);return}this.close(a)}close(a){if("closed"!==a.state){a.state="closed",this.clearIdleTimer(a);try{a.h2Req.close()}catch{}try{a.h2Client.close()}catch{}a.pendingToolCalls.clear(),this.sessions.delete(a.conversationId)}}sendToolResult(a,b,c,e){let f=a.pendingToolCalls.get(b);if(!f)return!1;try{return a.h2Req.write((0,d.vK)(f.execMsgId,f.execId,c,e)),a.pendingToolCalls.delete(b),a.lastActivityTs=Date.now(),!0}catch{return!1}}evictExpired(){let a=Date.now();for(let b of this.sessions.values())a-b.lastActivityTs>this.idleTtlMs&&this.close(b)}armIdleTimer(a){this.clearIdleTimer(a),a.idleTimer=setTimeout(()=>this.close(a),this.idleTtlMs),a.idleTimer.unref?.()}clearIdleTimer(a){a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=void 0)}attachCloseHandlers(a){let b=()=>this.close(a);a.h2Req.once?.("close",b),a.h2Req.once?.("error",b),a.h2Client.once?.("close",b),a.h2Client.once?.("error",b)}enforceMaxSessions(){if(this.sessions.size<=this.maxSessions)return;let a=Array.from(this.sessions.values()).sort((a,b)=>a.lastActivityTs-b.lastActivityTs)[0];a&&this.close(a)}size(){return this.sessions.size}has(a){return this.sessions.has(a)}}let f=new e},74184:(a,b,c)=>{"use strict";c.d(b,{As:()=>E});var d=c(4573);let e={browser:null,contexts:new Map,pendingContexts:new Map,launching:null,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 f(){if(e.cloakLaunchResolved)return e.cloakLaunch;e.cloakLaunchResolved=!0;try{e.cloakLaunch=(await c(48565)("cloakbrowser")).launch??null}catch{e.cloakLaunch=null}return e.cloakLaunch}function g(){e.idleTimer&&clearTimeout(e.idleTimer),e.idleTimer=setTimeout(()=>{m("idle-timeout")},3e5),e.idleTimer.unref?.()}async function h(a,b){try{let d=b?.resolveProxy??(async a=>{let{resolveProxyForProvider:b}=await c.e(1676).then(c.bind(c,51676));return b(a)}),e=await d(a);if(!e?.host)return;let f="socks5"===e.type?"socks5":"http",g={server:`${f}://${e.host}:${e.port}`};return e.username&&(g.username=String(e.username),g.password=null==e.password?"":String(e.password)),g}catch(a){console.warn("[BrowserPool] Failed to resolve proxy from DB:",a);return}}async function i(){if(e.browser)return e.browser;if(e.launching)return e.launching;e.launching=(async()=>{let a,b=await f();if(b)a=await b({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});else{let{chromium:b}=await Promise.resolve().then(c.bind(c,83237));a=await b.launch({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled"]})}return e.browser=a,e.launching=null,e.metrics.browserLaunches++,a})();try{return await e.launching}catch(a){throw e.launching=null,e.metrics.browserLaunchFailures++,a}}function j(a,b){b&&e.metrics.contextCreateFailures++,e.pendingContexts.delete(a)}async function k(a,b){let c;if(void 0!==(c=process.env.OMNIROUTE_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: OMNIROUTE_BROWSER_POOL=off — context requested but pool is disabled");let d=e.contexts.get(a);if(d)return d.lastUsed=Date.now(),e.lastActivity=Date.now(),e.metrics.contextsReused++,g(),d;let f=e.pendingContexts.get(a);if(f)return f;let k=(async()=>{let[c,d]=await Promise.all([i(),h(a)]),f=null!==e.cloakLaunch,j=await c.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},...d?{proxy:d}:{}});if(b.cookieString){var k,l;let a=(k=b.cookieString,l=b.cookieDomain,k.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(),d=a.slice(b+1).trim();return c&&d?{name:c,value:d,domain:l.startsWith(".")?l:`.${l}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));a.length>0&&await j.addCookies(a)}let n=null;if(b.warmupUrl)try{n=await j.newPage(),await n.goto(b.warmupUrl,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500))}catch(a){try{await n?.close()}catch{}n=null}if(e.browser!==c)throw await j.close().catch(()=>{}),n&&await n.close().catch(()=>{}),Error("Pool shut down during context creation");let o={id:a,context:j,warmupPage:n,lastUsed:Date.now(),isStealth:f};return e.contexts.set(a,o),e.metrics.contextsCreated++,e.lastActivity=Date.now(),g(),e.evictTimer&&clearInterval(e.evictTimer),e.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of e.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context:",b,"(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),e.contexts.delete(b),e.metrics.contextsEvicted++,c.context.close().catch(()=>{}));0!==e.contexts.size||e.launching||m("all-contexts-evicted")})(),6e4),e.evictTimer.unref?.(),o})();return e.pendingContexts.set(a,k),k.then(()=>j(a,!1)).catch(()=>j(a,!0)),k}async function l(a){return a.context.newPage()}async function m(a){for(let[b,c]of(e.metrics.shutdowns++,e.metrics.lastShutdownReason=a,e.idleTimer&&(clearTimeout(e.idleTimer),e.idleTimer=null),e.evictTimer&&(clearInterval(e.evictTimer),e.evictTimer=null),e.pendingContexts.clear(),e.contexts)){try{await c.context.close()}catch{}e.contexts.delete(b)}if(e.browser){try{await e.browser.close()}catch{}e.browser=null}e.lastActivity=Date.now()}async function n(a){let b={};for(let[c,d]of Object.entries(a.headers()))b[c]=d;let c=await a.body();return{status:a.status(),headers:b,body:d.Buffer.from(c)}}var o=c(58643),p=c(43659);let q=new Map;function r(a){let b=q.get(a);return b&&Date.now()<b.expiresAt?b.cookieString:(q.delete(a),null)}function s(a,b,c){q.set(a,{cookieString:b,expiresAt:Date.now()+(c??3e5),domain:a})}let t=new Map;function u(a,b){return new Promise((c,d)=>{if(b?.aborted)return d(new DOMException("Aborted","AbortError"));let e=()=>{clearTimeout(f),d(new DOMException("Aborted","AbortError"))},f=setTimeout(()=>{b?.removeEventListener("abort",e),c()},a);b?.addEventListener("abort",e,{once:!0})}).catch(a=>{if(a instanceof DOMException&&"AbortError"===a.name)throw a})}async function v(a,b){return b?{key:a,acquired:!0}:{key:`${a}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,acquired:!1}}async function w(a){let b=Date.now(),{poolKey:c,chatUrl:e,chatPageUrl:f,userMessage:g,cookieString:h,cookieDomain:i,chatUrlMatchDomain:j,userAgent:m,locale:o,timezone:q,inputSelector:r,submitButtonSelector:s,postSubmitWaitMs:t=15e3,signal:w,reuseContext:x=!0}=a,{key:y,acquired:z}=await v(c,x),A=Date.now(),B=await k(y,{cookieDomain:i||j,cookieString:h||null,warmupUrl:f,userAgent:m,locale:o,timezone:q}),C=Date.now()-A,D=await l(B);try{let a,c=Date.now();await D.goto(f,{waitUntil:"domcontentloaded",timeout:6e4,signal:w??void 0}),await u(2500,w);let h=Date.now()-c,i=D.locator(r).first();await i.waitFor({state:"visible",timeout:1e4,signal:w??void 0}),await i.fill(g),await u(800,w),Date.now();let k=D.waitForResponse(a=>"POST"===a.request().method()&&function(a,b,c){let d,e;if(a===c)return!0;try{d=new URL(a),e=new URL(c)}catch{return!1}if(!d.host.endsWith(b))return!1;let f=e.pathname.split("/").filter(Boolean),g=d.pathname.split("/").filter(Boolean);if(f.length<2||g.length!==f.length)return!1;let h=1;for(let a=0;a<f.length;a++)if(f[a]!==g[a]){if("PLACEHOLDER"===f[a]&&h>0){h--;continue}return!1}return!0}(a.url(),j,e),{timeout:3e4}),l=w?new Promise((b,c)=>{if(w.aborted)return c(new DOMException("Aborted","AbortError"));a=()=>c(new DOMException("Aborted","AbortError")),w.addEventListener("abort",a,{once:!0})}):null;if(s){let a=D.locator(s).first();if(await a.count()>0)try{await a.click({timeout:2e3})}catch{await D.keyboard.press("Enter")}else await D.keyboard.press("Enter")}else await D.keyboard.press("Enter");let m=Date.now(),o=l?await Promise.race([k,l]).catch(()=>null):await k.catch(()=>null);w&&a&&w.removeEventListener("abort",a),o?await u(Math.min(t,3e4),w):await u(t,w);let p=Date.now()-m,q=0,v=null,x=d.Buffer.alloc(0);if(o){let a=await n(o);a.body.length>0xa00000?(x=d.Buffer.from(JSON.stringify({error:{message:"Response too large",type:"upstream_error"}})),q=502,v="application/json"):(q=a.status,v=a.headers["content-type"]||null,x=a.body)}return{status:q,contentType:v,body:x,isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:h,submitMs:p,captureResponseMs:p,totalMs:Date.now()-b}}}catch(c){let a=c instanceof Error?c.message:String(c);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`browserBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-b}}}finally{if(await D.close(),!z)try{await B.context.close()}catch{}}}async function x(a){let b,c=Date.now(),{chatUrl:e,userMessage:f,cookieString:g,cookieDomain:h,chatUrlMatchDomain:i,signal:j}=a,k={"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:"text/event-stream, application/json, text/plain, */*","Accept-Language":"en-US,en;q=0.9","Content-Type":"application/json",Origin:"duckduckgo.com"===i?"https://duckduckgo.com":`https://${i}`,Referer:"duckduckgo.com"===i?"https://duckduckgo.com/":`https://${i}/`,"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","Sec-Ch-Ua":'"Chromium";v="149", "Google Chrome";v="149", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Priority:"u=1, i"};g&&(k.Cookie=g),b=new URL(e).hostname.includes("duckduckgo")?JSON.stringify({model:"gpt-4o-mini",messages:[{role:"user",content:f}]}):JSON.stringify({messages:[{role:"user",content:f}]});try{let a=Date.now();if(!o.A.available)return{status:501,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"httpBackedChat unavailable: wreq-js (TLS client) not installed",type:"configuration_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:Date.now()-c,captureResponseMs:0,totalMs:Date.now()-c}};let f=await o.A.fetch(e,{method:"POST",headers:k,body:b,signal:j??void 0}),g=Date.now()-a,h=f.headers.get("content-length");if(h&&parseInt(h,10)>0xa00000)throw Error("Response too large");let i=d.Buffer.from(await f.text()),l=f.status,m=f.headers.get("content-type")||"text/event-stream";return{status:l,contentType:m,body:i,isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:g,captureResponseMs:0,totalMs:Date.now()-c}}}catch(b){if(b instanceof DOMException&&"AbortError"===b.name)throw b;let a=b instanceof Error?b.message:String(b);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`httpBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-c}}}}async function y(a,b,c){let d=Date.now()+5e3;for(;Date.now()<d;){if(c?.aborted)throw new DOMException("Aborted","AbortError");let e=(await a.cookies(b)).map(a=>`${a.name}=${a.value}`).join("; ");if(e)return e;let f=d-Date.now();if(f<=0)break;await u(Math.min(500,f),c)}return null}async function z(a,b,c,d){let e=await l(a);try{return await e.goto(b,{waitUntil:"domcontentloaded",timeout:6e4,signal:d??void 0}),await y(a.context,c,d)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;return null}finally{await e.close().catch(()=>{})}}async function A(a,b,c,d){let e=r(c);if(e)return e;let f=t.get(a);if(f)return f;let g=B(a,b,c,d);return t.set(a,g),g.finally(()=>t.delete(a)),g}async function B(a,b,c,d){let e,{key:f}=await v(a,!0);try{e=await k(f,{cookieDomain:c,cookieString:null,warmupUrl:b})}catch{return null}let g=await z(e,b,c,d);return g&&s(c,g),g}async function C(a){if(!a.cookieDomain)return null;let b=process.env.OMNIROUTE_BROWSER_POOL;if("off"===b||"0"===b||"false"===b)return null;try{let{key:b}=await v(a.poolKey,!0);return await k(b,{cookieDomain:a.cookieDomain,cookieString:null})}catch{return null}}async function D(a,b,c,d,e){if(e)try{let a=await e;if(a){let e=await z(a,b,c,d);if(e)return s(c,e),e}}catch{}return A(a,b,c,d)}async function E(a){let b=a.signal?null:new AbortController,c=a.signal??b?.signal??null;b&&setTimeout(()=>b.abort(),45e3);let e=C(a);try{var f;let b=await x({...a,signal:c??void 0});if(b.status>=200&&b.status<300||!((f=b.status)>=400&&501!==f))return b;let d=null;if(a.cookieDomain){if(d=r(a.cookieDomain)){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b;d=null}if(!d&&(d=await D(a.poolKey,a.chatPageUrl,a.cookieDomain,c,e))){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b}}let g=d?{...a,cookieString:d,signal:c??void 0}:{...a,signal:c??void 0},h=await w(g);return h.status>=200&&h.status,h}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return{status:504,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"tryBackedChat timed out",type:"timeout_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:0}};throw a}}},74199:(a,b,c)=>{"use strict";c.d(b,{R:()=>d});let d=()=>!1},74350:(a,b,c)=>{"use strict";c.d(b,{L:()=>I});var d=c(97510),e=c(61408),f=c(8590),g=c(89625),h=c(55511);let i=new Map,j=new Map;async function k(a={}){let b=(a.credentials||"").trim();if(!b)throw Error("Missing GigaChat credentials");let c=(a.authUrl||"https://ngw.devices.sberbank.ru:9443/api/v2/oauth").trim(),d=(a.scope||"GIGACHAT_API_PERS").trim(),e=`${c}::${d}::${b}`,f=i.get(e);if(function(a){if(!a?.accessToken||!a?.expiresAt)return!1;let b=new Date(a.expiresAt).getTime();return Number.isFinite(b)&&b-Date.now()>6e4}(f))return f;let g=j.get(e);if(g)return g;let l=(async()=>{let f=await fetch(c,{method:"POST",headers:{Authorization:`Basic ${b}`,RqUID:(0,h.randomUUID)(),"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({scope:d}).toString(),signal:a.signal});if(!f.ok){let a=await f.text();throw Error(`GigaChat token request failed: ${f.status} ${a}`.trim())}let g=await f.json(),j="string"==typeof g.tok?g.tok:"string"==typeof g.access_token?g.access_token:"";if(!j)throw Error("GigaChat token response missing access token");let k={accessToken:j,expiresAt:function(a){if("number"==typeof a&&Number.isFinite(a))return new Date(a).toISOString();if("string"==typeof a&&a.trim().length>0){let b=Number(a);if(Number.isFinite(b))return new Date(b).toISOString();let c=Date.parse(a);if(Number.isFinite(c))return new Date(c).toISOString()}return new Date(Date.now()+18e5).toISOString()}(g.exp??g.expires_at)};return i.set(e,k),k})();j.set(e,l);try{return await l}finally{j.delete(e)}}var l=c(36081),m=c(57247),n=c(93462),o=c(56452),p=c(78340),q=c(57647),r=c(57441),s=c(9427);let t="/api/v2",u="/genai/llmgw/chat/completions/",v="https://app.datarobot.com",w="https://example-resource.services.ai.azure.com/openai/v1",x="https://ca-tor.ml.cloud.ibm.com/ml/gateway/v1",y="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",z="https://example-aicore.cfapps.eu10.hana.ondemand.com/v2/lm/deployments/example-deployment";var A=c(74361),B=c(40615);let C=()=>!1;var D=c(96303),E=c(4928),F=c(13568);function G(a,b){let c=null;if(b&&"object"==typeof b&&!Array.isArray(b))c=b;else if("string"==typeof b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&(c=a)}catch{}if(c)for(let[b,d]of Object.entries(c)){if("string"!=typeof b||"string"!=typeof d||C(b)||/[\r\n\0]/.test(b)||/[\r\n]/.test(d))continue;let c=b.toLowerCase();for(let b of Object.keys(a))b.toLowerCase()===c&&delete a[b];a[b]=d}}function H(a){let b=(0,s.q)(a);return b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/chat")?b:b.endsWith("/v1")?`${b}/chat/completions`:`${b}/v1/chat/completions`}class I extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai);const b=(0,l.qs)(a);b?.poolConfig&&(this.poolConfig=b.poolConfig)}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=d?.providerSpecificData,b=(a?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if(c)return`${b}${c}`;let e=a?._omnirouteForceResponsesUpstream===!0||"responses"===(0,q.J9)(this.provider,a)?"/responses":"/chat/completions";return`${b}${e}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=d?.providerSpecificData,b=a?.baseUrl||"https://api.anthropic.com/v1",c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if((0,q.GK)(this.provider))return(0,g.tI)(b,c||g.np);let e=b.replace(/\/$/,"");return`${e}${c||"/messages"}`}switch(this.provider){case"openai":{let b="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,c=b?H(b):this.config.baseUrl;if("openai-responses"===(0,m.ux)("openai",a))return c.replace(/\/chat\/completions\/?$/,"/responses");return c}case"bailian-coding-plan":{let a;return h=this.resolveBaseUrl(d),(a=(0,s.q)(h).replace(/\?beta=true$/,"")).endsWith("/messages")?a:`${a}/messages`}case"heroku":case"databricks":case"snowflake":case"gigachat":return void this.resolveBaseUrl(d);case"datarobot":{let a;var e,f,h,i=this.resolveBaseUrl(d);return(a=(0,s.q)(i||v)||v).endsWith("/chat/completions")?a:/\/api\/v2\/deployments\/[^/]+$/i.test(a)?`${a}/chat/completions`:/\/api\/v2\/genai\/llmgw$/i.test(a)?`${a}/chat/completions/`:/\/api\/v2\/genai\/llmgw\/chat$/i.test(a)?`${a}/completions/`:a.includes(t)?`${a}${u}`:`${a}${t}${u}`}case"azure-ai":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){let c=function(a){let b=(0,s.q)(a||w);if(!b)return w;if(b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/models"))return b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(b.endsWith("/openai/v1")||b.endsWith("/v1"))return b;if(b.endsWith("/openai"))return`${b}/v1`;let c=new URL(b);return(c.hostname.endsWith(".services.ai.azure.com")||c.hostname.endsWith(".openai.azure.com"))&&(!c.pathname||"/"===c.pathname)?(c.pathname="/openai/v1",(0,s.o)(c.toString())):b}(a);return`${c}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"watsonx":return e=this.resolveBaseUrl(d),`${function(a){let b=(0,s.q)(a||x);if(!b)return x;let c=b.replace(/\/(?:chat\/completions|completions|embeddings|models)$/i,"");if(c.endsWith("/ml/gateway/v1"))return c;if(c.endsWith("/ml/gateway"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/ml/gateway")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/ml/gateway/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(e)}/chat/completions`;case"oci":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){return`${function(a){let b=(0,s.q)(a||y);if(!b)return y;let c=b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(c.endsWith("/openai/v1"))return c;if(c.endsWith("/openai"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/openai")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/openai/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(a)}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"sap":{let a;return(a=function(a){let b=(0,s.q)(a||z);if(!b)return z;var c=b.replace(/\/chat\/completions$/i,"");try{let a=new URL(c);return a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(this.resolveBaseUrl(d))).endsWith("/chat/completions")?a:`${a}/chat/completions`}case"xiaomi-mimo":{let a;return f=this.resolveBaseUrl(d),a=(0,s.q)(f).replace(/\/chat\/completions$/,""),`${a}/chat/completions`}case"maritalk":{let a=this.resolveBaseUrl(d);return(0,A.$D)(a)}case"siliconflow":return H(this.resolveBaseUrl(d));case"ollama-local":case"llama-cpp":case"lm-studio":case"modal":case"reka":case"vllm":case"lemonade":case"llamafile":case"triton":case"docker-model-runner":case"xinference":case"oobabooga":{let a=B.HP[this.provider]?.localDefault;return H(d?.providerSpecificData?.baseUrl||a||this.config.baseUrl)}case"zai":case"glm-coding-apikey":{let a=this.resolveBaseUrl(d);return`${a}?beta=true`}case"claude":case"glm":case"glmt":case"kimi-coding":case"minimax":case"minimax-cn":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;case"qwen":{let a=d?.providerSpecificData?.resourceUrl;return`https://${a||"portal.qwen.ai"}/v1/chat/completions`}default:{let a="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,b=!this.config.format||"openai"===this.config.format;if(a&&b)return H(a);let c=this.config.baseUrl,e=(0,l.qs)(this.provider);return e?.urlSuffix?`${c}${e.urlSuffix}`:c}}}buildHeaders(a,b=!0,c){let{headers:d,effectiveKey:e}=this.buildHeadersPreamble(a,b);switch(this.provider){case"gemini":e?d["x-goog-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"snowflake":{let b=e||a.accessToken||"",c=b.startsWith("pat/");d.Authorization=`Bearer ${c?b.slice(4):b}`,d["X-Snowflake-Authorization-Token-Type"]=c?"PROGRAMMATIC_ACCESS_TOKEN":"KEYPAIR_JWT";break}case"gigachat":d.Authorization=`Bearer ${a.accessToken||e}`;break;case"clarifai":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"azure-ai":(e||a.accessToken)&&(d["api-key"]=e||a.accessToken),delete d.Authorization;break;case"oci":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`);let c=a.projectId||a?.providerSpecificData?.projectId||a?.providerSpecificData?.project;c&&(d["OpenAI-Project"]=c);break}case"sap":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`),d["AI-Resource-Group"]=function(a,b="default"){for(let b of[a?.resourceGroup,a?.aiResourceGroup,a?.resource_group])if("string"==typeof b&&b.trim())return b.trim();return b}(a?.providerSpecificData);break}case"reka":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`,d["X-Api-Key"]=b);break}case"maritalk":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"claude":case"anthropic":e?d["x-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"glm":case"glmt":case"kimi-coding":case"bailian-coding-plan":case"kimi-coding-apikey":case"zai":case"glm-coding-apikey":d["x-api-key"]=e||a.accessToken;break;case"cline":Object.assign(d,(0,E.w)(e||a.accessToken));break;default:if((0,q.GK)(this.provider)){let c=(0,D.RG)(a?.providerSpecificData),d=(0,g.mu)(e||a.accessToken||"",b,a?.providerSpecificData?.ccSessionId,{redactThinking:!0===c.redactThinking});return G(d,a.providerSpecificData?.customHeaders),d}if(this.provider?.startsWith?.("anthropic-compatible-"))e?d["x-api-key"]=e:a.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`),e&&!d.Authorization&&!function(a){if(!a)return!0;let b=null;try{b=new URL(a).hostname}catch{try{b=new URL(`https://${a}`).hostname}catch{return!1}}return"api.anthropic.com"===b}(a?.providerSpecificData?.baseUrl||"")&&(d.Authorization=`Bearer ${e}`),Object.keys(d).some(a=>"anthropic-version"===a.toLowerCase())||(d["anthropic-version"]="2023-06-01");else{let b=(0,l.qs)(this.provider),c=b?.authHeader||"bearer",f=e||a.accessToken||b?.anonymousApiKey;f&&("x-api-key"===c?d["x-api-key"]=f:"x-goog-api-key"===c?d["x-goog-api-key"]=f:d.Authorization=`Bearer ${f}`)}}if(d.Accept=b?"text/event-stream":"application/json","qwen"===this.provider&&e)for(let a of Object.keys(d))a.toLowerCase().startsWith("x-dashscope-")&&delete d[a];if((this.provider?.startsWith?.("openai-compatible-")||this.provider?.startsWith?.("anthropic-compatible-"))&&G(d,a.providerSpecificData?.customHeaders),c){(0,F.G)(d,c);let a=c["anthropic-beta"]??c["Anthropic-Beta"]??null,b=Object.keys(d).find(a=>"anthropic-beta"===a.toLowerCase());b&&a&&(d[b]=(0,n.S9)(d[b],a))}return(0,n.Xs)(d),d}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-")||!a||"object"!=typeof a||Array.isArray(a))return a;let b=a.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
|
|
349
|
+
`))}}}catch{}}}f||a.enqueue(new TextEncoder().encode("data: [DONE]\n\n"))}catch(b){c?.error?.("CLAUDE-WEB-STREAM",`Stream error: ${String(b)}`),a.error(b)}finally{try{d.releaseLock()}catch{}try{a.close()}catch{}}}});return new Response(g,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}class y extends e.Hv{constructor(){super("claude-web",{baseUrl:v})}async testConnection(a,b){try{let c=n(a);if(!c.trim())return!1;let d=await q(c,{allowAutoSolve:!1}),e=o(a);return await s(d,e,b)}catch(a){return!1}}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:i}){let m=b||{};try{let b;if(!d||"object"!=typeof d)return{response:new Response(JSON.stringify({error:{message:"Invalid credentials",type:"invalid_request_error"}}),{status:400,statusText:"Bad Request",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m};let c=n(d);if(!c.trim())return{response:new Response(JSON.stringify({error:{message:"Missing session cookie",type:"authentication_error"}}),{status:401,statusText:"Unauthorized",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m};let k=await q(c,{allowAutoSolve:!0,log:i}),r=o(d);try{b=function(a,b){let c=Array.isArray(a.messages)?a.messages:[],d="";for(let a of c)"object"==typeof a&&null!==a&&"user"===a.role&&(d=String(a.content||""));if(!d.trim())throw Error("No user message found in request");return{prompt:d,model:b||x,timezone:"Asia/Jakarta",personalized_styles:[{type:"default",key:"Default",name:"Normal",nameKey:"normal_style_name",prompt:"Normal\n",summary:"Default responses from Claude",summaryKey:"normal_style_summary",isDefault:!0}],locale:"en-US",tools:[{name:"show_widget",description:"Display interactive widgets and visualizations",input_schema:{type:"object",properties:{widget_type:{type:"string",description:"Type of widget to display"}}},integration_name:"visualize",is_mcp_app:!0},{name:"read_me",description:"Read and reference documents",input_schema:{type:"object",properties:{file_path:{type:"string",description:"Path to the file to read"}}},integration_name:"visualize",is_mcp_app:!1},{type:"web_search_v0",name:"web_search"},{type:"artifacts_v0",name:"artifacts"},{type:"repl_v0",name:"repl"},{type:"widget",name:"weather_fetch"},{type:"widget",name:"recipe_display_v0"},{type:"widget",name:"places_map_display_v0"},{type:"widget",name:"message_compose_v1"},{type:"widget",name:"ask_user_input_v0"},{type:"widget",name:"recommend_claude_apps"},{type:"widget",name:"places_search"},{type:"widget",name:"fetch_sports_data"}],turn_message_uuids:{human_message_uuid:(0,j.randomUUID)(),assistant_message_uuid:(0,j.randomUUID)()},attachments:[],effort:"low",files:[],sync_sources:[],rendering_mode:"messages",thinking_mode:"off",create_conversation_params:{name:"",model:b||x,include_conversation_preferences:!0,paprika_mode:null,compass_mode:null,is_temporary:!1,enabled_imagine:!0,tool_search_mode:"auto"}}}(m,a)}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Invalid request format",type:"invalid_request_error"}}),{status:400,statusText:"Bad Request",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m}}let s=d?.orgId,w=d?.conversationId;!s&&((s=await t(k,r,h))||(i?.warn?.("CLAUDE-WEB","Could not retrieve organization ID, using fallback"),s="")),w||(w=(0,j.randomUUID)());let y=p(r);if(function(){let a=process.env.WEB_COOKIE_USE_BROWSER;if("1"===a||"true"===a||"on"===a)return!0;let b=process.env.OMNIROUTE_BROWSER_POOL;return"on"===b||"1"===b||"true"===b}()){let d=function(a){let b=Array.isArray(a.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){let c=b[a].content;if("string"==typeof c)return c;if(Array.isArray(c))return c.map(a=>"object"==typeof a&&a&&"text"in a?String(a.text):"").filter(Boolean).join("\n")}return"Reply with OK"}(m),e=s?`${v}/organizations/${s}/chat_conversations/PLACEHOLDER/completion`:`${v}/chat_conversations/PLACEHOLDER/completion`,f=await (0,l.As)({poolKey:"claude-web",chatPageUrl:"https://claude.ai/new",chatUrl:e,chatUrlMatchDomain:"claude.ai",cookieString:c,cookieDomain:".claude.ai",userMessage:d,inputSelector:"div[contenteditable='true']",postSubmitWaitMs:15e3,signal:h??null});if(f.status>0){let c=new Response(f.body,{status:f.status,headers:{"Content-Type":f.contentType||"text/event-stream"}});return{response:await u(c,a,i,null),url:e,headers:y,transformedBody:b}}return{response:new Response(JSON.stringify({error:{message:`Claude Web browser-backed chat captured no upstream response (timing: ${JSON.stringify(f.timing)})`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:e,headers:y,transformedBody:b}}let z=s&&w?`${v}/organizations/${s}/chat_conversations/${w}/completion`:`${v}/chat_conversations/new/completion`,A=AbortSignal.timeout(f.MT),B=h?(0,e.OW)(h,A):A;i?.debug?.("CLAUDE-WEB",`Making request to ${z}`);let C=await (0,g.wf)(z,{method:"POST",headers:{...y,Cookie:k},body:JSON.stringify(b),timeoutMs:f.MT,stream:!0,signal:B});if(C.status<200||C.status>=300){let a;if(i?.error?.("CLAUDE-WEB",`HTTP ${C.status}`),401===C.status)return{response:new Response(JSON.stringify({error:{message:"Session expired or invalid",type:"authentication_error"}}),{status:401,statusText:"Unauthorized",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b};if(429===C.status)return{response:new Response(JSON.stringify({error:{message:"Rate limited by Claude Web API",type:"rate_limit_error"}}),{status:429,statusText:"Too Many Requests",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b};let c="",d=null;try{if(C.body){let a=C.body.getReader(),b=new TextDecoder,d=[],e=0;for(;e<2048;){let{value:b,done:c}=await a.read();if(c||!b)break;d.push(b),e+=b.byteLength}try{a.releaseLock()}catch{}if(1===d.length)c=b.decode(d[0]);else{let a=new Uint8Array(e),f=0;for(let b of d)a.set(b,f),f+=b.byteLength;c=b.decode(a)}}else C.text&&(c=C.text)}catch{c=""}d=C.headers.get("cf-mitigated");let e=403===C.status&&("challenge"===d||/<title>\s*Just a moment/i.test(c)||/<title>\s*Attention Required/i.test(c));if(e)a=`Claude Web returned a Cloudflare bot-management challenge (cf-mitigated=${d??"challenge"}). The sandbox / VPS IP appears to be flagged; the cf_clearance cookie pasted from a residential IP won't pass. Probe from a residential network, or use the official Anthropic API (provider: 'claude') instead.`;else{let b=c.trim().slice(0,500);a=b?`Claude Web API error (${C.status}): ${b}`:`Claude Web API error (${C.status}) with no response body`}return{response:new Response(JSON.stringify({error:{message:a,type:e?"cloudflare_challenge":"api_error",code:e?"cf_mitigated_challenge":`HTTP_${C.status}`,...d?{cfMitigated:d}:{}}}),{status:C.status,statusText:"HTTP Error",headers:{"Content-Type":"application/json"}}),url:z,headers:y,transformedBody:b}}return{response:await u(C,a,i,C.body),url:z,headers:y,transformedBody:b}}catch(b){let a=b instanceof Error?b.message:String(b);return i?.error?.("CLAUDE-WEB",`Fetch failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`Claude Web connection failed: ${(0,k.sanitizeErrorMessage)(a)}`,type:"api_connection_error"}}),{status:500,statusText:"Internal Server Error",headers:{"Content-Type":"application/json"}}),url:"",headers:{},transformedBody:m}}}}d()}catch(a){d(a)}})},69734:(a,b,c)=>{c.d(b,{Fx:()=>d,y9:()=>e});let d=()=>void 0,e=()=>void 0},69896:(a,b,c)=>{c.d(b,{l:()=>m});var d=c(14170),e=c(81167),f=c(23874),g=c(31252);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=""){return"string"==typeof a?a:b}function j(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}function k(...a){for(let b of a){let a=j(b,0);if(a>0)return a}return 0}function l(a){if(!Array.isArray(a.content))return"";let b="";for(let c of a.content){if(!c||"object"!=typeof c)continue;let a=h(c);"output_text"===a.type&&"string"==typeof a.text&&(b+=a.text)}return b}function m(a,b,c,m){if(b===c)return a;let n=a;if(b===d.h.OPENAI_RESPONSES){let b=h(a),c="response"===b.object?b:h(b.response??b),d=Array.isArray(c.output)?c.output:[],e=h(c.usage??b.usage),f=function(a){let b=a.map(a=>h(a)).filter(a=>"message"===a.type&&Array.isArray(a.content));for(let a=b.length-1;a>=0;a-=1){let c=l(b[a]);if(c.trim().length>0)return{text:c,selectedMessageIndex:a,messageItems:b}}if(b.length>0){let a=b.length-1;return{text:l(b[a]),selectedMessageIndex:a,messageItems:b}}return{text:"",selectedMessageIndex:-1,messageItems:[]}}(d),g=f.text,o="",p=[];for(let a of d){if(!a||"object"!=typeof a)continue;let b=h(a);if("message"===b.type&&Array.isArray(b.content))for(let a of b.content){if(!a||"object"!=typeof a)continue;let b=h(a);"summary_text"===b.type&&"string"==typeof b.text&&(o+=b.text)}else if("reasoning"===b.type&&Array.isArray(b.summary))for(let a of b.summary){let b=h(a);"summary_text"===b.type&&"string"==typeof b.text&&(o+=b.text)}else if("function_call"===b.type){let a=i(b.call_id)||i(b.id)||`call_${Date.now()}_${p.length}`,c=b.arguments;if(null!=c&&"object"==typeof c&&!Array.isArray(c)){let a={...c};for(let[b,c]of Object.entries(a))(""===c||Array.isArray(c)&&0===c.length)&&delete a[b];c=a}let d="string"==typeof c?c:JSON.stringify(c||{}),e=i(b.name),f=m?.get(e)??e;p.push({id:a,type:"function",function:{name:f,arguments:d}})}}let q={role:"assistant"};g&&(q.content=g),o&&(q.reasoning_content=o),p.length>0&&(q.tool_calls=p),void 0===q.content&&(q.content=""),"true"===process.env.DEBUG_RESPONSES_SSE_TO_JSON&&(console.log(`[ResponsesSSE] ${d.length} output items, ${f.messageItems.length} message items`),f.messageItems.forEach((a,b)=>{let c=l(a).length;console.log(` [${b}] text length: ${c}`)}),console.log(` → Selected message index: ${f.selectedMessageIndex}`),console.log(` → Final text content length: ${g.length}`));let r=j(c.created_at,Math.floor(Date.now()/1e3)),s=i(c.model||b.model,"openai-responses"),t=p.length>0?"tool_calls":"stop",u={id:`chatcmpl-${i(c.id,String(Date.now()))}`,object:"chat.completion",created:r,model:s,choices:[{index:0,message:q,finish_reason:t}]};if(Object.keys(e).length>0){let a=j(e.input_tokens,0),b=j(e.output_tokens,0),c=h(e.input_tokens_details),d=h(e.output_tokens_details),f=h(e.prompt_tokens_details),g=h(e.completion_tokens_details),i=k(c.cached_tokens,f.cached_tokens,e.cache_read_input_tokens),l=k(c.cache_creation_tokens,f.cache_creation_tokens,e.cache_creation_input_tokens),m=k(d.reasoning_tokens,g.reasoning_tokens,e.reasoning_tokens);if(u.usage={prompt_tokens:a,completion_tokens:b,total_tokens:a+b},m>0&&(u.usage.completion_tokens_details={reasoning_tokens:m}),i>0||l>0){u.usage.prompt_tokens_details={};let a=u.usage.prompt_tokens_details;i>0&&(a.cached_tokens=i),l>0&&(a.cache_creation_tokens=l)}}n=u}else if(b===d.h.GEMINI||b===d.h.ANTIGRAVITY){let b=h(a),c=h(b.response??b),d=Array.isArray(c.candidates)?c.candidates:[],k=h(c.usageMetadata??b.usageMetadata),l=h(c.promptFeedback??b.promptFeedback);if(d.length>0||Object.keys(l).length>0){let a=Date.parse(i(c.createTime)),b=Number.isFinite(a)?Math.floor(a/1e3):Math.floor(Date.now()/1e3),l=d.length>0?d.map((a,b)=>{let c=h(a),d=h(c.content),j="",k=[],l=[],n="",o="";if(Array.isArray(d.parts))for(let a of d.parts){let b=h(a);if(!0===b.thought&&"string"==typeof b.text){n+=b.text;continue}let c=i(b.thoughtSignature??b.thought_signature);if(c&&(o=c),"string"==typeof b.text){let a=function(a){if("string"!=typeof a)return null;let b=a.replace(/[\u200B-\u200D\uFEFF]/g,"").match(/^[\s\S]*?\[Tool call:\s*([^\]\n]+)\]\s*\nArguments:\s*([\s\S]+?)\s*$/);if(!b)return null;let c=b[1]?.trim(),d=b[2]?.trim();if(!c||!d)return null;try{let a=JSON.parse(d);if("string"==typeof a){let b=a.trim();(b.startsWith("{")||b.startsWith("["))&&(a=JSON.parse(b))}if(a&&"object"==typeof a&&!Array.isArray(a))return{name:c,args:a}}catch{}return null}(b.text);if(a){let b=`call_${i(a.name,"unknown")}_${Date.now()}_${l.length}`;l.push({id:b,type:"function",function:{name:a.name,arguments:JSON.stringify(a.args||{})}})}else(0,g.vE)(b.text)||(j+=b.text,k.push({type:"text",text:b.text}))}let d=h(b.inlineData??b.inline_data);if("string"==typeof d.data&&d.data.length>0){let a=i(d.mimeType??d.mime_type,"image/png");k.push({type:"image_url",image_url:{url:`data:${a};base64,${d.data}`}})}if(b.functionCall){let a=h(b.functionCall),d=i(a.name),f=m?.get(d)??d,g=i(a.id),j=g.length>0?g:`call_${i(f,"unknown")}_${Date.now()}_${l.length}`,k=c||o;if(k){let a=(0,e.q)(null,j);(0,e.Sk)(a,k)}l.push({id:j,type:"function",function:{name:f,arguments:JSON.stringify(function(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!(b.startsWith("{")||b.startsWith("[")))return a;try{return JSON.parse(b)}catch{return a}}(a.args||{}))}})}}let p={role:"assistant"};1===k.length&&"text"===k[0].type?p.content=k[0].text:k.length>0?p.content=k:j&&(p.content=j),n&&(p.reasoning_content=n),l.length>0&&(p.tool_calls=l),p.content||p.tool_calls||(p.content="");let q=(0,f.U)(i(c.finishReason,"stop"));return"stop"===q&&l.length>0&&(q="tool_calls"),{index:b,message:p,finish_reason:q}}):[{index:0,message:{role:"assistant",content:""},finish_reason:"content_filter"}],o={id:`chatcmpl-${i(c.responseId,String(Date.now()))}`,object:"chat.completion",created:b,model:i(c.modelVersion,"gemini"),choices:l};if(Object.keys(k).length>0){let a=j(k.promptTokenCount,0),b=j(k.thoughtsTokenCount,0);o.usage={prompt_tokens:a,completion_tokens:j(k.candidatesTokenCount,0)+b,total_tokens:j(k.totalTokenCount,0)},b>0&&(o.usage.completion_tokens_details={reasoning_tokens:b}),j(k.cachedContentTokenCount,0)>0&&(o.usage.prompt_tokens_details={cached_tokens:j(k.cachedContentTokenCount,0)})}n=o}}else if(b===d.h.CLAUDE){let b=h(a),c=Array.isArray(b.content)?b.content:[];if(c.length>0){let a="",d="",e=[];for(let b of c){let c=h(b);if("text"===c.type)a+=i(c.text);else if("thinking"===c.type)d+=i(c.thinking);else if("tool_use"===c.type){let a=i(c.name),b=m?.get(a)??a;e.push({id:i(c.id,`call_${Date.now()}_${e.length}`),type:"function",function:{name:b,arguments:JSON.stringify(c.input||{})}})}}let f={role:"assistant"};a&&(f.content=a),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=e),void 0===f.content&&(f.content="");let g=i(b.stop_reason,"stop");"end_turn"===g&&(g="stop"),"tool_use"===g&&(g="tool_calls");let k={id:`chatcmpl-${i(b.id,String(Date.now()))}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:i(b.model,"claude"),choices:[{index:0,message:f,finish_reason:g}]},l=h(b.usage);if(Object.keys(l).length>0){let a=j(l.input_tokens,0),b=j(l.output_tokens,0);k.usage={prompt_tokens:a,completion_tokens:b,total_tokens:a+b}}n=k}}return c===d.h.CLAUDE&&c!==b?function(a){let b=a.choices,c=Array.isArray(b);if(!c&&"chat.completion"!==a.object)return a;let d=c?b[0]:null,e=d?h(d):{},f=e.message?h(e.message):{},g=[],k=!1;if(f.reasoning_content&&(k=!0,g.push({type:"thinking",thinking:i(f.reasoning_content)})),Array.isArray(f.tool_calls)&&f.tool_calls.length,void 0!==f.content&&null!==f.content){k=!0;let a=i(f.content);g.push({type:"text",text:""===a?"(empty response)":a})}else k||g.push({type:"text",text:"(empty response)"});if(Array.isArray(f.tool_calls))for(let a of f.tool_calls){let b=h(a),c=h(b.function);g.push({type:"tool_use",id:i(b.id,`call_${Date.now()}`),name:i(c.name),input:"string"==typeof c.arguments?JSON.parse(c.arguments||"{}"):c.arguments||{}})}let l=i(e.finish_reason,"end_turn");"stop"===l&&(l="end_turn"),"tool_calls"===l&&(l="tool_use");let m=h(a.usage);return{id:i(a.id,`msg_${Date.now()}`),type:"message",role:"assistant",model:i(a.model,"claude"),content:g,stop_reason:l,stop_sequence:null,usage:{input_tokens:j(m.prompt_tokens,0),output_tokens:j(m.completion_tokens,0)}}}(h(n)):n}},71394:(a,b,c)=>{c.d(b,{C:()=>k});var d=c(74350),e=c(56452),f=c(33748);function g(a){return"string"==typeof a.reasoning_content&&a.reasoning_content.trim().length>0}function h(a){return!!a&&"object"==typeof a&&!Array.isArray(a)&&"tool_use"===a.type}function i(a){return!!a&&"object"==typeof a&&!Array.isArray(a)&&("thinking"===a.type||"redacted_thinking"===a.type)}function j(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}class k extends d.L{constructor(a="kimi-coding"){super(a)}transformRequest(a,b,c,d){return function(a){let b,c=(0,e.b)(a,void 0),d=j(c);if(!d||!Array.isArray(d.messages))return c;let k=function(a){if(!(Array.isArray(a.system)||Array.isArray(a.messages)&&a.messages.some(a=>{let b=j(a);return!!b&&!!Array.isArray(b.content)&&b.content.some(a=>{let b=j(a);return b?.type==="text"||b?.type==="tool_use"||b?.type==="tool_result"})})))return a;let b=j(a.thinking)??{type:"enabled"};return null===b.keep?a:{...a,thinking:{...b,keep:null}}}(d);if(!(b=k.thinking)||"object"!=typeof b||Array.isArray(b)||"enabled"!==b.type&&"adaptive"!==b.type)return k;let l=!1,m=(Array.isArray(k.messages)?k.messages:d.messages).map(a=>{let b=j(a);if(!b||"assistant"!==b.role||!(Array.isArray(b.tool_calls)&&b.tool_calls.length>0||Array.isArray(b.content)&&b.content.some(h)))return a;let c=function(a){let b=g(a)?String(a.reasoning_content):f.A_,c=g(a)?a:{...a,reasoning_content:b};if(!Array.isArray(c.content))return c;let d=c.content.findIndex(h);if(d<0||c.content.some(i))return c;let e=[...c.content];return e.splice(d,0,{type:"thinking",thinking:b}),{...c,content:e}}(b);return c!==b&&(l=!0),c});return l?{...k,messages:m}:k}(super.transformRequest(a,b,c,d))}}},72221:(a,b,c)=>{c.d(b,{LW:()=>k,S$:()=>n,Ub:()=>i,mU:()=>o,n:()=>j,r3:()=>l,uQ:()=>m,x2:()=>g});let d=/<tool>\s*([\s\S]*?)\s*<\/tool>/g,e=/<tool_call(?:\s+[^>]*)?\s*>\s*([\s\S]*?)\s*<\/tool_call>/g;function f(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function g(a){if(!Array.isArray(a))return[];let b=[],c=new Set;for(let d of a){let a=f(d),e=f(a?.function),g="string"==typeof e?.name?e.name.trim():"";!g||c.has(g)||(c.add(g),b.push({original:g,normalized:h(g)}))}return b}function h(a){return a.toLowerCase().replace(/[^a-z0-9]/g,"")}function i(a,b){if(0===b.length)return a;let c=null,d=0;for(let e of b){let b=function(a,b){if(a===b.original)return 1;let c=h(a);if(!c||!b.normalized)return 0;if(c===b.normalized)return .98;let d=Math.min(c.length,b.normalized.length),e=Math.max(c.length,b.normalized.length);if(d>=4&&(c.includes(b.normalized)||b.normalized.includes(c)))return .86-(e-d)/Math.max(e,1)/4;let f=1-function(a,b){if(a===b)return 0;if(!a)return b.length;if(!b)return a.length;let c=Array.from({length:b.length+1},(a,b)=>b),d=Array(b.length+1);for(let e=1;e<=a.length;e+=1){d[0]=e;for(let f=1;f<=b.length;f+=1){let g=+(a[e-1]!==b[f-1]);d[f]=Math.min(d[f-1]+1,c[f]+1,c[f-1]+g)}let f=c;c=d,d=f}return c[b.length]}(c,b.normalized)/Math.max(e,1);return f>=.72?f:0}(a,e);!c||b>c.score?(d=c?.score??0,c={name:e.original,score:b}):b>d&&(d=b)}return!c||c.score<.72||c.score<.98&&c.score-d<.08?null:c.name}function j(a){let b=a.trim().replace(/^```(?:json|javascript|js|python)?\s*/i,"").replace(/\s*```$/i,"").trim();for(let a of[b,(function(a){let b="",c=!1,d=!1,e="",f=()=>{"True"===e?b+="true":"False"===e?b+="false":"None"===e?b+="null":b+=e,e=""};for(let g of a){if(d){e&&f(),b+=g,d=!1;continue}if("\\"===g){e&&f(),b+=g,d=c;continue}if('"'===g){e&&f(),c=!c,b+=g;continue}if(!c&&/[A-Za-z]/.test(g)){e+=g;continue}e&&f(),b+=g}return e&&f(),b})(function(a){let b="",c=!1,d=!1,e=!1;for(let f of a){if(e){b+='"'===f&&c?'\\"':f,e=!1;continue}if("\\"===f){b+=f,e=!0;continue}if('"'===f){c?b+='\\"':(d=!d,b+=f);continue}if("'"===f&&!d){c=!c,b+='"';continue}b+=f}return b}(b)).replace(/([{,]\s*)([A-Za-z_][A-Za-z0-9_-]*)(\s*:)/g,'$1"$2"$3').replace(/,\s*([}\]])/g,"$1")])try{return f(JSON.parse(a))}catch{}return null}function k(a,b){let c=a;for(let a of[...b].sort((a,b)=>b.start-a.start)){let b=c.lastIndexOf("\n",a.start-1)+1,d=c.indexOf("\n",a.end),e=-1===d?c.length:d,f=c.slice(b,a.start),g=c.slice(a.end,e),h=""===f.trim()&&""===g.trim(),i=h?b:a.start,j=h&&-1!==d?d+1:h?e:a.end;c=`${c.slice(0,i)}${c.slice(j)}`}return c.replace(/\n{3,}/g,"\n\n").trim()}function l(a){if(void 0===a)return"{}";if("string"==typeof a){let b=j(a);return b?JSON.stringify(b):a}try{return JSON.stringify(a)}catch{return"{}"}}function m(a,b="call",c){let f,h=g(c),n=h.length>0;if("string"!=typeof a||!a.includes("<tool>")&&!a.includes("<tool_call")&&!n)return{content:a??"",toolCalls:null};let o=[],p=[];for(d.lastIndex=0;null!==(f=d.exec(a));){let a={start:f.index,end:d.lastIndex};p.push(a),o.push({raw:f[1].trim(),start:a.start,end:a.end,requireRequestedTool:!1})}for(e.lastIndex=0;null!==(f=e.exec(a));){let a={start:f.index,end:e.lastIndex};p.push(a),o.push({raw:f[1].trim(),start:a.start,end:a.end,requireRequestedTool:!1})}if(n)for(let b of function(a){let b=[],c=-1,d=0,e="",f=!1;for(let g=0;g<a.length;g+=1){let h=a[g];if(0!==d||"{"===h){if(f){f=!1;continue}if(e){"\\"===h?f=!0:h===e&&(e="");continue}if('"'===h||"'"===h){e=h;continue}if("{"===h){0===d&&(c=g),d+=1;continue}if("}"===h&&d>0&&0==(d-=1)&&c>=0){let d=a.slice(c,g+1);/[{,]\s*["']?(name|command)["']?\s*:/i.test(d)&&/[{,]\s*["']?arguments["']?\s*:/i.test(d)&&b.push({raw:d,start:c,end:g+1,requireRequestedTool:!0}),c=-1}}}return b}(a))p.some(a=>a.start<b.end&&b.start<a.end)||o.push(b);o.sort((a,b)=>a.start-b.start);let q=[],r=[];for(let a of o){let c=j(a.raw),d=c&&"string"==typeof c.name?c.name:c&&"string"==typeof c.command?c.command:null;if(!d)continue;let e=i(d,h)||(a.requireRequestedTool?null:d);if(!e||a.requireRequestedTool&&0===h.length)continue;let f=l(c?.arguments);q.push({id:`${b}_${q.length}`,type:"function",function:{name:e,arguments:f}}),r.push({start:a.start,end:a.end})}return 0===q.length?{content:a,toolCalls:null}:{content:k(a,r),toolCalls:q}}function n(a,b){let c=a.tools;if(!(Array.isArray(c)&&c.length>0))return{hasTools:!1,requestedTools:c,effectiveMessages:b};let d=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=[];for(let c of a){let a=c?.function;if(!a?.name)continue;let d="string"==typeof a.description&&a.description?a.description:"",e="";try{e=a.parameters?JSON.stringify(a.parameters):""}catch{e=""}b.push(`- ${a.name}${d?`: ${d}`:""}${e?`
|
|
350
|
+
parameters: ${e}`:""}`)}return 0===b.length?"":["You can call tools. To call a tool, reply with a single line containing a <tool> block",'with JSON: <tool>{"name": "<tool_name>", "arguments": { ... }}</tool>',"Only emit the <tool> block when you actually want to call a tool; otherwise answer normally.","","Available tools:",...b].join("\n")}(c);return{hasTools:!0,requestedTools:c,effectiveMessages:[{role:"system",content:d},...b]}}function o(a,b,c="call"){let{content:d,toolCalls:e}=m(a,`${c}-${Date.now()}`,b);return{content:d,toolCalls:e,finishReason:e?"tool_calls":"stop"}}},73483:(a,b,c)=>{c.d(b,{Gh:()=>n,IF:()=>t,O9:()=>k,OF:()=>s,WL:()=>l,bC:()=>q,f5:()=>o,lm:()=>g,oT:()=>r});var d=c(47370),e=c(78769),f=c(14170);let g={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"},h=null,i=0;async function j(){try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=(await a()).usageTokenBuffer;"number"==typeof b&&b>=0&&(h=b,i=Date.now())}catch{}}function k(a){if(!a||"object"!=typeof a)return a;let b=function(){let a=Date.now(),b=null!==h&&a-i>=3e4;if(null!==h&&!b)return h;let c=process.env.USAGE_TOKEN_BUFFER;if(void 0!==c){let b=parseInt(c,10);if(!isNaN(b)&&b>=0)return h=b,i=a,b}return(null===h||b)&&(null===h&&(h=2e3),i=a,j()),h}();if(0===b)return a;let c={...a};return void 0!==c.input_tokens&&(c.input_tokens+=b),void 0!==c.prompt_tokens&&(c.prompt_tokens+=b),void 0!==c.total_tokens?c.total_tokens+=b:void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens),c}function l(a,b){if(!a||"object"!=typeof a)return a;let c={...a};b===f.h.CLAUDE||b===f.h.OPENAI_RESPONSES?(void 0!==c.prompt_tokens&&void 0===c.input_tokens&&(c.input_tokens=c.prompt_tokens),void 0!==c.completion_tokens&&void 0===c.output_tokens&&(c.output_tokens=c.completion_tokens)):(void 0!==c.input_tokens&&void 0===c.prompt_tokens&&(c.prompt_tokens=c.input_tokens),void 0!==c.output_tokens&&void 0===c.completion_tokens&&(c.completion_tokens=c.output_tokens),void 0===c.total_tokens&&void 0!==c.prompt_tokens&&void 0!==c.completion_tokens&&(c.total_tokens=c.prompt_tokens+c.completion_tokens));let d={[f.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[f.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[f.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},e=d[b];b===f.h.ANTIGRAVITY?e=d[f.h.GEMINI]:b===f.h.OPENAI_RESPONSE?e=d[f.h.OPENAI_RESPONSES]:e||(e=d.default);let g={};for(let a of e)void 0!==c[a]&&(g[a]=c[a]);return g}function m(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("input_tokens",a?.input_tokens),c("output_tokens",a?.output_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),0===Object.keys(b).length)?null:b}function n(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function o(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage){let b=a.message.usage,c=b.input_tokens||b.prompt_tokens||0,d=b.cache_read_input_tokens||0,e=b.cache_creation_input_tokens||0;if(c>0||d>0||e>0)return m({prompt_tokens:c+d+e,completion_tokens:b.output_tokens||b.completion_tokens||0,input_tokens:c+d+e,output_tokens:b.output_tokens||b.completion_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage){let b=a.usage.input_tokens||0,c=a.usage.cache_read_input_tokens||0,d=a.usage.cache_creation_input_tokens||0;return m({prompt_tokens:b+c+d,completion_tokens:a.usage.output_tokens||0,input_tokens:b+c+d,output_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens})}if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage;return m({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:b.input_tokens_details?.cached_tokens??b.prompt_tokens_details?.cached_tokens??b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens,reasoning_tokens:b.output_tokens_details?.reasoning_tokens??b.completion_tokens_details?.reasoning_tokens??b.reasoning_tokens})}if(a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.prompt_tokens||void 0!==a.usage.input_tokens))return m({prompt_tokens:a.usage.prompt_tokens??a.usage.input_tokens??0,completion_tokens:a.usage.completion_tokens??a.usage.output_tokens??0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens??a.usage.input_tokens_details?.cached_tokens??a.usage.prompt_cache_hit_tokens??a.usage.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens??a.usage.output_tokens_details?.reasoning_tokens??a.usage.reasoning_tokens});let b=a.usageMetadata||a.response?.usageMetadata;if(b&&"object"==typeof b)return m({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount});if(!0===a.done&&"number"==typeof a.prompt_eval_count){let b=a.prompt_eval_count||0,c=a.eval_count||0;return m({prompt_tokens:b,completion_tokens:c,total_tokens:b+c})}return null}function p(a){if(!a||"string"!=typeof a)return 0;let b=a.match(/[\u3000-\u9fff\uf900-\ufaff\u{20000}-\u{2fa1f}]/gu);return(b?b.length:0)+Math.ceil(1.3*a.replace(/[\u3000-\u9fff\uf900-\ufaff]/g," ").split(/(\s+|[^\w\s]|(?<=[a-z])(?=[A-Z]))/).filter(a=>a&&a.trim().length>0).length)}function q(a){if(!a||"object"!=typeof a)return 0;try{let b=0,c=0;if(a.tools&&Array.isArray(a.tools)){let d=JSON.stringify(a.tools);b=Math.ceil(d.length/6);let{tools:e,...f}=a;c=p(JSON.stringify(f))}else c=p(JSON.stringify(a));return c+b}catch(a){return 0}}function r(a){return!a||a<=0?0:Math.max(1,Math.ceil(a/3.5))}function s(a,b,c=f.h.OPENAI){var d,e;return d=q(a),e=r(b),c===f.h.CLAUDE?k({input_tokens:d,output_tokens:e,estimated:!0}):k({prompt_tokens:d,completion_tokens:e,total_tokens:d+e,estimated:!0})}function t(a,b,c=null,f=null,h=null){if(!b||"object"!=typeof b)return;let i=a?.toUpperCase()||"UNKNOWN",j=(0,e.jf)(b),k=(0,e.eh)(b),l="string"==typeof f?f:void 0,m=l?l.slice(0,8)+"...":"unknown",n=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${g.green}[USAGE] ${i} | in=${j} | out=${k} | account=${m}${g.reset}`;b.estimated&&(n+=` ${g.yellow}(estimated)${g.reset}`);let o=(0,e.rO)(b);o&&(n+=` | cache_read=${o}`);let p=(0,e.I8)(b);p&&(n+=` | cache_create=${p}`);let q=b.reasoning_tokens;q&&(n+=` | reasoning=${q}`),console.log(n),(0,d.E5)({model:"string"==typeof c?c:void 0,provider:"string"==typeof a?a:void 0,connectionId:l,tokens:{input:j,output:k,cacheRead:o||0,cacheCreation:p||0,reasoning:q||0},status:"200 OK"}).catch(()=>{})}},73870:(a,b,c)=>{c.d(b,{w0:()=>o});var d=c(89419),e=c(86935),f=c(97510),g=c(61408);let h=new Map,i=["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/generative-language.retriever"];function j(a){try{return JSON.parse(a)}catch{throw Error("Vertex AI requires a valid Service Account JSON as the API key")}}function k(a){if(!a||"string"!=typeof a)return!1;try{let b=JSON.parse(a);return!!b&&"object"==typeof b&&!Array.isArray(b)}catch{return!1}}async function l(a){if(!a.client_email||!a.private_key)throw Error("Service Account JSON is missing required fields (client_email or private_key)");let b=a.client_email,c=h.get(b);if(c&&Date.now()<c.expiresAt-6e4)return c.token;let f=await (0,d.Lf)(a.private_key,"RS256"),g=Math.floor(Date.now()/1e3),j=await new e.P({iss:a.client_email,sub:a.client_email,aud:"https://oauth2.googleapis.com/token",iat:g,exp:g+3600,scope:i.join(" ")}).setProtectedHeader({alg:"RS256",kid:a.private_key_id}).sign(f),k=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:j})});if(!k.ok){let a=await k.text();throw Error(`Failed to exchange JWT for Vertex access token: ${k.status} ${a}`)}let l=(await k.json()).access_token;if(!l)throw Error("Vertex AI token exchange succeeded but no access_token found");return h.set(b,{token:l,expiresAt:(g+3600)*1e3}),l}let m=new Set(["claude-3-5-sonnet","claude-3-opus","claude-3-haiku","deepseek-v3","deepseek-v3.2","deepseek-v4","deepseek-deepseek-r1","qwen3-next-80b","qwen3.6-","llama-3.1","mistral-","glm-5","glm-5.1","meta/llama"]);function n(a){let b=a.toLowerCase();return[...m].some(a=>b.startsWith(a))}class o extends f.Hv{constructor(){super("vertex",g.xq.vertex)}async execute(a){let{credentials:b,log:c}=a;if("string"==typeof b.apiKey&&(b.apiKey=b.apiKey.trim()),b.apiKey&&!b.accessToken&&k(b.apiKey))try{let a=j(b.apiKey);b.accessToken=await l(a)}catch(a){throw c?.error?.("VERTEX",`Failed to generate JWT token: ${a.message}`),a}return super.execute(a)}buildUrl(a,b,c=0,d=null){var e;if("string"==typeof(e=d?.apiKey)&&e.trim().length>0&&!k(e)&&!d?.accessToken){let c=encodeURIComponent(String(d.apiKey).trim());return n(a)?`https://aiplatform.googleapis.com/v1/publishers/openapi/chat/completions?key=${c}`:`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse&":"generateContent?"}key=${c}`}let f=d?.providerSpecificData?.region||"us-central1",g="unknown-project";if(d?.apiKey)try{let a=j(d.apiKey);a.project_id&&(g=a.project_id)}catch{}return n(a)?`https://aiplatform.googleapis.com/v1/projects/${g}/locations/global/endpoints/openapi/chat/completions`:`https://aiplatform.googleapis.com/v1/projects/${g}/locations/${f}/publishers/google/models/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}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}}},74051:(a,b,c)=>{c.d(b,{S:()=>f});var d=c(98946);class e{constructor(a={}){this.sessions=new Map,this.idleTtlMs=a.idleTtlMs??3e5,this.maxSessions=a.maxSessions??100}acquire(a){this.evictExpired();let b=this.sessions.get(a);if(b&&"awaiting_tool_result"===b.state)return this.clearIdleTimer(b),b.state="running",b.lastActivityTs=Date.now(),b}open(a,b,c,d){let e=this.sessions.get(a);e&&this.close(e);let f={conversationId:a,h2Client:b,h2Req:c,blobStore:d,pendingToolCalls:new Map,state:"running",lastActivityTs:Date.now()};return this.sessions.set(a,f),this.attachCloseHandlers(f),this.enforceMaxSessions(),f}release(a,b){if(a.lastActivityTs=Date.now(),"awaiting_tool_result"===b){a.state="awaiting_tool_result",this.armIdleTimer(a);return}this.close(a)}close(a){if("closed"!==a.state){a.state="closed",this.clearIdleTimer(a);try{a.h2Req.close()}catch{}try{a.h2Client.close()}catch{}a.pendingToolCalls.clear(),this.sessions.delete(a.conversationId)}}sendToolResult(a,b,c,e){let f=a.pendingToolCalls.get(b);if(!f)return!1;try{return a.h2Req.write((0,d.vK)(f.execMsgId,f.execId,c,e)),a.pendingToolCalls.delete(b),a.lastActivityTs=Date.now(),!0}catch{return!1}}evictExpired(){let a=Date.now();for(let b of this.sessions.values())a-b.lastActivityTs>this.idleTtlMs&&this.close(b)}armIdleTimer(a){this.clearIdleTimer(a),a.idleTimer=setTimeout(()=>this.close(a),this.idleTtlMs),a.idleTimer.unref?.()}clearIdleTimer(a){a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=void 0)}attachCloseHandlers(a){let b=()=>this.close(a);a.h2Req.once?.("close",b),a.h2Req.once?.("error",b),a.h2Client.once?.("close",b),a.h2Client.once?.("error",b)}enforceMaxSessions(){if(this.sessions.size<=this.maxSessions)return;let a=Array.from(this.sessions.values()).sort((a,b)=>a.lastActivityTs-b.lastActivityTs)[0];a&&this.close(a)}size(){return this.sessions.size}has(a){return this.sessions.has(a)}}let f=new e},74184:(a,b,c)=>{c.d(b,{As:()=>E});var d=c(4573);let e={browser:null,contexts:new Map,pendingContexts:new Map,launching:null,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 f(){if(e.cloakLaunchResolved)return e.cloakLaunch;e.cloakLaunchResolved=!0;try{e.cloakLaunch=(await import("cloakbrowser")).launch??null}catch{e.cloakLaunch=null}return e.cloakLaunch}function g(){e.idleTimer&&clearTimeout(e.idleTimer),e.idleTimer=setTimeout(()=>{m("idle-timeout")},3e5),e.idleTimer.unref?.()}async function h(a,b){try{let d=b?.resolveProxy??(async a=>{let{resolveProxyForProvider:b}=await c.e(1676).then(c.bind(c,51676));return b(a)}),e=await d(a);if(!e?.host)return;let f="socks5"===e.type?"socks5":"http",g={server:`${f}://${e.host}:${e.port}`};return e.username&&(g.username=String(e.username),g.password=null==e.password?"":String(e.password)),g}catch(a){console.warn("[BrowserPool] Failed to resolve proxy from DB:",a);return}}async function i(){if(e.browser)return e.browser;if(e.launching)return e.launching;e.launching=(async()=>{let a,b=await f();if(b)a=await b({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage"]});else{let{chromium:b}=await Promise.resolve().then(c.bind(c,83237));a=await b.launch({headless:!0,args:["--no-sandbox","--disable-dev-shm-usage","--disable-blink-features=AutomationControlled"]})}return e.browser=a,e.launching=null,e.metrics.browserLaunches++,a})();try{return await e.launching}catch(a){throw e.launching=null,e.metrics.browserLaunchFailures++,a}}function j(a,b){b&&e.metrics.contextCreateFailures++,e.pendingContexts.delete(a)}async function k(a,b){let c;if(void 0!==(c=process.env.OMNIROUTE_BROWSER_POOL)&&("off"===c||"0"===c||"false"===c))throw Error("browserPool: OMNIROUTE_BROWSER_POOL=off — context requested but pool is disabled");let d=e.contexts.get(a);if(d)return d.lastUsed=Date.now(),e.lastActivity=Date.now(),e.metrics.contextsReused++,g(),d;let f=e.pendingContexts.get(a);if(f)return f;let k=(async()=>{let[c,d]=await Promise.all([i(),h(a)]),f=null!==e.cloakLaunch,j=await c.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},...d?{proxy:d}:{}});if(b.cookieString){var k,l;let a=(k=b.cookieString,l=b.cookieDomain,k.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(),d=a.slice(b+1).trim();return c&&d?{name:c,value:d,domain:l.startsWith(".")?l:`.${l}`,path:"/",expires:-1,httpOnly:!1,secure:!0,sameSite:"Lax"}:null}).filter(Boolean));a.length>0&&await j.addCookies(a)}let n=null;if(b.warmupUrl)try{n=await j.newPage(),await n.goto(b.warmupUrl,{waitUntil:"domcontentloaded",timeout:3e4}),await new Promise(a=>setTimeout(a,1500))}catch(a){try{await n?.close()}catch{}n=null}if(e.browser!==c)throw await j.close().catch(()=>{}),n&&await n.close().catch(()=>{}),Error("Pool shut down during context creation");let o={id:a,context:j,warmupPage:n,lastUsed:Date.now(),isStealth:f};return e.contexts.set(a,o),e.metrics.contextsCreated++,e.lastActivity=Date.now(),g(),e.evictTimer&&clearInterval(e.evictTimer),e.evictTimer=setInterval(()=>(function(){let a=Date.now();for(let[b,c]of e.contexts)a-c.lastUsed>6e5&&(console.log("[BrowserPool] Evicted stale context:",b,"(idle",((a-c.lastUsed)/1e3).toFixed(0)+"s)"),e.contexts.delete(b),e.metrics.contextsEvicted++,c.context.close().catch(()=>{}));0!==e.contexts.size||e.launching||m("all-contexts-evicted")})(),6e4),e.evictTimer.unref?.(),o})();return e.pendingContexts.set(a,k),k.then(()=>j(a,!1)).catch(()=>j(a,!0)),k}async function l(a){return a.context.newPage()}async function m(a){for(let[b,c]of(e.metrics.shutdowns++,e.metrics.lastShutdownReason=a,e.idleTimer&&(clearTimeout(e.idleTimer),e.idleTimer=null),e.evictTimer&&(clearInterval(e.evictTimer),e.evictTimer=null),e.pendingContexts.clear(),e.contexts)){try{await c.context.close()}catch{}e.contexts.delete(b)}if(e.browser){try{await e.browser.close()}catch{}e.browser=null}e.lastActivity=Date.now()}async function n(a){let b={};for(let[c,d]of Object.entries(a.headers()))b[c]=d;let c=await a.body();return{status:a.status(),headers:b,body:d.Buffer.from(c)}}var o=c(58643),p=c(43659);let q=new Map;function r(a){let b=q.get(a);return b&&Date.now()<b.expiresAt?b.cookieString:(q.delete(a),null)}function s(a,b,c){q.set(a,{cookieString:b,expiresAt:Date.now()+(c??3e5),domain:a})}let t=new Map;function u(a,b){return new Promise((c,d)=>{if(b?.aborted)return d(new DOMException("Aborted","AbortError"));let e=()=>{clearTimeout(f),d(new DOMException("Aborted","AbortError"))},f=setTimeout(()=>{b?.removeEventListener("abort",e),c()},a);b?.addEventListener("abort",e,{once:!0})}).catch(a=>{if(a instanceof DOMException&&"AbortError"===a.name)throw a})}async function v(a,b){return b?{key:a,acquired:!0}:{key:`${a}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,acquired:!1}}async function w(a){let b=Date.now(),{poolKey:c,chatUrl:e,chatPageUrl:f,userMessage:g,cookieString:h,cookieDomain:i,chatUrlMatchDomain:j,userAgent:m,locale:o,timezone:q,inputSelector:r,submitButtonSelector:s,postSubmitWaitMs:t=15e3,signal:w,reuseContext:x=!0}=a,{key:y,acquired:z}=await v(c,x),A=Date.now(),B=await k(y,{cookieDomain:i||j,cookieString:h||null,warmupUrl:f,userAgent:m,locale:o,timezone:q}),C=Date.now()-A,D=await l(B);try{let a,c=Date.now();await D.goto(f,{waitUntil:"domcontentloaded",timeout:6e4,signal:w??void 0}),await u(2500,w);let h=Date.now()-c,i=D.locator(r).first();await i.waitFor({state:"visible",timeout:1e4,signal:w??void 0}),await i.fill(g),await u(800,w),Date.now();let k=D.waitForResponse(a=>"POST"===a.request().method()&&function(a,b,c){let d,e;if(a===c)return!0;try{d=new URL(a),e=new URL(c)}catch{return!1}if(!d.host.endsWith(b))return!1;let f=e.pathname.split("/").filter(Boolean),g=d.pathname.split("/").filter(Boolean);if(f.length<2||g.length!==f.length)return!1;let h=1;for(let a=0;a<f.length;a++)if(f[a]!==g[a]){if("PLACEHOLDER"===f[a]&&h>0){h--;continue}return!1}return!0}(a.url(),j,e),{timeout:3e4}),l=w?new Promise((b,c)=>{if(w.aborted)return c(new DOMException("Aborted","AbortError"));a=()=>c(new DOMException("Aborted","AbortError")),w.addEventListener("abort",a,{once:!0})}):null;if(s){let a=D.locator(s).first();if(await a.count()>0)try{await a.click({timeout:2e3})}catch{await D.keyboard.press("Enter")}else await D.keyboard.press("Enter")}else await D.keyboard.press("Enter");let m=Date.now(),o=l?await Promise.race([k,l]).catch(()=>null):await k.catch(()=>null);w&&a&&w.removeEventListener("abort",a),o?await u(Math.min(t,3e4),w):await u(t,w);let p=Date.now()-m,q=0,v=null,x=d.Buffer.alloc(0);if(o){let a=await n(o);a.body.length>0xa00000?(x=d.Buffer.from(JSON.stringify({error:{message:"Response too large",type:"upstream_error"}})),q=502,v="application/json"):(q=a.status,v=a.headers["content-type"]||null,x=a.body)}return{status:q,contentType:v,body:x,isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:h,submitMs:p,captureResponseMs:p,totalMs:Date.now()-b}}}catch(c){let a=c instanceof Error?c.message:String(c);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`browserBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:B.isStealth,timing:{acquireContextMs:C,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-b}}}finally{if(await D.close(),!z)try{await B.context.close()}catch{}}}async function x(a){let b,c=Date.now(),{chatUrl:e,userMessage:f,cookieString:g,cookieDomain:h,chatUrlMatchDomain:i,signal:j}=a,k={"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:"text/event-stream, application/json, text/plain, */*","Accept-Language":"en-US,en;q=0.9","Content-Type":"application/json",Origin:"duckduckgo.com"===i?"https://duckduckgo.com":`https://${i}`,Referer:"duckduckgo.com"===i?"https://duckduckgo.com/":`https://${i}/`,"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","Sec-Ch-Ua":'"Chromium";v="149", "Google Chrome";v="149", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',Priority:"u=1, i"};g&&(k.Cookie=g),b=new URL(e).hostname.includes("duckduckgo")?JSON.stringify({model:"gpt-4o-mini",messages:[{role:"user",content:f}]}):JSON.stringify({messages:[{role:"user",content:f}]});try{let a=Date.now();if(!o.A.available)return{status:501,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"httpBackedChat unavailable: wreq-js (TLS client) not installed",type:"configuration_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:Date.now()-c,captureResponseMs:0,totalMs:Date.now()-c}};let f=await o.A.fetch(e,{method:"POST",headers:k,body:b,signal:j??void 0}),g=Date.now()-a,h=f.headers.get("content-length");if(h&&parseInt(h,10)>0xa00000)throw Error("Response too large");let i=d.Buffer.from(await f.text()),l=f.status,m=f.headers.get("content-type")||"text/event-stream";return{status:l,contentType:m,body:i,isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:g,captureResponseMs:0,totalMs:Date.now()-c}}}catch(b){if(b instanceof DOMException&&"AbortError"===b.name)throw b;let a=b instanceof Error?b.message:String(b);return{status:502,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:(0,p.sanitizeErrorMessage)(`httpBackedChat failed: ${a}`),type:"upstream_error"}})),isStealth:!0,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:Date.now()-c}}}}async function y(a,b,c){let d=Date.now()+5e3;for(;Date.now()<d;){if(c?.aborted)throw new DOMException("Aborted","AbortError");let e=(await a.cookies(b)).map(a=>`${a.name}=${a.value}`).join("; ");if(e)return e;let f=d-Date.now();if(f<=0)break;await u(Math.min(500,f),c)}return null}async function z(a,b,c,d){let e=await l(a);try{return await e.goto(b,{waitUntil:"domcontentloaded",timeout:6e4,signal:d??void 0}),await y(a.context,c,d)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;return null}finally{await e.close().catch(()=>{})}}async function A(a,b,c,d){let e=r(c);if(e)return e;let f=t.get(a);if(f)return f;let g=B(a,b,c,d);return t.set(a,g),g.finally(()=>t.delete(a)),g}async function B(a,b,c,d){let e,{key:f}=await v(a,!0);try{e=await k(f,{cookieDomain:c,cookieString:null,warmupUrl:b})}catch{return null}let g=await z(e,b,c,d);return g&&s(c,g),g}async function C(a){if(!a.cookieDomain)return null;let b=process.env.OMNIROUTE_BROWSER_POOL;if("off"===b||"0"===b||"false"===b)return null;try{let{key:b}=await v(a.poolKey,!0);return await k(b,{cookieDomain:a.cookieDomain,cookieString:null})}catch{return null}}async function D(a,b,c,d,e){if(e)try{let a=await e;if(a){let e=await z(a,b,c,d);if(e)return s(c,e),e}}catch{}return A(a,b,c,d)}async function E(a){let b=a.signal?null:new AbortController,c=a.signal??b?.signal??null;b&&setTimeout(()=>b.abort(),45e3);let e=C(a);try{var f;let b=await x({...a,signal:c??void 0});if(b.status>=200&&b.status<300||!((f=b.status)>=400&&501!==f))return b;let d=null;if(a.cookieDomain){if(d=r(a.cookieDomain)){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b;d=null}if(!d&&(d=await D(a.poolKey,a.chatPageUrl,a.cookieDomain,c,e))){let b=await x({...a,cookieString:d,signal:c??void 0});if(b.status>=200&&b.status<300)return b}}let g=d?{...a,cookieString:d,signal:c??void 0}:{...a,signal:c??void 0},h=await w(g);return h.status>=200&&h.status,h}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return{status:504,contentType:"application/json",body:d.Buffer.from(JSON.stringify({error:{message:"tryBackedChat timed out",type:"timeout_error"}})),isStealth:!1,timing:{acquireContextMs:0,navigateMs:0,submitMs:0,captureResponseMs:0,totalMs:0}};throw a}}},74199:(a,b,c)=>{c.d(b,{R:()=>d});let d=()=>!1},74350:(a,b,c)=>{c.d(b,{L:()=>I});var d=c(97510),e=c(61408),f=c(8590),g=c(89625),h=c(55511);let i=new Map,j=new Map;async function k(a={}){let b=(a.credentials||"").trim();if(!b)throw Error("Missing GigaChat credentials");let c=(a.authUrl||"https://ngw.devices.sberbank.ru:9443/api/v2/oauth").trim(),d=(a.scope||"GIGACHAT_API_PERS").trim(),e=`${c}::${d}::${b}`,f=i.get(e);if(function(a){if(!a?.accessToken||!a?.expiresAt)return!1;let b=new Date(a.expiresAt).getTime();return Number.isFinite(b)&&b-Date.now()>6e4}(f))return f;let g=j.get(e);if(g)return g;let l=(async()=>{let f=await fetch(c,{method:"POST",headers:{Authorization:`Basic ${b}`,RqUID:(0,h.randomUUID)(),"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({scope:d}).toString(),signal:a.signal});if(!f.ok){let a=await f.text();throw Error(`GigaChat token request failed: ${f.status} ${a}`.trim())}let g=await f.json(),j="string"==typeof g.tok?g.tok:"string"==typeof g.access_token?g.access_token:"";if(!j)throw Error("GigaChat token response missing access token");let k={accessToken:j,expiresAt:function(a){if("number"==typeof a&&Number.isFinite(a))return new Date(a).toISOString();if("string"==typeof a&&a.trim().length>0){let b=Number(a);if(Number.isFinite(b))return new Date(b).toISOString();let c=Date.parse(a);if(Number.isFinite(c))return new Date(c).toISOString()}return new Date(Date.now()+18e5).toISOString()}(g.exp??g.expires_at)};return i.set(e,k),k})();j.set(e,l);try{return await l}finally{j.delete(e)}}var l=c(36081),m=c(57247),n=c(93462),o=c(56452),p=c(78340),q=c(57647),r=c(57441),s=c(9427);let t="/api/v2",u="/genai/llmgw/chat/completions/",v="https://app.datarobot.com",w="https://example-resource.services.ai.azure.com/openai/v1",x="https://ca-tor.ml.cloud.ibm.com/ml/gateway/v1",y="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",z="https://example-aicore.cfapps.eu10.hana.ondemand.com/v2/lm/deployments/example-deployment";var A=c(74361),B=c(40615);let C=()=>!1;var D=c(96303),E=c(4928),F=c(13568);function G(a,b){let c=null;if(b&&"object"==typeof b&&!Array.isArray(b))c=b;else if("string"==typeof b)try{let a=JSON.parse(b);a&&"object"==typeof a&&!Array.isArray(a)&&(c=a)}catch{}if(c)for(let[b,d]of Object.entries(c)){if("string"!=typeof b||"string"!=typeof d||C(b)||/[\r\n\0]/.test(b)||/[\r\n]/.test(d))continue;let c=b.toLowerCase();for(let b of Object.keys(a))b.toLowerCase()===c&&delete a[b];a[b]=d}}function H(a){let b=(0,s.q)(a);return b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/chat")?b:b.endsWith("/v1")?`${b}/chat/completions`:`${b}/v1/chat/completions`}class I extends d.Hv{constructor(a){super(a,e.xq[a]||e.xq.openai);const b=(0,l.qs)(a);b?.poolConfig&&(this.poolConfig=b.poolConfig)}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=d?.providerSpecificData,b=(a?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if(c)return`${b}${c}`;let e=a?._omnirouteForceResponsesUpstream===!0||"responses"===(0,q.J9)(this.provider,a)?"/responses":"/chat/completions";return`${b}${e}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=d?.providerSpecificData,b=a?.baseUrl||"https://api.anthropic.com/v1",c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null;if((0,q.GK)(this.provider))return(0,g.tI)(b,c||g.np);let e=b.replace(/\/$/,"");return`${e}${c||"/messages"}`}switch(this.provider){case"openai":{let b="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,c=b?H(b):this.config.baseUrl;if("openai-responses"===(0,m.ux)("openai",a))return c.replace(/\/chat\/completions\/?$/,"/responses");return c}case"bailian-coding-plan":{let a;return h=this.resolveBaseUrl(d),(a=(0,s.q)(h).replace(/\?beta=true$/,"")).endsWith("/messages")?a:`${a}/messages`}case"heroku":case"databricks":case"snowflake":case"gigachat":return void this.resolveBaseUrl(d);case"datarobot":{let a;var e,f,h,i=this.resolveBaseUrl(d);return(a=(0,s.q)(i||v)||v).endsWith("/chat/completions")?a:/\/api\/v2\/deployments\/[^/]+$/i.test(a)?`${a}/chat/completions`:/\/api\/v2\/genai\/llmgw$/i.test(a)?`${a}/chat/completions/`:/\/api\/v2\/genai\/llmgw\/chat$/i.test(a)?`${a}/completions/`:a.includes(t)?`${a}${u}`:`${a}${t}${u}`}case"azure-ai":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){let c=function(a){let b=(0,s.q)(a||w);if(!b)return w;if(b.endsWith("/chat/completions")||b.endsWith("/responses")||b.endsWith("/models"))return b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(b.endsWith("/openai/v1")||b.endsWith("/v1"))return b;if(b.endsWith("/openai"))return`${b}/v1`;let c=new URL(b);return(c.hostname.endsWith(".services.ai.azure.com")||c.hostname.endsWith(".openai.azure.com"))&&(!c.pathname||"/"===c.pathname)?(c.pathname="/openai/v1",(0,s.o)(c.toString())):b}(a);return`${c}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"watsonx":return e=this.resolveBaseUrl(d),`${function(a){let b=(0,s.q)(a||x);if(!b)return x;let c=b.replace(/\/(?:chat\/completions|completions|embeddings|models)$/i,"");if(c.endsWith("/ml/gateway/v1"))return c;if(c.endsWith("/ml/gateway"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/ml/gateway")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/ml/gateway/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(e)}/chat/completions`;case"oci":{let a=d?.providerSpecificData?._omnirouteForceResponsesUpstream===!0||d?.providerSpecificData?.apiType==="responses"?"responses":"chat";return function(a,b="chat"){return function(a,b="chat"){return`${function(a){let b=(0,s.q)(a||y);if(!b)return y;let c=b.replace(/\/(?:chat\/completions|responses|models)$/i,"");if(c.endsWith("/openai/v1"))return c;if(c.endsWith("/openai"))return`${c}/v1`;try{let a=new URL(c);return a.pathname&&"/"!==a.pathname?a.pathname.endsWith("/openai")&&(a.pathname=`${a.pathname}/v1`):a.pathname="/openai/v1",a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(a)}/${"responses"===b?"responses":"chat/completions"}`}(a,b)}(this.resolveBaseUrl(d),a)}case"sap":{let a;return(a=function(a){let b=(0,s.q)(a||z);if(!b)return z;var c=b.replace(/\/chat\/completions$/i,"");try{let a=new URL(c);return a.search="",a.hash="",(0,s.o)(a.toString())}catch{return c}}(this.resolveBaseUrl(d))).endsWith("/chat/completions")?a:`${a}/chat/completions`}case"xiaomi-mimo":{let a;return f=this.resolveBaseUrl(d),a=(0,s.q)(f).replace(/\/chat\/completions$/,""),`${a}/chat/completions`}case"maritalk":{let a=this.resolveBaseUrl(d);return(0,A.$D)(a)}case"siliconflow":return H(this.resolveBaseUrl(d));case"ollama-local":case"llama-cpp":case"lm-studio":case"modal":case"reka":case"vllm":case"lemonade":case"llamafile":case"triton":case"docker-model-runner":case"xinference":case"oobabooga":{let a=B.HP[this.provider]?.localDefault;return H(d?.providerSpecificData?.baseUrl||a||this.config.baseUrl)}case"zai":case"glm-coding-apikey":{let a=this.resolveBaseUrl(d);return`${a}?beta=true`}case"claude":case"glm":case"glmt":case"kimi-coding":case"minimax":case"minimax-cn":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;case"qwen":{let a=d?.providerSpecificData?.resourceUrl;return`https://${a||"portal.qwen.ai"}/v1/chat/completions`}default:{let a="string"==typeof d?.providerSpecificData?.baseUrl&&d.providerSpecificData.baseUrl.trim()?d.providerSpecificData.baseUrl:null,b=!this.config.format||"openai"===this.config.format;if(a&&b)return H(a);let c=this.config.baseUrl,e=(0,l.qs)(this.provider);return e?.urlSuffix?`${c}${e.urlSuffix}`:c}}}buildHeaders(a,b=!0,c){let{headers:d,effectiveKey:e}=this.buildHeadersPreamble(a,b);switch(this.provider){case"gemini":e?d["x-goog-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"snowflake":{let b=e||a.accessToken||"",c=b.startsWith("pat/");d.Authorization=`Bearer ${c?b.slice(4):b}`,d["X-Snowflake-Authorization-Token-Type"]=c?"PROGRAMMATIC_ACCESS_TOKEN":"KEYPAIR_JWT";break}case"gigachat":d.Authorization=`Bearer ${a.accessToken||e}`;break;case"clarifai":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"azure-ai":(e||a.accessToken)&&(d["api-key"]=e||a.accessToken),delete d.Authorization;break;case"oci":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`);let c=a.projectId||a?.providerSpecificData?.projectId||a?.providerSpecificData?.project;c&&(d["OpenAI-Project"]=c);break}case"sap":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`),d["AI-Resource-Group"]=function(a,b="default"){for(let b of[a?.resourceGroup,a?.aiResourceGroup,a?.resource_group])if("string"==typeof b&&b.trim())return b.trim();return b}(a?.providerSpecificData);break}case"reka":{let b=e||a.accessToken;b&&(d.Authorization=`Bearer ${b}`,d["X-Api-Key"]=b);break}case"maritalk":{let b=e||a.accessToken;b&&(d.Authorization=`Key ${b}`);break}case"claude":case"anthropic":e?d["x-api-key"]=e:d.Authorization=`Bearer ${a.accessToken}`;break;case"glm":case"glmt":case"kimi-coding":case"bailian-coding-plan":case"kimi-coding-apikey":case"zai":case"glm-coding-apikey":d["x-api-key"]=e||a.accessToken;break;case"cline":Object.assign(d,(0,E.w)(e||a.accessToken));break;default:if((0,q.GK)(this.provider)){let c=(0,D.RG)(a?.providerSpecificData),d=(0,g.mu)(e||a.accessToken||"",b,a?.providerSpecificData?.ccSessionId,{redactThinking:!0===c.redactThinking});return G(d,a.providerSpecificData?.customHeaders),d}if(this.provider?.startsWith?.("anthropic-compatible-"))e?d["x-api-key"]=e:a.accessToken&&(d.Authorization=`Bearer ${a.accessToken}`),e&&!d.Authorization&&!function(a){if(!a)return!0;let b=null;try{b=new URL(a).hostname}catch{try{b=new URL(`https://${a}`).hostname}catch{return!1}}return"api.anthropic.com"===b}(a?.providerSpecificData?.baseUrl||"")&&(d.Authorization=`Bearer ${e}`),Object.keys(d).some(a=>"anthropic-version"===a.toLowerCase())||(d["anthropic-version"]="2023-06-01");else{let b=(0,l.qs)(this.provider),c=b?.authHeader||"bearer",f=e||a.accessToken||b?.anonymousApiKey;f&&("x-api-key"===c?d["x-api-key"]=f:"x-goog-api-key"===c?d["x-goog-api-key"]=f:d.Authorization=`Bearer ${f}`)}}if(d.Accept=b?"text/event-stream":"application/json","qwen"===this.provider&&e)for(let a of Object.keys(d))a.toLowerCase().startsWith("x-dashscope-")&&delete d[a];if((this.provider?.startsWith?.("openai-compatible-")||this.provider?.startsWith?.("anthropic-compatible-"))&&G(d,a.providerSpecificData?.customHeaders),c){(0,F.G)(d,c);let a=c["anthropic-beta"]??c["Anthropic-Beta"]??null,b=Object.keys(d).find(a=>"anthropic-beta"===a.toLowerCase());b&&a&&(d[b]=(0,n.S9)(d[b],a))}return(0,n.Xs)(d),d}applyJsonSchemaFallback(a){if(!this.provider?.startsWith?.("openai-compatible-")||!a||"object"!=typeof a||Array.isArray(a))return a;let b=a.response_format;if(b?.type!=="json_schema"||!b.json_schema?.schema)return a;let c=JSON.stringify(b.json_schema.schema,null,2),d=`You must respond with valid JSON that strictly follows this JSON schema:
|
|
351
351
|
\`\`\`json
|
|
352
352
|
${c}
|
|
353
353
|
\`\`\`
|
|
@@ -355,7 +355,7 @@ Respond ONLY with the JSON object, no other text.`,e=Array.isArray(a.messages)?a
|
|
|
355
355
|
|
|
356
356
|
${d}`:Array.isArray(f.content)&&f.content.push({type:"text",text:`
|
|
357
357
|
|
|
358
|
-
${d}`}):e.unshift({role:"system",content:d}),{...a,messages:e,response_format:{type:"json_object"}}}defaultResponsesTextFormat(a){if(!this.provider?.startsWith?.("openai-compatible-")||!this.provider.includes("responses")||!a||"object"!=typeof a||Array.isArray(a))return a;let b=a.text;return!b||"object"!=typeof b||Array.isArray(b)||void 0!==b.format?a:{...a,text:{...b,format:{type:"text"}}}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d),f=(0,o.b)(e,this.config.requestDefaults);if(f=this.applyJsonSchemaFallback(f),(f=this.defaultResponsesTextFormat(f))&&"object"==typeof f&&!Array.isArray(f)&&("cerebras"===this.provider||"mistral"===this.provider)&&Object.prototype.hasOwnProperty.call(f,"client_metadata")){let a={...f};delete a.client_metadata,f=a}let g=(0,q.jJ)(this.provider,d?.providerSpecificData),h=f&&"object"==typeof f&&!Array.isArray(f)?(0,q.Tz)(f):"openai";if("object"==typeof f&&null!==f&&!Array.isArray(f)){if(this.provider?.startsWith?.("anthropic-compatible-")){if(Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}}else if(c&&"openai"===g&&"openai-responses"!==h){let a=f,b=void 0!==a.stream&&!0!==a.stream,c="qwen"===this.provider&&(!!a.thinking||!!a.enable_thinking);if(b||c){if(Object.prototype.hasOwnProperty.call(a,"stream_options")){let b={...a};delete b.stream_options,f=b}}else if(d?.providerSpecificData?.disableStreamOptions){if(Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}}else f={...f,stream:!0,stream_options:{...a.stream_options||{},include_usage:!0}}}else if(!c&&Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}else if(("openai-responses"===g||"openai-responses"===h)&&Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}if("openai"===g&&/^(o1|o3|o4|gpt-5)/i.test(a)&&f&&"object"==typeof f){let a=f;"max_tokens"in a&&(a.max_completion_tokens=a.max_tokens,delete a.max_tokens)}if("openrouter"===this.provider){var i;let a=(i=d?.providerSpecificData,("string"==typeof i?.preset?i.preset.trim():"")||null);a&&void 0===f.preset&&(f={...f,preset:a})}}if("qwen"===this.provider&&"object"==typeof f&&null!==f)return(0,r.i8)(f,"QwenExecutor");if("object"==typeof f&&null!==f){let b=f,c="string"==typeof b.model?b.model:a;(0,p.c)(this.provider,c,b)}if("object"==typeof f&&null!==f){let a=(0,l.qs)(this.provider);if(a?.modelIdPrefix){let b=f;"string"==typeof b.model&&([a.modelIdPrefix,...a.acceptedModelIdPrefixes??[]].some(a=>b.model.startsWith(a))||(b.model=`${a.modelIdPrefix}${b.model}`))}}return f}async refreshCredentials(a,b){if("gigachat"===this.provider){if(!a.apiKey)return null;try{return await k({credentials:a.apiKey})}catch(a){return b?.error?.("TOKEN",`gigachat refresh error: ${a.message}`),null}}if(!a.refreshToken)return null;try{return await (0,f.iD)(this.provider,a,b)}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}needsRefresh(a){if("gigachat"===this.provider){if(a.apiKey&&!a.accessToken)return!0;if(!a.expiresAt)return!1}return super.needsRefresh(a)}async execute(a){let b,c=this.getPool();if(!c)return super.execute(a);let d=c.acquire();d&&(a.upstreamExtraHeaders={...d.buildHeaders(),...a.upstreamExtraHeaders});try{b=await super.execute(a)}catch(a){throw d&&(c.reportCooldown(d),d.release()),a}if(d)try{let a=b?.response?.status;429===a?c.reportCooldown(d):a>=500?c.reportDead(d):c.reportSuccess(d)}finally{d.release()}return b}}},75582:(a,b,c)=>{
|
|
358
|
+
${d}`}):e.unshift({role:"system",content:d}),{...a,messages:e,response_format:{type:"json_object"}}}defaultResponsesTextFormat(a){if(!this.provider?.startsWith?.("openai-compatible-")||!this.provider.includes("responses")||!a||"object"!=typeof a||Array.isArray(a))return a;let b=a.text;return!b||"object"!=typeof b||Array.isArray(b)||void 0!==b.format?a:{...a,text:{...b,format:{type:"text"}}}}transformRequest(a,b,c,d){let e=super.transformRequest(a,b,c,d),f=(0,o.b)(e,this.config.requestDefaults);if(f=this.applyJsonSchemaFallback(f),(f=this.defaultResponsesTextFormat(f))&&"object"==typeof f&&!Array.isArray(f)&&("cerebras"===this.provider||"mistral"===this.provider)&&Object.prototype.hasOwnProperty.call(f,"client_metadata")){let a={...f};delete a.client_metadata,f=a}let g=(0,q.jJ)(this.provider,d?.providerSpecificData),h=f&&"object"==typeof f&&!Array.isArray(f)?(0,q.Tz)(f):"openai";if("object"==typeof f&&null!==f&&!Array.isArray(f)){if(this.provider?.startsWith?.("anthropic-compatible-")){if(Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}}else if(c&&"openai"===g&&"openai-responses"!==h){let a=f,b=void 0!==a.stream&&!0!==a.stream,c="qwen"===this.provider&&(!!a.thinking||!!a.enable_thinking);if(b||c){if(Object.prototype.hasOwnProperty.call(a,"stream_options")){let b={...a};delete b.stream_options,f=b}}else if(d?.providerSpecificData?.disableStreamOptions){if(Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}}else f={...f,stream:!0,stream_options:{...a.stream_options||{},include_usage:!0}}}else if(!c&&Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}else if(("openai-responses"===g||"openai-responses"===h)&&Object.prototype.hasOwnProperty.call(f,"stream_options")){let a={...f};delete a.stream_options,f=a}if("openai"===g&&/^(o1|o3|o4|gpt-5)/i.test(a)&&f&&"object"==typeof f){let a=f;"max_tokens"in a&&(a.max_completion_tokens=a.max_tokens,delete a.max_tokens)}if("openrouter"===this.provider){var i;let a=(i=d?.providerSpecificData,("string"==typeof i?.preset?i.preset.trim():"")||null);a&&void 0===f.preset&&(f={...f,preset:a})}}if("qwen"===this.provider&&"object"==typeof f&&null!==f)return(0,r.i8)(f,"QwenExecutor");if("object"==typeof f&&null!==f){let b=f,c="string"==typeof b.model?b.model:a;(0,p.c)(this.provider,c,b)}if("object"==typeof f&&null!==f){let a=(0,l.qs)(this.provider);if(a?.modelIdPrefix){let b=f;"string"==typeof b.model&&([a.modelIdPrefix,...a.acceptedModelIdPrefixes??[]].some(a=>b.model.startsWith(a))||(b.model=`${a.modelIdPrefix}${b.model}`))}}return f}async refreshCredentials(a,b){if("gigachat"===this.provider){if(!a.apiKey)return null;try{return await k({credentials:a.apiKey})}catch(a){return b?.error?.("TOKEN",`gigachat refresh error: ${a.message}`),null}}if(!a.refreshToken)return null;try{return await (0,f.iD)(this.provider,a,b)}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}needsRefresh(a){if("gigachat"===this.provider){if(a.apiKey&&!a.accessToken)return!0;if(!a.expiresAt)return!1}return super.needsRefresh(a)}async execute(a){let b,c=this.getPool();if(!c)return super.execute(a);let d=c.acquire();d&&(a.upstreamExtraHeaders={...d.buildHeaders(),...a.upstreamExtraHeaders});try{b=await super.execute(a)}catch(a){throw d&&(c.reportCooldown(d),d.release()),a}if(d)try{let a=b?.response?.status;429===a?c.reportCooldown(d):a>=500?c.reportDead(d):c.reportSuccess(d)}finally{d.release()}return b}}},75582:(a,b,c)=>{c.d(b,{Fs:()=>g});var d=c(97510),e=c(61408),f=c(43659);class g extends d.Hv{constructor(a){const b=a??function(){let a=process.env.NINEROUTER_HOST||"127.0.0.1",b=parseInt(process.env.NINEROUTER_PORT||String(20130),10);return`http://${a}:${b}`}();super("9router",{id:"9router",baseUrl:`${b}/v1/chat/completions`,headers:{"Content-Type":"application/json"}}),this.upstreamBaseUrl=b}buildUrl(a,b,c=0,d=null){return`${this.upstreamBaseUrl}/v1/chat/completions`}buildServiceUnavailableResponse(a){let b=(0,f.buildErrorBody)(503,a);return b.error.code="service_not_running",new Response(JSON.stringify(b),{status:503,headers:{"Content-Type":"application/json","X-Omni-Fallback-Hint":"connection_cooldown"}})}isAnthropicShape(a){if(!a||"object"!=typeof a)return!1;if(void 0!==a.system||void 0!==a.thinking||a.metadata&&"object"==typeof a.metadata&&void 0!==a.metadata.user_id)return!0;let b=a.messages;if(Array.isArray(b)&&b.length>0){let a=b[0];if(Array.isArray(a?.content))return!0}return!1}selectEndpoint(a){return this.isAnthropicShape(a)?"/v1/messages":"/v1/chat/completions"}buildHeaders(a,b=!0){let c=a?.apiKey??a?.accessToken,d={"Content-Type":"application/json"};return c&&(d.Authorization=`Bearer ${c}`),b&&(d.Accept="text/event-stream"),d}transformRequest(a,b,c,d){if(!b||"object"!=typeof b)return b;let e={...b};return e.model!==a&&(e.model=a),e}async execute(a){let b=void 0;!0;{let c=b?.state??"unknown",d=`9router is not running (state: ${c})`;return a.log?.warn?.("9ROUTER",d),{response:this.buildServiceUnavailableResponse(d),url:"",headers:{},transformedBody:null}}}async healthCheck(){let a=Date.now();try{let b=await fetch(`${this.upstreamBaseUrl}/api/health`,{signal:AbortSignal.timeout(3e3)});return{ok:b.ok,latencyMs:Date.now()-a,...!b.ok?{error:`HTTP ${b.status}`}:{}}}catch(b){return{ok:!1,latencyMs:Date.now()-a,error:b instanceof Error?b.message:String(b)}}}}},76422:(a,b,c)=>{c.d(b,{OD:()=>k});var d=c(77598),e=c(97510),f=c(43659);let g="https://amelia.chipotle.com";class h{async init(){let a=await fetch(`${g}/Amelia/api/init`,{headers:{"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",Origin:g,Referer:`${g}/Amelia/ui/chipotle/chat?embed=iframe`},redirect:"manual"});if(!a.ok)throw Error(`Amelia init failed: ${a.status}`);let b=await a.json(),c=(a.headers.getSetCookie?.()??[]).map(a=>a.split(";")[0]).join("; ");this.session={csrfToken:b.csrfToken,userId:b.user.userId,cookieHeader:c}}async connect(){if(!this.session)throw Error("Call init() first");if(null!==this.connectPromise)return this.connectPromise;this.connectPromise=this._connect();try{await this.connectPromise}finally{this.connectPromise=null}}async _connect(){let{WebSocket:a}=await Promise.resolve().then(c.bind(c,28064)),b=String((0,d.randomInt)(0,1e3)).padStart(3,"0"),e=(0,d.randomUUID)().replace(/-/g,"").slice(0,32),f=`wss://amelia.chipotle.com/Amelia/api/sock/${b}/${e}/websocket`;return new Promise((b,c)=>{let d=setTimeout(()=>c(Error("WS connect timeout")),15e3),e=new a(f,{headers:{Cookie:this.session.cookieHeader,Origin:g,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"}});e.on("open",()=>{}),e.on("message",a=>{let e=a.toString();this.handleSockJSFrame(e,b,c,d)}),e.on("error",a=>{clearTimeout(d),c(a)}),e.on("close",()=>{this.stompConnected=!1,this.ws=null}),this.ws=e})}handleSockJSFrame(a,b,c,d){if("o"===a)return void this.sendSockJS(this.buildStompConnect());if("h"!==a&&a.startsWith("a"))try{for(let e of JSON.parse(a.slice(1)))this.handleStompFrame(e,b,c,d)}catch{}}handleStompFrame(a,b,c,d){let e=a.split("\n")[0].replace(/\r$/,"");if("CONNECTED"===e){this.stompConnected=!0,this.sendSockJS(this.buildStompSubscribe(`/queue/session.${this.session.userId}`,"sub-0")),this.sendSockJS(this.buildStompSubscribe("/user/queue/session","sub-1")),clearTimeout(d),b();return}"MESSAGE"===e?this.handleStompMessage(a):"ERROR"===e&&(clearTimeout(d),c(Error(`STOMP ERROR: ${a}`)))}handleStompMessage(a){let b=a.indexOf("\0"),c=a.indexOf("\n\n");-1===c&&(c=a.indexOf("\r\n\r\n"));let d=-1!==c?"\r"===a[c+2]?4:2:0,e="";if(-1!==c&&(e=a.substring(c+d,-1!==b?b:void 0).replace(/\0$/,"")),!e)return;let f=e;try{let a=JSON.parse(e);if("message"===a.type&&a.body){let b=a.body;f=b.text||JSON.stringify(b)}else if(a.text)f=a.text;else{if(!a.message)return;f=a.message}}catch{}for(let[a,b]of this.messageCallbacks.entries())b(f),this.messageCallbacks.delete(a)}async chat(a,b=15e3,c){if(this.stompConnected||(await this.init(),await this.connect()),c?.aborted)throw new DOMException("Aborted","AbortError");let d=crypto.randomUUID();return new Promise((e,f)=>{let g=setTimeout(()=>{this.messageCallbacks.delete(d),f(Error("Response timeout"))},b),h=()=>{clearTimeout(g),this.messageCallbacks.delete(d),f(new DOMException("Aborted","AbortError"))};c?.addEventListener("abort",h,{once:!0}),this.messageCallbacks.set(d,a=>{clearTimeout(g),c?.removeEventListener("abort",h),e(a)});let i=JSON.stringify({message:a,domainCode:"chipotle",conversationId:null,type:"text"});this.sendSockJS(this.buildStompSend("/app/send",i))})}buildStompConnect(){return`CONNECT
|
|
359
359
|
accept-version:1.1,1.0
|
|
360
360
|
heart-beat:0,0
|
|
361
361
|
X-CSRF-TOKEN:${this.session.csrfToken}
|
|
@@ -372,31 +372,31 @@ content-length:${Buffer.byteLength(b)}
|
|
|
372
372
|
${b}\0`}sendSockJS(a){if(!this.ws||1!==this.ws.readyState)throw Error("WebSocket not open");this.ws.send(JSON.stringify([a]))}async close(){this.ws&&(this.ws.close(),this.ws=null),this.stompConnected=!1,this.session=null}constructor(){this.session=null,this.ws=null,this.stompConnected=!1,this.messageCallbacks=new Map,this.connectPromise=null}}let i=[];async function j(){if(i.length>0)return i.pop();let a=new h;return await a.init(),await a.connect(),a}class k extends e.Hv{constructor(){super("chipotle",{format:"openai"})}buildUrl(a,b){return`${g}/Amelia/api/chat`}buildHeaders(a){return{"Content-Type":"application/json"}}transformRequest(a,b,c){return"object"==typeof b&&null!==b?{...b,model:a}:b}async execute(a){let{model:b,stream:c,body:d,signal:e,log:g}=a,h=new TextEncoder;if(e?.aborted)return{response:new Response(h.encode(JSON.stringify({error:{message:"Request aborted",type:"abort",code:"ABORTED"}})),{status:499,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d};let k=[...d?.messages??[]].reverse().find(a=>"user"===a.role),l=k?.content??"",m=null;try{var n;m=await j(),g?.info?.("CHIPOTLE",`Sending to Pepper (model=${b})`);let f=await m.chat(l,15e3,e);n=m,i.length<5?i.push(n):n.close().catch(()=>{}),m=null;let k=`chatcmpl-${Date.now()}`,o=Math.floor(Date.now()/1e3);if(c){let e=`data: ${JSON.stringify({id:k,object:"chat.completion.chunk",created:o,model:b,choices:[{index:0,delta:{role:"assistant",content:f},finish_reason:null}]})}
|
|
373
373
|
data: ${JSON.stringify({id:k,object:"chat.completion.chunk",created:o,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]})}
|
|
374
374
|
data: [DONE]
|
|
375
|
-
`;return{response:new Response(h.encode(e),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d}}let p=JSON.stringify({id:k,object:"chat.completion",created:o,model:b,choices:[{index:0,message:{role:"assistant",content:f},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}});return{response:new Response(h.encode(p),{status:200,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d}}catch(i){m&&m.close().catch(()=>{});let e=i instanceof Error?i.message:String(i);return g?.error?.("CHIPOTLE",`Error: ${e}`),{response:new Response(h.encode(JSON.stringify({error:{message:(0,f.sanitizeErrorMessage)(e),type:"upstream_error",code:"CHIPOTLE_ERROR"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d}}}}},78095:(a,b,c)=>{"use strict";c.d(b,{$:()=>ap});var d=c(97510),e=c(61408),f=c(50954),g=c(48161),h=c(76760),i=c(51455),j=c(77598),k=c(95538),l=c(93804);let m=null,n=!1,o=Number.parseInt(process.env.OMNIROUTE_GROK_TLS_TIMEOUT_MS||"",10)||6e4,p=Number.parseInt(process.env.OMNIROUTE_GROK_TLS_GRACE_MS||"",10)||1e4;class q extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function r(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new q(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(v(c)):(e=()=>b(v(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function s(){return m||(m=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(n)return;n=!0;let a=async()=>{if(null!==m)try{let a=await m;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){m=null;let a=b instanceof Error?b.message:String(b);throw new t(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),m}class t extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function u(a,b={}){var c;let d;if(b.signal?.aborted)throw v(b.signal);let e=await s();if(b.signal?.aborted)throw v(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"chrome_146",timeoutMilliseconds:b.timeoutMs??o,followRedirects:!0,withRandomTLSExtensionOrder:!0,proxyUrl:(c=b.proxyUrl,(0,l.G)("https://grok.com",c,k.l))};if(b.stream)return await x(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??o)+p);try{d=await r(e.request(a,f),(b.timeoutMs??o)+p,b.signal??null)}catch(a){throw a instanceof q&&(m=null),a}if(b.signal?.aborted)throw v(b.signal);return{status:d.status,headers:w(d.headers),text:d.body,body:null}}function v(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function w(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function x(a,b,c,d="[DONE]",e=null,f=o+p){let k=await (0,i.mkdtemp)((0,h.join)((0,g.tmpdir)(),"grok-stream-")),l=(0,h.join)(k,`${(0,j.randomUUID)()}.ndjson`),n={...c,streamOutputPath:l,streamOutputBlockSize:1024,streamOutputEOFSymbol:d},s=!0,t=r(a.request(b,n),f,e).catch(a=>{throw s&&a instanceof q&&(m=null,s=!1),a});if(!await A(l,5e3,t)){let a=await t.catch(a=>({status:502,headers:{},body:String(a)}));return await y(l),{status:a.status,headers:w(a.headers),text:a.body,body:null}}let u=await z(l,256);if(u&&/just a moment|window\._cf_chl_opt|challenges\.cloudflare\.com|attention required|cf-chl/i.test(u))return await y(l),{status:403,headers:new Headers({"Content-Type":"text/html"}),text:u,body:null};if(u.trimStart().startsWith("<"))return await y(l),{status:502,headers:new Headers({"Content-Type":"text/html"}),text:u,body:null};let v=function(a,b,c,d=null){return new ReadableStream({async start(e){let f=await (0,i.open)(a,"r"),g=Buffer.alloc(65536),h=0,j=!1,k=!1,l=null;c.then(()=>{j=!0},a=>{l=a instanceof Error?a:Error(String(a)),j=!0});let m=()=>{k=!0};d&&(d.aborted?k=!0:d.addEventListener("abort",m,{once:!0}));let n=!1;try{for(;!k;){let{bytesRead:a}=await f.read(g,0,g.length,h);if(a>0){let c=g.subarray(0,a);h+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.substring(0,d.indexOf(b));a&&e.enqueue(Buffer.from(a,"utf8")),e.close();return}e.enqueue(Buffer.from(c))}if(j){for(;;){let{bytesRead:a}=await f.read(g,0,g.length,h);if(0===a)break;let c=g.subarray(0,a);h+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.substring(0,d.indexOf(b));a&&e.enqueue(Buffer.from(a,"utf8")),e.close();return}e.enqueue(Buffer.from(c))}if(l&&!n){n=!0,e.error(l);return}e.close();return}await B(25)}}catch(a){n||(n=!0,e.error(a instanceof Error?a:Error(String(a))))}finally{await f.close().catch(()=>{}),await y(a),d&&d.removeEventListener("abort",m)}}})}(l,d,t,e);return{status:200,headers:new Headers({"Content-Type":"application/x-ndjson","Cache-Control":"no-cache"}),text:null,body:v}}async function y(a){await (0,i.unlink)(a).catch(()=>{}),await (0,i.rmdir)((0,h.dirname)(a)).catch(()=>{})}async function z(a,b){let c=await (0,i.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function A(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,i.stat)(a)).size>0)return!0}catch{}if(d)break;await B(25)}return!1}function B(a){return new Promise(b=>setTimeout(b,a))}var C=c(43659);let D="https://grok.com/rest/app-chat/conversations/new",E={fast:{modeId:"fast",isThinking:!1},expert:{modeId:"expert",isThinking:!0},heavy:{modeId:"heavy",isThinking:!0},"grok-420-computer-use-sa":{modeId:"grok-420-computer-use-sa",isThinking:!0},"grok-4":{modeId:"fast",isThinking:!1},"grok-4.1-fast":{modeId:"fast",isThinking:!1},"grok-4.1-expert":{modeId:"expert",isThinking:!0},"grok-4-heavy":{modeId:"heavy",isThinking:!0},"grok-4.20":{modeId:"expert",isThinking:!0},"grok-4.20-heavy":{modeId:"heavy",isThinking:!0},"grok-4.3":{modeId:"grok-420-computer-use-sa",isThinking:!0},"grok-4-3-thinking-1129":{modeId:"grok-420-computer-use-sa",isThinking:!0}};function F(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 G(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}function H(a){return a.replace(/\n?---\s*\n\s*<internal_reminder>[\s\S]*?<\/internal_reminder>/gi,"").replace(/<internal_reminder>[\s\S]*?<\/internal_reminder>/gi,"").replace(/\n{3,}/g,"\n\n").trim()}function I(a){return"string"==typeof a.content?H(a.content):Array.isArray(a.content)?H(a.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")):""}function J(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:{input:a}}catch{return{input:a}}return{}}function K(a){return a&&"object"==typeof a?Array.isArray(a)?`[${a.map(K).join(",")}]`:`{${Object.keys(a).sort().map(b=>`${JSON.stringify(b)}:${K(a[b])}`).join(",")}}`:JSON.stringify(a)}function L(a){return a.trim().replace(/\s+/g," ")}function M(a){return a.trim().replace(/^['"]|['"]$/g,"")}function N(a){return a.trim().replace(/\s+/g," ").toLowerCase()}function O(a,b){let c=a.trim(),d=J(b),e=aa(d.command,d.cmd,d.shell);if(e)return`${c}:command:${L(e)}`;let f=aa(d.url,d.uri);if(f)return`${c}:url:${M(f)}`;let g=aa(d.filePath,d.file_path,d.path,d.filename);if(g)return`${c}:path:${M(g)}`;let h=aa(d.query,d.search);return h?`${c}:query:${N(h)}`:`${c}:${K(J(d))}`}function P(a){let b=a.match(/https?:\/\/[^\s)\]}>"']+/i);if(b?.[0])return b[0].replace(/[.,;:!?]+$/,"");let c=a.match(/(?:^|\s)((?:[a-z0-9-]+\.)+[a-z]{2,}(?:\/[^\s)\]}>"']*)?)/i)?.[1];return c?`https://${c.replace(/[.,;:!?]+$/,"")}`:void 0}function Q(a){return/\b(webfetch|web_fetch|fetch|browse|open|read|lee|abre|extrae|investiga|analiza|resume|summarize|de qu[eé] va)\b/i.test(a)&&!!P(a)}function R(a){if(!a||"object"!=typeof a)return{};let b=a.properties;return b&&"object"==typeof b?b:{}}function S(a){if(!a||"object"!=typeof a)return[];let b=a.required;return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}function T(a){return`${a.name} ${a.description||""}`.toLowerCase()}function U(a,b){let c=new Set(Object.keys(R(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function V(a){if($(a))return!1;let b=T(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||U(a,["command","cmd","shell"])&&e}function W(a){let b=T(a);return U(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 X(a){let b=T(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||!$(a)&&U(a,["url","uri"])&&e}function Y(a){let b=T(a);return U(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!$(a)&&!Z(a)}function Z(a){let b=T(a);return/\b(ctx_|memory|memories|conversation history|session notes|git commits|project memories|context.db|magic context)\b/.test(b)}function $(a){let b=T(a);return/\b(mcp|mcpproxy|upstream|registry|registries|quarantine|oauth|cache key|token usage|session notes|conversation transcript|handoff|context management|memory|memories|lsp|language server|plan file|server management|tool discovery|tools? using bm25)\b/.test(b)}function _(a){return null!=a&&""!==a}function aa(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function ab(a,b){let c=b.map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),d=RegExp(`\\b(?:${c})\\s*(?:=|:|a|de)?\\s*(\\d+)`,"i"),e=a.match(d);if(!e)return;let f=Number(e[1]);return Number.isFinite(f)?f:void 0}function ac(a,b,c,d,e={preserveUnknownArgs:!0}){let f=c.toolsByName.get(a);if(!f)return b;let g=R(f.parameters),h=S(f.parameters),i={...b};for(let a of("filePath"in g&&!_(i.filePath)&&(i.filePath=aa(b.filePath,b.file_path,b.path)),"file_path"in g&&!_(i.file_path)&&(i.file_path=aa(b.file_path,b.filePath,b.path)),"path"in g&&!_(i.path)&&(i.path=aa(b.path,b.filePath,b.file_path)),"query"in g&&!_(i.query)&&(i.query=aa(b.query,b.search,b.input)),"url"in g&&!_(i.url)&&(i.url=aa(b.url,b.uri)),"uri"in g&&!_(i.uri)&&(i.uri=aa(b.uri,b.url)),"input"in g&&!_(i.input)&&(i.input=aa(b.input,b.query,b.command)),h)){if(_(i[a]))continue;let b=function(a,b,c,d){let e=a.toLowerCase(),f=aa(c.command,c.cmd,c.shell,c.input),g=aa(c.filePath,c.file_path,c.path,c.filename),h=aa(c.query,c.search,c.input),i=aa(c.url,c.uri);return"command"===e||"cmd"===e?f:"filepath"===e||"file_path"===e||"path"===e?g:"query"===e||"search"===e?h:"url"===e||"uri"===e?i:"input"===e?h||i||f||g:"description"===e||"reason"===e||"intent_reason"===e?f?`Execute shell command: ${f}`:g?`Read file: ${g}`:i?`Fetch URL: ${i}`:h?`Search: ${h}`:`Grok Web ${d} tool call`:"intent_data_sensitivity"===e?"private":void 0}(a,function(a,b){let c=a[b];if(!c||"object"!=typeof c)return;let d=c.type;return"string"==typeof d?d:void 0}(g,a),i,d);void 0!==b&&(i[a]=b)}if(!1!==e.preserveUnknownArgs||0===Object.keys(g).length)return i;let j={};for(let a of Object.keys(g))_(i[a])&&(j[a]=i[a]);for(let a of h)_(i[a])&&(j[a]=i[a]);return j}function ad(a,b){if(!b.enabled||!a.includes("<tool_call>"))return null;let c=[];for(let d of a.matchAll(/<tool_call>\s*([\s\S]*?)\s*<\/tool_call>/g)){let a;try{a=JSON.parse(d[1])}catch{continue}if(!a||"object"!=typeof a)continue;let e=a,f="string"==typeof e.name?e.name.trim():"";if(!f||!b.toolsByName.has(f))continue;let g=ac(f,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{}}(e.arguments),b,"clientTool",{preserveUnknownArgs:!0});b.executedToolKeys.has(O(f,g))||c.push({id:"string"==typeof e.id&&e.id.trim()?e.id.trim():`call_${crypto.randomUUID()}`,type:"function",function:{name:f,arguments:JSON.stringify(g)}})}return c.length>0?c:null}function ae(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(R(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=c.lastUserText.toLowerCase(),i=0;if("bash"===b)V(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)W(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 if("webSearch"===b||"browsePage"===b){let c=Q(h);(Z(a)||$(a))&&(i-=180),("browsePage"===b||c)&&(X(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||Y(a)||(i-=60),"browsePage"===b&&/\b(websearch|web_search|search)\b/.test(d)&&!(f.has("url")||f.has("uri"))&&(i-=120),["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,{lastUserText:b.lastUserText});e<=0||(!c||e>c.score)&&(c={name:d.name,score:e})}return c?.name||null}async function*af(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()}}let ag=[{start:"<xai:tool_usage_card",end:"</xai:tool_usage_card>"}];function ah(a){return a.replace(/<\/?xai:[^>]*>/g,"").replace(/<\/?grok:[^>]*>/g,"").replace(/<\/?argument\b[^>]*>/g,"").replace(/<!\[CDATA\[/g,"").replace(/\]\]>/g,"")}class ai{feed(a){return a?(this.buffer+=a,this.drain(!1)):""}flush(){let a=this.drain(!0);return this.buffer="",this.suppressedUntil=null,a}drain(a){let b="";for(;this.buffer;){if(this.suppressedUntil){let a=this.buffer.indexOf(this.suppressedUntil);if(a<0)return this.buffer=this.buffer.slice(this.longestEndPrefixStart(this.suppressedUntil)),b;this.buffer=this.buffer.slice(a+this.suppressedUntil.length),this.suppressedUntil=null;continue}let c=-1,d="";for(let a of ag){let b=this.buffer.indexOf(a.start);b>=0&&(c<0||b<c)&&(c=b,d=a.end)}if(c<0){if(!a){let a=this.buffer.lastIndexOf("<");if(a>=0&&this.buffer.length-a<=32)return b+=ah(this.buffer.slice(0,a)),this.buffer=this.buffer.slice(a),b}b+=ah(this.buffer),this.buffer="";break}b+=ah(this.buffer.slice(0,c)),this.buffer=this.buffer.slice(c);let e=this.buffer.indexOf(d),f=this.buffer.indexOf(">");if(f>=0&&/\/\s*>$/.test(this.buffer.slice(0,f+1))){this.buffer=this.buffer.slice(f+1);continue}if(e<0){this.suppressedUntil=d,this.buffer=this.buffer.slice(this.longestEndPrefixStart(d));break}this.buffer=this.buffer.slice(e+d.length)}return b}longestEndPrefixStart(a){let b=Math.min(this.buffer.length,a.length-1);for(let c=b;c>0;c--)if(this.buffer.slice(-c)===a.slice(0,c))return this.buffer.length-c;return this.buffer.length}constructor(){this.buffer="",this.suppressedUntil=null}}function aj(a){let b=new ai;return b.feed(a)+b.flush()}function ak(a){if(!a)return"";for(let b of["reasoning","reasoningContent","reasoning_content","thinking","thought"]){let c=a[b];if("string"==typeof c&&c.trim())return aj(c)}return""}async function*al(a,b,c,d,e=!1){let f="",g="",h=new ai,i=new ai,j="",k=!1;for await(let l of af(a,d)){if(l.error)return void(yield{error:l.error.message||`Grok error: ${l.error.code}`,done:!0});let a=l.result?.response;if(!a)continue;a.llmInfo?.modelHash&&!f&&(f=a.llmInfo.modelHash),a.responseId&&(g=a.responseId);let d=function(a,b){if(!b.enabled||!a.toolUsageCard)return null;let c=a.toolUsageCard,d=a.toolUsageCardId||String(c.toolUsageCardId||`call_${crypto.randomUUID()}`),e=c.bash;if(e?.args){let a=ae("bash",b);if(a){let c=ac(a,e.args,b,"bash",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(a,c))?null:{id:d,type:"function",function:{name:a,arguments:JSON.stringify(c)}}}}let f=c.readFile||c.read_file;if(f?.args){let a=f.args.filePath||f.args.file_path||f.args.path,c=ae("readFile",b);if(c&&"string"==typeof a){let e=ab(b.lastUserText,["offset"]),g=ab(b.lastUserText,["limit","limite","l\xedmite"]),h=ac(c,{...f.args,...void 0!==e?{offset:e}:{},...void 0!==g?{limit:g}:{},filePath:a,file_path:a,path:a},b,"readFile",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(c,h))?null:{id:d,type:"function",function:{name:c,arguments:JSON.stringify(h)}}}}let g=c.webSearch;if(g?.args){let a=ae("webSearch",b);if(a){let c=Q(b.lastUserText)?P(b.lastUserText):void 0,e=ac(a,c?{...g.args,url:c,uri:c}:g.args,b,c?"webFetch":"webSearch",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(a,e))?null:{id:d,type:"function",function:{name:a,arguments:JSON.stringify(e)}}}}let h=c.browsePage||c.browse_page;if(h?.args){let a=aa(h.args.url,h.args.uri),c=ae("browsePage",b);if(c&&a){let e=ac(c,{...h.args,url:a,uri:a,input:a},b,"browsePage",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(c,e))?null:{id:d,type:"function",function:{name:c,arguments:JSON.stringify(e)}}}}return null}(a,c);if(d)return void(yield{toolCalls:[d],fingerprint:f,responseId:g});if("raw_function_result"===a.messageTag||"tool_usage_card"===a.messageTag)continue;if(a.modelResponse){let c=a.modelResponse,d=b?ak(c):"";if((!e||!k)&&d){let a=i.feed(d),b=a.startsWith(j)?a.slice(j.length):a;b&&(j+=b,yield{thinking:b})}if(c.message){let a=aj(c.message);a&&(k=!0),yield{fullMessage:a,fingerprint:f,responseId:g}}c.metadata?.llm_info?.modelHash&&(f=c.metadata.llm_info.modelHash);continue}let m=b?ak(a):"";if((!e||!k)&&m){let a=i.feed(m),b=a.startsWith(j)?a.slice(j.length):a;b&&(j+=b,yield{thinking:b,fingerprint:f,responseId:g})}if(null!=a.token){if(a.isThinking){let b=e&&k?"":function(a){let b=aj(a.token||""),c=b.trim();return!c||"header"===a.messageTag&&0===a.messageStepId&&/^(?:\.{3}|thinking(?: about your request)?)$/i.test(c)?"":"header"===a.messageTag||"summary"===a.messageTag?`${c}
|
|
375
|
+
`;return{response:new Response(h.encode(e),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d}}let p=JSON.stringify({id:k,object:"chat.completion",created:o,model:b,choices:[{index:0,message:{role:"assistant",content:f},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}});return{response:new Response(h.encode(p),{status:200,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d}}catch(i){m&&m.close().catch(()=>{});let e=i instanceof Error?i.message:String(i);return g?.error?.("CHIPOTLE",`Error: ${e}`),{response:new Response(h.encode(JSON.stringify({error:{message:(0,f.sanitizeErrorMessage)(e),type:"upstream_error",code:"CHIPOTLE_ERROR"}})),{status:502,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(b,c),headers:this.buildHeaders(a.credentials),transformedBody:d}}}}},78095:(a,b,c)=>{c.d(b,{$:()=>ap});var d=c(97510),e=c(61408),f=c(50954),g=c(48161),h=c(76760),i=c(51455),j=c(77598),k=c(95538),l=c(93804);let m=null,n=!1,o=Number.parseInt(process.env.OMNIROUTE_GROK_TLS_TIMEOUT_MS||"",10)||6e4,p=Number.parseInt(process.env.OMNIROUTE_GROK_TLS_GRACE_MS||"",10)||1e4;class q extends Error{constructor(a){super(a),this.name="TlsClientHangError"}}async function r(a,b,c){let d=null,e=null;try{let f=[a,new Promise((a,c)=>{d=setTimeout(()=>{c(new q(`tls-client-node call exceeded ${b}ms — native binding likely deadlocked`))},b)})];return c&&f.push(new Promise((a,b)=>{c.aborted?b(v(c)):(e=()=>b(v(c)),c.addEventListener("abort",e,{once:!0}))})),await Promise.race(f)}finally{d&&clearTimeout(d),c&&e&&c.removeEventListener("abort",e)}}async function s(){return m||(m=(async()=>{try{let a=new(await Promise.resolve().then(c.bind(c,23560))).TLSClient({runtimeMode:"native"});return await a.start(),!function(){if(n)return;n=!0;let a=async()=>{if(null!==m)try{let a=await m;await a.stop?.()}catch{}};process.once("beforeExit",a),process.once("SIGINT",()=>{a()}),process.once("SIGTERM",()=>{a()})}(),a}catch(b){m=null;let a=b instanceof Error?b.message:String(b);throw new t(`TLS impersonation client failed to start: ${a}. Verify tls-client-node is installed and its native binary downloaded.`)}})()),m}class t extends Error{constructor(a){super(a),this.name="TlsClientUnavailableError"}}async function u(a,b={}){var c;let d;if(b.signal?.aborted)throw v(b.signal);let e=await s();if(b.signal?.aborted)throw v(b.signal);let f={method:b.method||"GET",headers:b.headers||{},body:b.body,tlsClientIdentifier:"chrome_146",timeoutMilliseconds:b.timeoutMs??o,followRedirects:!0,withRandomTLSExtensionOrder:!0,proxyUrl:(c=b.proxyUrl,(0,l.G)("https://grok.com",c,k.l))};if(b.stream)return await x(e,a,f,b.streamEofSymbol,b.signal??null,(b.timeoutMs??o)+p);try{d=await r(e.request(a,f),(b.timeoutMs??o)+p,b.signal??null)}catch(a){throw a instanceof q&&(m=null),a}if(b.signal?.aborted)throw v(b.signal);return{status:d.status,headers:w(d.headers),text:d.body,body:null}}function v(a){let b=a.reason;if(b instanceof Error)return b;let c=Error("string"==typeof b?b:"The operation was aborted");return c.name="AbortError",c}function w(a){let b=new Headers;for(let[c,d]of Object.entries(a||{}))for(let a of d)b.append(c,a);return b}async function x(a,b,c,d="[DONE]",e=null,f=o+p){let k=await (0,i.mkdtemp)((0,h.join)((0,g.tmpdir)(),"grok-stream-")),l=(0,h.join)(k,`${(0,j.randomUUID)()}.ndjson`),n={...c,streamOutputPath:l,streamOutputBlockSize:1024,streamOutputEOFSymbol:d},s=!0,t=r(a.request(b,n),f,e).catch(a=>{throw s&&a instanceof q&&(m=null,s=!1),a});if(!await A(l,5e3,t)){let a=await t.catch(a=>({status:502,headers:{},body:String(a)}));return await y(l),{status:a.status,headers:w(a.headers),text:a.body,body:null}}let u=await z(l,256);if(u&&/just a moment|window\._cf_chl_opt|challenges\.cloudflare\.com|attention required|cf-chl/i.test(u))return await y(l),{status:403,headers:new Headers({"Content-Type":"text/html"}),text:u,body:null};if(u.trimStart().startsWith("<"))return await y(l),{status:502,headers:new Headers({"Content-Type":"text/html"}),text:u,body:null};let v=function(a,b,c,d=null){return new ReadableStream({async start(e){let f=await (0,i.open)(a,"r"),g=Buffer.alloc(65536),h=0,j=!1,k=!1,l=null;c.then(()=>{j=!0},a=>{l=a instanceof Error?a:Error(String(a)),j=!0});let m=()=>{k=!0};d&&(d.aborted?k=!0:d.addEventListener("abort",m,{once:!0}));let n=!1;try{for(;!k;){let{bytesRead:a}=await f.read(g,0,g.length,h);if(a>0){let c=g.subarray(0,a);h+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.substring(0,d.indexOf(b));a&&e.enqueue(Buffer.from(a,"utf8")),e.close();return}e.enqueue(Buffer.from(c))}if(j){for(;;){let{bytesRead:a}=await f.read(g,0,g.length,h);if(0===a)break;let c=g.subarray(0,a);h+=a;let d=c.toString("utf8");if(d.includes(b)){let a=d.substring(0,d.indexOf(b));a&&e.enqueue(Buffer.from(a,"utf8")),e.close();return}e.enqueue(Buffer.from(c))}if(l&&!n){n=!0,e.error(l);return}e.close();return}await B(25)}}catch(a){n||(n=!0,e.error(a instanceof Error?a:Error(String(a))))}finally{await f.close().catch(()=>{}),await y(a),d&&d.removeEventListener("abort",m)}}})}(l,d,t,e);return{status:200,headers:new Headers({"Content-Type":"application/x-ndjson","Cache-Control":"no-cache"}),text:null,body:v}}async function y(a){await (0,i.unlink)(a).catch(()=>{}),await (0,i.rmdir)((0,h.dirname)(a)).catch(()=>{})}async function z(a,b){let c=await (0,i.open)(a,"r");try{let a=Buffer.alloc(b),{bytesRead:d}=await c.read(a,0,b,0);return a.subarray(0,d).toString("utf8")}finally{await c.close().catch(()=>{})}}async function A(a,b,c){let d=!1;c.then(()=>{d=!0},()=>{d=!0});let e=Date.now();for(;Date.now()-e<b;){try{if((await (0,i.stat)(a)).size>0)return!0}catch{}if(d)break;await B(25)}return!1}function B(a){return new Promise(b=>setTimeout(b,a))}var C=c(43659);let D="https://grok.com/rest/app-chat/conversations/new",E={fast:{modeId:"fast",isThinking:!1},expert:{modeId:"expert",isThinking:!0},heavy:{modeId:"heavy",isThinking:!0},"grok-420-computer-use-sa":{modeId:"grok-420-computer-use-sa",isThinking:!0},"grok-4":{modeId:"fast",isThinking:!1},"grok-4.1-fast":{modeId:"fast",isThinking:!1},"grok-4.1-expert":{modeId:"expert",isThinking:!0},"grok-4-heavy":{modeId:"heavy",isThinking:!0},"grok-4.20":{modeId:"expert",isThinking:!0},"grok-4.20-heavy":{modeId:"heavy",isThinking:!0},"grok-4.3":{modeId:"grok-420-computer-use-sa",isThinking:!0},"grok-4-3-thinking-1129":{modeId:"grok-420-computer-use-sa",isThinking:!0}};function F(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 G(a){let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")}function H(a){return a.replace(/\n?---\s*\n\s*<internal_reminder>[\s\S]*?<\/internal_reminder>/gi,"").replace(/<internal_reminder>[\s\S]*?<\/internal_reminder>/gi,"").replace(/\n{3,}/g,"\n\n").trim()}function I(a){return"string"==typeof a.content?H(a.content):Array.isArray(a.content)?H(a.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")):""}function J(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:{input:a}}catch{return{input:a}}return{}}function K(a){return a&&"object"==typeof a?Array.isArray(a)?`[${a.map(K).join(",")}]`:`{${Object.keys(a).sort().map(b=>`${JSON.stringify(b)}:${K(a[b])}`).join(",")}}`:JSON.stringify(a)}function L(a){return a.trim().replace(/\s+/g," ")}function M(a){return a.trim().replace(/^['"]|['"]$/g,"")}function N(a){return a.trim().replace(/\s+/g," ").toLowerCase()}function O(a,b){let c=a.trim(),d=J(b),e=aa(d.command,d.cmd,d.shell);if(e)return`${c}:command:${L(e)}`;let f=aa(d.url,d.uri);if(f)return`${c}:url:${M(f)}`;let g=aa(d.filePath,d.file_path,d.path,d.filename);if(g)return`${c}:path:${M(g)}`;let h=aa(d.query,d.search);return h?`${c}:query:${N(h)}`:`${c}:${K(J(d))}`}function P(a){let b=a.match(/https?:\/\/[^\s)\]}>"']+/i);if(b?.[0])return b[0].replace(/[.,;:!?]+$/,"");let c=a.match(/(?:^|\s)((?:[a-z0-9-]+\.)+[a-z]{2,}(?:\/[^\s)\]}>"']*)?)/i)?.[1];return c?`https://${c.replace(/[.,;:!?]+$/,"")}`:void 0}function Q(a){return/\b(webfetch|web_fetch|fetch|browse|open|read|lee|abre|extrae|investiga|analiza|resume|summarize|de qu[eé] va)\b/i.test(a)&&!!P(a)}function R(a){if(!a||"object"!=typeof a)return{};let b=a.properties;return b&&"object"==typeof b?b:{}}function S(a){if(!a||"object"!=typeof a)return[];let b=a.required;return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}function T(a){return`${a.name} ${a.description||""}`.toLowerCase()}function U(a,b){let c=new Set(Object.keys(R(a.parameters)).map(a=>a.toLowerCase()));return b.some(a=>c.has(a.toLowerCase()))}function V(a){if($(a))return!1;let b=T(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||U(a,["command","cmd","shell"])&&e}function W(a){let b=T(a);return U(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 X(a){let b=T(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||!$(a)&&U(a,["url","uri"])&&e}function Y(a){let b=T(a);return U(a,["query","search"])&&/\b(web|internet|exa|browser|browse|serp)\b/.test(b)&&!$(a)&&!Z(a)}function Z(a){let b=T(a);return/\b(ctx_|memory|memories|conversation history|session notes|git commits|project memories|context.db|magic context)\b/.test(b)}function $(a){let b=T(a);return/\b(mcp|mcpproxy|upstream|registry|registries|quarantine|oauth|cache key|token usage|session notes|conversation transcript|handoff|context management|memory|memories|lsp|language server|plan file|server management|tool discovery|tools? using bm25)\b/.test(b)}function _(a){return null!=a&&""!==a}function aa(...a){for(let b of a)if("string"==typeof b&&b.trim())return b}function ab(a,b){let c=b.map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),d=RegExp(`\\b(?:${c})\\s*(?:=|:|a|de)?\\s*(\\d+)`,"i"),e=a.match(d);if(!e)return;let f=Number(e[1]);return Number.isFinite(f)?f:void 0}function ac(a,b,c,d,e={preserveUnknownArgs:!0}){let f=c.toolsByName.get(a);if(!f)return b;let g=R(f.parameters),h=S(f.parameters),i={...b};for(let a of("filePath"in g&&!_(i.filePath)&&(i.filePath=aa(b.filePath,b.file_path,b.path)),"file_path"in g&&!_(i.file_path)&&(i.file_path=aa(b.file_path,b.filePath,b.path)),"path"in g&&!_(i.path)&&(i.path=aa(b.path,b.filePath,b.file_path)),"query"in g&&!_(i.query)&&(i.query=aa(b.query,b.search,b.input)),"url"in g&&!_(i.url)&&(i.url=aa(b.url,b.uri)),"uri"in g&&!_(i.uri)&&(i.uri=aa(b.uri,b.url)),"input"in g&&!_(i.input)&&(i.input=aa(b.input,b.query,b.command)),h)){if(_(i[a]))continue;let b=function(a,b,c,d){let e=a.toLowerCase(),f=aa(c.command,c.cmd,c.shell,c.input),g=aa(c.filePath,c.file_path,c.path,c.filename),h=aa(c.query,c.search,c.input),i=aa(c.url,c.uri);return"command"===e||"cmd"===e?f:"filepath"===e||"file_path"===e||"path"===e?g:"query"===e||"search"===e?h:"url"===e||"uri"===e?i:"input"===e?h||i||f||g:"description"===e||"reason"===e||"intent_reason"===e?f?`Execute shell command: ${f}`:g?`Read file: ${g}`:i?`Fetch URL: ${i}`:h?`Search: ${h}`:`Grok Web ${d} tool call`:"intent_data_sensitivity"===e?"private":void 0}(a,function(a,b){let c=a[b];if(!c||"object"!=typeof c)return;let d=c.type;return"string"==typeof d?d:void 0}(g,a),i,d);void 0!==b&&(i[a]=b)}if(!1!==e.preserveUnknownArgs||0===Object.keys(g).length)return i;let j={};for(let a of Object.keys(g))_(i[a])&&(j[a]=i[a]);for(let a of h)_(i[a])&&(j[a]=i[a]);return j}function ad(a,b){if(!b.enabled||!a.includes("<tool_call>"))return null;let c=[];for(let d of a.matchAll(/<tool_call>\s*([\s\S]*?)\s*<\/tool_call>/g)){let a;try{a=JSON.parse(d[1])}catch{continue}if(!a||"object"!=typeof a)continue;let e=a,f="string"==typeof e.name?e.name.trim():"";if(!f||!b.toolsByName.has(f))continue;let g=ac(f,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{}}(e.arguments),b,"clientTool",{preserveUnknownArgs:!0});b.executedToolKeys.has(O(f,g))||c.push({id:"string"==typeof e.id&&e.id.trim()?e.id.trim():`call_${crypto.randomUUID()}`,type:"function",function:{name:f,arguments:JSON.stringify(g)}})}return c.length>0?c:null}function ae(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(R(a.parameters)).map(a=>a.toLowerCase())),g=`${d} ${e}`,h=c.lastUserText.toLowerCase(),i=0;if("bash"===b)V(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)W(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 if("webSearch"===b||"browsePage"===b){let c=Q(h);(Z(a)||$(a))&&(i-=180),("browsePage"===b||c)&&(X(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||Y(a)||(i-=60),"browsePage"===b&&/\b(websearch|web_search|search)\b/.test(d)&&!(f.has("url")||f.has("uri"))&&(i-=120),["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,{lastUserText:b.lastUserText});e<=0||(!c||e>c.score)&&(c={name:d.name,score:e})}return c?.name||null}async function*af(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()}}let ag=[{start:"<xai:tool_usage_card",end:"</xai:tool_usage_card>"}];function ah(a){return a.replace(/<\/?xai:[^>]*>/g,"").replace(/<\/?grok:[^>]*>/g,"").replace(/<\/?argument\b[^>]*>/g,"").replace(/<!\[CDATA\[/g,"").replace(/\]\]>/g,"")}class ai{feed(a){return a?(this.buffer+=a,this.drain(!1)):""}flush(){let a=this.drain(!0);return this.buffer="",this.suppressedUntil=null,a}drain(a){let b="";for(;this.buffer;){if(this.suppressedUntil){let a=this.buffer.indexOf(this.suppressedUntil);if(a<0)return this.buffer=this.buffer.slice(this.longestEndPrefixStart(this.suppressedUntil)),b;this.buffer=this.buffer.slice(a+this.suppressedUntil.length),this.suppressedUntil=null;continue}let c=-1,d="";for(let a of ag){let b=this.buffer.indexOf(a.start);b>=0&&(c<0||b<c)&&(c=b,d=a.end)}if(c<0){if(!a){let a=this.buffer.lastIndexOf("<");if(a>=0&&this.buffer.length-a<=32)return b+=ah(this.buffer.slice(0,a)),this.buffer=this.buffer.slice(a),b}b+=ah(this.buffer),this.buffer="";break}b+=ah(this.buffer.slice(0,c)),this.buffer=this.buffer.slice(c);let e=this.buffer.indexOf(d),f=this.buffer.indexOf(">");if(f>=0&&/\/\s*>$/.test(this.buffer.slice(0,f+1))){this.buffer=this.buffer.slice(f+1);continue}if(e<0){this.suppressedUntil=d,this.buffer=this.buffer.slice(this.longestEndPrefixStart(d));break}this.buffer=this.buffer.slice(e+d.length)}return b}longestEndPrefixStart(a){let b=Math.min(this.buffer.length,a.length-1);for(let c=b;c>0;c--)if(this.buffer.slice(-c)===a.slice(0,c))return this.buffer.length-c;return this.buffer.length}constructor(){this.buffer="",this.suppressedUntil=null}}function aj(a){let b=new ai;return b.feed(a)+b.flush()}function ak(a){if(!a)return"";for(let b of["reasoning","reasoningContent","reasoning_content","thinking","thought"]){let c=a[b];if("string"==typeof c&&c.trim())return aj(c)}return""}async function*al(a,b,c,d,e=!1){let f="",g="",h=new ai,i=new ai,j="",k=!1;for await(let l of af(a,d)){if(l.error)return void(yield{error:l.error.message||`Grok error: ${l.error.code}`,done:!0});let a=l.result?.response;if(!a)continue;a.llmInfo?.modelHash&&!f&&(f=a.llmInfo.modelHash),a.responseId&&(g=a.responseId);let d=function(a,b){if(!b.enabled||!a.toolUsageCard)return null;let c=a.toolUsageCard,d=a.toolUsageCardId||String(c.toolUsageCardId||`call_${crypto.randomUUID()}`),e=c.bash;if(e?.args){let a=ae("bash",b);if(a){let c=ac(a,e.args,b,"bash",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(a,c))?null:{id:d,type:"function",function:{name:a,arguments:JSON.stringify(c)}}}}let f=c.readFile||c.read_file;if(f?.args){let a=f.args.filePath||f.args.file_path||f.args.path,c=ae("readFile",b);if(c&&"string"==typeof a){let e=ab(b.lastUserText,["offset"]),g=ab(b.lastUserText,["limit","limite","l\xedmite"]),h=ac(c,{...f.args,...void 0!==e?{offset:e}:{},...void 0!==g?{limit:g}:{},filePath:a,file_path:a,path:a},b,"readFile",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(c,h))?null:{id:d,type:"function",function:{name:c,arguments:JSON.stringify(h)}}}}let g=c.webSearch;if(g?.args){let a=ae("webSearch",b);if(a){let c=Q(b.lastUserText)?P(b.lastUserText):void 0,e=ac(a,c?{...g.args,url:c,uri:c}:g.args,b,c?"webFetch":"webSearch",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(a,e))?null:{id:d,type:"function",function:{name:a,arguments:JSON.stringify(e)}}}}let h=c.browsePage||c.browse_page;if(h?.args){let a=aa(h.args.url,h.args.uri),c=ae("browsePage",b);if(c&&a){let e=ac(c,{...h.args,url:a,uri:a,input:a},b,"browsePage",{preserveUnknownArgs:!1});return b.executedToolKeys.has(O(c,e))?null:{id:d,type:"function",function:{name:c,arguments:JSON.stringify(e)}}}}return null}(a,c);if(d)return void(yield{toolCalls:[d],fingerprint:f,responseId:g});if("raw_function_result"===a.messageTag||"tool_usage_card"===a.messageTag)continue;if(a.modelResponse){let c=a.modelResponse,d=b?ak(c):"";if((!e||!k)&&d){let a=i.feed(d),b=a.startsWith(j)?a.slice(j.length):a;b&&(j+=b,yield{thinking:b})}if(c.message){let a=aj(c.message);a&&(k=!0),yield{fullMessage:a,fingerprint:f,responseId:g}}c.metadata?.llm_info?.modelHash&&(f=c.metadata.llm_info.modelHash);continue}let m=b?ak(a):"";if((!e||!k)&&m){let a=i.feed(m),b=a.startsWith(j)?a.slice(j.length):a;b&&(j+=b,yield{thinking:b,fingerprint:f,responseId:g})}if(null!=a.token){if(a.isThinking){let b=e&&k?"":function(a){let b=aj(a.token||""),c=b.trim();return!c||"header"===a.messageTag&&0===a.messageStepId&&/^(?:\.{3}|thinking(?: about your request)?)$/i.test(c)?"":"header"===a.messageTag||"summary"===a.messageTag?`${c}
|
|
376
376
|
`:b}(a);b&&(yield{thinking:b,fingerprint:f,responseId:g});continue}let b=h.feed(a.token);b&&(k=!0,yield{delta:b,fingerprint:f,responseId:g})}}let l=e&&k?"":i.flush();if(l){let a=l.startsWith(j)?l.slice(j.length):l;a&&(yield{thinking:a,fingerprint:f,responseId:g})}let m=h.flush();m&&(yield{delta:m,fingerprint:f,responseId:g}),yield{done:!0,fingerprint:f,responseId:g}}function am(a){return`data: ${JSON.stringify(a)}
|
|
377
377
|
|
|
378
378
|
`}function an(a,b,c){for(let d=0;d<c.toolCalls.length;d++)a.enqueue(b.encode(am({id:c.id,object:"chat.completion.chunk",created:c.created,model:c.model,system_fingerprint:c.fingerprint||null,choices:[{index:0,delta:{tool_calls:[{index:d,...c.toolCalls[d]}]},finish_reason:null,logprobs:null}]})));a.enqueue(b.encode(am({id:c.id,object:"chat.completion.chunk",created:c.created,model:c.model,system_fingerprint:c.fingerprint||null,choices:[{index:0,delta:{},finish_reason:"tool_calls",logprobs:null}]}))),a.enqueue(b.encode("data: [DONE]\n\n"))}async function ao(a,b,c,d,e,f,g){let h="",i="",j=[];for await(let k of al(a,e,f,g)){if(k.fingerprint&&(i=k.fingerprint),k.error)return new Response(JSON.stringify({error:{message:k.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(k.thinking){j.push(k.thinking);continue}if(k.toolCalls)return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:i||null,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:k.toolCalls},finish_reason:"tool_calls",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}});if(k.done)break;k.fullMessage?h=k.fullMessage:k.delta&&(h+=k.delta)}let k=ad(h,f);if(k)return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:i||null,choices:[{index:0,message:{role:"assistant",content:null,tool_calls:k},finish_reason:"tool_calls",logprobs:null}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{status:200,headers:{"Content-Type":"application/json"}});let l={role:"assistant",content:h};j.length>0&&(l.reasoning_content=j.join("\n"));let m=Math.ceil(h.length/4),n=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:"stop",logprobs:null}],usage:{prompt_tokens:m,completion_tokens:n,total_tokens:m+n}}),{status:200,headers:{"Content-Type":"application/json"}})}class ap extends d.Hv{constructor(){super("grok-web",{id:"grok-web",baseUrl:D})}async execute({model:a,body:b,stream:c,credentials:g,signal:h,log:i,upstreamExtraHeaders:j}){let k,l,m=b.messages;if(!m||!Array.isArray(m)||0===m.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:D,headers:{},transformedBody:b};let n=E[a];n||i?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to fast mode`);let o=function(a){let b=Array.isArray(a.tools)?a.tools:[],c=Array.isArray(a.messages)?a.messages:[],d=function(a){for(let b=a.length-1;b>=0;b--)if("user"===String(a[b].role||""))return I(a[b]);return""}(c),e=function(a){let b=-1;for(let c=a.length-1;c>=0;c--)if("user"===String(a[c].role||"")){b=c;break}let c=new Map,d=new Set,e=[];for(let f=Math.max(0,b+1);f<a.length;f++){let b=a[f];if("assistant"===String(b.role||"")&&Array.isArray(b.tool_calls))for(let a of b.tool_calls){let b="string"==typeof a.id?a.id:"",d=a.function;if(!b||!d||"object"!=typeof d)continue;let e="string"==typeof d.name?d.name:"";e&&c.set(b,{name:e,args:J(d.arguments)})}if("tool"===String(b.role||"")){let a="string"==typeof b.tool_call_id?b.tool_call_id:"",f=a?c.get(a):null;if(f){let a=O(f.name,f.args);d.add(a);let b=function(a,b){let c=J(b),d=aa(c.command,c.cmd,c.shell);if(d)return`${a}(command=${JSON.stringify(L(d))})`;let e=aa(c.url,c.uri);if(e)return`${a}(url=${JSON.stringify(M(e))})`;let f=aa(c.filePath,c.file_path,c.path,c.filename);if(f)return`${a}(path=${JSON.stringify(M(f))})`;let g=aa(c.query,c.search);return g?`${a}(query=${JSON.stringify(N(g))})`:`${a}(${K(c)})`}(f.name,f.args);e.includes(b)||e.push(b)}}}return{keys:d,summaries:e}}(c),f=a.tool_choice??"auto";if("none"===f)return{enabled:!1,toolsByName:new Map,lastUserText:d,executedToolKeys:e.keys,completedToolCalls:e.summaries};let g=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(a=>!!a),h=function(a){if(!a||"object"!=typeof a||"function"!==a.type||!a.function||"object"!=typeof a.function)return null;let b=a.function.name;return"string"==typeof b&&b.trim()?b.trim():null}(f),i=h?g.filter(a=>a.name===h):g;return{enabled:i.length>0,toolsByName:new Map(i.map(a=>[a.name,a])),lastUserText:d,executedToolKeys:e.keys,completedToolCalls:e.summaries}}(b),{modeId:p,isThinking:q}=n||E.fast,r=function(a,b=""){let c=[],d=-1,e=-1;for(let b=a.length-1;b>=0;b--)if("user"===String(a[b].role||"")){e=b;break}let f=[];for(let b=0;b<a.length;b++){let c=a[b],d=String(c.role||"user");"developer"===d&&(d="system");let g=I(c);if("tool"===d){if(b<e)continue;let a="string"==typeof c.name?c.name:"unknown_tool",d="string"==typeof c.tool_call_id?c.tool_call_id:"unknown_call";g=`CLIENT TOOL RESULT from caller runtime for ${a} (${d}). Use this result to answer; do not call the same tool again:
|
|
379
379
|
${g}`}else if("assistant"===d&&Array.isArray(c.tool_calls)){if(b<e)continue;let a=c.tool_calls.map(a=>({id:a.id,function:a.function}));g=[g,`Previous assistant tool calls: ${JSON.stringify(a)}`].filter(Boolean).join("\n")}g.trim()&&f.push({role:d,text:g})}for(let a=f.length-1;a>=0;a--)if("user"===f[a].role){d=a;break}for(let a=0;a<f.length;a++){let{role:b,text:e}=f[a];a===d?c.push(e):c.push(`${b}: ${e}`)}return b.trim()&&c.push(b.trim()),c.join("\n\n")}(m,function(a,b){if(!a.enabled)return"";let c=[...a.toolsByName.values()].map((b,c)=>{var d;let e,f,g,h,i,j,k,l;return{tool:b,score:(e=(d=a.lastUserText).toLowerCase(),f=/(?:^|\s|["'`])(?:~|\.?\.?\/|\/)[^\s"'`]+/.test(d),g=!!P(d),h=/\b(l[ií]neas?|line count|cu[aá]ntas? l[ií]neas?|wc\s+-l)\b/.test(e),i=/\b(lee|leer|read|archivo|file|json|config|modelo|default|por defecto|de qu[eé] va|consiste|contenido)\b/.test(e)&&f,k=!(j=/\b(contexto|memoria|historial|conversation history|project memories|ctx_|memory|memories|recordabas?)\b/.test(e))&&/\b(web|internet|fuente|oficial|release|versi[oó]n|ubuntu|latest|actual|contrasta|busca|search)\b/.test(e),l=0,i&&W(b)&&(l+=160),i&&V(b)&&(l+=h?70:20),h&&V(b)&&(l+=120),h&&W(b)&&(l+=i?90:30),k&&!g&&Y(b)&&(l+=170),k&&!g&&X(b)&&(l+=35),k&&Z(b)&&(l-=120),j&&Z(b)&&(l+=170),j&&Y(b)&&(l-=80),Z(b)&&(i||k)&&(l-=80),l+(X(b)?90:Y(b)?85:W(b)?75:V(b)?70:/\b(glob|grep|search files?|file search|content search)\b/.test(T(b))?60:/\b(edit|write|patch|modify|apply)\b/.test(T(b))?50:/\b(task|agent|delegate|subagent)\b/.test(T(b))?40:$(b)?10:Z(b)?20:30)),meta:$(b),index:c}}).sort((a,b)=>b.score-a.score||Number(a.meta)-Number(b.meta)||a.index-b.index).map(({tool:a,score:b})=>({tool:a,score:b}));return['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(b??"auto")}`,...a.completedToolCalls.length>0?["completed_tool_calls:",...a.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):",...c.map(({tool:a},b)=>{var c,d;let e,f,g,h,i;return c=b+1,e=a.description?`
|
|
380
380
|
description: ${a.description}`:"",i=(f=Object.keys(R(d=a.parameters)),g=S(d),h=[],f.length>0&&h.push(`args=${f.join(",")}`),g.length>0&&h.push(`required=${g.join(",")}`),h.length>0?` (${h.join("; ")})`:"").trim(),`${c}. name: ${a.name}${i?`
|
|
381
|
-
${i.slice(1,-1)}`:""}${e?e.replace(/\n /g,"\n "):""}`})].join("\n")}(o,b.tool_choice));if(!r.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:D,headers:{},transformedBody:b};let s={temporary:!0,modeId:p,message:r,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}},v=G(16),w=G(8),x={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":'"Google Chrome";v="149", "Chromium";v="149", "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":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","x-statsig-id":btoa(.5>Math.random()?`e:TypeError: Cannot read properties of null (reading 'children["${F(5,!0)}"]')`:`e:TypeError: Cannot read properties of undefined (reading '${F(10)}')`),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${v}-${w}-00`};if(g.apiKey){let a=(0,f.lT)(g.apiKey);a&&(x.Cookie=a)}(0,d._F)(x,j),i?.info?.("GROK-WEB",`Query to ${a} (modeId=${p}), len=${r.length}`);let y=AbortSignal.timeout(e.MT),z=h?(0,d.OW)(h,y):y;try{k=await u(D,{method:"POST",headers:x,body:JSON.stringify(s),timeoutMs:e.MT,signal:z,stream:!0,streamEofSymbol:"[DONE]"})}catch(a){if(a instanceof t)return i?.error?.("GROK-WEB",`TLS client unavailable: ${a.message}`),{response:new Response(JSON.stringify({error:{message:(0,C.sanitizeErrorMessage)(`Grok TLS client unavailable: ${a.message}`),type:"upstream_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:D,headers:x,transformedBody:s};return i?.error?.("GROK-WEB",`Fetch failed: ${a instanceof Error?a.message:String(a)}`),{response:new Response(JSON.stringify({error:{message:(0,C.sanitizeErrorMessage)(`Grok connection failed: ${a instanceof Error?a.message:String(a)}`),type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:D,headers:x,transformedBody:s}}if(!k.body){let a=k.status,b=`Grok returned HTTP ${a}`;return 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."),i?.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:D,headers:x,transformedBody:s}}let A=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,B=Math.floor(Date.now()/1e3);if(c){var H;let b;l=new Response((H=k.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let e="",f="";for await(let g of al(H,q,o,h,!0)){if(g.fingerprint&&(e=g.fingerprint),g.error){c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{reasoning_content:g.thinking},finish_reason:null,logprobs:null}]})));continue}if(g.toolCalls)return void an(c,b,{id:A,created:B,model:a,fingerprint:e,toolCalls:g.toolCalls});if(g.done)break;if(g.fullMessage){let d=ad(g.fullMessage,o);if(d)return void an(c,b,{id:A,created:B,model:a,fingerprint:e,toolCalls:d})}if(g.delta){var d;f+=g.delta;let h=ad(f,o);if(h)return void an(c,b,{id:A,created:B,model:a,fingerprint:e,toolCalls:h});if(d=f,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>"))continue;c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{content:g.delta},finish_reason:null,logprobs:null}]})))}}c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}catch(d){c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:(0,C.sanitizeErrorMessage)(`[Stream error: ${d instanceof Error?d.message:String(d)}]`)},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{try{c.close()}catch{}}}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else l=await ao(k.body,a,A,B,q,o,h);return{response:l,url:D,headers:x,transformedBody:s}}}},78269:(a,b,c)=>{"use strict";c.d(b,{DH:()=>k});var d=c(97510),e=c(61408),f=c(86522),g=c(57441),h=c(9073),i=c(43659);async function j(a){if(!a.ok||!a.body)return a;let b=a.body.getReader(),c=new TextDecoder,{done:d,value:e}=await b.read();if(d)return b.cancel(),new Response(JSON.stringify({error:{message:"[qoder] empty response",type:"provider_error"}}),{status:502,headers:{"Content-Type":"application/json"}});let f=c.decode(e,{stream:!0}),g=null,h="";for(let a of f.split("\n")){let b=a.trim();if(!b.startsWith("data:"))continue;let c=b.slice(5).trim();if("[DONE]"===c)break;try{let a=JSON.parse(c),b="number"==typeof a.statusCodeValue?a.statusCodeValue:200;200!==b&&(g=b>=400?b:502,h="string"==typeof a.body?a.body:`upstream status ${b}`)}catch{}break}if(g){var j;b.cancel();let a=401===g||403===g?"authentication_error":"provider_error";return new Response(JSON.stringify({error:{message:`[qoder error ${g}: ${(0,i.sanitizeErrorMessage)((j=h).length<=200?j:`${j.slice(0,200)}…`)}]`,type:a}}),{status:g,headers:{"Content-Type":"application/json"}})}return new Response(new ReadableStream({start(a){a.enqueue(e)},pull:a=>b.read().then(({done:b,value:c})=>{b?a.close():a.enqueue(c)}),cancel(){b.cancel()}}),{status:a.status,statusText:a.statusText,headers:new Headers(a.headers)})}class k extends d.Hv{constructor(){super("qoder",e.xq.qoder)}buildHeaders(a,b=!0,c,e){let g=super.buildHeaders(a,b,c,e);return(0,d.Uv)(g,f.Ov),g}transformRequest(a,b){let c={..."object"==typeof b&&null!==b?b:{},model:a};return(0,g.i8)(c,"QoderExecutor")}async execute({model:a,body:b,stream:e,credentials:g,signal:k,upstreamExtraHeaders:l}){let m,n,o=function(a){if("string"==typeof a.apiKey&&a.apiKey.trim())return a.apiKey.trim();if("string"==typeof a.accessToken&&a.accessToken.trim())return a.accessToken.trim();if("string"==typeof a.refreshToken&&a.refreshToken.trim())return a.refreshToken.trim();let b=String(process.env.QODER_PERSONAL_ACCESS_TOKEN||"").trim();return b||""}(g);if(!o)return{response:new Response(JSON.stringify({error:{message:"Qoder access token or API Key is required. Please sign in or set a PAT.",type:"authentication_error",code:"token_required"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:"https://dashscope.aliyuncs.com",headers:{"Content-Type":"application/json"},transformedBody:b};let p=a||"qwen3-coder-plus",q=o.startsWith("pt-"),r=p;if(q?m="https://api.qoder.com/v1/chat/completions":("qwen3.5-plus"===p||"qwen3.6-plus"===p?r="coder-model":"vision-model"===p&&(r="qwen3-vl-plus"),m="https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"),"object"==typeof g&&null!==g&&(n=g.customApiBase||g.resourceUrl),"string"==typeof n&&n.trim()){let a=n.trim();a.startsWith("http")||(a=`https://${a}`),a.endsWith("/v1")||(a=a.endsWith("/")?`${a}v1`:`${a}/v1`),m=`${a}/chat/completions`}let s={"Content-Type":"application/json",Authorization:`Bearer ${o}`,...q?{}:(0,f.y5)()};(0,d._F)(s,l);let t=this.transformRequest(r,b,e,g),u=JSON.stringify(t);try{let a=await fetch(m,{method:"POST",headers:s,body:u,signal:k});if(!a.ok&&401===a.status&&q){let a=await (0,h.u1)(o,{signal:k}),b=(0,h.Xi)(u,a),d="https://api1.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation?AgentId=agent_common",e=await fetch(d,{method:"POST",headers:b,body:u,signal:k});if(e.ok||200===e.status){let a=(await e.text()).split("\n").filter(a=>a.startsWith("data: ")),f="";for(let b of a)try{let a=JSON.parse(b.slice(6)),{extractTextFromQoderEnvelope:d}=await Promise.resolve().then(c.bind(c,9073)),e=d(a);e&&(f+=e)}catch{}let{buildQoderCompletionPayload:g}=await Promise.resolve().then(c.bind(c,9073)),h=g({model:r||p,text:f});return{response:new Response(JSON.stringify(h),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:b,transformedBody:t}}let f=await e.text();return{response:new Response(JSON.stringify({error:{message:`Qoder API (Cosy) failed with status ${e.status}: ${f}. Your PAT token may not be valid for the chat API. Try using an OAuth token or a different auth method.`,type:"authentication_error",code:"token_invalid"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:d,headers:b,transformedBody:t}}if(!a.ok){let b=await a.text();return{response:new Response(JSON.stringify({error:{message:`Qoder API failed with status ${a.status}: ${b}`,type:401===a.status?"authentication_error":"provider_error"}}),{status:a.status,headers:{"Content-Type":"application/json"}}),url:m,headers:s,transformedBody:t}}return{response:await j(a),url:m,headers:s,transformedBody:t}}catch(a){if("AbortError"===a.name)throw a;return{response:new Response(JSON.stringify({error:{message:`Qoder fetch error: ${(0,i.sanitizeErrorMessage)(a.message)}`,type:"provider_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:m,headers:s,transformedBody:t}}}}},78340:(a,b,c)=>{"use strict";c.d(b,{c:()=>e});let d=[{match:/claude-opus-4/i,drop:["temperature"]},{provider:"github",match:/gpt-5\.4/i,drop:["temperature"]},{provider:"github",match:a=>/claude/i.test(a)&&!/claude.*(opus|sonnet).*4\.6/i.test(a),drop:["thinking","reasoning_effort"]}];function e(a,b,c){if(!b||!c||"object"!=typeof c)return c;for(let e of d)if((!e.provider||e.provider===a)&&("function"==typeof e.match?e.match(b):e.match.test(b)))for(let a of e.drop)void 0!==c[a]&&delete c[a];return c}},79855:(a,b,c)=>{"use strict";c.d(b,{L:()=>s});var d=c(77598),e=c(97510),f=c(61408),g=c(8590),h=c(44418);function i(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function j(a){if(!Array.isArray(a))return"";let b=[],c=[];for(let e of a){var d;let a=String(e?.role||"user").toLowerCase(),f="string"==typeof(d=e?.content)?d.trim():Array.isArray(d)?d.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";if(f){if("system"===a||"developer"===a){b.push(f);continue}"user"===a&&c.push(f)}}let e=c.at(-1)||"";return b.length?`System instructions:
|
|
381
|
+
${i.slice(1,-1)}`:""}${e?e.replace(/\n /g,"\n "):""}`})].join("\n")}(o,b.tool_choice));if(!r.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:D,headers:{},transformedBody:b};let s={temporary:!0,modeId:p,message:r,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}},v=G(16),w=G(8),x={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":'"Google Chrome";v="149", "Chromium";v="149", "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":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36","x-statsig-id":btoa(.5>Math.random()?`e:TypeError: Cannot read properties of null (reading 'children["${F(5,!0)}"]')`:`e:TypeError: Cannot read properties of undefined (reading '${F(10)}')`),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${v}-${w}-00`};if(g.apiKey){let a=(0,f.lT)(g.apiKey);a&&(x.Cookie=a)}(0,d._F)(x,j),i?.info?.("GROK-WEB",`Query to ${a} (modeId=${p}), len=${r.length}`);let y=AbortSignal.timeout(e.MT),z=h?(0,d.OW)(h,y):y;try{k=await u(D,{method:"POST",headers:x,body:JSON.stringify(s),timeoutMs:e.MT,signal:z,stream:!0,streamEofSymbol:"[DONE]"})}catch(a){if(a instanceof t)return i?.error?.("GROK-WEB",`TLS client unavailable: ${a.message}`),{response:new Response(JSON.stringify({error:{message:(0,C.sanitizeErrorMessage)(`Grok TLS client unavailable: ${a.message}`),type:"upstream_error",code:"TLS_CLIENT_UNAVAILABLE"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:D,headers:x,transformedBody:s};return i?.error?.("GROK-WEB",`Fetch failed: ${a instanceof Error?a.message:String(a)}`),{response:new Response(JSON.stringify({error:{message:(0,C.sanitizeErrorMessage)(`Grok connection failed: ${a instanceof Error?a.message:String(a)}`),type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:D,headers:x,transformedBody:s}}if(!k.body){let a=k.status,b=`Grok returned HTTP ${a}`;return 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."),i?.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:D,headers:x,transformedBody:s}}let A=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,B=Math.floor(Date.now()/1e3);if(c){var H;let b;l=new Response((H=k.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let e="",f="";for await(let g of al(H,q,o,h,!0)){if(g.fingerprint&&(e=g.fingerprint),g.error){c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{reasoning_content:g.thinking},finish_reason:null,logprobs:null}]})));continue}if(g.toolCalls)return void an(c,b,{id:A,created:B,model:a,fingerprint:e,toolCalls:g.toolCalls});if(g.done)break;if(g.fullMessage){let d=ad(g.fullMessage,o);if(d)return void an(c,b,{id:A,created:B,model:a,fingerprint:e,toolCalls:d})}if(g.delta){var d;f+=g.delta;let h=ad(f,o);if(h)return void an(c,b,{id:A,created:B,model:a,fingerprint:e,toolCalls:h});if(d=f,/<tool(?:_call)?$|<tool_call[^>]*$/.test(d)||d.includes("<tool_call>")&&!d.includes("</tool_call>"))continue;c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{content:g.delta},finish_reason:null,logprobs:null}]})))}}c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:e||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}catch(d){c.enqueue(b.encode(am({id:A,object:"chat.completion.chunk",created:B,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:(0,C.sanitizeErrorMessage)(`[Stream error: ${d instanceof Error?d.message:String(d)}]`)},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{try{c.close()}catch{}}}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else l=await ao(k.body,a,A,B,q,o,h);return{response:l,url:D,headers:x,transformedBody:s}}}},78269:(a,b,c)=>{c.d(b,{DH:()=>k});var d=c(97510),e=c(61408),f=c(86522),g=c(57441),h=c(9073),i=c(43659);async function j(a){if(!a.ok||!a.body)return a;let b=a.body.getReader(),c=new TextDecoder,{done:d,value:e}=await b.read();if(d)return b.cancel(),new Response(JSON.stringify({error:{message:"[qoder] empty response",type:"provider_error"}}),{status:502,headers:{"Content-Type":"application/json"}});let f=c.decode(e,{stream:!0}),g=null,h="";for(let a of f.split("\n")){let b=a.trim();if(!b.startsWith("data:"))continue;let c=b.slice(5).trim();if("[DONE]"===c)break;try{let a=JSON.parse(c),b="number"==typeof a.statusCodeValue?a.statusCodeValue:200;200!==b&&(g=b>=400?b:502,h="string"==typeof a.body?a.body:`upstream status ${b}`)}catch{}break}if(g){var j;b.cancel();let a=401===g||403===g?"authentication_error":"provider_error";return new Response(JSON.stringify({error:{message:`[qoder error ${g}: ${(0,i.sanitizeErrorMessage)((j=h).length<=200?j:`${j.slice(0,200)}…`)}]`,type:a}}),{status:g,headers:{"Content-Type":"application/json"}})}return new Response(new ReadableStream({start(a){a.enqueue(e)},pull:a=>b.read().then(({done:b,value:c})=>{b?a.close():a.enqueue(c)}),cancel(){b.cancel()}}),{status:a.status,statusText:a.statusText,headers:new Headers(a.headers)})}class k extends d.Hv{constructor(){super("qoder",e.xq.qoder)}buildHeaders(a,b=!0,c,e){let g=super.buildHeaders(a,b,c,e);return(0,d.Uv)(g,f.Ov),g}transformRequest(a,b){let c={..."object"==typeof b&&null!==b?b:{},model:a};return(0,g.i8)(c,"QoderExecutor")}async execute({model:a,body:b,stream:e,credentials:g,signal:k,upstreamExtraHeaders:l}){let m,n,o=function(a){if("string"==typeof a.apiKey&&a.apiKey.trim())return a.apiKey.trim();if("string"==typeof a.accessToken&&a.accessToken.trim())return a.accessToken.trim();if("string"==typeof a.refreshToken&&a.refreshToken.trim())return a.refreshToken.trim();let b=String(process.env.QODER_PERSONAL_ACCESS_TOKEN||"").trim();return b||""}(g);if(!o)return{response:new Response(JSON.stringify({error:{message:"Qoder access token or API Key is required. Please sign in or set a PAT.",type:"authentication_error",code:"token_required"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:"https://dashscope.aliyuncs.com",headers:{"Content-Type":"application/json"},transformedBody:b};let p=a||"qwen3-coder-plus",q=o.startsWith("pt-"),r=p;if(q?m="https://api.qoder.com/v1/chat/completions":("qwen3.5-plus"===p||"qwen3.6-plus"===p?r="coder-model":"vision-model"===p&&(r="qwen3-vl-plus"),m="https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"),"object"==typeof g&&null!==g&&(n=g.customApiBase||g.resourceUrl),"string"==typeof n&&n.trim()){let a=n.trim();a.startsWith("http")||(a=`https://${a}`),a.endsWith("/v1")||(a=a.endsWith("/")?`${a}v1`:`${a}/v1`),m=`${a}/chat/completions`}let s={"Content-Type":"application/json",Authorization:`Bearer ${o}`,...q?{}:(0,f.y5)()};(0,d._F)(s,l);let t=this.transformRequest(r,b,e,g),u=JSON.stringify(t);try{let a=await fetch(m,{method:"POST",headers:s,body:u,signal:k});if(!a.ok&&401===a.status&&q){let a=await (0,h.u1)(o,{signal:k}),b=(0,h.Xi)(u,a),d="https://api1.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation?AgentId=agent_common",e=await fetch(d,{method:"POST",headers:b,body:u,signal:k});if(e.ok||200===e.status){let a=(await e.text()).split("\n").filter(a=>a.startsWith("data: ")),f="";for(let b of a)try{let a=JSON.parse(b.slice(6)),{extractTextFromQoderEnvelope:d}=await Promise.resolve().then(c.bind(c,9073)),e=d(a);e&&(f+=e)}catch{}let{buildQoderCompletionPayload:g}=await Promise.resolve().then(c.bind(c,9073)),h=g({model:r||p,text:f});return{response:new Response(JSON.stringify(h),{status:200,headers:{"Content-Type":"application/json"}}),url:d,headers:b,transformedBody:t}}let f=await e.text();return{response:new Response(JSON.stringify({error:{message:`Qoder API (Cosy) failed with status ${e.status}: ${f}. Your PAT token may not be valid for the chat API. Try using an OAuth token or a different auth method.`,type:"authentication_error",code:"token_invalid"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:d,headers:b,transformedBody:t}}if(!a.ok){let b=await a.text();return{response:new Response(JSON.stringify({error:{message:`Qoder API failed with status ${a.status}: ${b}`,type:401===a.status?"authentication_error":"provider_error"}}),{status:a.status,headers:{"Content-Type":"application/json"}}),url:m,headers:s,transformedBody:t}}return{response:await j(a),url:m,headers:s,transformedBody:t}}catch(a){if("AbortError"===a.name)throw a;return{response:new Response(JSON.stringify({error:{message:`Qoder fetch error: ${(0,i.sanitizeErrorMessage)(a.message)}`,type:"provider_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:m,headers:s,transformedBody:t}}}}},78340:(a,b,c)=>{c.d(b,{c:()=>e});let d=[{match:/claude-opus-4/i,drop:["temperature"]},{provider:"github",match:/gpt-5\.4/i,drop:["temperature"]},{provider:"github",match:a=>/claude/i.test(a)&&!/claude.*(opus|sonnet).*4\.6/i.test(a),drop:["thinking","reasoning_effort"]}];function e(a,b,c){if(!b||!c||"object"!=typeof c)return c;for(let e of d)if((!e.provider||e.provider===a)&&("function"==typeof e.match?e.match(b):e.match.test(b)))for(let a of e.drop)void 0!==c[a]&&delete c[a];return c}},79855:(a,b,c)=>{c.d(b,{L:()=>s});var d=c(77598),e=c(97510),f=c(61408),g=c(8590),h=c(44418);function i(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function j(a){if(!Array.isArray(a))return"";let b=[],c=[];for(let e of a){var d;let a=String(e?.role||"user").toLowerCase(),f="string"==typeof(d=e?.content)?d.trim():Array.isArray(d)?d.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";if(f){if("system"===a||"developer"===a){b.push(f);continue}"user"===a&&c.push(f)}}let e=c.at(-1)||"";return b.length?`System instructions:
|
|
382
382
|
${b.join("\n\n")}
|
|
383
383
|
|
|
384
384
|
${e}`.trim():e}function k(a,b){return new Response(JSON.stringify({error:{message:b,type:401===a||403===a?"authentication_error":429===a?"rate_limit_error":"api_error"}}),{status:a,headers:{"Content-Type":"application/json"}})}function l(a){return`data: ${JSON.stringify(a)}
|
|
385
385
|
|
|
386
|
-
`}function m(a,b){return b?{...a,...b,providerSpecificData:{...a.providerSpecificData||{},...b.providerSpecificData||{}}}:a}function n(a){return(0,h.L_)(a?.providerSpecificData)}function o(a){return{"Content-Type":"application/json",Accept:"application/json",...a?{Authorization:`Bearer ${a}`}:{}}}function p(a){return{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${a.token}`,...a.headers}}function q(a){return"gitlab-duo"===a}async function r(a,b,c,d){a.onCredentialsRefreshed&&await a.onCredentialsRefreshed({providerSpecificData:{...b.providerSpecificData||{},baseUrl:c,gitlabDirectAccess:{token:d.token,baseUrl:d.baseUrl,expiresAt:d.expiresAt,headers:d.headers}}})}class s extends e.Hv{constructor(a="gitlab"){super(a,{id:a,baseUrl:"https://gitlab.com/api/v4/code_suggestions/completions",headers:{"Content-Type":"application/json"}})}buildUrl(a,b,c=0,d=null){return(0,h.Tg)(n(d||{})).publicCompletionsUrl}buildHeaders(a,b=!1){return o(a?.apiKey||a?.accessToken||null)}transformRequest(a,b,c,d){let e=j(b.messages),f=d?.providerSpecificData&&"object"==typeof d.providerSpecificData?d.providerSpecificData:{},g="string"==typeof f.projectPath&&f.projectPath.trim().length>0?f.projectPath.trim():void 0;return{current_file:{file_name:"string"==typeof f.fileName&&f.fileName.trim().length>0?f.fileName.trim():"snippet.txt",content_above_cursor:e,content_below_cursor:""},intent:"generation",generation_type:"small_file",stream:!1,...g?{project_path:g}:{},...e?{user_instruction:e}:{}}}async refreshCredentials(a,b){if(!q(this.provider)||!a.refreshToken)return null;try{return await (0,g.iD)(this.provider,a,b)}catch(a){return b?.error?.("TOKEN",`GitLab Duo refresh error: ${a instanceof Error?a.message:String(a)}`),null}}needsRefresh(a){return!!(q(this.provider)&&!a?.accessToken&&a?.refreshToken)||super.needsRefresh(a)}async fetchGitLabDirectAccess(a,b,c){let d=(0,h.Tg)(a),g=AbortSignal.timeout(f.MT),i=c?(0,e.OW)(c,g):g,j=await fetch(d.directAccessUrl,{method:"POST",headers:{Authorization:`Bearer ${b}`,Accept:"application/json"},signal:i}),k=await j.text();if(!j.ok)return{directAccess:null,response:j,bodyText:k};let l=k?JSON.parse(k):{};return{directAccess:(0,h.cc)(l),response:j,bodyText:k}}async resolveRequestTarget(a,b){let c=n(b),d=(0,h.Tg)(c);if(!q(this.provider))return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.apiKey||b.accessToken||null)},credentials:b,errorResponse:null};if(!b.accessToken)return{target:null,credentials:b,errorResponse:k(401,"GitLab Duo OAuth connection is missing an access token")};let e=(0,h.RW)(b.providerSpecificData);if(e)return{target:{mode:"direct",url:(0,h.wA)(e.baseUrl),headers:p(e)},credentials:b,errorResponse:null};try{let{directAccess:e,response:f,bodyText:g}=await this.fetchGitLabDirectAccess(c,b.accessToken,a.signal);if(e){await r(a,b,c,e);let d=m(b,{providerSpecificData:{...b.providerSpecificData||{},baseUrl:c,gitlabDirectAccess:{token:e.token,baseUrl:e.baseUrl,expiresAt:e.expiresAt,headers:e.headers}}});return{target:{mode:"direct",url:(0,h.wA)(e.baseUrl),headers:p(e)},credentials:d,errorResponse:null}}if(!f)return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.accessToken)},credentials:b,errorResponse:null};if(401===f.status)return{target:null,credentials:b,errorResponse:k(401,"GitLab Duo direct access token request was rejected")};if(403===f.status&&!(0,h.zF)(f.status,g))return{target:null,credentials:b,errorResponse:k(403,"GitLab Duo direct access scope is unavailable")};return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.accessToken)},credentials:b,errorResponse:null}}catch(a){return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.accessToken)},credentials:b,errorResponse:null}}}async performRequest(a,b,c){let d={...b.headers};(0,e._F)(d,a.upstreamExtraHeaders);let g=AbortSignal.timeout(f.MT),h=a.signal?(0,e.OW)(a.signal,g):g;return{response:await fetch(b.url,{method:"POST",headers:d,body:JSON.stringify(c),signal:h}),headers:d}}async execute(a){let b,c,e,f;if(!j(a.body?.messages))return{response:k(400,"GitLab Duo requires at least one user message")};let g=a.credentials;if(this.needsRefresh(g)){let b=await this.refreshCredentials(g,a.log||null);b&&(g=m(g,b),await a.onCredentialsRefreshed?.({...b,providerSpecificData:{...a.credentials.providerSpecificData||{},...b.providerSpecificData||{}}}))}let p=this.transformRequest(a.model,a.body||{},!1,g),{target:q,credentials:r,errorResponse:s}=await this.resolveRequestTarget(a,g);if(s||!q)return{response:s||k(500,"GitLab Duo target resolution failed")};g=r;let t=q;try{let d=await this.performRequest(a,q,p);b=d.response,c=d.headers}catch(b){let a=b instanceof Error?b.message:String(b);return{response:k(502,`GitLab Duo connection failed: ${a}`),url:q.url,headers:q.headers,transformedBody:p}}if(!b.ok&&"direct"===q.mode){let d={mode:"monolith",url:(0,h.Tg)(n(g)).publicCompletionsUrl,headers:o(g.accessToken||null)};try{let e=await this.performRequest(a,d,p);b=e.response,c=e.headers,t=d}catch(b){let a=b instanceof Error?b.message:String(b);return{response:k(502,`GitLab Duo connection failed: ${a}`),url:d.url,headers:d.headers,transformedBody:p}}}if(!b.ok){let a=await b.text(),d=401===b.status||403===b.status?`GitLab Duo auth failed: ${b.status}`:429===b.status?"GitLab Duo rate limited the request":a||`GitLab Duo request failed: ${b.status}`;return{response:k(b.status,d),url:t.url,headers:c,transformedBody:p}}let u=await b.json(),v=Array.isArray(u.choices)?u.choices:[],w=v[0]&&"object"==typeof v[0]?v[0]:{},x="string"==typeof w.text?w.text:"string"==typeof u.content?u.content:"",y=function(a,b){let c=a.model;if("string"==typeof c&&c.trim().length>0)return c.trim();let d=i(c),e="string"==typeof d.name&&d.name.trim().length>0?d.name.trim():"string"==typeof d.id&&d.id.trim().length>0?d.id.trim():null;if(e)return e;let f=i(a.metadata);for(let b of[i(f.model_details),i(a.model_details)]){let a="string"==typeof b.model_name&&b.model_name.trim().length>0?b.model_name.trim():"string"==typeof b.name&&b.name.trim().length>0?b.name.trim():null;if(a)return a}return b}(u,a.model),z=`chatcmpl-gitlab-${(0,d.randomUUID)()}`,A=Math.floor(Date.now()/1e3);return{response:a.stream?(e=new TextEncoder,new Response(new ReadableStream({start(a){a.enqueue(e.encode(l({id:z,object:"chat.completion.chunk",created:A,model:y,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]}))),x&&a.enqueue(e.encode(l({id:z,object:"chat.completion.chunk",created:A,model:y,choices:[{index:0,delta:{content:x},finish_reason:null}]}))),a.enqueue(e.encode(l({id:z,object:"chat.completion.chunk",created:A,model:y,choices:[{index:0,delta:{},finish_reason:"stop"}]}))),a.enqueue(e.encode("data: [DONE]\n\n")),a.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})):new Response(JSON.stringify({id:z,object:"chat.completion",created:A,model:y,choices:[{index:0,message:{role:"assistant",content:x},finish_reason:"stop"}],usage:{prompt_tokens:f=Math.max(1,Math.ceil(x.length/4)),completion_tokens:f,total_tokens:2*f}}),{status:200,headers:{"Content-Type":"application/json"}}),url:t.url,headers:c,transformedBody:p}}}},81551:(a,b,c)=>{
|
|
386
|
+
`}function m(a,b){return b?{...a,...b,providerSpecificData:{...a.providerSpecificData||{},...b.providerSpecificData||{}}}:a}function n(a){return(0,h.L_)(a?.providerSpecificData)}function o(a){return{"Content-Type":"application/json",Accept:"application/json",...a?{Authorization:`Bearer ${a}`}:{}}}function p(a){return{"Content-Type":"application/json",Accept:"application/json",Authorization:`Bearer ${a.token}`,...a.headers}}function q(a){return"gitlab-duo"===a}async function r(a,b,c,d){a.onCredentialsRefreshed&&await a.onCredentialsRefreshed({providerSpecificData:{...b.providerSpecificData||{},baseUrl:c,gitlabDirectAccess:{token:d.token,baseUrl:d.baseUrl,expiresAt:d.expiresAt,headers:d.headers}}})}class s extends e.Hv{constructor(a="gitlab"){super(a,{id:a,baseUrl:"https://gitlab.com/api/v4/code_suggestions/completions",headers:{"Content-Type":"application/json"}})}buildUrl(a,b,c=0,d=null){return(0,h.Tg)(n(d||{})).publicCompletionsUrl}buildHeaders(a,b=!1){return o(a?.apiKey||a?.accessToken||null)}transformRequest(a,b,c,d){let e=j(b.messages),f=d?.providerSpecificData&&"object"==typeof d.providerSpecificData?d.providerSpecificData:{},g="string"==typeof f.projectPath&&f.projectPath.trim().length>0?f.projectPath.trim():void 0;return{current_file:{file_name:"string"==typeof f.fileName&&f.fileName.trim().length>0?f.fileName.trim():"snippet.txt",content_above_cursor:e,content_below_cursor:""},intent:"generation",generation_type:"small_file",stream:!1,...g?{project_path:g}:{},...e?{user_instruction:e}:{}}}async refreshCredentials(a,b){if(!q(this.provider)||!a.refreshToken)return null;try{return await (0,g.iD)(this.provider,a,b)}catch(a){return b?.error?.("TOKEN",`GitLab Duo refresh error: ${a instanceof Error?a.message:String(a)}`),null}}needsRefresh(a){return!!(q(this.provider)&&!a?.accessToken&&a?.refreshToken)||super.needsRefresh(a)}async fetchGitLabDirectAccess(a,b,c){let d=(0,h.Tg)(a),g=AbortSignal.timeout(f.MT),i=c?(0,e.OW)(c,g):g,j=await fetch(d.directAccessUrl,{method:"POST",headers:{Authorization:`Bearer ${b}`,Accept:"application/json"},signal:i}),k=await j.text();if(!j.ok)return{directAccess:null,response:j,bodyText:k};let l=k?JSON.parse(k):{};return{directAccess:(0,h.cc)(l),response:j,bodyText:k}}async resolveRequestTarget(a,b){let c=n(b),d=(0,h.Tg)(c);if(!q(this.provider))return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.apiKey||b.accessToken||null)},credentials:b,errorResponse:null};if(!b.accessToken)return{target:null,credentials:b,errorResponse:k(401,"GitLab Duo OAuth connection is missing an access token")};let e=(0,h.RW)(b.providerSpecificData);if(e)return{target:{mode:"direct",url:(0,h.wA)(e.baseUrl),headers:p(e)},credentials:b,errorResponse:null};try{let{directAccess:e,response:f,bodyText:g}=await this.fetchGitLabDirectAccess(c,b.accessToken,a.signal);if(e){await r(a,b,c,e);let d=m(b,{providerSpecificData:{...b.providerSpecificData||{},baseUrl:c,gitlabDirectAccess:{token:e.token,baseUrl:e.baseUrl,expiresAt:e.expiresAt,headers:e.headers}}});return{target:{mode:"direct",url:(0,h.wA)(e.baseUrl),headers:p(e)},credentials:d,errorResponse:null}}if(!f)return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.accessToken)},credentials:b,errorResponse:null};if(401===f.status)return{target:null,credentials:b,errorResponse:k(401,"GitLab Duo direct access token request was rejected")};if(403===f.status&&!(0,h.zF)(f.status,g))return{target:null,credentials:b,errorResponse:k(403,"GitLab Duo direct access scope is unavailable")};return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.accessToken)},credentials:b,errorResponse:null}}catch(a){return{target:{mode:"monolith",url:d.publicCompletionsUrl,headers:o(b.accessToken)},credentials:b,errorResponse:null}}}async performRequest(a,b,c){let d={...b.headers};(0,e._F)(d,a.upstreamExtraHeaders);let g=AbortSignal.timeout(f.MT),h=a.signal?(0,e.OW)(a.signal,g):g;return{response:await fetch(b.url,{method:"POST",headers:d,body:JSON.stringify(c),signal:h}),headers:d}}async execute(a){let b,c,e,f;if(!j(a.body?.messages))return{response:k(400,"GitLab Duo requires at least one user message")};let g=a.credentials;if(this.needsRefresh(g)){let b=await this.refreshCredentials(g,a.log||null);b&&(g=m(g,b),await a.onCredentialsRefreshed?.({...b,providerSpecificData:{...a.credentials.providerSpecificData||{},...b.providerSpecificData||{}}}))}let p=this.transformRequest(a.model,a.body||{},!1,g),{target:q,credentials:r,errorResponse:s}=await this.resolveRequestTarget(a,g);if(s||!q)return{response:s||k(500,"GitLab Duo target resolution failed")};g=r;let t=q;try{let d=await this.performRequest(a,q,p);b=d.response,c=d.headers}catch(b){let a=b instanceof Error?b.message:String(b);return{response:k(502,`GitLab Duo connection failed: ${a}`),url:q.url,headers:q.headers,transformedBody:p}}if(!b.ok&&"direct"===q.mode){let d={mode:"monolith",url:(0,h.Tg)(n(g)).publicCompletionsUrl,headers:o(g.accessToken||null)};try{let e=await this.performRequest(a,d,p);b=e.response,c=e.headers,t=d}catch(b){let a=b instanceof Error?b.message:String(b);return{response:k(502,`GitLab Duo connection failed: ${a}`),url:d.url,headers:d.headers,transformedBody:p}}}if(!b.ok){let a=await b.text(),d=401===b.status||403===b.status?`GitLab Duo auth failed: ${b.status}`:429===b.status?"GitLab Duo rate limited the request":a||`GitLab Duo request failed: ${b.status}`;return{response:k(b.status,d),url:t.url,headers:c,transformedBody:p}}let u=await b.json(),v=Array.isArray(u.choices)?u.choices:[],w=v[0]&&"object"==typeof v[0]?v[0]:{},x="string"==typeof w.text?w.text:"string"==typeof u.content?u.content:"",y=function(a,b){let c=a.model;if("string"==typeof c&&c.trim().length>0)return c.trim();let d=i(c),e="string"==typeof d.name&&d.name.trim().length>0?d.name.trim():"string"==typeof d.id&&d.id.trim().length>0?d.id.trim():null;if(e)return e;let f=i(a.metadata);for(let b of[i(f.model_details),i(a.model_details)]){let a="string"==typeof b.model_name&&b.model_name.trim().length>0?b.model_name.trim():"string"==typeof b.name&&b.name.trim().length>0?b.name.trim():null;if(a)return a}return b}(u,a.model),z=`chatcmpl-gitlab-${(0,d.randomUUID)()}`,A=Math.floor(Date.now()/1e3);return{response:a.stream?(e=new TextEncoder,new Response(new ReadableStream({start(a){a.enqueue(e.encode(l({id:z,object:"chat.completion.chunk",created:A,model:y,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]}))),x&&a.enqueue(e.encode(l({id:z,object:"chat.completion.chunk",created:A,model:y,choices:[{index:0,delta:{content:x},finish_reason:null}]}))),a.enqueue(e.encode(l({id:z,object:"chat.completion.chunk",created:A,model:y,choices:[{index:0,delta:{},finish_reason:"stop"}]}))),a.enqueue(e.encode("data: [DONE]\n\n")),a.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})):new Response(JSON.stringify({id:z,object:"chat.completion",created:A,model:y,choices:[{index:0,message:{role:"assistant",content:x},finish_reason:"stop"}],usage:{prompt_tokens:f=Math.max(1,Math.ceil(x.length/4)),completion_tokens:f,total_tokens:2*f}}),{status:200,headers:{"Content-Type":"application/json"}}),url:t.url,headers:c,transformedBody:p}}}},81551:(a,b,c)=>{c.d(b,{P:()=>r});var d=c(97510),e=c(61408),f=c(43659),g=c(50954);let h="https://huggingface.co",i=`${h}/chat/conversation`,j=`${h}/chat/api/v2/conversations`;function k(a){return`data: ${JSON.stringify(a)}
|
|
387
387
|
|
|
388
|
-
`}function l(a){return Math.max(1,Math.ceil((a||"").length/4))}async function m(a){let b=a.headers.get("content-type")||"",c=await a.text().catch(()=>"");if(!c)return{message:null,details:null};if(b.includes("json"))try{let a=JSON.parse(c),b="string"==typeof a.message?a.message:"string"==typeof a.error?a.error:a.error&&"object"==typeof a.error&&"string"==typeof a.error.message?String(a.error.message):null;return{message:b?(0,f.sanitizeErrorMessage)(b):null,details:a}}catch{}return{message:(0,f.sanitizeErrorMessage)(c),details:{body:c}}}async function n(a,b,c){let d=await fetch(`${j}/${a}`,{method:"GET",headers:b,signal:c});if(!d.ok)return null;let e=await d.text().catch(()=>"");if(!e)return null;try{return function(a){let b=!a||"object"!=typeof a||Array.isArray(a)?a:a.json&&"object"==typeof a.json?a.json:a;if(!b||"object"!=typeof b||Array.isArray(b))return null;if("string"==typeof b.rootMessageId&&b.rootMessageId.trim())return b.rootMessageId;let c=(Array.isArray(b.messages)?b.messages:[]).at(-1);if(c&&"object"==typeof c){let a=c.id;if("string"==typeof a&&a.trim())return a}return null}(JSON.parse(e))}catch{return null}}function o(a){try{let b=JSON.parse(a);if("stream"===b.type&&"string"==typeof b.token){let a=b.token.replace(/\0/g,"");if(a)return{token:a}}if("finalAnswer"===b.type&&"string"==typeof b.text)return{text:b.text,done:!0};if("status"===b.type){if("error"===b.status)return{error:b.message||"HuggingChat generation error"};if("finished"===b.status)return{done:!0}}}catch{}return{}}async function*p(a,b,c,d,e){let f=a.getReader(),g=new TextDecoder,h="",i=!1,j="",l=!1;try{for(;!e?.aborted;){let{value:a,done:e}=await f.read();if(e)break;let m=(h+=g.decode(a,{stream:!0})).split("\n");for(let a of(h=m.pop()||"",m)){let e=a.trim();if(!e)continue;let f=o(e);if(f.error){yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}),yield"data: [DONE]\n\n",l=!0;return}if(f.token&&(i||(i=!0,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),j+=f.token,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:f.token},finish_reason:null}]})),f.text){let a=f.text.slice(j.length);a&&(i||(i=!0,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:a},finish_reason:null}]})),l=!0;break}if(f.done){l=!0;break}}if(l)break}if(!l&&h.trim()){let a=o(h.trim());a.token&&!e?.aborted&&(i||(i=!0,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:a.token},finish_reason:null}]}))}}finally{f.releaseLock()}e?.aborted||(yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}),yield"data: [DONE]\n\n")}async function q(a,b){let c=a.getReader(),d=new TextDecoder,e="",f="";try{for(;!b?.aborted;){let{value:a,done:b}=await c.read();if(b)break;let g=(e+=d.decode(a,{stream:!0})).split("\n");for(let a of(e=g.pop()||"",g)){let b=a.trim();if(!b)continue;let c=o(b);if(c.token&&(f+=c.token),c.text)return c.text;if(c.error)throw Error(c.error)}}if(e.trim()){let a=o(e.trim());if(a.text)return a.text;a.token&&(f+=a.token)}}finally{c.releaseLock()}return f}class r extends d.Hv{constructor(){super("huggingchat",{id:"huggingchat",baseUrl:h})}async execute(a){var b,c;let k,o,{model:r,body:s,stream:t,credentials:u,signal:v,log:w,upstreamExtraHeaders:x}=a,y=s.messages;if(!y||!Array.isArray(y)||0===y.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:i,headers:{},transformedBody:s};if("string"==typeof(b=u.apiKey)&&b.trim().startsWith("enc:v1:"))return{response:new Response(JSON.stringify({error:{message:"HuggingChat credentials are encrypted but STORAGE_ENCRYPTION_KEY is not loaded. Restore the encryption key or re-save the HuggingChat cookie.",type:"auth_error"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:s};let z=(c=u.apiKey||"",(0,g.p1)(c,"hf-chat"));if(!z)return{response:new Response(JSON.stringify({error:{message:"HuggingChat requires a session cookie. Log in to huggingface.co/chat, open DevTools > Application > Cookies, and copy the hf-chat cookie value.",type:"auth_error"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:s};let A=r||"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT",{inputs:B,systemPrompt:C}=function(a){let b=[],c=[];for(let e of a){var d;let a=String(e.role||"user"),f="string"==typeof(d=e.content)?d.trim():Array.isArray(d)?d.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";f&&("system"===a||"developer"===a?b.push(f):("user"===a||"assistant"===a)&&c.push({role:a,content:f}))}if(0===c.length)return{inputs:b.join("\n\n"),systemPrompt:null};if(1===c.length&&"user"===c[0].role)return{inputs:c[0].content,systemPrompt:b.length>0?b.join("\n\n"):null};let e=[];for(let a of c){let b="user"===a.role?"User":"Assistant";e.push(`${b}: ${a.content}`)}return e.push("Assistant:"),{inputs:e.join("\n\n"),systemPrompt:b.length>0?b.join("\n\n"):null}}(y);if(!B.trim())return{response:new Response(JSON.stringify({error:{message:"Empty prompt after processing messages",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:s};let D={Cookie:z,"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:h,Referer:`${h}/chat/`},E=AbortSignal.timeout(e.MT),F=v?(0,d.OW)(v,E):E;try{let a={model:A};C&&(a.preprompt=C);let b=await fetch(i,{method:"POST",headers:{...D,"Content-Type":"application/json"},body:JSON.stringify(a),signal:F});if(!b.ok){let a=b.status,c=await m(b),d=`HuggingChat conversation creation failed (HTTP ${a})`;return 401===a||403===a?d="HuggingChat auth failed -- your hf-chat session cookie may be missing or expired. Log in to huggingface.co/chat and re-paste your cookie.":429===a&&(d="HuggingChat rate limited. Wait a moment and retry."),c.message&&(d=`${d}: ${c.message}`),{response:new Response(JSON.stringify((0,f.buildErrorBody)(a,d,c.details)),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:s}}k=(await b.json()).conversationId;let c=function(a){let b=a.getSetCookie;if("function"==typeof b)return b.call(a).filter(Boolean);let c=a.get("set-cookie");return c?c.split(/,(?=\s*[^;,=\s]+=)/).map(a=>a.trim()).filter(Boolean):[]}(b.headers);if(D.Cookie=z=function(a,b){let c=new Map;for(let b of a.split(";")){let a=b.trim();if(!a)continue;let d=a.indexOf("=");d<=0||c.set(a.slice(0,d).trim(),a.slice(d+1))}for(let a of b){let b=function(a){let b=a.split(";",1)[0]?.trim()||"",c=b.indexOf("=");return c<=0?null:{name:b.slice(0,c).trim(),value:b.slice(c+1)}}(a);b&&b.value&&c.set(b.name,b.value)}return[...c.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(z,c),!k)return{response:new Response(JSON.stringify({error:{message:"HuggingChat did not return a conversationId",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:s}}catch(b){let a=b instanceof Error?b.message:String(b);return w?.error?.("HUGGINGCHAT",`Conversation creation failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`HuggingChat connection failed: ${a}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:s}}let G=await n(k,D,F);if(!G)return{response:new Response(JSON.stringify({error:{message:"HuggingChat did not return an initial parent message id",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:`${j}/${k}`,headers:D,transformedBody:s};let H=`${i}/${k}`,I=new FormData,J={inputs:B,is_retry:!1,is_continue:!1,generationId:crypto.randomUUID(),selectedMcpServerNames:[],selectedMcpServers:[],timezone:function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}(),id:G};I.append("data",JSON.stringify(J)),(0,d._F)(D,x);try{o=await fetch(H,{method:"POST",headers:D,body:I,signal:F})}catch(b){let a=b instanceof Error?b.message:String(b);return w?.error?.("HUGGINGCHAT",`Message send failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`HuggingChat connection failed: ${a}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J}}if(!o.ok){let a=o.status,b=await m(o),c=`HuggingChat returned HTTP ${a}`;return 401===a||403===a?c="HuggingChat auth failed -- session cookie may be expired.":429===a?c="HuggingChat rate limited. Wait a moment and retry.":404===a&&(c=`HuggingChat model not found: ${A}. Check the model ID.`),b.message&&(c=`${c}: ${b.message}`),{response:new Response(JSON.stringify((0,f.buildErrorBody)(a,c,b.details)),{status:a,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J}}if(!o.body)return{response:new Response(JSON.stringify({error:{message:"HuggingChat returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J};let K=`chatcmpl-huggingchat-${crypto.randomUUID().slice(0,12)}`,L=Math.floor(Date.now()/1e3);if(t){let a=new TextEncoder,b=p(o.body,A,K,L,v);return{response:new Response(new ReadableStream({async start(c){try{for await(let d of b)c.enqueue(a.encode(d))}catch(a){w?.error?.("HUGGINGCHAT",`Stream error: ${a}`)}finally{c.close()}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}),url:H,headers:D,transformedBody:J}}let M=await q(o.body,v),N=l(M);return{response:new Response(JSON.stringify({id:K,object:"chat.completion",created:L,model:A,choices:[{index:0,message:{role:"assistant",content:M},finish_reason:"stop"}],usage:{prompt_tokens:l(B),completion_tokens:N,total_tokens:l(B)+N}}),{status:200,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J}}}},82568:(a,b,c)=>{"use strict";c.d(b,{Ih:()=>m,SA:()=>n,bp:()=>l});let d="[||]",e="[▁_]",f=RegExp(`<${d}tool${e}calls${e}begin${d}>([\\s\\S]*?)<${d}tool${e}calls${e}end${d}>`,"i"),g=RegExp(`<${d}tool${e}call${e}begin${d}>([\\s\\S]*?)<${d}tool${e}call${e}end${d}>`,"gi"),h=RegExp(`<${d}tool${e}sep${d}>`,"gi"),i=RegExp(`<${d}?(?:t(?:o(?:o(?:l(?:${e}(?:c(?:a(?:l(?:l(?:s)?(?:${e}(?:b(?:e(?:g(?:i(?:n${d}?>?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?$`,"i");function j(a){let b=crypto.randomUUID().replace(/-/g,"").slice(0,10);return`call_${b}${a}`}function k(a){let b=a.replace(/^\s+|\s+$/g,"").split(h),c=(b.shift()??"").trim();if(!c)return null;let d={};for(let a of b){let b,c;if(!a)continue;let e=a.indexOf("\n");e<0?(b=a.trim(),c=""):(b=a.slice(0,e).trim(),c=a.slice(e+1)),b&&(c=c.replace(/\n+$/,""),d[b]=function(a){if(""===a)return"";let b=a.trim();if(b.startsWith("{")&&b.endsWith("}")||b.startsWith("[")&&b.endsWith("]"))try{return JSON.parse(b)}catch{}if("true"===b)return!0;if("false"===b)return!1;if("null"===b)return null;if(/^-?\d+$/.test(b)){let a=Number(b);if(Number.isSafeInteger(a))return a}if(/^-?\d*\.\d+$/.test(b)){let a=Number(b);if(Number.isFinite(a))return a}return a}(c))}return{name:c,arguments:JSON.stringify(d)}}function l(a){if(!a||"string"!=typeof a)return{content:a||"",toolCalls:[]};let b=a.match(f);if(!b||void 0===b.index)return{content:a,toolCalls:[]};let c=a.slice(0,b.index),d=a.slice(b.index+b[0].length),e=b[1],h=[],i=0;for(let a of e.matchAll(g)){let b=k(a[1]);b&&(h.push({id:j(i),type:"function",function:b}),i+=1)}return{content:(c+d).trim(),toolCalls:h}}function m(){return{emitted:0,done:!1}}function n(a,b){if(a.done||!b)return{safeDelta:"",ready:!1,toolCalls:[],holdback:!1};let c=b.match(f);if(c&&void 0!==c.index){let d=b.slice(0,c.index),e=c[1],f=[],h=0;for(let a of e.matchAll(g)){let b=k(a[1]);b&&(f.push({id:j(h),type:"function",function:b}),h+=1)}let i=d.length>a.emitted?d.slice(a.emitted):"";return a.emitted=d.length,a.done=!0,{safeDelta:i,ready:!0,toolCalls:f,holdback:!1}}let h=RegExp(`<${d}tool${e}calls${e}begin${d}>`,"i"),l=b.match(h);if(l&&void 0!==l.index){let c=b.slice(0,l.index),d=c.length>a.emitted?c.slice(a.emitted):"";return a.emitted=c.length,{safeDelta:d,ready:!1,toolCalls:[],holdback:!0}}let m=b.match(i);if(m&&void 0!==m.index){let c=b.slice(0,m.index),d=c.length>a.emitted?c.slice(a.emitted):"";return a.emitted=c.length,{safeDelta:d,ready:!1,toolCalls:[],holdback:!0}}let n=b.length>a.emitted?b.slice(a.emitted):"";return a.emitted=b.length,{safeDelta:n,ready:!1,toolCalls:[],holdback:!1}}},82601:(a,b,c)=>{"use strict";let d;c.d(b,{Qs:()=>m,xC:()=>r,PU:()=>q});var e=c(77598),f=c.n(e),g=c(40610),h=c.n(g),i=c(77030);class j extends Error{}let k=()=>!1,l=Number.isInteger(d=parseInt(process.env.CURSOR_IMAGE_FETCH_TIMEOUT_MS||"15000",10))&&d>0?d:15e3;class m extends Error{constructor(a,b=400){super(a),this.name="CursorImageError",this.status=b}}async function n(a){let b,c=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if(!(0,i.isIP)(c)){try{b=await h().promises.lookup(c,{all:!0})}catch{throw new m("Image URL host could not be resolved.")}for(let a of b.map(a=>a.address))if(k(a))throw new m("Image URL points to a blocked address.")}}async function o(a){let b=a;for(let a=0;a<=3;a++){let a,c=function(){try{return}catch(a){if(a instanceof j)throw new m("OUTBOUND_URL_INVALID"===a.code?"Image URL is invalid or uses an unsupported scheme.":"Image URL points to a blocked address.");throw new m("Image URL is invalid.")}}();await n(c.hostname);let d=new AbortController,e=setTimeout(()=>d.abort(),l);try{a=await fetch(c.toString(),{method:"GET",signal:d.signal,redirect:"manual"})}catch{throw clearTimeout(e),new m("Could not fetch the image URL.")}try{if(a.status>=300&&a.status<400){let d=a.headers.get("location");if(!d)throw new m("Image URL redirect is missing a destination.");try{b=new URL(d,c.toString()).toString()}catch{throw new m("Image URL redirect destination is invalid.")}continue}if(!a.ok)throw new m(`Could not fetch the image URL (status ${a.status}).`);let d=(a.headers.get("content-type")||"").toLowerCase().split(";")[0].trim();if(!d.startsWith("image/"))throw new m("Image URL did not return an image content type.");let e=Number(a.headers.get("content-length")||"0");if(Number.isFinite(e)&&e>1048576)throw new m("Image input is too large (max 1 MiB). Resize and retry.");return{data:await p(a,1048576),mimeType:d}}finally{clearTimeout(e)}}throw new m("Image URL has too many redirects.")}async function p(a,b){let c=a.body;if(!c)return Buffer.alloc(0);let d=[],e=0,f=a=>{if((e+=a.byteLength)>b)throw new m("Image input is too large (max 1 MiB). Resize and retry.");d.push(Buffer.from(a))};if("function"==typeof c[Symbol.asyncIterator]){for await(let a of c)f(a);return Buffer.concat(d,e)}if("function"==typeof c.getReader){let a=c.getReader();try{for(;;){let{done:b,value:c}=await a.read();if(b)break;c&&f(c)}}finally{try{await a.cancel()}catch{}}return Buffer.concat(d,e)}let g=Buffer.from(await a.arrayBuffer());if(g.length>b)throw new m("Image input is too large (max 1 MiB). Resize and retry.");return g}async function q(a){if(a.length>12)throw new m("Too many images in one request (max 12).");let b=[];for(let c of a){if("string"!=typeof c||!c)throw new m("Image URL is missing.");let{data:a,mimeType:d}=c.toLowerCase().startsWith("data:")?function(a){let b,c=a.indexOf(",");if(c<0)throw new m("Image data URL is malformed.");let d=a.slice(5,c),e=a.slice(c+1),f=/;base64/i.test(d),g=(d.split(";")[0]||"").trim().toLowerCase()||"application/octet-stream";if(!g.startsWith("image/"))throw new m("Image data URL must have an image/* media type.");if(!f)throw new m("Image data URL must be base64-encoded.");if(e.length>2097152)throw new m("Image input is too large (max 1 MiB). Resize and retry.");let h=e.replace(/\s/g,"");if(Math.floor(3*h.length/4)>1048576)throw new m("Image input is too large (max 1 MiB). Resize and retry.");try{b=Buffer.from(h,"base64")}catch{throw new m("Image data URL contains invalid base64 data.")}if(h.length>0&&0===b.length)throw new m("Image data URL contains invalid base64 data.");return{data:b,mimeType:g}}(c):await o(c);if(!a.length)throw new m("Image input is empty.");if(a.length>1048576)throw new m("Image input is too large (max 1 MiB). Resize and retry.");b.push({data:a,mimeType:d,uuid:f().randomUUID()})}return b}function r(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)if(c&&"object"==typeof c&&"image_url"===c.type){let a=c.image_url;"string"==typeof a?b.push(a):a&&"object"==typeof a&&"string"==typeof a.url&&b.push(a.url)}return b}},83041:(a,b,c)=>{"use strict";c.d(b,{UD:()=>E});var d=c(49922),e=c(45795),f=c(47907),g=c(77598),h=c(97510),i=c(61408);c(24286);let j="us-east-1",k=/^[a-z]{2}(?:-gov)?-[a-z]+-\d+$/i;function l(a,b=j){if("string"!=typeof a)return b;let c=a.trim().toLowerCase();return k.test(c)?c:b}function m(a){let b=a&&"object"==typeof a?a:{},c=l(b.region,"");return c||function(a){if(!a)return null;try{let b=new URL(a).hostname.match(/^bedrock(?:-runtime|-mantle)?\.([a-z0-9-]+)\./i);return b?.[1]&&l(b[1],"")||null}catch{return null}}("string"==typeof b.baseUrl?b.baseUrl:null)||j}var n=c(7882);let o=new TextEncoder;function p(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function q(a){if("string"==typeof a)return a;if(null==a)return"";try{return JSON.stringify(a)}catch{return String(a)}}function r(a){return"string"==typeof a&&a.trim()?a.trim():null}function s(a,b={}){if("string"==typeof a)return a.trim()?[{text:a}]:[];if(!Array.isArray(a))return[];let c=[];for(let e of a){if("string"==typeof e){e.trim()&&c.push({text:e});continue}let a=p(e),f="string"==typeof a.type?a.type:"";if(("text"===f||"input_text"===f)&&"string"==typeof a.text){a.text.trim()&&c.push({text:a.text});continue}if("image_url"===f||"input_image"===f){var d;let b=function(a){if("string"!=typeof a)return null;let b=a.match(/^data:image\/(png|jpeg|jpg|gif|webp);base64,(.+)$/i);return b?{format:"jpg"===b[1].toLowerCase()?"jpeg":b[1].toLowerCase(),data:b[2]}:null}("string"==typeof a.image_url?a.image_url:a.image_url?.url||a.image_url);b&&c.push({image:{format:b.format,source:{bytes:(d=b.data,Uint8Array.from(Buffer.from(d,"base64")))}}});continue}if("tool_use"===f&&"string"==typeof a.id&&"string"==typeof a.name){let d=r(a.id);if(d&&b.skipToolUseIds?.has(d)||d&&!b.answeredToolUseIds?.has(d))continue;c.push({toolUse:{toolUseId:d||`toolu_${(0,g.randomUUID)()}`,name:a.name,input:p(a.input)}});continue}"tool_result"===f&&"string"==typeof a.tool_use_id&&c.push({toolResult:{toolUseId:a.tool_use_id,content:[{text:q(a.content)}],status:a.is_error?"error":"success"}})}return c}function t(a){return r(a?.toolUse?.toolUseId)}function u(a){return r(a?.toolResult?.toolUseId)}function v(a){return a?.role==="user"&&Array.isArray(a.content)&&a.content.length>0&&a.content.every(a=>!!u(a))}function w(a){Array.isArray(a.content)&&0!==a.content.length||(a.content=[{text:" "}])}function x(a){switch(a){case"tool_use":return"tool_calls";case"max_tokens":return"length";default:return"stop"}}function y(a){let b=Number(a?.inputTokens||0),c=Number(a?.outputTokens||0);return{prompt_tokens:b,completion_tokens:c,total_tokens:Number(a?.totalTokens||b+c)}}function z(a){return o.encode(`data: ${JSON.stringify(a)}
|
|
388
|
+
`}function l(a){return Math.max(1,Math.ceil((a||"").length/4))}async function m(a){let b=a.headers.get("content-type")||"",c=await a.text().catch(()=>"");if(!c)return{message:null,details:null};if(b.includes("json"))try{let a=JSON.parse(c),b="string"==typeof a.message?a.message:"string"==typeof a.error?a.error:a.error&&"object"==typeof a.error&&"string"==typeof a.error.message?String(a.error.message):null;return{message:b?(0,f.sanitizeErrorMessage)(b):null,details:a}}catch{}return{message:(0,f.sanitizeErrorMessage)(c),details:{body:c}}}async function n(a,b,c){let d=await fetch(`${j}/${a}`,{method:"GET",headers:b,signal:c});if(!d.ok)return null;let e=await d.text().catch(()=>"");if(!e)return null;try{return function(a){let b=!a||"object"!=typeof a||Array.isArray(a)?a:a.json&&"object"==typeof a.json?a.json:a;if(!b||"object"!=typeof b||Array.isArray(b))return null;if("string"==typeof b.rootMessageId&&b.rootMessageId.trim())return b.rootMessageId;let c=(Array.isArray(b.messages)?b.messages:[]).at(-1);if(c&&"object"==typeof c){let a=c.id;if("string"==typeof a&&a.trim())return a}return null}(JSON.parse(e))}catch{return null}}function o(a){try{let b=JSON.parse(a);if("stream"===b.type&&"string"==typeof b.token){let a=b.token.replace(/\0/g,"");if(a)return{token:a}}if("finalAnswer"===b.type&&"string"==typeof b.text)return{text:b.text,done:!0};if("status"===b.type){if("error"===b.status)return{error:b.message||"HuggingChat generation error"};if("finished"===b.status)return{done:!0}}}catch{}return{}}async function*p(a,b,c,d,e){let f=a.getReader(),g=new TextDecoder,h="",i=!1,j="",l=!1;try{for(;!e?.aborted;){let{value:a,done:e}=await f.read();if(e)break;let m=(h+=g.decode(a,{stream:!0})).split("\n");for(let a of(h=m.pop()||"",m)){let e=a.trim();if(!e)continue;let f=o(e);if(f.error){yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}),yield"data: [DONE]\n\n",l=!0;return}if(f.token&&(i||(i=!0,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),j+=f.token,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:f.token},finish_reason:null}]})),f.text){let a=f.text.slice(j.length);a&&(i||(i=!0,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:a},finish_reason:null}]})),l=!0;break}if(f.done){l=!0;break}}if(l)break}if(!l&&h.trim()){let a=o(h.trim());a.token&&!e?.aborted&&(i||(i=!0,yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]})),yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{content:a.token},finish_reason:null}]}))}}finally{f.releaseLock()}e?.aborted||(yield k({id:c,object:"chat.completion.chunk",created:d,model:b,choices:[{index:0,delta:{},finish_reason:"stop"}]}),yield"data: [DONE]\n\n")}async function q(a,b){let c=a.getReader(),d=new TextDecoder,e="",f="";try{for(;!b?.aborted;){let{value:a,done:b}=await c.read();if(b)break;let g=(e+=d.decode(a,{stream:!0})).split("\n");for(let a of(e=g.pop()||"",g)){let b=a.trim();if(!b)continue;let c=o(b);if(c.token&&(f+=c.token),c.text)return c.text;if(c.error)throw Error(c.error)}}if(e.trim()){let a=o(e.trim());if(a.text)return a.text;a.token&&(f+=a.token)}}finally{c.releaseLock()}return f}class r extends d.Hv{constructor(){super("huggingchat",{id:"huggingchat",baseUrl:h})}async execute(a){var b,c;let k,o,{model:r,body:s,stream:t,credentials:u,signal:v,log:w,upstreamExtraHeaders:x}=a,y=s.messages;if(!y||!Array.isArray(y)||0===y.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:i,headers:{},transformedBody:s};if("string"==typeof(b=u.apiKey)&&b.trim().startsWith("enc:v1:"))return{response:new Response(JSON.stringify({error:{message:"HuggingChat credentials are encrypted but STORAGE_ENCRYPTION_KEY is not loaded. Restore the encryption key or re-save the HuggingChat cookie.",type:"auth_error"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:s};let z=(c=u.apiKey||"",(0,g.p1)(c,"hf-chat"));if(!z)return{response:new Response(JSON.stringify({error:{message:"HuggingChat requires a session cookie. Log in to huggingface.co/chat, open DevTools > Application > Cookies, and copy the hf-chat cookie value.",type:"auth_error"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:s};let A=r||"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT",{inputs:B,systemPrompt:C}=function(a){let b=[],c=[];for(let e of a){var d;let a=String(e.role||"user"),f="string"==typeof(d=e.content)?d.trim():Array.isArray(d)?d.map(a=>a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";f&&("system"===a||"developer"===a?b.push(f):("user"===a||"assistant"===a)&&c.push({role:a,content:f}))}if(0===c.length)return{inputs:b.join("\n\n"),systemPrompt:null};if(1===c.length&&"user"===c[0].role)return{inputs:c[0].content,systemPrompt:b.length>0?b.join("\n\n"):null};let e=[];for(let a of c){let b="user"===a.role?"User":"Assistant";e.push(`${b}: ${a.content}`)}return e.push("Assistant:"),{inputs:e.join("\n\n"),systemPrompt:b.length>0?b.join("\n\n"):null}}(y);if(!B.trim())return{response:new Response(JSON.stringify({error:{message:"Empty prompt after processing messages",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:s};let D={Cookie:z,"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",Origin:h,Referer:`${h}/chat/`},E=AbortSignal.timeout(e.MT),F=v?(0,d.OW)(v,E):E;try{let a={model:A};C&&(a.preprompt=C);let b=await fetch(i,{method:"POST",headers:{...D,"Content-Type":"application/json"},body:JSON.stringify(a),signal:F});if(!b.ok){let a=b.status,c=await m(b),d=`HuggingChat conversation creation failed (HTTP ${a})`;return 401===a||403===a?d="HuggingChat auth failed -- your hf-chat session cookie may be missing or expired. Log in to huggingface.co/chat and re-paste your cookie.":429===a&&(d="HuggingChat rate limited. Wait a moment and retry."),c.message&&(d=`${d}: ${c.message}`),{response:new Response(JSON.stringify((0,f.buildErrorBody)(a,d,c.details)),{status:a,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:s}}k=(await b.json()).conversationId;let c=function(a){let b=a.getSetCookie;if("function"==typeof b)return b.call(a).filter(Boolean);let c=a.get("set-cookie");return c?c.split(/,(?=\s*[^;,=\s]+=)/).map(a=>a.trim()).filter(Boolean):[]}(b.headers);if(D.Cookie=z=function(a,b){let c=new Map;for(let b of a.split(";")){let a=b.trim();if(!a)continue;let d=a.indexOf("=");d<=0||c.set(a.slice(0,d).trim(),a.slice(d+1))}for(let a of b){let b=function(a){let b=a.split(";",1)[0]?.trim()||"",c=b.indexOf("=");return c<=0?null:{name:b.slice(0,c).trim(),value:b.slice(c+1)}}(a);b&&b.value&&c.set(b.name,b.value)}return[...c.entries()].map(([a,b])=>`${a}=${b}`).join("; ")}(z,c),!k)return{response:new Response(JSON.stringify({error:{message:"HuggingChat did not return a conversationId",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:s}}catch(b){let a=b instanceof Error?b.message:String(b);return w?.error?.("HUGGINGCHAT",`Conversation creation failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`HuggingChat connection failed: ${a}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:D,transformedBody:s}}let G=await n(k,D,F);if(!G)return{response:new Response(JSON.stringify({error:{message:"HuggingChat did not return an initial parent message id",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:`${j}/${k}`,headers:D,transformedBody:s};let H=`${i}/${k}`,I=new FormData,J={inputs:B,is_retry:!1,is_continue:!1,generationId:crypto.randomUUID(),selectedMcpServerNames:[],selectedMcpServers:[],timezone:function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}(),id:G};I.append("data",JSON.stringify(J)),(0,d._F)(D,x);try{o=await fetch(H,{method:"POST",headers:D,body:I,signal:F})}catch(b){let a=b instanceof Error?b.message:String(b);return w?.error?.("HUGGINGCHAT",`Message send failed: ${a}`),{response:new Response(JSON.stringify({error:{message:`HuggingChat connection failed: ${a}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J}}if(!o.ok){let a=o.status,b=await m(o),c=`HuggingChat returned HTTP ${a}`;return 401===a||403===a?c="HuggingChat auth failed -- session cookie may be expired.":429===a?c="HuggingChat rate limited. Wait a moment and retry.":404===a&&(c=`HuggingChat model not found: ${A}. Check the model ID.`),b.message&&(c=`${c}: ${b.message}`),{response:new Response(JSON.stringify((0,f.buildErrorBody)(a,c,b.details)),{status:a,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J}}if(!o.body)return{response:new Response(JSON.stringify({error:{message:"HuggingChat returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J};let K=`chatcmpl-huggingchat-${crypto.randomUUID().slice(0,12)}`,L=Math.floor(Date.now()/1e3);if(t){let a=new TextEncoder,b=p(o.body,A,K,L,v);return{response:new Response(new ReadableStream({async start(c){try{for await(let d of b)c.enqueue(a.encode(d))}catch(a){w?.error?.("HUGGINGCHAT",`Stream error: ${a}`)}finally{c.close()}}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}),url:H,headers:D,transformedBody:J}}let M=await q(o.body,v),N=l(M);return{response:new Response(JSON.stringify({id:K,object:"chat.completion",created:L,model:A,choices:[{index:0,message:{role:"assistant",content:M},finish_reason:"stop"}],usage:{prompt_tokens:l(B),completion_tokens:N,total_tokens:l(B)+N}}),{status:200,headers:{"Content-Type":"application/json"}}),url:H,headers:D,transformedBody:J}}}},82568:(a,b,c)=>{c.d(b,{Ih:()=>m,SA:()=>n,bp:()=>l});let d="[||]",e="[▁_]",f=RegExp(`<${d}tool${e}calls${e}begin${d}>([\\s\\S]*?)<${d}tool${e}calls${e}end${d}>`,"i"),g=RegExp(`<${d}tool${e}call${e}begin${d}>([\\s\\S]*?)<${d}tool${e}call${e}end${d}>`,"gi"),h=RegExp(`<${d}tool${e}sep${d}>`,"gi"),i=RegExp(`<${d}?(?:t(?:o(?:o(?:l(?:${e}(?:c(?:a(?:l(?:l(?:s)?(?:${e}(?:b(?:e(?:g(?:i(?:n${d}?>?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?$`,"i");function j(a){let b=crypto.randomUUID().replace(/-/g,"").slice(0,10);return`call_${b}${a}`}function k(a){let b=a.replace(/^\s+|\s+$/g,"").split(h),c=(b.shift()??"").trim();if(!c)return null;let d={};for(let a of b){let b,c;if(!a)continue;let e=a.indexOf("\n");e<0?(b=a.trim(),c=""):(b=a.slice(0,e).trim(),c=a.slice(e+1)),b&&(c=c.replace(/\n+$/,""),d[b]=function(a){if(""===a)return"";let b=a.trim();if(b.startsWith("{")&&b.endsWith("}")||b.startsWith("[")&&b.endsWith("]"))try{return JSON.parse(b)}catch{}if("true"===b)return!0;if("false"===b)return!1;if("null"===b)return null;if(/^-?\d+$/.test(b)){let a=Number(b);if(Number.isSafeInteger(a))return a}if(/^-?\d*\.\d+$/.test(b)){let a=Number(b);if(Number.isFinite(a))return a}return a}(c))}return{name:c,arguments:JSON.stringify(d)}}function l(a){if(!a||"string"!=typeof a)return{content:a||"",toolCalls:[]};let b=a.match(f);if(!b||void 0===b.index)return{content:a,toolCalls:[]};let c=a.slice(0,b.index),d=a.slice(b.index+b[0].length),e=b[1],h=[],i=0;for(let a of e.matchAll(g)){let b=k(a[1]);b&&(h.push({id:j(i),type:"function",function:b}),i+=1)}return{content:(c+d).trim(),toolCalls:h}}function m(){return{emitted:0,done:!1}}function n(a,b){if(a.done||!b)return{safeDelta:"",ready:!1,toolCalls:[],holdback:!1};let c=b.match(f);if(c&&void 0!==c.index){let d=b.slice(0,c.index),e=c[1],f=[],h=0;for(let a of e.matchAll(g)){let b=k(a[1]);b&&(f.push({id:j(h),type:"function",function:b}),h+=1)}let i=d.length>a.emitted?d.slice(a.emitted):"";return a.emitted=d.length,a.done=!0,{safeDelta:i,ready:!0,toolCalls:f,holdback:!1}}let h=RegExp(`<${d}tool${e}calls${e}begin${d}>`,"i"),l=b.match(h);if(l&&void 0!==l.index){let c=b.slice(0,l.index),d=c.length>a.emitted?c.slice(a.emitted):"";return a.emitted=c.length,{safeDelta:d,ready:!1,toolCalls:[],holdback:!0}}let m=b.match(i);if(m&&void 0!==m.index){let c=b.slice(0,m.index),d=c.length>a.emitted?c.slice(a.emitted):"";return a.emitted=c.length,{safeDelta:d,ready:!1,toolCalls:[],holdback:!0}}let n=b.length>a.emitted?b.slice(a.emitted):"";return a.emitted=b.length,{safeDelta:n,ready:!1,toolCalls:[],holdback:!1}}},82601:(a,b,c)=>{let d;c.d(b,{Qs:()=>m,xC:()=>r,PU:()=>q});var e=c(77598),f=c.n(e),g=c(40610),h=c.n(g),i=c(77030);class j extends Error{}let k=()=>!1,l=Number.isInteger(d=parseInt(process.env.CURSOR_IMAGE_FETCH_TIMEOUT_MS||"15000",10))&&d>0?d:15e3;class m extends Error{constructor(a,b=400){super(a),this.name="CursorImageError",this.status=b}}async function n(a){let b,c=a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a;if(!(0,i.isIP)(c)){try{b=await h().promises.lookup(c,{all:!0})}catch{throw new m("Image URL host could not be resolved.")}for(let a of b.map(a=>a.address))if(k(a))throw new m("Image URL points to a blocked address.")}}async function o(a){let b=a;for(let a=0;a<=3;a++){let a,c=function(){try{return}catch(a){if(a instanceof j)throw new m("OUTBOUND_URL_INVALID"===a.code?"Image URL is invalid or uses an unsupported scheme.":"Image URL points to a blocked address.");throw new m("Image URL is invalid.")}}();await n(c.hostname);let d=new AbortController,e=setTimeout(()=>d.abort(),l);try{a=await fetch(c.toString(),{method:"GET",signal:d.signal,redirect:"manual"})}catch{throw clearTimeout(e),new m("Could not fetch the image URL.")}try{if(a.status>=300&&a.status<400){let d=a.headers.get("location");if(!d)throw new m("Image URL redirect is missing a destination.");try{b=new URL(d,c.toString()).toString()}catch{throw new m("Image URL redirect destination is invalid.")}continue}if(!a.ok)throw new m(`Could not fetch the image URL (status ${a.status}).`);let d=(a.headers.get("content-type")||"").toLowerCase().split(";")[0].trim();if(!d.startsWith("image/"))throw new m("Image URL did not return an image content type.");let e=Number(a.headers.get("content-length")||"0");if(Number.isFinite(e)&&e>1048576)throw new m("Image input is too large (max 1 MiB). Resize and retry.");return{data:await p(a,1048576),mimeType:d}}finally{clearTimeout(e)}}throw new m("Image URL has too many redirects.")}async function p(a,b){let c=a.body;if(!c)return Buffer.alloc(0);let d=[],e=0,f=a=>{if((e+=a.byteLength)>b)throw new m("Image input is too large (max 1 MiB). Resize and retry.");d.push(Buffer.from(a))};if("function"==typeof c[Symbol.asyncIterator]){for await(let a of c)f(a);return Buffer.concat(d,e)}if("function"==typeof c.getReader){let a=c.getReader();try{for(;;){let{done:b,value:c}=await a.read();if(b)break;c&&f(c)}}finally{try{await a.cancel()}catch{}}return Buffer.concat(d,e)}let g=Buffer.from(await a.arrayBuffer());if(g.length>b)throw new m("Image input is too large (max 1 MiB). Resize and retry.");return g}async function q(a){if(a.length>12)throw new m("Too many images in one request (max 12).");let b=[];for(let c of a){if("string"!=typeof c||!c)throw new m("Image URL is missing.");let{data:a,mimeType:d}=c.toLowerCase().startsWith("data:")?function(a){let b,c=a.indexOf(",");if(c<0)throw new m("Image data URL is malformed.");let d=a.slice(5,c),e=a.slice(c+1),f=/;base64/i.test(d),g=(d.split(";")[0]||"").trim().toLowerCase()||"application/octet-stream";if(!g.startsWith("image/"))throw new m("Image data URL must have an image/* media type.");if(!f)throw new m("Image data URL must be base64-encoded.");if(e.length>2097152)throw new m("Image input is too large (max 1 MiB). Resize and retry.");let h=e.replace(/\s/g,"");if(Math.floor(3*h.length/4)>1048576)throw new m("Image input is too large (max 1 MiB). Resize and retry.");try{b=Buffer.from(h,"base64")}catch{throw new m("Image data URL contains invalid base64 data.")}if(h.length>0&&0===b.length)throw new m("Image data URL contains invalid base64 data.");return{data:b,mimeType:g}}(c):await o(c);if(!a.length)throw new m("Image input is empty.");if(a.length>1048576)throw new m("Image input is too large (max 1 MiB). Resize and retry.");b.push({data:a,mimeType:d,uuid:f().randomUUID()})}return b}function r(a){if(!Array.isArray(a))return[];let b=[];for(let c of a)if(c&&"object"==typeof c&&"image_url"===c.type){let a=c.image_url;"string"==typeof a?b.push(a):a&&"object"==typeof a&&"string"==typeof a.url&&b.push(a.url)}return b}},83041:(a,b,c)=>{c.d(b,{UD:()=>E});var d=c(49922),e=c(45795),f=c(47907),g=c(77598),h=c(97510),i=c(61408);c(24286);let j="us-east-1",k=/^[a-z]{2}(?:-gov)?-[a-z]+-\d+$/i;function l(a,b=j){if("string"!=typeof a)return b;let c=a.trim().toLowerCase();return k.test(c)?c:b}function m(a){let b=a&&"object"==typeof a?a:{},c=l(b.region,"");return c||function(a){if(!a)return null;try{let b=new URL(a).hostname.match(/^bedrock(?:-runtime|-mantle)?\.([a-z0-9-]+)\./i);return b?.[1]&&l(b[1],"")||null}catch{return null}}("string"==typeof b.baseUrl?b.baseUrl:null)||j}var n=c(7882);let o=new TextEncoder;function p(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function q(a){if("string"==typeof a)return a;if(null==a)return"";try{return JSON.stringify(a)}catch{return String(a)}}function r(a){return"string"==typeof a&&a.trim()?a.trim():null}function s(a,b={}){if("string"==typeof a)return a.trim()?[{text:a}]:[];if(!Array.isArray(a))return[];let c=[];for(let e of a){if("string"==typeof e){e.trim()&&c.push({text:e});continue}let a=p(e),f="string"==typeof a.type?a.type:"";if(("text"===f||"input_text"===f)&&"string"==typeof a.text){a.text.trim()&&c.push({text:a.text});continue}if("image_url"===f||"input_image"===f){var d;let b=function(a){if("string"!=typeof a)return null;let b=a.match(/^data:image\/(png|jpeg|jpg|gif|webp);base64,(.+)$/i);return b?{format:"jpg"===b[1].toLowerCase()?"jpeg":b[1].toLowerCase(),data:b[2]}:null}("string"==typeof a.image_url?a.image_url:a.image_url?.url||a.image_url);b&&c.push({image:{format:b.format,source:{bytes:(d=b.data,Uint8Array.from(Buffer.from(d,"base64")))}}});continue}if("tool_use"===f&&"string"==typeof a.id&&"string"==typeof a.name){let d=r(a.id);if(d&&b.skipToolUseIds?.has(d)||d&&!b.answeredToolUseIds?.has(d))continue;c.push({toolUse:{toolUseId:d||`toolu_${(0,g.randomUUID)()}`,name:a.name,input:p(a.input)}});continue}"tool_result"===f&&"string"==typeof a.tool_use_id&&c.push({toolResult:{toolUseId:a.tool_use_id,content:[{text:q(a.content)}],status:a.is_error?"error":"success"}})}return c}function t(a){return r(a?.toolUse?.toolUseId)}function u(a){return r(a?.toolResult?.toolUseId)}function v(a){return a?.role==="user"&&Array.isArray(a.content)&&a.content.length>0&&a.content.every(a=>!!u(a))}function w(a){Array.isArray(a.content)&&0!==a.content.length||(a.content=[{text:" "}])}function x(a){switch(a){case"tool_use":return"tool_calls";case"max_tokens":return"length";default:return"stop"}}function y(a){let b=Number(a?.inputTokens||0),c=Number(a?.outputTokens||0);return{prompt_tokens:b,completion_tokens:c,total_tokens:Number(a?.totalTokens||b+c)}}function z(a){return o.encode(`data: ${JSON.stringify(a)}
|
|
389
389
|
|
|
390
|
-
`)}function A(){return o.encode("data: [DONE]\n\n")}function B(a,b,c=null,d){let e={id:`chatcmpl-bedrock-${a}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,delta:b,finish_reason:c}]};return d&&(e.usage=d),e}function C(a){let b=Number(a?.$metadata?.httpStatusCode||a?.statusCode||a?.status);return Number.isInteger(b)&&b>=400&&b<=599?b:502}function D(a,b="Bedrock request failed"){let c=C(a),d="string"==typeof a?.name?a.name:`HTTP_${c}`;return{error:{message:"string"==typeof a?.message&&a.message?a.message:b,type:429===c?"rate_limit_error":401===c||403===c?"auth_error":"upstream_error",code:d,status:c}}}class E extends h.Hv{constructor(a=null){super("bedrock",i.xq.bedrock||{format:"openai"}),this.clientFactory=a}buildUrl(a,b,c=0,d=null){return function(a,b,c=!1){let d=encodeURIComponent(b);return`https://bedrock-runtime.${l(a)}.amazonaws.com/model/${d}/${c?"converse-stream":"converse"}`}(m(d?.providerSpecificData),a,b)}buildHeaders(a){return{"Content-Type":"application/json",Authorization:a?.apiKey?"Bearer ***":""}}createClient(a){let b;if(this.clientFactory)return this.clientFactory(a);let c=m(a?.providerSpecificData),e="string"==typeof(b=p(a?.providerSpecificData).customUserAgent)&&b.trim()?b.trim():null;return new d.m({region:c,token:{token:a.apiKey},authSchemePreference:["httpBearerAuth"],maxAttempts:1,...e?{customUserAgent:e}:{}})}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:i}){var j;let k,l,m,o,E,F,G,H=this.buildUrl(a,c,0,d),I=this.buildHeaders(d);if(!d?.apiKey)return{response:new Response(JSON.stringify(D({name:"MissingCredentials",message:"Missing Bedrock API key",$metadata:{httpStatusCode:401}})),{status:401,headers:{"Content-Type":"application/json"}}),url:H,headers:I,transformedBody:null};let J=this.transformRequest(a,b,c,d),K=(l=Array.isArray((k=p(J)).messages)?k.messages:[],m={},"number"==typeof(o=k.max_tokens??k.max_completion_tokens)&&(m.maxTokens=Math.max(1,Math.floor(o))),"number"==typeof k.temperature&&(m.temperature=k.temperature),"number"==typeof k.top_p&&(m.topP=k.top_p),Array.isArray(k.stop)?m.stopSequences=k.stop.filter(Boolean):"string"==typeof k.stop&&k.stop&&(m.stopSequences=[k.stop]),E={modelId:a,messages:function(a){let b=[],c=new Set,d=function(a){let b=new Set;for(let c of a)if(c&&"object"==typeof c){if("tool"===c.role){let a=r(c.tool_call_id);a&&b.add(a)}if(Array.isArray(c.content))for(let a of c.content){let c=p(a);if("tool_result"!==c.type)continue;let d=r(c.tool_use_id);d&&b.add(d)}}return b}(a);for(let e of a){if(!e||"object"!=typeof e||"system"===e.role||"developer"===e.role)continue;if("tool"===e.role){let a=r(e.tool_call_id)||`toolu_${(0,g.randomUUID)()}`;c.delete(a),d.add(a),b.push({role:"user",content:[{toolResult:{toolUseId:a,content:function(a){let b=a.content;if("string"==typeof b)return[{text:b||" "}];if(Array.isArray(b)){let a=[];for(let c of b){if("string"==typeof c){a.push({text:c||" "});continue}let b=p(c);"string"==typeof b.text?a.push({text:b.text||" "}):"json"===b.type&&void 0!==b.json?a.push({json:b.json}):void 0!==b.content&&a.push({text:q(b.content)})}return a.length>0?a:[{text:" "}]}return[{text:q(b)||" "}]}(e),status:"success"}}]});continue}let a=Array.isArray(e.tool_calls)?e.tool_calls:[],f=new Set(a.map(a=>r(a?.id)).filter(Boolean)),h=s(e.content,{skipToolUseIds:f,answeredToolUseIds:d});for(let b of a){let a=p(b.function),e="string"==typeof a.arguments?a.arguments:"{}",f={};try{f=e.trim()?JSON.parse(e):{}}catch{f={arguments:e}}let i=r(b.id)||`toolu_${(0,g.randomUUID)()}`;!c.has(i)&&d.has(i)&&(c.add(i),h.push({toolUse:{toolUseId:i,name:"string"==typeof a.name&&a.name?a.name:"unknown_tool",input:f}}))}0===h.length&&h.push({text:" "}),b.push({role:"assistant"===e.role?"assistant":"user",content:h})}return 0===b.length&&b.push({role:"user",content:[{text:" "}]}),function(a){let b=function(a){let b=[];for(let c of a){let a=b[b.length-1];if(v(a)&&v(c)){a.content.push(...c.content);continue}b.push(c)}return b}(a),c=new Map;for(let a=0;a<b.length;a++){let d=b[a];if(d?.role!=="assistant"||!Array.isArray(d.content))continue;let e=b[a+1],f=new Set(e?.role==="user"&&Array.isArray(e.content)?e.content.map(u).filter(Boolean):[]),g=d.content.map(t).filter(Boolean);if(0===g.length)continue;let h=new Set(g.filter(a=>f.has(a)));for(let a of(d.content=d.content.filter(a=>{let b=t(a);return!b||h.has(b)}),w(d),h))c.set(a,(c.get(a)||0)+1)}for(let a of b)a?.role==="user"&&Array.isArray(a.content)&&(a.content=a.content.filter(a=>{let b=u(a);if(!b)return!0;let d=c.get(b)||0;return!(d<=0)&&(c.set(b,d-1),!0)}),w(a));return b}(b)}(l)},(F=function(a){let b=[];for(let c of a){let a=c?.role;if("system"!==a&&"developer"!==a)continue;let d=s(c.content).map(a=>"string"==typeof a.text?a.text:"").filter(Boolean).join("\n");d.trim()&&b.push({text:d})}return b}(l)).length>0&&(E.system=F),Object.keys(m).length>0&&(E.inferenceConfig=m),(G=function(a,b){if(!Array.isArray(a)||0===a.length)return;let c=[];for(let b of a){let a=p(b),d="function"===a.type?p(a.function):a,e="string"==typeof d.name?d.name.trim():"";e&&c.push({toolSpec:{name:e,description:"string"==typeof d.description?d.description:void 0,inputSchema:{json:p(d.parameters)}}})}if(0===c.length)return;let d={tools:c};if("required"===b)d.toolChoice={any:{}};else if("auto"===b)d.toolChoice={auto:{}};else if(b&&"object"==typeof b){let a=p(b.function),c="string"==typeof a.name?a.name:"";c&&(d.toolChoice={tool:{name:c}})}return d}(k.tools,k.tool_choice))&&(E.toolConfig=G),E);try{let b,k=this.createClient(d);if(await n.OU(H,I,K,JSON.stringify(K),i),c){let b,c,d,f,g=await k.send(new e.v(K),{abortSignal:h||void 0});return{response:new Response((j=g.stream,b=new Map,c=0,d="stop",f=null,new ReadableStream({async start(e){try{for await(let g of(e.enqueue(z(B(a,{role:"assistant"}))),j||[])){let h=[g?.throttlingException,g?.validationException,g?.modelStreamErrorException,g?.serviceUnavailableException,g?.internalServerException].filter(Boolean)[0]||null;if(h){let a=function(a){let b=String(a?.name||a?.code||"");return b.includes("Throttling")?429:b.includes("Validation")?400:b.includes("ServiceUnavailable")?503:b.includes("InternalServer")?500:502}(h);e.enqueue(z({error:{message:h.message||"Bedrock stream failed",type:429===a?"rate_limit_error":"upstream_error",code:h.name||"bedrock_stream_error",status:a}}));break}if(g.contentBlockStart?.start?.toolUse){let d=g.contentBlockStart.start.toolUse,f=c++;b.set(g.contentBlockStart.contentBlockIndex,f),e.enqueue(z(B(a,{tool_calls:[{index:f,id:d.toolUseId,type:"function",function:{name:d.name,arguments:""}}]})));continue}if(g.contentBlockDelta?.delta){let c=g.contentBlockDelta.delta;if("string"==typeof c.text&&c.text.length>0&&e.enqueue(z(B(a,{content:c.text}))),"string"==typeof c.reasoningContent?.text&&c.reasoningContent.text&&e.enqueue(z(B(a,{reasoning_content:c.reasoningContent.text}))),"string"==typeof c.toolUse?.input){let d=b.get(g.contentBlockDelta.contentBlockIndex)??0;e.enqueue(z(B(a,{tool_calls:[{index:d,function:{arguments:c.toolUse.input}}]})))}continue}if(g.messageStop?.stopReason){d=x(g.messageStop.stopReason);continue}g.metadata?.usage&&(f=y(g.metadata.usage))}e.enqueue(z(B(a,{},d,f||void 0))),e.enqueue(A()),e.close()}catch(b){let a=D(b);e.enqueue(z(a)),e.enqueue(A()),e.close()}}})),{status:200,headers:{"Content-Type":"text/event-stream"}}),url:H,headers:I,transformedBody:K}}let l=await k.send(new f.R(K),{abortSignal:h||void 0});return{response:new Response(JSON.stringify((b=function(a){let b=[],c=[],d=[];for(let e of Array.isArray(a)?a:[])"string"==typeof e?.text&&b.push(e.text),"string"==typeof e?.reasoningContent?.reasoningText?.text&&c.push(e.reasoningContent.reasoningText.text),e?.toolUse&&d.push({id:e.toolUse.toolUseId,type:"function",function:{name:e.toolUse.name,arguments:JSON.stringify(e.toolUse.input||{})}});let e={role:"assistant",content:b.join("")};return c.length>0&&(e.reasoning_content=c.join("")),d.length>0&&(e.content=e.content||null,e.tool_calls=d),e}(l?.output?.message?.content||[]),{id:`chatcmpl-bedrock-${(0,g.randomUUID)()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:b,finish_reason:x(l?.stopReason)}],usage:y(l?.usage)})),{status:200,headers:{"Content-Type":"application/json"}}),url:H,headers:I,transformedBody:K}}catch(b){let a=C(b);return{response:new Response(JSON.stringify(D(b)),{status:a,headers:{"Content-Type":"application/json"}}),url:H,headers:I,transformedBody:K}}}}},84664:(a,b,c)=>{"use strict";c.d(b,{a:()=>x});var d=c(77598),e=c(74350),f=c(97510),g=c(67353),h=c(56452),i=c(62156),j=c(93462),k=c(86522),l=c(69896),m=c(71961),n=c(14170),o=c(95374),p=c(5341),q=c(61408);function r(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function s(a){let b=a.providerSpecificData?.extraApiKeys??[];return a.apiKey&&a.connectionId&&b.length>0?(0,i.Cy)(a.connectionId,a.apiKey,b):a.apiKey||a.accessToken||""}function t(a){return"glm-5.2-high"===a?{baseModel:"glm-5.2",effort:"high"}:"glm-5.2-max"===a?{baseModel:"glm-5.2",effort:"max"}:null}let u=/^glm-5\.(?:[2-9]|\d{2,})/i;function v(a){let b=new Headers;return a.forEach((a,c)=>b.set(c,a)),b}async function w(a){let b,c,d=await a.json().catch(()=>null),e=a.ok?(0,l.l)(d,n.h.CLAUDE,n.h.OPENAI):(b=r(d)||{},{error:{message:"string"==typeof(c=r(b.error)||b).message&&c.message.trim()?c.message:"string"==typeof b.message&&b.message.trim()?b.message:"GLM Anthropic transport error",type:"string"==typeof c.type&&c.type.trim()?c.type:"string"==typeof b.type&&b.type.trim()?b.type:"upstream_error"}}),f=v(a.headers);return f.set("content-type","application/json"),f.delete("content-length"),new Response(JSON.stringify(e),{status:a.status,statusText:a.statusText,headers:f})}class x extends e.L{constructor(a="glm"){super(a)}buildUrl(a,b,c=0,d=null){let e=(0,g.ai)(d?.providerSpecificData);return(0,g.Cd)(d?.providerSpecificData,1===c?"openai"===e?"anthropic":"openai":e,this.config.baseUrl)}buildCountTokensUrl(a,b=null){return(0,g.Ju)(b?.providerSpecificData,this.config.baseUrl)}getCountTokensTimeoutMs(){return g.ZI}buildHeaders(a,b=!0,c,e,f=(0,g.ai)(a.providerSpecificData)){return"openai"===f?(0,g.vp)(s(a),b):{...(0,g.cD)(s(a),b),"X-Stainless-Arch":(0,k._G)(),"X-Stainless-OS":(0,k.zk)(),"X-Stainless-Runtime-Version":(0,k.rm)(),"X-Stainless-Package-Version":j.VM,"X-Claude-Code-Session-Id":(0,d.randomUUID)(),"x-client-request-id":(0,d.randomUUID)()}}transformRequest(a,b,c,d){return function(a,b){let c=r(a);if(!c||!b)return a;let d={...(0,h.b)(c,b)},e="string"==typeof b.thinkingType?b.thinkingType:null;return e&&void 0===d.thinking?d.thinking={type:e}:e&&r(d.thinking)?.type==="enabled"&&(d.thinking={...r(d.thinking),type:e}),d}(super.transformRequest(a,b,c,d),this.config.requestDefaults)}transformForTransport(a,b,c,d,e){let f=t(a),g=f?f.baseModel:a,h=this.transformRequest(g,b,c,d),i=r(h);if(i&&f&&(i.model=g),i&&u.test(g)){let a=r(b);(a?.max_tokens??a?.max_completion_tokens)||(i.max_tokens=131072)}if("openai"===e){let a;return i&&c&&(a=r(i),Array.isArray(a?.tools)&&a.tools.length>0)&&void 0===i.tool_stream?{...i,tool_stream:!0}:h}let j=(0,m.GH)(n.h.OPENAI,n.h.CLAUDE,g,{...i??{},_disableToolPrefix:!0},c,d,this.provider,null,{preserveCacheControl:!1});if(f){let a=r(j);if(a){a.effort=f.effort;let b=r(a.thinking);b&&"enabled"===b.type||(a.thinking={...b,type:"enabled"})}}return j}async executeTransport(a,b){let c,d=a.credentials,e=(0,g.Cd)(d?.providerSpecificData,b,this.config.baseUrl),h=this.buildHeaders(d,a.stream,a.clientHeaders,a.model,b);(0,f.rR)(h,d.providerSpecificData),(0,f._F)(h,a.upstreamExtraHeaders);let i=this.transformForTransport(a.model,a.body,a.stream,d,b),j=this.getTimeoutMs(),k=j>0?new AbortController:null,l=null;k&&(l=setTimeout(()=>{let a=Error(`Fetch timeout after ${j}ms on ${e}`);a.name="TimeoutError",k.abort(a)},j));let m=k?.signal??null,r=a.signal&&m?(0,f.OW)(a.signal,m):a.signal||m;try{c=await fetch(e,{method:"POST",headers:h,body:JSON.stringify(i),signal:r||void 0})}finally{l&&clearTimeout(l)}a.stream&&c.ok&&(c=(await (0,p.XP)(c,{timeoutMs:q.TG,provider:this.provider,model:a.model,log:a.log})).response);let s={response:c,url:e,headers:h,transformedBody:i};if("anthropic"===b){let b=a.stream&&s.response.ok?function(a,b,c){if(!a.body)return a;let d=(0,o.i5)(n.h.CLAUDE,n.h.OPENAI,b,null,null,c),e=v(a.headers);return e.set("content-type","text/event-stream"),e.delete("content-length"),new Response(a.body.pipeThrough(d),{status:a.status,statusText:a.statusText,headers:e})}(s.response,this.provider,a.model):(s.response.headers.get("content-type")||"").toLowerCase().includes("application/json")?await w(s.response):s.response;return{...s,response:b,url:e,headers:h,transformedBody:i,targetFormat:n.h.OPENAI}}return{...s,url:e,headers:h,transformedBody:i,targetFormat:n.h.OPENAI}}async execute(a){var b;if(t(a.model))return this.executeTransport(a,"anthropic");let c=(0,g.ai)(a.credentials.providerSpecificData,this.config.baseUrl),d="openai"===c?"anthropic":"openai",e=null;try{if(b=(e=await this.executeTransport(a,c)).response.status,404!==b&&408!==b&&409!==b&&429!==b&&!(b>=500))return e;a.log?.debug?.("GLM_FALLBACK",`${c} returned ${e.response.status}; trying ${d}`)}catch(b){if(!(b&&"AbortError"!==(b instanceof Error?b:Error(String(b))).name&&1))throw b;a.log?.debug?.("GLM_FALLBACK",`${c} error (${b instanceof Error?b.message:String(b)}); trying ${d}`)}try{let b=await this.executeTransport(a,d);if(b.response.ok||!e)return b}catch(b){if(!e)throw b;a.log?.debug?.("GLM_FALLBACK",`${d} fallback failed (${b instanceof Error?b.message:String(b)}); returning primary response`)}return e}async countTokens(a){return super.countTokens({...a,credentials:{...a.credentials,providerSpecificData:{...a.credentials.providerSpecificData||{},primaryTransport:"anthropic"}}})}}},85308:(a,b,c)=>{"use strict";c.d(b,{q:()=>h});var d=c(97510),e=c(61408),f=c(43659);let g=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class h extends d.Hv{constructor(){super("trae",e.xq.trae)}base(){return(this.config.baseUrl||"https://core-normal.trae.ai/api/remote/v1").replace(/\/$/,"")}buildHeaders(a){let b=a.accessToken||"",c=a.providerSpecificData||{};return{Authorization:`Cloud-IDE-JWT ${b}`,"Content-Type":"application/json","X-Trae-Client-Type":"web","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US",Referer:"https://solo.trae.ai/","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"}}resolveMode(a){let b=(a||"").trim().toLowerCase();if("work"===b||"auto-work"===b||"solo-work"===b)return{mode:"work",strategy:"auto",modelName:""};let c=!b||"auto"===b;return{mode:"code",strategy:c?"auto":"manual",modelName:c?"":a}}commonParams(a,b,c){let d={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||"1.0.0.1229",web_id:a.webId||"",user_identity:a.userIdentity||"Free",is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||"",scope:a.scope||"marscode-us",tenant:a.tenant||"marscode",region:a.region||"US-East",aiRegion:a.aiRegion||a.region||"US-East",is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(d.biz_session_id=c),JSON.stringify(d)}async createSession(a,b,c,d,e){let{mode:f,strategy:g,modelName:h}=this.resolveMode(c),i={mode:f,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:h,agent_type:"solo_agent_remote",model_selection_strategy:g,common_params:this.commonParams(d,f)},env:"remote",auto_create_project:!1,origin:"web"},j=await fetch(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(i),signal:e||void 0}),k=await j.text();if(!j.ok)throw Error(`[${j.status}] ${k}`);let l=JSON.parse(k);if(l?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(l)}`);return{sessionId:l.data.chat_session_id,messageId:l.data.message_id}}async streamEvents(a,b,c,d,e){let f=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,h=new AbortController;e?.aborted&&h.abort();let i=setTimeout(()=>h.abort(Error("trae stream timeout")),g),j=()=>h.abort();e&&e.addEventListener("abort",j,{once:!0});try{let b=await fetch(f,{method:"GET",headers:a,signal:h.signal});if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),e=new TextDecoder,g="",i=null;for(;;){let a,{done:b,value:f}=await c.read();if(b)break;for(g+=e.decode(f,{stream:!0});(a=g.indexOf("\n"))>=0;){let b=g.slice(0,a).replace(/\r$/,"");if(g=g.slice(a+1),b.startsWith("event:"))i=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(i,a))return void await c.cancel().catch(()=>{})}else""===b&&(i=null)}}}finally{clearTimeout(i),e&&e.removeEventListener("abort",j)}}async execute({model:a,body:b,stream:c,credentials:e,signal:g,upstreamExtraHeaders:h}){let i,j=this.buildHeaders(e);(0,d._F)(j,h);let k=e.providerSpecificData||{},l=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]
|
|
390
|
+
`)}function A(){return o.encode("data: [DONE]\n\n")}function B(a,b,c=null,d){let e={id:`chatcmpl-bedrock-${a}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,delta:b,finish_reason:c}]};return d&&(e.usage=d),e}function C(a){let b=Number(a?.$metadata?.httpStatusCode||a?.statusCode||a?.status);return Number.isInteger(b)&&b>=400&&b<=599?b:502}function D(a,b="Bedrock request failed"){let c=C(a),d="string"==typeof a?.name?a.name:`HTTP_${c}`;return{error:{message:"string"==typeof a?.message&&a.message?a.message:b,type:429===c?"rate_limit_error":401===c||403===c?"auth_error":"upstream_error",code:d,status:c}}}class E extends h.Hv{constructor(a=null){super("bedrock",i.xq.bedrock||{format:"openai"}),this.clientFactory=a}buildUrl(a,b,c=0,d=null){return function(a,b,c=!1){let d=encodeURIComponent(b);return`https://bedrock-runtime.${l(a)}.amazonaws.com/model/${d}/${c?"converse-stream":"converse"}`}(m(d?.providerSpecificData),a,b)}buildHeaders(a){return{"Content-Type":"application/json",Authorization:a?.apiKey?"Bearer ***":""}}createClient(a){let b;if(this.clientFactory)return this.clientFactory(a);let c=m(a?.providerSpecificData),e="string"==typeof(b=p(a?.providerSpecificData).customUserAgent)&&b.trim()?b.trim():null;return new d.m({region:c,token:{token:a.apiKey},authSchemePreference:["httpBearerAuth"],maxAttempts:1,...e?{customUserAgent:e}:{}})}async execute({model:a,body:b,stream:c,credentials:d,signal:h,log:i}){var j;let k,l,m,o,E,F,G,H=this.buildUrl(a,c,0,d),I=this.buildHeaders(d);if(!d?.apiKey)return{response:new Response(JSON.stringify(D({name:"MissingCredentials",message:"Missing Bedrock API key",$metadata:{httpStatusCode:401}})),{status:401,headers:{"Content-Type":"application/json"}}),url:H,headers:I,transformedBody:null};let J=this.transformRequest(a,b,c,d),K=(l=Array.isArray((k=p(J)).messages)?k.messages:[],m={},"number"==typeof(o=k.max_tokens??k.max_completion_tokens)&&(m.maxTokens=Math.max(1,Math.floor(o))),"number"==typeof k.temperature&&(m.temperature=k.temperature),"number"==typeof k.top_p&&(m.topP=k.top_p),Array.isArray(k.stop)?m.stopSequences=k.stop.filter(Boolean):"string"==typeof k.stop&&k.stop&&(m.stopSequences=[k.stop]),E={modelId:a,messages:function(a){let b=[],c=new Set,d=function(a){let b=new Set;for(let c of a)if(c&&"object"==typeof c){if("tool"===c.role){let a=r(c.tool_call_id);a&&b.add(a)}if(Array.isArray(c.content))for(let a of c.content){let c=p(a);if("tool_result"!==c.type)continue;let d=r(c.tool_use_id);d&&b.add(d)}}return b}(a);for(let e of a){if(!e||"object"!=typeof e||"system"===e.role||"developer"===e.role)continue;if("tool"===e.role){let a=r(e.tool_call_id)||`toolu_${(0,g.randomUUID)()}`;c.delete(a),d.add(a),b.push({role:"user",content:[{toolResult:{toolUseId:a,content:function(a){let b=a.content;if("string"==typeof b)return[{text:b||" "}];if(Array.isArray(b)){let a=[];for(let c of b){if("string"==typeof c){a.push({text:c||" "});continue}let b=p(c);"string"==typeof b.text?a.push({text:b.text||" "}):"json"===b.type&&void 0!==b.json?a.push({json:b.json}):void 0!==b.content&&a.push({text:q(b.content)})}return a.length>0?a:[{text:" "}]}return[{text:q(b)||" "}]}(e),status:"success"}}]});continue}let a=Array.isArray(e.tool_calls)?e.tool_calls:[],f=new Set(a.map(a=>r(a?.id)).filter(Boolean)),h=s(e.content,{skipToolUseIds:f,answeredToolUseIds:d});for(let b of a){let a=p(b.function),e="string"==typeof a.arguments?a.arguments:"{}",f={};try{f=e.trim()?JSON.parse(e):{}}catch{f={arguments:e}}let i=r(b.id)||`toolu_${(0,g.randomUUID)()}`;!c.has(i)&&d.has(i)&&(c.add(i),h.push({toolUse:{toolUseId:i,name:"string"==typeof a.name&&a.name?a.name:"unknown_tool",input:f}}))}0===h.length&&h.push({text:" "}),b.push({role:"assistant"===e.role?"assistant":"user",content:h})}return 0===b.length&&b.push({role:"user",content:[{text:" "}]}),function(a){let b=function(a){let b=[];for(let c of a){let a=b[b.length-1];if(v(a)&&v(c)){a.content.push(...c.content);continue}b.push(c)}return b}(a),c=new Map;for(let a=0;a<b.length;a++){let d=b[a];if(d?.role!=="assistant"||!Array.isArray(d.content))continue;let e=b[a+1],f=new Set(e?.role==="user"&&Array.isArray(e.content)?e.content.map(u).filter(Boolean):[]),g=d.content.map(t).filter(Boolean);if(0===g.length)continue;let h=new Set(g.filter(a=>f.has(a)));for(let a of(d.content=d.content.filter(a=>{let b=t(a);return!b||h.has(b)}),w(d),h))c.set(a,(c.get(a)||0)+1)}for(let a of b)a?.role==="user"&&Array.isArray(a.content)&&(a.content=a.content.filter(a=>{let b=u(a);if(!b)return!0;let d=c.get(b)||0;return!(d<=0)&&(c.set(b,d-1),!0)}),w(a));return b}(b)}(l)},(F=function(a){let b=[];for(let c of a){let a=c?.role;if("system"!==a&&"developer"!==a)continue;let d=s(c.content).map(a=>"string"==typeof a.text?a.text:"").filter(Boolean).join("\n");d.trim()&&b.push({text:d})}return b}(l)).length>0&&(E.system=F),Object.keys(m).length>0&&(E.inferenceConfig=m),(G=function(a,b){if(!Array.isArray(a)||0===a.length)return;let c=[];for(let b of a){let a=p(b),d="function"===a.type?p(a.function):a,e="string"==typeof d.name?d.name.trim():"";e&&c.push({toolSpec:{name:e,description:"string"==typeof d.description?d.description:void 0,inputSchema:{json:p(d.parameters)}}})}if(0===c.length)return;let d={tools:c};if("required"===b)d.toolChoice={any:{}};else if("auto"===b)d.toolChoice={auto:{}};else if(b&&"object"==typeof b){let a=p(b.function),c="string"==typeof a.name?a.name:"";c&&(d.toolChoice={tool:{name:c}})}return d}(k.tools,k.tool_choice))&&(E.toolConfig=G),E);try{let b,k=this.createClient(d);if(await n.OU(H,I,K,JSON.stringify(K),i),c){let b,c,d,f,g=await k.send(new e.v(K),{abortSignal:h||void 0});return{response:new Response((j=g.stream,b=new Map,c=0,d="stop",f=null,new ReadableStream({async start(e){try{for await(let g of(e.enqueue(z(B(a,{role:"assistant"}))),j||[])){let h=[g?.throttlingException,g?.validationException,g?.modelStreamErrorException,g?.serviceUnavailableException,g?.internalServerException].filter(Boolean)[0]||null;if(h){let a=function(a){let b=String(a?.name||a?.code||"");return b.includes("Throttling")?429:b.includes("Validation")?400:b.includes("ServiceUnavailable")?503:b.includes("InternalServer")?500:502}(h);e.enqueue(z({error:{message:h.message||"Bedrock stream failed",type:429===a?"rate_limit_error":"upstream_error",code:h.name||"bedrock_stream_error",status:a}}));break}if(g.contentBlockStart?.start?.toolUse){let d=g.contentBlockStart.start.toolUse,f=c++;b.set(g.contentBlockStart.contentBlockIndex,f),e.enqueue(z(B(a,{tool_calls:[{index:f,id:d.toolUseId,type:"function",function:{name:d.name,arguments:""}}]})));continue}if(g.contentBlockDelta?.delta){let c=g.contentBlockDelta.delta;if("string"==typeof c.text&&c.text.length>0&&e.enqueue(z(B(a,{content:c.text}))),"string"==typeof c.reasoningContent?.text&&c.reasoningContent.text&&e.enqueue(z(B(a,{reasoning_content:c.reasoningContent.text}))),"string"==typeof c.toolUse?.input){let d=b.get(g.contentBlockDelta.contentBlockIndex)??0;e.enqueue(z(B(a,{tool_calls:[{index:d,function:{arguments:c.toolUse.input}}]})))}continue}if(g.messageStop?.stopReason){d=x(g.messageStop.stopReason);continue}g.metadata?.usage&&(f=y(g.metadata.usage))}e.enqueue(z(B(a,{},d,f||void 0))),e.enqueue(A()),e.close()}catch(b){let a=D(b);e.enqueue(z(a)),e.enqueue(A()),e.close()}}})),{status:200,headers:{"Content-Type":"text/event-stream"}}),url:H,headers:I,transformedBody:K}}let l=await k.send(new f.R(K),{abortSignal:h||void 0});return{response:new Response(JSON.stringify((b=function(a){let b=[],c=[],d=[];for(let e of Array.isArray(a)?a:[])"string"==typeof e?.text&&b.push(e.text),"string"==typeof e?.reasoningContent?.reasoningText?.text&&c.push(e.reasoningContent.reasoningText.text),e?.toolUse&&d.push({id:e.toolUse.toolUseId,type:"function",function:{name:e.toolUse.name,arguments:JSON.stringify(e.toolUse.input||{})}});let e={role:"assistant",content:b.join("")};return c.length>0&&(e.reasoning_content=c.join("")),d.length>0&&(e.content=e.content||null,e.tool_calls=d),e}(l?.output?.message?.content||[]),{id:`chatcmpl-bedrock-${(0,g.randomUUID)()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:b,finish_reason:x(l?.stopReason)}],usage:y(l?.usage)})),{status:200,headers:{"Content-Type":"application/json"}}),url:H,headers:I,transformedBody:K}}catch(b){let a=C(b);return{response:new Response(JSON.stringify(D(b)),{status:a,headers:{"Content-Type":"application/json"}}),url:H,headers:I,transformedBody:K}}}}},84664:(a,b,c)=>{c.d(b,{a:()=>x});var d=c(77598),e=c(74350),f=c(97510),g=c(67353),h=c(56452),i=c(62156),j=c(93462),k=c(86522),l=c(69896),m=c(71961),n=c(14170),o=c(95374),p=c(5341),q=c(61408);function r(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function s(a){let b=a.providerSpecificData?.extraApiKeys??[];return a.apiKey&&a.connectionId&&b.length>0?(0,i.Cy)(a.connectionId,a.apiKey,b):a.apiKey||a.accessToken||""}function t(a){return"glm-5.2-high"===a?{baseModel:"glm-5.2",effort:"high"}:"glm-5.2-max"===a?{baseModel:"glm-5.2",effort:"max"}:null}let u=/^glm-5\.(?:[2-9]|\d{2,})/i;function v(a){let b=new Headers;return a.forEach((a,c)=>b.set(c,a)),b}async function w(a){let b,c,d=await a.json().catch(()=>null),e=a.ok?(0,l.l)(d,n.h.CLAUDE,n.h.OPENAI):(b=r(d)||{},{error:{message:"string"==typeof(c=r(b.error)||b).message&&c.message.trim()?c.message:"string"==typeof b.message&&b.message.trim()?b.message:"GLM Anthropic transport error",type:"string"==typeof c.type&&c.type.trim()?c.type:"string"==typeof b.type&&b.type.trim()?b.type:"upstream_error"}}),f=v(a.headers);return f.set("content-type","application/json"),f.delete("content-length"),new Response(JSON.stringify(e),{status:a.status,statusText:a.statusText,headers:f})}class x extends e.L{constructor(a="glm"){super(a)}buildUrl(a,b,c=0,d=null){let e=(0,g.ai)(d?.providerSpecificData);return(0,g.Cd)(d?.providerSpecificData,1===c?"openai"===e?"anthropic":"openai":e,this.config.baseUrl)}buildCountTokensUrl(a,b=null){return(0,g.Ju)(b?.providerSpecificData,this.config.baseUrl)}getCountTokensTimeoutMs(){return g.ZI}buildHeaders(a,b=!0,c,e,f=(0,g.ai)(a.providerSpecificData)){return"openai"===f?(0,g.vp)(s(a),b):{...(0,g.cD)(s(a),b),"X-Stainless-Arch":(0,k._G)(),"X-Stainless-OS":(0,k.zk)(),"X-Stainless-Runtime-Version":(0,k.rm)(),"X-Stainless-Package-Version":j.VM,"X-Claude-Code-Session-Id":(0,d.randomUUID)(),"x-client-request-id":(0,d.randomUUID)()}}transformRequest(a,b,c,d){return function(a,b){let c=r(a);if(!c||!b)return a;let d={...(0,h.b)(c,b)},e="string"==typeof b.thinkingType?b.thinkingType:null;return e&&void 0===d.thinking?d.thinking={type:e}:e&&r(d.thinking)?.type==="enabled"&&(d.thinking={...r(d.thinking),type:e}),d}(super.transformRequest(a,b,c,d),this.config.requestDefaults)}transformForTransport(a,b,c,d,e){let f=t(a),g=f?f.baseModel:a,h=this.transformRequest(g,b,c,d),i=r(h);if(i&&f&&(i.model=g),i&&u.test(g)){let a=r(b);(a?.max_tokens??a?.max_completion_tokens)||(i.max_tokens=131072)}if("openai"===e){let a;return i&&c&&(a=r(i),Array.isArray(a?.tools)&&a.tools.length>0)&&void 0===i.tool_stream?{...i,tool_stream:!0}:h}let j=(0,m.GH)(n.h.OPENAI,n.h.CLAUDE,g,{...i??{},_disableToolPrefix:!0},c,d,this.provider,null,{preserveCacheControl:!1});if(f){let a=r(j);if(a){a.effort=f.effort;let b=r(a.thinking);b&&"enabled"===b.type||(a.thinking={...b,type:"enabled"})}}return j}async executeTransport(a,b){let c,d=a.credentials,e=(0,g.Cd)(d?.providerSpecificData,b,this.config.baseUrl),h=this.buildHeaders(d,a.stream,a.clientHeaders,a.model,b);(0,f.rR)(h,d.providerSpecificData),(0,f._F)(h,a.upstreamExtraHeaders);let i=this.transformForTransport(a.model,a.body,a.stream,d,b),j=this.getTimeoutMs(),k=j>0?new AbortController:null,l=null;k&&(l=setTimeout(()=>{let a=Error(`Fetch timeout after ${j}ms on ${e}`);a.name="TimeoutError",k.abort(a)},j));let m=k?.signal??null,r=a.signal&&m?(0,f.OW)(a.signal,m):a.signal||m;try{c=await fetch(e,{method:"POST",headers:h,body:JSON.stringify(i),signal:r||void 0})}finally{l&&clearTimeout(l)}a.stream&&c.ok&&(c=(await (0,p.XP)(c,{timeoutMs:q.TG,provider:this.provider,model:a.model,log:a.log})).response);let s={response:c,url:e,headers:h,transformedBody:i};if("anthropic"===b){let b=a.stream&&s.response.ok?function(a,b,c){if(!a.body)return a;let d=(0,o.i5)(n.h.CLAUDE,n.h.OPENAI,b,null,null,c),e=v(a.headers);return e.set("content-type","text/event-stream"),e.delete("content-length"),new Response(a.body.pipeThrough(d),{status:a.status,statusText:a.statusText,headers:e})}(s.response,this.provider,a.model):(s.response.headers.get("content-type")||"").toLowerCase().includes("application/json")?await w(s.response):s.response;return{...s,response:b,url:e,headers:h,transformedBody:i,targetFormat:n.h.OPENAI}}return{...s,url:e,headers:h,transformedBody:i,targetFormat:n.h.OPENAI}}async execute(a){var b;if(t(a.model))return this.executeTransport(a,"anthropic");let c=(0,g.ai)(a.credentials.providerSpecificData,this.config.baseUrl),d="openai"===c?"anthropic":"openai",e=null;try{if(b=(e=await this.executeTransport(a,c)).response.status,404!==b&&408!==b&&409!==b&&429!==b&&!(b>=500))return e;a.log?.debug?.("GLM_FALLBACK",`${c} returned ${e.response.status}; trying ${d}`)}catch(b){if(!(b&&"AbortError"!==(b instanceof Error?b:Error(String(b))).name&&1))throw b;a.log?.debug?.("GLM_FALLBACK",`${c} error (${b instanceof Error?b.message:String(b)}); trying ${d}`)}try{let b=await this.executeTransport(a,d);if(b.response.ok||!e)return b}catch(b){if(!e)throw b;a.log?.debug?.("GLM_FALLBACK",`${d} fallback failed (${b instanceof Error?b.message:String(b)}); returning primary response`)}return e}async countTokens(a){return super.countTokens({...a,credentials:{...a.credentials,providerSpecificData:{...a.credentials.providerSpecificData||{},primaryTransport:"anthropic"}}})}}},85308:(a,b,c)=>{c.d(b,{q:()=>h});var d=c(97510),e=c(61408),f=c(43659);let g=parseInt(process.env.TRAE_STREAM_TIMEOUT_MS||"300000",10);class h extends d.Hv{constructor(){super("trae",e.xq.trae)}base(){return(this.config.baseUrl||"https://core-normal.trae.ai/api/remote/v1").replace(/\/$/,"")}buildHeaders(a){let b=a.accessToken||"",c=a.providerSpecificData||{};return{Authorization:`Cloud-IDE-JWT ${b}`,"Content-Type":"application/json","X-Trae-Client-Type":"web","X-Preferenced-Language":c.appLanguage||"en","x-user-region":c.userRegion||"US",Referer:"https://solo.trae.ai/","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"}}resolveMode(a){let b=(a||"").trim().toLowerCase();if("work"===b||"auto-work"===b||"solo-work"===b)return{mode:"work",strategy:"auto",modelName:""};let c=!b||"auto"===b;return{mode:"code",strategy:c?"auto":"manual",modelName:c?"":a}}commonParams(a,b,c){let d={language:"en-us",app_language:a.appLanguage||"en",quality:"stable",app_version:a.appVersion||"1.0.0.1229",web_id:a.webId||"",user_identity:a.userIdentity||"Free",is_freshman:"0",biz_user_id:a.bizUserId||"",user_unique_id:a.userUniqueId||"",scope:a.scope||"marscode-us",tenant:a.tenant||"marscode",region:a.region||"US-East",aiRegion:a.aiRegion||a.region||"US-East",is_privacy_mode:0,privacy_mode:"off",solo_chat_mode:b};return c&&(d.biz_session_id=c),JSON.stringify(d)}async createSession(a,b,c,d,e){let{mode:f,strategy:g,modelName:h}=this.resolveMode(c),i={mode:f,environment_id:"default",initial_message:{chat_session_id:"",content:[],query:b,model_name:h,agent_type:"solo_agent_remote",model_selection_strategy:g,common_params:this.commonParams(d,f)},env:"remote",auto_create_project:!1,origin:"web"},j=await fetch(`${this.base()}/chat_sessions`,{method:"POST",headers:a,body:JSON.stringify(i),signal:e||void 0}),k=await j.text();if(!j.ok)throw Error(`[${j.status}] ${k}`);let l=JSON.parse(k);if(l?.code!==0)throw Error(`Trae create_session: ${JSON.stringify(l)}`);return{sessionId:l.data.chat_session_id,messageId:l.data.message_id}}async streamEvents(a,b,c,d,e){let f=`${this.base()}/chat_sessions/${b}/events?reply_to_message_id=${encodeURIComponent(c)}`,h=new AbortController;e?.aborted&&h.abort();let i=setTimeout(()=>h.abort(Error("trae stream timeout")),g),j=()=>h.abort();e&&e.addEventListener("abort",j,{once:!0});try{let b=await fetch(f,{method:"GET",headers:a,signal:h.signal});if(!b.ok||!b.body)throw Error(`[${b.status}] events stream failed`);let c=b.body.getReader(),e=new TextDecoder,g="",i=null;for(;;){let a,{done:b,value:f}=await c.read();if(b)break;for(g+=e.decode(f,{stream:!0});(a=g.indexOf("\n"))>=0;){let b=g.slice(0,a).replace(/\r$/,"");if(g=g.slice(a+1),b.startsWith("event:"))i=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(i,a))return void await c.cancel().catch(()=>{})}else""===b&&(i=null)}}}finally{clearTimeout(i),e&&e.removeEventListener("abort",j)}}async execute({model:a,body:b,stream:c,credentials:e,signal:g,upstreamExtraHeaders:h}){let i,j=this.buildHeaders(e);(0,d._F)(j,h);let k=e.providerSpecificData||{},l=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]
|
|
391
391
|
${a}`):"assistant"===c.role?b.push(`[Assistant]
|
|
392
392
|
${a}`):b.push(a)}return JSON.stringify([{type:"text",data:{content:b.join("\n\n")}}])}(b.messages||[]),m=`chatcmpl-trae-${Date.now()}`,n=Math.floor(Date.now()/1e3),o=(a,b)=>new Response(JSON.stringify({error:{message:(0,f.sanitizeErrorMessage)(b),type:"api_error",code:""}}),{status:a,headers:{"Content-Type":"application/json"}});try{i=await this.createSession(j,l,a,k,g)}catch(a){return{response:o(502,a instanceof Error?a.message:String(a)),url:this.base(),headers:j,transformedBody:b}}let p=[],q={},r=0,s=null,t=null,u=a=>{let b=a.id;if(!b)return"";b in q||p.push(b);let c=a.thought||"";c.length>=(q[b]||"").length&&(q[b]=c);let d=p.map(a=>q[a]).join(""),e=d.slice(r);return r=d.length,e};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)}
|
|
393
393
|
|
|
394
|
-
`));try{d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]}),await this.streamEvents(j,i.sessionId,i.messageId,(b,c)=>{if("error"===b)return t=c,!0;if("token_usage"===b&&(s=c),"plan_item"===b){let b=u(c);b&&d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},g),t?d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[],error:{message:`trae ${t.code}: ${t.message}`,type:"api_error"}}):(d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}),s&&d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[],usage:{prompt_tokens:s.prompt_tokens||0,completion_tokens:s.completion_tokens||0,total_tokens:s.total_tokens||0}})),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:j,transformedBody:b}}try{await this.streamEvents(j,i.sessionId,i.messageId,(a,b)=>"error"===a?(t=b,!0):("token_usage"===a&&(s=b),"plan_item"===a&&u(b),"done"===a),g)}catch(a){return{response:o(502,a instanceof Error?a.message:String(a)),url:this.base(),headers:j,transformedBody:b}}if(t)return{response:o(502,`trae ${t.code}: ${t.message}`),url:this.base(),headers:j,transformedBody:b};let v={id:m,object:"chat.completion",created:n,model:a,choices:[{index:0,message:{role:"assistant",content:p.map(a=>q[a]).join("")},finish_reason:"stop"}]};return s&&(v.usage={prompt_tokens:s.prompt_tokens||0,completion_tokens:s.completion_tokens||0,total_tokens:s.total_tokens||0}),{response:new Response(JSON.stringify(v),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:j,transformedBody:b}}async refreshCredentials(a){let b,c=a?.providerSpecificData||{},d=a?.refreshToken;if(!d)return null;let e=(c.host||"https://api-us-east.trae.ai").replace(/\/$/,""),f=c.clientId||"en1oxy7wnw8j9n",g=`${e}/cloudide/api/v3/trae/oauth/ExchangeToken`,h=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ClientID:f,RefreshToken:d,ClientSecret:"-",UserID:""})}),i=await h.text();if(!h.ok)throw Error(`Trae ExchangeToken HTTP ${h.status}: ${i.slice(0,200)}`);try{b=JSON.parse(i)}catch{throw Error("Trae ExchangeToken: response was not JSON")}let j=b?.ResponseMetadata?.Error?.Code;if(j)throw Error(`Trae ExchangeToken error: ${j}`);let k=b?.Result;if(!k?.Token)throw Error("Trae ExchangeToken: response missing Result.Token");return{accessToken:k.Token,refreshToken:k.RefreshToken||d,expiresAt:k.TokenExpireAt?new Date(Number(k.TokenExpireAt)).toISOString():void 0}}}},85955:(a,b,c)=>{
|
|
394
|
+
`));try{d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[{index:0,delta:{role:"assistant"},finish_reason:null}]}),await this.streamEvents(j,i.sessionId,i.messageId,(b,c)=>{if("error"===b)return t=c,!0;if("token_usage"===b&&(s=c),"plan_item"===b){let b=u(c);b&&d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}return"done"===b},g),t?d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[],error:{message:`trae ${t.code}: ${t.message}`,type:"api_error"}}):(d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[{index:0,delta:{},finish_reason:"stop"}]}),s&&d({id:m,object:"chat.completion.chunk",created:n,model:a,choices:[],usage:{prompt_tokens:s.prompt_tokens||0,completion_tokens:s.completion_tokens||0,total_tokens:s.total_tokens||0}})),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:j,transformedBody:b}}try{await this.streamEvents(j,i.sessionId,i.messageId,(a,b)=>"error"===a?(t=b,!0):("token_usage"===a&&(s=b),"plan_item"===a&&u(b),"done"===a),g)}catch(a){return{response:o(502,a instanceof Error?a.message:String(a)),url:this.base(),headers:j,transformedBody:b}}if(t)return{response:o(502,`trae ${t.code}: ${t.message}`),url:this.base(),headers:j,transformedBody:b};let v={id:m,object:"chat.completion",created:n,model:a,choices:[{index:0,message:{role:"assistant",content:p.map(a=>q[a]).join("")},finish_reason:"stop"}]};return s&&(v.usage={prompt_tokens:s.prompt_tokens||0,completion_tokens:s.completion_tokens||0,total_tokens:s.total_tokens||0}),{response:new Response(JSON.stringify(v),{status:200,headers:{"Content-Type":"application/json"}}),url:this.base(),headers:j,transformedBody:b}}async refreshCredentials(a){let b,c=a?.providerSpecificData||{},d=a?.refreshToken;if(!d)return null;let e=(c.host||"https://api-us-east.trae.ai").replace(/\/$/,""),f=c.clientId||"en1oxy7wnw8j9n",g=`${e}/cloudide/api/v3/trae/oauth/ExchangeToken`,h=await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ClientID:f,RefreshToken:d,ClientSecret:"-",UserID:""})}),i=await h.text();if(!h.ok)throw Error(`Trae ExchangeToken HTTP ${h.status}: ${i.slice(0,200)}`);try{b=JSON.parse(i)}catch{throw Error("Trae ExchangeToken: response was not JSON")}let j=b?.ResponseMetadata?.Error?.Code;if(j)throw Error(`Trae ExchangeToken error: ${j}`);let k=b?.Result;if(!k?.Token)throw Error("Trae ExchangeToken: response missing Result.Token");return{accessToken:k.Token,refreshToken:k.RefreshToken||d,expiresAt:k.TokenExpireAt?new Date(Number(k.TokenExpireAt)).toISOString():void 0}}}},85955:(a,b,c)=>{function d(){return"u">typeof process&&"string"==typeof process.platform?process.platform:"unknown"}function e(){return"u">typeof process&&"string"==typeof process.arch?process.arch:"unknown"}c.d(b,{Nc:()=>m,f0:()=>l,FM:()=>i,H$:()=>k});var f=c(4368),g=c(67518),h=c(42492);function i(a){a?.providerSpecificData&&"object"==typeof a.providerSpecificData&&!Array.isArray(a.providerSpecificData)&&a.providerSpecificData.clientProfile}function j(a=(0,h.HM)(),b=d(),c=e()){return`antigravity/${a} ${function(a=d(),b=e()){return`${function(a=d()){return"win32"===a?"windows":a||"unknown"}(a)}/${function(a=e()){switch(a){case"x64":return"amd64";case"ia32":return"386";default:return a||"unknown"}}(b)}`}(b,c)}`}function k(a,b){let c=b.toLowerCase();for(let b of Object.keys(a))b.toLowerCase()===c&&delete a[b]}function l(a,b){let c={"Content-Type":"application/json"};return(b&&(c.Authorization=`Bearer ${b}`),"harness"===a)?(c["User-Agent"]=function(a=(0,h.HM)()){return`${j(a)} ${g.Pz}`}(),c["X-Goog-Api-Client"]=g.zJ):(c["User-Agent"]=(0,g.FT)(),c["Client-Metadata"]=JSON.stringify((0,g.iu)())),c}function m(a,b,c){let d,e=i(b),l=(0,h.HM)();if("harness"===e)a["User-Agent"]=j(l),k(a,"X-Goog-Api-Client"),k(a,"x-client-name"),k(a,"x-client-version"),k(a,"x-machine-id"),k(a,"x-vscode-sessionid"),k(a,"Client-Metadata");else{a["User-Agent"]=(0,g.FT)(),a["x-client-name"]="antigravity",a["x-client-version"]=l;let c=(0,f.kv)(b);c?a["x-machine-id"]=c:k(a,"x-machine-id"),a["x-vscode-sessionid"]=(0,f.W$)(),k(a,"X-Goog-Api-Client"),k(a,"Client-Metadata")}let m="string"!=typeof(d=c&&"object"==typeof c?c.project:null)||0===d.trim().length||"test-project"===d||"project-id"===d?null:d;return m?a["x-goog-user-project"]=m:k(a,"x-goog-user-project"),e}},87836:(a,b,c)=>{var d=c(97510);function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function f(a){return a.replace(/\/$/,"")}class g extends d.Hv{constructor(){super("kie",{baseUrl:"https://api.kie.ai"})}getTaskCreateUrl(a,b="/api/v1/jobs/createTask"){return`${f(a)}${b}`}getTaskStatusUrl(a){return`${f(a)}/api/v1/jobs/recordInfo`}async createTask({baseUrl:a,token:b,payload:c,endpoint:d}){let f=await fetch(this.getTaskCreateUrl(a,d),{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"},body:JSON.stringify(c)});if(!f.ok)throw Object.assign(Error(await f.text()||`Kie createTask failed with status ${f.status}`),{status:f.status});let g=await f.json();return e(g)?g:{}}async pollTask({statusUrl:a,taskId:b,token:c,timeoutMs:d,pollIntervalMs:f}){let g=Date.now()+d;for(;Date.now()<g;){let d=new URL(a);d.searchParams.set("taskId",String(b));let g=await fetch(d.toString(),{method:"GET",headers:{Authorization:`Bearer ${c}`}});if(!g.ok)throw Object.assign(Error(await g.text()||`Kie poll failed with status ${g.status}`),{status:g.status});let h=await g.json(),i=e(h)?h:{},j=function(a){let b=e(a)?a:{},c=e(b.data)?b.data:{},d=String(c.status??c.state??c.successFlag??b.msg??"PENDING").toUpperCase();return"SUCCESS"===d||"1"===d||"FINISHED"===d||"COMPLETE"===d||"COMPLETED"===d||"FIRST_SUCCESS"===d||"ALL_SUCCESS"===d||d.includes("SUCCESS")?"success":"FAIL"===d||"FAILED"===d||"ERROR"===d||"2"===d||"3"===d||d.includes("FAIL")||d.includes("ERROR")||"CREATE_TASK_FAILED"===d||"GENERATE_FAILED"===d||"GENERATE_AUDIO_FAILED"===d?"failed":"pending"}(i);if("pending"!==j)return{data:i,state:j};await function(a){return new Promise(b=>setTimeout(b,a))}(f)}throw Object.assign(Error("Kie task timed out"),{status:504})}}new g},87943:(a,b,c)=>{c.d(b,{g:()=>h});var d=c(97510),e=c(43659);let f="https://venice.ai",g=`${f}/api/chat`;class h extends d.Hv{constructor(){super("venice-web",{id:"venice-web",baseUrl:"https://venice.ai"})}async execute(a){let b,{body:c,credentials:d,signal:h,stream:i}=a,j=c||{},k=(0,e.sY)(String(d?.apiKey??"").trim()),l=j.messages||[],m=j.model||"venice-default",n={messages:l.map(a=>({role:a.role,content:a.content})),model:m,stream:i,max_tokens:j.max_tokens||4096},o={"Content-Type":"application/json","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",Accept:i?"text/event-stream":"application/json",Referer:`${f}/`,Origin:f};k&&(o.Cookie=k);try{b=await fetch(g,{method:"POST",headers:o,body:JSON.stringify(n),signal:h})}catch(a){return(0,e.DV)(502,`Venice fetch failed: ${a instanceof Error?a.message:"unknown"}`,c,g)}if(!b.ok){let a=await b.text().catch(()=>"");return(0,e.DV)(b.status,`Venice error: ${a}`,c,g)}if(!i){let a=await b.json(),c=a?.choices?.[0]?.message?.content||a?.content||"";return{response:new Response(JSON.stringify({id:`chatcmpl-ven-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,message:{role:"assistant",content:c},finish_reason:"stop"}]}),{headers:{"Content-Type":"application/json"}}),url:g,headers:o,transformedBody:n}}let p=new TextEncoder,q=new TextDecoder;return{response:new Response(new ReadableStream({async start(a){let c=b.body?.getReader();if(!c)return void a.close();let d="";try{for(;;){let{done:b,value:e}=await c.read();if(b)break;let f=(d+=q.decode(e,{stream:!0})).split("\n");for(let b of(d=f.pop()||"",f)){if(!b.startsWith("data:"))continue;let c=b.slice(5).trim();if("[DONE]"===c){a.enqueue(p.encode("data: [DONE]\n\n"));continue}try{let b=JSON.parse(c),d=b.choices?.[0]?.delta?.content||"";if(d){let b={id:`chatcmpl-ven-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,delta:{content:d},finish_reason:null}]};a.enqueue(p.encode(`data: ${JSON.stringify(b)}
|
|
395
395
|
|
|
396
|
-
`))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},88331:(a,b,c)=>{
|
|
396
|
+
`))}}catch{}}}}catch(b){h?.aborted||a.error(b)}finally{a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:g,headers:o,transformedBody:n}}}},88331:(a,b,c)=>{c.d(b,{q:()=>t});var d=c(97510),e=c(43659);let f="https://veoaifree.com",g=`${f}/wp-admin/admin-ajax.php`,h=`${f}/video/googletts.php`,i="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36";function j(a){if(a?.aborted)throw a.reason instanceof Error?a.reason:Error("Request aborted")}async function k(a,b={},c){let d,e,f;j(c);let g=(d=new AbortController,e=()=>d.abort(c?.reason||Error("Request aborted")),f=setTimeout(()=>d.abort(Error("VeoAIFree request timed out")),3e4),c?.aborted?e():c?.addEventListener("abort",e,{once:!0}),{signal:d.signal,cleanup:()=>{clearTimeout(f),c?.removeEventListener("abort",e)}});try{return await fetch(a,{...b,signal:g.signal})}finally{g.cleanup()}}async function l(a){let b=await k(f,{headers:{"User-Agent":i}},a),c=(await b.text()).match(/nonce":"([a-f0-9]+)"/);if(!c)throw Error("Failed to extract CSRF nonce from veoaifree.com");return c[1]}async function m(a,b,c){let d=new URLSearchParams({action:"veo_video_generator",nonce:a,...b});return(await k(g,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","User-Agent":i,Origin:f,Referer:`${f}/`},body:d.toString()},c)).text()}function n(a,b=200){return new Response(JSON.stringify(a),{status:b,headers:{"Content-Type":"application/json"}})}function o(a,b=502){return n({error:{message:a}},b)}async function p(a,b,c,d){let e=(await m(a,{prompt:b,totalVariations:"1",aspectRatio:c,actionType:"full-video-generate"},d)).trim();if(!e||"0"===e||e.toLowerCase().includes("error"))return o("Video generation failed");for(let b=0;b<30;b++){await function(a){let b;return j(a),new Promise((c,d)=>{let e=setTimeout(c,2e4);b=()=>{clearTimeout(e),d(a?.reason instanceof Error?a.reason:Error("Request aborted"))},a?.addEventListener("abort",b,{once:!0})}).finally(()=>{b&&a?.removeEventListener("abort",b)})}(d),j(d);try{let b=(await m(a,{sceneData:e,actionType:"final-video-results"},d)).trim();if(b&&"0"!==b&&!b.toLowerCase().includes("error")){let a=b.split(/[,\n]/).map(a=>a.trim()).filter(a=>a.startsWith("http"));if(a.length>0)return n({object:"video.generation",data:a.map(a=>({url:a,type:"video"})),status:"completed"})}}catch{}}return o("Video generation timed out after 10 minutes",504)}async function q(a,b,c,d){let e=(await m(a,{promptIMG:b,totalVariationsIMG:"1",aspectRatioIMG:c,actionType:"banan-image-generator"},d)).trim();return!e||"0"===e||e.toLowerCase().includes("error")?o("Image generation failed"):n({object:"image.generation",data:e.split(",").map(a=>a.trim()).filter(Boolean).map(a=>a.startsWith("http")?{url:a,type:"image"}:{b64_json:a,type:"image"}),status:"completed"})}async function r(a,b,c,d){let e=await k(h,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":i,Origin:f,Referer:`${f}/free-ai-text-to-speech/`},body:JSON.stringify({text:a.slice(0,1e4),voice:b||"en-US-AvaNeural",lang:c||"en-US",pitch:"0",speed:"1.0"})},d);if(!e.ok)return o(`TTS failed (${e.status})`);let g=e.headers.get("content-type")||"";if(g.includes("audio")||g.includes("octet-stream")||g.includes("wav"))return new Response(e.body,{headers:{"Content-Type":g.includes("wav")?"audio/wav":"audio/mpeg","Content-Disposition":'attachment; filename="speech.wav"'}});let j=await e.text();try{let a=JSON.parse(j);if(a.audio_data)return n({object:"audio.speech",audio:a.audio_data,status:"completed"});if(a.url)return n({object:"audio.speech",url:a.url,status:"completed"})}catch{}return o("TTS unexpected response format")}async function s(a,b,c){let d=(await m(a,{prompt:b,actionType:"main-prompt-generation"},c)).trim();return d&&"0"!==d?n({object:"prompt.enhancement",enhanced:d,status:"completed"}):o("Prompt enhancement failed")}class t extends d.Hv{constructor(){super("veoaifree-web",{id:"veoaifree-web",baseUrl:f})}async execute(a){let b,c,d=a.body,i=a.model||d?.model||"veo-3.1",j=d?.messages||[],k=j.filter(a=>"user"===a.role).pop(),m=j.filter(a=>"system"===a.role).pop(),n=k?.content||"",t=m?.content||"";if(!n.trim())return{response:o("No prompt provided",400),url:g,headers:{},transformedBody:null};let u=function(a,b){let c=(a||"").toLowerCase();if(c.includes("tts")||c.includes("speech")||c.includes("audio"))return"tts";if(c.includes("image")||c.includes("banana")||c.includes("imagen"))return"image";if(c.includes("enhance")||c.includes("prompt"))return"enhance";if(c.includes("video")||c.includes("veo")||c.includes("seedance"))return"video";let d=(b||"").toLowerCase();return d.startsWith("generate image")||d.startsWith("create image")||d.startsWith("draw ")?"image":d.startsWith("enhance")||d.startsWith("improve prompt")?"enhance":"video"}(i,n);if("tts"===u){let b=t.match(/voice:\s*(\S+)/),c=t.match(/lang:\s*(\S+)/);return{response:await r(n,b?.[1],c?.[1],a.signal),url:h,headers:{},transformedBody:{intent:u,model:i}}}try{b=await l(a.signal)}catch(b){let a=b instanceof Error?b.message:"Failed to get nonce";return{response:o((0,e.sanitizeErrorMessage)(a)),url:f,headers:{},transformedBody:null}}let v=t.match(/aspect[_-]?ratio:\s*(\S+)/i),w=v?.[1]||"VIDEO_ASPECT_RATIO_LANDSCAPE";switch(u){case"image":c=await q(b,n,w.replace("VIDEO_","IMAGE_"),a.signal);break;case"enhance":c=await s(b,n,a.signal);break;default:c=await p(b,n,w,a.signal)}return{response:c,url:g,headers:{},transformedBody:{intent:u,model:i}}}}},88357:(a,b,c)=>{c.d(b,{nq:()=>C});var d=c(77598),e=c(97510),f=c(61408),g=c(62156),h=c(72221),i=c(50954);let j="https://www.meta.ai/api/graphql",k="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",l="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",m={"muse-spark":{mode:"mode_fast",isThinking:!1},"muse-spark-thinking":{mode:"mode_thinking",isThinking:!0},"muse-spark-contemplating":{mode:"think_hard",isThinking:!0}};function n(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function o(a,b){let c=a,d="";for(;c>0n;)d=l[Number(c%62n)]+d,c/=62n;return d.padStart(b,"0")}function p(a){let b=new Uint8Array(a);crypto.getRandomValues(b);let c=0n;for(let a of b)c=c<<8n|BigInt(a);return c}function q(a){return m[a]||m["muse-spark"]}let r=new Map;function s(a,b,c){return(0,d.createHash)("sha256").update(`${a}\x1f${b}\x1f${c.map(a=>`${a.role}\x1e${a.content}`).join("\x1f")}`).digest("hex")}let t=["reasoning","reasoningContent","reasoning_content","reasoningText","thinking","thinkingContent","thinkingText","thought","thoughtText","thoughts","internalThoughts","chainOfThought","thinkingTrace","thinking_trace"],u=["contentRenderer","textContent","message","mediaContent","unified_response","unifiedResponseContent","sections","view_model","primitive","primitives","nested_responses"];function v(a){return`data: ${JSON.stringify(a)}
|
|
397
397
|
|
|
398
398
|
`}async function w(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)throw b.reason??new DOMException("Aborted","AbortError");let{value:a,done:f}=await c.read();if(f)break;e+=d.decode(a,{stream:!0})}return e+=d.decode()}finally{c.releaseLock()}}function x(a,b,c){return{response:a,url:j,headers:b,transformedBody:c}}function y(a,b,c,d,e){return x(new Response(JSON.stringify({error:{message:b,type:"upstream_error",...c?{code:c}:{}}}),{status:a,headers:{"Content-Type":"application/json"}}),d,e)}function z(a,b){a&&b&&r.delete(b)}async function A(a,b,c,d){try{let d=await fetch(j,{method:"POST",headers:a,body:JSON.stringify(b),signal:c});return{ok:!0,response:d}}catch(e){let c=e instanceof Error?e.message:String(e);return d?.error?.("MUSE-SPARK-WEB",`Fetch failed: ${c}`),{ok:!1,result:y(502,`Meta AI connection failed: ${c}`,"meta_ai_fetch_failed",a,b)}}}async function B(a,b,c,d,e,f,g){var i,j,k,l,m;let n,o,p,q=`chatcmpl-meta-${crypto.randomUUID().slice(0,12)}`,r=Math.floor(Date.now()/1e3),s=a.deltas.length>0?a.deltas:[a.content],t=a.reasoningDeltas,u=b?new Response((p=new TextEncoder,new ReadableStream({start(a){for(let b of(a.enqueue(p.encode(v({id:q,object:"chat.completion.chunk",created:r,model:c,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]}))),t))b&&a.enqueue(p.encode(v({id:q,object:"chat.completion.chunk",created:r,model:c,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:b},finish_reason:null,logprobs:null}]})));for(let b of s)b&&a.enqueue(p.encode(v({id:q,object:"chat.completion.chunk",created:r,model:c,system_fingerprint:null,choices:[{index:0,delta:{content:b},finish_reason:null,logprobs:null}]})));a.enqueue(p.encode(v({id:q,object:"chat.completion.chunk",created:r,model:c,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),a.enqueue(p.encode("data: [DONE]\n\n")),a.close()}},{highWaterMark:16384})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}}):(i=a.content,j=a.reasoningContent,k=c,l=q,m=r,n=Math.max(1,Math.ceil((i||"").length/4)),o={role:"assistant",content:i},j&&(o.reasoning_content=j),new Response(JSON.stringify({id:l,object:"chat.completion",created:m,model:k,system_fingerprint:null,choices:[{index:0,message:o,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:n,completion_tokens:n,total_tokens:2*n}}),{status:200,headers:{"Content-Type":"application/json"}}));if(f&&!b){let a=await u.text();try{let b=JSON.parse(a),c=b?.choices?.[0]?.message?.content||"",{content:d,toolCalls:e,finishReason:f}=(0,h.mU)(c,g,"muse");e?(b.choices[0].message={role:"assistant",content:null,tool_calls:e},b.choices[0].finish_reason=f):b.choices[0].message.content=d,u=new Response(JSON.stringify(b),{status:200,headers:{"Content-Type":"application/json"}})}catch{}}return x(u,d,e)}class C extends e.Hv{constructor(){super("muse-spark-web",{id:"muse-spark-web",baseUrl:j})}async execute({model:a,body:b,stream:c,credentials:d,signal:j,log:m,upstreamExtraHeaders:v}){let x,C,D,E,F,G=b||{},H=(x=b.messages)&&Array.isArray(x)&&0!==x.length?x:null;if(!H)return y(400,"Missing or empty messages array","invalid_request",{},b);let{hasTools:I,requestedTools:J,effectiveMessages:K}=(0,h.S$)(G,H),L=function(a){let b=[];for(let d of a){var c;let a=String(d.role||"user");"developer"===a&&(a="system");let e="string"==typeof(c=d.content)?c.trim():Array.isArray(c)?c.map(a=>n(a)&&("text"===a.type&&"string"==typeof a.text||"input_text"===a.type&&"string"==typeof a.text)?a.text:"").filter(a=>a.trim().length>0).join("\n").trim():"";e&&b.push({role:a,content:e})}if(0===b.length)return{foldedPrompt:"",latestUserContent:"",lastAssistantIndex:-1,normalized:[]};let d=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){d=a;break}let e=-1;for(let a=b.length-1;a>=0;a--)if("assistant"===b[a].role){e=a;break}return{foldedPrompt:b.map((a,b)=>b===d?a.content:`${a.role}: ${a.content}`).join("\n\n").trim(),latestUserContent:d>=0?b[d].content:"",lastAssistantIndex:e,normalized:b}}(K);if(!L.foldedPrompt)return y(400,"Empty query after processing messages","invalid_request",{},b);let M=L.lastAssistantIndex<0||!d.connectionId||0===L.latestUserContent.length?null:s(d.connectionId,a,L.normalized.slice(0,L.lastAssistantIndex+1)),N=M?(C=r.get(M))?Date.now()>C.expiresAt?(r.delete(M),null):C:null:null,O=function(a){if(!a){let a,b;return{conversationId:(a=BigInt(Date.now())&(1n<<44n)-1n,b=p(8)&(1n<<64n)-1n,`c.${o(a<<64n|b,19)}`),branchPath:"0",isNewConversation:!0}}return{conversationId:a.conversationId,branchPath:a.branchPath,isNewConversation:!1}}(N),P=N?L.latestUserContent:L.foldedPrompt,Q=q(a),R=(D=(1000n*BigInt(Date.now())+BigInt(Math.floor(1e3*Math.random()))+(4095n&p(2))).toString(),{doc_id:"29ae946c82d1f301196c6ca2226400b5",variables:{assistantMessageId:crypto.randomUUID(),attachments:null,clientLatitude:null,clientLongitude:null,clientTimezone:"u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",clippyIp:null,content:P,conversationId:O.conversationId,conversationStarterId:null,currentBranchPath:O.branchPath,developerOverridesForMessage:null,devicePixelRatio:1,entryPoint:"KADABRA__CHAT__UNIFIED_INPUT_BAR",imagineOperationRequest:null,isNewConversation:O.isNewConversation,mentions:null,mode:q(a).mode,promptEditType:null,promptSessionId:crypto.randomUUID(),promptType:null,qplJoinId:null,requestedToolCall:null,turnId:crypto.randomUUID(),userAgent:k,userEventId:function(a){if(!a.startsWith("c."))return null;try{let b=function(a){let b=0n;for(let c of a){let a=l.indexOf(c);if(a<0)throw Error(`Invalid base62 character: ${c}`);b=62n*b+BigInt(a)}return b}(a.slice(2)),c=BigInt(Date.now())&(1n<<44n)-1n,d=p(4)&(1n<<32n)-1n,e=c<<64n+32n|(b&(1n<<64n)-1n)<<32n|d;return`e.${o(e,25)}`}catch{return null}}(O.conversationId),userLocale:("u">typeof Intl&&Intl.DateTimeFormat().resolvedOptions().locale||"en-US").replace(/-/g,"_"),userMessageId:crypto.randomUUID(),userUniqueMessageId:D}}),S={Accept:"text/event-stream","Accept-Language":"en-US,en;q=0.9","Content-Type":"application/json",Cookie:(E=Array.isArray(d.providerSpecificData?.extraApiKeys)?d.providerSpecificData.extraApiKeys.filter(a=>"string"==typeof a&&a.trim().length>0):[],0===(F=(0,i.of)([d.apiKey||"",...E],"ecto_1_sess")).length?"":1!==F.length&&d.connectionId?(0,g.Cy)(d.connectionId,F[0],F.slice(1)):F[0]),Origin:"https://www.meta.ai",Referer:"https://www.meta.ai/","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":k,"X-ASBD-ID":"129477","X-FB-Friendly-Name":"useEctoSendMessageSubscription","X-FB-Request-Analytics-Tags":"graphservice"};(0,e._F)(S,v);let T=AbortSignal.timeout(f.MT),U=j?(0,e.OW)(j,T):T,V=await A(S,R,U,m);if(!V.ok)return V.result;let W=V.response;if(!W.ok){let a;return z(N,M),a=`Meta AI returned HTTP ${W.status}`,401===W.status||403===W.status?a="Meta AI auth failed — your meta.ai ecto_1_sess cookie may be missing or expired.":429===W.status&&(a="Meta AI rate limited the session. Wait a moment and retry."),y(W.status,a,`HTTP_${W.status}`,S,R)}if(!W.body)return y(502,"Meta AI returned an empty response body","meta_ai_empty_body",S,R);let X=function(a,b){var c,d;let e,f="",g=[],h="",i=[],j=null,k=null;for(let c of function(a){let b=a.trim();if(b.startsWith("{"))try{let a=JSON.parse(b);return n(a)?[a]:[]}catch{return[]}return(function(a){let b=[],c=a.split(/\r?\n/),d="message",e=[],f=()=>{(0!==e.length||"message"!==d)&&(b.push({event:d,data:e.join("\n").trim()}),d="message",e=[])};for(let a of c){if(!a){f();continue}if(!a.startsWith(":")){if(a.startsWith("event:")){d=a.slice(6).trim()||"message";continue}a.startsWith("data:")&&e.push(a.slice(5).trimStart())}}return f(),b})(a).filter(a=>a.data).map(a=>{try{let b=JSON.parse(a.data);return n(b)?b:null}catch{return null}}).filter(a=>!!a)}(a)){if(Array.isArray(c.errors)&&c.errors.length>0){let a=c.errors.find(a=>n(a)&&"string"==typeof a.message);n(a)&&"string"==typeof a.message&&(k=a.message.trim())}let a=n(c.data)?c.data:null,d=n(a?.sendMessageStream)?a?.sendMessageStream:null;if(!d||"AssistantMessage"!==d.__typename)continue;let e=function(a){if("string"==typeof a.content&&a.content.length>0)return a.content;let b=n(a.contentRenderer)?a.contentRenderer:null;return b?(function a(b,c,d=0){if(d>8)return[];if("string"==typeof b){let a=b.trim();return!a||c.has(a)?[]:(c.add(a),[a])}if(Array.isArray(b))return b.flatMap(b=>a(b,c,d+1));if(!n(b))return[];let e=[];for(let f of("string"==typeof b.text&&e.push(...a(b.text,c,d+1)),["contentRenderer","textContent","message","mediaContent","unified_response","unifiedResponseContent","sections","view_model","primitive","primitives","nested_responses"]))f in b&&e.push(...a(b[f],c,d+1));return e})(b,new Set).join("\n\n").trim():""}(d);if(e&&e!==f&&(g.push(e.startsWith(f)?e.slice(f.length):e),f=e),b){let a=(function a(b,c,d=0,e=!1){if(d>8)return[];if("string"==typeof b){let a=b.trim();return!e||!a||c.has(a)?[]:(c.add(a),[a])}if(Array.isArray(b))return b.flatMap(b=>a(b,c,d+1,e));if(!n(b))return[];let f="string"==typeof b.__typename?b.__typename:"",g=e||/reasoning|thinking|thought/i.test(f),h=[];for(let e of("string"==typeof b.text&&g&&h.push(...a(b.text,c,d+1,!0)),t))e in b&&h.push(...a(b[e],c,d+1,!0));for(let e of u)e in b&&h.push(...a(b[e],c,d+1,g));return h})(d,new Set).join("\n\n").trim();a&&a!==e&&a!==h&&(i.push(a.startsWith(h)?a.slice(h.length):a),h=a)}let l=function(a){let b=n(a.error)?a.error:null,c="string"==typeof a.streamingState?a.streamingState.toUpperCase():null;return{code:"string"==typeof b?.code?b.code:null,message:"string"==typeof b?.message?b.message.trim():"ERROR"===c&&"string"==typeof a.content&&a.content.trim()?a.content.trim():null}}(d);l.message&&(k=l.message,j=l.code)}let l=(c=k,d=f,(e=`${c||""}
|
|
399
|
-
${d}`.trim())?/authentication required to send messages|login is required|sign in/i.test(e)?{status:401,message:"Meta AI auth failed — your meta.ai ecto_1_sess cookie may be missing or expired."}:/limit exceeded|rate limit|too many requests/i.test(e)?{status:429,message:"Meta AI rate limited the session. Wait a moment and retry."}:/blocked by our security system|security system/i.test(e)?{status:403,message:"Meta AI blocked the request through its web security checks. Refresh the session cookie and retry."}:null:null);return l?{content:f,deltas:g,reasoningContent:h,reasoningDeltas:i,errorCode:j,errorMessage:l.message,status:l.status}:k?{content:f,deltas:g,reasoningContent:h,reasoningDeltas:i,errorCode:j,errorMessage:`Meta AI returned an error: ${k}`,status:502}:f?{content:f,deltas:g.filter(a=>a.length>0),reasoningContent:h,reasoningDeltas:i.filter(a=>a.length>0),errorCode:null,errorMessage:null,status:200}:{content:"",deltas:[],reasoningContent:h,reasoningDeltas:i,errorCode:null,errorMessage:"Meta AI returned no assistant content",status:502}}(await w(W.body,j),Q.isThinking);return 200!==X.status||X.errorMessage?(z(N,M),y(X.status,X.errorMessage||"Meta AI returned an unknown error",X.errorCode||"meta_ai_unknown_error",S,R)):(!function(a,b,c,d,e){if(!a.content||!b.connectionId)return;let f=[...d.normalized,{role:"assistant",content:a.content}];!function(a,b){if(r.size>=5e3&&!r.has(a)){let a=r.keys().next().value;a&&r.delete(a)}r.set(a,{conversationId:b.conversationId,branchPath:b.branchPath,expiresAt:Date.now()+18e5})}(s(b.connectionId,c,f),{conversationId:e.conversationId,branchPath:e.branchPath})}(X,d,a,L,O),B(X,c,a,S,R,I,J))}}},90528:(a,b,c)=>{
|
|
399
|
+
${d}`.trim())?/authentication required to send messages|login is required|sign in/i.test(e)?{status:401,message:"Meta AI auth failed — your meta.ai ecto_1_sess cookie may be missing or expired."}:/limit exceeded|rate limit|too many requests/i.test(e)?{status:429,message:"Meta AI rate limited the session. Wait a moment and retry."}:/blocked by our security system|security system/i.test(e)?{status:403,message:"Meta AI blocked the request through its web security checks. Refresh the session cookie and retry."}:null:null);return l?{content:f,deltas:g,reasoningContent:h,reasoningDeltas:i,errorCode:j,errorMessage:l.message,status:l.status}:k?{content:f,deltas:g,reasoningContent:h,reasoningDeltas:i,errorCode:j,errorMessage:`Meta AI returned an error: ${k}`,status:502}:f?{content:f,deltas:g.filter(a=>a.length>0),reasoningContent:h,reasoningDeltas:i.filter(a=>a.length>0),errorCode:null,errorMessage:null,status:200}:{content:"",deltas:[],reasoningContent:h,reasoningDeltas:i,errorCode:null,errorMessage:"Meta AI returned no assistant content",status:502}}(await w(W.body,j),Q.isThinking);return 200!==X.status||X.errorMessage?(z(N,M),y(X.status,X.errorMessage||"Meta AI returned an unknown error",X.errorCode||"meta_ai_unknown_error",S,R)):(!function(a,b,c,d,e){if(!a.content||!b.connectionId)return;let f=[...d.normalized,{role:"assistant",content:a.content}];!function(a,b){if(r.size>=5e3&&!r.has(a)){let a=r.keys().next().value;a&&r.delete(a)}r.set(a,{conversationId:b.conversationId,branchPath:b.branchPath,expiresAt:Date.now()+18e5})}(s(b.connectionId,c,f),{conversationId:e.conversationId,branchPath:e.branchPath})}(X,d,a,L,O),B(X,c,a,S,R,I,J))}}},90528:(a,b,c)=>{c.d(b,{calculateCost:()=>d});let d=async()=>void 0},93804:(a,b,c)=>{c.d(b,{G:()=>d});function d(a,b,c){let d;if(b&&b.length>0)return b;try{d=c(a)}catch(b){throw Error(`[TlsClient] Proxy resolution failed for ${a}; refusing direct connection (fail-closed): ${b instanceof Error?b.message:String(b)}`)}return d&&d.proxyUrl?d.proxyUrl:void 0}},95089:(a,b,c)=>{c.d(b,{c:()=>l});var d=c(31421),e=c(76760),f=c.n(e),g=c(48161),h=c.n(g),i=c(73024),j=c.n(i),k=c(97510);class l extends k.Hv{constructor(){super("devin-cli",{id:"devin-cli",baseUrl:""})}buildUrl(){return"devin://acp/stdio"}buildHeaders(){return{}}transformRequest(){return null}async execute({model:a,body:b,stream:c,credentials:e,signal:g,log:i}){let k=b??{},l=function(a){let b=[];for(let c of a){let a=String(c.role||"user"),d="";if("string"==typeof c.content)d=c.content;else if(Array.isArray(c.content))for(let a of c.content)a&&"object"==typeof a&&"text"===a.type&&(d+=String(a.text||""));d.trim()&&("system"===a?b.push(`[System]
|
|
400
400
|
${d}`):"assistant"===a?b.push(`[Assistant]
|
|
401
401
|
${d}`):b.push(`[User]
|
|
402
402
|
${d}`))}return b.join("\n\n")||"(empty)"}(Array.isArray(k.messages)?k.messages:[]),m=e.apiKey||e.accessToken||process.env.WINDSURF_API_KEY||"",n=function(){let a=process.env.CLI_DEVIN_BIN?.trim();if(a)return a;let b="win32"===process.platform;if(b){let a=process.env.LOCALAPPDATA||f().join(h().homedir(),"AppData","Local"),b=f().join(a,"devin","cli","bin","devin.exe");if(j().existsSync(b))return b}let c=h().homedir();for(let a of[f().join(c,".local","share","devin","bin","devin"),f().join(c,".devin","bin","devin")])if(j().existsSync(a))return a;return b?"devin.exe":"devin"}();return i?.info?.("DEVIN",`devin acp → model=${a}, bin=${n}`),{response:new Response(new ReadableStream({start(b){let c=new TextEncoder,e=a=>b.enqueue(c.encode(a)),f={...process.env};m&&(f.WINDSURF_API_KEY=m);let h=(0,d.spawn)(n,["acp","--agent-type","summarizer"],{env:f,stdio:["pipe","pipe","pipe"],shell:"win32"===process.platform}),j=null,k=!1;h.on("error",a=>{j=a;let c=a.message.includes("ENOENT")||a.message.includes("not found")?`Devin CLI not found: ${n}. Install via https://cli.devin.ai or set CLI_DEVIN_BIN env var.`:`Devin CLI spawn error: ${a.message}`;e(`data: ${JSON.stringify({error:{message:c,type:"devin_cli_error",code:"spawn_failed"}})}
|
|
@@ -413,7 +413,7 @@ ${d}`))}return b.join("\n\n")||"(empty)"}(Array.isArray(k.messages)?k.messages:[
|
|
|
413
413
|
|
|
414
414
|
`),w=b,e(`data: ${JSON.stringify({id:t,object:"chat.completion.chunk",created:u,model:a,choices:[{index:0,delta:{content:b},finish_reason:null}]})}
|
|
415
415
|
|
|
416
|
-
`))}let d=c?.stopReason||"";d&&"cancelled"!==d&&z()}if(b.error)return void z(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}}),h.stderr.on("data",a=>{i?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),h.on("close",a=>{x||(0===a||j?z():z(v?void 0:`Devin CLI exited with code ${a}`))}),y("initialize",{protocolVersion:"0.3",clientInfo:{name:"omniroute",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,promptLength:b?.messages}}}}},95374:(a,b,c)=>{"use strict";c.d(b,{lm:()=>g.lm,S0:()=>K,l2:()=>af,i5:()=>ae,v8:()=>h.v8,sh:()=>J});var d=c(71961),e=c(14170),f=c(47370),g=c(73483),h=c(9024),i=c(90528),j=c(69734),k=c(37208);function l(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function m(a,b=""){return"string"==typeof a?a:b}function n(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function o(a,b){for(let[c,d]of Object.entries(l(b)))"number"==typeof d&&Number.isFinite(d)?(void 0===a[c]||d>0)&&(a[c]=d):d&&"object"==typeof d&&!Array.isArray(d)?a[c]={...l(a[c]),...l(d)}:"string"==typeof d&&d.trim().length>0&&(a[c]=d)}function p(a,b,c){switch(function(a,b){let c=b?b===e.h.OPENAI_RESPONSE?e.h.OPENAI_RESPONSES:b:"";if(c)return c;for(let b of a){let a=l(b.data),c=m(a.type||b.event);if(c.startsWith("response.")||"response"===a.object)return e.h.OPENAI_RESPONSES;if("message_start"===c||"content_block_start"===c||"content_block_delta"===c||"message_delta"===c||"message_stop"===c||"ping"===c)return e.h.CLAUDE;if(Array.isArray(a.candidates)||a.usageMetadata)return e.h.GEMINI}return e.h.OPENAI}(a,b)){case e.h.OPENAI_RESPONSES:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=null,e=null,f=null,g=[],h=()=>g.length>0?[{type:"message",role:"assistant",content:[{type:"output_text",text:g.join("")}]}]:[];for(let a of c){let b=m(a.type);"response.completed"===b&&a.response&&"object"==typeof a.response&&(d=l(a.response)),a.response&&"object"==typeof a.response?e=l(a.response):"response"===a.object&&(e=a),"response.output_text.delta"===b&&"string"==typeof a.delta&&a.delta.length>0&&g.push(a.delta),a.usage&&"object"==typeof a.usage?f={...l(a.usage)}:a.response&&"object"==typeof l(a.response).usage&&(f={...l(l(a.response).usage)})}let i=d||e;if(i&&Object.keys(i).length>0){let a=Array.isArray(i.output)?i.output:[];return{id:m(i.id,`resp_${Date.now()}`),object:"response",model:m(i.model,b||"unknown"),output:a.length>0?a:h(),usage:i.usage??f??null,status:m(i.status,d?"completed":"in_progress"),created_at:n(i.created_at,Math.floor(Date.now()/1e3)),metadata:l(i.metadata)}}return{id:`resp_${Date.now()}`,object:"response",model:b||"unknown",output:h(),usage:f??null,status:"completed",created_at:Math.floor(Date.now()/1e3),metadata:{}}}(a,c);case e.h.CLAUDE:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=new Map,e={},f="",g=b||"claude",h="assistant",i="end_turn",j=null,p=null;for(let a of c){let b=m(a.type);if(a.context_management&&"object"==typeof a.context_management&&!Array.isArray(a.context_management)&&(p=l(a.context_management)),"message_start"===b){let b=l(a.message);f=m(b.id,f||`msg_${Date.now()}`),g=m(b.model,g),h=m(b.role,h),o(e,b.usage);continue}if("content_block_start"===b){let b=n(a.index,d.size),c=l(a.content_block),e=m(c.type);"thinking"===e?d.set(b,{type:"thinking",index:b,thinking:m(c.thinking),signature:"string"==typeof c.signature?c.signature:void 0}):"tool_use"===e?d.set(b,{type:"tool_use",index:b,id:m(c.id,`toolu_${Date.now()}_${b}`),name:m(c.name),input:(0,k._D)(c.input??{}),inputJson:""}):d.set(b,{type:"text",index:b,text:m(c.text)});continue}if("content_block_delta"===b){let b=n(a.index,0),c=l(a.delta),e=m(c.type),f=d.get(b);if("input_json_delta"===e){let a=f&&"tool_use"===f.type?f:{type:"tool_use",index:b,id:`toolu_${Date.now()}_${b}`,name:"",input:{},inputJson:""};a.inputJson+=m(c.partial_json),d.set(b,a);continue}if("thinking_delta"===e||"string"==typeof c.thinking){let a=f&&"thinking"===f.type?f:{type:"thinking",index:b,thinking:"",signature:void 0};a.thinking+=m(c.thinking),d.set(b,a);continue}let g=f&&"text"===f.type?f:{type:"text",index:b,text:""};g.text+=m(c.text),d.set(b,g);continue}if("message_delta"===b){let b=l(a.delta);i=m(b.stop_reason,i),j="string"==typeof b.stop_sequence?String(b.stop_sequence):j,o(e,a.usage);continue}o(e,a.usage)}let q=[...d.values()].sort((a,b)=>a.index-b.index).flatMap(a=>{if("text"===a.type)return a.text?[{type:"text",text:a.text}]:[];if("thinking"===a.type)return a.thinking?[{type:"thinking",thinking:a.thinking,...a.signature?{signature:a.signature}:{}}]:[];let b=a.inputJson.trim().length>0?function(a){try{return JSON.parse(a)}catch{return a}}(a.inputJson):(0,k._D)(a.input);return[{type:"tool_use",id:a.id,name:a.name,input:b}]});return{id:f||`msg_${Date.now()}`,type:"message",role:h,model:g,content:q,stop_reason:i,...j?{stop_sequence:j}:{},...Object.keys(e).length>0?{usage:e}:{},...p?{context_management:p}:{}}}(a,c);case e.h.GEMINI:case e.h.ANTIGRAVITY:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=[],e={},f=b||"gemini",g="STOP",h="model",i=a=>{let b=d[d.length-1];if(b&&"string"==typeof b.text&&"string"==typeof a.text&&!!b.thought==!!a.thought){b.text+=a.text;return}d.push(a)};for(let a of c){"string"==typeof a.modelVersion&&a.modelVersion.length>0&&(f=a.modelVersion),o(e,a.usageMetadata);let b=l(Array.isArray(a.candidates)?a.candidates[0]:null);"string"==typeof b.finishReason&&b.finishReason.length>0&&(g=b.finishReason);let c=l(b.content);if("string"==typeof c.role&&c.role.length>0&&(h=c.role),Array.isArray(c.parts))for(let a of c.parts){let b=l(a);b.functionCall&&"object"==typeof b.functionCall?d.push({functionCall:(0,k._D)(b.functionCall)}):"string"==typeof b.text&&b.text.length>0&&i({text:b.text,...!0===b.thought?{thought:!0}:{}})}}return{candidates:[{index:0,content:{role:h,parts:d},finishReason:g}],...Object.keys(e).length>0?{usageMetadata:e}:{},modelVersion:f}}(a,c);default:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=c[0],e=[],f=[],g=new Map,h=0,i="stop",j=null,k=a=>Number.isInteger(a.index)?`idx:${a.index}`:a.id?`id:${a.id}`:(h+=1,`seq:${h}`);for(let a of c){let b=l(Array.isArray(a.choices)?a.choices[0]:null),c=l(b.delta);if("string"==typeof c.content&&c.content.length>0&&e.push(c.content),Array.isArray(c.content))for(let a of c.content){let b=l(a);"string"==typeof b.text&&b.text.length>0&&e.push(b.text)}if("string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&f.push(c.reasoning_content),"string"==typeof c.reasoning&&c.reasoning.length>0&&!c.reasoning_content&&f.push(c.reasoning),Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=l(a),c=k(b),d=g.get(c),e="string"==typeof l(b.function).arguments?String(l(b.function).arguments):"";if(!d){g.set(c,{id:"string"==typeof b.id?b.id:null,index:Number.isInteger(b.index)?Number(b.index):g.size,type:m(b.type,"function"),function:{name:m(l(b.function).name,"unknown"),arguments:e}});continue}d.id=d.id||("string"==typeof b.id?b.id:null),(!Number.isInteger(d.index)||d.index<0)&&Number.isInteger(b.index)&&(d.index=Number(b.index)),"string"!=typeof l(b.function).name||d.function.name||(d.function.name=String(l(b.function).name)),d.function.arguments+=e}"string"==typeof b.finish_reason&&b.finish_reason.length>0&&(i=b.finish_reason),a.usage&&"object"==typeof a.usage&&(j={...l(a.usage)})}let o=e.length>0?e.join("").trim():null,p=f.length>0?f.join("").trim():null,q={role:"assistant",content:o||null};p&&(q.reasoning_content=p);let r=[...g.values()].sort((a,b)=>a.index-b.index);r.length>0&&(i="tool_calls",q.tool_calls=r);let s={id:m(d.id,`chatcmpl-${Date.now()}`),object:"chat.completion",created:n(d.created,Math.floor(Date.now()/1e3)),model:m(d.model,b||"unknown"),choices:[{index:0,message:q,finish_reason:i}]};return j&&Object.keys(j).length>0&&(s.usage=j),s}(a,c)}}function q(a={}){let{maxEvents:b=200,maxBytes:c=49152,stage:d}=a,e=[],f=0,g=0;return{push(a,d){if(null==a)return;let h={index:e.length+g,timestamp:new Date().toISOString(),data:(0,k._D)(a)},i=d||function(a){if(!(!a||"object"!=typeof a||Array.isArray(a))){if("string"==typeof a.event)return a.event;if("string"==typeof a.type)return a.type;if(!0===a.done)return"[DONE]"}}(a);i&&(h.event=i);let j=JSON.stringify(h).length;if(e.length>=b||f+j>c){g+=1;return}f+=j,e.push(h)},getEvents:()=>e.map(a=>(0,k._D)(a)),build(a,b={}){let{includeEvents:c=!0}=b;return{_streamed:!0,_format:"sse-json",...d?{_stage:d}:{},_eventCount:e.length+g,...g>0?{_truncated:!0,_droppedEvents:g}:{},...c?{events:e}:{},...void 0===a?{}:{summary:(0,k._D)(a)}}}}}var r=c(61408),s=c(90447),t=c(43659),u=c(31252);let v=new Map;function w(a,b,c){if(!a)return;v.has(a)||v.set(a,{totalRequests:0,ttftAfterToolSum:0,gapAfterToolSum:0,ttftCount:0,gapCount:0});let d=v.get(a);d.totalRequests++,null!=b&&b>=0&&(d.ttftAfterToolSum+=b,d.ttftCount++),null!=c&&c>=0&&(d.gapAfterToolSum+=c,d.gapCount++)}var x=c(29385);function y(a){return null==a?null:String(a)}function z(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=!1,c={...a},d=y(a.id);null!==d&&a.id!==d&&(c.id=d,b=!0);let e=y(a.call_id);return null!==e&&a.call_id!==e&&(c.call_id=e,b=!0),b?c:a}function A(a){let b=!1;for(let c of["response_id","item_id","call_id"]){let d=y(a[c]);null!==d&&a[c]!==d&&(a[c]=d,b=!0)}if(a.item&&"object"==typeof a.item&&!Array.isArray(a.item)){let c=z(a.item);c!==a.item&&(a.item=c,b=!0)}if(a.response&&"object"==typeof a.response&&!Array.isArray(a.response)){let c=a.response,d=!1,e={...c},f=y(c.id);if(null!==f&&c.id!==f&&(e.id=f,d=!0),Array.isArray(c.output)){let a=c.output.map(z);a.some((a,b)=>a!==c.output[b])&&(e.output=a,d=!0)}d&&(a.response=e,b=!0)}return b}function B(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b="string"==typeof a.type?a.type:"",c=y(a.id)??"",d=y(a.call_id)??"",e="number"==typeof a.output_index?a.output_index:"",f="string"==typeof a.name?a.name:"";return b||c||d?`${b}:${c}:${d}:${e}:${f}`:null}function C(a,b){let c=new Set;for(let b of a){let a=B(b);a&&c.add(a)}for(let d of b){let b=B(d);!(b&&c.has(b))&&(a.push(d),b&&c.add(b))}}function D(a,b){if(!b.length||!a||"object"!=typeof a||Array.isArray(a)||"response.completed"!==a.type)return!1;let c=a.response;if(!c||"object"!=typeof c||Array.isArray(c))return!1;let d=c.output;return(!Array.isArray(d)||!(d.length>0))&&(c.output=b.slice(),!0)}let E=new Set(["response.created","response.in_progress","response.completed"]);function F(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.type||!E.has(a.type))return!1;let b=a.response;if(!b||"object"!=typeof b||Array.isArray(b))return!1;let c=!1;return"instructions"in b&&(delete b.instructions,c=!0),"tools"in b&&(delete b.tools,c=!0),c}var G=c(48608);function H(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function I(a){return a?"string"==typeof a.id?a.id:"string"==typeof a.call_id?a.call_id:null:null}function J(a,b=r.r$){let c;return b<=0?a:Promise.race([a,new Promise((a,d)=>{c=setTimeout(()=>{let a=Error(`Response body read timeout after ${b}ms`);a.name="BodyTimeoutError",d(a)},b)})]).finally(()=>clearTimeout(c))}let K="__omniroutePendingRequestCleared";function L(a){return a[K]=!0,a}function M(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function N(a,b){if(!b)return a;let c=a+b;return c.length<=65536?c:c.slice(-65536)}function O(a){let b=(0,u.eN)(a);return b?.kind==="complete"?{name:b.name,args:b.args}:null}function P(a){return null!==(0,u.eN)(a)}function Q(a,b){if("string"!=typeof a)return!1;let c=a.replace(/[\u200B-\u200D\uFEFF]/g,""),d=0;for(;;){let a=c.indexOf("[Tool call:",d);if(-1===a)break;let e=c.slice(a);if((0,u.IG)(e)){let a=O(e);if(!a||b?.size&&!b.has(a.name))return!0}d=a+1}return!1}function R(a,b,c){let d=O(a);if(!d||c?.size&&!c.has(d.name))return null;let e=`textual:${b.size}`,f={id:`call_${Date.now()}_${b.size}`,index:b.size,type:"function",function:{name:d.name,arguments:JSON.stringify(d.args||{})}};return b.set(e,f),f}function S(a){return{type:"function_call",id:(null!=a.id?String(a.id):null)||`fc_${a.index}`,call_id:(null!=a.id?String(a.id):null)||`call_${a.index}`,name:a.function.name,arguments:a.function.arguments,status:"completed"}}function T(a,b){let c=M(a.response),d=Array.isArray(c.output)?c.output:[];return{...a,response:{...c,output:[...d,...b.map(a=>S(a))]}}}function U(a){if("number"==typeof a&&Number.isInteger(a)&&a>=400&&a<=599)return a;if("string"==typeof a&&/^\d{3}$/.test(a.trim())){let b=Number(a.trim());return b>=400&&b<=599?b:null}return null}function V(a){if(!a||"object"!=typeof a)return null;let b=a.type;return"string"==typeof b?b:null}function W(a){return null!==V(a)}function X(a,b){let c=V(b);if(c)switch(c){case"message_start":a.hasMessageStart=!0;break;case"content_block_start":case"content_block_delta":case"content_block_stop":a.hasContentBlock=!0;break;case"message_delta":a.hasMessageDelta=!0;break;case"message_stop":a.hasMessageStop=!0;break;case"error":a.hasError=!0}}function Y(a){return a.hasMessageStart||a.hasMessageDelta||a.hasMessageStop}function Z(a,b){let c=V(b);return!!c&&!a.hasError&&!a.hasContentBlock&&!!Y(a)&&("message_delta"===c||"message_stop"===c)}function $(a){return!a.hasError&&!a.hasContentBlock&&Y(a)}function _(a){return!a.hasError&&!!a.syntheticContentInjected&&(!a.hasMessageDelta||!a.hasMessageStop)}function aa(a){if(!a||"object"!=typeof a)return[];let b=a._openaiIntermediate;return Array.isArray(b)?b:[]}let ab="translate",ac="passthrough";function ad(a={}){let{mode:b=ab,targetFormat:c,sourceFormat:k,clientResponseFormat:l=null,copilotCompatibleReasoning:m=!1,suppressThinkClose:n=!1,provider:o=null,reqLogger:v=null,toolNameMap:z=null,model:B=null,connectionId:E=null,apiKeyInfo:J=null,body:K=null,onComplete:V=null,onFailure:Y=null}=a,ae=(b===ac?l===e.h.OPENAI_RESPONSES:k===e.h.OPENAI_RESPONSES)==!0,af=(b===ac?l===e.h.CLAUDE:k===e.h.CLAUDE)==!0,ag=!ae&&!af,ah="",ai=null,aj=!1,ak=new Map,al=0,am=function(a){let b=M(a).tools;if(!Array.isArray(b))return null;let c=new Set;for(let a of b){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b="string"==typeof a.name?a.name.trim():"",d=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,e=("string"==typeof d?.name?d.name.trim():"")||b;e&&c.add(e)}return c.size>0?c:null}(K),an=!1,ao=b===ab?{...(0,d.Ws)(k),provider:o,toolNameMap:z,signatureNamespace:E,copilotCompatibleReasoning:m,suppressThinkClose:n,accumulatedContent:""}:null,ap=0,aq="",ar="",as="",at=[],au=new Map,av=null,aw=null,ax=new Set,ay=-1,az=a=>"number"==typeof a&&!!Number.isFinite(a)&&(a<=ay||(ay=a,!1)),aA=Date.now(),aB=null,aC=null,aD=!1,aE=(0,x.f6)(K,{provider:o??void 0,connectionId:E??void 0}),aF=null;try{aF=(0,x.Xb)(aE)}catch{}let aG=!1,aH=!1,aI=q({stage:"provider_response"}),aJ=q({stage:"client_response"}),aK=M(K),aL=M(aK.stream_options??aK.streamOptions),aM=!0===aL.include_usage||!0===aL.includeUsage,aN=new TextDecoder,aO=new TextEncoder,aP=Date.now(),aQ=null,aR=!1,aS={hasMessageStart:!1,hasContentBlock:!1,hasMessageDelta:!1,hasMessageStop:!1,hasError:!1,syntheticContentInjected:!1,warningLogged:!1},aT=(0,h.wH)(),aU=(0,h.DY)(),aV=()=>{aQ&&(clearInterval(aQ),aQ=null)},aW=()=>{aT.clear()},aX=a=>{let b=Array.isArray(a.choices)?a.choices[0]:void 0,c=M(b?.delta),d=!1;if("string"==typeof c?.content){let b=c.content,f=as+b;if(as||P(b)){let g=(0,u.eN)(f);if(g?.kind==="complete"){let b=R(f,ak,am);if(b){var e;let c,d;c=M(Array.isArray((e=a).choices)?e.choices[0]:null),d={...M(c.delta)},delete d.content,delete d.reasoning_content,a={...e,choices:[{...c,index:"number"==typeof c.index?c.index:0,delta:{...d,tool_calls:[{index:b.index,id:null!=b.id?String(b.id):null,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}]},finish_reason:null}]},aj=!0}else delete c.content,delete c.reasoning_content;d=!0,as=""}else g?.kind==="partial"?(as=N(as,b),d=!0,c.content=""):(as&&(c.content=as+b,d=!0),aq=N(aq,as+b),as="")}else aq=N(aq,b)}return{parsed:a,textualToolCallConverted:d}},aY=(a,b={})=>{let c=function(a,b,c={}){let{includeContentBlock:d=!0,includeMessageDelta:e=!1,includeMessageStop:f=!1}=c,g=[];return d&&(a.hasMessageStart||g.push({type:"message_start",message:{id:`msg_synthetic_${Date.now()}`,type:"message",role:"assistant",model:"string"==typeof b&&b?b:"unknown",content:[],stop_reason:null,stop_sequence:null,usage:{input_tokens:0,output_tokens:0}}}),g.push({type:"content_block_start",index:0,content_block:{type:"text",text:""}},{type:"content_block_delta",index:0,delta:{type:"text_delta",text:""}},{type:"content_block_stop",index:0})),e&&g.push({type:"message_delta",delta:{stop_reason:"end_turn",stop_sequence:null},usage:{input_tokens:0,output_tokens:0}}),f&&g.push({type:"message_stop"}),g}(aS,B,b);if(0!==c.length)for(let d of(aS.warningLogged||(aS.warningLogged=!0,console.warn(`[STREAM] Injecting synthetic Claude SSE response for empty upstream output (${o||"provider"}:${B||"unknown"})`)),!1!==b.includeContentBlock&&(aS.syntheticContentInjected=!0,aq.trim()||(aq=""),ao?.accumulatedContent===void 0||ao.accumulatedContent.trim()||(ao.accumulatedContent="")),c)){X(aS,d),aJ.push(d);let b=(0,h.v8)(d,e.h.CLAUDE);v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b))}},aZ=!1,a$=()=>{aZ||(aZ=!0,(0,f.uw)(B,o,E,!1))},a_=(a,b=!0)=>{aV();let c="Claude returned an empty response (no content block)";console.warn(`[STREAM] Empty Claude stream at flush - emitting error (${o||"provider"}:${B||"unknown"})`);let d={type:"error",error:(0,t.buildErrorBody)(502,c).error},f=(0,h.v8)(d,e.h.CLAUDE);v?.appendConvertedChunk?.(f),aJ.push(d),a.enqueue(aO.encode(f));let g=!1;if(Y)try{g=!0===Y({status:502,message:c,code:"empty_response"})}catch{}b&&!g&&a$(),a.error(L(Error(c)))},a0=(a,b)=>{let c=b,d="string"==typeof b?.event&&b.event.startsWith("response.");if(k!==e.h.OPENAI||d||(c=(0,s.LM)(c)),!(0,h.c2)(c,k))return;let f="message_delta"===c.type||c.choices?.[0]?.finish_reason;if(ao?.finishReason&&f&&!(0,g.Gh)(c.usage)&&ap>0){let a=(0,g.OF)(K,ap,k);c.usage=(0,g.WL)(a,k),ao.usage=a}else if(ao?.finishReason&&f&&ao.usage){let a=(0,g.O9)(ao.usage);c.usage=(0,g.WL)(a,k)}if(k===e.h.CLAUDE&&Z(aS,c))return void a_(a);k===e.h.CLAUDE&&W(c)&&X(aS,c);let i=(0,h.v8)(c,k);aJ.push(c),v?.appendConvertedChunk?.(i),a.enqueue(aO.encode(i))},a1=async(a,b)=>{let c=b?await (0,i.calculateCost)(o,B,b):0,d=(0,j.y9)({provider:o,model:B,cacheHit:!1,latencyMs:Date.now()-aA,usage:b,costUsd:c});d&&(v?.appendConvertedChunk?.(d),a.enqueue(aO.encode(d)))},a2=a=>{let b=y(a.item_id);if(b)return b;let c=a.item&&"object"==typeof a.item&&!Array.isArray(a.item)?a.item:null,d=c?y(c.id):null;if(d)return d;let e=y(a.response_id)||av,f="number"==typeof a.output_index&&Number.isInteger(a.output_index)?a.output_index:null;return null!==e&&null!==f?`${e}:${f}`:null},a3=a=>Array.isArray(a.summary)?a.summary.map(a=>!a||"object"!=typeof a||Array.isArray(a)?"":"string"==typeof a.text?a.text:"").join(""):"",a4=a=>{let b=a.item&&"object"==typeof a.item&&!Array.isArray(a.item)?a.item:null;return!(!b||"reasoning"!==b.type||a3(b))&&!!("string"==typeof b.encrypted_content&&b.encrypted_content.length>0)&&(b.summary=[{type:"summary_text",text:"Codex is reasoning, but the upstream Responses API exposed this reasoning block only as encrypted state. OmniRoute cannot recover the private reasoning text."}],!0)},a5=(a,b)=>{let c=b.item&&"object"==typeof b.item&&!Array.isArray(b.item)?b.item:null;if(!c||"reasoning"!==c.type)return;a4(b);let d=a3(c);if(!d)return;let e=a2(b);if(!e||ax.has(e))return;ax.add(e);let f="string"==typeof c.id&&c.id?c.id:e,g="number"==typeof b.output_index&&Number.isInteger(b.output_index)?b.output_index:0;for(let b of[{event:"response.reasoning_summary_text.delta",body:{type:"response.reasoning_summary_text.delta",item_id:f,output_index:g,summary_index:0,delta:d}},{event:"response.reasoning_summary_part.done",body:{type:"response.reasoning_summary_part.done",item_id:f,output_index:g,summary_index:0,part:{type:"summary_text",text:d}}}]){aJ.push(b.body);let c=`event: ${b.event}
|
|
416
|
+
`))}let d=c?.stopReason||"";d&&"cancelled"!==d&&z()}if(b.error)return void z(`Devin ACP error ${b.error.code}: ${b.error.message}`)}}}}),h.stderr.on("data",a=>{i?.debug?.("DEVIN",`stderr: ${a.toString("utf8").slice(0,200)}`)}),h.on("close",a=>{x||(0===a||j?z():z(v?void 0:`Devin CLI exited with code ${a}`))}),y("initialize",{protocolVersion:"0.3",clientInfo:{name:"omniroute",version:"1.0"},capabilities:{}})}}),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:"devin://acp/stdio",headers:{},transformedBody:{model:a,promptLength:b?.messages}}}}},95374:(a,b,c)=>{c.d(b,{lm:()=>g.lm,S0:()=>K,l2:()=>af,i5:()=>ae,v8:()=>h.v8,sh:()=>J});var d=c(71961),e=c(14170),f=c(47370),g=c(73483),h=c(9024),i=c(90528),j=c(69734),k=c(37208);function l(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function m(a,b=""){return"string"==typeof a?a:b}function n(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}function o(a,b){for(let[c,d]of Object.entries(l(b)))"number"==typeof d&&Number.isFinite(d)?(void 0===a[c]||d>0)&&(a[c]=d):d&&"object"==typeof d&&!Array.isArray(d)?a[c]={...l(a[c]),...l(d)}:"string"==typeof d&&d.trim().length>0&&(a[c]=d)}function p(a,b,c){switch(function(a,b){let c=b?b===e.h.OPENAI_RESPONSE?e.h.OPENAI_RESPONSES:b:"";if(c)return c;for(let b of a){let a=l(b.data),c=m(a.type||b.event);if(c.startsWith("response.")||"response"===a.object)return e.h.OPENAI_RESPONSES;if("message_start"===c||"content_block_start"===c||"content_block_delta"===c||"message_delta"===c||"message_stop"===c||"ping"===c)return e.h.CLAUDE;if(Array.isArray(a.candidates)||a.usageMetadata)return e.h.GEMINI}return e.h.OPENAI}(a,b)){case e.h.OPENAI_RESPONSES:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=null,e=null,f=null,g=[],h=()=>g.length>0?[{type:"message",role:"assistant",content:[{type:"output_text",text:g.join("")}]}]:[];for(let a of c){let b=m(a.type);"response.completed"===b&&a.response&&"object"==typeof a.response&&(d=l(a.response)),a.response&&"object"==typeof a.response?e=l(a.response):"response"===a.object&&(e=a),"response.output_text.delta"===b&&"string"==typeof a.delta&&a.delta.length>0&&g.push(a.delta),a.usage&&"object"==typeof a.usage?f={...l(a.usage)}:a.response&&"object"==typeof l(a.response).usage&&(f={...l(l(a.response).usage)})}let i=d||e;if(i&&Object.keys(i).length>0){let a=Array.isArray(i.output)?i.output:[];return{id:m(i.id,`resp_${Date.now()}`),object:"response",model:m(i.model,b||"unknown"),output:a.length>0?a:h(),usage:i.usage??f??null,status:m(i.status,d?"completed":"in_progress"),created_at:n(i.created_at,Math.floor(Date.now()/1e3)),metadata:l(i.metadata)}}return{id:`resp_${Date.now()}`,object:"response",model:b||"unknown",output:h(),usage:f??null,status:"completed",created_at:Math.floor(Date.now()/1e3),metadata:{}}}(a,c);case e.h.CLAUDE:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=new Map,e={},f="",g=b||"claude",h="assistant",i="end_turn",j=null,p=null;for(let a of c){let b=m(a.type);if(a.context_management&&"object"==typeof a.context_management&&!Array.isArray(a.context_management)&&(p=l(a.context_management)),"message_start"===b){let b=l(a.message);f=m(b.id,f||`msg_${Date.now()}`),g=m(b.model,g),h=m(b.role,h),o(e,b.usage);continue}if("content_block_start"===b){let b=n(a.index,d.size),c=l(a.content_block),e=m(c.type);"thinking"===e?d.set(b,{type:"thinking",index:b,thinking:m(c.thinking),signature:"string"==typeof c.signature?c.signature:void 0}):"tool_use"===e?d.set(b,{type:"tool_use",index:b,id:m(c.id,`toolu_${Date.now()}_${b}`),name:m(c.name),input:(0,k._D)(c.input??{}),inputJson:""}):d.set(b,{type:"text",index:b,text:m(c.text)});continue}if("content_block_delta"===b){let b=n(a.index,0),c=l(a.delta),e=m(c.type),f=d.get(b);if("input_json_delta"===e){let a=f&&"tool_use"===f.type?f:{type:"tool_use",index:b,id:`toolu_${Date.now()}_${b}`,name:"",input:{},inputJson:""};a.inputJson+=m(c.partial_json),d.set(b,a);continue}if("thinking_delta"===e||"string"==typeof c.thinking){let a=f&&"thinking"===f.type?f:{type:"thinking",index:b,thinking:"",signature:void 0};a.thinking+=m(c.thinking),d.set(b,a);continue}let g=f&&"text"===f.type?f:{type:"text",index:b,text:""};g.text+=m(c.text),d.set(b,g);continue}if("message_delta"===b){let b=l(a.delta);i=m(b.stop_reason,i),j="string"==typeof b.stop_sequence?String(b.stop_sequence):j,o(e,a.usage);continue}o(e,a.usage)}let q=[...d.values()].sort((a,b)=>a.index-b.index).flatMap(a=>{if("text"===a.type)return a.text?[{type:"text",text:a.text}]:[];if("thinking"===a.type)return a.thinking?[{type:"thinking",thinking:a.thinking,...a.signature?{signature:a.signature}:{}}]:[];let b=a.inputJson.trim().length>0?function(a){try{return JSON.parse(a)}catch{return a}}(a.inputJson):(0,k._D)(a.input);return[{type:"tool_use",id:a.id,name:a.name,input:b}]});return{id:f||`msg_${Date.now()}`,type:"message",role:h,model:g,content:q,stop_reason:i,...j?{stop_sequence:j}:{},...Object.keys(e).length>0?{usage:e}:{},...p?{context_management:p}:{}}}(a,c);case e.h.GEMINI:case e.h.ANTIGRAVITY:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=[],e={},f=b||"gemini",g="STOP",h="model",i=a=>{let b=d[d.length-1];if(b&&"string"==typeof b.text&&"string"==typeof a.text&&!!b.thought==!!a.thought){b.text+=a.text;return}d.push(a)};for(let a of c){"string"==typeof a.modelVersion&&a.modelVersion.length>0&&(f=a.modelVersion),o(e,a.usageMetadata);let b=l(Array.isArray(a.candidates)?a.candidates[0]:null);"string"==typeof b.finishReason&&b.finishReason.length>0&&(g=b.finishReason);let c=l(b.content);if("string"==typeof c.role&&c.role.length>0&&(h=c.role),Array.isArray(c.parts))for(let a of c.parts){let b=l(a);b.functionCall&&"object"==typeof b.functionCall?d.push({functionCall:(0,k._D)(b.functionCall)}):"string"==typeof b.text&&b.text.length>0&&i({text:b.text,...!0===b.thought?{thought:!0}:{}})}}return{candidates:[{index:0,content:{role:h,parts:d},finishReason:g}],...Object.keys(e).length>0?{usageMetadata:e}:{},modelVersion:f}}(a,c);default:return function(a,b){let c=a.map(a=>l(a.data)).filter(a=>Object.keys(a).length);if(0===c.length)return null;let d=c[0],e=[],f=[],g=new Map,h=0,i="stop",j=null,k=a=>Number.isInteger(a.index)?`idx:${a.index}`:a.id?`id:${a.id}`:(h+=1,`seq:${h}`);for(let a of c){let b=l(Array.isArray(a.choices)?a.choices[0]:null),c=l(b.delta);if("string"==typeof c.content&&c.content.length>0&&e.push(c.content),Array.isArray(c.content))for(let a of c.content){let b=l(a);"string"==typeof b.text&&b.text.length>0&&e.push(b.text)}if("string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&f.push(c.reasoning_content),"string"==typeof c.reasoning&&c.reasoning.length>0&&!c.reasoning_content&&f.push(c.reasoning),Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=l(a),c=k(b),d=g.get(c),e="string"==typeof l(b.function).arguments?String(l(b.function).arguments):"";if(!d){g.set(c,{id:"string"==typeof b.id?b.id:null,index:Number.isInteger(b.index)?Number(b.index):g.size,type:m(b.type,"function"),function:{name:m(l(b.function).name,"unknown"),arguments:e}});continue}d.id=d.id||("string"==typeof b.id?b.id:null),(!Number.isInteger(d.index)||d.index<0)&&Number.isInteger(b.index)&&(d.index=Number(b.index)),"string"!=typeof l(b.function).name||d.function.name||(d.function.name=String(l(b.function).name)),d.function.arguments+=e}"string"==typeof b.finish_reason&&b.finish_reason.length>0&&(i=b.finish_reason),a.usage&&"object"==typeof a.usage&&(j={...l(a.usage)})}let o=e.length>0?e.join("").trim():null,p=f.length>0?f.join("").trim():null,q={role:"assistant",content:o||null};p&&(q.reasoning_content=p);let r=[...g.values()].sort((a,b)=>a.index-b.index);r.length>0&&(i="tool_calls",q.tool_calls=r);let s={id:m(d.id,`chatcmpl-${Date.now()}`),object:"chat.completion",created:n(d.created,Math.floor(Date.now()/1e3)),model:m(d.model,b||"unknown"),choices:[{index:0,message:q,finish_reason:i}]};return j&&Object.keys(j).length>0&&(s.usage=j),s}(a,c)}}function q(a={}){let{maxEvents:b=200,maxBytes:c=49152,stage:d}=a,e=[],f=0,g=0;return{push(a,d){if(null==a)return;let h={index:e.length+g,timestamp:new Date().toISOString(),data:(0,k._D)(a)},i=d||function(a){if(!(!a||"object"!=typeof a||Array.isArray(a))){if("string"==typeof a.event)return a.event;if("string"==typeof a.type)return a.type;if(!0===a.done)return"[DONE]"}}(a);i&&(h.event=i);let j=JSON.stringify(h).length;if(e.length>=b||f+j>c){g+=1;return}f+=j,e.push(h)},getEvents:()=>e.map(a=>(0,k._D)(a)),build(a,b={}){let{includeEvents:c=!0}=b;return{_streamed:!0,_format:"sse-json",...d?{_stage:d}:{},_eventCount:e.length+g,...g>0?{_truncated:!0,_droppedEvents:g}:{},...c?{events:e}:{},...void 0===a?{}:{summary:(0,k._D)(a)}}}}}var r=c(61408),s=c(90447),t=c(43659),u=c(31252);let v=new Map;function w(a,b,c){if(!a)return;v.has(a)||v.set(a,{totalRequests:0,ttftAfterToolSum:0,gapAfterToolSum:0,ttftCount:0,gapCount:0});let d=v.get(a);d.totalRequests++,null!=b&&b>=0&&(d.ttftAfterToolSum+=b,d.ttftCount++),null!=c&&c>=0&&(d.gapAfterToolSum+=c,d.gapCount++)}var x=c(29385);function y(a){return null==a?null:String(a)}function z(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=!1,c={...a},d=y(a.id);null!==d&&a.id!==d&&(c.id=d,b=!0);let e=y(a.call_id);return null!==e&&a.call_id!==e&&(c.call_id=e,b=!0),b?c:a}function A(a){let b=!1;for(let c of["response_id","item_id","call_id"]){let d=y(a[c]);null!==d&&a[c]!==d&&(a[c]=d,b=!0)}if(a.item&&"object"==typeof a.item&&!Array.isArray(a.item)){let c=z(a.item);c!==a.item&&(a.item=c,b=!0)}if(a.response&&"object"==typeof a.response&&!Array.isArray(a.response)){let c=a.response,d=!1,e={...c},f=y(c.id);if(null!==f&&c.id!==f&&(e.id=f,d=!0),Array.isArray(c.output)){let a=c.output.map(z);a.some((a,b)=>a!==c.output[b])&&(e.output=a,d=!0)}d&&(a.response=e,b=!0)}return b}function B(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b="string"==typeof a.type?a.type:"",c=y(a.id)??"",d=y(a.call_id)??"",e="number"==typeof a.output_index?a.output_index:"",f="string"==typeof a.name?a.name:"";return b||c||d?`${b}:${c}:${d}:${e}:${f}`:null}function C(a,b){let c=new Set;for(let b of a){let a=B(b);a&&c.add(a)}for(let d of b){let b=B(d);!(b&&c.has(b))&&(a.push(d),b&&c.add(b))}}function D(a,b){if(!b.length||!a||"object"!=typeof a||Array.isArray(a)||"response.completed"!==a.type)return!1;let c=a.response;if(!c||"object"!=typeof c||Array.isArray(c))return!1;let d=c.output;return(!Array.isArray(d)||!(d.length>0))&&(c.output=b.slice(),!0)}let E=new Set(["response.created","response.in_progress","response.completed"]);function F(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.type||!E.has(a.type))return!1;let b=a.response;if(!b||"object"!=typeof b||Array.isArray(b))return!1;let c=!1;return"instructions"in b&&(delete b.instructions,c=!0),"tools"in b&&(delete b.tools,c=!0),c}var G=c(48608);function H(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function I(a){return a?"string"==typeof a.id?a.id:"string"==typeof a.call_id?a.call_id:null:null}function J(a,b=r.r$){let c;return b<=0?a:Promise.race([a,new Promise((a,d)=>{c=setTimeout(()=>{let a=Error(`Response body read timeout after ${b}ms`);a.name="BodyTimeoutError",d(a)},b)})]).finally(()=>clearTimeout(c))}let K="__omniroutePendingRequestCleared";function L(a){return a[K]=!0,a}function M(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function N(a,b){if(!b)return a;let c=a+b;return c.length<=65536?c:c.slice(-65536)}function O(a){let b=(0,u.eN)(a);return b?.kind==="complete"?{name:b.name,args:b.args}:null}function P(a){return null!==(0,u.eN)(a)}function Q(a,b){if("string"!=typeof a)return!1;let c=a.replace(/[\u200B-\u200D\uFEFF]/g,""),d=0;for(;;){let a=c.indexOf("[Tool call:",d);if(-1===a)break;let e=c.slice(a);if((0,u.IG)(e)){let a=O(e);if(!a||b?.size&&!b.has(a.name))return!0}d=a+1}return!1}function R(a,b,c){let d=O(a);if(!d||c?.size&&!c.has(d.name))return null;let e=`textual:${b.size}`,f={id:`call_${Date.now()}_${b.size}`,index:b.size,type:"function",function:{name:d.name,arguments:JSON.stringify(d.args||{})}};return b.set(e,f),f}function S(a){return{type:"function_call",id:(null!=a.id?String(a.id):null)||`fc_${a.index}`,call_id:(null!=a.id?String(a.id):null)||`call_${a.index}`,name:a.function.name,arguments:a.function.arguments,status:"completed"}}function T(a,b){let c=M(a.response),d=Array.isArray(c.output)?c.output:[];return{...a,response:{...c,output:[...d,...b.map(a=>S(a))]}}}function U(a){if("number"==typeof a&&Number.isInteger(a)&&a>=400&&a<=599)return a;if("string"==typeof a&&/^\d{3}$/.test(a.trim())){let b=Number(a.trim());return b>=400&&b<=599?b:null}return null}function V(a){if(!a||"object"!=typeof a)return null;let b=a.type;return"string"==typeof b?b:null}function W(a){return null!==V(a)}function X(a,b){let c=V(b);if(c)switch(c){case"message_start":a.hasMessageStart=!0;break;case"content_block_start":case"content_block_delta":case"content_block_stop":a.hasContentBlock=!0;break;case"message_delta":a.hasMessageDelta=!0;break;case"message_stop":a.hasMessageStop=!0;break;case"error":a.hasError=!0}}function Y(a){return a.hasMessageStart||a.hasMessageDelta||a.hasMessageStop}function Z(a,b){let c=V(b);return!!c&&!a.hasError&&!a.hasContentBlock&&!!Y(a)&&("message_delta"===c||"message_stop"===c)}function $(a){return!a.hasError&&!a.hasContentBlock&&Y(a)}function _(a){return!a.hasError&&!!a.syntheticContentInjected&&(!a.hasMessageDelta||!a.hasMessageStop)}function aa(a){if(!a||"object"!=typeof a)return[];let b=a._openaiIntermediate;return Array.isArray(b)?b:[]}let ab="translate",ac="passthrough";function ad(a={}){let{mode:b=ab,targetFormat:c,sourceFormat:k,clientResponseFormat:l=null,copilotCompatibleReasoning:m=!1,suppressThinkClose:n=!1,provider:o=null,reqLogger:v=null,toolNameMap:z=null,model:B=null,connectionId:E=null,apiKeyInfo:J=null,body:K=null,onComplete:V=null,onFailure:Y=null}=a,ae=(b===ac?l===e.h.OPENAI_RESPONSES:k===e.h.OPENAI_RESPONSES)==!0,af=(b===ac?l===e.h.CLAUDE:k===e.h.CLAUDE)==!0,ag=!ae&&!af,ah="",ai=null,aj=!1,ak=new Map,al=0,am=function(a){let b=M(a).tools;if(!Array.isArray(b))return null;let c=new Set;for(let a of b){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b="string"==typeof a.name?a.name.trim():"",d=a.function&&"object"==typeof a.function&&!Array.isArray(a.function)?a.function:null,e=("string"==typeof d?.name?d.name.trim():"")||b;e&&c.add(e)}return c.size>0?c:null}(K),an=!1,ao=b===ab?{...(0,d.Ws)(k),provider:o,toolNameMap:z,signatureNamespace:E,copilotCompatibleReasoning:m,suppressThinkClose:n,accumulatedContent:""}:null,ap=0,aq="",ar="",as="",at=[],au=new Map,av=null,aw=null,ax=new Set,ay=-1,az=a=>"number"==typeof a&&!!Number.isFinite(a)&&(a<=ay||(ay=a,!1)),aA=Date.now(),aB=null,aC=null,aD=!1,aE=(0,x.f6)(K,{provider:o??void 0,connectionId:E??void 0}),aF=null;try{aF=(0,x.Xb)(aE)}catch{}let aG=!1,aH=!1,aI=q({stage:"provider_response"}),aJ=q({stage:"client_response"}),aK=M(K),aL=M(aK.stream_options??aK.streamOptions),aM=!0===aL.include_usage||!0===aL.includeUsage,aN=new TextDecoder,aO=new TextEncoder,aP=Date.now(),aQ=null,aR=!1,aS={hasMessageStart:!1,hasContentBlock:!1,hasMessageDelta:!1,hasMessageStop:!1,hasError:!1,syntheticContentInjected:!1,warningLogged:!1},aT=(0,h.wH)(),aU=(0,h.DY)(),aV=()=>{aQ&&(clearInterval(aQ),aQ=null)},aW=()=>{aT.clear()},aX=a=>{let b=Array.isArray(a.choices)?a.choices[0]:void 0,c=M(b?.delta),d=!1;if("string"==typeof c?.content){let b=c.content,f=as+b;if(as||P(b)){let g=(0,u.eN)(f);if(g?.kind==="complete"){let b=R(f,ak,am);if(b){var e;let c,d;c=M(Array.isArray((e=a).choices)?e.choices[0]:null),d={...M(c.delta)},delete d.content,delete d.reasoning_content,a={...e,choices:[{...c,index:"number"==typeof c.index?c.index:0,delta:{...d,tool_calls:[{index:b.index,id:null!=b.id?String(b.id):null,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}]},finish_reason:null}]},aj=!0}else delete c.content,delete c.reasoning_content;d=!0,as=""}else g?.kind==="partial"?(as=N(as,b),d=!0,c.content=""):(as&&(c.content=as+b,d=!0),aq=N(aq,as+b),as="")}else aq=N(aq,b)}return{parsed:a,textualToolCallConverted:d}},aY=(a,b={})=>{let c=function(a,b,c={}){let{includeContentBlock:d=!0,includeMessageDelta:e=!1,includeMessageStop:f=!1}=c,g=[];return d&&(a.hasMessageStart||g.push({type:"message_start",message:{id:`msg_synthetic_${Date.now()}`,type:"message",role:"assistant",model:"string"==typeof b&&b?b:"unknown",content:[],stop_reason:null,stop_sequence:null,usage:{input_tokens:0,output_tokens:0}}}),g.push({type:"content_block_start",index:0,content_block:{type:"text",text:""}},{type:"content_block_delta",index:0,delta:{type:"text_delta",text:""}},{type:"content_block_stop",index:0})),e&&g.push({type:"message_delta",delta:{stop_reason:"end_turn",stop_sequence:null},usage:{input_tokens:0,output_tokens:0}}),f&&g.push({type:"message_stop"}),g}(aS,B,b);if(0!==c.length)for(let d of(aS.warningLogged||(aS.warningLogged=!0,console.warn(`[STREAM] Injecting synthetic Claude SSE response for empty upstream output (${o||"provider"}:${B||"unknown"})`)),!1!==b.includeContentBlock&&(aS.syntheticContentInjected=!0,aq.trim()||(aq=""),ao?.accumulatedContent===void 0||ao.accumulatedContent.trim()||(ao.accumulatedContent="")),c)){X(aS,d),aJ.push(d);let b=(0,h.v8)(d,e.h.CLAUDE);v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b))}},aZ=!1,a$=()=>{aZ||(aZ=!0,(0,f.uw)(B,o,E,!1))},a_=(a,b=!0)=>{aV();let c="Claude returned an empty response (no content block)";console.warn(`[STREAM] Empty Claude stream at flush - emitting error (${o||"provider"}:${B||"unknown"})`);let d={type:"error",error:(0,t.buildErrorBody)(502,c).error},f=(0,h.v8)(d,e.h.CLAUDE);v?.appendConvertedChunk?.(f),aJ.push(d),a.enqueue(aO.encode(f));let g=!1;if(Y)try{g=!0===Y({status:502,message:c,code:"empty_response"})}catch{}b&&!g&&a$(),a.error(L(Error(c)))},a0=(a,b)=>{let c=b,d="string"==typeof b?.event&&b.event.startsWith("response.");if(k!==e.h.OPENAI||d||(c=(0,s.LM)(c)),!(0,h.c2)(c,k))return;let f="message_delta"===c.type||c.choices?.[0]?.finish_reason;if(ao?.finishReason&&f&&!(0,g.Gh)(c.usage)&&ap>0){let a=(0,g.OF)(K,ap,k);c.usage=(0,g.WL)(a,k),ao.usage=a}else if(ao?.finishReason&&f&&ao.usage){let a=(0,g.O9)(ao.usage);c.usage=(0,g.WL)(a,k)}if(k===e.h.CLAUDE&&Z(aS,c))return void a_(a);k===e.h.CLAUDE&&W(c)&&X(aS,c);let i=(0,h.v8)(c,k);aJ.push(c),v?.appendConvertedChunk?.(i),a.enqueue(aO.encode(i))},a1=async(a,b)=>{let c=b?await (0,i.calculateCost)(o,B,b):0,d=(0,j.y9)({provider:o,model:B,cacheHit:!1,latencyMs:Date.now()-aA,usage:b,costUsd:c});d&&(v?.appendConvertedChunk?.(d),a.enqueue(aO.encode(d)))},a2=a=>{let b=y(a.item_id);if(b)return b;let c=a.item&&"object"==typeof a.item&&!Array.isArray(a.item)?a.item:null,d=c?y(c.id):null;if(d)return d;let e=y(a.response_id)||av,f="number"==typeof a.output_index&&Number.isInteger(a.output_index)?a.output_index:null;return null!==e&&null!==f?`${e}:${f}`:null},a3=a=>Array.isArray(a.summary)?a.summary.map(a=>!a||"object"!=typeof a||Array.isArray(a)?"":"string"==typeof a.text?a.text:"").join(""):"",a4=a=>{let b=a.item&&"object"==typeof a.item&&!Array.isArray(a.item)?a.item:null;return!(!b||"reasoning"!==b.type||a3(b))&&!!("string"==typeof b.encrypted_content&&b.encrypted_content.length>0)&&(b.summary=[{type:"summary_text",text:"Codex is reasoning, but the upstream Responses API exposed this reasoning block only as encrypted state. OmniRoute cannot recover the private reasoning text."}],!0)},a5=(a,b)=>{let c=b.item&&"object"==typeof b.item&&!Array.isArray(b.item)?b.item:null;if(!c||"reasoning"!==c.type)return;a4(b);let d=a3(c);if(!d)return;let e=a2(b);if(!e||ax.has(e))return;ax.add(e);let f="string"==typeof c.id&&c.id?c.id:e,g="number"==typeof b.output_index&&Number.isInteger(b.output_index)?b.output_index:0;for(let b of[{event:"response.reasoning_summary_text.delta",body:{type:"response.reasoning_summary_text.delta",item_id:f,output_index:g,summary_index:0,delta:d}},{event:"response.reasoning_summary_part.done",body:{type:"response.reasoning_summary_part.done",item_id:f,output_index:g,summary_index:0,part:{type:"summary_text",text:d}}}]){aJ.push(b.body);let c=`event: ${b.event}
|
|
417
417
|
data: ${JSON.stringify(b.body)}
|
|
418
418
|
|
|
419
419
|
`;v?.appendConvertedChunk?.(c),a.enqueue(aO.encode(c))}};return new TransformStream({start(a){r.TH>0&&(aQ=setInterval(()=>{if(!aR&&Date.now()-aP>r.TH){aR=!0,aV();let b=`[STREAM] Idle timeout: no data from ${o||"provider"} for ${r.TH}ms (model: ${B||"unknown"})`;console.warn(b);let c=!1;if(Y)try{c=!0===Y({status:r.gx.GATEWAY_TIMEOUT,message:b,code:"stream_idle_timeout",type:"timeout_error"})}catch{}c||a$(),(0,f.E5)({model:B,provider:o,connectionId:E,status:`FAILED ${r.gx.GATEWAY_TIMEOUT}`}).catch(()=>{});let d=Error(b);d.name="StreamIdleTimeoutError",a.error(L(d))}},1e4))},transform(a,f){if(aR)return;aP=Date.now();let i=aN.decode(a,{stream:!0});ah+=i,v?.appendProviderChunk?.(i);let j=ah.split("\n");for(let a of(ah=j.pop()||"",aU.normalize(j))){let i=a.trim();if(b===ac){let b,c=!1,d=null,j=null;if(an){i||(an=!1,aW());continue}if(/^event:\s*keepalive\b/i.test(i)){an=!0,aW();continue}if(/^event:/i.test(i)){if(Z(aS,{type:i.replace(/^event:\s*/i,"")}))return void a_(f);aT.remember(a);continue}if(/^(?::|id:|retry:)/i.test(i)){aT.remember(a);continue}if(!i){let a=aT.flush();a&&(v?.appendConvertedChunk?.(a),f.enqueue(aO.encode(a))),aW();continue}if(!i.startsWith("data:")){aT.remember(a);continue}let k=i.startsWith("data:")?(0,h.d2)(i.slice(5),{eventType:aT.eventType()}):null;if(k&&"string"==typeof k.type&&k.type.startsWith("response.")&&az(k.sequence_number)){aW();continue}if(i.startsWith("data:")){let a=k??(0,h.tV)(i);if(a&&(aI.push(a),!0===a.done))continue}if(i.startsWith("data:")&&"[DONE]"===i.slice(5).trim())continue;if(i.startsWith("data:")&&"[DONE]"!==i.slice(5).trim())try{let a=k??JSON.parse(i.slice(5).trim()),l=a=>"string"==typeof a?a.length>0:Array.isArray(a)?a.some(a=>l(a)):a&&"object"==typeof a?Object.values(a).some(a=>l(a)):null!=a;if(ae&&a?.object==="chat.completion.chunk"&&Array.isArray(a?.choices)&&a.choices.length>0&&a.choices.every(a=>{let b=a&&"object"==typeof a?a:{},c=b.delta&&"object"==typeof b.delta?b.delta:null;if(!c||"assistant"!==c.role||l(c.content)||null!==b.finish_reason&&void 0!==b.finish_reason)return!1;let{role:d,content:e,...f}=c;return!l(f)}))continue;let m=a.type&&"string"==typeof a.type&&a.type.startsWith("response."),n=a.type&&"string"==typeof a.type&&(a.type.startsWith("message")||a.type.startsWith("content_block")||"ping"===a.type||"error"===a.type);if(m){let d=A(a),e=a.response&&"object"==typeof a.response&&!Array.isArray(a.response)?a.response:null,h=(e?y(e.id):null)||y(a.response_id);h&&(av=h);let i=(0,g.f5)(a);if(i&&(ai=i),"string"==typeof a.delta&&(ap+=a.delta.length),"response.output_text.delta"===a.type&&"string"==typeof a.delta){let d=a.delta,e=as+d;if(as||P(d)){let g=(0,u.eN)(e);if(g?.kind==="complete"){let d=R(e,ak,am);if(d){aj=!0;let a=function(a){let b=S(a);return[{type:"response.output_item.added",output_index:a.index,item:b},{type:"response.function_call_arguments.done",item_id:b.id,output_index:a.index,arguments:a.function.arguments},{type:"response.output_item.done",output_index:a.index,item:b}]}(d);b=a.map(a=>`data: ${JSON.stringify(a)}
|
|
@@ -465,14 +465,14 @@ data: ${JSON.stringify(b.body)}
|
|
|
465
465
|
|
|
466
466
|
`}else{let a={id:av||`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:B||"unknown",choices:[{index:0,delta:{content:as},finish_reason:null}]};b=`data: ${JSON.stringify(a)}
|
|
467
467
|
|
|
468
|
-
`}v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b)),aq=N(aq,as),as=""}!(0,g.Gh)(ai)&&ap>0&&(ai=(0,g.OF)(K,ap,k||e.h.OPENAI)),(0,g.Gh)(ai)?(0,g.IF)(o,ai,B,E,J):(0,f.E5)({model:B,provider:o,connectionId:E,tokens:null,status:"200 OK"}).catch(()=>{});let d="antigravity"===o||"gemini"===o||"vertex"===o;if(aG||d||aH||console.warn(`[SSE] PREMATURE EOF | provider=${o} | model=${B} | maxTokens=${K?.max_tokens??K?.max_completion_tokens??"unset"} | contentBytes=${aq.length} | reasoningBytes=${ar.length} | totalBytes=${ap} | upstream did not send finish_reason — NOT synthesizing stop`),!aH&&(await a1(a,ai),aH=!0,ag)){aJ.push({done:!0});let b="data: [DONE]\n\n";v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b))}if(V)try{let a=ai,b=Number(a?.prompt_tokens??a?.input_tokens??0),c=Number(a?.completion_tokens??a?.output_tokens??0),d=aq.trim()||"",e=as.trim();e&&(R(e,ak,am)&&(aj=!0),as=""),d&&R(d,ak,am)?(aj=!0,d=""):Q(d,am)&&(d="");let f={role:"assistant",content:d||null},g=ar.trim();g&&(f.reasoning_content=g),ak.size>0&&(f.tool_calls=[...ak.values()].sort((a,b)=>a.index-b.index)),!aj||d.trim()||g.trim()||console.warn(`[STREAM] Empty assistant response after tool_calls completion (${o||"provider"}:${B||"unknown"}) — sessionId=${aE}`);let h={choices:[{message:f,finish_reason:aj?"tool_calls":"stop"}],usage:{prompt_tokens:b,completion_tokens:c,total_tokens:b+c},_streamed:!0};V({status:200,usage:ai,responseBody:h,providerPayload:aI.build(p(aI.getEvents(),k,B),{includeEvents:!1}),clientPayload:aJ.build(h,{includeEvents:!1})})}catch{}else a$();return}if(ah.trim()){let b=(0,h.tV)(ah.trim());if(b&&!b.done){aI.push(b);let f=(0,g.f5)(b);if(f)if(ao.usage){let a=ao.usage;f.prompt_tokens>0&&(a.prompt_tokens=f.prompt_tokens),f.completion_tokens>0&&(a.completion_tokens=f.completion_tokens),f.total_tokens>0&&(a.total_tokens=f.total_tokens),f.input_tokens>0&&(a.input_tokens=f.input_tokens),f.output_tokens>0&&(a.output_tokens=f.output_tokens),f.cache_read_input_tokens>0&&(a.cache_read_input_tokens=f.cache_read_input_tokens),f.cache_creation_input_tokens>0&&(a.cache_creation_input_tokens=f.cache_creation_input_tokens),f.cached_tokens>0&&(a.cached_tokens=f.cached_tokens),f.reasoning_tokens>0&&(a.reasoning_tokens=f.reasoning_tokens)}else ao.usage=f;let i=(0,d.Y8)(c,k,b,ao);for(let a of aa(i)){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i)a0(a,b)}}if(ao?.upstreamError){let b=ao.upstreamError,d=!1;if(Y)try{d=!0===Y({status:b.status,message:b.message,code:b.code,type:b.type})}catch{}let e=(0,t.buildErrorBody)(b.status,b.message);if(V)try{V({status:b.status,usage:ao?.usage,responseBody:e,error:b.message,errorCode:b.code,providerPayload:aI.build(p(aI.getEvents(),c,B),{includeEvents:!1}),clientPayload:aJ.build(e,{includeEvents:!1})}),d=!0}catch{}aV(),d||a$(),a.error(L(Error(b.message||"Upstream failure")));return}let l=(0,d.Y8)(c,k,null,ao);for(let a of aa(l)){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(l?.length>0)for(let b of l)a0(a,b);if(k===e.h.CLAUDE)if($(aS))return void a_(a);else _(aS)&&aY(a,{includeContentBlock:!1,includeMessageDelta:!aS.hasMessageDelta,includeMessageStop:!aS.hasMessageStop});if(!aH&&(await a1(a,ao?.usage),aH=!0,ag)){aJ.push({done:!0});let b="data: [DONE]\n\n";v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b))}if(!(0,g.Gh)(ao?.usage)&&ap>0&&(ao.usage=(0,g.OF)(K,ap,k)),(0,g.Gh)(ao?.usage)?(0,g.IF)(ao.provider||c,ao.usage,B,E,J):(0,f.E5)({model:B,provider:o,connectionId:E,tokens:null,status:"200 OK"}).catch(()=>{}),V)try{let a=ao?.usage,b=Number(a?.prompt_tokens??a?.input_tokens??0),d=Number(a?.completion_tokens??a?.output_tokens??0),e=(ao?.accumulatedContent??"").trim()||"",f=ao?.toolCalls?.size?[...ao.toolCalls.values()].map(a=>({id:null!=a.id?String(a.id):null,index:a.index??a.blockIndex??0,type:a.type??"function",function:a.function??{name:a.name??"",arguments:""}})).sort((a,b)=>a.index-b.index):[],g=O(e);g?(f.push({id:`call_${Date.now()}_${f.length}`,index:f.length,type:"function",function:{name:g.name,arguments:JSON.stringify(g.args||{})}}),e=""):Q(e,am)&&(e="");let h={role:"assistant",content:e||null},i=f.length>0;i&&(h.tool_calls=f);let j={choices:[{message:h,finish_reason:i?"tool_calls":"stop"}],usage:{prompt_tokens:b,completion_tokens:d,total_tokens:b+d},_streamed:!0};V({status:200,usage:ao?.usage,responseBody:j,providerPayload:aI.build(p(aI.getEvents(),c,B),{includeEvents:!1}),clientPayload:aJ.build(j,{includeEvents:!1})})}catch{}else a$()}catch(a){console.log(`[STREAM] Error in flush (${B||"unknown"}):`,a.message||a)}},cancel(a){aV()}},{highWaterMark:16384},{highWaterMark:16384})}function ae(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null,l=!1,m=!1){return ad({mode:ab,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,apiKeyInfo:j,body:h,onComplete:i,onFailure:k,copilotCompatibleReasoning:l,suppressThinkClose:m})}function af(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null){return ad({mode:ac,provider:a,reqLogger:b,toolNameMap:c,model:d,connectionId:e,apiKeyInfo:h,body:f,onComplete:g,onFailure:i,clientResponseFormat:j})}},96369:a=>{"use strict";let b,c,d=a=>46743===a?{Buffer}:{};d(42551),d(40966),d(70968),d(76966),d(35399),d(36279),d(87801),d(16389),d(36073),d(27448),d(10681),d(32014),d(46596),d(39008),d(71),d(85540);var e=d(46743),f=Object.create,g=Object.defineProperty,h=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty,l=(a,b,c)=>(c=null!=a?f(j(a)):{},((a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let e of i(b))k.call(a,e)||e===c||g(a,e,{get:()=>b[e],enumerable:!(d=h(b,e))||d.enumerable});return a})(!b&&a&&a.__esModule?c:g(c,"default",{value:a,enumerable:!0}),a)),m=(b=(a,b)=>{b.exports=(a,b)=>(c,d)=>{let e=2*d,f=2*b;c[e]=a[f],c[e+1]=a[f+1]}},()=>(c||b((c={exports:{}}).exports,c),c.exports)),n=l(m()),o=a=>{let{A:b,C:c}=a;for(let a=0;a<25;a+=5){for(let d=0;d<5;d++)(0,n.default)(b,a+d)(c,d);for(let d=0;d<5;d++){let e=(a+d)*2,f=(d+1)%5*2,g=(d+2)%5*2;b[e]^=~c[f]&c[g],b[e+1]^=~c[f+1]&c[g+1]}}},p=new Uint32Array([0,1,0,32898,0x80000000,32906,0x80000000,0x80008000,0,32907,0,0x80000001,0x80000000,0x80008081,0x80000000,32777,0,138,0,136,0,0x80008009,0,0x8000000a,0,0x8000808b,0x80000000,139,0x80000000,32905,0x80000000,32771,0x80000000,32770,0x80000000,128,0,32778,0x80000000,0x8000000a,0x80000000,0x80008081,0x80000000,32896,0,0x80000001,0x80000000,0x80008008]),q=a=>{let{A:b,I:c}=a,d=2*c;b[0]^=p[d],b[1]^=p[d+1]},r=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1],s=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44],t=l(m()),u=a=>{let{A:b,C:c,W:d}=a,e=0;(0,t.default)(b,e+1)(d,e);let f=0,g=0,h=0,i=32;for(;e<24;e++){let a=r[e],j=s[e];(0,t.default)(b,a)(c,0),f=d[0],g=d[1],i=32-j,d[h=j<32?0:1]=f<<j|g>>>i,d[(h+1)%2]=g<<j|f>>>i,(0,t.default)(d,0)(b,a),(0,t.default)(c,0)(d,0)}},v=l(m()),w=a=>{let{A:b,C:c,D:d,W:e}=a,f=0,g=0;for(let a=0;a<5;a++){let d=2*a,e=(a+5)*2,f=(a+10)*2,g=(a+15)*2,h=(a+20)*2;c[d]=b[d]^b[e]^b[f]^b[g]^b[h],c[d+1]=b[d+1]^b[e+1]^b[f+1]^b[g+1]^b[h+1]}for(let a=0;a<5;a++){(0,v.default)(c,(a+1)%5)(e,0),f=e[0],g=e[1],e[0]=f<<1|g>>>31,e[1]=g<<1|f>>>31,d[2*a]=c[(a+4)%5*2]^e[0],d[2*a+1]=c[(a+4)%5*2+1]^e[1];for(let c=0;c<25;c+=5)b[(c+a)*2]^=d[2*a],b[(c+a)*2+1]^=d[2*a+1]}},x=(a,b)=>{for(let c=0;c<a.length;c+=8){let d=c/4;b[d]^=a[c+7]<<24|a[c+6]<<16|a[c+5]<<8|a[c+4],b[d+1]^=a[c+3]<<24|a[c+2]<<16|a[c+1]<<8|a[c]}return b},y=(a,b)=>{for(let c=0;c<b.length;c+=8){let d=c/4;b[c]=a[d+1],b[c+1]=a[d+1]>>>8,b[c+2]=a[d+1]>>>16,b[c+3]=a[d+1]>>>24,b[c+4]=a[d],b[c+5]=a[d]>>>8,b[c+6]=a[d]>>>16,b[c+7]=a[d]>>>24}return b},z=function(a){let b,c,d,{capacity:f,padding:g}=a,h=f/8,i=200-f/4,j={keccak:(b=new Uint32Array(10),c=new Uint32Array(10),d=new Uint32Array(2),a=>{for(let e=1;e<24;e++)w({A:a,C:b,D:c,W:d}),u({A:a,C:b,W:d}),o({A:a,C:b}),q({A:a,I:e});b.fill(0),c.fill(0),d.fill(0)}),state:new Uint32Array(50),queue:e.Buffer.allocUnsafe(i),queueOffset:0};return this.getState=()=>j,this.setState=a=>{j.keccak=a.keccak,j.state.set(a.state.slice()),a.queue.copy(j.queue),j.queueOffset=a.queueOffset},this.absorb=a=>{for(let b=0;b<a.length;b++)j.queue[j.queueOffset]=a[b],j.queueOffset+=1,j.queueOffset>=i&&(x(j.queue,j.state),j.keccak(j.state),j.queueOffset=0);return this},this.squeeze=a=>{let b={buffer:e.Buffer.allocUnsafe(h),padding:a,queue:e.Buffer.allocUnsafe(j.queue.length),state:new Uint32Array(j.state.length)};j.queue.copy(b.queue);for(let a=0;a<j.state.length;a++)b.state[a]=j.state[a];b.queue.fill(0,j.queueOffset),b.queue[j.queueOffset]|=b.padding,b.queue[i-1]|=128,x(b.queue,b.state);for(let a=0;a<b.buffer.length;a+=i)j.keccak(b.state),y(b.state,b.buffer.slice(a,a+i));return b.buffer},this.reset=()=>(j.queue.fill(0),j.state.fill(0),j.queueOffset=0,this),this.copy=()=>{let a=new z({capacity:f,padding:g});return a.setState(this.getState()),a},this};"u">typeof self&&"u">typeof postMessage&&(globalThis.onmessage=a=>{if("pow-challenge"!==a.data.type)return;let{algorithm:b,challenge:c,salt:d,difficulty:f,signature:g,expireAt:h}=a.data.challenge;try{let a=((a,b,c,d,f)=>{if("DeepSeekHashV1"!==a)throw Error("Unsupported algorithm: "+a);let g="".concat(c,"_").concat(f,"_"),h=function(a,b,c){if(a.length%2!=0)throw RangeError("c.length");if(c<=0||!Number.isSafeInteger(c))throw RangeError("d");for(var d=(function a(){var b=this;return this&&this.constructor===a?(this._sponge=new z({capacity:256}),this.update=a=>{if("string"==typeof a)return this._sponge.absorb(e.Buffer.from(a,"utf8")),this;throw TypeError("input not a string")},this.digest=function(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"hex";return b._sponge.squeeze(6).toString(a)},this.copy=()=>{let b=new a;return b._sponge=this._sponge.copy(),b},this):new a})().update(b),f=0;f<c;f++)if(d.copy().update(String(f)).digest("hex")===a)return f;return null}(b,g,d);if("number"!=typeof h)throw Error("No solution found: "+"algorithm: ".concat(a,", ")+"challenge: ".concat(b,", ")+"difficulty: ".concat(d,", ")+"prefix: ".concat(g));return h})(b,c,d,f,h);postMessage({type:"pow-answer",answer:{algorithm:b,challenge:c,salt:d,answer:a,signature:g}})}catch(a){a instanceof Error?postMessage({type:"pow-error",error:a}):postMessage({type:"pow-error",error:Error("Unknown error",{cause:a})})}}),a.exports={U:z}},97510:(a,b,c)=>{"use strict";c.d(b,{Hv:()=>Q,rR:()=>L,OW:()=>M,_F:()=>J,Uv:()=>K});var d=c(61408),e=c(93462),f=c(54669);let g=["reasoning_budget","chat_template","reasoning_content"];var h=c(69386),i=c(57247),j=c(59387),k=c(58500);let l=[{id:"chrome-mac",userAgent:"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",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Google Chrome";v="149"',secChUaPlatform:'"macOS"',secChUaMobile:"?0"},{id:"chrome-linux",userAgent:"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Google Chrome";v="149"',secChUaPlatform:'"Linux"',secChUaMobile:"?0"},{id:"chrome-win",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Google Chrome";v="149"',secChUaPlatform:'"Windows"',secChUaMobile:"?0"},{id:"firefox-mac",userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:152.0) Gecko/20100101 Firefox/152.0",acceptLanguage:"en-US,en;q=0.9"},{id:"firefox-linux",userAgent:"Mozilla/5.0 (X11; Linux x86_64; rv:152.0) Gecko/20100101 Firefox/152.0",acceptLanguage:"en-US,en;q=0.9"},{id:"safari-mac",userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15",acceptLanguage:"en-US,en;q=0.9"},{id:"edge-mac",userAgent:"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 Edg/149.0.0.0",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Microsoft Edge";v="149"',secChUaPlatform:'"macOS"',secChUaMobile:"?0"},{id:"edge-win",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Microsoft Edge";v="149"',secChUaPlatform:'"Windows"',secChUaMobile:"?0"}];class m{next(){let a=l[this.index%l.length];return this.index++,a}random(){return l[Math.floor(Math.random()*l.length)]}reset(){this.index=0}get count(){return l.length}buildHeaders(a,b){let c={"Content-Type":"application/json",Accept:"application/json, text/plain, */*","Accept-Language":a.acceptLanguage??"en-US,en;q=0.9","User-Agent":a.userAgent,...b};return a.secChUa&&(c["Sec-CH-UA"]=a.secChUa,c["Sec-CH-UA-Mobile"]=a.secChUaMobile??"?0",c["Sec-CH-UA-Platform"]=a.secChUaPlatform??'"Windows"'),c}listAll(){return[...l]}constructor(){this.index=0}}class n{constructor(a,b,c,d){this.status="active",this.inflight=0,this.totalRequests=0,this.successfulRequests=0,this.failedRequests=0,this.consecutiveFails=0,this.cooldownUntil=0,this.lastUsedAt=0,this.cooldownBase=b,this.cooldownMax=c,this.cooldownJitter=d,this.id=`sess-${a.id}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,this.fingerprint=a,this.createdAt=Date.now()}get isAvailable(){return"dead"!==this.status&&("cooldown"!==this.status||Date.now()>=this.cooldownUntil&&(this.status="active",this.consecutiveFails=0,!0))}markSuccess(){this.successfulRequests++,this.consecutiveFails=0}markCooldown(){this.consecutiveFails++;let a=Math.min(this.cooldownBase*Math.pow(2,this.consecutiveFails-1),this.cooldownMax),b=Math.random()*this.cooldownJitter;this.cooldownUntil=Date.now()+a+b,this.status="cooldown"}markDead(){this.status="dead"}acquire(){this.inflight++,this.totalRequests++,this.lastUsedAt=Date.now()}release(){this.inflight=Math.max(0,this.inflight-1)}get cooldownRemaining(){return"cooldown"!==this.status?0:Math.max(0,this.cooldownUntil-Date.now())}get age(){return Date.now()-this.createdAt}buildHeaders(a){let b={"Content-Type":"application/json",Accept:"application/json, text/plain, */*","Accept-Language":this.fingerprint.acceptLanguage??"en-US,en;q=0.9","User-Agent":this.fingerprint.userAgent,...a};return this.fingerprint.secChUa&&(b["Sec-CH-UA"]=this.fingerprint.secChUa,b["Sec-CH-UA-Mobile"]=this.fingerprint.secChUaMobile??"?0",b["Sec-CH-UA-Platform"]=this.fingerprint.secChUaPlatform??'"Windows"'),b}}class o{constructor(a){this.rotator=new m,this.config=a}createSession(){return new n(this.rotator.next(),this.config.cooldownBase,this.config.cooldownMax,this.config.cooldownJitter)}resetRotator(){this.rotator.reset()}get profileCount(){return this.rotator.count}buildHeaders(a,b){return a.buildHeaders(b)}}var p=c(23060);class q{constructor(a,b,c){this.sessions=[],this.index=0,this.totalRequests=0,this.successfulRequests=0,this.rate429count=0,this.otherErrors=0,this.startTime=Date.now(),this.lastLog=0,this.provider=a,this.poolId=`pool-${a}-${Date.now().toString(36)}`,this.createdAt=Date.now(),this.config={...p.W,...b},this.factory=c??new o(this.config)}async ensureMinSessions(){let a=this.config.minSessions-this.sessions.length;if(a<=0)return;let b=[];for(let c=0;c<a;c++)b.push(Promise.resolve(this.createSession()));await Promise.allSettled(b)}async warmUp(a){let b=Math.min(a,this.config.maxSessions)-this.sessions.length;if(b<=0)return;let c=[];for(let a=0;a<b;a++)c.push(Promise.resolve(this.createSession()));await Promise.allSettled(c)}async shutdown(){for(let a of this.sessions)a.markDead();this.sessions=[]}acquire(){if(0===this.sessions.length)return null;let a=this.index%this.sessions.length;for(let b=0;b<this.sessions.length;b++){let c=(a+b)%this.sessions.length,d=this.sessions[c];if(d.isAvailable)return this.index=(c+1)%this.sessions.length,d.acquire(),this.totalRequests++,d}if(this.sessions.length<this.config.maxSessions){let a=this.createSession();return a.acquire(),this.totalRequests++,a}return null}reportSuccess(a){a.markSuccess(),this.successfulRequests++}reportCooldown(a){a.markCooldown(),this.rate429count++,this.maybeLog()}reportDead(a){a.markDead(),this.otherErrors++}get availableCount(){return this.sessions.filter(a=>a.isAvailable).length}get cooldownCount(){return this.sessions.filter(a=>"cooldown"===a.status).length}get deadCount(){return this.sessions.filter(a=>"dead"===a.status).length}get totalCount(){return this.sessions.length}get currentThroughput(){let a=(Date.now()-this.startTime)/1e3;return a>0?this.totalRequests/a:0}getStats(){let a=(Date.now()-this.startTime)/1e3;return{provider:this.provider,sessions:{total:this.sessions.length,active:this.availableCount,cooldown:this.cooldownCount,dead:this.deadCount},requests:{total:this.totalRequests,success:this.successfulRequests,rate429:this.rate429count,otherErrors:this.otherErrors},throughput:this.currentThroughput.toFixed(1),successRate:this.totalRequests>0?(this.successfulRequests/this.totalRequests*100).toFixed(1):"100.0",elapsed:a.toFixed(0)}}getSessionDetails(){return this.sessions.map(a=>({id:a.id,fingerprint:a.fingerprint.id,status:a.status,totalRequests:a.totalRequests,successfulRequests:a.successfulRequests,successRate:a.totalRequests>0?(a.successfulRequests/a.totalRequests*100).toFixed(1):"100.0",inflight:a.inflight,cooldownRemaining:a.cooldownRemaining>0?`${(a.cooldownRemaining/1e3).toFixed(1)}s`:"0s",age:`${(a.age/1e3).toFixed(0)}s`}))}async acquireBlocking(a=1e4){let b=Date.now()+a,c=this.acquire();if(c)return c;let d=50;for(;Date.now()<b;){await (0,k.setTimeout)(d);let a=this.acquire();if(a)return a;d=Math.min(2*d,200)}throw Error(`[SessionPool:${this.provider}] No session available after ${a}ms timeout`)}async executeWithSession(a,b=1e4){let c=await this.acquireBlocking(b);try{return await a(c)}finally{c.release()}}createSession(){let a=this.factory.createSession();return this.sessions.push(a),a}maybeLog(){let a=Date.now();a-this.lastLog<5e3||(this.lastLog=a,this.getStats().requests.total)}pruneDeadSessions(a=3e5){let b=Date.now(),c=this.sessions.length;this.sessions=this.sessions.filter(c=>"dead"!==c.status&&(0!==c.inflight||!(c.lastUsedAt>0)||!(b-c.lastUsedAt>a))),this.sessions.length<c&&this.sessions.length<this.config.minSessions&&this.ensureMinSessions()}startAutoPrune(a=6e4){let b=setInterval(()=>this.pruneDeadSessions(),a);return b.unref(),b}}class r{register(a,b){this.pools.set(a,{pool:b,createdAt:Date.now()})}unregister(a){return this.pools.delete(a)}getPool(a){return this.pools.get(a)?.pool}listProviders(){return Array.from(this.pools.keys())}getStats(a){let b=this.pools.get(a);return b?{...b.pool.getStats(),createdAt:b.createdAt}:null}getAllStats(){let a=[];for(let[,b]of this.pools)a.push({...b.pool.getStats(),createdAt:b.createdAt});return a}getSessionDetails(a){let b=this.pools.get(a);return b?b.pool.getSessionDetails():null}resetPool(a){let b=this.pools.get(a);return!!b&&(b.pool.shutdown(),this.pools.delete(a),!0)}async warmPool(a,b){let c=this.pools.get(a);return!!c&&(await c.pool.warmUp(b),!0)}get size(){return this.pools.size}constructor(){this.pools=new Map}}let s=new r;var t=c(62156),u=c(57647),v=c(8590),w=c(7527),x=c(89625),y=c(96303),z=c(57148),A=c(4334),B=c(425),C=c(26203),D=c(28638),E=c(7882),F=c(14720),G=c(77598),H=c(368);function I(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function J(a,b){if(b){for(let[c,d]of Object.entries(b))if("string"==typeof c&&c.length>0&&"string"==typeof d){if("user-agent"===c.toLowerCase()){K(a,d);continue}a[c]=d}}}function K(a,b){a["User-Agent"]=b,"user-agent"in a&&(a["user-agent"]=b)}function L(a,b){let c=("string"==typeof b?.customUserAgent?b.customUserAgent.trim():"")||null;c&&K(a,c)}function M(a,b){let c=new AbortController,d=a=>{c.signal.aborted||c.abort(a.reason)};return a.aborted?d(a):b.aborted?d(b):(a.addEventListener("abort",()=>d(a),{once:!0}),b.addEventListener("abort",()=>d(b),{once:!0})),c.signal}let N=/devstral/i,O=/claude[-_.]?(?:opus|sonnet)[-_.]?4[-_.]6/i,P=/(claude|haiku|oswe)/i;class Q{constructor(a,b){this._pool=null,this.provider=a,this.config=b}getProvider(){return this.provider}getPool(){if(!this.poolConfig)return null;if(!this._pool){let a=new q(this.provider,this.poolConfig);a.warmUp(this.poolConfig.minSessions).catch(()=>{}),s.register(this.provider,a),this._pool=a}return this._pool}buildPoolHeaders(a){return a?a.buildHeaders():{}}getBaseUrls(){return this.config.baseUrls||(this.config.baseUrl?[this.config.baseUrl]:[])}getFallbackCount(){return this.getBaseUrls().length||1}getTimeoutMs(){let a=this.config?.timeoutMs;return"number"==typeof a&&Number.isFinite(a)?Math.max(1,Math.floor(a)):d.MT}getCountTokensTimeoutMs(){return this.getTimeoutMs()}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=d?.providerSpecificData,b=("string"==typeof a?.baseUrl?a.baseUrl:"https://api.openai.com/v1").replace(/\/$/,""),c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null,e=c&&!("string"!=typeof c||!c.startsWith("/")||c.includes("\0")||c.includes(".."))&&!(c.length>512)&&1?c:null;if(e)return`${b}${e}`;let f="responses"===(0,u.J9)(this.provider,a)?"/responses":"/chat/completions";return`${b}${f}`}let e=this.getBaseUrls();return e[c]||e[0]||this.config.baseUrl||""}resolveBaseUrl(a,b){let c=a?.providerSpecificData?.baseUrl;return("string"==typeof c?c:"")||b||this.config.baseUrl||""}resolveEffectiveKey(a){let b=a.providerSpecificData?.extraApiKeys??[],c=a.providerSpecificData?.selectedKeyId,d=a.apiKey;if(b.length>0&&a.connectionId&&a.apiKey){let e=(0,t.Y8)(a.connectionId,a.apiKey,b,c??null);d=e?.key??a.apiKey,e&&a.providerSpecificData&&(a.providerSpecificData.selectedKeyId=e.keyId)}return d}buildHeadersPreamble(a,b){let c={"Content-Type":"application/json",...this.config.headers},d=this.config?.id||this.provider;if(d){let a=`${d.toUpperCase().replace(/[^A-Z0-9]/g,"_")}_USER_AGENT`,b=process.env[a]?.trim();b&&K(c,b)}return{headers:c,effectiveKey:this.resolveEffectiveKey(a)}}buildHeaders(a,b=!0,c,d,f){let{headers:g,effectiveKey:h}=this.buildHeadersPreamble(a,b);return a.accessToken?g.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(g.Authorization=`Bearer ${h}`),g.Accept=b?"text/event-stream":"application/json",(0,e.Xs)(g),g}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&!Array.isArray(b)){let a={...b};for(let b of(Array.isArray(a.input)&&(a.input=(0,C.y)(a.input,!1)),Array.isArray(a.tools)&&(a.tools=a.tools.map(a=>{if(a&&"object"==typeof a&&!Array.isArray(a)){let b=a.function;if(b&&"object"==typeof b&&!Array.isArray(b)){let c={...b};return""===c.description&&delete c.description,("string"!=typeof c.name||""===c.name.trim())&&(c.name="unnamed_tool"),{...a,function:c}}}return a})),delete a.prompt_cache_retention,["user","stop","seed","response_format"]))""===a[b]&&delete a[b];return a}return b}shouldRetry(a,b){return a===d.gx.RATE_LIMITED&&b+1<this.getFallbackCount()}static{this.RETRY_CONFIG={maxAttempts:2,delayMs:2e3}}static{this.FETCH_START_TIMEOUT_MS=d.MT}async refreshCredentials(a,b){return null}needsRefresh(a){if(!a?.expiresAt)return!1;let b=new Date(a.expiresAt).getTime(),c=(0,v.Og)(this.provider);return b-Date.now()<c}parseError(a,b){return{status:a.status,message:b||`HTTP ${a.status}`}}buildCountTokensUrl(a,b=null){let c=this.buildUrl(a,!1,0,b);if("string"!=typeof c||0===c.length||this.config?.format!=="claude"||!c.includes("/messages"))return null;let[d,e=""]=c.split("?"),f=(d.endsWith("/messages"),`${d}/count_tokens`);return e?`${f}?${e}`:f}async countTokens({model:a,body:b,credentials:c,signal:d,log:e}){let f=this.buildCountTokensUrl(a,c);if(!f)return null;let g=this.buildHeaders(c,!1),h=b&&"object"==typeof b?{...b,model:a}:{model:a},i=null,j=d||null,k=null,l=this.getCountTokensTimeoutMs();l>0&&(k=new AbortController,i=setTimeout(()=>k?.abort(),l),j=d?M(d,k.signal):k.signal);try{let a=await fetch(f,{method:"POST",headers:g,body:JSON.stringify(h),signal:j||void 0}),b=await a.text();if(!a.ok){let c=this.parseError(a,b);throw Error(c.message)}let c=b?JSON.parse(b):{},d=Number(c?.input_tokens);if(!Number.isFinite(d))throw Error("Provider count_tokens response missing input_tokens");return{input_tokens:d,provider:this.provider,source:"provider"}}catch(b){return e?.debug?.("COUNT_TOKENS",`${this.provider}/${a} real count unavailable: ${b instanceof Error?b.message:String(b)}`),null}finally{i&&clearTimeout(i)}}async execute(a){let{model:b,body:c,stream:k,credentials:l,signal:m,log:n,extendedContext:o,upstreamExtraHeaders:p,clientHeaders:q,skipUpstreamRetry:r=!1,onCredentialsRefreshed:s,contextEditing:t}=a,C=this.getFallbackCount(),R=null,S=0,T=l,U={};if(this.needsRefresh(l))try{let a=!1,b=s?async b=>{a=!0,T={...l,...b},await s(b)}:null,c=await (0,v.Bc)(b,()=>this.refreshCredentials(l,n||null));if(c&&!a)if((0,v.jT)(c)){let a=c.code;n?.warn?.("TOKEN",`${this.provider.toUpperCase()} | proactive refresh returned unrecoverable sentinel (code=${String(a??"unknown")}); keeping stale credentials, deferring to reactive path.`)}else T={...l,...c},s&&await s(c)}catch(a){n?.error?.("TOKEN",`Credential refresh failed for ${this.provider}: ${a instanceof Error?a.message:String(a)}`)}let V=!1,W=new Set;for(let a=0;a<C;a++){var X;let s=!function(a,b,c){if(!a.startsWith("openai-compatible-")||!I(b))return!1;let d=c?.providerSpecificData??null;return d?._omnirouteForceResponsesUpstream===!0||"responses"!==(0,u.J9)(a,d)&&(void 0!==b.input||void 0!==b.previous_response_id||void 0!==b.max_output_tokens||void 0!==b.reasoning)&&(Array.isArray(b.tools)?b.tools:[]).some(a=>{if(!I(a))return!1;let b="string"==typeof a.type?a.type:"";return"namespace"===b||/^tool_search/.test(b)})}(this.provider,c,X=T)?X:{...X,providerSpecificData:{...X.providerSpecificData,_omnirouteForceResponsesUpstream:!0}},v=this.buildUrl(b,k,a,s),Z=this.buildHeaders(s,k,q,b);L(Z,s?.providerSpecificData);let $=function(a,b,c){if(!(b?.startsWith?.("openai-compatible-")||c.includes("/v1/chat/completions")||c.includes("/v1/responses")))return[];let d=[];for(let b of Object.keys(a))b.toLowerCase().startsWith("x-stainless-")&&(delete a[b],d.push(b));let e=(a["User-Agent"]||a["user-agent"]||"").toLowerCase();return e.includes("openai")&&(e.includes("node")||e.includes("axios")||e.includes("undici"))&&K(a,"Mozilla/5.0 (compatible; OpenAI Compatible)"),d}(Z,this.provider,v);$.length>0&&n?.debug?.("HEADERS",`Stripped X-Stainless-* from OpenAI-compatible request: ${$.join(", ")}`);let _=(0,u.GK)(this.provider)?(0,y.RG)(s?.providerSpecificData):{},aa=o&&(0,x.zP)(b)&&!(0,u.GK)(this.provider),ab=(0,u.GK)(this.provider)&&!0===_.context1m;(aa||ab)&&(0,x.QH)(Z,x.c8);let ac=function(a,b,c,d){let e,f,g;if(!a||"object"!=typeof a||Array.isArray(a))return a;let h=a.reasoning&&"object"==typeof a.reasoning&&!Array.isArray(a.reasoning)?a.reasoning:null,j=Object.prototype.hasOwnProperty.call(a,"reasoning_effort"),k=a.reasoning_effort??h?.effort;if(void 0===k)return a;let l="string"==typeof k?k.toLowerCase():"",m=c||"",n="github"===b&&O.test(m);if("mistral"===b&&N.test(m)||"github"===b&&!n&&P.test(m)){d?.info?.("REASONING_SANITIZE",`${b}/${m}: removed unsupported reasoning_effort`);let c={...a};if(delete c.reasoning_effort,h){let a={...h};delete a.effort,0===Object.keys(a).length?delete c.reasoning:c.reasoning=a}return c}if("deepseek"===b){let b="xhigh"===l?"max":"low"===l||"medium"===l?"high":null;if(b&&b!==l){d?.info?.("REASONING_SANITIZE",`deepseek/${m}: normalized reasoning_effort ${l} → ${b}`);let c={...a};return j&&(c.reasoning_effort=b),h&&(c.reasoning={...h,effort:b}),c}return a}let o=(0,i.j$)(b,m),p=(e=(b===D.Hy||(0,u.GK)(b))&&(0,i.xO)(m),f="opencode-go"===b&&m.toLowerCase().includes("deepseek"),g="ollama-cloud"===b,e||f||g);if("max"===l&&!p&&o){d?.info?.("REASONING_SANITIZE",`${b}/${m}: normalized reasoning_effort max → xhigh`);let c={...a};return j&&(c.reasoning_effort="xhigh"),h&&(c.reasoning={...h,effort:"xhigh"}),c}if("xhigh"===l&&!o||"max"===l&&!p&&!o){d?.info?.("REASONING_SANITIZE",`${b}/${m}: downgraded reasoning_effort ${l} → high`);let c={...a};return j&&(c.reasoning_effort="high"),h&&(c.reasoning={...h,effort:"high"}),c}return a}(await this.transformRequest(b,c,k,s),this.provider,b,n);"groq"===this.provider&&(ac=function(a){if(!a||"object"!=typeof a)return a;let b={...a};return delete b.logprobs,delete b.logit_bias,delete b.top_logprobs,Array.isArray(b.messages)&&(b.messages=b.messages.map(a=>{if(a&&"object"==typeof a&&"name"in a){let{name:b,...c}=a;return c}return a})),b}(ac));try{let b=this.getTimeoutMs(),c=async(a,c)=>{let d=b>0?new AbortController:null,e=null;d&&(e=setTimeout(()=>{let c=Error(`Fetch timeout after ${b}ms on ${a}`);c.name="TimeoutError",d.abort(c)},b));let f=d?.signal??null,g=m&&f?M(m,f):m||f,h=g?{...c,signal:g}:c;try{return await fetch(a,h)}finally{e&&clearTimeout(e)}},i=q?.["x-app"]==="cli"||q?.["user-agent"]&&q["user-agent"].toLowerCase().includes("claude-code")||q?.["user-agent"]&&q["user-agent"].toLowerCase().includes("claude-cli"),k="string"==typeof T?.accessToken&&T.accessToken.startsWith("sk-ant-oat")&&!T?.apiKey;if("claude"===this.provider&&(i||k)&&"object"==typeof ac&&null!==ac){let a,b,c,d=ac;if((0,H.tk)(d),(0,z.ye)(d),(0,z.Aq)(d),Array.isArray(d.tools)&&(d.tools=(0,B.SN)(d.tools)),(0,A.oS)(d),Array.isArray(d.tools)){for(let a of d.tools)delete a.cache_control;var Y=d.tools;if(Array.isArray(Y))for(let a of Y)"string"==typeof a.type&&/^[a-z][a-z0-9_]*_\d{8}$/.test(a.type)&&"string"==typeof a.model&&a.model.includes("/")&&(a.model=a.model.split("/").pop())}let f=(q?.["x-omniroute-effort"]??q?.["X-OmniRoute-Effort"])?.trim().toLowerCase(),g=(q?.["x-omniroute-thinking"]??q?.["X-OmniRoute-Thinking"])?.trim().toLowerCase(),h=null,l=null;if("off"===f)d.output_config&&"object"==typeof d.output_config&&delete d.output_config.effort,h="off";else if(f&&["low","medium","high","xhigh","max"].includes(f)){let a=d.output_config&&"object"==typeof d.output_config?d.output_config:{};void 0===a.effort&&(a.effort=f,d.output_config=a,h=f)}let m="any"===d.tool_choice||"object"==typeof d.tool_choice&&null!==d.tool_choice&&("any"===d.tool_choice.type||"tool"===d.tool_choice.type)?"off":g;if("adaptive"===m)void 0===d.thinking&&(d.thinking={type:"adaptive"},l="adaptive"),void 0===d.context_management&&(d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]});else if("off"===m)delete d.thinking,delete d.context_management,l="off";else if(!m&&!f&&i){let a="string"==typeof d.model&&d.model.includes("haiku"),b=(0,j.IZ)().mode;a?(delete d.output_config,delete d.context_management):b===j.g8.AUTO?(delete d.thinking,delete d.context_management,delete d.output_config):void 0===d.thinking&&void 0===d.output_config&&(d.thinking={type:"adaptive"},d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]},d.output_config={effort:"high"});let c=d.thinking;if(c?.type==="enabled"&&b!==j.g8.PASSTHROUGH){let a="number"==typeof c.budget_tokens?c.budget_tokens:0;d.thinking={type:"adaptive"},d.output_config={effort:a<=1024?"low":a<=10240?"medium":a>=131072?"max":"high"},d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]}}}(function(a){let b=a.thinking;return b?.type==="enabled"||b?.type==="adaptive"})(d)&&!d.context_management&&(d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]});let o=T?.accessToken||T?.apiKey||"anon",p=T?.providerSpecificData,r="synthesized",s=i||k,t=s?null:(0,H.GX)(d);if(t)a=t.session_id,b=t.device_id,c=t.account_uuid,r="upstream-metadata";else{let d=s?null:(0,H.dY)(q);a=d??(0,H.u0)(o),b=(0,H.dK)(p,o),c=(0,H.PZ)(p,o,T?.accessToken),r=d?"upstream-header":s?"synthesized-cloaked":"synthesized"}let u=new Date().toISOString().slice(0,10),v=(0,H.aZ)(H._3,u),w=`x-anthropic-billing-header: cc_version=${H._3}.${v}; cc_entrypoint=cli; cch=00000;`,x="You are Claude Code, Anthropic's official CLI for Claude.",y=Array.isArray(d.system)?d.system:"string"==typeof d.system?[{type:"text",text:d.system}]:[];for(let a=y.length-1;a>=0;a--){let b=y[a]?.text;"string"==typeof b&&b.startsWith("x-anthropic-billing-header:")&&y.splice(a,1)}for(let a=y.length-1;a>=0;a--){let b=y[a]?.text;"string"==typeof b&&b.startsWith(x)&&y.splice(a,1)}y.unshift({type:"text",text:w},{type:"text",text:x}),d.system=y;{let a=(0,D.W6)(D.Hy,d);a.appliedOpKinds.length>0&&console.log(`[SystemTransforms] claude-native: ${a.appliedOpKinds.join(", ")}`)}d.metadata&&"object"==typeof d.metadata||(d.metadata={}),d.metadata.user_id=(0,H.no)({deviceId:b,accountUUID:c,sessionId:a});let C=q?.["anthropic-beta"]??q?.["Anthropic-Beta"]??null,E={Accept:"application/json","anthropic-version":"2023-06-01","anthropic-beta":(0,e.S9)((0,H.Yy)(d,null,C),C),"anthropic-dangerous-direct-browser-access":"true","x-app":"cli","User-Agent":`claude-cli/${H._3} (external, cli)`,"X-Stainless-Package-Version":H.pA,"X-Stainless-Timeout":"600","accept-encoding":"gzip, deflate, br, zstd",connection:"keep-alive","x-client-request-id":(0,G.randomUUID)(),"X-Claude-Code-Session-Id":a},F=new Set(Object.keys(E).map(a=>a.toLowerCase()));for(let a of Object.keys(Z))F.has(a.toLowerCase())&&delete Z[a];Object.assign(Z,E),delete Z["X-Stainless-Helper-Method"],Z["X-Stainless-Arch"]=(0,H.x5)(),Z["X-Stainless-Lang"]="js",Z["X-Stainless-OS"]=(0,H.zj)(),Z["X-Stainless-Runtime"]="node",Z["X-Stainless-Runtime-Version"]=(0,H.dt)(),Z["X-Stainless-Retry-Count"]="0",delete Z["X-Stainless-Os"];let I=h||l?` overrides=effort:${h??"-"},thinking:${l??"-"}`:"";n?.debug?.("CLAUDE",`identity=${r} sid=${a.slice(0,8)} dev=${b.slice(0,8)} acct=${c.slice(0,8)}${I}`)}let o=Z;delete ac._claudeCodeRequiresLowercaseToolNames;{let a=ac;if(Array.isArray(a?.messages)){let b=(0,F.$g)(a.messages),c="claude"===this.provider||(0,u.GK)(this.provider)?(0,F.$g)((0,F.A7)(b)):b,d=(0,F.W7)(c);a.messages=(0,F.ph)(d,this.provider)}}("claude"===this.provider||(0,u.GK)(this.provider))&&(0,x.PZ)(ac),("claude"===this.provider||(0,u.GK)(this.provider))&&t?.enabled&&!V&&((0,f.fm)(ac,{enabled:!0}),n?.debug?.("CONTEXT_EDITING","Delegated context editing on — attached clear_tool_uses to the Claude request"));let s=JSON.stringify(ac);if((0,h.IL)(this.provider)||"claude"===this.provider&&(i||k)){let a=(0,h.BI)(this.provider,Z,ac);o=a.headers,s=a.bodyString}((0,u.GK)(this.provider)||"claude"===this.provider)&&(s=await (0,w.jD)(s)),J(o,p);let y=E.OG(s);if(ac&&"object"==typeof ac&&y&&"object"==typeof y){let a=ac._toolNameMap;a instanceof Map&&a.size>0&&!(y._toolNameMap instanceof Map)&&Object.defineProperty(y,"_toolNameMap",{value:a,enumerable:!1,configurable:!0,writable:!0})}let C={method:"POST",headers:o,body:s},I=await c(v,C);if(I.status===d.gx.BAD_REQUEST&&t?.enabled&&!V&&ac&&"object"==typeof ac&&void 0!==ac.context_management){let a=await I.clone().text().catch(()=>"");if(/context[_-]management|context editing/i.test(a)){V=!0,delete ac.context_management;let a=JSON.stringify(ac);((0,u.GK)(this.provider)||"claude"===this.provider)&&(a=await (0,w.jD)(a)),n?.debug?.("CONTEXT_EDITING",`Upstream 400 rejected context_management on ${v} — retrying without it`),I=await c(v,{...C,body:a})}}if(I.status===d.gx.BAD_REQUEST&&ac&&"object"==typeof ac){let a=await I.clone().text().catch(()=>""),b=function(a){if("string"!=typeof a||!a)return null;for(let b of g)if(a.includes(b))return b;return null}(a);if(b&&!W.has(b)&&void 0!==ac[b]){W.add(b),delete ac[b];let a=JSON.stringify(ac);((0,u.GK)(this.provider)||"claude"===this.provider)&&(a=await (0,w.jD)(a)),n?.debug?.("FIELD_400",`Upstream 400 rejected ${b} on ${v} — retrying without it`),I=await c(v,{...C,body:a})}}if(!r&&I.status===d.gx.RATE_LIMITED&&(U[a]??0)<Q.RETRY_CONFIG.maxAttempts){U[a]=(U[a]??0)+1;let b=U[a];n?.debug?.("RETRY",`429 intra-retry ${b}/${Q.RETRY_CONFIG.maxAttempts} on ${v} — waiting ${Q.RETRY_CONFIG.delayMs}ms`),await new Promise(a=>setTimeout(a,Q.RETRY_CONFIG.delayMs)),a--;continue}if(401===I.status&&l.connectionId&&l.apiKey&&n?.warn?.("AUTH",`401 on ${v} - API key may be invalid`),!r&&this.shouldRetry(I.status,a)){n?.debug?.("RETRY",`${I.status} on ${v}, trying fallback ${a+1}`),S=I.status;continue}return{response:I,url:v,headers:o,transformedBody:y}}catch(c){let b=c instanceof Error?c:Error(String(c));if("TimeoutError"===b.name&&n?.warn?.("TIMEOUT",`Fetch timeout after ${this.getTimeoutMs()}ms on ${v}`),R=b,!r&&a+1<C){n?.debug?.("RETRY",`Error on ${v}, trying fallback ${a+1}`);continue}throw b}}throw R||Error(`All ${C} URLs failed with status ${S}`)}}},97594:(a,b,c)=>{"use strict";c.d(b,{IE:()=>e,SN:()=>f,YX:()=>h,Z1:()=>g,Ze:()=>i});var d=c(62959);function e(a){return{...a,enabledCreditTypes:["GOOGLE_ONE_AI"]}}function f(a,b){return!(!b||(0,d.dY)(a))}function g(a){return(0,d.Ef)(a)}function h(){let a=(process.env.ANTIGRAVITY_CREDITS||"").trim().toLowerCase();return"always"===a||"retry"===a?a:"off"}function i(a,b){return!("always"!==b||(0,d.dY)(a))}},98026:(a,b,c)=>{"use strict";c.d(b,{T:()=>s});var d=c(28064),e=c(61408),f=c(43659),g=c(97510),h=c(77598);let i=["EnableMcpServerWidgets","feature.EnableMcpServerWidgets","feature.EnableLuForChatCIQ","feature.enableChatCIQPlugin","EnableRequestPlugins","feature.EnableSensitivityLabels","EnableUnsupportedUrlDetector","feature.IsCustomEngineCopilotEnabled","feature.bizchatfluxv3","feature.enablechatpages","feature.enableCodeCanvas","feature.turnOnDARecommendation","feature.IsStreamingModeInChatRequestEnabled","IncludeSourceAttributionsConcise","SkipPublishEmptyMessage","feature.EnableDeduplicatingSourceAttributions","Enable3PActionProgressMessages","feature.enableClientWebRtc","feature.EnableMeetingRecapOfSeriesMeetingWithCiq","feature.cwcfluxv3fe","feature.cwcfluxv3fem","feature.EnableReferencesListCompleteSignal","feature.StorageMessageSplitDisabled","feature.EnableCuaTakeControlApi","SingletonEnvOn","EnableComposeWidget","feature.cwcallowedos","feature.EnableMergingPureDeltas","feature.disabledisallowedmsgs","feature.enableCitationsForSynthesisData","feature.EnableConversationShareApis","feature.enableGenerateGraphicArtOptionsSet","cdximagen","feature.EnableUpdatedUXForConfirmationDialog","feature.EnableContentApiandDocTypeHtmlInRichAnswers","cdxgrounding_api_v2_rich_web_answers_reference_bottom_force","cdxenablerenderforisocomp","feature.EnableClientFileURLSupportForOfficeWebPaidCopilot","feature.EnableDesignEditorImageGrounding","feature.EnableDesignerEditor","feature.EnableSkipRehydrationForSpeCIdImages","feature.EnablePersonalizationForMSA","agt_bizchat_enableRichResponses","feature.EnableBase64DataInMessageAnnotations","feature.EnableSkipEmittingMessageOnFlush","feature.EnableRemoveEmptySourceAttributions","feature.EnableRemoveStreamingMode"];function j(a){return a.replace(/access_token=[^&]*/i,"access_token=REDACTED")}let k={protocol:"json",version:1},l={type:6},m=["Chat","Suggestion","InternalSearchQuery","Disengaged","InternalLoaderMessage","Progress","GeneratedCode","RenderCardRequest","AdsQuery","SemanticSerp","GenerateContentQuery"],n=["search_result_progress_messages_with_search_queries","update_textdoc_response_after_streaming","deepleo_networking_timeout_10minutes_canmore","cwc_flux_image","cwc_code_interpreter","cwc_code_interpreter_amsfix","enable_msa_user","cwcgptv","flux_v3_gptv_enable_upload_multi_image_in_turn_wo_ch","gptvnorm2048","pdnascan","cwc_code_interpreter_citation_fix","code_interpreter_interactive_charts","cwc_code_interpreter_interactive_charts_inline_image","code_interpreter_matplotlib_patching","cwc_fileupload_odb","update_memory_plugin","add_custom_instructions","cwc_flux_v3","flux_v3_progress_messages","enable_batch_token_processing","enable_gg_gpt","flux_v3_image_gen_enable_non_watermarked_storage","flux_v3_image_gen_enable_story","rich_responses"];function o(a){return JSON.stringify(a)+"\x1e"}let p=d.default;function q(a,b,c=null){return`data: ${JSON.stringify({id:`chatcmpl-copilot-m365-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,delta:b,finish_reason:c}]})}
|
|
468
|
+
`}v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b)),aq=N(aq,as),as=""}!(0,g.Gh)(ai)&&ap>0&&(ai=(0,g.OF)(K,ap,k||e.h.OPENAI)),(0,g.Gh)(ai)?(0,g.IF)(o,ai,B,E,J):(0,f.E5)({model:B,provider:o,connectionId:E,tokens:null,status:"200 OK"}).catch(()=>{});let d="antigravity"===o||"gemini"===o||"vertex"===o;if(aG||d||aH||console.warn(`[SSE] PREMATURE EOF | provider=${o} | model=${B} | maxTokens=${K?.max_tokens??K?.max_completion_tokens??"unset"} | contentBytes=${aq.length} | reasoningBytes=${ar.length} | totalBytes=${ap} | upstream did not send finish_reason — NOT synthesizing stop`),!aH&&(await a1(a,ai),aH=!0,ag)){aJ.push({done:!0});let b="data: [DONE]\n\n";v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b))}if(V)try{let a=ai,b=Number(a?.prompt_tokens??a?.input_tokens??0),c=Number(a?.completion_tokens??a?.output_tokens??0),d=aq.trim()||"",e=as.trim();e&&(R(e,ak,am)&&(aj=!0),as=""),d&&R(d,ak,am)?(aj=!0,d=""):Q(d,am)&&(d="");let f={role:"assistant",content:d||null},g=ar.trim();g&&(f.reasoning_content=g),ak.size>0&&(f.tool_calls=[...ak.values()].sort((a,b)=>a.index-b.index)),!aj||d.trim()||g.trim()||console.warn(`[STREAM] Empty assistant response after tool_calls completion (${o||"provider"}:${B||"unknown"}) — sessionId=${aE}`);let h={choices:[{message:f,finish_reason:aj?"tool_calls":"stop"}],usage:{prompt_tokens:b,completion_tokens:c,total_tokens:b+c},_streamed:!0};V({status:200,usage:ai,responseBody:h,providerPayload:aI.build(p(aI.getEvents(),k,B),{includeEvents:!1}),clientPayload:aJ.build(h,{includeEvents:!1})})}catch{}else a$();return}if(ah.trim()){let b=(0,h.tV)(ah.trim());if(b&&!b.done){aI.push(b);let f=(0,g.f5)(b);if(f)if(ao.usage){let a=ao.usage;f.prompt_tokens>0&&(a.prompt_tokens=f.prompt_tokens),f.completion_tokens>0&&(a.completion_tokens=f.completion_tokens),f.total_tokens>0&&(a.total_tokens=f.total_tokens),f.input_tokens>0&&(a.input_tokens=f.input_tokens),f.output_tokens>0&&(a.output_tokens=f.output_tokens),f.cache_read_input_tokens>0&&(a.cache_read_input_tokens=f.cache_read_input_tokens),f.cache_creation_input_tokens>0&&(a.cache_creation_input_tokens=f.cache_creation_input_tokens),f.cached_tokens>0&&(a.cached_tokens=f.cached_tokens),f.reasoning_tokens>0&&(a.reasoning_tokens=f.reasoning_tokens)}else ao.usage=f;let i=(0,d.Y8)(c,k,b,ao);for(let a of aa(i)){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(i?.length>0)for(let b of i)a0(a,b)}}if(ao?.upstreamError){let b=ao.upstreamError,d=!1;if(Y)try{d=!0===Y({status:b.status,message:b.message,code:b.code,type:b.type})}catch{}let e=(0,t.buildErrorBody)(b.status,b.message);if(V)try{V({status:b.status,usage:ao?.usage,responseBody:e,error:b.message,errorCode:b.code,providerPayload:aI.build(p(aI.getEvents(),c,B),{includeEvents:!1}),clientPayload:aJ.build(e,{includeEvents:!1})}),d=!0}catch{}aV(),d||a$(),a.error(L(Error(b.message||"Upstream failure")));return}let l=(0,d.Y8)(c,k,null,ao);for(let a of aa(l)){let b=(0,h.v8)(a,e.h.OPENAI);v?.appendOpenAIChunk?.(b)}if(l?.length>0)for(let b of l)a0(a,b);if(k===e.h.CLAUDE)if($(aS))return void a_(a);else _(aS)&&aY(a,{includeContentBlock:!1,includeMessageDelta:!aS.hasMessageDelta,includeMessageStop:!aS.hasMessageStop});if(!aH&&(await a1(a,ao?.usage),aH=!0,ag)){aJ.push({done:!0});let b="data: [DONE]\n\n";v?.appendConvertedChunk?.(b),a.enqueue(aO.encode(b))}if(!(0,g.Gh)(ao?.usage)&&ap>0&&(ao.usage=(0,g.OF)(K,ap,k)),(0,g.Gh)(ao?.usage)?(0,g.IF)(ao.provider||c,ao.usage,B,E,J):(0,f.E5)({model:B,provider:o,connectionId:E,tokens:null,status:"200 OK"}).catch(()=>{}),V)try{let a=ao?.usage,b=Number(a?.prompt_tokens??a?.input_tokens??0),d=Number(a?.completion_tokens??a?.output_tokens??0),e=(ao?.accumulatedContent??"").trim()||"",f=ao?.toolCalls?.size?[...ao.toolCalls.values()].map(a=>({id:null!=a.id?String(a.id):null,index:a.index??a.blockIndex??0,type:a.type??"function",function:a.function??{name:a.name??"",arguments:""}})).sort((a,b)=>a.index-b.index):[],g=O(e);g?(f.push({id:`call_${Date.now()}_${f.length}`,index:f.length,type:"function",function:{name:g.name,arguments:JSON.stringify(g.args||{})}}),e=""):Q(e,am)&&(e="");let h={role:"assistant",content:e||null},i=f.length>0;i&&(h.tool_calls=f);let j={choices:[{message:h,finish_reason:i?"tool_calls":"stop"}],usage:{prompt_tokens:b,completion_tokens:d,total_tokens:b+d},_streamed:!0};V({status:200,usage:ao?.usage,responseBody:j,providerPayload:aI.build(p(aI.getEvents(),c,B),{includeEvents:!1}),clientPayload:aJ.build(j,{includeEvents:!1})})}catch{}else a$()}catch(a){console.log(`[STREAM] Error in flush (${B||"unknown"}):`,a.message||a)}},cancel(a){aV()}},{highWaterMark:16384},{highWaterMark:16384})}function ae(a,b,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null,k=null,l=!1,m=!1){return ad({mode:ab,targetFormat:a,sourceFormat:b,provider:c,reqLogger:d,toolNameMap:e,model:f,connectionId:g,apiKeyInfo:j,body:h,onComplete:i,onFailure:k,copilotCompatibleReasoning:l,suppressThinkClose:m})}function af(a=null,b=null,c=null,d=null,e=null,f=null,g=null,h=null,i=null,j=null){return ad({mode:ac,provider:a,reqLogger:b,toolNameMap:c,model:d,connectionId:e,apiKeyInfo:h,body:f,onComplete:g,onFailure:i,clientResponseFormat:j})}},96369:a=>{let b,c,d=a=>46743===a?{Buffer}:{};d(42551),d(40966),d(70968),d(76966),d(35399),d(36279),d(87801),d(16389),d(36073),d(27448),d(10681),d(32014),d(46596),d(39008),d(71),d(85540);var e=d(46743),f=Object.create,g=Object.defineProperty,h=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty,l=(a,b,c)=>(c=null!=a?f(j(a)):{},((a,b,c,d)=>{if(b&&"object"==typeof b||"function"==typeof b)for(let e of i(b))k.call(a,e)||e===c||g(a,e,{get:()=>b[e],enumerable:!(d=h(b,e))||d.enumerable});return a})(!b&&a&&a.__esModule?c:g(c,"default",{value:a,enumerable:!0}),a)),m=(b=(a,b)=>{b.exports=(a,b)=>(c,d)=>{let e=2*d,f=2*b;c[e]=a[f],c[e+1]=a[f+1]}},()=>(c||b((c={exports:{}}).exports,c),c.exports)),n=l(m()),o=a=>{let{A:b,C:c}=a;for(let a=0;a<25;a+=5){for(let d=0;d<5;d++)(0,n.default)(b,a+d)(c,d);for(let d=0;d<5;d++){let e=(a+d)*2,f=(d+1)%5*2,g=(d+2)%5*2;b[e]^=~c[f]&c[g],b[e+1]^=~c[f+1]&c[g+1]}}},p=new Uint32Array([0,1,0,32898,0x80000000,32906,0x80000000,0x80008000,0,32907,0,0x80000001,0x80000000,0x80008081,0x80000000,32777,0,138,0,136,0,0x80008009,0,0x8000000a,0,0x8000808b,0x80000000,139,0x80000000,32905,0x80000000,32771,0x80000000,32770,0x80000000,128,0,32778,0x80000000,0x8000000a,0x80000000,0x80008081,0x80000000,32896,0,0x80000001,0x80000000,0x80008008]),q=a=>{let{A:b,I:c}=a,d=2*c;b[0]^=p[d],b[1]^=p[d+1]},r=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1],s=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44],t=l(m()),u=a=>{let{A:b,C:c,W:d}=a,e=0;(0,t.default)(b,e+1)(d,e);let f=0,g=0,h=0,i=32;for(;e<24;e++){let a=r[e],j=s[e];(0,t.default)(b,a)(c,0),f=d[0],g=d[1],i=32-j,d[h=j<32?0:1]=f<<j|g>>>i,d[(h+1)%2]=g<<j|f>>>i,(0,t.default)(d,0)(b,a),(0,t.default)(c,0)(d,0)}},v=l(m()),w=a=>{let{A:b,C:c,D:d,W:e}=a,f=0,g=0;for(let a=0;a<5;a++){let d=2*a,e=(a+5)*2,f=(a+10)*2,g=(a+15)*2,h=(a+20)*2;c[d]=b[d]^b[e]^b[f]^b[g]^b[h],c[d+1]=b[d+1]^b[e+1]^b[f+1]^b[g+1]^b[h+1]}for(let a=0;a<5;a++){(0,v.default)(c,(a+1)%5)(e,0),f=e[0],g=e[1],e[0]=f<<1|g>>>31,e[1]=g<<1|f>>>31,d[2*a]=c[(a+4)%5*2]^e[0],d[2*a+1]=c[(a+4)%5*2+1]^e[1];for(let c=0;c<25;c+=5)b[(c+a)*2]^=d[2*a],b[(c+a)*2+1]^=d[2*a+1]}},x=(a,b)=>{for(let c=0;c<a.length;c+=8){let d=c/4;b[d]^=a[c+7]<<24|a[c+6]<<16|a[c+5]<<8|a[c+4],b[d+1]^=a[c+3]<<24|a[c+2]<<16|a[c+1]<<8|a[c]}return b},y=(a,b)=>{for(let c=0;c<b.length;c+=8){let d=c/4;b[c]=a[d+1],b[c+1]=a[d+1]>>>8,b[c+2]=a[d+1]>>>16,b[c+3]=a[d+1]>>>24,b[c+4]=a[d],b[c+5]=a[d]>>>8,b[c+6]=a[d]>>>16,b[c+7]=a[d]>>>24}return b},z=function(a){let b,c,d,{capacity:f,padding:g}=a,h=f/8,i=200-f/4,j={keccak:(b=new Uint32Array(10),c=new Uint32Array(10),d=new Uint32Array(2),a=>{for(let e=1;e<24;e++)w({A:a,C:b,D:c,W:d}),u({A:a,C:b,W:d}),o({A:a,C:b}),q({A:a,I:e});b.fill(0),c.fill(0),d.fill(0)}),state:new Uint32Array(50),queue:e.Buffer.allocUnsafe(i),queueOffset:0};return this.getState=()=>j,this.setState=a=>{j.keccak=a.keccak,j.state.set(a.state.slice()),a.queue.copy(j.queue),j.queueOffset=a.queueOffset},this.absorb=a=>{for(let b=0;b<a.length;b++)j.queue[j.queueOffset]=a[b],j.queueOffset+=1,j.queueOffset>=i&&(x(j.queue,j.state),j.keccak(j.state),j.queueOffset=0);return this},this.squeeze=a=>{let b={buffer:e.Buffer.allocUnsafe(h),padding:a,queue:e.Buffer.allocUnsafe(j.queue.length),state:new Uint32Array(j.state.length)};j.queue.copy(b.queue);for(let a=0;a<j.state.length;a++)b.state[a]=j.state[a];b.queue.fill(0,j.queueOffset),b.queue[j.queueOffset]|=b.padding,b.queue[i-1]|=128,x(b.queue,b.state);for(let a=0;a<b.buffer.length;a+=i)j.keccak(b.state),y(b.state,b.buffer.slice(a,a+i));return b.buffer},this.reset=()=>(j.queue.fill(0),j.state.fill(0),j.queueOffset=0,this),this.copy=()=>{let a=new z({capacity:f,padding:g});return a.setState(this.getState()),a},this};"u">typeof self&&"u">typeof postMessage&&(globalThis.onmessage=a=>{if("pow-challenge"!==a.data.type)return;let{algorithm:b,challenge:c,salt:d,difficulty:f,signature:g,expireAt:h}=a.data.challenge;try{let a=((a,b,c,d,f)=>{if("DeepSeekHashV1"!==a)throw Error("Unsupported algorithm: "+a);let g="".concat(c,"_").concat(f,"_"),h=function(a,b,c){if(a.length%2!=0)throw RangeError("c.length");if(c<=0||!Number.isSafeInteger(c))throw RangeError("d");for(var d=(function a(){var b=this;return this&&this.constructor===a?(this._sponge=new z({capacity:256}),this.update=a=>{if("string"==typeof a)return this._sponge.absorb(e.Buffer.from(a,"utf8")),this;throw TypeError("input not a string")},this.digest=function(){let a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"hex";return b._sponge.squeeze(6).toString(a)},this.copy=()=>{let b=new a;return b._sponge=this._sponge.copy(),b},this):new a})().update(b),f=0;f<c;f++)if(d.copy().update(String(f)).digest("hex")===a)return f;return null}(b,g,d);if("number"!=typeof h)throw Error("No solution found: "+"algorithm: ".concat(a,", ")+"challenge: ".concat(b,", ")+"difficulty: ".concat(d,", ")+"prefix: ".concat(g));return h})(b,c,d,f,h);postMessage({type:"pow-answer",answer:{algorithm:b,challenge:c,salt:d,answer:a,signature:g}})}catch(a){a instanceof Error?postMessage({type:"pow-error",error:a}):postMessage({type:"pow-error",error:Error("Unknown error",{cause:a})})}}),a.exports={U:z}},97510:(a,b,c)=>{c.d(b,{Hv:()=>Q,rR:()=>L,OW:()=>M,_F:()=>J,Uv:()=>K});var d=c(61408),e=c(93462),f=c(54669);let g=["reasoning_budget","chat_template","reasoning_content"];var h=c(69386),i=c(57247),j=c(59387),k=c(58500);let l=[{id:"chrome-mac",userAgent:"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",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Google Chrome";v="149"',secChUaPlatform:'"macOS"',secChUaMobile:"?0"},{id:"chrome-linux",userAgent:"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Google Chrome";v="149"',secChUaPlatform:'"Linux"',secChUaMobile:"?0"},{id:"chrome-win",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Google Chrome";v="149"',secChUaPlatform:'"Windows"',secChUaMobile:"?0"},{id:"firefox-mac",userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:152.0) Gecko/20100101 Firefox/152.0",acceptLanguage:"en-US,en;q=0.9"},{id:"firefox-linux",userAgent:"Mozilla/5.0 (X11; Linux x86_64; rv:152.0) Gecko/20100101 Firefox/152.0",acceptLanguage:"en-US,en;q=0.9"},{id:"safari-mac",userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15",acceptLanguage:"en-US,en;q=0.9"},{id:"edge-mac",userAgent:"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 Edg/149.0.0.0",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Microsoft Edge";v="149"',secChUaPlatform:'"macOS"',secChUaMobile:"?0"},{id:"edge-win",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36 Edg/149.0.0.0",acceptLanguage:"en-US,en;q=0.9",secChUa:'"Not-A.Brand";v="99", "Chromium";v="149", "Microsoft Edge";v="149"',secChUaPlatform:'"Windows"',secChUaMobile:"?0"}];class m{next(){let a=l[this.index%l.length];return this.index++,a}random(){return l[Math.floor(Math.random()*l.length)]}reset(){this.index=0}get count(){return l.length}buildHeaders(a,b){let c={"Content-Type":"application/json",Accept:"application/json, text/plain, */*","Accept-Language":a.acceptLanguage??"en-US,en;q=0.9","User-Agent":a.userAgent,...b};return a.secChUa&&(c["Sec-CH-UA"]=a.secChUa,c["Sec-CH-UA-Mobile"]=a.secChUaMobile??"?0",c["Sec-CH-UA-Platform"]=a.secChUaPlatform??'"Windows"'),c}listAll(){return[...l]}constructor(){this.index=0}}class n{constructor(a,b,c,d){this.status="active",this.inflight=0,this.totalRequests=0,this.successfulRequests=0,this.failedRequests=0,this.consecutiveFails=0,this.cooldownUntil=0,this.lastUsedAt=0,this.cooldownBase=b,this.cooldownMax=c,this.cooldownJitter=d,this.id=`sess-${a.id}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,this.fingerprint=a,this.createdAt=Date.now()}get isAvailable(){return"dead"!==this.status&&("cooldown"!==this.status||Date.now()>=this.cooldownUntil&&(this.status="active",this.consecutiveFails=0,!0))}markSuccess(){this.successfulRequests++,this.consecutiveFails=0}markCooldown(){this.consecutiveFails++;let a=Math.min(this.cooldownBase*Math.pow(2,this.consecutiveFails-1),this.cooldownMax),b=Math.random()*this.cooldownJitter;this.cooldownUntil=Date.now()+a+b,this.status="cooldown"}markDead(){this.status="dead"}acquire(){this.inflight++,this.totalRequests++,this.lastUsedAt=Date.now()}release(){this.inflight=Math.max(0,this.inflight-1)}get cooldownRemaining(){return"cooldown"!==this.status?0:Math.max(0,this.cooldownUntil-Date.now())}get age(){return Date.now()-this.createdAt}buildHeaders(a){let b={"Content-Type":"application/json",Accept:"application/json, text/plain, */*","Accept-Language":this.fingerprint.acceptLanguage??"en-US,en;q=0.9","User-Agent":this.fingerprint.userAgent,...a};return this.fingerprint.secChUa&&(b["Sec-CH-UA"]=this.fingerprint.secChUa,b["Sec-CH-UA-Mobile"]=this.fingerprint.secChUaMobile??"?0",b["Sec-CH-UA-Platform"]=this.fingerprint.secChUaPlatform??'"Windows"'),b}}class o{constructor(a){this.rotator=new m,this.config=a}createSession(){return new n(this.rotator.next(),this.config.cooldownBase,this.config.cooldownMax,this.config.cooldownJitter)}resetRotator(){this.rotator.reset()}get profileCount(){return this.rotator.count}buildHeaders(a,b){return a.buildHeaders(b)}}var p=c(23060);class q{constructor(a,b,c){this.sessions=[],this.index=0,this.totalRequests=0,this.successfulRequests=0,this.rate429count=0,this.otherErrors=0,this.startTime=Date.now(),this.lastLog=0,this.provider=a,this.poolId=`pool-${a}-${Date.now().toString(36)}`,this.createdAt=Date.now(),this.config={...p.W,...b},this.factory=c??new o(this.config)}async ensureMinSessions(){let a=this.config.minSessions-this.sessions.length;if(a<=0)return;let b=[];for(let c=0;c<a;c++)b.push(Promise.resolve(this.createSession()));await Promise.allSettled(b)}async warmUp(a){let b=Math.min(a,this.config.maxSessions)-this.sessions.length;if(b<=0)return;let c=[];for(let a=0;a<b;a++)c.push(Promise.resolve(this.createSession()));await Promise.allSettled(c)}async shutdown(){for(let a of this.sessions)a.markDead();this.sessions=[]}acquire(){if(0===this.sessions.length)return null;let a=this.index%this.sessions.length;for(let b=0;b<this.sessions.length;b++){let c=(a+b)%this.sessions.length,d=this.sessions[c];if(d.isAvailable)return this.index=(c+1)%this.sessions.length,d.acquire(),this.totalRequests++,d}if(this.sessions.length<this.config.maxSessions){let a=this.createSession();return a.acquire(),this.totalRequests++,a}return null}reportSuccess(a){a.markSuccess(),this.successfulRequests++}reportCooldown(a){a.markCooldown(),this.rate429count++,this.maybeLog()}reportDead(a){a.markDead(),this.otherErrors++}get availableCount(){return this.sessions.filter(a=>a.isAvailable).length}get cooldownCount(){return this.sessions.filter(a=>"cooldown"===a.status).length}get deadCount(){return this.sessions.filter(a=>"dead"===a.status).length}get totalCount(){return this.sessions.length}get currentThroughput(){let a=(Date.now()-this.startTime)/1e3;return a>0?this.totalRequests/a:0}getStats(){let a=(Date.now()-this.startTime)/1e3;return{provider:this.provider,sessions:{total:this.sessions.length,active:this.availableCount,cooldown:this.cooldownCount,dead:this.deadCount},requests:{total:this.totalRequests,success:this.successfulRequests,rate429:this.rate429count,otherErrors:this.otherErrors},throughput:this.currentThroughput.toFixed(1),successRate:this.totalRequests>0?(this.successfulRequests/this.totalRequests*100).toFixed(1):"100.0",elapsed:a.toFixed(0)}}getSessionDetails(){return this.sessions.map(a=>({id:a.id,fingerprint:a.fingerprint.id,status:a.status,totalRequests:a.totalRequests,successfulRequests:a.successfulRequests,successRate:a.totalRequests>0?(a.successfulRequests/a.totalRequests*100).toFixed(1):"100.0",inflight:a.inflight,cooldownRemaining:a.cooldownRemaining>0?`${(a.cooldownRemaining/1e3).toFixed(1)}s`:"0s",age:`${(a.age/1e3).toFixed(0)}s`}))}async acquireBlocking(a=1e4){let b=Date.now()+a,c=this.acquire();if(c)return c;let d=50;for(;Date.now()<b;){await (0,k.setTimeout)(d);let a=this.acquire();if(a)return a;d=Math.min(2*d,200)}throw Error(`[SessionPool:${this.provider}] No session available after ${a}ms timeout`)}async executeWithSession(a,b=1e4){let c=await this.acquireBlocking(b);try{return await a(c)}finally{c.release()}}createSession(){let a=this.factory.createSession();return this.sessions.push(a),a}maybeLog(){let a=Date.now();a-this.lastLog<5e3||(this.lastLog=a,this.getStats().requests.total)}pruneDeadSessions(a=3e5){let b=Date.now(),c=this.sessions.length;this.sessions=this.sessions.filter(c=>"dead"!==c.status&&(0!==c.inflight||!(c.lastUsedAt>0)||!(b-c.lastUsedAt>a))),this.sessions.length<c&&this.sessions.length<this.config.minSessions&&this.ensureMinSessions()}startAutoPrune(a=6e4){let b=setInterval(()=>this.pruneDeadSessions(),a);return b.unref(),b}}class r{register(a,b){this.pools.set(a,{pool:b,createdAt:Date.now()})}unregister(a){return this.pools.delete(a)}getPool(a){return this.pools.get(a)?.pool}listProviders(){return Array.from(this.pools.keys())}getStats(a){let b=this.pools.get(a);return b?{...b.pool.getStats(),createdAt:b.createdAt}:null}getAllStats(){let a=[];for(let[,b]of this.pools)a.push({...b.pool.getStats(),createdAt:b.createdAt});return a}getSessionDetails(a){let b=this.pools.get(a);return b?b.pool.getSessionDetails():null}resetPool(a){let b=this.pools.get(a);return!!b&&(b.pool.shutdown(),this.pools.delete(a),!0)}async warmPool(a,b){let c=this.pools.get(a);return!!c&&(await c.pool.warmUp(b),!0)}get size(){return this.pools.size}constructor(){this.pools=new Map}}let s=new r;var t=c(62156),u=c(57647),v=c(8590),w=c(7527),x=c(89625),y=c(96303),z=c(57148),A=c(4334),B=c(425),C=c(26203),D=c(28638),E=c(7882),F=c(14720),G=c(77598),H=c(368);function I(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function J(a,b){if(b){for(let[c,d]of Object.entries(b))if("string"==typeof c&&c.length>0&&"string"==typeof d){if("user-agent"===c.toLowerCase()){K(a,d);continue}a[c]=d}}}function K(a,b){a["User-Agent"]=b,"user-agent"in a&&(a["user-agent"]=b)}function L(a,b){let c=("string"==typeof b?.customUserAgent?b.customUserAgent.trim():"")||null;c&&K(a,c)}function M(a,b){let c=new AbortController,d=a=>{c.signal.aborted||c.abort(a.reason)};return a.aborted?d(a):b.aborted?d(b):(a.addEventListener("abort",()=>d(a),{once:!0}),b.addEventListener("abort",()=>d(b),{once:!0})),c.signal}let N=/devstral/i,O=/claude[-_.]?(?:opus|sonnet)[-_.]?4[-_.]6/i,P=/(claude|haiku|oswe)/i;class Q{constructor(a,b){this._pool=null,this.provider=a,this.config=b}getProvider(){return this.provider}getPool(){if(!this.poolConfig)return null;if(!this._pool){let a=new q(this.provider,this.poolConfig);a.warmUp(this.poolConfig.minSessions).catch(()=>{}),s.register(this.provider,a),this._pool=a}return this._pool}buildPoolHeaders(a){return a?a.buildHeaders():{}}getBaseUrls(){return this.config.baseUrls||(this.config.baseUrl?[this.config.baseUrl]:[])}getFallbackCount(){return this.getBaseUrls().length||1}getTimeoutMs(){let a=this.config?.timeoutMs;return"number"==typeof a&&Number.isFinite(a)?Math.max(1,Math.floor(a)):d.MT}getCountTokensTimeoutMs(){return this.getTimeoutMs()}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=d?.providerSpecificData,b=("string"==typeof a?.baseUrl?a.baseUrl:"https://api.openai.com/v1").replace(/\/$/,""),c="string"==typeof a?.chatPath&&a.chatPath?a.chatPath:null,e=c&&!("string"!=typeof c||!c.startsWith("/")||c.includes("\0")||c.includes(".."))&&!(c.length>512)&&1?c:null;if(e)return`${b}${e}`;let f="responses"===(0,u.J9)(this.provider,a)?"/responses":"/chat/completions";return`${b}${f}`}let e=this.getBaseUrls();return e[c]||e[0]||this.config.baseUrl||""}resolveBaseUrl(a,b){let c=a?.providerSpecificData?.baseUrl;return("string"==typeof c?c:"")||b||this.config.baseUrl||""}resolveEffectiveKey(a){let b=a.providerSpecificData?.extraApiKeys??[],c=a.providerSpecificData?.selectedKeyId,d=a.apiKey;if(b.length>0&&a.connectionId&&a.apiKey){let e=(0,t.Y8)(a.connectionId,a.apiKey,b,c??null);d=e?.key??a.apiKey,e&&a.providerSpecificData&&(a.providerSpecificData.selectedKeyId=e.keyId)}return d}buildHeadersPreamble(a,b){let c={"Content-Type":"application/json",...this.config.headers},d=this.config?.id||this.provider;if(d){let a=`${d.toUpperCase().replace(/[^A-Z0-9]/g,"_")}_USER_AGENT`,b=process.env[a]?.trim();b&&K(c,b)}return{headers:c,effectiveKey:this.resolveEffectiveKey(a)}}buildHeaders(a,b=!0,c,d,f){let{headers:g,effectiveKey:h}=this.buildHeadersPreamble(a,b);return a.accessToken?g.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(g.Authorization=`Bearer ${h}`),g.Accept=b?"text/event-stream":"application/json",(0,e.Xs)(g),g}transformRequest(a,b,c,d){if(b&&"object"==typeof b&&!Array.isArray(b)){let a={...b};for(let b of(Array.isArray(a.input)&&(a.input=(0,C.y)(a.input,!1)),Array.isArray(a.tools)&&(a.tools=a.tools.map(a=>{if(a&&"object"==typeof a&&!Array.isArray(a)){let b=a.function;if(b&&"object"==typeof b&&!Array.isArray(b)){let c={...b};return""===c.description&&delete c.description,("string"!=typeof c.name||""===c.name.trim())&&(c.name="unnamed_tool"),{...a,function:c}}}return a})),delete a.prompt_cache_retention,["user","stop","seed","response_format"]))""===a[b]&&delete a[b];return a}return b}shouldRetry(a,b){return a===d.gx.RATE_LIMITED&&b+1<this.getFallbackCount()}static{this.RETRY_CONFIG={maxAttempts:2,delayMs:2e3}}static{this.FETCH_START_TIMEOUT_MS=d.MT}async refreshCredentials(a,b){return null}needsRefresh(a){if(!a?.expiresAt)return!1;let b=new Date(a.expiresAt).getTime(),c=(0,v.Og)(this.provider);return b-Date.now()<c}parseError(a,b){return{status:a.status,message:b||`HTTP ${a.status}`}}buildCountTokensUrl(a,b=null){let c=this.buildUrl(a,!1,0,b);if("string"!=typeof c||0===c.length||this.config?.format!=="claude"||!c.includes("/messages"))return null;let[d,e=""]=c.split("?"),f=(d.endsWith("/messages"),`${d}/count_tokens`);return e?`${f}?${e}`:f}async countTokens({model:a,body:b,credentials:c,signal:d,log:e}){let f=this.buildCountTokensUrl(a,c);if(!f)return null;let g=this.buildHeaders(c,!1),h=b&&"object"==typeof b?{...b,model:a}:{model:a},i=null,j=d||null,k=null,l=this.getCountTokensTimeoutMs();l>0&&(k=new AbortController,i=setTimeout(()=>k?.abort(),l),j=d?M(d,k.signal):k.signal);try{let a=await fetch(f,{method:"POST",headers:g,body:JSON.stringify(h),signal:j||void 0}),b=await a.text();if(!a.ok){let c=this.parseError(a,b);throw Error(c.message)}let c=b?JSON.parse(b):{},d=Number(c?.input_tokens);if(!Number.isFinite(d))throw Error("Provider count_tokens response missing input_tokens");return{input_tokens:d,provider:this.provider,source:"provider"}}catch(b){return e?.debug?.("COUNT_TOKENS",`${this.provider}/${a} real count unavailable: ${b instanceof Error?b.message:String(b)}`),null}finally{i&&clearTimeout(i)}}async execute(a){let{model:b,body:c,stream:k,credentials:l,signal:m,log:n,extendedContext:o,upstreamExtraHeaders:p,clientHeaders:q,skipUpstreamRetry:r=!1,onCredentialsRefreshed:s,contextEditing:t}=a,C=this.getFallbackCount(),R=null,S=0,T=l,U={};if(this.needsRefresh(l))try{let a=!1,b=s?async b=>{a=!0,T={...l,...b},await s(b)}:null,c=await (0,v.Bc)(b,()=>this.refreshCredentials(l,n||null));if(c&&!a)if((0,v.jT)(c)){let a=c.code;n?.warn?.("TOKEN",`${this.provider.toUpperCase()} | proactive refresh returned unrecoverable sentinel (code=${String(a??"unknown")}); keeping stale credentials, deferring to reactive path.`)}else T={...l,...c},s&&await s(c)}catch(a){n?.error?.("TOKEN",`Credential refresh failed for ${this.provider}: ${a instanceof Error?a.message:String(a)}`)}let V=!1,W=new Set;for(let a=0;a<C;a++){var X;let s=!function(a,b,c){if(!a.startsWith("openai-compatible-")||!I(b))return!1;let d=c?.providerSpecificData??null;return d?._omnirouteForceResponsesUpstream===!0||"responses"!==(0,u.J9)(a,d)&&(void 0!==b.input||void 0!==b.previous_response_id||void 0!==b.max_output_tokens||void 0!==b.reasoning)&&(Array.isArray(b.tools)?b.tools:[]).some(a=>{if(!I(a))return!1;let b="string"==typeof a.type?a.type:"";return"namespace"===b||/^tool_search/.test(b)})}(this.provider,c,X=T)?X:{...X,providerSpecificData:{...X.providerSpecificData,_omnirouteForceResponsesUpstream:!0}},v=this.buildUrl(b,k,a,s),Z=this.buildHeaders(s,k,q,b);L(Z,s?.providerSpecificData);let $=function(a,b,c){if(!(b?.startsWith?.("openai-compatible-")||c.includes("/v1/chat/completions")||c.includes("/v1/responses")))return[];let d=[];for(let b of Object.keys(a))b.toLowerCase().startsWith("x-stainless-")&&(delete a[b],d.push(b));let e=(a["User-Agent"]||a["user-agent"]||"").toLowerCase();return e.includes("openai")&&(e.includes("node")||e.includes("axios")||e.includes("undici"))&&K(a,"Mozilla/5.0 (compatible; OpenAI Compatible)"),d}(Z,this.provider,v);$.length>0&&n?.debug?.("HEADERS",`Stripped X-Stainless-* from OpenAI-compatible request: ${$.join(", ")}`);let _=(0,u.GK)(this.provider)?(0,y.RG)(s?.providerSpecificData):{},aa=o&&(0,x.zP)(b)&&!(0,u.GK)(this.provider),ab=(0,u.GK)(this.provider)&&!0===_.context1m;(aa||ab)&&(0,x.QH)(Z,x.c8);let ac=function(a,b,c,d){let e,f,g;if(!a||"object"!=typeof a||Array.isArray(a))return a;let h=a.reasoning&&"object"==typeof a.reasoning&&!Array.isArray(a.reasoning)?a.reasoning:null,j=Object.prototype.hasOwnProperty.call(a,"reasoning_effort"),k=a.reasoning_effort??h?.effort;if(void 0===k)return a;let l="string"==typeof k?k.toLowerCase():"",m=c||"",n="github"===b&&O.test(m);if("mistral"===b&&N.test(m)||"github"===b&&!n&&P.test(m)){d?.info?.("REASONING_SANITIZE",`${b}/${m}: removed unsupported reasoning_effort`);let c={...a};if(delete c.reasoning_effort,h){let a={...h};delete a.effort,0===Object.keys(a).length?delete c.reasoning:c.reasoning=a}return c}if("deepseek"===b){let b="xhigh"===l?"max":"low"===l||"medium"===l?"high":null;if(b&&b!==l){d?.info?.("REASONING_SANITIZE",`deepseek/${m}: normalized reasoning_effort ${l} → ${b}`);let c={...a};return j&&(c.reasoning_effort=b),h&&(c.reasoning={...h,effort:b}),c}return a}let o=(0,i.j$)(b,m),p=(e=(b===D.Hy||(0,u.GK)(b))&&(0,i.xO)(m),f="opencode-go"===b&&m.toLowerCase().includes("deepseek"),g="ollama-cloud"===b,e||f||g);if("max"===l&&!p&&o){d?.info?.("REASONING_SANITIZE",`${b}/${m}: normalized reasoning_effort max → xhigh`);let c={...a};return j&&(c.reasoning_effort="xhigh"),h&&(c.reasoning={...h,effort:"xhigh"}),c}if("xhigh"===l&&!o||"max"===l&&!p&&!o){d?.info?.("REASONING_SANITIZE",`${b}/${m}: downgraded reasoning_effort ${l} → high`);let c={...a};return j&&(c.reasoning_effort="high"),h&&(c.reasoning={...h,effort:"high"}),c}return a}(await this.transformRequest(b,c,k,s),this.provider,b,n);"groq"===this.provider&&(ac=function(a){if(!a||"object"!=typeof a)return a;let b={...a};return delete b.logprobs,delete b.logit_bias,delete b.top_logprobs,Array.isArray(b.messages)&&(b.messages=b.messages.map(a=>{if(a&&"object"==typeof a&&"name"in a){let{name:b,...c}=a;return c}return a})),b}(ac));try{let b=this.getTimeoutMs(),c=async(a,c)=>{let d=b>0?new AbortController:null,e=null;d&&(e=setTimeout(()=>{let c=Error(`Fetch timeout after ${b}ms on ${a}`);c.name="TimeoutError",d.abort(c)},b));let f=d?.signal??null,g=m&&f?M(m,f):m||f,h=g?{...c,signal:g}:c;try{return await fetch(a,h)}finally{e&&clearTimeout(e)}},i=q?.["x-app"]==="cli"||q?.["user-agent"]&&q["user-agent"].toLowerCase().includes("claude-code")||q?.["user-agent"]&&q["user-agent"].toLowerCase().includes("claude-cli"),k="string"==typeof T?.accessToken&&T.accessToken.startsWith("sk-ant-oat")&&!T?.apiKey;if("claude"===this.provider&&(i||k)&&"object"==typeof ac&&null!==ac){let a,b,c,d=ac;if((0,H.tk)(d),(0,z.ye)(d),(0,z.Aq)(d),Array.isArray(d.tools)&&(d.tools=(0,B.SN)(d.tools)),(0,A.oS)(d),Array.isArray(d.tools)){for(let a of d.tools)delete a.cache_control;var Y=d.tools;if(Array.isArray(Y))for(let a of Y)"string"==typeof a.type&&/^[a-z][a-z0-9_]*_\d{8}$/.test(a.type)&&"string"==typeof a.model&&a.model.includes("/")&&(a.model=a.model.split("/").pop())}let f=(q?.["x-omniroute-effort"]??q?.["X-OmniRoute-Effort"])?.trim().toLowerCase(),g=(q?.["x-omniroute-thinking"]??q?.["X-OmniRoute-Thinking"])?.trim().toLowerCase(),h=null,l=null;if("off"===f)d.output_config&&"object"==typeof d.output_config&&delete d.output_config.effort,h="off";else if(f&&["low","medium","high","xhigh","max"].includes(f)){let a=d.output_config&&"object"==typeof d.output_config?d.output_config:{};void 0===a.effort&&(a.effort=f,d.output_config=a,h=f)}let m="any"===d.tool_choice||"object"==typeof d.tool_choice&&null!==d.tool_choice&&("any"===d.tool_choice.type||"tool"===d.tool_choice.type)?"off":g;if("adaptive"===m)void 0===d.thinking&&(d.thinking={type:"adaptive"},l="adaptive"),void 0===d.context_management&&(d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]});else if("off"===m)delete d.thinking,delete d.context_management,l="off";else if(!m&&!f&&i){let a="string"==typeof d.model&&d.model.includes("haiku"),b=(0,j.IZ)().mode;a?(delete d.output_config,delete d.context_management):b===j.g8.AUTO?(delete d.thinking,delete d.context_management,delete d.output_config):void 0===d.thinking&&void 0===d.output_config&&(d.thinking={type:"adaptive"},d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]},d.output_config={effort:"high"});let c=d.thinking;if(c?.type==="enabled"&&b!==j.g8.PASSTHROUGH){let a="number"==typeof c.budget_tokens?c.budget_tokens:0;d.thinking={type:"adaptive"},d.output_config={effort:a<=1024?"low":a<=10240?"medium":a>=131072?"max":"high"},d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]}}}(function(a){let b=a.thinking;return b?.type==="enabled"||b?.type==="adaptive"})(d)&&!d.context_management&&(d.context_management={edits:[{type:"clear_thinking_20251015",keep:"all"}]});let o=T?.accessToken||T?.apiKey||"anon",p=T?.providerSpecificData,r="synthesized",s=i||k,t=s?null:(0,H.GX)(d);if(t)a=t.session_id,b=t.device_id,c=t.account_uuid,r="upstream-metadata";else{let d=s?null:(0,H.dY)(q);a=d??(0,H.u0)(o),b=(0,H.dK)(p,o),c=(0,H.PZ)(p,o,T?.accessToken),r=d?"upstream-header":s?"synthesized-cloaked":"synthesized"}let u=new Date().toISOString().slice(0,10),v=(0,H.aZ)(H._3,u),w=`x-anthropic-billing-header: cc_version=${H._3}.${v}; cc_entrypoint=cli; cch=00000;`,x="You are Claude Code, Anthropic's official CLI for Claude.",y=Array.isArray(d.system)?d.system:"string"==typeof d.system?[{type:"text",text:d.system}]:[];for(let a=y.length-1;a>=0;a--){let b=y[a]?.text;"string"==typeof b&&b.startsWith("x-anthropic-billing-header:")&&y.splice(a,1)}for(let a=y.length-1;a>=0;a--){let b=y[a]?.text;"string"==typeof b&&b.startsWith(x)&&y.splice(a,1)}y.unshift({type:"text",text:w},{type:"text",text:x}),d.system=y;{let a=(0,D.W6)(D.Hy,d);a.appliedOpKinds.length>0&&console.log(`[SystemTransforms] claude-native: ${a.appliedOpKinds.join(", ")}`)}d.metadata&&"object"==typeof d.metadata||(d.metadata={}),d.metadata.user_id=(0,H.no)({deviceId:b,accountUUID:c,sessionId:a});let C=q?.["anthropic-beta"]??q?.["Anthropic-Beta"]??null,E={Accept:"application/json","anthropic-version":"2023-06-01","anthropic-beta":(0,e.S9)((0,H.Yy)(d,null,C),C),"anthropic-dangerous-direct-browser-access":"true","x-app":"cli","User-Agent":`claude-cli/${H._3} (external, cli)`,"X-Stainless-Package-Version":H.pA,"X-Stainless-Timeout":"600","accept-encoding":"gzip, deflate, br, zstd",connection:"keep-alive","x-client-request-id":(0,G.randomUUID)(),"X-Claude-Code-Session-Id":a},F=new Set(Object.keys(E).map(a=>a.toLowerCase()));for(let a of Object.keys(Z))F.has(a.toLowerCase())&&delete Z[a];Object.assign(Z,E),delete Z["X-Stainless-Helper-Method"],Z["X-Stainless-Arch"]=(0,H.x5)(),Z["X-Stainless-Lang"]="js",Z["X-Stainless-OS"]=(0,H.zj)(),Z["X-Stainless-Runtime"]="node",Z["X-Stainless-Runtime-Version"]=(0,H.dt)(),Z["X-Stainless-Retry-Count"]="0",delete Z["X-Stainless-Os"];let I=h||l?` overrides=effort:${h??"-"},thinking:${l??"-"}`:"";n?.debug?.("CLAUDE",`identity=${r} sid=${a.slice(0,8)} dev=${b.slice(0,8)} acct=${c.slice(0,8)}${I}`)}let o=Z;delete ac._claudeCodeRequiresLowercaseToolNames;{let a=ac;if(Array.isArray(a?.messages)){let b=(0,F.$g)(a.messages),c="claude"===this.provider||(0,u.GK)(this.provider)?(0,F.$g)((0,F.A7)(b)):b,d=(0,F.W7)(c);a.messages=(0,F.ph)(d,this.provider)}}("claude"===this.provider||(0,u.GK)(this.provider))&&(0,x.PZ)(ac),("claude"===this.provider||(0,u.GK)(this.provider))&&t?.enabled&&!V&&((0,f.fm)(ac,{enabled:!0}),n?.debug?.("CONTEXT_EDITING","Delegated context editing on — attached clear_tool_uses to the Claude request"));let s=JSON.stringify(ac);if((0,h.IL)(this.provider)||"claude"===this.provider&&(i||k)){let a=(0,h.BI)(this.provider,Z,ac);o=a.headers,s=a.bodyString}((0,u.GK)(this.provider)||"claude"===this.provider)&&(s=await (0,w.jD)(s)),J(o,p);let y=E.OG(s);if(ac&&"object"==typeof ac&&y&&"object"==typeof y){let a=ac._toolNameMap;a instanceof Map&&a.size>0&&!(y._toolNameMap instanceof Map)&&Object.defineProperty(y,"_toolNameMap",{value:a,enumerable:!1,configurable:!0,writable:!0})}let C={method:"POST",headers:o,body:s},I=await c(v,C);if(I.status===d.gx.BAD_REQUEST&&t?.enabled&&!V&&ac&&"object"==typeof ac&&void 0!==ac.context_management){let a=await I.clone().text().catch(()=>"");if(/context[_-]management|context editing/i.test(a)){V=!0,delete ac.context_management;let a=JSON.stringify(ac);((0,u.GK)(this.provider)||"claude"===this.provider)&&(a=await (0,w.jD)(a)),n?.debug?.("CONTEXT_EDITING",`Upstream 400 rejected context_management on ${v} — retrying without it`),I=await c(v,{...C,body:a})}}if(I.status===d.gx.BAD_REQUEST&&ac&&"object"==typeof ac){let a=await I.clone().text().catch(()=>""),b=function(a){if("string"!=typeof a||!a)return null;for(let b of g)if(a.includes(b))return b;return null}(a);if(b&&!W.has(b)&&void 0!==ac[b]){W.add(b),delete ac[b];let a=JSON.stringify(ac);((0,u.GK)(this.provider)||"claude"===this.provider)&&(a=await (0,w.jD)(a)),n?.debug?.("FIELD_400",`Upstream 400 rejected ${b} on ${v} — retrying without it`),I=await c(v,{...C,body:a})}}if(!r&&I.status===d.gx.RATE_LIMITED&&(U[a]??0)<Q.RETRY_CONFIG.maxAttempts){U[a]=(U[a]??0)+1;let b=U[a];n?.debug?.("RETRY",`429 intra-retry ${b}/${Q.RETRY_CONFIG.maxAttempts} on ${v} — waiting ${Q.RETRY_CONFIG.delayMs}ms`),await new Promise(a=>setTimeout(a,Q.RETRY_CONFIG.delayMs)),a--;continue}if(401===I.status&&l.connectionId&&l.apiKey&&n?.warn?.("AUTH",`401 on ${v} - API key may be invalid`),!r&&this.shouldRetry(I.status,a)){n?.debug?.("RETRY",`${I.status} on ${v}, trying fallback ${a+1}`),S=I.status;continue}return{response:I,url:v,headers:o,transformedBody:y}}catch(c){let b=c instanceof Error?c:Error(String(c));if("TimeoutError"===b.name&&n?.warn?.("TIMEOUT",`Fetch timeout after ${this.getTimeoutMs()}ms on ${v}`),R=b,!r&&a+1<C){n?.debug?.("RETRY",`Error on ${v}, trying fallback ${a+1}`);continue}throw b}}throw R||Error(`All ${C} URLs failed with status ${S}`)}}},97594:(a,b,c)=>{c.d(b,{IE:()=>e,SN:()=>f,YX:()=>h,Z1:()=>g,Ze:()=>i});var d=c(62959);function e(a){return{...a,enabledCreditTypes:["GOOGLE_ONE_AI"]}}function f(a,b){return!(!b||(0,d.dY)(a))}function g(a){return(0,d.Ef)(a)}function h(){let a=(process.env.ANTIGRAVITY_CREDITS||"").trim().toLowerCase();return"always"===a||"retry"===a?a:"off"}function i(a,b){return!("always"!==b||(0,d.dY)(a))}},98026:(a,b,c)=>{c.d(b,{T:()=>s});var d=c(28064),e=c(61408),f=c(43659),g=c(97510),h=c(77598);let i=["EnableMcpServerWidgets","feature.EnableMcpServerWidgets","feature.EnableLuForChatCIQ","feature.enableChatCIQPlugin","EnableRequestPlugins","feature.EnableSensitivityLabels","EnableUnsupportedUrlDetector","feature.IsCustomEngineCopilotEnabled","feature.bizchatfluxv3","feature.enablechatpages","feature.enableCodeCanvas","feature.turnOnDARecommendation","feature.IsStreamingModeInChatRequestEnabled","IncludeSourceAttributionsConcise","SkipPublishEmptyMessage","feature.EnableDeduplicatingSourceAttributions","Enable3PActionProgressMessages","feature.enableClientWebRtc","feature.EnableMeetingRecapOfSeriesMeetingWithCiq","feature.cwcfluxv3fe","feature.cwcfluxv3fem","feature.EnableReferencesListCompleteSignal","feature.StorageMessageSplitDisabled","feature.EnableCuaTakeControlApi","SingletonEnvOn","EnableComposeWidget","feature.cwcallowedos","feature.EnableMergingPureDeltas","feature.disabledisallowedmsgs","feature.enableCitationsForSynthesisData","feature.EnableConversationShareApis","feature.enableGenerateGraphicArtOptionsSet","cdximagen","feature.EnableUpdatedUXForConfirmationDialog","feature.EnableContentApiandDocTypeHtmlInRichAnswers","cdxgrounding_api_v2_rich_web_answers_reference_bottom_force","cdxenablerenderforisocomp","feature.EnableClientFileURLSupportForOfficeWebPaidCopilot","feature.EnableDesignEditorImageGrounding","feature.EnableDesignerEditor","feature.EnableSkipRehydrationForSpeCIdImages","feature.EnablePersonalizationForMSA","agt_bizchat_enableRichResponses","feature.EnableBase64DataInMessageAnnotations","feature.EnableSkipEmittingMessageOnFlush","feature.EnableRemoveEmptySourceAttributions","feature.EnableRemoveStreamingMode"];function j(a){return a.replace(/access_token=[^&]*/i,"access_token=REDACTED")}let k={protocol:"json",version:1},l={type:6},m=["Chat","Suggestion","InternalSearchQuery","Disengaged","InternalLoaderMessage","Progress","GeneratedCode","RenderCardRequest","AdsQuery","SemanticSerp","GenerateContentQuery"],n=["search_result_progress_messages_with_search_queries","update_textdoc_response_after_streaming","deepleo_networking_timeout_10minutes_canmore","cwc_flux_image","cwc_code_interpreter","cwc_code_interpreter_amsfix","enable_msa_user","cwcgptv","flux_v3_gptv_enable_upload_multi_image_in_turn_wo_ch","gptvnorm2048","pdnascan","cwc_code_interpreter_citation_fix","code_interpreter_interactive_charts","cwc_code_interpreter_interactive_charts_inline_image","code_interpreter_matplotlib_patching","cwc_fileupload_odb","update_memory_plugin","add_custom_instructions","cwc_flux_v3","flux_v3_progress_messages","enable_batch_token_processing","enable_gg_gpt","flux_v3_image_gen_enable_non_watermarked_storage","flux_v3_image_gen_enable_story","rich_responses"];function o(a){return JSON.stringify(a)+"\x1e"}let p=d.default;function q(a,b,c=null){return`data: ${JSON.stringify({id:`chatcmpl-copilot-m365-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,delta:b,finish_reason:c}]})}
|
|
469
469
|
|
|
470
470
|
`}function r(a,b=502){return new Response(JSON.stringify({error:{message:a}}),{status:b,headers:{"Content-Type":"application/json"}})}class s extends g.Hv{constructor(){super("copilot-m365-web",{id:"copilot-m365-web",baseUrl:"wss://substrate.office.com"})}async wsChat(a){return new ReadableStream({start:async b=>{let c=new TextEncoder,d=null,g=!1,h="",i="",j=!1,r=()=>{if(d){try{d.close()}catch{}d=null}},s=()=>{g||(g=!0,r(),b.enqueue(c.encode(q(a.model,{},"stop"))),b.enqueue(c.encode("data: [DONE]\n\n")),b.close())},t=a=>{if(g)return;g=!0,r();let d=(0,f.sanitizeErrorMessage)(a);b.enqueue(c.encode(`data: ${JSON.stringify({error:{message:d}})}
|
|
471
471
|
|
|
472
472
|
`)),b.close()};a.signal?.addEventListener("abort",()=>t("Request aborted"),{once:!0});let u=setTimeout(()=>t("Microsoft 365 Copilot WebSocket timeout"),e.MT);try{let e=new URL(a.wsUrl),r=e.searchParams.get("clientrequestid")??crypto.randomUUID().replace(/-/g,""),v=e.searchParams.get("X-SessionId")??crypto.randomUUID();d=new p(a.wsUrl,{headers:{Origin:"https://m365.cloud.microsoft","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}});let w=()=>{var b;d?.send(o(l)),d?.send(o((b={text:a.prompt,traceId:r,sessionId:v,isStartOfSession:!0},{type:4,target:"chat",invocationId:"0",arguments:[{source:"officeweb",clientCorrelationId:b.traceId,sessionId:b.sessionId,optionsSets:b.optionsSets??[...n],streamingMode:"ConciseWithPadding",spokenTextMode:"None",options:{},extraExtensionParameters:{},allowedMessageTypes:[...m],sliceIds:[],threadLevelGptId:{},traceId:b.traceId,isStartOfSession:b.isStartOfSession??!0,clientInfo:{},message:{author:"user",inputMethod:"Keyboard",text:b.text,messageType:"Chat"},plugins:[],isSbsSupported:!1,tone:b.tone??"",renderReferencesBehindEOS:!0,disconnectBehavior:""}]})))};d.on("open",()=>{d?.send(o(k))}),d.on("message",d=>{let e,f;if(g)return;h+=d.toString();let k=(f=(e=h.split("\x1e")).pop()??"",{frames:e.filter(a=>a.length>0),rest:f});for(let d of(h=k.rest,k.frames)){var l;let e=function(a){let b=a.trim();if(!b)return null;try{let a=JSON.parse(b);return a&&"object"==typeof a&&!Array.isArray(a)?a:null}catch{return null}}(d);if(!j){let a=function(a){if(!a)return null;let b=a.error;return"string"==typeof b&&b.length>0?b:null}(e);if(a){clearTimeout(u),t(`Microsoft 365 Copilot handshake failed: ${a}`);return}j=!0,w();continue}let f=function(a){if(!(a&&1===a.type&&"update"===a.target))return null;let b=a.arguments,c=Array.isArray(b)?b[0]:void 0,d=c?.messages;if(!Array.isArray(d))return null;for(let a=d.length-1;a>=0;a--){let b=d[a];if(!b)continue;let c=b.author,e=b.text;if("Progress"!==b.messageType&&"EarlyProgress"!==b.contentType&&("bot"===c||void 0===c)&&"string"==typeof e&&e.length>0)return e}return null}(e);if(f){let d=(l=i,f&&f!==l?f.startsWith(l)?f.slice(l.length):f:"");i=f,d&&b.enqueue(c.encode(q(a.model,{content:d})))}if(e&&3===e.type){clearTimeout(u),s();return}}}),d.on("error",a=>{clearTimeout(u),t((0,f.sanitizeErrorMessage)(a instanceof Error?a.message:"Microsoft 365 Copilot WebSocket error"))}),d.on("close",()=>{clearTimeout(u),s()})}catch(a){clearTimeout(u),t((0,f.sanitizeErrorMessage)(a instanceof Error?a.message:"Failed to connect to Microsoft 365 Copilot"))}}},{highWaterMark:16384})}async execute(a){let b,c,d=a.body,e=a.model||d?.model||"copilot-m365",g=!1!==a.stream,k=(function(a){let b=a?.messages||[],c=b.filter(a=>"system"===a.role),d=b.filter(a=>"user"===a.role).pop(),e="string"==typeof d?.content?d.content:JSON.stringify(d?.content??""),f="";if(c.length>0){let a=c.map(a=>"string"==typeof a.content?a.content:"").filter(Boolean).join("\n");a&&(f+=`[System Instructions]
|
|
473
473
|
${a}
|
|
474
474
|
|
|
475
|
-
`)}return f+e})(d).trim();if(!k)return{response:r("No user message provided",400),url:"wss://substrate.office.com/m365Copilot/Chathub",headers:{},transformedBody:null};let l=function(a){let b=a?.providerSpecificData??{},c="string"==typeof a?.apiKey?function(a){let b=a.trim(),c={};for(let a of b.split(/[;\n]/)){let b=a.indexOf("=");if(b<=0)continue;let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();d&&e&&(c[d]=e)}if(/^wss:\/\/substrate\.office\.com\/m365Copilot\/Chathub\//i.test(b))try{let a=new URL(b);c.access_token||=a.searchParams.get("access_token")||"",c.chathubPath||=decodeURIComponent(a.pathname.split("/m365Copilot/Chathub/")[1]||"")}catch{}return{accessToken:c.access_token||c.accessToken,chathubPath:c.chathubPath||c.userTenant}}(a.apiKey):{},d=c.accessToken||"string"==typeof a?.apiKey&&a.apiKey&&!a.apiKey.includes("access_token=")&&a.apiKey||"string"==typeof b.accessToken&&b.accessToken||"string"==typeof b.access_token&&b.access_token||"";if(!d)return{error:"Missing M365 Copilot access_token. Paste it as the provider credential."};let e=c.chathubPath||"string"==typeof b.chathubPath&&b.chathubPath||"string"==typeof b.userTenant&&b.userTenant||"";return e&&e.includes("@")?{host:"string"==typeof b.host&&b.host||"substrate.office.com",chathubPath:e,accessToken:d,variants:"string"==typeof b.variants&&b.variants?b.variants:void 0}:{error:"Missing M365 Chathub path. Paste the '<user-oid>@<tenant-id>' segment from the WebSocket URL."}}(a.credentials);if("error"in l)return{response:r(l.error,400),url:"wss://substrate.office.com/m365Copilot/Chathub",headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}};let m=(c=new URLSearchParams({chatsessionid:b=(0,h.randomBytes)(16).toString("hex"),XRoutingParameterSessionKey:b,clientrequestid:b,"X-SessionId":(0,h.randomUUID)(),ConversationId:(0,h.randomUUID)(),access_token:l.accessToken,variants:l.variants??i.join(","),source:"officeweb",product:"Office",agentHost:"Bizchat.FullScreen",licenseType:"Starter",isEdu:"false",agent:"web",scenario:"OfficeWebPaidConsumerCopilot"}),`wss://${l.host}/m365Copilot/Chathub/${l.chathubPath}?${c.toString()}`);try{let b=await this.wsChat({wsUrl:m,prompt:k,model:e,signal:a.signal??void 0});if(g)return{response:new Response(b,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:j(m),headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}};let c=b.getReader(),d=new TextDecoder,f="";for(;;){let{done:a,value:b}=await c.read();if(a)break;for(let a of d.decode(b,{stream:!0}).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if(b&&"[DONE]"!==b)try{let a=JSON.parse(b),c=a.choices?.[0]?.delta?.content;"string"==typeof c&&(f+=c)}catch{}}}return{response:new Response(JSON.stringify({id:`chatcmpl-copilot-m365-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:e,choices:[{index:0,message:{role:"assistant",content:f||"(empty response)"},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{headers:{"Content-Type":"application/json"}}),url:j(m),headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}}}catch(a){return{response:r((0,f.sanitizeErrorMessage)(a instanceof Error?a.message:"Microsoft 365 Copilot executor error")),url:j(m),headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}}}}}},98185:(a,b,c)=>{
|
|
475
|
+
`)}return f+e})(d).trim();if(!k)return{response:r("No user message provided",400),url:"wss://substrate.office.com/m365Copilot/Chathub",headers:{},transformedBody:null};let l=function(a){let b=a?.providerSpecificData??{},c="string"==typeof a?.apiKey?function(a){let b=a.trim(),c={};for(let a of b.split(/[;\n]/)){let b=a.indexOf("=");if(b<=0)continue;let d=a.slice(0,b).trim(),e=a.slice(b+1).trim();d&&e&&(c[d]=e)}if(/^wss:\/\/substrate\.office\.com\/m365Copilot\/Chathub\//i.test(b))try{let a=new URL(b);c.access_token||=a.searchParams.get("access_token")||"",c.chathubPath||=decodeURIComponent(a.pathname.split("/m365Copilot/Chathub/")[1]||"")}catch{}return{accessToken:c.access_token||c.accessToken,chathubPath:c.chathubPath||c.userTenant}}(a.apiKey):{},d=c.accessToken||"string"==typeof a?.apiKey&&a.apiKey&&!a.apiKey.includes("access_token=")&&a.apiKey||"string"==typeof b.accessToken&&b.accessToken||"string"==typeof b.access_token&&b.access_token||"";if(!d)return{error:"Missing M365 Copilot access_token. Paste it as the provider credential."};let e=c.chathubPath||"string"==typeof b.chathubPath&&b.chathubPath||"string"==typeof b.userTenant&&b.userTenant||"";return e&&e.includes("@")?{host:"string"==typeof b.host&&b.host||"substrate.office.com",chathubPath:e,accessToken:d,variants:"string"==typeof b.variants&&b.variants?b.variants:void 0}:{error:"Missing M365 Chathub path. Paste the '<user-oid>@<tenant-id>' segment from the WebSocket URL."}}(a.credentials);if("error"in l)return{response:r(l.error,400),url:"wss://substrate.office.com/m365Copilot/Chathub",headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}};let m=(c=new URLSearchParams({chatsessionid:b=(0,h.randomBytes)(16).toString("hex"),XRoutingParameterSessionKey:b,clientrequestid:b,"X-SessionId":(0,h.randomUUID)(),ConversationId:(0,h.randomUUID)(),access_token:l.accessToken,variants:l.variants??i.join(","),source:"officeweb",product:"Office",agentHost:"Bizchat.FullScreen",licenseType:"Starter",isEdu:"false",agent:"web",scenario:"OfficeWebPaidConsumerCopilot"}),`wss://${l.host}/m365Copilot/Chathub/${l.chathubPath}?${c.toString()}`);try{let b=await this.wsChat({wsUrl:m,prompt:k,model:e,signal:a.signal??void 0});if(g)return{response:new Response(b,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:j(m),headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}};let c=b.getReader(),d=new TextDecoder,f="";for(;;){let{done:a,value:b}=await c.read();if(a)break;for(let a of d.decode(b,{stream:!0}).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if(b&&"[DONE]"!==b)try{let a=JSON.parse(b),c=a.choices?.[0]?.delta?.content;"string"==typeof c&&(f+=c)}catch{}}}return{response:new Response(JSON.stringify({id:`chatcmpl-copilot-m365-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:e,choices:[{index:0,message:{role:"assistant",content:f||"(empty response)"},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}),{headers:{"Content-Type":"application/json"}}),url:j(m),headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}}}catch(a){return{response:r((0,f.sanitizeErrorMessage)(a instanceof Error?a.message:"Microsoft 365 Copilot executor error")),url:j(m),headers:{},transformedBody:{model:e,prompt:k.slice(0,100)}}}}}},98185:(a,b,c)=>{c.d(b,{yx:()=>o});var d=c(97510),e=c(61408),f=c(77598),g=c(43659);let h="https://copilot.microsoft.com",i=`${h}/c/api/start`,j="wss://copilot.microsoft.com/c/api/chat?api-version=2",k={copilot:"chat","copilot-chat":"chat","gpt-4o":"chat","gpt-4":"chat","copilot-think":"reasoning","copilot-think-deeper":"reasoning",o1:"reasoning",o3:"reasoning","copilot-smart":"smart","copilot-gpt5":"smart","gpt-5":"smart","copilot-study":"chat"},l="chat",m=new Map,n=0;class o extends d.Hv{constructor(){super("copilot-web",{id:"copilot-web",baseUrl:i})}async getSession(a,b){let c=a&&a.length>0?a:"anonymous",d=m.get(c);if(d&&!d.isBlocked&&d.remainingTurns>5&&Date.now()-d.createdAt<36e5)return d;n>=1e3&&(n=0);let e=await this.createSession(a,b);return m.size>=100&&m.delete(m.keys().next().value),m.set(c,e),n++,e}async createSession(a,b){let c={"Content-Type":"application/json","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",Origin:h,Referer:`${h}/`};a&&(c.Authorization=`Bearer ${a}`);let d=await fetch(i,{method:"POST",headers:c,body:JSON.stringify({timeZone:"America/New_York",startNewConversation:!0,teenSupportEnabled:!1}),signal:b});if(!d.ok){let a=await d.text().catch(()=>"");throw Error(`Copilot /c/api/start failed (${d.status}): ${a.slice(0,200)}`)}let e=await d.json(),f=e.currentConversationId||e.conversationId;if(!f)throw Error("Copilot /c/api/start returned no conversationId");return{conversationId:f,cookies:d.headers.getSetCookie().map(a=>a.split(";")[0]).join("; "),remainingTurns:e.remainingTurns??1e3,isBlocked:e.isBlocked??!1,createdAt:Date.now()}}async wsChat(a,b,d,g,h){let i=`${j}&clientSessionId=${crypto.randomUUID()}`;return new ReadableStream({start:async j=>{let k=new TextEncoder,l=null,m=!1,n=()=>{if(l){try{l.close()}catch{}l=null}},o=()=>{m||(m=!0,n(),j.enqueue(k.encode("data: [DONE]\n\n")),j.close())},p=a=>{m||(m=!0,n(),a&&j.enqueue(k.encode(`data: ${JSON.stringify({error:{message:a}})}
|
|
476
476
|
|
|
477
477
|
`)),j.close())};h?.addEventListener("abort",()=>p("Request aborted"),{once:!0});try{let h=globalThis.WebSocket;!h&&(h=(await Promise.resolve().then(c.bind(c,28064))).default,g&&(l=new h(i,{headers:{Authorization:`Bearer ${g}`}}))),l||(l=new h(i));let m=setTimeout(()=>p("Copilot WebSocket timeout"),e.MT),n=!1,q=()=>{n||(n=!0,l.send(JSON.stringify({event:"send",conversationId:a,content:[{type:"text",text:b}],mode:d})))};l.onopen=()=>{q()},l.onmessage=a=>{try{let b="string"==typeof a.data?JSON.parse(a.data):JSON.parse(String(a.data));switch(b.event){case"challenge":if("hashcash"===b.method&&b.parameter){let a=String(b.parameter).split(":"),c=a[0],d=parseInt(a[1]||"1",10),e=function(a,b){if(!Number.isInteger(b)||b<1||b>8)return null;let c="0".repeat(b);for(let b=0;b<1e7;b++)if((0,f.createHash)("sha256").update(`${a}:${b}`).digest("hex").startsWith(c))return b;return null}(c,d);l.send(JSON.stringify({event:"challengeResponse",token:null!==e?String(e):"",method:"hashcash"})),n=!1,q()}else"cloudflare"===b.method?p("Copilot requires Cloudflare Turnstile verification. Use an authenticated session (access_token) instead."):p(`Copilot challenge "${b.method}" not supported. Use an authenticated session.`);break;case"appendText":if(b.text){let a={id:`chatcmpl-copilot-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:"copilot",choices:[{index:0,delta:{content:b.text},finish_reason:null}]};j.enqueue(k.encode(`data: ${JSON.stringify(a)}
|
|
478
478
|
|
|
@@ -494,11 +494,11 @@ ${b.suggestions.map(a=>`- ${a}`).join("\n")}`},finish_reason:null}]};j.enqueue(k
|
|
|
494
494
|
`)),o();break}case"error":clearTimeout(m),p(b.error||"Copilot stream error")}}catch{}},l.onerror=a=>{clearTimeout(m);let b=a.message||"Copilot WebSocket error";p(b)},l.onclose=()=>{clearTimeout(m),o()}}catch(a){p(a instanceof Error?a.message:"Failed to connect to Copilot")}}},{highWaterMark:16384})}async execute(a){let b,{credentials:c,signal:d,model:e,stream:f}=a,h=a.body,m=e||h?.model||"copilot",n=m&&k[m.toLowerCase()]||l,o=function(a){if(!a)return null;if(a.startsWith("ey")||a.length>100)return a;let b=a.match(/access_token=([^;]+)/);if(b)return b[1];let c=a.match(/[Bb]earer\s+(.+)/);return c?c[1]:a}(c?.apiKey||c?.providerSpecificData?.cookie||""),p=h?.messages||[],q=p.filter(a=>"user"===a.role).pop(),r=p.filter(a=>"system"===a.role),s=q?.content||"";if(!s||"string"==typeof s&&!s.trim())return{response:new Response(JSON.stringify({error:{message:"No user message provided"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:i,headers:{},transformedBody:null};let t="";if(r.length>0){let a=r.map(a=>"string"==typeof a.content?a.content:"").filter(Boolean).join("\n");a&&(t+=`[System Instructions]
|
|
495
495
|
${a}
|
|
496
496
|
|
|
497
|
-
`)}t+="string"==typeof s?s:JSON.stringify(s);try{let a=await this.getSession(o||void 0,d);b=a.conversationId,a.cookies}catch(a){return{response:new Response(JSON.stringify({error:{message:(0,g.sanitizeErrorMessage)(a instanceof Error?a.message:"Failed to start Copilot conversation")}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:o?{Authorization:`Bearer ${o.slice(0,20)}...`}:{},transformedBody:{conversationId:null,mode:n,prompt:t.slice(0,100)}}}if(!1===f)try{let a=(await this.wsChat(b,t,n,o||void 0,d)).getReader(),c=new TextDecoder,e="";for(;;){let{done:b,value:d}=await a.read();if(b)break;for(let a of c.decode(d,{stream:!0}).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if("[DONE]"!==b)try{let a=JSON.parse(b),c=a.choices?.[0]?.delta;c?.content&&(e+=c.content),c?.reasoning_content&&c.reasoning_content}catch{}}}let f={id:`chatcmpl-copilot-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,message:{role:"assistant",content:e||"(empty response)"},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(f),{headers:{"Content-Type":"application/json"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n,prompt:t.slice(0,100)}}}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Copilot non-streaming error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n}}}try{let a=await this.wsChat(b,t,n,o||void 0,d);return{response:new Response(a,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n,prompt:t.slice(0,100)}}}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Copilot streaming error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n}}}}}},98492:(a,b,c)=>{
|
|
497
|
+
`)}t+="string"==typeof s?s:JSON.stringify(s);try{let a=await this.getSession(o||void 0,d);b=a.conversationId,a.cookies}catch(a){return{response:new Response(JSON.stringify({error:{message:(0,g.sanitizeErrorMessage)(a instanceof Error?a.message:"Failed to start Copilot conversation")}}),{status:502,headers:{"Content-Type":"application/json"}}),url:i,headers:o?{Authorization:`Bearer ${o.slice(0,20)}...`}:{},transformedBody:{conversationId:null,mode:n,prompt:t.slice(0,100)}}}if(!1===f)try{let a=(await this.wsChat(b,t,n,o||void 0,d)).getReader(),c=new TextDecoder,e="";for(;;){let{done:b,value:d}=await a.read();if(b)break;for(let a of c.decode(d,{stream:!0}).split("\n")){if(!a.startsWith("data: "))continue;let b=a.slice(6).trim();if("[DONE]"!==b)try{let a=JSON.parse(b),c=a.choices?.[0]?.delta;c?.content&&(e+=c.content),c?.reasoning_content&&c.reasoning_content}catch{}}}let f={id:`chatcmpl-copilot-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:m,choices:[{index:0,message:{role:"assistant",content:e||"(empty response)"},finish_reason:"stop"}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}};return{response:new Response(JSON.stringify(f),{headers:{"Content-Type":"application/json"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n,prompt:t.slice(0,100)}}}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Copilot non-streaming error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n}}}try{let a=await this.wsChat(b,t,n,o||void 0,d);return{response:new Response(a,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n,prompt:t.slice(0,100)}}}catch(a){return{response:new Response(JSON.stringify({error:{message:a instanceof Error?a.message:"Copilot streaming error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:j,headers:{},transformedBody:{conversationId:b,mode:n}}}}}},98492:(a,b,c)=>{c.d(b,{d:()=>h});var d=c(97510),e=c(43659);let f="https://gemini.google.com/app";function g(a,b,c=null){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:a?{content:a}:{},finish_reason:c}]}}class h extends d.Hv{constructor(){super("gemini-web",{id:"gemini-web",baseUrl:f})}async execute(a){let{model:b,body:d,stream:h,credentials:i,signal:j}=a,k=i.apiKey||"";if(!k)return{response:new Response(JSON.stringify({error:"Missing Gemini cookies"}),{status:401,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d};let l=(d.messages||[]).filter(a=>"user"===a.role).pop(),m=l?.content||"";if(!m)return{response:new Response(JSON.stringify({error:"No user message found"}),{status:400,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d};let n=null,o=null;try{if(j?.aborted)throw j.reason instanceof Error?j.reason:Error("Request aborted");let{chromium:a}=await Promise.resolve().then(c.bind(c,83237));n=await a.launch({headless:!0}),o=()=>{n?.close().catch(()=>{})},j?.addEventListener("abort",o,{once:!0});let e=await n.newContext({userAgent:"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"}),i=k.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{let b=a.indexOf("=");if(-1===b)return null;let c=a.substring(0,b).trim(),d=a.substring(b+1).trim();return!c||!d||["path","domain","expires","max-age","secure","httponly","samesite"].includes(c.toLowerCase())?null:{name:c,value:d}}).filter(Boolean);await e.addCookies(i.map(({name:a,value:b})=>({name:a,value:b,domain:".google.com",path:"/",secure:!0})));let l=await e.newPage(),p="",q=!1,r=new Promise(a=>{l.on("response",async b=>{if(!q&&b.url().includes("StreamGenerate")){q=!0;try{let a=await b.text();p=function(a){for(let b of a.split("\n"))if(!(!b.trim()||")]}'"===b.trim()||/^\d+$/.test(b.trim())))try{let a=JSON.parse(b);if(!Array.isArray(a)||!a[0]||"wrb.fr"!==a[0][0])continue;let c=a[0]?.[2];if("string"!=typeof c)continue;let d=JSON.parse(c),e=d?.[4]?.[0]?.[1];if(!Array.isArray(e))continue;let f=e.filter(a=>"string"==typeof a).join("");if(f)return f}catch{}return""}(a)}catch{}a()}})});if(await l.goto(f,{waitUntil:"domcontentloaded",timeout:2e4}),j?.aborted)throw j.reason instanceof Error?j.reason:Error("Request aborted");await l.waitForTimeout(3e3);let s=await l.waitForSelector(".ql-editor, [contenteditable='true']",{timeout:1e4});if(await s.click(),await l.keyboard.type(m,{delay:10}),await l.waitForTimeout(300),await l.keyboard.press("Enter"),await Promise.race([r,l.waitForTimeout(3e4)]),j?.aborted)throw j.reason instanceof Error?j.reason:Error("Request aborted");if(!p)return{response:new Response(JSON.stringify({error:"No response from Gemini"}),{status:502,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d};let t=b||"gemini-2.5-pro";if(h){let a=new TextEncoder,b=new ReadableStream({start(b){b.enqueue(a.encode(`data: ${JSON.stringify(g(p,t))}
|
|
498
498
|
|
|
499
499
|
`)),b.enqueue(a.encode(`data: ${JSON.stringify(g("",t,"stop"))}
|
|
500
500
|
|
|
501
|
-
`)),b.enqueue(a.encode("data: [DONE]\n\n")),b.close()}},{highWaterMark:16384});return{response:new Response(b,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:f,headers:{},transformedBody:d}}return{response:new Response(JSON.stringify(function(a,b,c="stop"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:{role:"assistant",content:a},finish_reason:c}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}(p,t)),{status:200,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d}}catch(b){let a=b instanceof Error?b.message:"Unknown error";if(a&&/executable doesn't exist|executablenotfound|playwright install|chromium.*download/i.test(a))return{response:new Response(JSON.stringify({error:"Gemini Web requires the Playwright Chromium browser, which is not installed. Run `npx playwright install chromium` on the host (or rebuild the Docker image with browsers)."}),{status:503,headers:{"Content-Type":"application/json","X-Omni-Fallback-Hint":"connection_cooldown"}}),url:f,headers:{},transformedBody:d};return{response:new Response(JSON.stringify({error:(0,e.sanitizeErrorMessage)(a)}),{status:500,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d}}finally{if(o&&j?.removeEventListener("abort",o),n)try{await n.close()}catch{}}}}},98946:(a,b,c)=>{"use strict";c.d(b,{fD:()=>v,sG:()=>w,lJ:()=>y,bm:()=>x,b3:()=>J,v4:()=>G,TM:()=>N,UF:()=>L,mK:()=>K,N_:()=>H,vK:()=>O,O8:()=>E,o_:()=>I,Xo:()=>F,D3:()=>M,Ex:()=>P,C4:()=>Q,gB:()=>z,FA:()=>S,H9:()=>u});var d=c(38522),e=c.n(d),f=c(77598),g=c.n(f);function h(a){let b="bigint"==typeof a?a:BigInt(a),c=[];for(;b>127n;)c.push(128|Number(127n&b)),b>>=7n;return c.push(Number(b)),Buffer.from(c)}function i(a,b){return h(a<<3|b)}function j(a,b){let c=Buffer.isBuffer(b)?b:Buffer.from(b);return Buffer.concat([i(a,2),h(c.length),c])}function k(a,b){return j(a,Buffer.from(b,"utf8"))}function l(a,b){let c=Buffer.concat(b);return Buffer.concat([i(a,2),h(c.length),c])}function m(a,b){return Buffer.concat([i(a,0),h(b)])}function n(a,b){let c=0n,d=0n,e=b;for(;e<a.length;){let b=a[e++];if(c|=BigInt(127&b)<<d,(128&b)==0)return[c,e];d+=7n}throw Error("varint truncated")}function o(a,b,c){if(a<0n||a>BigInt(c.length-b))throw Error(`length-delimited field overruns buffer (len=${a}, remaining=${c.length-b})`);return Number(a)}function p(a){let b=[],c=0;for(;c<a.length;){let[d,e]=n(a,c);c=e;let f=Number(d>>3n),g=Number(7n&d);if(0===g){let[d,e]=n(a,c);c=e,b.push({fieldNumber:f,wireType:0,varint:d})}else if(2===g){let[d,e]=n(a,c),g=o(d,c=e,a);b.push({fieldNumber:f,wireType:2,bytes:a.subarray(c,c+g)}),c+=g}else if(5===g)c+=4;else if(1===g)c+=8;else throw Error(`unsupported wireType ${g}`)}return b}function q(a,b){return a.find(a=>a.fieldNumber===b)}function r(a,b){let c=q(p(a),b);return c&&2===c.wireType?c.bytes.toString("utf8"):""}function s(a,b=!1){let c=b?e().gzipSync(a):a,d=Buffer.alloc(5);return d[0]=+!!b,d.writeUInt32BE(c.length,1),Buffer.concat([d,c])}let t={"":"composer-2.5","composer-2-5":"composer-2.5","composer-2.5-sdk":"composer-2.5","composer-latest":"composer-2.5","composer-2-5-fast":"composer-2.5-fast","composer-2.5-sdk-fast":"composer-2.5-fast","composer-latest-fast":"composer-2.5-fast"};function u(a){return a.map(a=>{let b=a.function?.parameters??{type:"object",properties:{}};return{name:a.function.name,description:a.function.description??"",inputSchemaBytes:function a(b){if(null==b)return Buffer.concat([i(1,0),h(0)]);if("number"==typeof b){let a;return(a=Buffer.alloc(8)).writeDoubleLE(b,0),Buffer.concat([i(2,1),a])}if("string"==typeof b)return k(3,b);if("boolean"==typeof b)return Buffer.concat([i(4,0),h(+!!b)]);if(Array.isArray(b)){let c=b.map(b=>l(1,[a(b)]));return l(6,c)}if("object"==typeof b){let c=[];for(let[d,e]of Object.entries(b)){let b=Buffer.concat([k(1,d),l(2,[a(e)])]);c.push(l(1,[b]))}return l(5,c)}return Buffer.concat([i(1,0),h(0)])}(b),providerIdentifier:"omniroute",toolName:a.function.name}})}function v(a){return s(function(a){let b,c,d=a.conversationId||g().randomUUID(),e=a.messageId||g().randomUUID(),{modelId:f,parameters:n}="auto"===(c=t[(b=(a.modelId??"").trim()).toLowerCase()]??b)?{modelId:"default",parameters:[]}:c.startsWith("composer-")&&c.endsWith("-fast")?{modelId:c.slice(0,-5),parameters:[{id:"fast",value:"true"}]}:{modelId:c,parameters:[]},o=[];if(a.images&&a.images.length>0)for(let b of a.images)o.push(l(1,[function(a){let b=[k(2,a.uuid)];return"number"==typeof a.width&&"number"==typeof a.height&&Number.isFinite(a.width)&&Number.isFinite(a.height)&&a.width>0&&a.height>0&&b.push(l(4,[m(1,Math.floor(a.width)),m(2,Math.floor(a.height))])),a.mimeType&&b.push(k(7,a.mimeType)),b.push(j(8,a.data)),Buffer.concat(b)}(b)]));let p=l(1,[k(1,a.userText),k(2,e),l(3,o),Buffer.concat([i(4,0),h(1)])]),q=l(1,[p]),r=l(2,[q]),s=[];if(a.systemPrompt&&a.blobStore){let b=JSON.stringify({role:"system",content:a.systemPrompt}),c=Buffer.from(b,"utf8"),d=g().createHash("sha256").update(c).digest();a.blobStore.set(d.toString("hex"),c),s.push(j(1,d))}let v=l(1,s),w=[k(1,f)];for(let a of n)w.push(l(3,[k(1,a.id),k(2,a.value)]));let x=l(9,w),y=[v,r,l(3,[k(1,f),k(3,f),k(4,f)]),l(4,(a.tools?u(a.tools):[]).map(a=>l(1,[R(a)]))),k(5,d),x,Buffer.concat([i(12,0),h(0)]),k(16,d)];return l(1,y)}(a))}function w(a){let b=[];for(let c of p(a)){if(4===c.fieldNumber&&2===c.wireType){b.push({kind:"kv_server_message"});continue}if(1===c.fieldNumber&&2===c.wireType){for(let a of p(c.bytes))if(2===a.wireType||0===a.wireType)switch(a.fieldNumber){case 1:2===a.wireType&&b.push({kind:"text",text:r(a.bytes,1)});break;case 4:2===a.wireType&&b.push({kind:"thinking",text:r(a.bytes,1)});break;case 5:b.push({kind:"thinking_complete"});break;case 2:b.push({kind:"tool_call_started"});break;case 3:b.push({kind:"tool_call_completed"});break;case 8:2===a.wireType&&b.push({kind:"token_delta",tokens:function(a){let b=q(p(a),1);return b&&0===b.wireType?Number(b.varint):0}(a.bytes)});break;case 13:b.push({kind:"heartbeat"});break;case 14:b.push({kind:"turn_ended"});break;default:b.push({kind:"unknown",field:a.fieldNumber})}}}return b}function x(a){for(let b of p(a)){if(4!==b.fieldNumber||2!==b.wireType)continue;let a=0,c=null,d=null,e=null;for(let f of p(b.bytes))1===f.fieldNumber&&0===f.wireType?a=Number(f.varint):2===f.fieldNumber&&2===f.wireType?c=f.bytes:3===f.fieldNumber&&2===f.wireType?d=f.bytes:4===f.fieldNumber&&2===f.wireType&&(e=f.bytes);if(c){let b=Buffer.alloc(0);for(let a of p(c))1===a.fieldNumber&&2===a.wireType&&(b=a.bytes);return{kind:"kv_get_blob",kvId:a,blobId:b,requestMetadata:e}}if(d){let b=Buffer.alloc(0),c=Buffer.alloc(0);for(let a of p(d))1===a.fieldNumber&&2===a.wireType?b=a.bytes:2===a.fieldNumber&&2===a.wireType&&(c=a.bytes);return{kind:"kv_set_blob",kvId:a,blobId:b,blobData:c,requestMetadata:e}}}return null}function y(a){for(let b of p(a)){if(2!==b.fieldNumber||2!==b.wireType)continue;let a=0,c="",d=0,e=null;for(let f of p(b.bytes))1===f.fieldNumber&&0===f.wireType?a=Number(f.varint):15===f.fieldNumber&&2===f.wireType?c=f.bytes.toString("utf8"):2===f.wireType&&0===d&&(d=f.fieldNumber,e=f.bytes);if(null!==e)switch(d){case 10:return{kind:"exec_request_context",execMsgId:a,execId:c};case 7:return{kind:"exec_read",execMsgId:a,execId:c,path:r(e,1)};case 3:return{kind:"exec_write",execMsgId:a,execId:c,path:r(e,1)};case 4:return{kind:"exec_delete",execMsgId:a,execId:c,path:r(e,1)};case 8:return{kind:"exec_ls",execMsgId:a,execId:c,path:r(e,1)};case 5:return{kind:"exec_grep",execMsgId:a,execId:c};case 9:return{kind:"exec_diagnostics",execMsgId:a,execId:c};case 2:return{kind:"exec_shell",execMsgId:a,execId:c,command:r(e,1),workingDir:r(e,2)};case 14:return{kind:"exec_shell_stream",execMsgId:a,execId:c,command:r(e,1),workingDir:r(e,2)};case 16:return{kind:"exec_bg_shell",execMsgId:a,execId:c,command:r(e,1),workingDir:r(e,2)};case 20:return{kind:"exec_fetch",execMsgId:a,execId:c,url:r(e,1)};case 23:return{kind:"exec_write_shell_stdin",execMsgId:a,execId:c};case 11:{let b="",d="",f={};for(let a of p(e))if(2===a.wireType)if(5===a.fieldNumber)b=a.bytes.toString("utf8");else if(1!==a.fieldNumber||b){if(3===a.fieldNumber)d=a.bytes.toString("utf8");else if(2===a.fieldNumber){let b="",c=null;for(let d of p(a.bytes))1===d.fieldNumber&&2===d.wireType?b=d.bytes.toString("utf8"):2===d.fieldNumber&&2===d.wireType&&(c=d.bytes);b&&null!==c&&(f[b]=function a(b){let c=0;for(;c<b.length;){let[d,e]=n(b,c);c=e;let f=Number(d>>3n),g=Number(7n&d);switch(f){case 1:return 0===g&&([,c]=n(b,c)),null;case 2:if(1===g&&c+8<=b.length){let a=b.readDoubleLE(c);return c+=8,a}return 0;case 3:if(2===g){let[a,d]=n(b,c),e=o(a,c=d,b),f=b.subarray(c,c+e).toString("utf8");return c+=e,f}return"";case 4:if(0===g){let[a,d]=n(b,c);return c=d,0n!==a}return!1;case 5:if(2===g){let[d,e]=n(b,c),f=o(d,c=e,b),g=b.subarray(c,c+f);return c+=f,function(b){let c={};for(let d of p(b))if(1===d.fieldNumber&&2===d.wireType){let b="",e=null;for(let a of p(d.bytes))1===a.fieldNumber&&2===a.wireType?b=a.bytes.toString("utf8"):2===a.fieldNumber&&2===a.wireType&&(e=a.bytes);b&&e&&(c[b]=a(e))}return c}(g)}return{};case 6:if(2===g){let[d,e]=n(b,c),f=o(d,c=e,b),g=b.subarray(c,c+f);return c+=f,function(b){let c=[];for(let d of p(b))1===d.fieldNumber&&2===d.wireType&&c.push(a(d.bytes));return c}(g)}return[];default:if(0===g)[,c]=n(b,c);else if(2===g){let[a,d]=n(b,c);c=d+Number(a)}else 1===g?c+=8:5===g&&(c+=4)}}return null}(c))}}else b=a.bytes.toString("utf8");return{kind:"exec_mcp",execMsgId:a,execId:c,toolName:b,toolCallId:d,args:f}}default:return null}}return null}function z(a,b,c){let d=[];if(c&&c.length>0)for(let a of c)d.push(l(A,[R(a)]));let e=l(1,d),f=l(1,[e]);return s(l(2,[m(1,a),k(15,b),l(10,[f])]))}let A=2;function B(a,b,c,d){return s(l(2,[m(1,a),k(15,b),l(c,[d])]))}function C(a,b){return Buffer.concat([k(1,a),k(2,b)])}function D(a,b,c){return Buffer.concat([k(1,a),k(2,b),k(3,c)])}function E(a,b,c,d){return B(a,b,7,l(2,[C(c,d)]))}function F(a,b,c,d){return B(a,b,3,l(2,[C(c,d)]))}function G(a,b,c,d){return B(a,b,4,l(2,[C(c,d)]))}function H(a,b,c,d){return B(a,b,8,l(2,[C(c,d)]))}function I(a,b,c,d,e){return B(a,b,2,l(2,[D(c,d,e)]))}function J(a,b,c,d,e){return B(a,b,16,l(2,[D(c,d,e)]))}function K(a,b,c){return B(a,b,5,l(2,[k(1,c)]))}function L(a,b,c,d){return B(a,b,20,l(2,[Buffer.concat([k(1,c),k(2,d)])]))}function M(a,b,c){return B(a,b,23,l(2,[k(1,c)]))}function N(a,b){return B(a,b,9,Buffer.alloc(0))}function O(a,b,c,d){let e=l(1,[k(1,c)]),f=[l(1,[e])];return d&&f.push(Buffer.concat([i(2,0),h(1)])),B(a,b,11,l(1,f))}function P(a,b,c=null){let d=j(1,b),e=[];return 0!==a&&e.push(m(1,a)),e.push(l(2,[d])),c&&c.length>0&&e.push(j(4,c)),s(l(3,e))}function Q(a,b=null){let c=[];return 0!==a&&c.push(m(1,a)),c.push(l(3,[])),b&&b.length>0&&c.push(j(4,b)),s(l(3,c))}function R(a){let b=[k(1,a.name),k(2,a.description),j(3,a.inputSchemaBytes)];return a.providerIdentifier&&b.push(k(4,a.providerIdentifier)),a.toolName&&b.push(k(5,a.toolName)),Buffer.concat(b)}function S(a){if(!Array.isArray(a)||0===a.length)return"";let b=a=>"string"==typeof a?a:null!=a&&Array.isArray(a)?a.map(a=>"string"==typeof a?.text?a.text:"").filter(Boolean).join("\n"):"",c=a.filter(a=>"system"===a.role).map(a=>b(a.content)).filter(Boolean),d=a.filter(a=>"system"!==a.role);if(1===d.length&&"user"===d[0].role&&!d[0].tool_calls){let a=b(d[0].content);return c.length>0?`${c.join("\n\n")}
|
|
501
|
+
`)),b.enqueue(a.encode("data: [DONE]\n\n")),b.close()}},{highWaterMark:16384});return{response:new Response(b,{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}),url:f,headers:{},transformedBody:d}}return{response:new Response(JSON.stringify(function(a,b,c="stop"){return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,message:{role:"assistant",content:a},finish_reason:c}],usage:{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}(p,t)),{status:200,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d}}catch(b){let a=b instanceof Error?b.message:"Unknown error";if(a&&/executable doesn't exist|executablenotfound|playwright install|chromium.*download/i.test(a))return{response:new Response(JSON.stringify({error:"Gemini Web requires the Playwright Chromium browser, which is not installed. Run `npx playwright install chromium` on the host (or rebuild the Docker image with browsers)."}),{status:503,headers:{"Content-Type":"application/json","X-Omni-Fallback-Hint":"connection_cooldown"}}),url:f,headers:{},transformedBody:d};return{response:new Response(JSON.stringify({error:(0,e.sanitizeErrorMessage)(a)}),{status:500,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:d}}finally{if(o&&j?.removeEventListener("abort",o),n)try{await n.close()}catch{}}}}},98946:(a,b,c)=>{c.d(b,{fD:()=>v,sG:()=>w,lJ:()=>y,bm:()=>x,b3:()=>J,v4:()=>G,TM:()=>N,UF:()=>L,mK:()=>K,N_:()=>H,vK:()=>O,O8:()=>E,o_:()=>I,Xo:()=>F,D3:()=>M,Ex:()=>P,C4:()=>Q,gB:()=>z,FA:()=>S,H9:()=>u});var d=c(38522),e=c.n(d),f=c(77598),g=c.n(f);function h(a){let b="bigint"==typeof a?a:BigInt(a),c=[];for(;b>127n;)c.push(128|Number(127n&b)),b>>=7n;return c.push(Number(b)),Buffer.from(c)}function i(a,b){return h(a<<3|b)}function j(a,b){let c=Buffer.isBuffer(b)?b:Buffer.from(b);return Buffer.concat([i(a,2),h(c.length),c])}function k(a,b){return j(a,Buffer.from(b,"utf8"))}function l(a,b){let c=Buffer.concat(b);return Buffer.concat([i(a,2),h(c.length),c])}function m(a,b){return Buffer.concat([i(a,0),h(b)])}function n(a,b){let c=0n,d=0n,e=b;for(;e<a.length;){let b=a[e++];if(c|=BigInt(127&b)<<d,(128&b)==0)return[c,e];d+=7n}throw Error("varint truncated")}function o(a,b,c){if(a<0n||a>BigInt(c.length-b))throw Error(`length-delimited field overruns buffer (len=${a}, remaining=${c.length-b})`);return Number(a)}function p(a){let b=[],c=0;for(;c<a.length;){let[d,e]=n(a,c);c=e;let f=Number(d>>3n),g=Number(7n&d);if(0===g){let[d,e]=n(a,c);c=e,b.push({fieldNumber:f,wireType:0,varint:d})}else if(2===g){let[d,e]=n(a,c),g=o(d,c=e,a);b.push({fieldNumber:f,wireType:2,bytes:a.subarray(c,c+g)}),c+=g}else if(5===g)c+=4;else if(1===g)c+=8;else throw Error(`unsupported wireType ${g}`)}return b}function q(a,b){return a.find(a=>a.fieldNumber===b)}function r(a,b){let c=q(p(a),b);return c&&2===c.wireType?c.bytes.toString("utf8"):""}function s(a,b=!1){let c=b?e().gzipSync(a):a,d=Buffer.alloc(5);return d[0]=+!!b,d.writeUInt32BE(c.length,1),Buffer.concat([d,c])}let t={"":"composer-2.5","composer-2-5":"composer-2.5","composer-2.5-sdk":"composer-2.5","composer-latest":"composer-2.5","composer-2-5-fast":"composer-2.5-fast","composer-2.5-sdk-fast":"composer-2.5-fast","composer-latest-fast":"composer-2.5-fast"};function u(a){return a.map(a=>{let b=a.function?.parameters??{type:"object",properties:{}};return{name:a.function.name,description:a.function.description??"",inputSchemaBytes:function a(b){if(null==b)return Buffer.concat([i(1,0),h(0)]);if("number"==typeof b){let a;return(a=Buffer.alloc(8)).writeDoubleLE(b,0),Buffer.concat([i(2,1),a])}if("string"==typeof b)return k(3,b);if("boolean"==typeof b)return Buffer.concat([i(4,0),h(+!!b)]);if(Array.isArray(b)){let c=b.map(b=>l(1,[a(b)]));return l(6,c)}if("object"==typeof b){let c=[];for(let[d,e]of Object.entries(b)){let b=Buffer.concat([k(1,d),l(2,[a(e)])]);c.push(l(1,[b]))}return l(5,c)}return Buffer.concat([i(1,0),h(0)])}(b),providerIdentifier:"omniroute",toolName:a.function.name}})}function v(a){return s(function(a){let b,c,d=a.conversationId||g().randomUUID(),e=a.messageId||g().randomUUID(),{modelId:f,parameters:n}="auto"===(c=t[(b=(a.modelId??"").trim()).toLowerCase()]??b)?{modelId:"default",parameters:[]}:c.startsWith("composer-")&&c.endsWith("-fast")?{modelId:c.slice(0,-5),parameters:[{id:"fast",value:"true"}]}:{modelId:c,parameters:[]},o=[];if(a.images&&a.images.length>0)for(let b of a.images)o.push(l(1,[function(a){let b=[k(2,a.uuid)];return"number"==typeof a.width&&"number"==typeof a.height&&Number.isFinite(a.width)&&Number.isFinite(a.height)&&a.width>0&&a.height>0&&b.push(l(4,[m(1,Math.floor(a.width)),m(2,Math.floor(a.height))])),a.mimeType&&b.push(k(7,a.mimeType)),b.push(j(8,a.data)),Buffer.concat(b)}(b)]));let p=l(1,[k(1,a.userText),k(2,e),l(3,o),Buffer.concat([i(4,0),h(1)])]),q=l(1,[p]),r=l(2,[q]),s=[];if(a.systemPrompt&&a.blobStore){let b=JSON.stringify({role:"system",content:a.systemPrompt}),c=Buffer.from(b,"utf8"),d=g().createHash("sha256").update(c).digest();a.blobStore.set(d.toString("hex"),c),s.push(j(1,d))}let v=l(1,s),w=[k(1,f)];for(let a of n)w.push(l(3,[k(1,a.id),k(2,a.value)]));let x=l(9,w),y=[v,r,l(3,[k(1,f),k(3,f),k(4,f)]),l(4,(a.tools?u(a.tools):[]).map(a=>l(1,[R(a)]))),k(5,d),x,Buffer.concat([i(12,0),h(0)]),k(16,d)];return l(1,y)}(a))}function w(a){let b=[];for(let c of p(a)){if(4===c.fieldNumber&&2===c.wireType){b.push({kind:"kv_server_message"});continue}if(1===c.fieldNumber&&2===c.wireType){for(let a of p(c.bytes))if(2===a.wireType||0===a.wireType)switch(a.fieldNumber){case 1:2===a.wireType&&b.push({kind:"text",text:r(a.bytes,1)});break;case 4:2===a.wireType&&b.push({kind:"thinking",text:r(a.bytes,1)});break;case 5:b.push({kind:"thinking_complete"});break;case 2:b.push({kind:"tool_call_started"});break;case 3:b.push({kind:"tool_call_completed"});break;case 8:2===a.wireType&&b.push({kind:"token_delta",tokens:function(a){let b=q(p(a),1);return b&&0===b.wireType?Number(b.varint):0}(a.bytes)});break;case 13:b.push({kind:"heartbeat"});break;case 14:b.push({kind:"turn_ended"});break;default:b.push({kind:"unknown",field:a.fieldNumber})}}}return b}function x(a){for(let b of p(a)){if(4!==b.fieldNumber||2!==b.wireType)continue;let a=0,c=null,d=null,e=null;for(let f of p(b.bytes))1===f.fieldNumber&&0===f.wireType?a=Number(f.varint):2===f.fieldNumber&&2===f.wireType?c=f.bytes:3===f.fieldNumber&&2===f.wireType?d=f.bytes:4===f.fieldNumber&&2===f.wireType&&(e=f.bytes);if(c){let b=Buffer.alloc(0);for(let a of p(c))1===a.fieldNumber&&2===a.wireType&&(b=a.bytes);return{kind:"kv_get_blob",kvId:a,blobId:b,requestMetadata:e}}if(d){let b=Buffer.alloc(0),c=Buffer.alloc(0);for(let a of p(d))1===a.fieldNumber&&2===a.wireType?b=a.bytes:2===a.fieldNumber&&2===a.wireType&&(c=a.bytes);return{kind:"kv_set_blob",kvId:a,blobId:b,blobData:c,requestMetadata:e}}}return null}function y(a){for(let b of p(a)){if(2!==b.fieldNumber||2!==b.wireType)continue;let a=0,c="",d=0,e=null;for(let f of p(b.bytes))1===f.fieldNumber&&0===f.wireType?a=Number(f.varint):15===f.fieldNumber&&2===f.wireType?c=f.bytes.toString("utf8"):2===f.wireType&&0===d&&(d=f.fieldNumber,e=f.bytes);if(null!==e)switch(d){case 10:return{kind:"exec_request_context",execMsgId:a,execId:c};case 7:return{kind:"exec_read",execMsgId:a,execId:c,path:r(e,1)};case 3:return{kind:"exec_write",execMsgId:a,execId:c,path:r(e,1)};case 4:return{kind:"exec_delete",execMsgId:a,execId:c,path:r(e,1)};case 8:return{kind:"exec_ls",execMsgId:a,execId:c,path:r(e,1)};case 5:return{kind:"exec_grep",execMsgId:a,execId:c};case 9:return{kind:"exec_diagnostics",execMsgId:a,execId:c};case 2:return{kind:"exec_shell",execMsgId:a,execId:c,command:r(e,1),workingDir:r(e,2)};case 14:return{kind:"exec_shell_stream",execMsgId:a,execId:c,command:r(e,1),workingDir:r(e,2)};case 16:return{kind:"exec_bg_shell",execMsgId:a,execId:c,command:r(e,1),workingDir:r(e,2)};case 20:return{kind:"exec_fetch",execMsgId:a,execId:c,url:r(e,1)};case 23:return{kind:"exec_write_shell_stdin",execMsgId:a,execId:c};case 11:{let b="",d="",f={};for(let a of p(e))if(2===a.wireType)if(5===a.fieldNumber)b=a.bytes.toString("utf8");else if(1!==a.fieldNumber||b){if(3===a.fieldNumber)d=a.bytes.toString("utf8");else if(2===a.fieldNumber){let b="",c=null;for(let d of p(a.bytes))1===d.fieldNumber&&2===d.wireType?b=d.bytes.toString("utf8"):2===d.fieldNumber&&2===d.wireType&&(c=d.bytes);b&&null!==c&&(f[b]=function a(b){let c=0;for(;c<b.length;){let[d,e]=n(b,c);c=e;let f=Number(d>>3n),g=Number(7n&d);switch(f){case 1:return 0===g&&([,c]=n(b,c)),null;case 2:if(1===g&&c+8<=b.length){let a=b.readDoubleLE(c);return c+=8,a}return 0;case 3:if(2===g){let[a,d]=n(b,c),e=o(a,c=d,b),f=b.subarray(c,c+e).toString("utf8");return c+=e,f}return"";case 4:if(0===g){let[a,d]=n(b,c);return c=d,0n!==a}return!1;case 5:if(2===g){let[d,e]=n(b,c),f=o(d,c=e,b),g=b.subarray(c,c+f);return c+=f,function(b){let c={};for(let d of p(b))if(1===d.fieldNumber&&2===d.wireType){let b="",e=null;for(let a of p(d.bytes))1===a.fieldNumber&&2===a.wireType?b=a.bytes.toString("utf8"):2===a.fieldNumber&&2===a.wireType&&(e=a.bytes);b&&e&&(c[b]=a(e))}return c}(g)}return{};case 6:if(2===g){let[d,e]=n(b,c),f=o(d,c=e,b),g=b.subarray(c,c+f);return c+=f,function(b){let c=[];for(let d of p(b))1===d.fieldNumber&&2===d.wireType&&c.push(a(d.bytes));return c}(g)}return[];default:if(0===g)[,c]=n(b,c);else if(2===g){let[a,d]=n(b,c);c=d+Number(a)}else 1===g?c+=8:5===g&&(c+=4)}}return null}(c))}}else b=a.bytes.toString("utf8");return{kind:"exec_mcp",execMsgId:a,execId:c,toolName:b,toolCallId:d,args:f}}default:return null}}return null}function z(a,b,c){let d=[];if(c&&c.length>0)for(let a of c)d.push(l(A,[R(a)]));let e=l(1,d),f=l(1,[e]);return s(l(2,[m(1,a),k(15,b),l(10,[f])]))}let A=2;function B(a,b,c,d){return s(l(2,[m(1,a),k(15,b),l(c,[d])]))}function C(a,b){return Buffer.concat([k(1,a),k(2,b)])}function D(a,b,c){return Buffer.concat([k(1,a),k(2,b),k(3,c)])}function E(a,b,c,d){return B(a,b,7,l(2,[C(c,d)]))}function F(a,b,c,d){return B(a,b,3,l(2,[C(c,d)]))}function G(a,b,c,d){return B(a,b,4,l(2,[C(c,d)]))}function H(a,b,c,d){return B(a,b,8,l(2,[C(c,d)]))}function I(a,b,c,d,e){return B(a,b,2,l(2,[D(c,d,e)]))}function J(a,b,c,d,e){return B(a,b,16,l(2,[D(c,d,e)]))}function K(a,b,c){return B(a,b,5,l(2,[k(1,c)]))}function L(a,b,c,d){return B(a,b,20,l(2,[Buffer.concat([k(1,c),k(2,d)])]))}function M(a,b,c){return B(a,b,23,l(2,[k(1,c)]))}function N(a,b){return B(a,b,9,Buffer.alloc(0))}function O(a,b,c,d){let e=l(1,[k(1,c)]),f=[l(1,[e])];return d&&f.push(Buffer.concat([i(2,0),h(1)])),B(a,b,11,l(1,f))}function P(a,b,c=null){let d=j(1,b),e=[];return 0!==a&&e.push(m(1,a)),e.push(l(2,[d])),c&&c.length>0&&e.push(j(4,c)),s(l(3,e))}function Q(a,b=null){let c=[];return 0!==a&&c.push(m(1,a)),c.push(l(3,[])),b&&b.length>0&&c.push(j(4,b)),s(l(3,c))}function R(a){let b=[k(1,a.name),k(2,a.description),j(3,a.inputSchemaBytes)];return a.providerIdentifier&&b.push(k(4,a.providerIdentifier)),a.toolName&&b.push(k(5,a.toolName)),Buffer.concat(b)}function S(a){if(!Array.isArray(a)||0===a.length)return"";let b=a=>"string"==typeof a?a:null!=a&&Array.isArray(a)?a.map(a=>"string"==typeof a?.text?a.text:"").filter(Boolean).join("\n"):"",c=a.filter(a=>"system"===a.role).map(a=>b(a.content)).filter(Boolean),d=a.filter(a=>"system"!==a.role);if(1===d.length&&"user"===d[0].role&&!d[0].tool_calls){let a=b(d[0].content);return c.length>0?`${c.join("\n\n")}
|
|
502
502
|
|
|
503
503
|
${a}`:a}let e=[];for(let a of d){let c=b(a.content);if("user"===a.role)c&&e.push(`User: ${c}`);else if("assistant"===a.role){if(c&&e.push(`Assistant: ${c}`),Array.isArray(a.tool_calls))for(let b of a.tool_calls){let a=b.function?.arguments??"";e.push(`Assistant called tool ${b.function?.name??"(unknown)"} (${b.id}) with arguments: ${a}`)}}else if("tool"===a.role){let b=a.tool_call_id??"(unknown)";e.push(`Tool result (${b}): ${c}`)}else c&&e.push(`${a.role}: ${c}`)}let f=e.join("\n\n");return c.length>0?`${c.join("\n\n")}
|
|
504
504
|
|