@ltgiang/9router 0.5.48 → 0.5.49
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 +11 -11
- 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 +11 -11
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/4827.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.js +1 -1
- package/app/.next-cli-build/server/chunks/8668.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +1 -1
- package/app/.next-cli-build/server/chunks/8914.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-b3fd0ba66b66d229.js → 1321-a29c083db815f715.js} +1 -1
- package/app/cli/.build-home/.9router/db/backups/{upgrade-0.5.43-to-0.5.44-0.5.44-20260706-140104 → upgrade-0.5.47-to-0.5.48-0.5.48-20260706-150910}/data.sqlite +0 -0
- package/app/cli/.build-home/.9router/db/data.sqlite +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- /package/app/.next-cli-build/static/{AL8zX698kug_dtOUgc1f0 → 1sgfjP-Ixv6eSxryyko4B}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{AL8zX698kug_dtOUgc1f0 → 1sgfjP-Ixv6eSxryyko4B}/_ssgManifest.js +0 -0
|
@@ -35,4 +35,4 @@ data: ${JSON.stringify({tokens_generated:e,elapsed_ms:Date.now()-f,done:!0})}
|
|
|
35
35
|
[...truncated ${a.length-b} chars...]
|
|
36
36
|
${a.slice(-Math.ceil(b/2))}`}(a);if("object"!=typeof a)return a;if(b>=6)return"[MaxDepth]";if(Array.isArray(a)){let d="tools"!==c&&a.length>24,e=(d?a.slice(-24):a).map(a=>g(a,b+1));return d?[{_omniroute_truncated_array:!0,originalLength:a.length,retainedTailItems:24},...e]:e}let d={},e=Object.entries(a);for(let[a,c]of e.slice(0,80))d[a]=g(c,b+1,a);return e.length>80&&(d._omniroute_truncated_keys=e.length-80),d}async function h(a,b,c,i={}){let j,k,l,m,n,o,p=!1!==i.captureStreamChunks,q=(j={provider:[],openai:[],client:[]},k={provider:{value:0,truncated:!1},openai:{value:0,truncated:!1},client:{value:0,truncated:!1}},l=Number.isInteger(i.maxStreamChunkBytes)&&Number(i.maxStreamChunkBytes)>0?Number(i.maxStreamChunkBytes):131072,m=Number.isInteger(i.maxStreamChunkItems)&&Number(i.maxStreamChunkItems)>0?Number(i.maxStreamChunkItems):10240,n=!1,o=(a,b,c)=>{if(!p)return;(()=>{if(!n&&(i.requestId||i.connectionId&&i.model)){n=!0;try{let a=(0,d.Yo)(),b=i.requestId?a.get(i.requestId):null;if(b){b.streamChunks={...j};return}for(let b of a.values())if(b?.connectionId===i.connectionId&&b?.model===i.model&&b?.provider===(i.provider||"")){b.streamChunks={...j};return}}catch(a){try{console.warn("[requestLogger] updatePendingRequestStreamChunks failed:",a)}catch{}}}})();let e=new Date().toISOString().slice(11,23);!function(a,b,c,d,e=10240){if("string"!=typeof c||0===c.length)return;if(a.length>=e){b.truncated=!0,a[e-1]=`[stream chunk log truncated after ${e} chunks]`;return}if(b.value>=d){b.truncated=!0;return}let f=d-b.value;if(c.length<=f){a.push(c),b.value+=c.length;return}a.push(c.slice(0,f)),a.length<e&&a.push(`[stream chunk log truncated after ${d} bytes]`),b.value=d,b.truncated=!0}(a,b,`[${e}] ${c}`,l,m)},{streamChunks:j,streamChunkBytes:k,appendProviderChunk(a){o(j.provider,k.provider,a)},appendOpenAIChunk(a){o(j.openai,k.openai,a)},appendConvertedChunk(a){o(j.client,k.client,a)}});if(!1===i.enabled)return{sessionPath:null,logClientRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk:q.appendProviderChunk,appendOpenAIChunk:q.appendOpenAIChunk,logConvertedResponse(){},appendConvertedChunk:q.appendConvertedChunk,logError(){},getPipelinePayloads:()=>null};let r={...p?{streamChunks:q.streamChunks}:{}};return{sessionPath:null,logClientRawRequest(a,b,c={}){r.clientRawRequest={timestamp:new Date().toISOString(),endpoint:a,headers:f(c),body:g(b)}},logOpenAIRequest(a){r.openaiRequest={timestamp:new Date().toISOString(),body:g(a)}},logTargetRequest(a,b,c){r.providerRequest={timestamp:new Date().toISOString(),url:a,headers:f(b),body:g(c)}},logProviderResponse(a,b,c,d){r.providerResponse={timestamp:new Date().toISOString(),status:a,statusText:b,headers:f(c),body:g(d)}},appendProviderChunk:q.appendProviderChunk,appendOpenAIChunk:q.appendOpenAIChunk,logConvertedResponse(a){r.clientResponse={timestamp:new Date().toISOString(),body:g(a)}},appendConvertedChunk:q.appendConvertedChunk,logError(a,b=null){r.error={timestamp:new Date().toISOString(),error:(0,e.sanitizeErrorMessage)(a instanceof Error?a.message:String(a)),requestBody:g(b)}},getPipelinePayloads:()=>(function(a){let b={};for(let[c,d]of Object.entries(a))if(null!=d){if("streamChunks"===c&&d&&"object"==typeof d){let a=Object.fromEntries(Object.entries(d).filter(([,a])=>Array.isArray(a)&&a.length>0));Object.keys(a).length>0&&(b.streamChunks=a);continue}b[c]=d}return b&&!0&&Object.keys(b).length>0?b:null})(r)}}},71713:(a,b,c)=>{c.d(b,{F7:()=>f,r7:()=>e,sy:()=>g});var d=c(49690);function e(a){if(!a||"object"!=typeof a)return"";let b=a?.choices?.[0]?.message?.content;if("string"==typeof b)return(0,d.qR)(b.trim());if(Array.isArray(a?.content)){let b=a.content.filter(a=>a?.type==="text"&&"string"==typeof a?.text).map(a=>String(a.text).trim()).filter(Boolean).join("\n");if(b)return(0,d.qR)(b)}return"string"==typeof a?.output_text?(0,d.qR)(a.output_text.trim()):""}function f(a){if(!a||"object"!=typeof a)return"";let b=Array.isArray(a.messages)?a.messages:null;if(b&&b.length>0)for(let a=b.length-1;a>=0;a-=1){let c=b[a];if(c?.role==="user"){if("string"==typeof c.content&&c.content.trim().length>0)return(0,d.qR)(c.content.trim());if(Array.isArray(c.content)){let a=c.content.map(a=>"string"==typeof a?.text||a?.type==="input_text"&&"string"==typeof a?.text?a.text.trim():"").filter(Boolean).join("\n").trim();if(a)return(0,d.qR)(a)}}}let c=Array.isArray(a.input)?a.input:null;if(c&&c.length>0){for(let a=c.length-1;a>=0;a-=1){let b=c[a],e="string"==typeof b?.role?b.role.trim().toLowerCase():"",f="string"==typeof b?.type?b.type.trim().toLowerCase():"";if((!e||"user"===e)&&(!f||"message"===f)){if("string"==typeof b?.content&&b.content.trim())return(0,d.qR)(b.content.trim());if(Array.isArray(b?.content)){let a=b.content.map(a=>"string"==typeof a?.text||a?.type==="input_text"&&"string"==typeof a?.text?a.text.trim():"").filter(Boolean).join("\n").trim();if(a)return(0,d.qR)(a)}}}let a=[],b=0;for(let e=c.length-1;e>=0&&b<d.CA;e-=1){let d=c[e],f=(()=>{let a="string"==typeof d?.role?d.role.trim().toLowerCase():"",b="string"==typeof d?.type?d.type.trim().toLowerCase():"";return a&&"user"!==a||b&&"message"!==b?"":"string"==typeof d?.content?d.content.trim():Array.isArray(d?.content)?d.content.map(a=>"string"==typeof a?.text||a?.type==="input_text"&&"string"==typeof a?.text?a.text.trim():"").filter(Boolean).join("\n").trim():""})();f&&(a.unshift(f),b+=f.length+1)}let e=a.join("\n").trim();if(e)return(0,d.qR)(e)}return""}function g(a){let b=a?.id;return"string"==typeof b&&b.trim().length>0?b:null}},71886:(a,b,c)=>{c.d(b,{Q:()=>g});var d=c(4323),e=c(90528),f=c(69734);async function g({clientRawRequest:a,provider:b,model:c,effectiveServiceTier:h,startTime:i,log:j}){let k=(0,d.xp)(a?.headers),l=await (0,d.ic)(k);if(l){j?.debug?.("IDEMPOTENCY",`Hit for key=${k?.slice(0,12)}...`);let a=l.response&&"object"==typeof l.response?l.response.usage:void 0,d=a?await (0,e.calculateCost)(b,c,a,{serviceTier:h}):0,g={"Content-Type":"application/json","X-OmniRoute-Idempotent":"true"};return(0,f.Fx)(g,{provider:b,model:c,cacheHit:!1,latencyMs:Date.now()-i,usage:a,costUsd:d}),{idempotencyKey:k,hit:{success:!0,response:new Response(JSON.stringify(l.response),{status:l.status,headers:g})}}}return{hit:null,idempotencyKey:k}}},72001:(a,b,c)=>{c.d(b,{PM:()=>l,am:()=>k});var d=c(61408);class e extends Error{constructor(a="Provider stream ended without a terminal marker"){super(a),this.name="TruncatedStreamError"}}class f{constructor(a={}){this.chunks=[],this.bytes=0,this.startedAt=null,this.committed=!1,this.holdbackMs=a.holdbackMs??d.LX.HOLDBACK_MS,this.maxBytes=a.maxBytes??d.LX.BUFFER_MAX_BYTES,this.now=a.now??(()=>Date.now())}push(a){return this.committed?[a]:(null===this.startedAt&&(this.startedAt=this.now()),this.chunks.push(a),this.bytes+=a.byteLength,this.bytes>=this.maxBytes||this.now()-this.startedAt>=this.holdbackMs)?this.flush():[]}flush(){if(this.committed)return[];this.committed=!0;let a=this.chunks;return this.chunks=[],this.bytes=0,this.startedAt=null,a}discard(){this.chunks=[],this.bytes=0,this.startedAt=null}get hasBuffered(){return this.chunks.length>0}peekBuffered(){if(0===this.chunks.length)return new Uint8Array(0);if(1===this.chunks.length)return this.chunks[0];let a=new Uint8Array(this.bytes),b=0;for(let c of this.chunks)a.set(c,b),b+=c.byteLength;return a}}let g=new Set(["ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE","ENOTFOUND","ENETUNREACH","EHOSTUNREACH"]),h=new Set(["TimeoutError","BodyTimeoutError"]);function i(a){if(a instanceof e)return!0;if(!a||"object"!=typeof a)return!1;let b=a.name;if("AbortError"===b||"ResponseAborted"===b)return!1;if("string"==typeof b&&h.has(b))return!0;let c=a.code;if("string"==typeof c&&(g.has(c)||c.startsWith("UND_ERR_")))return!0;let d=a.message;return!!("string"==typeof d&&/terminated|socket hang up|econnreset/i.test(d))}function j(a){let b="",c=!1,d=!1,e=!1;if("string"!=typeof a||0===a.length)return{text:b,sawToolCall:c,terminal:d,parsedOpenAi:e};for(let f of a.split("\n")){let a,g=f.trimStart();if(!g.startsWith("data:"))continue;let h=g.slice(5).trim();if(!h)continue;if("[DONE]"===h){d=!0;continue}try{a=JSON.parse(h)}catch{continue}let i=a?.choices;if(Array.isArray(i))for(let a of i){let f=a?.delta;if(f&&"object"==typeof f){e=!0;let a=f.content;"string"==typeof a&&(b+=a);let d=f.tool_calls;Array.isArray(d)&&d.length>0&&(c=!0)}null!=a?.finish_reason&&(d=!0)}}return{text:b,sawToolCall:c,terminal:d,parsedOpenAi:e}}function k(a,b){return a&&"object"==typeof a&&Array.isArray(a.messages)&&0!==a.messages.length&&"string"==typeof b&&0!==b.length?{...a,messages:[...a.messages,{role:"assistant",content:b}],stream:!0}:null}function l(a,b,c){let g=c.maxEarlyRetries??d.LX.EARLY_RETRY_MAX,h=a.getReader(),k=new f({now:c.now}),l=0,m=!1,n=!1,o=()=>{m||(m=!0,c.finalize())},p=async a=>{if(n||l>=g)return!1;l+=1,c.onRetry?.(l,a);try{await h.cancel(a)}catch{}let d=null;try{d=await b()}catch{d=null}return!!d&&(h=d.getReader(),k.discard(),!0)},q="function"==typeof c.continueStream,r=c.maxContinuations??d.LX.EARLY_RETRY_MAX,s=new TextEncoder,t=new TextDecoder,u=0,v="",w="",x=!1,y=!1,z=!1,A=(a,b)=>{if(a.enqueue(b),!q)return;let c=(v+=t.decode(b,{stream:!0})).lastIndexOf("\n\n");if(c<0)return;let d=v.slice(0,c+2);v=v.slice(c+2);let e=j(d);w+=e.text,e.terminal&&(x=!0),e.sawToolCall&&(y=!0),e.parsedOpenAi&&(z=!0)},B=a=>{for(let b of k.flush())A(a,b)},C=a=>{a.enqueue(s.encode('data: {"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}\n\n')),a.enqueue(s.encode("data: [DONE]\n\n"))},D=async a=>{if(!(q&&u<r&&z&&!y&&!x&&w.length>0))return!1;u+=1,c.onContinue?.(u,w);let b=null;try{b=await c.continueStream(w)}catch{b=null}if(!b)return!1;let d=b.getReader(),e=new TextDecoder,f="";for(;;){let a;try{a=await d.read()}catch{break}if(a.done)break;a.value&&(f+=e.decode(a.value,{stream:!0}))}let g=j(f),h=function(a,b){if(!b)return"";if(!a)return b;let c=Math.min(a.length,b.length,512);for(let d=c;d>0;d--)if(a.endsWith(b.slice(0,d)))return b.slice(d);return b}(w,g.text);return(h&&A(a,s.encode(`data: ${JSON.stringify({choices:[{index:0,delta:{content:h}}]})}
|
|
37
37
|
|
|
38
|
-
`)),g.terminal||g.sawToolCall)?(C(a),!0):!!await D(a)||(C(a),!0)};return new ReadableStream({async pull(a){for(;;){let b;try{b=await h.read()}catch(b){if(n)return;if(k.committed){if(i(b)&&await D(a)){o(),a.close();return}o(),a.error(b);return}if(i(b)&&await p(b))continue;B(a),o(),a.close();return}if(n)return;let{done:c,value:d}=b;if(c){if(k.committed){if(!x&&await D(a)){o(),a.close();return}o(),a.close();return}if(function(a){if(!a||0===a.byteLength)return!1;let b=new TextDecoder().decode(a);return b.includes("[DONE]")||b.includes("message_stop")}(k.peekBuffered())){B(a),o(),a.close();return}if(await p(new e))continue;B(a),o(),a.close();return}if(void 0===d)continue;if(k.committed)return void A(a,d);let f=k.push(d);if(f.length>0){for(let b of f)A(a,b);return}}},async cancel(a){n=!0,o();try{await h.cancel(a)}catch{}}})}},75224:(a,b,c)=>{c.d(b,{d:()=>d});function d(a,b,d){let{pendingWrite:e,skillRequestId:f}=d;(async()=>{try{e&&await e;let{attachCompressionUsageReceipt:d}=await c.e(2572).then(c.bind(c,2572));d(f,a,b)}catch{}})()}},75268:(a,b,c)=>{c.d(b,{M:()=>d});function d(a,b){if(!a||"object"!=typeof a)return null;let c="string"==typeof b?b.toLowerCase():"",d="claude"===c||"anthropic"===c||c.startsWith("anthropic-compatible");if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_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};if(d&&a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.input_tokens||void 0!==a.usage.output_tokens)){let b=a.usage.input_tokens||0,c=a.usage.cache_read_input_tokens||0,d=a.usage.cache_creation_input_tokens||0;return{prompt_tokens:b+c+d,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:c,cache_creation_input_tokens:d}}let e=a.response?.usage||a.usage;return e&&"object"==typeof e&&(void 0!==e.input_tokens||void 0!==e.output_tokens)?{prompt_tokens:e.input_tokens||0,completion_tokens:e.output_tokens||0,cache_read_input_tokens:e.cache_read_input_tokens,cached_tokens:e.input_tokens_details?.cached_tokens??e.prompt_tokens_details?.cached_tokens??e.cache_read_input_tokens,cache_creation_input_tokens:e.cache_creation_input_tokens,reasoning_tokens:e.output_tokens_details?.reasoning_tokens??e.completion_tokens_details?.reasoning_tokens??e.reasoning_tokens}:a.usageMetadata&&"object"==typeof a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}},76284:(a,b,c)=>{c.d(b,{D:()=>J});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f),h=c(47493);let i={default:[],override:[],filter:[],defaultRaw:[]},j=s(i),k="",l=-1,m=0,n=null,o="";function p(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function q(a){return Array.isArray(a)?a:[]}function r(a){return structuredClone(a)}function s(a){return{default:a.default.map(a=>({models:a.models.map(a=>({...a})),params:r(a.params)})),override:a.override.map(a=>({models:a.models.map(a=>({...a})),params:r(a.params)})),filter:a.filter.map(a=>({models:a.models.map(a=>({...a})),params:[...a.params]})),defaultRaw:a.defaultRaw.map(a=>({models:a.models.map(a=>({...a})),params:r(a.params)}))}}function t(a){return q(a).map(a=>{let b="string"==typeof a?.name?a.name.trim():"",c="string"==typeof a?.protocol?a.protocol.trim():"";return b?c?{name:b,protocol:c}:{name:b}:null}).filter(a=>!!a)}function u(a){return q(a).map(a=>{let b=t(a?.models),c=p(a?.params);return 0===b.length||0===Object.keys(c).length?null:{models:b,params:c}}).filter(a=>!!a)}function v(a){let b=p(a),c=q(b["default-raw"]),d=[...q(b.defaultRaw),...c];return{default:u(b.default),override:u(b.override),filter:q(b.filter).map(a=>{let b=t(a?.models),c=q(a?.params).map(a=>"string"==typeof a?a.trim():"").filter(Boolean);return 0===b.length||0===c.length?null:{models:b,params:c}}).filter(a=>!!a),defaultRaw:u(d)}}async function w(a=!1){let b,c=process.env.OMNIROUTE_PAYLOAD_RULES_PATH||process.env.PAYLOAD_RULES_PATH||g().join(process.cwd(),"config","payloadRules.json"),d=Date.now();if(!(!a&&c===k&&d-m<(!Number.isFinite(b=Number.parseInt(process.env.OMNIROUTE_PAYLOAD_RULES_RELOAD_MS||"",10))||b<1e3?5e3:b))){if(n)return void await n;n=(async()=>{m=d,k=c;try{let b=await e().stat(c);if(!a&&l===b.mtimeMs)return;let d=await e().readFile(c,"utf-8"),f=JSON.parse(d);j=v(f),l=b.mtimeMs,o=""}catch(d){if(d?.code==="ENOENT"){j=s(i),l=-1,o="";return}let a=d instanceof Error?d.message:String(d),b=`${c}:${a}`;b!==o&&(console.warn(`[PAYLOAD_RULES] Failed to load ${c}: ${a}`),o=b)}})();try{await n}finally{n=null}}}async function x(){try{let{getCachedSettings:a}=await Promise.resolve().then(c.bind(c,89718)),b=await a(),d=b?.payloadRules;if(null==d)return null;return v(d)}catch{return null}}async function y(a={}){let b=await x();return b?s(b):(await w(!0===a.forceRefresh),s(j))}function z(a){return a.split(".").map(a=>a.trim()).filter(Boolean)}function A(a){return/^\d+$/.test(a)}function B(a,b){let c=z(b),d=a;for(let a of c){if(null==d)return;if(Array.isArray(d)){if(!A(a))return;d=d[Number(a)];continue}if("object"!=typeof d)return;d=d[a]}return d}function C(a,b,c){let d=z(b);if(0===d.length)return;let e=a;for(let a=0;a<d.length-1;a++){let b=d[a],c=A(d[a+1]);if(Array.isArray(e)){let a=Number(b);if(!Number.isInteger(a))return;(null==e[a]||"object"!=typeof e[a])&&(e[a]=c?[]:{}),e=e[a];continue}if(!e||"object"!=typeof e)return;let f=e;(null==f[b]||"object"!=typeof f[b]||Array.isArray(f[b])&&!c||!Array.isArray(f[b])&&c)&&(f[b]=c?[]:{}),e=f[b]}let f=d.at(-1);if(Array.isArray(e)){let a=Number(f);if(!Number.isInteger(a))return;e[a]=r(c);return}e&&"object"==typeof e&&(e[f]=r(c))}function D(a,b,c){return c.some(c=>(function(a,b){if(!a)return!0;let c=a.trim().toLowerCase();return b.some(a=>a.trim().toLowerCase()===c)})(c.protocol,b)&&(0,h.UF)(a,c.name))}async function E(a,b,c){return function(a,b,c,d){let e=r(a),f=[...new Set((Array.isArray(c)?c:[c]).map(a=>a.trim()).filter(Boolean))],g=[];for(let a of d.default)if(D(b,f,a.models))for(let[b,c]of Object.entries(a.params))void 0===B(e,b)&&(C(e,b,c),g.push({type:"default",path:b,value:r(c)}));for(let a of d.defaultRaw)if(D(b,f,a.models))for(let[b,c]of Object.entries(a.params)){if(void 0!==B(e,b))continue;let a=function(a){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return a}}(c);C(e,b,a),g.push({type:"default-raw",path:b,value:r(a)})}for(let a of d.override)if(D(b,f,a.models))for(let[b,c]of Object.entries(a.params))C(e,b,c),g.push({type:"override",path:b,value:r(c)});for(let a of d.filter)if(D(b,f,a.models))for(let b of a.params)(function(a,b){let c=z(b);if(0===c.length)return!1;let d=a;for(let a=0;a<c.length-1;a++){let b=c[a];if(Array.isArray(d)){if(!A(b))return!1;d=d[Number(b)];continue}if(!d||"object"!=typeof d)return!1;d=d[b]}let e=c.at(-1);if(Array.isArray(d)){if(!A(e))return!1;let a=Number(e);return!(a<0)&&!(a>=d.length)&&(d.splice(a,1),!0)}return!!d&&"object"==typeof d&&!!Object.hasOwn(d,e)&&(delete d[e],!0)})(e,b)&&g.push({type:"filter",path:b});return{payload:e,applied:g}}(a,b,c,await y())}var F=c(59591),G=c(95528),H=c(14170);async function I(a,b,d){if(d===H.h.OPENAI&&(0,G.R6)(b)&&!a.prompt_cache_key&&Array.isArray(a.messages)&&!["nvidia","codex","xai"].includes(b)){let{generatePromptCacheKey:b}=await c.e(7953).then(c.bind(c,47953)),d=b(a.messages);d&&(a={...a,prompt_cache_key:d})}return a}async function J(a){var b;let c,{translatedBody:d,modelToCall:e,provider:f,targetFormat:g,credentials:h,log:i}=a,j=d.model===e?d:{...d,model:e},k="string"==typeof j.model&&j.model.length>0?j.model:e,l=function({provider:a,targetFormat:b}){let c=new Set;return a&&c.add(a),b&&c.add(b),("openai-responses"===b||"openai-response"===b)&&c.add("openai"),"antigravity"===b&&c.add("gemini"),[...c]}({provider:f,targetFormat:g}),m=await E(j,k,l);return j=m.payload,m.applied.length>0&&i?.debug?.("PAYLOAD_RULES",`Applied ${m.applied.length} rule(s) for ${k} (${l.join(", ")}): ${m.applied.map(a=>{if("filter"===a.type)return`${a.type}:${a.path}`;let b=JSON.stringify(a.value),c="string"==typeof b&&b.length>80?`${b.slice(0,77)}...`:b;return`${a.type}:${a.path}=${c}`}).join(", ")}`),b=j=function(a,b,c){let d=(0,F.n9)(b);if(Array.isArray(a.tools)&&a.tools.length>d){let e=a.tools.slice(0,d);a={...a,tools:e},c?.debug?.("TOOL_LIMIT",`Truncated ${a.tools.length} tools to ${d} for ${b}`)}return a}(j,f,i),c="string"==typeof b.user&&b.user.trim().length>0,"qwen"!==f||h?.apiKey||"string"!=typeof h?.accessToken||!(h.accessToken.trim().length>0)||c||(b={...b,user:"omniroute-qwen-oauth"},i?.debug?.("QWEN","Injected fallback user for OAuth request")),j=b,j=await I(j,f,g)}},76896:(a,b,c)=>{c.d(b,{s:()=>d});function d(a,b,c){let{traceEnabled:d,startTime:e,traceId:f,log:g}=c;if(!d)return;let h=Date.now()-e,i="";if(b)try{i=` ${JSON.stringify(b)}`}catch{i=" [unserializable]"}g?.info?.("STAGE_TRACE",`${f} ${a} t=${h}ms${i}`)}},77311:(a,b,c)=>{c.d(b,{S:()=>i});var d=c(95374),e=c(49641);let f={withBodyTimeout:d.sh,synthesizeOpenAiSseFromJson:e.I};function g(a,b){let c=0;return new ReadableStream({async pull(d){if(c<a.length)return void d.enqueue(a[c++]);try{let{done:a,value:c}=await b.read();a?d.close():d.enqueue(c)}catch(a){d.error(a)}},async cancel(a){try{await b.cancel(a)}catch{}}})}async function h(a,b,c){let d=a.body.getReader(),e=[],f=new TextDecoder,h="",i=0;for(;i<4096;){let j=await c.withBodyTimeout(d.read());if(j.done||!j.value)break;if(e.push(j.value),i+=j.value.byteLength,"sse"===function(a){let b=a.replace(/^\uFEFF/,"").trimStart();if(!b)return"unknown";if(b.startsWith(":")||/^(?:data|event|id|retry)\s*:/i.test(b))return"sse";let c=b.toLowerCase();for(let a of["data","event","id","retry"]){if(a.startsWith(c))return"unknown";if(c.startsWith(a)){let b=c.slice(a.length);if(/^\s*$/.test(b))return"unknown";if(/^\s*:/.test(b))return"sse"}}return"non-sse"}(h+=f.decode(j.value,{stream:!0}))){let c=new Headers(a.headers);return c.delete("content-length"),c.set("content-type","text/event-stream"),b.log?.debug?.("STREAM",`Upstream returned SSE bytes with application/json content-type — preserving streaming body (${b.provider}/${b.model})`),{sseResponse:new Response(g(e,d),{status:a.status,statusText:a.statusText,headers:c}),jsonBody:new Response(null)}}}return{jsonBody:new Response(g(e,d))}}async function i(a,b,c=f){let d=(a.headers.get("content-type")||"").toLowerCase();if(!(a.body&&d.includes("application/json")&&!d.includes("text/event-stream")&&!d.includes("application/x-ndjson")))return a;let{sseResponse:e,jsonBody:g}=await h(a,b,c);if(e)return e;let j=await c.withBodyTimeout(g.text()),k=c.synthesizeOpenAiSseFromJson(j),l=new Headers(a.headers);return(l.delete("content-length"),k)?(b.log?.debug?.("STREAM",`Upstream returned application/json on a streaming request — converting to SSE (${b.provider}/${b.model})`),l.set("content-type","text/event-stream"),new Response(k,{status:a.status,statusText:a.statusText,headers:l})):new Response(j,{status:a.status,statusText:a.statusText,headers:l})}},77432:(a,b,c)=>{c.d(b,{Z:()=>e,d:()=>function a(b,c,e=3){if(e<=0||"codex"!==b||!c||"object"!=typeof c||Array.isArray(c))return null;let f=c.service_tier;if("string"==typeof f&&f.trim().length>0){let a=(0,d.yB)(f);if(a)return a}return a(b,c.response,e-1)}});var d=c(96303);function e(a,b,c){if("codex"!==a)return"standard";let e=(c&&"object"==typeof c&&!Array.isArray(c)?c:{}).service_tier;if("string"==typeof e&&e.trim().length>0){let a=(0,d.yB)(e);if(a)return a}return(0,d.vr)(b).serviceTier??"standard"}},77923:(a,b,c)=>{},79300:(a,b,c)=>{let d;c.d(b,{XY:()=>i});var e,f=c(78877);let g=(e=c.n(f)().getHeapStatistics().heap_size_limit/1048576,Number.isFinite(d=Number(process.env.HEAP_PRESSURE_THRESHOLD_MB))&&d>0?Math.floor(d):Math.max(Math.round(.85*e),400)),h="Service temporarily unavailable due to resource pressure. Retry shortly.";function i(a,b=g){return a<=b?null:(console.warn(`[chatCore] heap pressure guard tripped: ${Math.round(a)}MB > ${b}MB; returning 503`),{success:!1,status:503,error:h,response:new Response(JSON.stringify({error:{message:h,type:"server_error",code:"heap_pressure"}}),{status:503,headers:{"Content-Type":"application/json","Retry-After":"5"}})})}},81277:(a,b,c)=>{c.d(b,{K:()=>g});var d=c(47370),e=c(57708),f=c(26998);function g(a,b){if(!a||"object"!=typeof a)return void console.warn("[USAGE-DEBUG] recordStreamingUsageStats: usage is null/not-object, skipping",{usage:a,provider:b?.provider,model:b?.model});console.log("[USAGE-DEBUG] recordStreamingUsageStats: recording usage",{provider:b.provider,model:b.model,streamStatus:b.streamStatus,usageKeys:Object.keys(a||{})}),function(a,b){let{provider:c,model:e,streamStatus:f,startTime:g,ttft:h,streamErrorCode:i}=b;(0,d.sZ)({provider:c||"unknown",model:e||"unknown",tokens:a,status:String(f),success:200===f,latencyMs:Date.now()-g,timeToFirstTokenMs:h,errorCode:200===f?null:i||String(f),timestamp:new Date().toISOString(),connectionId:b.connectionId||void 0,apiKeyId:b.apiKeyInfo?.id||void 0,apiKeyName:b.apiKeyInfo?.name||void 0,serviceTier:b.effectiveServiceTier,comboStrategy:b.isCombo&&b.comboStrategy||void 0,endpoint:b.endpoint||void 0}).catch(a=>{console.error("Failed to save usage stats:",a.message)})}(a,b);if(b.apiKeyInfo?.id&&200===b.streamStatus)try{let c=(0,f.zP)(a);c>0&&(0,e.W_)(b.apiKeyInfo.id,b.provider||"unknown",b.model||"unknown",c)}catch{}}},81448:(a,b,c)=>{c.d(b,{B:()=>d});let d=async()=>void 0},81657:(a,b,c)=>{c.d(b,{Gp:()=>h,bu:()=>i,nC:()=>g});var d=c(77598);let e={enabled:!0,maxTemperatureForDedup:.1,timeoutMs:6e4},f=new Map;function g(a){let b={model:a.model??null,messages:a.messages??null,temperature:"number"==typeof a.temperature?a.temperature:1,tools:a.tools??null,tool_choice:a.tool_choice??null,max_tokens:a.max_tokens??null,response_format:a.response_format??null,top_p:a.top_p??null,frequency_penalty:a.frequency_penalty??null,presence_penalty:a.presence_penalty??null};return(0,d.createHash)("sha256").update(JSON.stringify(b)).digest("hex").slice(0,16)}function h(a,b=e){return!!b.enabled&&!0!==a.stream&&!(("number"==typeof a.temperature?a.temperature:1)>b.maxTemperatureForDedup)}async function i(a,b,c=e){let d,g;if(!c.enabled)return{result:await b(),wasDeduplicated:!1,hash:a};let h=f.get(a);if(h)return{result:await h,wasDeduplicated:!0,hash:a};if(f.size>=1e3){let a=f.keys().next().value;void 0!==a&&f.delete(a)}let j=new Promise((a,b)=>{d=a,g=b});f.set(a,j);let k=setTimeout(()=>{f.get(a)===j&&f.delete(a)},c.timeoutMs);try{let c=await b();return d(c),{result:c,wasDeduplicated:!1,hash:a}}catch(a){throw g(a),a}finally{clearTimeout(k),f.get(a)===j&&f.delete(a)}}},82317:(a,b,c)=>{let d;c.d(b,{Lc:()=>k});var e=c(95374),f=c(61408),g=c(26998),h=c(20669);class i extends Error{constructor(a,b){super(`Upstream non-streaming response exceeded the ${b}-byte cap (saw at least ${a} bytes)`),this.name="NonStreamingResponseTooLargeError",this.bytesSeen=a,this.maxBytes=b}}let j=Number.isFinite(d=Number.parseInt(String(process.env.OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES),10))&&d>0?d:0x4000000;async function k(a,b,c,d=j){if(!c||!a.body||!b.includes("text/event-stream")&&!b.includes("application/x-ndjson")){let b=Number.parseInt(a.headers.get("content-length")??"",10);if(Number.isFinite(b)&&b>d)throw new i(b,d);return(0,e.sh)(a.text())}return m(a.body,d)}async function l(a,b){let c=b>0?b-Date.now():0;if(b>0&&c<=0)throw(0,g.Iy)(f.r$);let{done:d,value:e}=await (0,g.JS)(a,c);return d?{kind:"done"}:e?{kind:"chunk",value:e}:{kind:"skip"}}async function m(a,b){let c=a.getReader(),d=new TextDecoder,e={currentEvent:"",pendingLine:""},g="",j=0,k=f.r$>0?Date.now()+f.r$:0,m=!1,n=a=>{if(!m){m=!0;try{c.cancel(a).catch(()=>{})}catch{}}};try{for(;;){let a=await l(c,k);if("done"===a.kind)break;if("skip"===a.kind)continue;if((j+=a.value.byteLength)>b)throw n("non-streaming response exceeded byte cap"),new i(j,b);let f=d.decode(a.value,{stream:!0});if(g+=f,(0,h.R)(e,f)){n("non-streaming bridge consumed terminal SSE event");break}}}catch(a){throw n(a),a}finally{g+=d.decode(),c.releaseLock()}return g}},83578:(a,b,c)=>{c(99718)},84444:(a,b,c)=>{c.a(a,async(a,b)=>{try{c(6906),c(87836),c(45684),c(19418);var d=c(55330);c(38048),c(47370),c(43659);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},86039:(a,b,c)=>{c.d(b,{A$:()=>k,BO:()=>n,I2:()=>j,ec:()=>l,mu:()=>m});var d=c(69190),e=c(40669),f=c(65067),g=c(36081);let h={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-fable-5":["claude-opus-4-8","claude-opus-4-7","claude-sonnet-4-6"],"claude-opus-4-8":["claude-opus-4-7","claude-opus-4-6","claude-sonnet-4-6"],"claude-opus-4-7":["claude-opus-4-6","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},i=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model","improperly formed request"];function j(a,b){if(404===a)return!0;if(400!==a&&403!==a)return!1;let c=b.toLowerCase();return i.some(a=>c.includes(a))}function k(a,b){return 400===a&&f.tJ.test(b)}function l(a,b){let c=(0,e.parseModel)(a),d=c.model||a,f=c.provider||c.providerAlias||"",i=f?`${f}/`:"",j=h[d.replace(/\./g,"-")]??h[d];if(!j)return null;let k=f?(0,g.qs)(f):null,l=k?new Set(k.models.map(a=>a.id)):null;for(let a of j){let c=a;if(l&&!l.has(a)){let b=a.replace(/-(\d+)-(\d+)$/,"-$1.$2"),d=a.replace(/-(\d+)-(\d+)-/,"-$1.$2-");l.has(b)?c=b:l.has(d)&&(c=d)}let d=`${i}${c}`;if(!b.has(d))return d}return null}function m(a){let b=(0,e.parseModel)(a),c=b.model||a,d=b.provider||b.providerAlias?`${b.provider||b.providerAlias}/`:"",f=h[c];return f?[a,...f.map(a=>`${d}${a}`)]:[a]}function n(a,b){let c=(0,e.parseModel)(a),f=c.provider||c.providerAlias||"unknown",g=c.model||a,h=(0,d.et)(f,g)??0,i=null,j=h;for(let c of b){if(c===a)continue;let b=(0,e.parseModel)(c),f=b.provider||b.providerAlias||"unknown",g=b.model||c,h=(0,d.et)(f,g)??0;h>j&&(j=h,i=c)}return i}},86735:(a,b,c)=>{c.d(b,{DP:()=>e,lS:()=>d});let d={runPostCallHooks:async(a,b)=>({response:a,blocked:!1})},e=()=>void 0},87028:(a,b,c)=>{c(83578),c(87836),c(45684),c(47370),c(43659)},88814:(a,b,c)=>{c.d(b,{$:()=>f});var d=c(62156),e=c(87094);function f(a,b,c){let f=b?.connectionId;if(!f)return;let g=b.providerSpecificData,h=g?.extraApiKeys??[],i=g?.apiKeyHealth,j=g?.selectedKeyId??"primary";if((0,d.Wt)(f,h),401===a){let a=(0,d.h$)(f,j);c?.warn?.("AUTH",`401 on connection ${f.slice(0,8)} - key marked as failed (failure #${a.failures})`);let b=i?.[j]?.status,h=i?.[j]?.failures??0;(a.status!==b||a.failures!==h)&&(0,e.rj)(f,{providerSpecificData:{...g,apiKeyHealth:{...i,[j]:a}}}).catch(a=>{c?.error?.("DB",`Failed to persist apiKeyHealth: ${a instanceof Error?a.message:String(a)}`)})}else if(402===a){let a=(0,d.b2)(f,j);c?.error?.("AUTH",`402 on connection ${f.slice(0,8)} - key ${j} marked invalid (insufficient balance)`);let b=i?.[j]?.status;a.status!==b&&(0,e.rj)(f,{providerSpecificData:{...g,apiKeyHealth:{...i,[j]:a}}}).catch(a=>{c?.error?.("DB",`Failed to persist apiKeyHealth: ${a instanceof Error?a.message:String(a)}`)})}else if(a>=200&&a<300){let a=(0,d.y$)(f,j),b=i?.[j]?.status;("warning"===b||"invalid"===b)&&(0,e.rj)(f,{providerSpecificData:{...g,apiKeyHealth:{...i,[j]:a}}}).catch(a=>{c?.error?.("DB",`Failed to persist apiKeyHealth: ${a instanceof Error?a.message:String(a)}`)})}}},88925:(a,b,c)=>{c.d(b,{_:()=>d});let d=(a,b)=>b},89734:(a,b,c)=>{c.d(b,{c:()=>g});var d=c(57247),e=c(89625),f=c(14170);function g(a){let{provider:b,body:c,sourceFormat:g}=a,h=a.effectiveModel,i=null;if(("claude"===b||(0,e.Xv)(b))&&"string"==typeof h){let{baseModel:a,effort:b}=(0,d.WJ)(h);if(b){if(h=a,c&&"object"==typeof c&&!Array.isArray(c)){let d;c.model=a,g!==f.h.CLAUDE&&(null==(d=c.reasoning_effort??c.reasoning?.effort??c.output_config?.effort)||""===d)&&(c.reasoning_effort=b)}i=`Claude effort variant: stripped "-${b}" → ${a} (reasoning_effort=${b})`}}return{effectiveModel:h,log:i}}},89966:(a,b,c)=>{c.d(b,{n:()=>d});let d=async()=>void 0},91044:(a,b,c)=>{c.d(b,{rh:()=>O,Kr:()=>S,ph:()=>V,YO:()=>R});var d=c(57217),e=c.n(d),f=c(10254),g=c(36081),h=c(11191);class i{constructor(a={}){this.hits=new Map,this.now=a.now??Date.now}tryAcquire(a,b){let{requests:c,windowMs:d}=b;if(!(c>0)||!(d>0))return{allowed:!0,retryAfterMs:0};let e=this.now(),f=e-d,g=this.hits.get(a),h=g?g.filter(a=>a>f):[];if(h.length>=c){let b=Math.max(0,h[0]+d-e);return this.hits.set(a,h),{allowed:!1,retryAfterMs:b}}return h.push(e),this.set(a,h),{allowed:!0,retryAfterMs:0}}reset(a){void 0===a?this.hits.clear():this.hits.delete(a)}set(a,b){if(!this.hits.has(a)&&this.hits.size>=5e3){let a=this.hits.keys().next().value;void 0!==a&&this.hits.delete(a)}this.hits.set(a,b)}}let j={},k=new i;function l(a){if(a)return j[a]}async function m(a,b,c,d){let e=l(a);if(!e)return;let f=Math.max(e.windowMs,d&&d>0?d:0),g=Date.now();for(;;){let d=function(a,b){let c=l(a);if(!c)return 0;let d=k.tryAcquire(`${a}:${b||"_"}`,c);return d.allowed?0:Math.max(1,d.retryAfterMs)}(a,b);if(0===d||Date.now()-g>=f)return;await function(a,b){return new Promise((c,d)=>{let e=null,f=setTimeout(()=>{b&&e&&b.removeEventListener("abort",e),c()},a);b&&(e=()=>{clearTimeout(f);let a=b.reason,c=a instanceof Error?a:Error("string"==typeof a?a:"The operation was aborted");c.name="AbortError",d(c)},b.addEventListener("abort",e,{once:!0}))})}(Math.min(d,f),c)}}var n=c(50102);let o={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},p={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function q(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function r(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function s(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 t(){return"string"==typeof process.env.NODE_TEST_CONTEXT}function u(...a){t()||console.log(...a)}function v(...a){t()||console.error(...a)}let w=new Map,x=new Set,y=new Map,z={},A=new Map,B=null,C=new Set,D=!1,E=n.aD.requestQueue,F=new Map,G=null,H=Number.MAX_SAFE_INTEGER;function I(a){return"number"==typeof a&&a>0?a:H}function J(){var a,b;return{maxConcurrent:"number"==typeof(a=E.concurrentRequests)&&a>0?a:1e3,minTime:"number"==typeof(b=E.minTimeBetweenRequestsMs)&&b>0?b:0,reservoir:I(E.requestsPerMinute),reservoirRefreshAmount:I(E.requestsPerMinute),reservoirRefreshInterval:6e4}}function K(){let a=Date.now();for(let[b,c]of Array.from(w)){let d=A.get(b)??0;if(a-d>6e5){let e=c.counts();0===e.QUEUED&&0===e.RUNNING&&0===e.EXECUTING&&(w.delete(b),F.delete(b),A.delete(b),u(`🧹 [RATE-LIMIT] Evicting idle limiter: ${b} (inactive for ${Math.round((a-d)/1e3)}s)`),N(c.disconnect()))}}for(let[b,c]of Array.from(w)){let d=c.counts();if(0===d.QUEUED||d.RUNNING>0||d.EXECUTING>0)continue;let e=F.get(b);if(void 0===e){F.set(b,a);continue}let f=a-e;f<12e4||(!function(...a){t()||console.warn(...a)}(`🚨 [RATE-LIMIT] WEDGED: ${b} queued=${d.QUEUED} running=0 executing=0 stalled=${f}ms — force-resetting`),w.delete(b),F.delete(b),A.delete(b),N(c.disconnect()))}}let L=!1;function M(){for(let a of w.values())a.stop({dropWaitingJobs:!1});w.clear(),F.clear(),A.clear()}function N(a){return C.add(a),a.then(()=>{C.delete(a)},()=>{C.delete(a)}),a}async function O(){if(!D){D=!0;try{let{getProviderConnections:a,getSettings:b}=await Promise.resolve().then(c.bind(c,89718)),[d,e]=await Promise.all([a(),b()]);E={...(0,n.xv)(e).requestQueue};let{explicitCount:f,autoCount:h}=function(a,b){let c=new Set,d=0,e=0;for(let f of a){let a=r(f),h="string"==typeof a.id?a.id:"",i="string"==typeof a.provider?a.provider:"",j=!0===a.isActive,k=!0===a.rateLimitProtection;if(h&&i){if(k){c.add(h),d++;continue}(function(a){let b=process.env.RATE_LIMIT_AUTO_ENABLE?.trim().toLowerCase();return"false"!==b&&"0"!==b&&"off"!==b&&("true"===b||"1"===b||"on"===b||a.autoEnableApiKeyProviders)})(b)&&"apikey"===(0,g.oQ)(i)&&j&&(c.add(h),e++,Q(i,h))}}for(let a of Array.from(x))c.has(a)||function(a){for(let[b,c]of(x.delete(a),Array.from(w)))b.includes(a)&&(w.delete(b),F.delete(b),A.delete(b),N(c.disconnect()))}(a);for(let a of c)x.add(a);return{explicitCount:d,autoCount:e}}(d,E),i=J();for(let a of w.values())a.updateSettings(i);for(let a of(y.clear(),d)){let b=a.rateLimitOverrides;b&&"object"==typeof b&&!Array.isArray(b)&&y.set(String(a.id),b)}(f>0||h>0)&&u(`🛡️ [RATE-LIMIT] Loaded ${f} explicit + ${h} auto-enabled protection(s)`),await U(),!G&&(G=setInterval(K,3e4),G.unref?.(),L||(L=!0,process.once("SIGTERM",M),process.once("SIGINT",M)))}catch(a){v("[RATE-LIMIT] Failed to load settings:",a.message)}}}function P(a,b,c=null){return"codex"===a&&c?`${a}:${(0,h.IM)(b,c)}`:("gemini"===a||"github"===a)&&c?`${a}:${b}:${c}`:`${a}:${b}`}function Q(a,b,c=null){let d=P(a,b,c);if(!w.has(d)){let a=J(),c=y.get(b);c&&("number"==typeof c.maxConcurrent&&c.maxConcurrent>0&&(a.maxConcurrent=c.maxConcurrent),"number"==typeof c.minTime&&c.minTime>0&&(a.minTime=c.minTime),"number"==typeof c.rpm&&c.rpm>0&&(a.reservoir=c.rpm,a.reservoirRefreshAmount=c.rpm,a.reservoirRefreshInterval=6e4));let f=new(e())({...a,id:d});f.on("executing",()=>{F.set(d,Date.now())}),w.set(d,f),F.set(d,Date.now()),A.set(d,Date.now())}return A.set(d,Date.now()),w.get(d)}async function R(a,b,c,d,e=null){if(!x.has(b))return d();if(e?.aborted){let a=e.reason;if(a instanceof Error)throw a;let b=Error("string"==typeof a?a:"The operation was aborted");throw b.name="AbortError",b}await m(a,b,e,E.maxWaitMs);let f=Q(a,b,c),g=E.maxWaitMs,h=g&&g>0?{expiration:g}:{};try{if(!e)return await f.schedule(h,d);{let a,b=new Promise((b,c)=>{let d=()=>{let a=e.reason,b=a instanceof Error?a:Error("string"==typeof a?a:"The operation was aborted");b.name="AbortError",c(b)};e.aborted?d():(a=d,e.addEventListener("abort",a,{once:!0}))});try{return await Promise.race([f.schedule(h,d),b])}finally{a&&e.removeEventListener("abort",a)}}}catch(d){if(d?.message?.includes("This job timed out")){let e=P(a,b,c);u(`⏰ [RATE-LIMIT] ${e} — job expired after ${Math.ceil((g||0)/1e3)}s in queue, dropping`);let f=Error(`Request dropped after exceeding the local rate-limit queue budget maxWaitMs (${g}ms) for ${c?`${a}/${c}`:a} — this is OmniRoute's request queue (resilienceSettings.requestQueue.maxWaitMs), not an upstream timeout. Raise it in Settings → Resilience if this is queue saturation rather than a slow provider.`,{cause:d});throw f.code="RATE_LIMIT_QUEUE_TIMEOUT",f}throw d}}function S(a,b,c,d,e=null){if(!x.has(b)||!c)return;let f=function(a){if(!a)return{};let b={};if("function"==typeof a.forEach)try{return a.forEach((a,c)=>{b[c.toLowerCase()]=a}),b}catch{}if("function"==typeof a.entries)try{for(let[c,d]of a.entries())b[c.toLowerCase()]=d;return b}catch{}try{for(let[c,d]of Object.entries(a))b[c.toLowerCase()]=null==d?"":String(d)}catch{}return b}(c),g=Q(a,b,e),h="claude"===a||"anthropic"===a?p:o,i=a=>f[a.toLowerCase()]||null,j=parseInt(i(h.limit)),k=parseInt(i(h.remaining)),l=i(h.reset),m=i(h.retryAfter),n=i(o.overLimit);if(429===d){let c=q(m)||6e4,d=g.counts(),f=P(a,b,e);u(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s, dropping ${d.QUEUED} queued request(s)`),w.delete(f),F.delete(f),A.delete(f),N(g.disconnect());return}if("yes"===n){u(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){let c=q(l)||6e4,d={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(k)&&(k<.1*j?(d.reservoir=k,d.reservoirRefreshAmount=j,d.reservoirRefreshInterval=c,u(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${k}/${j} remaining, throttling`)):k>.5*j&&(d.minTime=0,d.reservoir=null,d.reservoirRefreshAmount=null,d.reservoirRefreshInterval=null)),g.updateSettings(d),function(a,b,c,d=null){z[P(a,b,d)]={...c,provider:a,connectionId:b,lastUpdated:Date.now()},B||(B=setTimeout(async()=>{B=null,await N(T())},6e4))}(a,b,{limit:j,remaining:k,minTime:d.minTime},e)}}async function T(){try{let{updateSettings:a}=await c.e(8279).then(c.bind(c,18279));await a({learnedRateLimits:JSON.stringify(z)}),u(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(z).length} provider(s)`)}catch(a){v("[RATE-LIMIT] Failed to persist learned limits:",a.message)}}async function U(){try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=r(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=r(b),d=s(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",h=s(c.limit,0),i=s(c.remaining,0),j=s(c.minTime,0);if(z[a]={provider:g,connectionId:e,lastUpdated:d,...h>0?{limit:h}:{},...i>=0?{remaining:i}:{},...j>=0?{minTime:j}:{}},e&&x.has(e)){let b=w.get(a);if(b&&h>0){let a=j||Math.max(0,Math.floor(6e4/h)-10);b.updateSettings({minTime:a}),f++}}}f>0&&u(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){v("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}function V(a,b,c,d,e=null){if(!x.has(b))return;let{retryAfterMs:g,reason:h}=(0,f.Ks)(c);if(g&&g>0){let c=Q(a,b,e);u(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — body-parsed retry: ${Math.ceil(g/1e3)}s (${h})`),c.updateSettings({reservoir:0,reservoirRefreshAmount:60,reservoirRefreshInterval:g})}}},91137:(a,b,c)=>{c.d(b,{OZ:()=>e,av:()=>d}),c(43659);function d(a){let{mode:b,provider:c,model:d,connectionId:e,reason:f,recvBytes:g,recvLines:h,emitted:i,events:j,ttftMs:k,elapsedMs:l}=a,m=j&&"object"==typeof j?`[${Object.entries(j).map(([a,b])=>`${a}=${b}`).join(",")}]`:"[]";console.log(`[MALFORMED-200] mode=${b||"?"} provider=${c||"?"} model=${d||"?"} conn=${e||"-"} reason=${f||"empty"} recvBytes=${g??-1} recvLines=${h??-1} emitted=${i??-1} events=${m} ttft=${k??-1}ms dur=${l??-1}ms`)}function e(a){if(!a||"object"!=typeof a)return"empty_choices";if("response"===a.object){let b=a.output;if(!(Array.isArray(b)&&b.some(a=>!!a&&"object"==typeof a&&("message"===a.type?Array.isArray(a.content)&&a.content.some(a=>"string"==typeof a?.text&&a.text.length>0):!!a.type))))return"empty_choices";let c="string"==typeof a.status?a.status:"";return c&&!["completed","done"].includes(c)?"no_terminal":null}if("message"===a.type&&Array.isArray(a.content))return a.content.some(a=>null!==a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text&&a.text.length>0&&"(empty response)"!==a.text||"thinking"===a.type&&("string"==typeof a.thinking&&a.thinking.length>0||"string"==typeof a.signature&&a.signature.length>0)||"redacted_thinking"===a.type||"tool_use"===a.type&&"string"==typeof a.id&&a.id.length>0||!1))?null:"empty_choices";let b=a.choices;return Array.isArray(b)&&0!==b.length&&b.some(a=>{let b=a?.message;return!!("string"==typeof b?.content&&b.content.length>0||Array.isArray(b?.content)&&b.content.some(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text&&a.text.length>0)||Array.isArray(b?.tool_calls)&&b.tool_calls.length>0)||"string"==typeof b?.reasoning_content&&!!(b.reasoning_content.length>0)})?null:"empty_choices"}},91479:(a,b,c)=>{c.d(b,{c:()=>h});let d={},e=async()=>null,f=async()=>void 0;var g=c(14170);async function h({body:a,memoryOwnerId:b,provider:c,effectiveModel:i,sourceFormat:j,targetFormat:k,backgroundReason:l,log:m}){let n=b?await e().catch(()=>d):null;if(b&&n&&n.enabled&&n.maxTokens,b&&n?.skillsEnabled){let c=Array.isArray(a.tools)?a.tools:[],d=f({provider:function(a){switch(a){case g.h.CLAUDE:return"anthropic";case g.h.GEMINI:return"google";default:return"openai"}}(j),existingTools:c,apiKeyId:b,model:"string"==typeof i?i:void 0,sourceFormat:j,targetFormat:k,backgroundReason:l,messages:Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:void 0});d.length>c.length&&(a={...a,tools:d},m?.debug?.("SKILLS",`Injected ${d.length-c.length} skills`))}return{body:a,memorySettings:n}}c(15028)},91779:(a,b,c)=>{c.d(b,{H:()=>e});var d=c(14170);function e(a){let{credentials:b,nativeCodexPassthrough:c,endpointPath:e,targetFormat:f,provider:g,ccSessionId:h}=a,i=c?{...b,requestEndpointPath:e}:b,j=i?.providerSpecificData&&"object"==typeof i.providerSpecificData?{...i.providerSpecificData}:{};f===d.h.OPENAI_RESPONSES&&("azure-ai"===g||"oci"===g)&&"responses"!==j.apiType&&(j.apiType="responses"),f===d.h.OPENAI_RESPONSES&&("azure-ai"===g||"oci"===g)&&(j._omnirouteForceResponsesUpstream=!0);let k={...i,providerSpecificData:j};return h?{...k,providerSpecificData:{...k?.providerSpecificData||{},ccSessionId:h}}:k}},92500:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>bI});var e=c(91479),f=c(30701),g=c(42722),h=c(34748),i=c(71886),j=c(37425),k=c(2504),l=c(47281),m=c(93940),n=c(52575),o=c(58987),p=c(77311),q=c(57804),r=c(57964),s=c(70274),t=c(6520),u=c(30261),v=c(53894),w=c(2238),x=c(68061),y=c(14288),z=c(37636),A=c(68118),B=c(71713),C=c(79300),D=c(58255),E=c(10361),F=c(37785),G=c(61393),H=c(66173),I=c(71961),J=c(14170),K=c(63851),L=c(33748),M=c(95374),N=c(5341),O=c(99751),P=c(33727),Q=c(17577),R=c(59657),S=c(48191),T=c(8590),U=c(71336),V=c(7882),W=c(32485),X=c(29908),Y=c(89734),Z=c(96281),$=c(70327),_=c(24791),aa=c(17812),ab=c(20614),ac=c(21078),ad=c(49125),ae=c(59114),af=c(36081),ag=c(69190),ah=c(24286),ai=c(43659),aj=c(91137),ak=c(57708),al=c(61408),am=c(72001),an=c(50102),ao=c(65067),ap=c(87094),aq=c(57843),ar=c(62156),as=c(88814),at=c(46022),au=c(82317),av=c(13700),aw=c(33285),ax=c(2275),ay=c(60999),az=c(91779),aA=c(97584),aB=c(30660),aC=c(15067),aD=c(76896),aE=c(75224),aF=c(76284),aG=c(21968),aH=c(94400),aI=c(11822),aJ=c(92085),aK=c(25438),aL=c(54772),aM=c(27349),aN=c(47370),aO=c(11745),aP=c(89966),aQ=c(90528),aR=c(33003),aS=c(38476),aT=c(48909),aU=c(35402),aV=c(51018),aW=c(22720),aX=c(49287),aY=c(1384),aZ=c(67381),a$=c(47345),a_=c(50012),a0=c(99998),a1=c(54e3),a2=c(81277),a3=c(99482),a4=c(58118),a5=c(9744),a6=c(26998),a7=c(89718),a8=c(80238),a9=c(69137),ba=c(54447),bb=c(86735),bc=c(95528),bd=c(14046),be=c(88925),bf=c(3848),bg=c(77432),bh=c(32709),bi=c(59591),bj=c(11191),bk=c(11002),bl=c(74016),bm=c(69896),bn=c(75268),bo=c(90447),bp=c(91044),bq=c(56033),br=c(10254),bs=c(4323),bt=c(86039),bu=c(81657),bv=c(14720),bw=c(53052),bx=c(32560),by=c(49333),bz=c(27277),bA=c(81448),bB=c(37398),bC=c(96303),bD=c(89625),bE=c(81167),bF=c(38443),bG=c(5483),bH=a([aA]);async function bI({body:a,modelInfo:b,credentials:d,log:bH,onCredentialsRefreshed:bJ,onRequestSuccess:bK,onStreamFailure:bL,onDisconnect:bM,clientRawRequest:bN,connectionId:bO,apiKeyInfo:bP=null,userAgent:bQ,comboName:bR,comboStrategy:bS=null,isCombo:bT=!1,comboStepId:bU=null,comboExecutionKey:bV=null,cachedSettings:bW=null,skipUpstreamRetry:bX=!1,createPiiTransform:bY=null,correlationId:bZ=null}){let b$,b_,b0,b1,b2;console.log("[USAGE-DEBUG] handleChatCore V2 entered, provider=",b?.provider,"model=",b?.model,"stream=",a?.stream);let{provider:b3,model:b4,extendedContext:b5}=b;try{let a=process.memoryUsage().heapUsed/1048576,b=(0,C.XY)(a);if(b)return b}catch{}let{apiFormat:b6,customModelTargetFormat:b7,requestedModel:b8}=(0,f.s)(b,a,b4),b9=()=>(0,bF.lz)(b3,d?.providerSpecificData),ca=Date.now(),cb=globalThis.crypto.randomUUID().slice(0,6);setImmediate(()=>{(0,aJ.I)("request.started",{id:cb,model:b4||"unknown",provider:b3||"unknown",timestamp:ca,comboName:bR||void 0})});let cc="true"===process.env.OMNIROUTE_TRACE||"true"===process.env.DEBUG,cd=(a,b)=>(0,aD.s)(a,b,{traceEnabled:cc,startTime:ca,traceId:cb,log:bH}),ce=()=>("string"==typeof d?.connectionId&&d.connectionId.trim().length>0?d.connectionId.trim():null)||bO||null,cf=null;a=(0,H.Jj)(a);{let b=(bW??await (0,bd.getCachedSettings)())||{};!0===b.customSystemPromptEnabled&&"string"==typeof b.customSystemPrompt&&b.customSystemPrompt&&(a=(0,H.Al)(a,b.customSystemPrompt),bH?.debug?.("CUSTOMSP","custom system prompt injected"))}let cg=await (0,aW.c)({requestId:cb,body:a,model:b4,provider:b3,apiKeyInfo:bP,log:bH});if(cg.blocked)return{success:!1,status:403,error:"Request blocked by plugin",response:cg.response};cg.body&&(a=cg.body);let ch=(0,Q.r9)(a,bN?.headers??null);ch.detected&&bH?.debug?.("AGENT_GOAL",`long-running goal mode enabled: readinessMax=${ch.readinessMaxTimeoutMs}ms streamRecovery=${ch.streamRecoveryEnabled}`);let ci="standard",cj=a=>(0,bg.Z)(b3,d?.providerSpecificData,a),ck=(a,b=3)=>(0,bg.d)(b3,a,b),cl=(a,b)=>{(0,aN.sZ)((0,g.p)({provider:b3,model:b4,connectionId:ce(),apiKeyInfo:bP,effectiveServiceTier:ci,isCombo:bT,comboStrategy:bS,statusCode:a,errorCode:b,latencyMs:Date.now()-ca,endpoint:cq})).catch(()=>{})},cm=(a,b)=>(0,as.$)(a,b,bH),cn=async(a,b=0)=>{let c=ce();if("codex"===b3&&c&&a)try{let e=d?.providerSpecificData&&"object"==typeof d.providerSpecificData?d.providerSpecificData:{},f=(0,bk.V)({headers:a,existingProviderData:e,modelForScope:b4||b8||"",status:b});if(!f)return;f.exhaustionLog&&bH?.debug?.("CODEX",f.exhaustionLog),429===b&&(0,bl.tg)(c),await (0,ap.rj)(c,{providerSpecificData:f.nextProviderData}),d.providerSpecificData=f.nextProviderData}catch(b){let a=b instanceof Error?b.message:String(b);bH?.debug?.("CODEX",`Failed to persist codex quota state: ${a}`)}},{hit:co,idempotencyKey:cp}=await (0,i.Q)({clientRawRequest:bN,provider:b3,model:b4,effectiveServiceTier:ci,startTime:ca,log:bH});if(co)return co;bO&&d&&!d.connectionId&&(d.connectionId=bO);let{endpointPath:cq,sourceFormat:cr,isResponsesEndpoint:cs,nativeCodexPassthrough:ct,isDroidCLI:cu,copilotCompatibleReasoning:cv,clientResponseFormat:cw}=(0,E.M)({clientRawRequest:bN,body:a,provider:b3,userAgent:bQ}),cx=(0,aM.c)(a,b4,bQ);if(cx)return cx;let{backgroundReason:cy,redirect:cz}=(0,bw.W)({body:a,headers:bN?.headers,model:b4});if(cz){let b=b4;bH?.info?.("BACKGROUND",`Background task redirect (${cz.reason}): ${b} → ${cz.degradedModel}`),b4=cz.degradedModel,a&&"object"==typeof a&&(a.model=b4),(0,aI.y)({action:"routing.background_task_redirect",actor:bP?.name||"system",target:bO||b3||"chat",details:{original_model:b,redirected_to:cz.degradedModel,reason:cz.reason}})}let cA=(0,_.kV)(b4),cB=cA===b4?b4:cA;cA!==b4&&bH?.info?.("ALIAS",`Model alias applied: ${b4} → ${cA}`);{let b=(0,Y.c)({provider:b3,effectiveModel:cB,body:a,sourceFormat:cr});cB=b.effectiveModel,b.log&&bH?.info?.("PARAMS",b.log)}let{alias:cC,targetFormat:cD}=(0,F.a)({provider:b3,resolvedModel:cA,apiFormat:b6,customModelTargetFormat:b7,providerSpecificData:d?.providerSpecificData}),cE=a&&"object"==typeof a&&!Array.isArray(a)?{...a,model:"string"==typeof a.model?a.model:cB}:a,cF=bO||d?.connectionId||null,cG=(0,aN.uw)(b4,b3,cF,!0,{clientEndpoint:bN?.endpoint||"/v1/chat/completions",clientRequest:bN?.body??a,providerRequest:cE,stage:"registered",correlationId:bZ})||(0,bz.K)();await (0,bp.rh)();let{body:cH,fallback:cI}=(0,bx.CS)(a,{provider:b3,sourceFormat:cr,targetFormat:cD,nativeCodexPassthrough:ct});cI.enabled&&(a=cH,bH?.info?.("TOOLS",`Converted ${cI.convertedToolCount} web_search tool(s) to OmniRoute fallback for ${b3}`));let cJ=bP?.noLog===!0,cK=(bW??await (0,bd.getCachedSettings)())||{};if(!0===cK.logToolSources){let b=(0,W.C5)(a.tools);b&&bH?.debug?.("TOOLS",b)}let cL=!0===cK.echoRequestedModelName&&"string"==typeof b8&&b8?b8:null,cM=!cJ&&(!0===cK.call_log_pipeline_enabled||"1"===cK.call_log_pipeline_enabled||"true"===cK.call_log_pipeline_enabled),cN=cM&&(0,aH.LY)(),cO=(0,bz.K)(),cP=null,cQ=(a,b)=>(0,aE.d)(a,b,{pendingWrite:cP,skillRequestId:cO}),cR=(bN?.headers&&"function"==typeof bN.headers.get?bN.headers.get("x-omniroute-session-id"):(0,u.oF)(bN?.headers??null,"x-omniroute-session-id"))||cO,cS=b=>(0,aC.b)(b,{provider:b3,connectionId:bO,model:b4,skillRequestId:cO,detailedLoggingEnabled:cM,reqLogger:c0,pendingRequestId:cG,clientRawRequest:bN,requestedModel:b8,credentials:d,startTime:ca,body:a,sourceFormat:cr,targetFormat:cD,comboName:bR,comboStepId:bU,comboExecutionKey:bV,tokensCompressed:cf,apiKeyInfo:bP,noLogEnabled:cJ,correlationId:bZ}),cT=d?.providerSpecificData&&"object"==typeof d.providerSpecificData&&"string"==typeof d.providerSpecificData.customUserAgent?d.providerSpecificData.customUserAgent.trim():"",cU=a=>(0,bf.K)({modelToCall:a,effectiveModel:cB,provider:b3,model:b4,resolvedModel:cA,sourceFormat:cr,connectionCustomUserAgent:cT,settings:cK}),cV=bN?.headers&&"function"==typeof bN.headers.get?bN.headers.get("accept")||bN.headers.get("Accept"):bN?.headers?.accept||bN?.headers?.Accept,cW=["string"==typeof bQ?bQ:"",(0,u.oF)(bN?.headers??null,"user-agent")||""].filter(Boolean).join(" "),cX=(0,u.oF)(bN?.headers??null,O.QN),cY=(0,by.nV)(a);if(a&&"object"==typeof a){let b=a;void 0!==cY&&(b.stream=cY),delete b.non_stream,delete b.disable_stream,delete b.disable_streaming,delete b.streaming}let cZ=af.Mo[b3]?.forceStream===!0,c$=!(ct&&(0,bj.XK)(cq))&&(0,by.ZA)(a?.stream,cV,cr,{userAgent:cW,streamDefaultMode:bP?.streamDefaultMode,providerRequiresStreaming:cZ});d=(0,be._)(b3,d,cK,{model:b8,body:a&&"object"==typeof a?a:null}),ci=cj(a),(0,bE.aJ)(cK.antigravitySignatureCacheMode);let c_=!1!==cK.semanticCacheEnabled,c0=await (0,U.q7)(cr,cD,b4,{enabled:cM,captureStreamChunks:cN,maxStreamChunkBytes:(0,aH.jo)(),requestId:cG,model:b4,provider:b3||void 0,connectionId:bO||d?.connectionId||void 0}),c1={id:cG,model:b4,provider:b3,connectionId:cF},c2=(0,V.Fs)(c0,c1);bN&&c0.logClientRawRequest(bN.endpoint,bN.body,bN.headers),bH?.debug?.("FORMAT",`${cr} → ${cD} | stream=${c$}`);let c3=await (0,j.d)({semanticCacheEnabled:c_,body:a,clientRawRequest:bN,model:b4,provider:b3,stream:!!c$,reqLogger:c0,effectiveServiceTier:ci,connectionId:bO,startTime:ca,log:bH,persistAttemptLogs:cS,apiKeyId:bP?.id??void 0});if(c3)return c3;a=(0,t.z)(a,cr,cD);let c4=(0,u.rS)(bN?.headers??null)?null:(0,B.sy)(bP),c5=await (0,e.c)({body:a,memoryOwnerId:c4,provider:b3,effectiveModel:cB,sourceFormat:cr,targetFormat:cD,backgroundReason:cy,log:bH});a=c5.body;let c6=c5.memorySettings,c7=a?(0,aK.m)(a).body:null,c8=c7?.messages||a?.contents||a?.request?.contents||[],c9=!1,da=null,db=null,dc=null,dd=!1;if(a&&Array.isArray(c8)&&c8.length>0){let b=(0,bv.estimateTokens)(c8),d=await (0,aS.E)(bH),e=d.settings,f=d.enabled;dd=d.contextEditingEnabled;try{let{selectCompressionStrategy:d,selectCompressionPlan:g,enginesMapDerivesStackedPipeline:h,activeComboResolves:i,applyCompressionAsync:j,resolveCacheAwareConfig:k,formatCompressionMeta:l,buildNamedComboLookup:m,formatCompressionAnnotation:n}=await Promise.all([c.e(1665),c.e(1041),c.e(4036)]).then(c.bind(c,14036)),{trackCompressionStats:o}=await c.e(2941).then(c.bind(c,35322)),p=e??{enabled:!1,defaultMode:"off",autoTriggerTokens:0,cacheMinutes:5,preserveSystemPrompt:!0,comboOverrides:{}};f&&e||bH?.debug?.("COMPRESSION","Prompt compression disabled or unavailable");let q=bR??null,r=!1,s=(a,b=[])=>{if(!a||0===a.pipeline.length)return!1;let c=[...new Set(a.languagePacks.map(a=>a.trim()).filter(a=>a.length>0))],d=["lite","full","ultra"].includes(a.outputModeIntensity)?a.outputModeIntensity:p.cavemanOutputMode?.intensity??"full",e=c.find(a=>a===p.languageConfig?.defaultLanguage)??c[0]??p.languageConfig?.defaultLanguage??"en",f={...p.comboOverrides??{}};for(let a of b)a&&(f[a]="stacked");return p={...p,compressionComboId:a.id,stackedPipeline:a.pipeline,languageConfig:{...p.languageConfig??{enabled:!1,defaultLanguage:"en",autoDetect:!0,enabledPacks:["en"]},enabled:!0,defaultLanguage:e,enabledPacks:c.length>0?c:p.languageConfig?.enabledPacks??["en"]},cavemanOutputMode:{...p.cavemanOutputMode??{enabled:!1,intensity:"full",autoClarity:!0},enabled:a.outputMode,intensity:d},comboOverrides:f},r=!0,!0};if(bT&&bR)try{let{getComboByName:a}=await Promise.resolve().then(c.bind(c,89718)),b=await a(bR);!b&&bR.startsWith("combo/")&&(b=await a(bR.substring(6)));let d=b?.config&&"object"==typeof b.config?b.config:{},e="string"==typeof d.compressionMode?d.compressionMode:"string"==typeof b?.compressionOverride?b.compressionOverride:null;("off"===e||"lite"===e||"standard"===e||"aggressive"===e||"ultra"===e||"rtk"===e||"stacked"===e)&&(p={...p,comboOverrides:{...p.comboOverrides??{},...bR?{[bR]:e}:{},...b?.id?{[String(b.id)]:e}:{}}},q=bR);let f=[b?.id,bR,bR.startsWith("combo/")?bR.substring(6):null].filter(a=>"string"==typeof a&&a.length>0);if(f.length>0){let{getCompressionComboForRoutingCombo:a}=await c.e(4885).then(c.bind(c,84885)),b=f.map(b=>a(b)).find(a=>null!==a)??null;s(b,f)&&(q=bR)}}catch(a){bH?.debug?.("COMPRESSION","Combo compression override lookup skipped: "+(a instanceof Error?a.message:String(a)))}let t={};try{let{listCompressionCombos:a}=await c.e(4885).then(c.bind(c,84885));t=m(a())}catch(a){bH?.debug?.("COMPRESSION","Named combos load skipped: "+(a instanceof Error?a.message:String(a)))}let v=(0,u.qb)(bN?.headers??null);v&&bH?.debug?.("COMPRESSION",`x-omniroute-compression header: ${v}`);let w=d(p,q,b,a,{provider:b3,targetFormat:cD,model:cB},t,v);if("stacked"===w&&!r&&!p.compressionComboId&&(0,aT.D)(p.stackedPipeline)&&!h(p)&&!i(p,t))try{let{getDefaultCompressionCombo:a}=await c.e(4885).then(c.bind(c,84885)),b=a();(0,aT.W)(b)&&s(b)&&bH?.debug?.("COMPRESSION",`Default compression combo applied: ${b?.id}`)}catch(a){bH?.debug?.("COMPRESSION","Default compression combo lookup skipped: "+(a instanceof Error?a.message:String(a)))}let x=null;if(p.enabled)try{let{resolveOutputStyleSelection:d}=await c.e(6088).then(c.bind(c,26088)),e=d(p);if(e.length>0){let{applyOutputStyles:d}=await c.e(1689).then(c.bind(c,51689)),f=p.languageConfig?.enabled===!0?p.languageConfig.defaultLanguage:"en";(x=d(a,e,f)).applied?(a=x.body,c9=!0,da=x.appliedStyles?.map(a=>`${a.id}:${a.level}`).join(",")??null,b=(0,bv.estimateTokens)(a?.messages??a?.input??[]),bH?.debug?.("COMPRESSION","Output styles applied")):x.skippedReason&&"no_styles"!==x.skippedReason&&bH?.debug?.("COMPRESSION",`Output styles skipped: ${x.skippedReason}`)}}catch(a){bH?.debug?.("COMPRESSION","Output styles skipped: "+(a instanceof Error?a.message:String(a)))}let y=a,z=b3&&cB?(0,bv.xb)(b3,cB):null,B="number"==typeof y?.max_tokens?y.max_tokens:null,C=null,D=g(p,q,b,y,{provider:b3,targetFormat:cD,model:cB},t,v,{modelContextLimit:z,requestMaxTokens:B,onAdaptive:a=>{C=a}}),E=D.mode;C&&!1===C.fit&&bH?.warn?.("COMPRESSION",`adaptive budget-exceeded: target=${C.target} headroomAfter=${C.headroomAfter} stages=${C.stagesApplied.join(",")} (best-effort plan sent, content preserved)`),dc=l(D),"stacked"!==E||!(D.stackedPipeline.length>0)||r||p.compressionComboId||(p={...p,stackedPipeline:D.stackedPipeline});let F=!1;if("off"!==E){let c={provider:b3,targetFormat:cD,model:cB},d=k(p,y,c),e=await j(y,E,{model:cB,config:d,cachingContext:c,principalId:bP?.id?String(bP.id):void 0,onEngineStep:a=>{try{let b={requestId:cb,comboId:null,mode:E,stepIndex:a.stepIndex,totalSteps:a.totalSteps,engine:a.engine,state:a.state,originalTokens:a.originalTokens,compressedTokens:a.compressedTokens,savingsPercent:a.savingsPercent,...void 0!==a.durationMs?{durationMs:a.durationMs}:{},timestamp:Date.now()};(0,aJ.I)("compression.step",b),(0,A.Pu)("compression.step",b)}catch(a){}}});if(e.stats){let c=n(e.stats);if(c&&(dc=`${dc}; ${c}`),e.compressed&&(a=e.body,b=e.stats.compressedTokens,cf=Math.max(0,e.stats.originalTokens-e.stats.compressedTokens)),e.compressed&&e.stats)try{let a={requestId:cb,comboId:e.stats.compressionComboId??null,mode:E,originalTokens:e.stats.originalTokens,compressedTokens:e.stats.compressedTokens,savingsPercent:e.stats.savingsPercent,engineBreakdown:(0,aL.A)(e.stats),validationWarnings:e.stats.validationWarnings,fallbackApplied:e.stats.fallbackApplied,...C?{adaptive:C}:{},timestamp:Date.now()};(0,aJ.I)("compression.completed",a),(0,A.Pu)("compression.completed",a)}catch(a){bH?.debug?.("COMPRESSION","compression.completed emit skipped: "+(a instanceof Error?a.message:String(a)))}e.compressed||e.stats.fallbackApplied||c9?(o(e.stats),F=!0,cP=(0,aV.W)({stats:e.stats,provider:b3,effectiveModel:cB,effectiveServiceTier:ci,comboName:bR,mode:E,compressionComboId:p.compressionComboId,skillRequestId:cO,cavemanOutputModeApplied:c9,cavemanOutputModeIntensity:da,log:bH})):(F=!0,cP=(0,aV.n)({stats:e.stats,provider:b3,effectiveModel:cB,effectiveServiceTier:ci,comboName:bR,mode:E,compressionComboId:p.compressionComboId,skillRequestId:cO,cavemanOutputModeApplied:c9,cavemanOutputModeIntensity:da,log:bH},"no_savings")),e.compressed&&((0,aY.B)({compressionInputBody:y,provider:b3,targetFormat:cD,effectiveModel:cB,mode:E,stats:e.stats,log:bH}),bH?.info?.("COMPRESSION",`Prompt compressed (${E}): ${e.stats.originalTokens} -> ${e.stats.compressedTokens} tokens (${e.stats.savingsPercent}% saved, techniques: ${e.stats.techniquesUsed.join(",")})`))}}c9&&!F&&(cP=(0,aZ.w)({comboName:bR,provider:b3,compressionComboId:p.compressionComboId,estimatedTokens:b,skillRequestId:cO,cavemanOutputModeIntensity:da,log:bH})),(0,aU.J)({outputStyleResult:x,skillRequestId:cO,traceId:cb,effectiveModel:cB,provider:b3,compressionComboId:p.compressionComboId,estimatedTokens:b,log:bH})}catch(a){bH?.warn?.("COMPRESSION","Compression pipeline error (non-fatal): "+(a instanceof Error?a.message:String(a)))}f||bH?.debug?.("CONTEXT","Skipping proactive context compression: Prompt Compression disabled");let g=(0,bv.xb)(b3,cB);if(bT&&bR){bH?.info?.("CONTEXT",`Attempting to resolve combo limits for comboName=${bR}`);try{let{getComboByName:a}=await Promise.resolve().then(c.bind(c,89718)),{parseModel:b}=await Promise.resolve().then(c.bind(c,40669)),{resolveComboTargets:d}=await Promise.all([c.e(1665),c.e(920)]).then(c.bind(c,90920)),e=await a(bR);!e&&bR.startsWith("combo/")&&(e=await a(bR.substring(6)));let f=[];if(e){let a=await (0,w.ah)();f=d(e,a).map(a=>{let c=b(a.modelStr);return(0,bv.xb)(c.provider,c.model)})}let h=(0,bv.HJ)({provider:b3,model:cB,comboTargetLimits:f});g=h.limit,bH?.info?.("CONTEXT",`Combo context limit: ${h.limit} (source=${h.source})`)}catch(a){bH?.warn?.("CONTEXT","Failed to resolve combo limits for compression: "+a)}}let h=0;Array.isArray(a.tools)&&(h=(0,bv.estimateTokens)(a.tools));let i=Math.max(1,Math.floor((Math.max(1,g)-h)*.7));if(bH?.debug?.("CONTEXT",`Checking compression: ${b} tokens vs ${i} threshold (${g} limit, ${h} reserved)`),db=a,f&&b>i){bH?.info?.("CONTEXT",`Proactive compression triggered: ${b} tokens > ${i} threshold (${g} limit)`);let c=(0,bv.qc)(a,{provider:b3,model:cB,maxTokens:i,reserveTokens:0});if(c.compressed){a=c.body;let b=c.stats;cf=Math.max(0,(b?.original??0)-(b?.final??0));let d=b&&"layers"in b&&Array.isArray(b.layers)?` (layers: ${b.layers.map(a=>a.name).join(", ")})`:"";bH?.info?.("CONTEXT",`Context compressed: ${b.original} → ${b.final} tokens${d}`),(0,aI.y)({action:"context.proactive_compression",actor:bP?.name||"system",target:bO||b3||"chat",details:{provider:b3,model:cB,original_tokens:b.original,final_tokens:b.final,layers:"layers"in b?b.layers:void 0}})}else bH?.debug?.("CONTEXT","Compression not applied: context already fits within target")}}else bH?.debug?.("CONTEXT",`Skipping compression check: body=${!!a}, hasMessages=${Array.isArray(c8)}`);let de=a,df=cr===J.h.CLAUDE&&cD===J.h.CLAUDE,dg=(0,bD.Xv)(b3),dh=(0,y.xu)({provider:b3,sourceFormat:cr,targetFormat:cD,headers:bN?.headers,userAgent:bQ}),di=c$||dg,dj=null,dk=(0,$.T)(b3||"",b4||"");if(Array.isArray(de?.messages)&&dk.length>0){let a=(0,$.k)(de.messages,dk);a.removedParts>0&&(de={...de,messages:a.messages},bH?.warn?.("CONTENT",`Stripped ${a.removedParts} incompatible content part(s) for ${b3}/${b4}`))}let dl=await (0,ba.$)().catch(()=>"auto"),dm=(0,bc.jH)({userAgent:bQ,isCombo:bT,comboStrategy:bS,targetProvider:b3,targetFormat:cD,settings:{alwaysPreserveClientCache:dl}});dm&&bH?.debug?.("CACHE",`Preserving client cache_control (client=${bQ?.substring(0,20)}, combo=${bT}, strategy=${bS}, provider=${b3})`);let dn=(a,b)=>(0,aB.x)(a,b,bH);try{if(ct)de={...a,_nativeCodexPassthrough:!0},bH?.debug?.("FORMAT","native codex passthrough enabled");else if(dg){let b={...a};if(cr===J.h.CLAUDE&&dh)bH?.debug?.("FORMAT","claude-code semantic passthrough enabled for compatible bridge");else if(cr!==J.h.OPENAI){let c=(0,a7.QT)(b3||"",b4||"",cr),e=(0,a7.e8)(b3||"",b4||"",cr);b=(0,I.GH)(cr,J.h.OPENAI,b4,{...a},c$,d,b3,c0,{normalizeToolCallId:c,preserveDeveloperRole:e,preserveCacheControl:dm,copilotClient:cv})}dj=(0,bD.L)(bN?.headers);let c=(0,bC.RG)(d?.providerSpecificData);de=(0,bD.$Y)({sourceBody:a,normalizedBody:b,claudeBody:cr===J.h.CLAUDE?a:null,model:b4,stream:di,sessionId:dj,cwd:process.cwd(),now:new Date,preserveCacheControl:dm,preserveClaudeMessages:cr===J.h.CLAUDE&&dh,summarizeThinking:!0===c.summarizeThinking}),bH?.debug?.("FORMAT","claude-code-compatible bridge enabled"),dh?(0,h.X)(de):dn(de,{preserveToolResultBlocks:!0})}else if(df){if((de={...a})._disableToolPrefix=!0,"claude"===b3&&(de.messages=(0,y.Nm)(de.messages,Z.xr),void 0!==de.temperature&&void 0!==de.top_p&&delete de.top_p),dh?((0,h.X)(de),Array.isArray(de.messages)&&(de.messages=(0,L.NI)(de.messages))):dn(de,{preserveToolResultBlocks:!0}),bH?.debug?.("FORMAT",`claude passthrough (preserveCache=${dm})`),void 0!==de.output_format){let a=de.output_config&&"object"==typeof de.output_config?de.output_config:{};void 0===a.format&&(a.format=de.output_format),de.output_config=a,delete de.output_format}if("claude"!==b3&&de.output_config&&"object"==typeof de.output_config){let a=de.output_config;delete a.format,0===Object.keys(a).length&&delete de.output_config}}else{if(de={...a},cD===J.h.CLAUDE&&(de._disableToolPrefix=!0,dn(de)),b3?.startsWith("openai-compatible-")&&Array.isArray(de.tools)){let a=de.tools.length;de.tools=de.tools.filter(a=>!a.type||"function"===a.type||!!a.function||!!a.name).map(a=>!a.type||"function"===a.type||a.function?a:{type:"function",function:{name:a.name,...void 0===a.description?{}:{description:a.description},...void 0!==a.parameters||void 0!==a.input_schema?{parameters:a.parameters??a.input_schema??{}}:{},...void 0===a.strict?{}:{strict:a.strict}}});let b=a-de.tools.length;b>0&&bH?.debug?.("TOOLS",`Dropped ${b} unconvertible tool(s) for openai-compatible provider`)}let b=(0,a7.QT)(b3||"",b4||"",cr),c=(0,a7.e8)(b3||"",b4||"",cr);de=(0,I.GH)(cr,cD,b4,de,c$,d,b3,c0,{normalizeToolCallId:b,preserveDeveloperRole:c,preserveCacheControl:dm,signatureNamespace:bO,copilotClient:cv,...db?{preCompressionBody:db}:{}})}}catch(g){try{let{runOnError:b}=await c.e(5842).then(c.bind(c,65842));await b({requestId:cb,body:a,model:b4,provider:b3,apiKeyInfo:bP,metadata:{}},g instanceof Error?g:Error(String(g)))}catch(a){bH?.debug?.("PLUGIN",`onError hook error (non-fatal): ${a instanceof Error?a.message:String(a)}`)}let b=Number(g?.statusCode),d=Number.isInteger(b)&&b>=400&&b<=599?b:al.gx.SERVER_ERROR,e=g?.message||"Invalid request",f="string"==typeof g?.errorType?g.errorType:null;if(bH?.warn?.("TRANSLATE",`Request translation failed: ${e}`),f)return(0,aN.uw)(b4,b3,bO,!1),{success:!1,status:d,error:e,response:new Response(JSON.stringify({error:{message:e,type:f,code:f}}),{status:d,headers:{"Content-Type":"application/json"}})};return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(d,e)}if(cd("post_translation"),cD===J.h.KIRO){let a=de?.conversationState?.currentMessage?.userInputMessage?.userInputMessageContext?.tools;if(a){let{tools:b,nameMap:c}=(0,K.u)(a);if(de.conversationState.currentMessage.userInputMessage.userInputMessageContext.tools=b,c.size>0){let a=de._toolNameMap instanceof Map?de._toolNameMap:new Map;c.forEach((b,c)=>a.set(c,b)),de._toolNameMap=a}}}cD===J.h.CLAUDE&&Array.isArray(de.tools)&&(de.tools=(0,G.C)(de.tools));let dp=de._toolNameMap,dq=df?(0,aR.O5)(a):null,dr=dp instanceof Map&&dp.size>0?dp:dq;delete de._toolNameMap,delete de._disableToolPrefix;let ds=cB;if("string"==typeof ds&&(ds.startsWith(`${b3}/`)?ds=ds.slice(b3.length+1):cC&&ds.startsWith(`${cC}/`)&&(ds=ds.slice(cC.length+1))),de.model=ds,"string"==typeof ds&&(de=(0,ah.mU)(de,ds),de=(0,ab.u)(de,ds),de=(0,ac.e)(de,ds)),"xiaomi-mimo"===b3&&(de=(0,aa.y)(de)),de=(0,X.QH)(de,{mode:cK.responsesPreviousResponseIdMode,sourceFormat:cr,targetFormat:cD,credentials:d}).body,("codex"===b3||b3?.startsWith("codex"))&&ds.match(/-(low|medium|high|xhigh)$/i)&&de.output_config&&"object"==typeof de.output_config){let a=de.output_config;a.effort&&(bH?.warn?.("PARAMS",`Stripped output_config.effort="${a.effort}" because model "${ds}" already encodes effort`),delete a.effort,0===Object.keys(a).length&&delete de.output_config)}let dt=(0,af.Gk)(b3,b4);if(dt.length>0){let a=[];for(let b of dt)Object.hasOwn(de,b)&&(a.push(b),delete de[b]);a.length>0&&bH?.warn?.("PARAMS",`Stripped unsupported params for ${b4}: ${a.join(", ")}`)}de=(0,ae.i)(de,b3,ds,bH),(0,ag.t5)({provider:b3,model:b4})||void 0===de.max_tokens||(void 0===de.max_completion_tokens&&(de.max_completion_tokens=de.max_tokens),delete de.max_tokens,bH?.debug?.("PARAMS",`Renamed max_tokens to max_completion_tokens for ${b4}`)),"openai"!==b3&&"store"in de&&delete de.store,cD===J.h.OPENAI_RESPONSES&&"stream_options"in de&&delete de.stream_options;let du=al.Aj[b3];if(du)for(let a of["max_tokens","max_completion_tokens"])"number"==typeof de[a]&&de[a]>du&&(bH?.debug?.("PARAMS",`Capping ${a} from ${de[a]} to ${du} for ${b3}`),de[a]=du);let dv=!1;if(bP?.id&&d?.connectionId)try{let{enforceQuotaShare:a}=await c.e(2604).then(c.bind(c,62604)),b=await a({apiKeyId:bP.id,connectionId:d.connectionId,provider:b3??"unknown",model:b4||void 0,estimatedCost:{}}).catch(a=>(bH?.warn?.("QUOTA_SHARE",`enforceQuotaShare failed; fail-open: ${a instanceof Error?a.message:String(a)}`),{kind:"allow"}));if("block"===b.kind){let{buildErrorBody:a}=await Promise.resolve().then(c.bind(c,43659));bH?.warn?.("QUOTA_SHARE",`[quotaShare] blocked apiKeyId=${bP.id} provider=${b3??"unknown"}: ${b.reason}`);let d={"Content-Type":"application/json"};return b.retryAfterSeconds&&(d["Retry-After"]=String(b.retryAfterSeconds)),new Response(JSON.stringify(a(429,b.reason)),{status:429,headers:d})}"allow"===b.kind&&b.deprioritize&&(dv=!0,bH?.info?.("QUOTA_SHARE",`[quotaShare] soft deprioritize active for apiKeyId=${bP.id} provider=${b3??"unknown"}`))}catch(a){bH?.warn?.("QUOTA_SHARE",`[quotaShare] enforceQuotaShare unexpected error; fail-open: ${a instanceof Error?a.message:String(a)}`)}if(dv&&bT&&bU)try{let{setCandidateQuotaSoftPenalty:a}=await Promise.all([c.e(1665),c.e(920)]).then(c.bind(c,90920));a(bV,bU,!0)}catch(a){bH?.warn?.("QUOTA_SHARE",`[quotaShare] could not set soft penalty on candidate: ${a instanceof Error?a.message:String(a)}`)}let dw=await (0,aA.M)(b3,bH),dx=()=>(0,az.H)({credentials:d,nativeCodexPassthrough:ct,endpointPath:cq,targetFormat:cD,provider:b3,ccSessionId:dj}),dy=null,dz=null,dA=(0,R.jd)({onDisconnect:a=>{let b=!1;try{b=dz?.(a)===!0}catch{}if(!b)try{(0,aO.Gn)(c1,{status:499,error:`Client disconnected: ${a.reason}`,errorCode:"client_disconnected"}),b=!0}catch{}try{bM?.(a)}catch{}return b},onError:a=>dy?.(a),provider:b3,model:b4,connectionId:bO,clientResponseFormat:cw,clientAbortSignal:bN?.signal}),dB={...de,model:`${b3}/${b4}`,stream:c$},dC=(0,bu.Gp)(dB),dD=dC?(0,bu.nC)(dB):null,dE=async(b=cB,c=!1)=>{let e=async()=>{let c=await (0,aF.D)({translatedBody:de,modelToCall:b,provider:b3,targetFormat:cD,credentials:d,log:bH});(0,aO.pC)(c1,{providerRequest:c,stage:"payload_prepared"});let e=()=>{};try{let f,g=await (async()=>{let e=0,f=b9()||"qwen"===b3||"codex"===b3?3:1,g=[],h="codex"===b3?(0,a8.Tn)(a,bN?.headers)??null:null;for(;e<f;){cd("pre_executor",{attempt:e}),(0,aO.pC)(c1,{stage:"sending_to_provider"});let a=dx(),i=a?.connectionId||bO,j=(0,x.VQ)(a),k=(0,x.pz)({provider:b3,model:b,connectionId:i,credentials:a});cd("pre_semaphore",{semaphoreKey:k,max:j}),k&&null!=j&&(0,aO.pC)(c1,{stage:"waiting_account_slot"});let l=k&&null!=j?await (0,bq.XC)(k,{maxConcurrency:j,signal:dA.signal}):()=>{};cd("post_semaphore"),(0,aO.pC)(c1,{stage:"waiting_rate_limit"});try{cd("pre_rate_limit",{connectionId:i});let j=await (0,bp.YO)(b3,i,b,async()=>(cd("inside_rate_limit",{connectionId:i}),(0,aO.pC)(c1,{stage:"rate_limit_slot_acquired"}),(0,a6.C7)({executor:dw,provider:b3,model:b,signal:dA.signal,log:bH,execute:d=>(0,V.ov)(c2,()=>dw.execute({model:b,body:c,stream:di,credentials:a,signal:d,log:bH,extendedContext:b5,upstreamExtraHeaders:cU(b),clientHeaders:(0,ay.l)(bN?.headers,bQ),onCredentialsRefreshed:bJ,skipUpstreamRetry:bX,contextEditing:{enabled:dd}}))})),dA.signal),k=(0,a6.u6)(j);if(cd("post_executor",{status:k?.response?.status}),"gemini"===b3&&(0,bG.Gz)(b),(0,aO.pC)(c1,{stage:"provider_response_started"}),401===k.response.status&&a?.connectionId&&cm(401,a),"qwen"===b3&&429===k.response.status&&e<f-1&&(await k.response.clone().text().catch(()=>"")).toLowerCase().includes("exceeded your current quota")){let a=1500*(e+1);bH?.warn?.("QWEN_RETRY",`Quota 429 hit. Retrying in ${a}ms...`),l(),await new Promise(b=>setTimeout(b,a)),e++;continue}if(b9()&&429===k.response.status&&e<f-1){let a=await k.response.clone().text().catch(()=>""),b=(0,D.q)(k.response.headers),c=(0,bF.fL)(a,b);if(c.retryable){let a=(0,bF.vT)(b,e);bH?.warn?.("MODELSCOPE_RETRY",`429 ${c.kind}; retrying in ${a}ms (model remaining: ${c.snapshot.modelRemaining??"unknown"})`),l(),await new Promise(b=>setTimeout(b,a)),e++;continue}}if("codex"===b3&&"context-relay"!==bS&&429===k.response.status&&e<f-1){let c=a?.connectionId||d?.connectionId||bO,i=(0,D.q)(k.response.headers)["retry-after"]??null,j=i?1e3*Number.parseFloat(i):null;if(bH?.warn?.("CODEX_FAILOVER",`429 on connection ${String(c).slice(0,8)} (attempt ${e+1}/${f}), rotating account`),c&&(await (0,v.T)({failedConnectionId:String(c),model:b||b4||b8||null,rateLimitedUntil:new Date(Date.now()+(j||6e4)).toISOString(),credentials:d}),g.includes(String(c))||g.push(String(c))),h)try{(0,a9.J)(h,"codex")}catch{}let m=await (0,a8.c1)("codex",null,null,b||b4||b8||null,{excludeConnectionIds:[...g]}).catch(()=>null);if(!m||m.allRateLimited){if(bH?.warn?.("CODEX_FAILOVER","No more codex accounts available — returning 429"),c$)return l(),{...k,_executionCredentials:a};return{...k,_accountSemaphoreRelease:l,_executionCredentials:a}}let n=m.connectionId;bH?.info?.("CODEX_FAILOVER",`Rotating codex account: ${String(c).slice(0,8)} → ${n.slice(0,8)} (attempt ${e+2}/${f})`),(0,aI.y)({action:"codex.account_rotation",actor:bP?.name||"system",target:n,details:{failed_connection_id:c,new_connection_id:n,attempt:e+1,retry_after_ms:j}}),Object.assign(d,m),l(),e++;continue}if(c$){let d,e=k.response.body;if(!e)return l(),k;let f=k.response.status>=200&&k.response.status<300,g=!1,h=!1;if(f)try{let a=(0,an.xv)(cK).streamRecovery,c=!(0,an.TR)(cK)&&ch.streamRecoveryEnabled;g=a.enabled||c,h=!0===a.continueMidStream,c&&!a.enabled&&bH?.info?.("AGENT_GOAL",`agentGoalPolicy override: stream recovery enabled for goal request requestId=${cb} model=${b||b4||b8||"unknown"}`)}catch{g=!1,h=!1}if(g){let f=async c=>{try{let d=await (0,a6.C7)({executor:dw,provider:b3,model:b,signal:dA.signal,log:bH,execute:d=>(0,V.ov)(c2,()=>dw.execute({model:b,body:c,stream:di,credentials:a,signal:d,log:bH,extendedContext:b5,upstreamExtraHeaders:cU(b),clientHeaders:(0,ay.l)(bN?.headers,bQ),onCredentialsRefreshed:bJ,skipUpstreamRetry:bX,contextEditing:{enabled:dd}}))}),e=(0,a6.u6)(d);if(e.response.status>=200&&e.response.status<300&&e.response.body)return e.response.body;return await e.response.body?.cancel().catch(()=>{}),null}catch{return null}},g=h?a=>{let b=(0,am.am)(c,a);return b?f(b):Promise.resolve(null)}:void 0;d=(0,am.PM)(e,()=>f(c),{finalize:l,onRetry:(a,b)=>bH?.warn?.("STREAM_RECOVERY",`transparent early-retry ${a}/${al.LX.EARLY_RETRY_MAX} after ${b?.name||"truncation"}`),continueStream:g,onContinue:a=>bH?.warn?.("STREAM_RECOVERY",`mid-stream continuation attempt ${a}/${al.LX.EARLY_RETRY_MAX}`)})}else d=(0,aw.V)(e,l);return{...k,_executionCredentials:a,response:new Response(d,{status:k.response.status,statusText:k.response.statusText,headers:new Headers((0,D.q)(k.response.headers))})}}return{...k,_executionCredentials:a,_accountSemaphoreRelease:l}}catch(a){throw l(),a}}})();if(c$)return g;let h=g.response.status;g._executionCredentials?.connectionId&&g._executionCredentials?.apiKey&&cm(h,g._executionCredentials),e="function"==typeof g._accountSemaphoreRelease?g._accountSemaphoreRelease:()=>{};let i=g.response.statusText,j=(0,D.q)(g.response.headers),k=new Headers(j);(0,z.PX)(k),(0,z.H5)(k);let l=(k.get("content-type")||"").toLowerCase(),m=await (0,au.Lc)(g.response,l,di);return e(),e=()=>{},{...g,response:new Response(m,{status:h,statusText:i,headers:k}),_dedupSnapshot:{status:h,statusText:i,headers:(f=[],k.forEach((a,b)=>f.push([b,a])),f),payload:m}}}catch(a){throw e(),a}};if(c&&dC&&dD){let a=await (0,bu.bu)(dD,e);return a.wasDeduplicated&&bH?.debug?.("DEDUP",`Joined in-flight request hash=${dD}`),(0,z.lw)(a.result)}return e()},dF=de&&"object"==typeof de&&!Array.isArray(de)?{...de,model:"string"==typeof de.model?de.model:cB,...!Array.isArray(de.messages)&&Array.isArray(a.messages)?{messages:a.messages}:{}}:de;(0,aO.pC)(c1,{providerRequest:dF});let dG=new Set([cB]),dH=cB;(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:"PENDING"}).catch(()=>{});let dI=de.messages?.length||de.contents?.length||de.request?.contents?.length||(de.conversationState?.history?.length??0)+ +!!de.conversationState?.currentMessage||0;if(bH?.debug?.("REQUEST",`${b3?.toUpperCase()} | ${b4} | ${dI} msgs`),bP?.id)try{let a=(0,ak.yM)(bP.id,b3||void 0,b4||void 0);if(a){let b="global"===a.scopeType?"account":`${a.scopeType} "${a.scopeValue}"`;return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.RATE_LIMITED,`Token limit exceeded for ${b}: ${a.tokensUsed}/${a.limitValue} tokens used in the current window. Please try again later.`,null,"TOKEN_LIMIT_EXCEEDED")}}catch(a){bH?.warn?.("TOKEN_LIMIT","Tier 2 token-limit check failed; allowing request",{err:a})}let dJ=null;try{let a=await dE(cB,!0);b$=a.response,b_=a.url,b0=a.headers,b1=c2.body(a.transformedBody);let b=ce();ci=cj(b1),dJ=(0,x.sS)(cD,b1,b0,bN?.headers),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"}),(0,bp.Kr)(b3,b,b$.headers,b$.status,b4);try{let{storeRateLimitHeaders:a}=await c.e(1999).then(c.bind(c,71999));a(b,b3,b$.headers)}catch{}}catch(f){if((0,aN.uw)(b4,b3,bO,!1),(0,av.rv)(f)){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${f.code}`}).catch(()=>{});let a=f.message||"Semaphore timeout";return cS({status:al.gx.RATE_LIMITED,error:a,providerRequest:b1||de,clientResponse:(0,ai.buildErrorBody)(al.gx.RATE_LIMITED,a),claudeCacheMeta:dJ,cacheSource:"upstream"}),cl(al.gx.RATE_LIMITED,f.code),{...c$?(0,av.E8)(al.gx.RATE_LIMITED,a,f.code):(0,ai.A1)(al.gx.RATE_LIMITED,a),errorType:"account_semaphore_capacity",errorCode:f.code}}let a="AbortError"===f.name?499:"TimeoutError"===f.name||"BodyTimeoutError"===f.name?al.gx.GATEWAY_TIMEOUT:f.status&&"number"==typeof f.status?f.status:al.gx.BAD_GATEWAY,b="AbortError"===f.name?"Request aborted":(0,ai.lR)(f,b3,b4,a),c=(0,av.lZ)(f),d=a===al.gx.GATEWAY_TIMEOUT&&("TimeoutError"===f.name||"BodyTimeoutError"===f.name),e=c===al.LD||d?"upstream_timeout":401===a?"authentication_error":void 0;if((0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${a}`}).catch(()=>{}),cS({status:a,error:b,providerRequest:b1||de,clientResponse:(0,ai.buildErrorBody)(a,b),claudeCacheMeta:dJ,cacheSource:"upstream"}),"AbortError"===f.name)return dA.handleError(f),(0,ai.A1)(499,"Request aborted");if(cl(a,c||(f instanceof Error&&f.name?f.name:"upstream_error")),console.log(`${M.lm.red}[ERROR] ${b}${M.lm.reset}`),c$&&c)return{...(0,av.E8)(a,b,c,e),errorType:e,errorCode:c};return(0,ai.A1)(a,b,null,c,e)}let dK=!1,dL=b$.status,dM="",dN=null,dO=null;if("qwen"===b3&&b$.status===al.gx.BAD_REQUEST){let a=await (0,ai.zL)(b$,b3);dL=a.statusCode,dM=a.message,dN=a.retryAfterMs,dO=a.responseBody,dK=!0}let dP="string"==typeof dO?dO:JSON.stringify(dO??{});if((0,bi.S8)(dP,dL)){let a=(0,bi.bB)(dP);a&&((0,bi.Io)(b3,a),bH?.info?.("TOOL_LIMIT",`Detected tool limit ${a} for ${b3}`))}let dQ="qwen"===b3&&dL===al.gx.BAD_REQUEST&&dM?.toLowerCase().includes("session has expired"),dR=cD===J.h.OPENAI_RESPONSES&&"stream_options"in de;if(dR&&delete de.stream_options,(b$.status===al.gx.UNAUTHORIZED||b$.status===al.gx.FORBIDDEN||dQ)&&!dR){let a="string"==typeof d?.refreshToken?d.refreshToken:null,b=!1,c=bJ?async a=>{b=!0,Object.assign(d,a),await bJ(a)}:void 0,e="string"==typeof d?.connectionId?d.connectionId.trim():"",f=e?async()=>{let a=await (0,ap.getProviderConnectionById)(e);return"string"==typeof a?.refreshToken?a.refreshToken:null}:null,g=await (0,T.qZ)(()=>(0,T.Ib)(f?{expectedRefreshToken:a,reread:f}:null,()=>(0,T.Bc)(c,()=>dw.refreshCredentials(d,bH))),3,bH,b3);if(g?.accessToken||g?.copilotToken){bH?.info?.("TOKEN",`${b3?.toUpperCase()} | refreshed`),!b&&(Object.assign(d,g),bJ&&await bJ(g));try{let a=String(de.model||cB),b=await (0,V.ov)(c2,()=>dw.execute({model:a,body:de,stream:di,credentials:dx(),signal:dA.signal,log:bH,extendedContext:b5,upstreamExtraHeaders:cU(a),clientHeaders:(0,ay.l)(bN?.headers,bQ),onCredentialsRefreshed:bJ,skipUpstreamRetry:bT,contextEditing:{enabled:dd}}));b.response.ok?(b$=b.response,b_=b.url,b0=new Headers(b.headers||{}),b1=c2.body(b.transformedBody),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"})):b$=b.response,dK=!1}catch(a){bH?.error?.("TOKEN",`${b3?.toUpperCase()} | retry after refresh failed: ${(0,ai.sanitizeErrorMessage)(a)}`)}}else if(bH?.warn?.("TOKEN",`${b3?.toUpperCase()} | refresh failed`),(0,T.jT)(g)&&bJ){let b=!1;if("string"==typeof bO&&bO&&a)try{let c=await (0,ap.getProviderConnectionById)(bO);(0,aq.Jv)(a,c?.refreshToken)&&(b=!0,bH?.warn?.("TOKEN",`${b3.toUpperCase()} | refresh_token already rotated by a concurrent refresh — keeping connection active`))}catch{}b||await bJ({testStatus:"expired",isActive:!1})}}if(await cn((0,D.q)(b$.headers),b$.status),!b$.ok){let a,b;(0,aN.uw)(b4,b3,bO,!1);let c=b$.status,e="",f=null;if(dK)c=dL,e=dM,f=dN;else{let d=await (0,ai.zL)(b$,b3);c=d.statusCode,e=d.message,f=d.retryAfterMs,dO=d.responseBody,a=d.errorCode,b=d.errorType}let g=(0,ao.Gm)(c,e,b3);if(429===c&&b9()){let a=(0,bF.fL)(e,(0,D.q)(b$.headers));g="quota_exhausted"===a.kind?ao.hr.QUOTA_EXHAUSTED:ao.hr.RATE_LIMITED,bH?.warn?.("MODELSCOPE_429",`${a.kind} (model remaining: ${a.snapshot.modelRemaining??"unknown"}, total remaining: ${a.snapshot.totalRemaining??"unknown"})`)}let h=ce();if(h&&g)try{if(g===ao.hr.FORBIDDEN)await (0,ap.rj)(h,{isActive:!1,testStatus:"banned",lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} banned (${c}) — disabling permanently`);else if(g===ao.hr.ACCOUNT_DEACTIVATED)(0,ar.x3)(h,d?.providerSpecificData?.extraApiKeys)?(await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} account deactivated (${c}) — has extra keys, keeping connection active`)):(await (0,ap.rj)(h,{isActive:!1,testStatus:"deactivated",lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} account deactivated (${c}) — disabling permanently`));else if(g===ao.hr.QUOTA_EXHAUSTED){let a=f||al.Bm.rateLimit,b=(0,x.pz)({provider:b3,model:dH,connectionId:h,credentials:d});if(b&&(0,bq.wl)(b,a),b9()&&h)(0,br.R7)(b3,h,b4,"quota_exhausted",a),console.warn(`[provider] Node ${h} ModelScope model quota exhausted (${c}) for ${b4} - ${Math.ceil(a/1e3)}s (connection stays active)`);else if((0,br.CY)(b3,h,b4,"quota_exhausted",a)){let b=(0,aG.dv)(b3,b4);console.warn(`[provider] Node ${h} ${b}-only quota exhausted (${c}) for ${b4} - ${Math.ceil(a/1e3)}s (cooldown_scope=${b}, ttl_source=${f?"upstream":"inferred"}, connection stays active)`)}else await (0,ap.rj)(h,{testStatus:"credits_exhausted",lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} exhausted quota (${c})`)}else g===ao.hr.UNAUTHORIZED?await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}):g===ao.hr.OAUTH_INVALID_TOKEN?(await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} OAuth token invalid (${c}) — token refresh available`)):g===ao.hr.PROJECT_ROUTE_ERROR&&(await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} project routing error (${c}) — not banning`))}catch{}(0,aN.E5)({model:b4,provider:b3,connectionId:h,status:`FAILED ${c}`}).catch(()=>{});let i=(0,ai.lR)(Error(e),b3,b4,c);if(console.log(`${M.lm.red}[ERROR] ${i}${M.lm.reset}`),f&&"antigravity"===b3){let a=Math.ceil(f/1e3);bH?.debug?.("RETRY",`Antigravity quota reset in ${a}s (${f}ms)`)}if(c0.logError(Error(e),b1||de),c0.logProviderResponse(b$.status,b$.statusText,b$.headers,dO),(0,bp.Kr)(b3,h,b$.headers,c,b4),h&&null!=dO&&(0,bp.ph)(b3,h,dO,c,b4),(0,bt.I2)(c,e)){let d=(0,bt.ec)(dH,dG);if(!d)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"model_unavailable"),(0,ai.A1)(c,i,f,a,b,dO);dG.add(d),dH=d,de.model=d,bH?.info?.("MODEL_FALLBACK",`${b4} unavailable (${c}) → trying ${d}`);try{let e=await dE(d,!1);if(!e.response.ok)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"model_unavailable"),(0,ai.A1)(c,i,f,a,b,dO);b$=e.response,b_=e.url,b0=e.headers,b1=c2.body(e.transformedBody),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"}),bH?.info?.("MODEL_FALLBACK",`Serving ${d} as fallback for ${b4}`)}catch{return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"model_unavailable"),(0,ai.A1)(c,i,f,a,b,dO)}}else{if(!(0,bt.A$)(c,e))return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,`upstream_${c}`),(0,ai.A1)(c,i,f,a,b,dO);let d=(0,bt.mu)(dH).filter(a=>a!==dH&&!dG.has(a)),g=(0,bt.BO)(dH,d)??(0,bt.ec)(dH,dG);if(!g)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"context_overflow"),(0,ai.A1)(c,i,f,a,b,dO);dG.add(g),dH=g,de.model=g,bH?.info?.("CONTEXT_OVERFLOW_FALLBACK",`${b4} context overflow → trying ${g}`);try{let d=await dE(g,!1);if(!d.response.ok)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"context_overflow"),(0,ai.A1)(c,i,f,a,b,dO);b$=d.response,b_=d.url,b0=d.headers,b1=c2.body(d.transformedBody),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"}),bH?.info?.("CONTEXT_OVERFLOW_FALLBACK",`Serving ${g} as fallback for ${b4}`)}catch{return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"context_overflow"),(0,ai.A1)(c,i,f,a,b,dO)}}}if(!c$){let b=await (0,a4.C)({providerResponse:b$,upstreamStream:di,providerHeaders:b0,finalBody:b1,targetFormat:cD,model:b4,log:bH}),c=b.normalizedProviderPayload,e=b.looksLikeSSE;if("invalid_sse"===b.kind){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let a=b.message;return cS({status:al.gx.BAD_GATEWAY,error:a,providerRequest:b1||de,providerResponse:c,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,a),cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"invalid_sse_payload"),(0,aN.uw)(b4,b3,cF,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a)}if("invalid_json"===b.kind){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let a=b.detailedError,d=b.message;return cS({status:al.gx.BAD_GATEWAY,error:a,providerRequest:b1||de,providerResponse:c,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,d),cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"invalid_json_payload"),(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,d)}let f=b.responseBody,g=b.responsePayloadFormat;if((0,ao.Oc)(f)){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let a="Provider returned empty content";cS({status:al.gx.BAD_GATEWAY,error:a,providerRequest:b1||de,providerResponse:c,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,a),cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"empty_content");let b=(0,bt.ec)(dH,dG);if(!b)return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a);dG.add(b),dH=b,de.model=b,bH?.info?.("EMPTY_CONTENT_FALLBACK",`${b4} returned empty content → trying ${b}`);try{let c=await dE(b,!1);if(!c.response.ok)return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a);{let d=await (0,M.sh)(c.response.text());try{f=d?JSON.parse(d):{},b_=c.url,b0=c.headers,b1=c2.body(c.transformedBody),c0.logTargetRequest(b_,b0,b1),bH?.info?.("EMPTY_CONTENT_FALLBACK",`Serving ${b} as fallback for ${b4}`)}catch{return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a)}}}catch{return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a)}}let h=(0,aR.bF)(dr,b1??null);cr===J.h.CLAUDE&&cD===J.h.CLAUDE&&(f=(0,aR.X4)(f,h)),c0.logProviderResponse(b$.status,b$.statusText,b$.headers,e?{_streamed:!0,_format:"sse-json",summary:f}:f),ci=ck(f)??ci,bK&&await bK();let i=ce();await (0,A.kR)({provider:b3,connectionId:i,providerSpecificData:d?.providerSpecificData,log:bH});let j=(0,bn.M)(f,b3);j&&"object"==typeof j&&cQ(j,"provider"),(0,aX.L)({contextEditingEnabled:dd,provider:b3,responseBody:f,skillRequestId:cO,log:bH}),(0,aN.E5)({model:b4,provider:b3,connectionId:i,tokens:j,status:"200 OK"}).catch(()=>{});let p=(0,ax.ZC)(j);console.log("[USAGE-DEBUG] nonStreaming path: usage=",j?JSON.stringify(j):j,"provider=",b3,"model=",b4),(0,a5.p)(j,{traceEnabled:cc,provider:b3,connectionId:i,model:b4,startTime:ca,apiKeyInfo:bP,effectiveServiceTier:ci,isCombo:bT,comboStrategy:bS,endpoint:cq});let q=(0,I.nZ)(g,cw)?(0,bm.l)(f,g,cw,h):f,r=q;if("claude"!==cr||c$||"string"!=typeof q?.choices?.[0]?.message?.content||(q.choices[0].message.content=(0,by.yN)(q.choices[0].message.content)),q?.choices)for(let a of q.choices)a.message?.tool_calls&&a.message.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls");try{let a=q?.choices?.[0],b=a?.message;(0,bh.W)(b,b3,b4,{requestId:cO,messageIndex:0})}catch{}if(cw===J.h.OPENAI_RESPONSES)q=(0,bo.Xp)(q);else if(cw===J.h.OPENAI){let a=(0,u.VS)(bN?.headers??null);q=(0,bo.LG)(q,{stripReasoning:a,parseTextualReasoningTags:(0,bo.TH)(b3,b4)})}if((0,k.d)(q,a,cw),c4&&c6?.enabled&&c6.maxTokens>0){let b=(0,B.F7)(a);b&&(0,bA.B)(b,c4,cR);let c=(0,B.r7)(r);c&&(0,bA.B)(c,c4,cR)}let s=!!c4&&c6?.skillsEnabled===!0,t=cI.toolName?[cI.toolName]:[];(s||t.length>0)&&(q=await (0,bB.d)(q,(0,at.h)(cr),{apiKeyId:c4||"local",sessionId:cR,requestId:cO,builtinToolNames:t,customSkillExecutionEnabled:s}));let v=(0,l.X)({apiKeyInfo:bP,body:a,clientRawRequest:bN,log:bH,model:b4,provider:b3,responsePayloadFormat:g,clientResponseFormat:cw}),w=await bb.lS.runPostCallHooks(q,v);q=w.response;let x=(j&&"object"==typeof j?j:null)||(q?.usage&&"object"==typeof q.usage?q.usage:null),y=x?await (0,aQ.calculateCost)(b3,b4,x,{serviceTier:ci}):0;if(w.blocked){let a=w.message||"Response blocked by guardrail";return cS({status:al.gx.BAD_REQUEST,tokens:j,responseBody:f,providerRequest:b1||de,providerResponse:e?{_streamed:!0,_format:"sse-json",summary:f}:f,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_REQUEST,a),claudeCacheMeta:dJ,claudeCacheUsageMeta:p,cacheSource:"upstream"}),bP?.id&&y>0&&(0,aP.n)(bP.id,y),bH?.warn?.("GUARDRAIL",`Response blocked by ${w.guardrail||"guardrail"}: ${a}`),(0,aO.Gn)(c1,{providerResponse:f,clientResponse:q}),(0,ai.A1)(al.gx.BAD_REQUEST,a)}let z=(0,aj.OZ)(q);if(z){let a=Date.now()-ca,b=(()=>{try{return JSON.stringify(f||{}).length}catch{return -1}})();(0,aj.av)({mode:"nonstream",provider:b3,model:b4,connectionId:bO,reason:z,recvBytes:b,recvLines:-1,emitted:-1,events:{},ttftMs:a,elapsedMs:a}),(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let c=`[${b3}/${b4}] returned an empty response (no usable choices/output)`;return cS({status:al.gx.BAD_GATEWAY,tokens:j,responseBody:f,providerRequest:b1||de,providerResponse:e?{_streamed:!0,_format:"sse-json",summary:f}:f,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,c),claudeCacheMeta:dJ,claudeCacheUsageMeta:p,cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"malformed_translated_response"),(0,aN.uw)(b4,b3,cF,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,c)}(0,m.f)({enabled:c_,body:a,headers:bN?.headers,translatedResponse:q,model:b4,apiKeyId:bP?.id??void 0,usage:j,log:bH}),(0,bs.tm)(cp,q,200),c0.logConvertedResponse(q),cS({status:200,tokens:j,responseBody:f,providerRequest:b1||de,providerResponse:e?{_streamed:!0,_format:"sse-json",summary:f}:f,clientResponse:q,claudeCacheMeta:dJ,claudeCacheUsageMeta:p,cacheSource:"upstream"}),bP?.id&&y>0&&(0,aP.n)(bP.id,y),await (0,a$.S)({apiKeyId:bP?.id,connectionId:d?.connectionId,provider:b3,model:b4,usage:j,estimatedCost:y,log:bH}),await (0,a_.w)({apiKeyId:bP?.id,model:b4,provider:b3}),(0,aO.Gn)(c1,{providerResponse:f,clientResponse:q});let C=(0,n.r)({provider:b3,model:b4,startTime:ca,responseUsage:x,estimatedCost:y,requestId:cO,compressionResponseMeta:dc});return cL&&(0,ad.ly)(q,cL),{success:!0,response:(0,o.r)(q,C)}}b$=await (0,p.S)(b$,{log:bH,provider:b3,model:b4});let dS=(0,P.k)({baseTimeoutMs:al.TG,provider:b3,model:b4,body:b1||de,maxTimeoutMs:ch.detected?Math.max(al.kT,ch.readinessMaxTimeoutMs):al.kT});dS.timeoutMs!==dS.baseTimeoutMs&&bH?.debug?.("STREAM",`adaptive readiness timeout=${dS.timeoutMs}ms base=${dS.baseTimeoutMs}ms reason=${dS.reasons.join(",")}`);let dT=await (0,N.XP)(b$,{timeoutMs:dS.timeoutMs,provider:b3,model:b4,log:bH});if(!1===dT.ok){let{response:a,reason:b}=dT;return a.status,dT.code,dT.type,(0,aN.uw)(b4,b3,bO,!1),(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${a.status}`}).catch(()=>{}),cS({status:a.status,error:b,providerRequest:b1||de,clientResponse:(0,ai.buildErrorBody)(a.status,b),claudeCacheMeta:dJ,cacheSource:"upstream"}),cl(a.status,dT.code),{success:!1,status:a.status,error:b,errorType:dT.type,errorCode:dT.code,response:a}}b$=dT.response,bK&&await bK();let dU=(0,q.M)({providerHeaders:b$.headers,provider:b3,model:b4,pendingRequestId:cG,compressionResponseMeta:dc}),dV=(0,aR.bF)(dr,b1??null),dW=!1,dX=!1,dY=({status:b,usage:c,responseBody:e,providerPayload:f,clientPayload:g,error:h,errorCode:i,ttft:j})=>{process.stdout.write("[USAGE-DEBUG] >>> onStreamComplete ENTERED (stdout.write) <<< typeof="+typeof c+" status="+b+"\n"),console.log("[USAGE-DEBUG] >>> onStreamComplete ENTERED (console.log) <<<",typeof c,b);let k=b||200;if(dW)return;if(dW=!0,200!==k){if(dX)return;dX=!0}let l=(0,ax.ZC)(c),m=ce();if(200===k&&(0,A.kR)({provider:b3,connectionId:m,providerSpecificData:d?.providerSpecificData,log:bH}),200===k&&e)try{let a=e.choices,b=a?.[0]?.message;(0,bh.W)(b,b3,b4,{requestId:cO,messageIndex:0})}catch{}if(ci=ck(e)??ci,200===k&&(0,aX.L)({contextEditingEnabled:dd,provider:b3,responseBody:e,skillRequestId:cO,log:bH}),S.w({pendingRequestId:cG,model:b4,provider:b3,connectionId:m,providerResponse:f??e??void 0,clientResponse:g??e??void 0,status:k,error:h,errorCode:i}),c&&"object"==typeof c&&cQ(c,"stream"),console.log("[USAGE-DEBUG] onStreamComplete: streamUsage=",c?JSON.stringify(c):c,"provider=",b3,"model=",b4,"streamStatus=",k),(0,a2.K)(c,{provider:b3,model:b4,streamStatus:k,startTime:ca,ttft:j,streamErrorCode:i,connectionId:m,apiKeyInfo:bP,effectiveServiceTier:ci,isCombo:bT,comboStrategy:bS,endpoint:cq}),cS({status:k,error:h||void 0,tokens:c||{},responseBody:e??void 0,providerRequest:b1||de,providerResponse:f,clientResponse:g??e??void 0,claudeCacheMeta:dJ,claudeCacheUsageMeta:l,cacheSource:"upstream"}),(0,a3.H)({apiKeyId:bP?.id,provider:b3,model:b4,streamUsage:c,serviceTier:ci,calculateCost:aQ.calculateCost,recordCost:aP.n}),(0,a1.K)({apiKeyId:bP?.id,connectionId:d?.connectionId,provider:b3,model:b4,streamUsage:c,streamStatus:k,serviceTier:ci,calculateCost:aQ.calculateCost,log:bH}),c4&&c6?.enabled&&c6.maxTokens>0&&200===b){let b=(0,B.F7)(a);b&&(0,bA.B)(b,c4,cR);let c=(0,B.r7)(e??null);c&&(0,bA.B)(c,c4,cR)}(0,r.B)({enabled:c_,streamStatus:b,streamResponseBody:e,body:a,headers:bN?.headers,model:b4,apiKeyId:bP?.id??void 0,streamUsage:c,log:bH})},dZ=S.G({isFailureCompletionRecorded:()=>dX,isStreamCompletionRecorded:()=>dW,onStreamComplete:dY,persistFailureUsage:cl,onStreamFailure:bL}),d$=dZ.handleStreamFailure;dy=dZ.onPipelineStreamError,dz=a=>d$({status:499,message:`Client disconnected: ${a.reason}`,code:"client_disconnected",type:"client_disconnected"});let d_=cD===J.h.OPENAI_RESPONSES&&cw===J.h.OPENAI&&!cs&&!cu,d0=b1||a;d_?(bH?.debug?.("STREAM","Responses translation mode: openai-responses → openai"),b2=(0,M.i5)("openai-responses","openai",b3,c0,dV,b4,bO,d0,dY,bP,d$,cv)):(0,I.nZ)(cD,cw)?(bH?.debug?.("STREAM",`Translation mode: ${cD} → ${cw}`),b2=(0,M.i5)(cD,cw,b3,c0,dV,b4,bO,d0,dY,bP,d$,cv,(0,O.gN)({userAgent:cW,thinkingMarkerHeader:cX}))):(bH?.debug?.("STREAM","Standard passthrough mode"),console.log("[USAGE-DEBUG] chatCore: about to pass onStreamComplete, typeof=","function","name=",dY?.name,"toString=",dY?.toString?.().slice(0,500)),b2=(0,M.l2)(b3,c0,dV,b4,bO,d0,dY,bP,d$,cw));let d1=(0,s.l)({providerResponse:b$,transformStream:b2,streamController:dA,createPiiTransform:bY,clientRawRequestHeaders:bN?.headers,clientResponseFormat:cw,echoModel:cL,responseHeaders:dU});return await (0,a_.w)({apiKeyId:bP?.id,model:b4,provider:b3}),await (0,a0.c)({requestId:cb,body:a,model:b4,provider:b3,apiKeyInfo:bP}),{success:!0,response:new Response(d1,{headers:dU})}}aA=(bH.then?(await bH)():bH)[0],d()}catch(a){d(a)}})},93940:(a,b,c)=>{c.d(b,{f:()=>g});var d=c(8919),e=c(22070);let f={isCacheableForWrite:d.FD,isSmallEnoughForSemanticCache:e.H,generateSignature:d.gR,setCachedResponse:d.yv};function g(a,b=f){if(!a.enabled||!b.isCacheableForWrite(a.body,a.headers)||!b.isSmallEnoughForSemanticCache(a.translatedResponse))return;let c=b.generateSignature(a.model,a.body.messages??a.body.input,a.body.temperature,a.body.top_p,a.apiKeyId??void 0),d=a.usage?.prompt_tokens+a.usage?.completion_tokens||0;b.setCachedResponse(c,a.model,a.translatedResponse,d),a.log?.debug?.("CACHE",`Stored response for ${a.model} (${d} tokens)`)}},94400:(a,b,c)=>{c.d(b,{HX:()=>i,LY:()=>d,_5:()=>g,_y:()=>f,eF:()=>h,jo:()=>e});let d=()=>null,e=()=>null,f=()=>null,g=()=>null,h=()=>null,i=()=>null},97584:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>i});var e=c(55330),f=c(14046),g=c(2238),h=a([e]);async function i(a,b){let c=await (0,g.YA)(a);if(!c.enabled||"native"===c.mode)return(0,e.SB)(a);if("cliproxyapi"===c.mode)return b?.info?.("UPSTREAM_PROXY",`${a} routed through CLIProxyAPI (passthrough)`),(0,e.SB)("cliproxyapi");let d=(0,e.SB)(a),h=(0,e.SB)("cliproxyapi"),i=[429,500,502,503,504];try{let a=await (0,f.getCachedSettings)()||{};if("string"==typeof a.cliproxyapi_fallback_codes&&a.cliproxyapi_fallback_codes.trim()){let b=a.cliproxyapi_fallback_codes.split(",").map(a=>Number.parseInt(a.trim(),10)).filter(a=>!Number.isNaN(a));b.length>0&&(i=b)}}catch{}let j=Object.create(d);return j.execute=async c=>{let e,f;try{e=await d.execute(c)}catch(e){let d=e instanceof Error?e.message:String(e);b?.info?.("UPSTREAM_PROXY",`${a} native error (${d}), retrying via CLIProxyAPI`);try{return await h.execute(c)}catch(d){let c=d instanceof Error?d.message:String(d);throw b?.error?.("UPSTREAM_PROXY",`${a} CLIProxyAPI fallback also failed: ${c}`),d}}if(f=e.response.status,!i.includes(f)&&0!==f)return e;b?.info?.("UPSTREAM_PROXY",`${a} native failed (${e.response.status}), retrying via CLIProxyAPI`);try{return await h.execute(c)}catch(d){let c=d instanceof Error?d.message:String(d);throw b?.error?.("UPSTREAM_PROXY",`${a} CLIProxyAPI fallback also failed: ${c}`),d}},j}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},99328:(a,b,c)=>{},99482:(a,b,c)=>{c.d(b,{H:()=>d});function d(a){if(!a.apiKeyId||!a.streamUsage)return;let b=a.apiKeyId;a.calculateCost(a.provider,a.model,a.streamUsage,{serviceTier:a.serviceTier}).then(c=>{c>0&&a.recordCost(b,c)}).catch(()=>{})}},99718:(a,b,c)=>{new WeakMap},99751:(a,b,c)=>{c.d(b,{QN:()=>d,gN:()=>f});let d="x-omniroute-thinking-marker",e=["opencode"];function f(a){let b=function(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return"off"===b||"false"===b||"0"===b||"suppress"===b||"on"!==b&&"true"!==b&&"1"!==b&&"keep"!==b&&null}(a.thinkingMarkerHeader);if(null!==b)return b;var c=a.userAgent;if(!c||"string"!=typeof c)return!1;let d=c.toLowerCase();return e.some(a=>d.includes(a))}},99998:(a,b,c)=>{c.d(b,{c:()=>d});async function d(a){try{let{runOnResponse:b}=await c.e(5842).then(c.bind(c,65842));b({requestId:a.requestId,body:a.body,model:a.model,provider:a.provider,apiKeyInfo:a.apiKeyInfo,metadata:{}},{status:200}).catch(()=>{})}catch(a){}}}};
|
|
38
|
+
`)),g.terminal||g.sawToolCall)?(C(a),!0):!!await D(a)||(C(a),!0)};return new ReadableStream({async pull(a){for(;;){let b;try{b=await h.read()}catch(b){if(n)return;if(k.committed){if(i(b)&&await D(a)){o(),a.close();return}o(),a.error(b);return}if(i(b)&&await p(b))continue;B(a),o(),a.close();return}if(n)return;let{done:c,value:d}=b;if(c){if(k.committed){if(!x&&await D(a)){o(),a.close();return}o(),a.close();return}if(function(a){if(!a||0===a.byteLength)return!1;let b=new TextDecoder().decode(a);return b.includes("[DONE]")||b.includes("message_stop")}(k.peekBuffered())){B(a),o(),a.close();return}if(await p(new e))continue;B(a),o(),a.close();return}if(void 0===d)continue;if(k.committed)return void A(a,d);let f=k.push(d);if(f.length>0){for(let b of f)A(a,b);return}}},async cancel(a){n=!0,o();try{await h.cancel(a)}catch{}}})}},75224:(a,b,c)=>{c.d(b,{d:()=>d});function d(a,b,d){let{pendingWrite:e,skillRequestId:f}=d;(async()=>{try{e&&await e;let{attachCompressionUsageReceipt:d}=await c.e(2572).then(c.bind(c,2572));d(f,a,b)}catch{}})()}},75268:(a,b,c)=>{c.d(b,{M:()=>d});function d(a,b){if(!a||"object"!=typeof a)return null;let c="string"==typeof b?b.toLowerCase():"",d="claude"===c||"anthropic"===c||c.startsWith("anthropic-compatible");if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_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};if(d&&a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.input_tokens||void 0!==a.usage.output_tokens)){let b=a.usage.input_tokens||0,c=a.usage.cache_read_input_tokens||0,d=a.usage.cache_creation_input_tokens||0;return{prompt_tokens:b+c+d,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:c,cache_creation_input_tokens:d}}let e=a.response?.usage||a.usage;return e&&"object"==typeof e&&(void 0!==e.input_tokens||void 0!==e.output_tokens)?{prompt_tokens:e.input_tokens||0,completion_tokens:e.output_tokens||0,cache_read_input_tokens:e.cache_read_input_tokens,cached_tokens:e.input_tokens_details?.cached_tokens??e.prompt_tokens_details?.cached_tokens??e.cache_read_input_tokens,cache_creation_input_tokens:e.cache_creation_input_tokens,reasoning_tokens:e.output_tokens_details?.reasoning_tokens??e.completion_tokens_details?.reasoning_tokens??e.reasoning_tokens}:a.usageMetadata&&"object"==typeof a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}},76284:(a,b,c)=>{c.d(b,{D:()=>J});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f),h=c(47493);let i={default:[],override:[],filter:[],defaultRaw:[]},j=s(i),k="",l=-1,m=0,n=null,o="";function p(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function q(a){return Array.isArray(a)?a:[]}function r(a){return structuredClone(a)}function s(a){return{default:a.default.map(a=>({models:a.models.map(a=>({...a})),params:r(a.params)})),override:a.override.map(a=>({models:a.models.map(a=>({...a})),params:r(a.params)})),filter:a.filter.map(a=>({models:a.models.map(a=>({...a})),params:[...a.params]})),defaultRaw:a.defaultRaw.map(a=>({models:a.models.map(a=>({...a})),params:r(a.params)}))}}function t(a){return q(a).map(a=>{let b="string"==typeof a?.name?a.name.trim():"",c="string"==typeof a?.protocol?a.protocol.trim():"";return b?c?{name:b,protocol:c}:{name:b}:null}).filter(a=>!!a)}function u(a){return q(a).map(a=>{let b=t(a?.models),c=p(a?.params);return 0===b.length||0===Object.keys(c).length?null:{models:b,params:c}}).filter(a=>!!a)}function v(a){let b=p(a),c=q(b["default-raw"]),d=[...q(b.defaultRaw),...c];return{default:u(b.default),override:u(b.override),filter:q(b.filter).map(a=>{let b=t(a?.models),c=q(a?.params).map(a=>"string"==typeof a?a.trim():"").filter(Boolean);return 0===b.length||0===c.length?null:{models:b,params:c}}).filter(a=>!!a),defaultRaw:u(d)}}async function w(a=!1){let b,c=process.env.OMNIROUTE_PAYLOAD_RULES_PATH||process.env.PAYLOAD_RULES_PATH||g().join(process.cwd(),"config","payloadRules.json"),d=Date.now();if(!(!a&&c===k&&d-m<(!Number.isFinite(b=Number.parseInt(process.env.OMNIROUTE_PAYLOAD_RULES_RELOAD_MS||"",10))||b<1e3?5e3:b))){if(n)return void await n;n=(async()=>{m=d,k=c;try{let b=await e().stat(c);if(!a&&l===b.mtimeMs)return;let d=await e().readFile(c,"utf-8"),f=JSON.parse(d);j=v(f),l=b.mtimeMs,o=""}catch(d){if(d?.code==="ENOENT"){j=s(i),l=-1,o="";return}let a=d instanceof Error?d.message:String(d),b=`${c}:${a}`;b!==o&&(console.warn(`[PAYLOAD_RULES] Failed to load ${c}: ${a}`),o=b)}})();try{await n}finally{n=null}}}async function x(){try{let{getCachedSettings:a}=await Promise.resolve().then(c.bind(c,89718)),b=await a(),d=b?.payloadRules;if(null==d)return null;return v(d)}catch{return null}}async function y(a={}){let b=await x();return b?s(b):(await w(!0===a.forceRefresh),s(j))}function z(a){return a.split(".").map(a=>a.trim()).filter(Boolean)}function A(a){return/^\d+$/.test(a)}function B(a,b){let c=z(b),d=a;for(let a of c){if(null==d)return;if(Array.isArray(d)){if(!A(a))return;d=d[Number(a)];continue}if("object"!=typeof d)return;d=d[a]}return d}function C(a,b,c){let d=z(b);if(0===d.length)return;let e=a;for(let a=0;a<d.length-1;a++){let b=d[a],c=A(d[a+1]);if(Array.isArray(e)){let a=Number(b);if(!Number.isInteger(a))return;(null==e[a]||"object"!=typeof e[a])&&(e[a]=c?[]:{}),e=e[a];continue}if(!e||"object"!=typeof e)return;let f=e;(null==f[b]||"object"!=typeof f[b]||Array.isArray(f[b])&&!c||!Array.isArray(f[b])&&c)&&(f[b]=c?[]:{}),e=f[b]}let f=d.at(-1);if(Array.isArray(e)){let a=Number(f);if(!Number.isInteger(a))return;e[a]=r(c);return}e&&"object"==typeof e&&(e[f]=r(c))}function D(a,b,c){return c.some(c=>(function(a,b){if(!a)return!0;let c=a.trim().toLowerCase();return b.some(a=>a.trim().toLowerCase()===c)})(c.protocol,b)&&(0,h.UF)(a,c.name))}async function E(a,b,c){return function(a,b,c,d){let e=r(a),f=[...new Set((Array.isArray(c)?c:[c]).map(a=>a.trim()).filter(Boolean))],g=[];for(let a of d.default)if(D(b,f,a.models))for(let[b,c]of Object.entries(a.params))void 0===B(e,b)&&(C(e,b,c),g.push({type:"default",path:b,value:r(c)}));for(let a of d.defaultRaw)if(D(b,f,a.models))for(let[b,c]of Object.entries(a.params)){if(void 0!==B(e,b))continue;let a=function(a){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return a}}(c);C(e,b,a),g.push({type:"default-raw",path:b,value:r(a)})}for(let a of d.override)if(D(b,f,a.models))for(let[b,c]of Object.entries(a.params))C(e,b,c),g.push({type:"override",path:b,value:r(c)});for(let a of d.filter)if(D(b,f,a.models))for(let b of a.params)(function(a,b){let c=z(b);if(0===c.length)return!1;let d=a;for(let a=0;a<c.length-1;a++){let b=c[a];if(Array.isArray(d)){if(!A(b))return!1;d=d[Number(b)];continue}if(!d||"object"!=typeof d)return!1;d=d[b]}let e=c.at(-1);if(Array.isArray(d)){if(!A(e))return!1;let a=Number(e);return!(a<0)&&!(a>=d.length)&&(d.splice(a,1),!0)}return!!d&&"object"==typeof d&&!!Object.hasOwn(d,e)&&(delete d[e],!0)})(e,b)&&g.push({type:"filter",path:b});return{payload:e,applied:g}}(a,b,c,await y())}var F=c(59591),G=c(95528),H=c(14170);async function I(a,b,d){if(d===H.h.OPENAI&&(0,G.R6)(b)&&!a.prompt_cache_key&&Array.isArray(a.messages)&&!["nvidia","codex","xai"].includes(b)){let{generatePromptCacheKey:b}=await c.e(7953).then(c.bind(c,47953)),d=b(a.messages);d&&(a={...a,prompt_cache_key:d})}return a}async function J(a){var b;let c,{translatedBody:d,modelToCall:e,provider:f,targetFormat:g,credentials:h,log:i}=a,j=d.model===e?d:{...d,model:e},k="string"==typeof j.model&&j.model.length>0?j.model:e,l=function({provider:a,targetFormat:b}){let c=new Set;return a&&c.add(a),b&&c.add(b),("openai-responses"===b||"openai-response"===b)&&c.add("openai"),"antigravity"===b&&c.add("gemini"),[...c]}({provider:f,targetFormat:g}),m=await E(j,k,l);return j=m.payload,m.applied.length>0&&i?.debug?.("PAYLOAD_RULES",`Applied ${m.applied.length} rule(s) for ${k} (${l.join(", ")}): ${m.applied.map(a=>{if("filter"===a.type)return`${a.type}:${a.path}`;let b=JSON.stringify(a.value),c="string"==typeof b&&b.length>80?`${b.slice(0,77)}...`:b;return`${a.type}:${a.path}=${c}`}).join(", ")}`),b=j=function(a,b,c){let d=(0,F.n9)(b);if(Array.isArray(a.tools)&&a.tools.length>d){let e=a.tools.slice(0,d);a={...a,tools:e},c?.debug?.("TOOL_LIMIT",`Truncated ${a.tools.length} tools to ${d} for ${b}`)}return a}(j,f,i),c="string"==typeof b.user&&b.user.trim().length>0,"qwen"!==f||h?.apiKey||"string"!=typeof h?.accessToken||!(h.accessToken.trim().length>0)||c||(b={...b,user:"omniroute-qwen-oauth"},i?.debug?.("QWEN","Injected fallback user for OAuth request")),j=b,j=await I(j,f,g)}},76896:(a,b,c)=>{c.d(b,{s:()=>d});function d(a,b,c){let{traceEnabled:d,startTime:e,traceId:f,log:g}=c;if(!d)return;let h=Date.now()-e,i="";if(b)try{i=` ${JSON.stringify(b)}`}catch{i=" [unserializable]"}g?.info?.("STAGE_TRACE",`${f} ${a} t=${h}ms${i}`)}},77311:(a,b,c)=>{c.d(b,{S:()=>i});var d=c(95374),e=c(49641);let f={withBodyTimeout:d.sh,synthesizeOpenAiSseFromJson:e.I};function g(a,b){let c=0;return new ReadableStream({async pull(d){if(c<a.length)return void d.enqueue(a[c++]);try{let{done:a,value:c}=await b.read();a?d.close():d.enqueue(c)}catch(a){d.error(a)}},async cancel(a){try{await b.cancel(a)}catch{}}})}async function h(a,b,c){let d=a.body.getReader(),e=[],f=new TextDecoder,h="",i=0;for(;i<4096;){let j=await c.withBodyTimeout(d.read());if(j.done||!j.value)break;if(e.push(j.value),i+=j.value.byteLength,"sse"===function(a){let b=a.replace(/^\uFEFF/,"").trimStart();if(!b)return"unknown";if(b.startsWith(":")||/^(?:data|event|id|retry)\s*:/i.test(b))return"sse";let c=b.toLowerCase();for(let a of["data","event","id","retry"]){if(a.startsWith(c))return"unknown";if(c.startsWith(a)){let b=c.slice(a.length);if(/^\s*$/.test(b))return"unknown";if(/^\s*:/.test(b))return"sse"}}return"non-sse"}(h+=f.decode(j.value,{stream:!0}))){let c=new Headers(a.headers);return c.delete("content-length"),c.set("content-type","text/event-stream"),b.log?.debug?.("STREAM",`Upstream returned SSE bytes with application/json content-type — preserving streaming body (${b.provider}/${b.model})`),{sseResponse:new Response(g(e,d),{status:a.status,statusText:a.statusText,headers:c}),jsonBody:new Response(null)}}}return{jsonBody:new Response(g(e,d))}}async function i(a,b,c=f){let d=(a.headers.get("content-type")||"").toLowerCase();if(!(a.body&&d.includes("application/json")&&!d.includes("text/event-stream")&&!d.includes("application/x-ndjson")))return a;let{sseResponse:e,jsonBody:g}=await h(a,b,c);if(e)return e;let j=await c.withBodyTimeout(g.text()),k=c.synthesizeOpenAiSseFromJson(j),l=new Headers(a.headers);return(l.delete("content-length"),k)?(b.log?.debug?.("STREAM",`Upstream returned application/json on a streaming request — converting to SSE (${b.provider}/${b.model})`),l.set("content-type","text/event-stream"),new Response(k,{status:a.status,statusText:a.statusText,headers:l})):new Response(j,{status:a.status,statusText:a.statusText,headers:l})}},77432:(a,b,c)=>{c.d(b,{Z:()=>e,d:()=>function a(b,c,e=3){if(e<=0||"codex"!==b||!c||"object"!=typeof c||Array.isArray(c))return null;let f=c.service_tier;if("string"==typeof f&&f.trim().length>0){let a=(0,d.yB)(f);if(a)return a}return a(b,c.response,e-1)}});var d=c(96303);function e(a,b,c){if("codex"!==a)return"standard";let e=(c&&"object"==typeof c&&!Array.isArray(c)?c:{}).service_tier;if("string"==typeof e&&e.trim().length>0){let a=(0,d.yB)(e);if(a)return a}return(0,d.vr)(b).serviceTier??"standard"}},77923:(a,b,c)=>{},79300:(a,b,c)=>{let d;c.d(b,{XY:()=>i});var e,f=c(78877);let g=(e=c.n(f)().getHeapStatistics().heap_size_limit/1048576,Number.isFinite(d=Number(process.env.HEAP_PRESSURE_THRESHOLD_MB))&&d>0?Math.floor(d):Math.max(Math.round(.85*e),400)),h="Service temporarily unavailable due to resource pressure. Retry shortly.";function i(a,b=g){return a<=b?null:(console.warn(`[chatCore] heap pressure guard tripped: ${Math.round(a)}MB > ${b}MB; returning 503`),{success:!1,status:503,error:h,response:new Response(JSON.stringify({error:{message:h,type:"server_error",code:"heap_pressure"}}),{status:503,headers:{"Content-Type":"application/json","Retry-After":"5"}})})}},81277:(a,b,c)=>{c.d(b,{K:()=>g});var d=c(47370),e=c(57708),f=c(26998);function g(a,b){if(!a||"object"!=typeof a)return void console.warn("[USAGE-DEBUG] recordStreamingUsageStats: usage is null/not-object, skipping",{usage:a,provider:b?.provider,model:b?.model});console.log("[USAGE-DEBUG] recordStreamingUsageStats: recording usage",{provider:b.provider,model:b.model,streamStatus:b.streamStatus,usageKeys:Object.keys(a||{})}),function(a,b){let{provider:c,model:e,streamStatus:f,startTime:g,ttft:h,streamErrorCode:i}=b;(0,d.sZ)({provider:c||"unknown",model:e||"unknown",tokens:a,status:String(f),success:200===f,latencyMs:Date.now()-g,timeToFirstTokenMs:h,errorCode:200===f?null:i||String(f),timestamp:new Date().toISOString(),connectionId:b.connectionId||void 0,apiKeyId:b.apiKeyInfo?.id||void 0,apiKeyName:b.apiKeyInfo?.name||void 0,serviceTier:b.effectiveServiceTier,comboStrategy:b.isCombo&&b.comboStrategy||void 0,endpoint:b.endpoint||void 0}).catch(a=>{console.error("Failed to save usage stats:",a.message)})}(a,b);if(b.apiKeyInfo?.id&&200===b.streamStatus)try{let c=(0,f.zP)(a);c>0&&(0,e.W_)(b.apiKeyInfo.id,b.provider||"unknown",b.model||"unknown",c)}catch{}}},81448:(a,b,c)=>{c.d(b,{B:()=>d});let d=async()=>void 0},81657:(a,b,c)=>{c.d(b,{Gp:()=>h,bu:()=>i,nC:()=>g});var d=c(77598);let e={enabled:!0,maxTemperatureForDedup:.1,timeoutMs:6e4},f=new Map;function g(a){let b={model:a.model??null,messages:a.messages??null,temperature:"number"==typeof a.temperature?a.temperature:1,tools:a.tools??null,tool_choice:a.tool_choice??null,max_tokens:a.max_tokens??null,response_format:a.response_format??null,top_p:a.top_p??null,frequency_penalty:a.frequency_penalty??null,presence_penalty:a.presence_penalty??null};return(0,d.createHash)("sha256").update(JSON.stringify(b)).digest("hex").slice(0,16)}function h(a,b=e){return!!b.enabled&&!0!==a.stream&&!(("number"==typeof a.temperature?a.temperature:1)>b.maxTemperatureForDedup)}async function i(a,b,c=e){let d,g;if(!c.enabled)return{result:await b(),wasDeduplicated:!1,hash:a};let h=f.get(a);if(h)return{result:await h,wasDeduplicated:!0,hash:a};if(f.size>=1e3){let a=f.keys().next().value;void 0!==a&&f.delete(a)}let j=new Promise((a,b)=>{d=a,g=b});f.set(a,j);let k=setTimeout(()=>{f.get(a)===j&&f.delete(a)},c.timeoutMs);try{let c=await b();return d(c),{result:c,wasDeduplicated:!1,hash:a}}catch(a){throw g(a),a}finally{clearTimeout(k),f.get(a)===j&&f.delete(a)}}},82317:(a,b,c)=>{let d;c.d(b,{Lc:()=>k});var e=c(95374),f=c(61408),g=c(26998),h=c(20669);class i extends Error{constructor(a,b){super(`Upstream non-streaming response exceeded the ${b}-byte cap (saw at least ${a} bytes)`),this.name="NonStreamingResponseTooLargeError",this.bytesSeen=a,this.maxBytes=b}}let j=Number.isFinite(d=Number.parseInt(String(process.env.OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES),10))&&d>0?d:0x4000000;async function k(a,b,c,d=j){if(!c||!a.body||!b.includes("text/event-stream")&&!b.includes("application/x-ndjson")){let b=Number.parseInt(a.headers.get("content-length")??"",10);if(Number.isFinite(b)&&b>d)throw new i(b,d);return(0,e.sh)(a.text())}return m(a.body,d)}async function l(a,b){let c=b>0?b-Date.now():0;if(b>0&&c<=0)throw(0,g.Iy)(f.r$);let{done:d,value:e}=await (0,g.JS)(a,c);return d?{kind:"done"}:e?{kind:"chunk",value:e}:{kind:"skip"}}async function m(a,b){let c=a.getReader(),d=new TextDecoder,e={currentEvent:"",pendingLine:""},g="",j=0,k=f.r$>0?Date.now()+f.r$:0,m=!1,n=a=>{if(!m){m=!0;try{c.cancel(a).catch(()=>{})}catch{}}};try{for(;;){let a=await l(c,k);if("done"===a.kind)break;if("skip"===a.kind)continue;if((j+=a.value.byteLength)>b)throw n("non-streaming response exceeded byte cap"),new i(j,b);let f=d.decode(a.value,{stream:!0});if(g+=f,(0,h.R)(e,f)){n("non-streaming bridge consumed terminal SSE event");break}}}catch(a){throw n(a),a}finally{g+=d.decode(),c.releaseLock()}return g}},83578:(a,b,c)=>{c(99718)},84444:(a,b,c)=>{c.a(a,async(a,b)=>{try{c(6906),c(87836),c(45684),c(19418);var d=c(55330);c(38048),c(47370),c(43659);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},86039:(a,b,c)=>{c.d(b,{A$:()=>k,BO:()=>n,I2:()=>j,ec:()=>l,mu:()=>m});var d=c(69190),e=c(40669),f=c(65067),g=c(36081);let h={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-fable-5":["claude-opus-4-8","claude-opus-4-7","claude-sonnet-4-6"],"claude-opus-4-8":["claude-opus-4-7","claude-opus-4-6","claude-sonnet-4-6"],"claude-opus-4-7":["claude-opus-4-6","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},i=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model","improperly formed request"];function j(a,b){if(404===a)return!0;if(400!==a&&403!==a)return!1;let c=b.toLowerCase();return i.some(a=>c.includes(a))}function k(a,b){return 400===a&&f.tJ.test(b)}function l(a,b){let c=(0,e.parseModel)(a),d=c.model||a,f=c.provider||c.providerAlias||"",i=f?`${f}/`:"",j=h[d.replace(/\./g,"-")]??h[d];if(!j)return null;let k=f?(0,g.qs)(f):null,l=k?new Set(k.models.map(a=>a.id)):null;for(let a of j){let c=a;if(l&&!l.has(a)){let b=a.replace(/-(\d+)-(\d+)$/,"-$1.$2"),d=a.replace(/-(\d+)-(\d+)-/,"-$1.$2-");l.has(b)?c=b:l.has(d)&&(c=d)}let d=`${i}${c}`;if(!b.has(d))return d}return null}function m(a){let b=(0,e.parseModel)(a),c=b.model||a,d=b.provider||b.providerAlias?`${b.provider||b.providerAlias}/`:"",f=h[c];return f?[a,...f.map(a=>`${d}${a}`)]:[a]}function n(a,b){let c=(0,e.parseModel)(a),f=c.provider||c.providerAlias||"unknown",g=c.model||a,h=(0,d.et)(f,g)??0,i=null,j=h;for(let c of b){if(c===a)continue;let b=(0,e.parseModel)(c),f=b.provider||b.providerAlias||"unknown",g=b.model||c,h=(0,d.et)(f,g)??0;h>j&&(j=h,i=c)}return i}},86735:(a,b,c)=>{c.d(b,{DP:()=>e,lS:()=>d});let d={runPostCallHooks:async(a,b)=>({response:a,blocked:!1})},e=()=>void 0},87028:(a,b,c)=>{c(83578),c(87836),c(45684),c(47370),c(43659)},88814:(a,b,c)=>{c.d(b,{$:()=>f});var d=c(62156),e=c(87094);function f(a,b,c){let f=b?.connectionId;if(!f)return;let g=b.providerSpecificData,h=g?.extraApiKeys??[],i=g?.apiKeyHealth,j=g?.selectedKeyId??"primary";if((0,d.Wt)(f,h),401===a){let a=(0,d.h$)(f,j);c?.warn?.("AUTH",`401 on connection ${f.slice(0,8)} - key marked as failed (failure #${a.failures})`);let b=i?.[j]?.status,h=i?.[j]?.failures??0;(a.status!==b||a.failures!==h)&&(0,e.rj)(f,{providerSpecificData:{...g,apiKeyHealth:{...i,[j]:a}}}).catch(a=>{c?.error?.("DB",`Failed to persist apiKeyHealth: ${a instanceof Error?a.message:String(a)}`)})}else if(402===a){let a=(0,d.b2)(f,j);c?.error?.("AUTH",`402 on connection ${f.slice(0,8)} - key ${j} marked invalid (insufficient balance)`);let b=i?.[j]?.status;a.status!==b&&(0,e.rj)(f,{providerSpecificData:{...g,apiKeyHealth:{...i,[j]:a}}}).catch(a=>{c?.error?.("DB",`Failed to persist apiKeyHealth: ${a instanceof Error?a.message:String(a)}`)})}else if(a>=200&&a<300){let a=(0,d.y$)(f,j),b=i?.[j]?.status;("warning"===b||"invalid"===b)&&(0,e.rj)(f,{providerSpecificData:{...g,apiKeyHealth:{...i,[j]:a}}}).catch(a=>{c?.error?.("DB",`Failed to persist apiKeyHealth: ${a instanceof Error?a.message:String(a)}`)})}}},88925:(a,b,c)=>{c.d(b,{_:()=>d});let d=(a,b)=>b},89734:(a,b,c)=>{c.d(b,{c:()=>g});var d=c(57247),e=c(89625),f=c(14170);function g(a){let{provider:b,body:c,sourceFormat:g}=a,h=a.effectiveModel,i=null;if(("claude"===b||(0,e.Xv)(b))&&"string"==typeof h){let{baseModel:a,effort:b}=(0,d.WJ)(h);if(b){if(h=a,c&&"object"==typeof c&&!Array.isArray(c)){let d;c.model=a,g!==f.h.CLAUDE&&(null==(d=c.reasoning_effort??c.reasoning?.effort??c.output_config?.effort)||""===d)&&(c.reasoning_effort=b)}i=`Claude effort variant: stripped "-${b}" → ${a} (reasoning_effort=${b})`}}return{effectiveModel:h,log:i}}},89966:(a,b,c)=>{c.d(b,{n:()=>d});let d=async()=>void 0},91044:(a,b,c)=>{c.d(b,{rh:()=>O,Kr:()=>S,ph:()=>V,YO:()=>R});var d=c(57217),e=c.n(d),f=c(10254),g=c(36081),h=c(11191);class i{constructor(a={}){this.hits=new Map,this.now=a.now??Date.now}tryAcquire(a,b){let{requests:c,windowMs:d}=b;if(!(c>0)||!(d>0))return{allowed:!0,retryAfterMs:0};let e=this.now(),f=e-d,g=this.hits.get(a),h=g?g.filter(a=>a>f):[];if(h.length>=c){let b=Math.max(0,h[0]+d-e);return this.hits.set(a,h),{allowed:!1,retryAfterMs:b}}return h.push(e),this.set(a,h),{allowed:!0,retryAfterMs:0}}reset(a){void 0===a?this.hits.clear():this.hits.delete(a)}set(a,b){if(!this.hits.has(a)&&this.hits.size>=5e3){let a=this.hits.keys().next().value;void 0!==a&&this.hits.delete(a)}this.hits.set(a,b)}}let j={},k=new i;function l(a){if(a)return j[a]}async function m(a,b,c,d){let e=l(a);if(!e)return;let f=Math.max(e.windowMs,d&&d>0?d:0),g=Date.now();for(;;){let d=function(a,b){let c=l(a);if(!c)return 0;let d=k.tryAcquire(`${a}:${b||"_"}`,c);return d.allowed?0:Math.max(1,d.retryAfterMs)}(a,b);if(0===d||Date.now()-g>=f)return;await function(a,b){return new Promise((c,d)=>{let e=null,f=setTimeout(()=>{b&&e&&b.removeEventListener("abort",e),c()},a);b&&(e=()=>{clearTimeout(f);let a=b.reason,c=a instanceof Error?a:Error("string"==typeof a?a:"The operation was aborted");c.name="AbortError",d(c)},b.addEventListener("abort",e,{once:!0}))})}(Math.min(d,f),c)}}var n=c(50102);let o={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},p={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function q(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function r(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function s(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 t(){return"string"==typeof process.env.NODE_TEST_CONTEXT}function u(...a){t()||console.log(...a)}function v(...a){t()||console.error(...a)}let w=new Map,x=new Set,y=new Map,z={},A=new Map,B=null,C=new Set,D=!1,E=n.aD.requestQueue,F=new Map,G=null,H=Number.MAX_SAFE_INTEGER;function I(a){return"number"==typeof a&&a>0?a:H}function J(){var a,b;return{maxConcurrent:"number"==typeof(a=E.concurrentRequests)&&a>0?a:1e3,minTime:"number"==typeof(b=E.minTimeBetweenRequestsMs)&&b>0?b:0,reservoir:I(E.requestsPerMinute),reservoirRefreshAmount:I(E.requestsPerMinute),reservoirRefreshInterval:6e4}}function K(){let a=Date.now();for(let[b,c]of Array.from(w)){let d=A.get(b)??0;if(a-d>6e5){let e=c.counts();0===e.QUEUED&&0===e.RUNNING&&0===e.EXECUTING&&(w.delete(b),F.delete(b),A.delete(b),u(`🧹 [RATE-LIMIT] Evicting idle limiter: ${b} (inactive for ${Math.round((a-d)/1e3)}s)`),N(c.disconnect()))}}for(let[b,c]of Array.from(w)){let d=c.counts();if(0===d.QUEUED||d.RUNNING>0||d.EXECUTING>0)continue;let e=F.get(b);if(void 0===e){F.set(b,a);continue}let f=a-e;f<12e4||(!function(...a){t()||console.warn(...a)}(`🚨 [RATE-LIMIT] WEDGED: ${b} queued=${d.QUEUED} running=0 executing=0 stalled=${f}ms — force-resetting`),w.delete(b),F.delete(b),A.delete(b),N(c.disconnect()))}}let L=!1;function M(){for(let a of w.values())a.stop({dropWaitingJobs:!1});w.clear(),F.clear(),A.clear()}function N(a){return C.add(a),a.then(()=>{C.delete(a)},()=>{C.delete(a)}),a}async function O(){if(!D){D=!0;try{let{getProviderConnections:a,getSettings:b}=await Promise.resolve().then(c.bind(c,89718)),[d,e]=await Promise.all([a(),b()]);E={...(0,n.xv)(e).requestQueue};let{explicitCount:f,autoCount:h}=function(a,b){let c=new Set,d=0,e=0;for(let f of a){let a=r(f),h="string"==typeof a.id?a.id:"",i="string"==typeof a.provider?a.provider:"",j=!0===a.isActive,k=!0===a.rateLimitProtection;if(h&&i){if(k){c.add(h),d++;continue}(function(a){let b=process.env.RATE_LIMIT_AUTO_ENABLE?.trim().toLowerCase();return"false"!==b&&"0"!==b&&"off"!==b&&("true"===b||"1"===b||"on"===b||a.autoEnableApiKeyProviders)})(b)&&"apikey"===(0,g.oQ)(i)&&j&&(c.add(h),e++,Q(i,h))}}for(let a of Array.from(x))c.has(a)||function(a){for(let[b,c]of(x.delete(a),Array.from(w)))b.includes(a)&&(w.delete(b),F.delete(b),A.delete(b),N(c.disconnect()))}(a);for(let a of c)x.add(a);return{explicitCount:d,autoCount:e}}(d,E),i=J();for(let a of w.values())a.updateSettings(i);for(let a of(y.clear(),d)){let b=a.rateLimitOverrides;b&&"object"==typeof b&&!Array.isArray(b)&&y.set(String(a.id),b)}(f>0||h>0)&&u(`🛡️ [RATE-LIMIT] Loaded ${f} explicit + ${h} auto-enabled protection(s)`),await U(),!G&&(G=setInterval(K,3e4),G.unref?.(),L||(L=!0,process.once("SIGTERM",M),process.once("SIGINT",M)))}catch(a){v("[RATE-LIMIT] Failed to load settings:",a.message)}}}function P(a,b,c=null){return"codex"===a&&c?`${a}:${(0,h.IM)(b,c)}`:("gemini"===a||"github"===a)&&c?`${a}:${b}:${c}`:`${a}:${b}`}function Q(a,b,c=null){let d=P(a,b,c);if(!w.has(d)){let a=J(),c=y.get(b);c&&("number"==typeof c.maxConcurrent&&c.maxConcurrent>0&&(a.maxConcurrent=c.maxConcurrent),"number"==typeof c.minTime&&c.minTime>0&&(a.minTime=c.minTime),"number"==typeof c.rpm&&c.rpm>0&&(a.reservoir=c.rpm,a.reservoirRefreshAmount=c.rpm,a.reservoirRefreshInterval=6e4));let f=new(e())({...a,id:d});f.on("executing",()=>{F.set(d,Date.now())}),w.set(d,f),F.set(d,Date.now()),A.set(d,Date.now())}return A.set(d,Date.now()),w.get(d)}async function R(a,b,c,d,e=null){if(!x.has(b))return d();if(e?.aborted){let a=e.reason;if(a instanceof Error)throw a;let b=Error("string"==typeof a?a:"The operation was aborted");throw b.name="AbortError",b}await m(a,b,e,E.maxWaitMs);let f=Q(a,b,c),g=E.maxWaitMs,h=g&&g>0?{expiration:g}:{};try{if(!e)return await f.schedule(h,d);{let a,b=new Promise((b,c)=>{let d=()=>{let a=e.reason,b=a instanceof Error?a:Error("string"==typeof a?a:"The operation was aborted");b.name="AbortError",c(b)};e.aborted?d():(a=d,e.addEventListener("abort",a,{once:!0}))});try{return await Promise.race([f.schedule(h,d),b])}finally{a&&e.removeEventListener("abort",a)}}}catch(d){if(d?.message?.includes("This job timed out")){let e=P(a,b,c);u(`⏰ [RATE-LIMIT] ${e} — job expired after ${Math.ceil((g||0)/1e3)}s in queue, dropping`);let f=Error(`Request dropped after exceeding the local rate-limit queue budget maxWaitMs (${g}ms) for ${c?`${a}/${c}`:a} — this is OmniRoute's request queue (resilienceSettings.requestQueue.maxWaitMs), not an upstream timeout. Raise it in Settings → Resilience if this is queue saturation rather than a slow provider.`,{cause:d});throw f.code="RATE_LIMIT_QUEUE_TIMEOUT",f}throw d}}function S(a,b,c,d,e=null){if(!x.has(b)||!c)return;let f=function(a){if(!a)return{};let b={};if("function"==typeof a.forEach)try{return a.forEach((a,c)=>{b[c.toLowerCase()]=a}),b}catch{}if("function"==typeof a.entries)try{for(let[c,d]of a.entries())b[c.toLowerCase()]=d;return b}catch{}try{for(let[c,d]of Object.entries(a))b[c.toLowerCase()]=null==d?"":String(d)}catch{}return b}(c),g=Q(a,b,e),h="claude"===a||"anthropic"===a?p:o,i=a=>f[a.toLowerCase()]||null,j=parseInt(i(h.limit)),k=parseInt(i(h.remaining)),l=i(h.reset),m=i(h.retryAfter),n=i(o.overLimit);if(429===d){let c=q(m)||6e4,d=g.counts(),f=P(a,b,e);u(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s, dropping ${d.QUEUED} queued request(s)`),w.delete(f),F.delete(f),A.delete(f),N(g.disconnect());return}if("yes"===n){u(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){let c=q(l)||6e4,d={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(k)&&(k<.1*j?(d.reservoir=k,d.reservoirRefreshAmount=j,d.reservoirRefreshInterval=c,u(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${k}/${j} remaining, throttling`)):k>.5*j&&(d.minTime=0,d.reservoir=null,d.reservoirRefreshAmount=null,d.reservoirRefreshInterval=null)),g.updateSettings(d),function(a,b,c,d=null){z[P(a,b,d)]={...c,provider:a,connectionId:b,lastUpdated:Date.now()},B||(B=setTimeout(async()=>{B=null,await N(T())},6e4))}(a,b,{limit:j,remaining:k,minTime:d.minTime},e)}}async function T(){try{let{updateSettings:a}=await c.e(8279).then(c.bind(c,18279));await a({learnedRateLimits:JSON.stringify(z)}),u(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(z).length} provider(s)`)}catch(a){v("[RATE-LIMIT] Failed to persist learned limits:",a.message)}}async function U(){try{let{getSettings:a}=await c.e(8279).then(c.bind(c,18279)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=r(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=r(b),d=s(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",h=s(c.limit,0),i=s(c.remaining,0),j=s(c.minTime,0);if(z[a]={provider:g,connectionId:e,lastUpdated:d,...h>0?{limit:h}:{},...i>=0?{remaining:i}:{},...j>=0?{minTime:j}:{}},e&&x.has(e)){let b=w.get(a);if(b&&h>0){let a=j||Math.max(0,Math.floor(6e4/h)-10);b.updateSettings({minTime:a}),f++}}}f>0&&u(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){v("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}function V(a,b,c,d,e=null){if(!x.has(b))return;let{retryAfterMs:g,reason:h}=(0,f.Ks)(c);if(g&&g>0){let c=Q(a,b,e);u(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — body-parsed retry: ${Math.ceil(g/1e3)}s (${h})`),c.updateSettings({reservoir:0,reservoirRefreshAmount:60,reservoirRefreshInterval:g})}}},91137:(a,b,c)=>{c.d(b,{OZ:()=>e,av:()=>d}),c(43659);function d(a){let{mode:b,provider:c,model:d,connectionId:e,reason:f,recvBytes:g,recvLines:h,emitted:i,events:j,ttftMs:k,elapsedMs:l}=a,m=j&&"object"==typeof j?`[${Object.entries(j).map(([a,b])=>`${a}=${b}`).join(",")}]`:"[]";console.log(`[MALFORMED-200] mode=${b||"?"} provider=${c||"?"} model=${d||"?"} conn=${e||"-"} reason=${f||"empty"} recvBytes=${g??-1} recvLines=${h??-1} emitted=${i??-1} events=${m} ttft=${k??-1}ms dur=${l??-1}ms`)}function e(a){if(!a||"object"!=typeof a)return"empty_choices";if("response"===a.object){let b=a.output;if(!(Array.isArray(b)&&b.some(a=>!!a&&"object"==typeof a&&("message"===a.type?Array.isArray(a.content)&&a.content.some(a=>"string"==typeof a?.text&&a.text.length>0):!!a.type))))return"empty_choices";let c="string"==typeof a.status?a.status:"";return c&&!["completed","done"].includes(c)?"no_terminal":null}if("message"===a.type&&Array.isArray(a.content))return a.content.some(a=>null!==a&&"object"==typeof a&&("text"===a.type&&"string"==typeof a.text&&a.text.length>0&&"(empty response)"!==a.text||"thinking"===a.type&&("string"==typeof a.thinking&&a.thinking.length>0||"string"==typeof a.signature&&a.signature.length>0)||"redacted_thinking"===a.type||"tool_use"===a.type&&"string"==typeof a.id&&a.id.length>0||!1))?null:"empty_choices";let b=a.choices;return Array.isArray(b)&&0!==b.length&&b.some(a=>{let b=a?.message;return!!("string"==typeof b?.content&&b.content.length>0||Array.isArray(b?.content)&&b.content.some(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text&&a.text.length>0)||Array.isArray(b?.tool_calls)&&b.tool_calls.length>0)||"string"==typeof b?.reasoning_content&&!!(b.reasoning_content.length>0)})?null:"empty_choices"}},91479:(a,b,c)=>{c.d(b,{c:()=>h});let d={},e=async()=>null,f=async()=>void 0;var g=c(14170);async function h({body:a,memoryOwnerId:b,provider:c,effectiveModel:i,sourceFormat:j,targetFormat:k,backgroundReason:l,log:m}){let n=b?await e().catch(()=>d):null;if(b&&n&&n.enabled&&n.maxTokens,b&&n?.skillsEnabled){let c=Array.isArray(a.tools)?a.tools:[],d=f({provider:function(a){switch(a){case g.h.CLAUDE:return"anthropic";case g.h.GEMINI:return"google";default:return"openai"}}(j),existingTools:c,apiKeyId:b,model:"string"==typeof i?i:void 0,sourceFormat:j,targetFormat:k,backgroundReason:l,messages:Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:void 0});d.length>c.length&&(a={...a,tools:d},m?.debug?.("SKILLS",`Injected ${d.length-c.length} skills`))}return{body:a,memorySettings:n}}c(15028)},91779:(a,b,c)=>{c.d(b,{H:()=>e});var d=c(14170);function e(a){let{credentials:b,nativeCodexPassthrough:c,endpointPath:e,targetFormat:f,provider:g,ccSessionId:h}=a,i=c?{...b,requestEndpointPath:e}:b,j=i?.providerSpecificData&&"object"==typeof i.providerSpecificData?{...i.providerSpecificData}:{};f===d.h.OPENAI_RESPONSES&&("azure-ai"===g||"oci"===g)&&"responses"!==j.apiType&&(j.apiType="responses"),f===d.h.OPENAI_RESPONSES&&("azure-ai"===g||"oci"===g)&&(j._omnirouteForceResponsesUpstream=!0);let k={...i,providerSpecificData:j};return h?{...k,providerSpecificData:{...k?.providerSpecificData||{},ccSessionId:h}}:k}},92500:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{wk:()=>bI});var e=c(91479),f=c(30701),g=c(42722),h=c(34748),i=c(71886),j=c(37425),k=c(2504),l=c(47281),m=c(93940),n=c(52575),o=c(58987),p=c(77311),q=c(57804),r=c(57964),s=c(70274),t=c(6520),u=c(30261),v=c(53894),w=c(2238),x=c(68061),y=c(14288),z=c(37636),A=c(68118),B=c(71713),C=c(79300),D=c(58255),E=c(10361),F=c(37785),G=c(61393),H=c(66173),I=c(71961),J=c(14170),K=c(63851),L=c(33748),M=c(95374),N=c(5341),O=c(99751),P=c(33727),Q=c(17577),R=c(59657),S=c(48191),T=c(8590),U=c(71336),V=c(7882),W=c(32485),X=c(29908),Y=c(89734),Z=c(96281),$=c(70327),_=c(24791),aa=c(17812),ab=c(20614),ac=c(21078),ad=c(49125),ae=c(59114),af=c(36081),ag=c(69190),ah=c(24286),ai=c(43659),aj=c(91137),ak=c(57708),al=c(61408),am=c(72001),an=c(50102),ao=c(65067),ap=c(87094),aq=c(57843),ar=c(62156),as=c(88814),at=c(46022),au=c(82317),av=c(13700),aw=c(33285),ax=c(2275),ay=c(60999),az=c(91779),aA=c(97584),aB=c(30660),aC=c(15067),aD=c(76896),aE=c(75224),aF=c(76284),aG=c(21968),aH=c(94400),aI=c(11822),aJ=c(92085),aK=c(25438),aL=c(54772),aM=c(27349),aN=c(47370),aO=c(11745),aP=c(89966),aQ=c(90528),aR=c(33003),aS=c(38476),aT=c(48909),aU=c(35402),aV=c(51018),aW=c(22720),aX=c(49287),aY=c(1384),aZ=c(67381),a$=c(47345),a_=c(50012),a0=c(99998),a1=c(54e3),a2=c(81277),a3=c(99482),a4=c(58118),a5=c(9744),a6=c(26998),a7=c(89718),a8=c(80238),a9=c(69137),ba=c(54447),bb=c(86735),bc=c(95528),bd=c(14046),be=c(88925),bf=c(3848),bg=c(77432),bh=c(32709),bi=c(59591),bj=c(11191),bk=c(11002),bl=c(74016),bm=c(69896),bn=c(75268),bo=c(90447),bp=c(91044),bq=c(56033),br=c(10254),bs=c(4323),bt=c(86039),bu=c(81657),bv=c(14720),bw=c(53052),bx=c(32560),by=c(49333),bz=c(27277),bA=c(81448),bB=c(37398),bC=c(96303),bD=c(89625),bE=c(81167),bF=c(38443),bG=c(5483),bH=a([aA]);async function bI({body:a,modelInfo:b,credentials:d,log:bH,onCredentialsRefreshed:bJ,onRequestSuccess:bK,onStreamFailure:bL,onDisconnect:bM,clientRawRequest:bN,connectionId:bO,apiKeyInfo:bP=null,userAgent:bQ,comboName:bR,comboStrategy:bS=null,isCombo:bT=!1,comboStepId:bU=null,comboExecutionKey:bV=null,cachedSettings:bW=null,skipUpstreamRetry:bX=!1,createPiiTransform:bY=null,correlationId:bZ=null}){let b$,b_,b0,b1,b2;console.log("[USAGE-DEBUG] handleChatCore V2 entered, provider=",b?.provider,"model=",b?.model,"stream=",a?.stream);let{provider:b3,model:b4,extendedContext:b5}=b;try{let a=process.memoryUsage().heapUsed/1048576,b=(0,C.XY)(a);if(b)return b}catch{}let{apiFormat:b6,customModelTargetFormat:b7,requestedModel:b8}=(0,f.s)(b,a,b4),b9=()=>(0,bF.lz)(b3,d?.providerSpecificData),ca=Date.now(),cb=globalThis.crypto.randomUUID().slice(0,6);setImmediate(()=>{(0,aJ.I)("request.started",{id:cb,model:b4||"unknown",provider:b3||"unknown",timestamp:ca,comboName:bR||void 0})});let cc="true"===process.env.OMNIROUTE_TRACE||"true"===process.env.DEBUG,cd=(a,b)=>(0,aD.s)(a,b,{traceEnabled:cc,startTime:ca,traceId:cb,log:bH}),ce=()=>("string"==typeof d?.connectionId&&d.connectionId.trim().length>0?d.connectionId.trim():null)||bO||null,cf=null;a=(0,H.Jj)(a);{let b=(bW??await (0,bd.getCachedSettings)())||{};!0===b.customSystemPromptEnabled&&"string"==typeof b.customSystemPrompt&&b.customSystemPrompt&&(a=(0,H.Al)(a,b.customSystemPrompt),bH?.debug?.("CUSTOMSP","custom system prompt injected"))}let cg=await (0,aW.c)({requestId:cb,body:a,model:b4,provider:b3,apiKeyInfo:bP,log:bH});if(cg.blocked)return{success:!1,status:403,error:"Request blocked by plugin",response:cg.response};cg.body&&(a=cg.body);let ch=(0,Q.r9)(a,bN?.headers??null);ch.detected&&bH?.debug?.("AGENT_GOAL",`long-running goal mode enabled: readinessMax=${ch.readinessMaxTimeoutMs}ms streamRecovery=${ch.streamRecoveryEnabled}`);let ci="standard",cj=a=>(0,bg.Z)(b3,d?.providerSpecificData,a),ck=(a,b=3)=>(0,bg.d)(b3,a,b),cl=(a,b)=>{(0,aN.sZ)((0,g.p)({provider:b3,model:b4,connectionId:ce(),apiKeyInfo:bP,effectiveServiceTier:ci,isCombo:bT,comboStrategy:bS,statusCode:a,errorCode:b,latencyMs:Date.now()-ca,endpoint:cq})).catch(()=>{})},cm=(a,b)=>(0,as.$)(a,b,bH),cn=async(a,b=0)=>{let c=ce();if("codex"===b3&&c&&a)try{let e=d?.providerSpecificData&&"object"==typeof d.providerSpecificData?d.providerSpecificData:{},f=(0,bk.V)({headers:a,existingProviderData:e,modelForScope:b4||b8||"",status:b});if(!f)return;f.exhaustionLog&&bH?.debug?.("CODEX",f.exhaustionLog),429===b&&(0,bl.tg)(c),await (0,ap.rj)(c,{providerSpecificData:f.nextProviderData}),d.providerSpecificData=f.nextProviderData}catch(b){let a=b instanceof Error?b.message:String(b);bH?.debug?.("CODEX",`Failed to persist codex quota state: ${a}`)}},{hit:co,idempotencyKey:cp}=await (0,i.Q)({clientRawRequest:bN,provider:b3,model:b4,effectiveServiceTier:ci,startTime:ca,log:bH});if(co)return co;bO&&d&&!d.connectionId&&(d.connectionId=bO);let{endpointPath:cq,sourceFormat:cr,isResponsesEndpoint:cs,nativeCodexPassthrough:ct,isDroidCLI:cu,copilotCompatibleReasoning:cv,clientResponseFormat:cw}=(0,E.M)({clientRawRequest:bN,body:a,provider:b3,userAgent:bQ}),cx=(0,aM.c)(a,b4,bQ);if(cx)return cx;let{backgroundReason:cy,redirect:cz}=(0,bw.W)({body:a,headers:bN?.headers,model:b4});if(cz){let b=b4;bH?.info?.("BACKGROUND",`Background task redirect (${cz.reason}): ${b} → ${cz.degradedModel}`),b4=cz.degradedModel,a&&"object"==typeof a&&(a.model=b4),(0,aI.y)({action:"routing.background_task_redirect",actor:bP?.name||"system",target:bO||b3||"chat",details:{original_model:b,redirected_to:cz.degradedModel,reason:cz.reason}})}let cA=(0,_.kV)(b4),cB=cA===b4?b4:cA;cA!==b4&&bH?.info?.("ALIAS",`Model alias applied: ${b4} → ${cA}`);{let b=(0,Y.c)({provider:b3,effectiveModel:cB,body:a,sourceFormat:cr});cB=b.effectiveModel,b.log&&bH?.info?.("PARAMS",b.log)}let{alias:cC,targetFormat:cD}=(0,F.a)({provider:b3,resolvedModel:cA,apiFormat:b6,customModelTargetFormat:b7,providerSpecificData:d?.providerSpecificData}),cE=a&&"object"==typeof a&&!Array.isArray(a)?{...a,model:"string"==typeof a.model?a.model:cB}:a,cF=bO||d?.connectionId||null,cG=(0,aN.uw)(b4,b3,cF,!0,{clientEndpoint:bN?.endpoint||"/v1/chat/completions",clientRequest:bN?.body??a,providerRequest:cE,stage:"registered",correlationId:bZ})||(0,bz.K)();await (0,bp.rh)();let{body:cH,fallback:cI}=(0,bx.CS)(a,{provider:b3,sourceFormat:cr,targetFormat:cD,nativeCodexPassthrough:ct});cI.enabled&&(a=cH,bH?.info?.("TOOLS",`Converted ${cI.convertedToolCount} web_search tool(s) to OmniRoute fallback for ${b3}`));let cJ=bP?.noLog===!0,cK=(bW??await (0,bd.getCachedSettings)())||{};if(!0===cK.logToolSources){let b=(0,W.C5)(a.tools);b&&bH?.debug?.("TOOLS",b)}let cL=!0===cK.echoRequestedModelName&&"string"==typeof b8&&b8?b8:null,cM=!cJ&&(!0===cK.call_log_pipeline_enabled||"1"===cK.call_log_pipeline_enabled||"true"===cK.call_log_pipeline_enabled),cN=cM&&(0,aH.LY)(),cO=(0,bz.K)(),cP=null,cQ=(a,b)=>(0,aE.d)(a,b,{pendingWrite:cP,skillRequestId:cO}),cR=(bN?.headers&&"function"==typeof bN.headers.get?bN.headers.get("x-omniroute-session-id"):(0,u.oF)(bN?.headers??null,"x-omniroute-session-id"))||cO,cS=b=>(0,aC.b)(b,{provider:b3,connectionId:bO,model:b4,skillRequestId:cO,detailedLoggingEnabled:cM,reqLogger:c0,pendingRequestId:cG,clientRawRequest:bN,requestedModel:b8,credentials:d,startTime:ca,body:a,sourceFormat:cr,targetFormat:cD,comboName:bR,comboStepId:bU,comboExecutionKey:bV,tokensCompressed:cf,apiKeyInfo:bP,noLogEnabled:cJ,correlationId:bZ}),cT=d?.providerSpecificData&&"object"==typeof d.providerSpecificData&&"string"==typeof d.providerSpecificData.customUserAgent?d.providerSpecificData.customUserAgent.trim():"",cU=a=>(0,bf.K)({modelToCall:a,effectiveModel:cB,provider:b3,model:b4,resolvedModel:cA,sourceFormat:cr,connectionCustomUserAgent:cT,settings:cK}),cV=bN?.headers&&"function"==typeof bN.headers.get?bN.headers.get("accept")||bN.headers.get("Accept"):bN?.headers?.accept||bN?.headers?.Accept,cW=["string"==typeof bQ?bQ:"",(0,u.oF)(bN?.headers??null,"user-agent")||""].filter(Boolean).join(" "),cX=(0,u.oF)(bN?.headers??null,O.QN),cY=(0,by.nV)(a);if(a&&"object"==typeof a){let b=a;void 0!==cY&&(b.stream=cY),delete b.non_stream,delete b.disable_stream,delete b.disable_streaming,delete b.streaming}let cZ=af.Mo[b3]?.forceStream===!0,c$=!(ct&&(0,bj.XK)(cq))&&(0,by.ZA)(a?.stream,cV,cr,{userAgent:cW,streamDefaultMode:bP?.streamDefaultMode,providerRequiresStreaming:cZ});d=(0,be._)(b3,d,cK,{model:b8,body:a&&"object"==typeof a?a:null}),ci=cj(a),(0,bE.aJ)(cK.antigravitySignatureCacheMode);let c_=!1!==cK.semanticCacheEnabled,c0=await (0,U.q7)(cr,cD,b4,{enabled:cM,captureStreamChunks:cN,maxStreamChunkBytes:(0,aH.jo)(),requestId:cG,model:b4,provider:b3||void 0,connectionId:bO||d?.connectionId||void 0}),c1={id:cG,model:b4,provider:b3,connectionId:cF},c2=(0,V.Fs)(c0,c1);bN&&c0.logClientRawRequest(bN.endpoint,bN.body,bN.headers),bH?.debug?.("FORMAT",`${cr} → ${cD} | stream=${c$}`);let c3=await (0,j.d)({semanticCacheEnabled:c_,body:a,clientRawRequest:bN,model:b4,provider:b3,stream:!!c$,reqLogger:c0,effectiveServiceTier:ci,connectionId:bO,startTime:ca,log:bH,persistAttemptLogs:cS,apiKeyId:bP?.id??void 0});if(c3)return c3;a=(0,t.z)(a,cr,cD);let c4=(0,u.rS)(bN?.headers??null)?null:(0,B.sy)(bP),c5=await (0,e.c)({body:a,memoryOwnerId:c4,provider:b3,effectiveModel:cB,sourceFormat:cr,targetFormat:cD,backgroundReason:cy,log:bH});a=c5.body;let c6=c5.memorySettings,c7=a?(0,aK.m)(a).body:null,c8=c7?.messages||a?.contents||a?.request?.contents||[],c9=!1,da=null,db=null,dc=null,dd=!1;if(a&&Array.isArray(c8)&&c8.length>0){let b=(0,bv.estimateTokens)(c8),d=await (0,aS.E)(bH),e=d.settings,f=d.enabled;dd=d.contextEditingEnabled;try{let{selectCompressionStrategy:d,selectCompressionPlan:g,enginesMapDerivesStackedPipeline:h,activeComboResolves:i,applyCompressionAsync:j,resolveCacheAwareConfig:k,formatCompressionMeta:l,buildNamedComboLookup:m,formatCompressionAnnotation:n}=await Promise.all([c.e(1665),c.e(1041),c.e(4036)]).then(c.bind(c,14036)),{trackCompressionStats:o}=await c.e(2941).then(c.bind(c,35322)),p=e??{enabled:!1,defaultMode:"off",autoTriggerTokens:0,cacheMinutes:5,preserveSystemPrompt:!0,comboOverrides:{}};f&&e||bH?.debug?.("COMPRESSION","Prompt compression disabled or unavailable");let q=bR??null,r=!1,s=(a,b=[])=>{if(!a||0===a.pipeline.length)return!1;let c=[...new Set(a.languagePacks.map(a=>a.trim()).filter(a=>a.length>0))],d=["lite","full","ultra"].includes(a.outputModeIntensity)?a.outputModeIntensity:p.cavemanOutputMode?.intensity??"full",e=c.find(a=>a===p.languageConfig?.defaultLanguage)??c[0]??p.languageConfig?.defaultLanguage??"en",f={...p.comboOverrides??{}};for(let a of b)a&&(f[a]="stacked");return p={...p,compressionComboId:a.id,stackedPipeline:a.pipeline,languageConfig:{...p.languageConfig??{enabled:!1,defaultLanguage:"en",autoDetect:!0,enabledPacks:["en"]},enabled:!0,defaultLanguage:e,enabledPacks:c.length>0?c:p.languageConfig?.enabledPacks??["en"]},cavemanOutputMode:{...p.cavemanOutputMode??{enabled:!1,intensity:"full",autoClarity:!0},enabled:a.outputMode,intensity:d},comboOverrides:f},r=!0,!0};if(bT&&bR)try{let{getComboByName:a}=await Promise.resolve().then(c.bind(c,89718)),b=await a(bR);!b&&bR.startsWith("combo/")&&(b=await a(bR.substring(6)));let d=b?.config&&"object"==typeof b.config?b.config:{},e="string"==typeof d.compressionMode?d.compressionMode:"string"==typeof b?.compressionOverride?b.compressionOverride:null;("off"===e||"lite"===e||"standard"===e||"aggressive"===e||"ultra"===e||"rtk"===e||"stacked"===e)&&(p={...p,comboOverrides:{...p.comboOverrides??{},...bR?{[bR]:e}:{},...b?.id?{[String(b.id)]:e}:{}}},q=bR);let f=[b?.id,bR,bR.startsWith("combo/")?bR.substring(6):null].filter(a=>"string"==typeof a&&a.length>0);if(f.length>0){let{getCompressionComboForRoutingCombo:a}=await c.e(4885).then(c.bind(c,84885)),b=f.map(b=>a(b)).find(a=>null!==a)??null;s(b,f)&&(q=bR)}}catch(a){bH?.debug?.("COMPRESSION","Combo compression override lookup skipped: "+(a instanceof Error?a.message:String(a)))}let t={};try{let{listCompressionCombos:a}=await c.e(4885).then(c.bind(c,84885));t=m(a())}catch(a){bH?.debug?.("COMPRESSION","Named combos load skipped: "+(a instanceof Error?a.message:String(a)))}let v=(0,u.qb)(bN?.headers??null);v&&bH?.debug?.("COMPRESSION",`x-omniroute-compression header: ${v}`);let w=d(p,q,b,a,{provider:b3,targetFormat:cD,model:cB},t,v);if("stacked"===w&&!r&&!p.compressionComboId&&(0,aT.D)(p.stackedPipeline)&&!h(p)&&!i(p,t))try{let{getDefaultCompressionCombo:a}=await c.e(4885).then(c.bind(c,84885)),b=a();(0,aT.W)(b)&&s(b)&&bH?.debug?.("COMPRESSION",`Default compression combo applied: ${b?.id}`)}catch(a){bH?.debug?.("COMPRESSION","Default compression combo lookup skipped: "+(a instanceof Error?a.message:String(a)))}let x=null;if(p.enabled)try{let{resolveOutputStyleSelection:d}=await c.e(6088).then(c.bind(c,26088)),e=d(p);if(e.length>0){let{applyOutputStyles:d}=await c.e(1689).then(c.bind(c,51689)),f=p.languageConfig?.enabled===!0?p.languageConfig.defaultLanguage:"en";(x=d(a,e,f)).applied?(a=x.body,c9=!0,da=x.appliedStyles?.map(a=>`${a.id}:${a.level}`).join(",")??null,b=(0,bv.estimateTokens)(a?.messages??a?.input??[]),bH?.debug?.("COMPRESSION","Output styles applied")):x.skippedReason&&"no_styles"!==x.skippedReason&&bH?.debug?.("COMPRESSION",`Output styles skipped: ${x.skippedReason}`)}}catch(a){bH?.debug?.("COMPRESSION","Output styles skipped: "+(a instanceof Error?a.message:String(a)))}let y=a,z=b3&&cB?(0,bv.xb)(b3,cB):null,B="number"==typeof y?.max_tokens?y.max_tokens:null,C=null,D=g(p,q,b,y,{provider:b3,targetFormat:cD,model:cB},t,v,{modelContextLimit:z,requestMaxTokens:B,onAdaptive:a=>{C=a}}),E=D.mode;C&&!1===C.fit&&bH?.warn?.("COMPRESSION",`adaptive budget-exceeded: target=${C.target} headroomAfter=${C.headroomAfter} stages=${C.stagesApplied.join(",")} (best-effort plan sent, content preserved)`),dc=l(D),"stacked"!==E||!(D.stackedPipeline.length>0)||r||p.compressionComboId||(p={...p,stackedPipeline:D.stackedPipeline});let F=!1;if("off"!==E){let c={provider:b3,targetFormat:cD,model:cB},d=k(p,y,c),e=await j(y,E,{model:cB,config:d,cachingContext:c,principalId:bP?.id?String(bP.id):void 0,onEngineStep:a=>{try{let b={requestId:cb,comboId:null,mode:E,stepIndex:a.stepIndex,totalSteps:a.totalSteps,engine:a.engine,state:a.state,originalTokens:a.originalTokens,compressedTokens:a.compressedTokens,savingsPercent:a.savingsPercent,...void 0!==a.durationMs?{durationMs:a.durationMs}:{},timestamp:Date.now()};(0,aJ.I)("compression.step",b),(0,A.Pu)("compression.step",b)}catch(a){}}});if(e.stats){let c=n(e.stats);if(c&&(dc=`${dc}; ${c}`),e.compressed&&(a=e.body,b=e.stats.compressedTokens,cf=Math.max(0,e.stats.originalTokens-e.stats.compressedTokens)),e.compressed&&e.stats)try{let a={requestId:cb,comboId:e.stats.compressionComboId??null,mode:E,originalTokens:e.stats.originalTokens,compressedTokens:e.stats.compressedTokens,savingsPercent:e.stats.savingsPercent,engineBreakdown:(0,aL.A)(e.stats),validationWarnings:e.stats.validationWarnings,fallbackApplied:e.stats.fallbackApplied,...C?{adaptive:C}:{},timestamp:Date.now()};(0,aJ.I)("compression.completed",a),(0,A.Pu)("compression.completed",a)}catch(a){bH?.debug?.("COMPRESSION","compression.completed emit skipped: "+(a instanceof Error?a.message:String(a)))}e.compressed||e.stats.fallbackApplied||c9?(o(e.stats),F=!0,cP=(0,aV.W)({stats:e.stats,provider:b3,effectiveModel:cB,effectiveServiceTier:ci,comboName:bR,mode:E,compressionComboId:p.compressionComboId,skillRequestId:cO,cavemanOutputModeApplied:c9,cavemanOutputModeIntensity:da,log:bH})):(F=!0,cP=(0,aV.n)({stats:e.stats,provider:b3,effectiveModel:cB,effectiveServiceTier:ci,comboName:bR,mode:E,compressionComboId:p.compressionComboId,skillRequestId:cO,cavemanOutputModeApplied:c9,cavemanOutputModeIntensity:da,log:bH},"no_savings")),e.compressed&&((0,aY.B)({compressionInputBody:y,provider:b3,targetFormat:cD,effectiveModel:cB,mode:E,stats:e.stats,log:bH}),bH?.info?.("COMPRESSION",`Prompt compressed (${E}): ${e.stats.originalTokens} -> ${e.stats.compressedTokens} tokens (${e.stats.savingsPercent}% saved, techniques: ${e.stats.techniquesUsed.join(",")})`))}}c9&&!F&&(cP=(0,aZ.w)({comboName:bR,provider:b3,compressionComboId:p.compressionComboId,estimatedTokens:b,skillRequestId:cO,cavemanOutputModeIntensity:da,log:bH})),(0,aU.J)({outputStyleResult:x,skillRequestId:cO,traceId:cb,effectiveModel:cB,provider:b3,compressionComboId:p.compressionComboId,estimatedTokens:b,log:bH})}catch(a){bH?.warn?.("COMPRESSION","Compression pipeline error (non-fatal): "+(a instanceof Error?a.message:String(a)))}f||bH?.debug?.("CONTEXT","Skipping proactive context compression: Prompt Compression disabled");let g=(0,bv.xb)(b3,cB);if(bT&&bR){bH?.info?.("CONTEXT",`Attempting to resolve combo limits for comboName=${bR}`);try{let{getComboByName:a}=await Promise.resolve().then(c.bind(c,89718)),{parseModel:b}=await Promise.resolve().then(c.bind(c,40669)),{resolveComboTargets:d}=await Promise.all([c.e(1665),c.e(920)]).then(c.bind(c,90920)),e=await a(bR);!e&&bR.startsWith("combo/")&&(e=await a(bR.substring(6)));let f=[];if(e){let a=await (0,w.ah)();f=d(e,a).map(a=>{let c=b(a.modelStr);return(0,bv.xb)(c.provider,c.model)})}let h=(0,bv.HJ)({provider:b3,model:cB,comboTargetLimits:f});g=h.limit,bH?.info?.("CONTEXT",`Combo context limit: ${h.limit} (source=${h.source})`)}catch(a){bH?.warn?.("CONTEXT","Failed to resolve combo limits for compression: "+a)}}let h=0;Array.isArray(a.tools)&&(h=(0,bv.estimateTokens)(a.tools));let i=Math.max(1,Math.floor((Math.max(1,g)-h)*.7));if(bH?.debug?.("CONTEXT",`Checking compression: ${b} tokens vs ${i} threshold (${g} limit, ${h} reserved)`),db=a,f&&b>i){bH?.info?.("CONTEXT",`Proactive compression triggered: ${b} tokens > ${i} threshold (${g} limit)`);let c=(0,bv.qc)(a,{provider:b3,model:cB,maxTokens:i,reserveTokens:0});if(c.compressed){a=c.body;let b=c.stats;cf=Math.max(0,(b?.original??0)-(b?.final??0));let d=b&&"layers"in b&&Array.isArray(b.layers)?` (layers: ${b.layers.map(a=>a.name).join(", ")})`:"";bH?.info?.("CONTEXT",`Context compressed: ${b.original} → ${b.final} tokens${d}`),(0,aI.y)({action:"context.proactive_compression",actor:bP?.name||"system",target:bO||b3||"chat",details:{provider:b3,model:cB,original_tokens:b.original,final_tokens:b.final,layers:"layers"in b?b.layers:void 0}})}else bH?.debug?.("CONTEXT","Compression not applied: context already fits within target")}}else bH?.debug?.("CONTEXT",`Skipping compression check: body=${!!a}, hasMessages=${Array.isArray(c8)}`);let de=a,df=cr===J.h.CLAUDE&&cD===J.h.CLAUDE,dg=(0,bD.Xv)(b3),dh=(0,y.xu)({provider:b3,sourceFormat:cr,targetFormat:cD,headers:bN?.headers,userAgent:bQ}),di=c$||dg,dj=null,dk=(0,$.T)(b3||"",b4||"");if(Array.isArray(de?.messages)&&dk.length>0){let a=(0,$.k)(de.messages,dk);a.removedParts>0&&(de={...de,messages:a.messages},bH?.warn?.("CONTENT",`Stripped ${a.removedParts} incompatible content part(s) for ${b3}/${b4}`))}let dl=await (0,ba.$)().catch(()=>"auto"),dm=(0,bc.jH)({userAgent:bQ,isCombo:bT,comboStrategy:bS,targetProvider:b3,targetFormat:cD,settings:{alwaysPreserveClientCache:dl}});dm&&bH?.debug?.("CACHE",`Preserving client cache_control (client=${bQ?.substring(0,20)}, combo=${bT}, strategy=${bS}, provider=${b3})`);let dn=(a,b)=>(0,aB.x)(a,b,bH);try{if(ct)de={...a,_nativeCodexPassthrough:!0},bH?.debug?.("FORMAT","native codex passthrough enabled");else if(dg){let b={...a};if(cr===J.h.CLAUDE&&dh)bH?.debug?.("FORMAT","claude-code semantic passthrough enabled for compatible bridge");else if(cr!==J.h.OPENAI){let c=(0,a7.QT)(b3||"",b4||"",cr),e=(0,a7.e8)(b3||"",b4||"",cr);b=(0,I.GH)(cr,J.h.OPENAI,b4,{...a},c$,d,b3,c0,{normalizeToolCallId:c,preserveDeveloperRole:e,preserveCacheControl:dm,copilotClient:cv})}dj=(0,bD.L)(bN?.headers);let c=(0,bC.RG)(d?.providerSpecificData);de=(0,bD.$Y)({sourceBody:a,normalizedBody:b,claudeBody:cr===J.h.CLAUDE?a:null,model:b4,stream:di,sessionId:dj,cwd:process.cwd(),now:new Date,preserveCacheControl:dm,preserveClaudeMessages:cr===J.h.CLAUDE&&dh,summarizeThinking:!0===c.summarizeThinking}),bH?.debug?.("FORMAT","claude-code-compatible bridge enabled"),dh?(0,h.X)(de):dn(de,{preserveToolResultBlocks:!0})}else if(df){if((de={...a})._disableToolPrefix=!0,"claude"===b3&&(de.messages=(0,y.Nm)(de.messages,Z.xr),void 0!==de.temperature&&void 0!==de.top_p&&delete de.top_p),dh?((0,h.X)(de),Array.isArray(de.messages)&&(de.messages=(0,L.NI)(de.messages))):dn(de,{preserveToolResultBlocks:!0}),bH?.debug?.("FORMAT",`claude passthrough (preserveCache=${dm})`),void 0!==de.output_format){let a=de.output_config&&"object"==typeof de.output_config?de.output_config:{};void 0===a.format&&(a.format=de.output_format),de.output_config=a,delete de.output_format}if("claude"!==b3&&de.output_config&&"object"==typeof de.output_config){let a=de.output_config;delete a.format,0===Object.keys(a).length&&delete de.output_config}}else{if(de={...a},cD===J.h.CLAUDE&&(de._disableToolPrefix=!0,dn(de)),b3?.startsWith("openai-compatible-")&&Array.isArray(de.tools)){let a=de.tools.length;de.tools=de.tools.filter(a=>!a.type||"function"===a.type||!!a.function||!!a.name).map(a=>!a.type||"function"===a.type||a.function?a:{type:"function",function:{name:a.name,...void 0===a.description?{}:{description:a.description},...void 0!==a.parameters||void 0!==a.input_schema?{parameters:a.parameters??a.input_schema??{}}:{},...void 0===a.strict?{}:{strict:a.strict}}});let b=a-de.tools.length;b>0&&bH?.debug?.("TOOLS",`Dropped ${b} unconvertible tool(s) for openai-compatible provider`)}let b=(0,a7.QT)(b3||"",b4||"",cr),c=(0,a7.e8)(b3||"",b4||"",cr);de=(0,I.GH)(cr,cD,b4,de,c$,d,b3,c0,{normalizeToolCallId:b,preserveDeveloperRole:c,preserveCacheControl:dm,signatureNamespace:bO,copilotClient:cv,...db?{preCompressionBody:db}:{}})}}catch(g){try{let{runOnError:b}=await c.e(5842).then(c.bind(c,65842));await b({requestId:cb,body:a,model:b4,provider:b3,apiKeyInfo:bP,metadata:{}},g instanceof Error?g:Error(String(g)))}catch(a){bH?.debug?.("PLUGIN",`onError hook error (non-fatal): ${a instanceof Error?a.message:String(a)}`)}let b=Number(g?.statusCode),d=Number.isInteger(b)&&b>=400&&b<=599?b:al.gx.SERVER_ERROR,e=g?.message||"Invalid request",f="string"==typeof g?.errorType?g.errorType:null;if(bH?.warn?.("TRANSLATE",`Request translation failed: ${e}`),f)return(0,aN.uw)(b4,b3,bO,!1),{success:!1,status:d,error:e,response:new Response(JSON.stringify({error:{message:e,type:f,code:f}}),{status:d,headers:{"Content-Type":"application/json"}})};return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(d,e)}if(cd("post_translation"),cD===J.h.KIRO){let a=de?.conversationState?.currentMessage?.userInputMessage?.userInputMessageContext?.tools;if(a){let{tools:b,nameMap:c}=(0,K.u)(a);if(de.conversationState.currentMessage.userInputMessage.userInputMessageContext.tools=b,c.size>0){let a=de._toolNameMap instanceof Map?de._toolNameMap:new Map;c.forEach((b,c)=>a.set(c,b)),de._toolNameMap=a}}}cD===J.h.CLAUDE&&Array.isArray(de.tools)&&(de.tools=(0,G.C)(de.tools));let dp=de._toolNameMap,dq=df?(0,aR.O5)(a):null,dr=dp instanceof Map&&dp.size>0?dp:dq;delete de._toolNameMap,delete de._disableToolPrefix;let ds=cB;if("string"==typeof ds&&(ds.startsWith(`${b3}/`)?ds=ds.slice(b3.length+1):cC&&ds.startsWith(`${cC}/`)&&(ds=ds.slice(cC.length+1))),de.model=ds,"string"==typeof ds&&(de=(0,ah.mU)(de,ds),de=(0,ab.u)(de,ds),de=(0,ac.e)(de,ds)),"xiaomi-mimo"===b3&&(de=(0,aa.y)(de)),de=(0,X.QH)(de,{mode:cK.responsesPreviousResponseIdMode,sourceFormat:cr,targetFormat:cD,credentials:d}).body,("codex"===b3||b3?.startsWith("codex"))&&ds.match(/-(low|medium|high|xhigh)$/i)&&de.output_config&&"object"==typeof de.output_config){let a=de.output_config;a.effort&&(bH?.warn?.("PARAMS",`Stripped output_config.effort="${a.effort}" because model "${ds}" already encodes effort`),delete a.effort,0===Object.keys(a).length&&delete de.output_config)}let dt=(0,af.Gk)(b3,b4);if(dt.length>0){let a=[];for(let b of dt)Object.hasOwn(de,b)&&(a.push(b),delete de[b]);a.length>0&&bH?.warn?.("PARAMS",`Stripped unsupported params for ${b4}: ${a.join(", ")}`)}de=(0,ae.i)(de,b3,ds,bH),(0,ag.t5)({provider:b3,model:b4})||void 0===de.max_tokens||(void 0===de.max_completion_tokens&&(de.max_completion_tokens=de.max_tokens),delete de.max_tokens,bH?.debug?.("PARAMS",`Renamed max_tokens to max_completion_tokens for ${b4}`)),"openai"!==b3&&"store"in de&&delete de.store,cD===J.h.OPENAI_RESPONSES&&"stream_options"in de&&delete de.stream_options;let du=al.Aj[b3];if(du)for(let a of["max_tokens","max_completion_tokens"])"number"==typeof de[a]&&de[a]>du&&(bH?.debug?.("PARAMS",`Capping ${a} from ${de[a]} to ${du} for ${b3}`),de[a]=du);let dv=!1;if(bP?.id&&d?.connectionId)try{let{enforceQuotaShare:a}=await c.e(2604).then(c.bind(c,62604)),b=await a({apiKeyId:bP.id,connectionId:d.connectionId,provider:b3??"unknown",model:b4||void 0,estimatedCost:{}}).catch(a=>(bH?.warn?.("QUOTA_SHARE",`enforceQuotaShare failed; fail-open: ${a instanceof Error?a.message:String(a)}`),{kind:"allow"}));if("block"===b.kind){let{buildErrorBody:a}=await Promise.resolve().then(c.bind(c,43659));bH?.warn?.("QUOTA_SHARE",`[quotaShare] blocked apiKeyId=${bP.id} provider=${b3??"unknown"}: ${b.reason}`);let d={"Content-Type":"application/json"};return b.retryAfterSeconds&&(d["Retry-After"]=String(b.retryAfterSeconds)),new Response(JSON.stringify(a(429,b.reason)),{status:429,headers:d})}"allow"===b.kind&&b.deprioritize&&(dv=!0,bH?.info?.("QUOTA_SHARE",`[quotaShare] soft deprioritize active for apiKeyId=${bP.id} provider=${b3??"unknown"}`))}catch(a){bH?.warn?.("QUOTA_SHARE",`[quotaShare] enforceQuotaShare unexpected error; fail-open: ${a instanceof Error?a.message:String(a)}`)}if(dv&&bT&&bU)try{let{setCandidateQuotaSoftPenalty:a}=await Promise.all([c.e(1665),c.e(920)]).then(c.bind(c,90920));a(bV,bU,!0)}catch(a){bH?.warn?.("QUOTA_SHARE",`[quotaShare] could not set soft penalty on candidate: ${a instanceof Error?a.message:String(a)}`)}let dw=await (0,aA.M)(b3,bH),dx=()=>(0,az.H)({credentials:d,nativeCodexPassthrough:ct,endpointPath:cq,targetFormat:cD,provider:b3,ccSessionId:dj}),dy=null,dz=null,dA=(0,R.jd)({onDisconnect:a=>{let b=!1;try{b=dz?.(a)===!0}catch{}if(!b)try{(0,aO.Gn)(c1,{status:499,error:`Client disconnected: ${a.reason}`,errorCode:"client_disconnected"}),b=!0}catch{}try{bM?.(a)}catch{}return b},onError:a=>dy?.(a),provider:b3,model:b4,connectionId:bO,clientResponseFormat:cw,clientAbortSignal:bN?.signal}),dB={...de,model:`${b3}/${b4}`,stream:c$},dC=(0,bu.Gp)(dB),dD=dC?(0,bu.nC)(dB):null,dE=async(b=cB,c=!1)=>{let e=async()=>{let c=await (0,aF.D)({translatedBody:de,modelToCall:b,provider:b3,targetFormat:cD,credentials:d,log:bH});(0,aO.pC)(c1,{providerRequest:c,stage:"payload_prepared"});let e=()=>{};try{let f,g=await (async()=>{let e=0,f=b9()||"qwen"===b3||"codex"===b3?3:1,g=[],h="codex"===b3?(0,a8.Tn)(a,bN?.headers)??null:null;for(;e<f;){cd("pre_executor",{attempt:e}),(0,aO.pC)(c1,{stage:"sending_to_provider"});let a=dx(),i=a?.connectionId||bO,j=(0,x.VQ)(a),k=(0,x.pz)({provider:b3,model:b,connectionId:i,credentials:a});cd("pre_semaphore",{semaphoreKey:k,max:j}),k&&null!=j&&(0,aO.pC)(c1,{stage:"waiting_account_slot"});let l=k&&null!=j?await (0,bq.XC)(k,{maxConcurrency:j,signal:dA.signal}):()=>{};cd("post_semaphore"),(0,aO.pC)(c1,{stage:"waiting_rate_limit"});try{cd("pre_rate_limit",{connectionId:i});let j=await (0,bp.YO)(b3,i,b,async()=>(cd("inside_rate_limit",{connectionId:i}),(0,aO.pC)(c1,{stage:"rate_limit_slot_acquired"}),(0,a6.C7)({executor:dw,provider:b3,model:b,signal:dA.signal,log:bH,execute:d=>(0,V.ov)(c2,()=>dw.execute({model:b,body:c,stream:di,credentials:a,signal:d,log:bH,extendedContext:b5,upstreamExtraHeaders:cU(b),clientHeaders:(0,ay.l)(bN?.headers,bQ),onCredentialsRefreshed:bJ,skipUpstreamRetry:bX,contextEditing:{enabled:dd}}))})),dA.signal),k=(0,a6.u6)(j);if(cd("post_executor",{status:k?.response?.status}),"gemini"===b3&&(0,bG.Gz)(b),(0,aO.pC)(c1,{stage:"provider_response_started"}),401===k.response.status&&a?.connectionId&&cm(401,a),"qwen"===b3&&429===k.response.status&&e<f-1&&(await k.response.clone().text().catch(()=>"")).toLowerCase().includes("exceeded your current quota")){let a=1500*(e+1);bH?.warn?.("QWEN_RETRY",`Quota 429 hit. Retrying in ${a}ms...`),l(),await new Promise(b=>setTimeout(b,a)),e++;continue}if(b9()&&429===k.response.status&&e<f-1){let a=await k.response.clone().text().catch(()=>""),b=(0,D.q)(k.response.headers),c=(0,bF.fL)(a,b);if(c.retryable){let a=(0,bF.vT)(b,e);bH?.warn?.("MODELSCOPE_RETRY",`429 ${c.kind}; retrying in ${a}ms (model remaining: ${c.snapshot.modelRemaining??"unknown"})`),l(),await new Promise(b=>setTimeout(b,a)),e++;continue}}if("codex"===b3&&"context-relay"!==bS&&429===k.response.status&&e<f-1){let c=a?.connectionId||d?.connectionId||bO,i=(0,D.q)(k.response.headers)["retry-after"]??null,j=i?1e3*Number.parseFloat(i):null;if(bH?.warn?.("CODEX_FAILOVER",`429 on connection ${String(c).slice(0,8)} (attempt ${e+1}/${f}), rotating account`),c&&(await (0,v.T)({failedConnectionId:String(c),model:b||b4||b8||null,rateLimitedUntil:new Date(Date.now()+(j||6e4)).toISOString(),credentials:d}),g.includes(String(c))||g.push(String(c))),h)try{(0,a9.J)(h,"codex")}catch{}let m=await (0,a8.c1)("codex",null,null,b||b4||b8||null,{excludeConnectionIds:[...g]}).catch(()=>null);if(!m||m.allRateLimited){if(bH?.warn?.("CODEX_FAILOVER","No more codex accounts available — returning 429"),c$)return l(),{...k,_executionCredentials:a};return{...k,_accountSemaphoreRelease:l,_executionCredentials:a}}let n=m.connectionId;bH?.info?.("CODEX_FAILOVER",`Rotating codex account: ${String(c).slice(0,8)} → ${n.slice(0,8)} (attempt ${e+2}/${f})`),(0,aI.y)({action:"codex.account_rotation",actor:bP?.name||"system",target:n,details:{failed_connection_id:c,new_connection_id:n,attempt:e+1,retry_after_ms:j}}),Object.assign(d,m),l(),e++;continue}if(c$){let d,e=k.response.body;if(!e)return l(),k;let f=k.response.status>=200&&k.response.status<300,g=!1,h=!1;if(f)try{let a=(0,an.xv)(cK).streamRecovery,c=!(0,an.TR)(cK)&&ch.streamRecoveryEnabled;g=a.enabled||c,h=!0===a.continueMidStream,c&&!a.enabled&&bH?.info?.("AGENT_GOAL",`agentGoalPolicy override: stream recovery enabled for goal request requestId=${cb} model=${b||b4||b8||"unknown"}`)}catch{g=!1,h=!1}if(g){let f=async c=>{try{let d=await (0,a6.C7)({executor:dw,provider:b3,model:b,signal:dA.signal,log:bH,execute:d=>(0,V.ov)(c2,()=>dw.execute({model:b,body:c,stream:di,credentials:a,signal:d,log:bH,extendedContext:b5,upstreamExtraHeaders:cU(b),clientHeaders:(0,ay.l)(bN?.headers,bQ),onCredentialsRefreshed:bJ,skipUpstreamRetry:bX,contextEditing:{enabled:dd}}))}),e=(0,a6.u6)(d);if(e.response.status>=200&&e.response.status<300&&e.response.body)return e.response.body;return await e.response.body?.cancel().catch(()=>{}),null}catch{return null}},g=h?a=>{let b=(0,am.am)(c,a);return b?f(b):Promise.resolve(null)}:void 0;d=(0,am.PM)(e,()=>f(c),{finalize:l,onRetry:(a,b)=>bH?.warn?.("STREAM_RECOVERY",`transparent early-retry ${a}/${al.LX.EARLY_RETRY_MAX} after ${b?.name||"truncation"}`),continueStream:g,onContinue:a=>bH?.warn?.("STREAM_RECOVERY",`mid-stream continuation attempt ${a}/${al.LX.EARLY_RETRY_MAX}`)})}else d=(0,aw.V)(e,l);return{...k,_executionCredentials:a,response:new Response(d,{status:k.response.status,statusText:k.response.statusText,headers:new Headers((0,D.q)(k.response.headers))})}}return{...k,_executionCredentials:a,_accountSemaphoreRelease:l}}catch(a){throw l(),a}}})();if(c$)return g;let h=g.response.status;g._executionCredentials?.connectionId&&g._executionCredentials?.apiKey&&cm(h,g._executionCredentials),e="function"==typeof g._accountSemaphoreRelease?g._accountSemaphoreRelease:()=>{};let i=g.response.statusText,j=(0,D.q)(g.response.headers),k=new Headers(j);(0,z.PX)(k),(0,z.H5)(k);let l=(k.get("content-type")||"").toLowerCase(),m=await (0,au.Lc)(g.response,l,di);return e(),e=()=>{},{...g,response:new Response(m,{status:h,statusText:i,headers:k}),_dedupSnapshot:{status:h,statusText:i,headers:(f=[],k.forEach((a,b)=>f.push([b,a])),f),payload:m}}}catch(a){throw e(),a}};if(c&&dC&&dD){let a=await (0,bu.bu)(dD,e);return a.wasDeduplicated&&bH?.debug?.("DEDUP",`Joined in-flight request hash=${dD}`),(0,z.lw)(a.result)}return e()},dF=de&&"object"==typeof de&&!Array.isArray(de)?{...de,model:"string"==typeof de.model?de.model:cB,...!Array.isArray(de.messages)&&Array.isArray(a.messages)?{messages:a.messages}:{}}:de;(0,aO.pC)(c1,{providerRequest:dF});let dG=new Set([cB]),dH=cB;(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:"PENDING"}).catch(()=>{});let dI=de.messages?.length||de.contents?.length||de.request?.contents?.length||(de.conversationState?.history?.length??0)+ +!!de.conversationState?.currentMessage||0;if(bH?.debug?.("REQUEST",`${b3?.toUpperCase()} | ${b4} | ${dI} msgs`),bP?.id)try{let a=(0,ak.yM)(bP.id,b3||void 0,b4||void 0);if(a){let b="global"===a.scopeType?"account":`${a.scopeType} "${a.scopeValue}"`;return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.RATE_LIMITED,`Token limit exceeded for ${b}: ${a.tokensUsed}/${a.limitValue} tokens used in the current window. Please try again later.`,null,"TOKEN_LIMIT_EXCEEDED")}}catch(a){bH?.warn?.("TOKEN_LIMIT","Tier 2 token-limit check failed; allowing request",{err:a})}let dJ=null;try{let a=await dE(cB,!0);b$=a.response,b_=a.url,b0=a.headers,b1=c2.body(a.transformedBody);let b=ce();ci=cj(b1),dJ=(0,x.sS)(cD,b1,b0,bN?.headers),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"}),(0,bp.Kr)(b3,b,b$.headers,b$.status,b4);try{let{storeRateLimitHeaders:a}=await c.e(1999).then(c.bind(c,71999));a(b,b3,b$.headers)}catch{}}catch(f){if((0,aN.uw)(b4,b3,bO,!1),(0,av.rv)(f)){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${f.code}`}).catch(()=>{});let a=f.message||"Semaphore timeout";return cS({status:al.gx.RATE_LIMITED,error:a,providerRequest:b1||de,clientResponse:(0,ai.buildErrorBody)(al.gx.RATE_LIMITED,a),claudeCacheMeta:dJ,cacheSource:"upstream"}),cl(al.gx.RATE_LIMITED,f.code),{...c$?(0,av.E8)(al.gx.RATE_LIMITED,a,f.code):(0,ai.A1)(al.gx.RATE_LIMITED,a),errorType:"account_semaphore_capacity",errorCode:f.code}}let a="AbortError"===f.name?499:"TimeoutError"===f.name||"BodyTimeoutError"===f.name?al.gx.GATEWAY_TIMEOUT:f.status&&"number"==typeof f.status?f.status:al.gx.BAD_GATEWAY,b="AbortError"===f.name?"Request aborted":(0,ai.lR)(f,b3,b4,a),c=(0,av.lZ)(f),d=a===al.gx.GATEWAY_TIMEOUT&&("TimeoutError"===f.name||"BodyTimeoutError"===f.name),e=c===al.LD||d?"upstream_timeout":401===a?"authentication_error":void 0;if((0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${a}`}).catch(()=>{}),cS({status:a,error:b,providerRequest:b1||de,clientResponse:(0,ai.buildErrorBody)(a,b),claudeCacheMeta:dJ,cacheSource:"upstream"}),"AbortError"===f.name)return dA.handleError(f),(0,ai.A1)(499,"Request aborted");if(cl(a,c||(f instanceof Error&&f.name?f.name:"upstream_error")),console.log(`${M.lm.red}[ERROR] ${b}${M.lm.reset}`),c$&&c)return{...(0,av.E8)(a,b,c,e),errorType:e,errorCode:c};return(0,ai.A1)(a,b,null,c,e)}let dK=!1,dL=b$.status,dM="",dN=null,dO=null;if("qwen"===b3&&b$.status===al.gx.BAD_REQUEST){let a=await (0,ai.zL)(b$,b3);dL=a.statusCode,dM=a.message,dN=a.retryAfterMs,dO=a.responseBody,dK=!0}let dP="string"==typeof dO?dO:JSON.stringify(dO??{});if((0,bi.S8)(dP,dL)){let a=(0,bi.bB)(dP);a&&((0,bi.Io)(b3,a),bH?.info?.("TOOL_LIMIT",`Detected tool limit ${a} for ${b3}`))}let dQ="qwen"===b3&&dL===al.gx.BAD_REQUEST&&dM?.toLowerCase().includes("session has expired"),dR=cD===J.h.OPENAI_RESPONSES&&"stream_options"in de;if(dR&&delete de.stream_options,(b$.status===al.gx.UNAUTHORIZED||b$.status===al.gx.FORBIDDEN||dQ)&&!dR){let a="string"==typeof d?.refreshToken?d.refreshToken:null,b=!1,c=bJ?async a=>{b=!0,Object.assign(d,a),await bJ(a)}:void 0,e="string"==typeof d?.connectionId?d.connectionId.trim():"",f=e?async()=>{let a=await (0,ap.getProviderConnectionById)(e);return"string"==typeof a?.refreshToken?a.refreshToken:null}:null,g=await (0,T.qZ)(()=>(0,T.Ib)(f?{expectedRefreshToken:a,reread:f}:null,()=>(0,T.Bc)(c,()=>dw.refreshCredentials(d,bH))),3,bH,b3);if(g?.accessToken||g?.copilotToken){bH?.info?.("TOKEN",`${b3?.toUpperCase()} | refreshed`),!b&&(Object.assign(d,g),bJ&&await bJ(g));try{let a=String(de.model||cB),b=await (0,V.ov)(c2,()=>dw.execute({model:a,body:de,stream:di,credentials:dx(),signal:dA.signal,log:bH,extendedContext:b5,upstreamExtraHeaders:cU(a),clientHeaders:(0,ay.l)(bN?.headers,bQ),onCredentialsRefreshed:bJ,skipUpstreamRetry:bT,contextEditing:{enabled:dd}}));b.response.ok?(b$=b.response,b_=b.url,b0=new Headers(b.headers||{}),b1=c2.body(b.transformedBody),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"})):b$=b.response,dK=!1}catch(a){bH?.error?.("TOKEN",`${b3?.toUpperCase()} | retry after refresh failed: ${(0,ai.sanitizeErrorMessage)(a)}`)}}else if(bH?.warn?.("TOKEN",`${b3?.toUpperCase()} | refresh failed`),(0,T.jT)(g)&&bJ){let b=!1;if("string"==typeof bO&&bO&&a)try{let c=await (0,ap.getProviderConnectionById)(bO);(0,aq.Jv)(a,c?.refreshToken)&&(b=!0,bH?.warn?.("TOKEN",`${b3.toUpperCase()} | refresh_token already rotated by a concurrent refresh — keeping connection active`))}catch{}b||await bJ({testStatus:"expired",isActive:!1})}}if(await cn((0,D.q)(b$.headers),b$.status),!b$.ok){let a,b;(0,aN.uw)(b4,b3,bO,!1);let c=b$.status,e="",f=null;if(dK)c=dL,e=dM,f=dN;else{let d=await (0,ai.zL)(b$,b3);c=d.statusCode,e=d.message,f=d.retryAfterMs,dO=d.responseBody,a=d.errorCode,b=d.errorType}let g=(0,ao.Gm)(c,e,b3);if(429===c&&b9()){let a=(0,bF.fL)(e,(0,D.q)(b$.headers));g="quota_exhausted"===a.kind?ao.hr.QUOTA_EXHAUSTED:ao.hr.RATE_LIMITED,bH?.warn?.("MODELSCOPE_429",`${a.kind} (model remaining: ${a.snapshot.modelRemaining??"unknown"}, total remaining: ${a.snapshot.totalRemaining??"unknown"})`)}let h=ce();if(h&&g)try{if(g===ao.hr.FORBIDDEN)await (0,ap.rj)(h,{isActive:!1,testStatus:"banned",lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} banned (${c}) — disabling permanently`);else if(g===ao.hr.ACCOUNT_DEACTIVATED)(0,ar.x3)(h,d?.providerSpecificData?.extraApiKeys)?(await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} account deactivated (${c}) — has extra keys, keeping connection active`)):(await (0,ap.rj)(h,{isActive:!1,testStatus:"deactivated",lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} account deactivated (${c}) — disabling permanently`));else if(g===ao.hr.QUOTA_EXHAUSTED){let a=f||al.Bm.rateLimit,b=(0,x.pz)({provider:b3,model:dH,connectionId:h,credentials:d});if(b&&(0,bq.wl)(b,a),b9()&&h)(0,br.R7)(b3,h,b4,"quota_exhausted",a),console.warn(`[provider] Node ${h} ModelScope model quota exhausted (${c}) for ${b4} - ${Math.ceil(a/1e3)}s (connection stays active)`);else if((0,br.CY)(b3,h,b4,"quota_exhausted",a)){let b=(0,aG.dv)(b3,b4);console.warn(`[provider] Node ${h} ${b}-only quota exhausted (${c}) for ${b4} - ${Math.ceil(a/1e3)}s (cooldown_scope=${b}, ttl_source=${f?"upstream":"inferred"}, connection stays active)`)}else await (0,ap.rj)(h,{testStatus:"credits_exhausted",lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} exhausted quota (${c})`)}else g===ao.hr.UNAUTHORIZED?await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}):g===ao.hr.OAUTH_INVALID_TOKEN?(await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} OAuth token invalid (${c}) — token refresh available`)):g===ao.hr.PROJECT_ROUTE_ERROR&&(await (0,ap.rj)(h,{lastErrorType:g,lastError:e,errorCode:c}),console.warn(`[provider] Node ${h} project routing error (${c}) — not banning`))}catch{}(0,aN.E5)({model:b4,provider:b3,connectionId:h,status:`FAILED ${c}`}).catch(()=>{});let i=(0,ai.lR)(Error(e),b3,b4,c);if(console.log(`${M.lm.red}[ERROR] ${i}${M.lm.reset}`),f&&"antigravity"===b3){let a=Math.ceil(f/1e3);bH?.debug?.("RETRY",`Antigravity quota reset in ${a}s (${f}ms)`)}if(c0.logError(Error(e),b1||de),c0.logProviderResponse(b$.status,b$.statusText,b$.headers,dO),(0,bp.Kr)(b3,h,b$.headers,c,b4),h&&null!=dO&&(0,bp.ph)(b3,h,dO,c,b4),(0,bt.I2)(c,e)){let d=(0,bt.ec)(dH,dG);if(!d)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"model_unavailable"),(0,ai.A1)(c,i,f,a,b,dO);dG.add(d),dH=d,de.model=d,bH?.info?.("MODEL_FALLBACK",`${b4} unavailable (${c}) → trying ${d}`);try{let e=await dE(d,!1);if(!e.response.ok)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"model_unavailable"),(0,ai.A1)(c,i,f,a,b,dO);b$=e.response,b_=e.url,b0=e.headers,b1=c2.body(e.transformedBody),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"}),bH?.info?.("MODEL_FALLBACK",`Serving ${d} as fallback for ${b4}`)}catch{return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"model_unavailable"),(0,ai.A1)(c,i,f,a,b,dO)}}else{if(!(0,bt.A$)(c,e))return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,`upstream_${c}`),(0,ai.A1)(c,i,f,a,b,dO);let d=(0,bt.mu)(dH).filter(a=>a!==dH&&!dG.has(a)),g=(0,bt.BO)(dH,d)??(0,bt.ec)(dH,dG);if(!g)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"context_overflow"),(0,ai.A1)(c,i,f,a,b,dO);dG.add(g),dH=g,de.model=g,bH?.info?.("CONTEXT_OVERFLOW_FALLBACK",`${b4} context overflow → trying ${g}`);try{let d=await dE(g,!1);if(!d.response.ok)return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"context_overflow"),(0,ai.A1)(c,i,f,a,b,dO);b$=d.response,b_=d.url,b0=d.headers,b1=c2.body(d.transformedBody),c0.logTargetRequest(b_,b0,b1),(0,aO.pC)(c1,{providerRequest:b1,providerUrl:b_,stage:"provider_response_started"}),bH?.info?.("CONTEXT_OVERFLOW_FALLBACK",`Serving ${g} as fallback for ${b4}`)}catch{return cS({status:c,error:i,providerRequest:b1||de,providerResponse:dO,clientResponse:(0,ai.buildErrorBody)(c,i),cacheSource:"upstream"}),cl(c,"context_overflow"),(0,ai.A1)(c,i,f,a,b,dO)}}}if(!c$){let b=await (0,a4.C)({providerResponse:b$,upstreamStream:di,providerHeaders:b0,finalBody:b1,targetFormat:cD,model:b4,log:bH}),c=b.normalizedProviderPayload,e=b.looksLikeSSE;if("invalid_sse"===b.kind){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let a=b.message;return cS({status:al.gx.BAD_GATEWAY,error:a,providerRequest:b1||de,providerResponse:c,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,a),cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"invalid_sse_payload"),(0,aN.uw)(b4,b3,cF,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a)}if("invalid_json"===b.kind){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let a=b.detailedError,d=b.message;return cS({status:al.gx.BAD_GATEWAY,error:a,providerRequest:b1||de,providerResponse:c,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,d),cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"invalid_json_payload"),(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,d)}let f=b.responseBody,g=b.responsePayloadFormat;if((0,ao.Oc)(f)){(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let a="Provider returned empty content";cS({status:al.gx.BAD_GATEWAY,error:a,providerRequest:b1||de,providerResponse:c,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,a),cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"empty_content");let b=(0,bt.ec)(dH,dG);if(!b)return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a);dG.add(b),dH=b,de.model=b,bH?.info?.("EMPTY_CONTENT_FALLBACK",`${b4} returned empty content → trying ${b}`);try{let c=await dE(b,!1);if(!c.response.ok)return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a);{let d=await (0,M.sh)(c.response.text());try{f=d?JSON.parse(d):{},b_=c.url,b0=c.headers,b1=c2.body(c.transformedBody),c0.logTargetRequest(b_,b0,b1),bH?.info?.("EMPTY_CONTENT_FALLBACK",`Serving ${b} as fallback for ${b4}`)}catch{return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a)}}}catch{return(0,aN.uw)(b4,b3,bO,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,a)}}let h=(0,aR.bF)(dr,b1??null);cr===J.h.CLAUDE&&cD===J.h.CLAUDE&&(f=(0,aR.X4)(f,h)),c0.logProviderResponse(b$.status,b$.statusText,b$.headers,e?{_streamed:!0,_format:"sse-json",summary:f}:f),ci=ck(f)??ci,bK&&await bK();let i=ce();await (0,A.kR)({provider:b3,connectionId:i,providerSpecificData:d?.providerSpecificData,log:bH});let j=(0,bn.M)(f,b3);j&&"object"==typeof j&&cQ(j,"provider"),(0,aX.L)({contextEditingEnabled:dd,provider:b3,responseBody:f,skillRequestId:cO,log:bH}),(0,aN.E5)({model:b4,provider:b3,connectionId:i,tokens:j,status:"200 OK"}).catch(()=>{});let p=(0,ax.ZC)(j);console.log("[USAGE-DEBUG] nonStreaming path: usage=",j?JSON.stringify(j):j,"provider=",b3,"model=",b4),(0,a5.p)(j,{traceEnabled:cc,provider:b3,connectionId:i,model:b4,startTime:ca,apiKeyInfo:bP,effectiveServiceTier:ci,isCombo:bT,comboStrategy:bS,endpoint:cq});let q=(0,I.nZ)(g,cw)?(0,bm.l)(f,g,cw,h):f,r=q;if("claude"!==cr||c$||"string"!=typeof q?.choices?.[0]?.message?.content||(q.choices[0].message.content=(0,by.yN)(q.choices[0].message.content)),q?.choices)for(let a of q.choices)a.message?.tool_calls&&a.message.tool_calls.length>0&&"tool_calls"!==a.finish_reason&&(a.finish_reason="tool_calls");try{let a=q?.choices?.[0],b=a?.message;(0,bh.W)(b,b3,b4,{requestId:cO,messageIndex:0})}catch{}if(cw===J.h.OPENAI_RESPONSES)q=(0,bo.Xp)(q);else if(cw===J.h.OPENAI){let a=(0,u.VS)(bN?.headers??null);q=(0,bo.LG)(q,{stripReasoning:a,parseTextualReasoningTags:(0,bo.TH)(b3,b4)})}if((0,k.d)(q,a,cw),c4&&c6?.enabled&&c6.maxTokens>0){let b=(0,B.F7)(a);b&&(0,bA.B)(b,c4,cR);let c=(0,B.r7)(r);c&&(0,bA.B)(c,c4,cR)}let s=!!c4&&c6?.skillsEnabled===!0,t=cI.toolName?[cI.toolName]:[];(s||t.length>0)&&(q=await (0,bB.d)(q,(0,at.h)(cr),{apiKeyId:c4||"local",sessionId:cR,requestId:cO,builtinToolNames:t,customSkillExecutionEnabled:s}));let v=(0,l.X)({apiKeyInfo:bP,body:a,clientRawRequest:bN,log:bH,model:b4,provider:b3,responsePayloadFormat:g,clientResponseFormat:cw}),w=await bb.lS.runPostCallHooks(q,v);q=w.response;let x=(j&&"object"==typeof j?j:null)||(q?.usage&&"object"==typeof q.usage?q.usage:null),y=x?await (0,aQ.calculateCost)(b3,b4,x,{serviceTier:ci}):0;if(w.blocked){let a=w.message||"Response blocked by guardrail";return cS({status:al.gx.BAD_REQUEST,tokens:j,responseBody:f,providerRequest:b1||de,providerResponse:e?{_streamed:!0,_format:"sse-json",summary:f}:f,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_REQUEST,a),claudeCacheMeta:dJ,claudeCacheUsageMeta:p,cacheSource:"upstream"}),bP?.id&&y>0&&(0,aP.n)(bP.id,y),bH?.warn?.("GUARDRAIL",`Response blocked by ${w.guardrail||"guardrail"}: ${a}`),(0,aO.Gn)(c1,{providerResponse:f,clientResponse:q}),(0,ai.A1)(al.gx.BAD_REQUEST,a)}let z=(0,aj.OZ)(q);if(z){let a=Date.now()-ca,b=(()=>{try{return JSON.stringify(f||{}).length}catch{return -1}})();(0,aj.av)({mode:"nonstream",provider:b3,model:b4,connectionId:bO,reason:z,recvBytes:b,recvLines:-1,emitted:-1,events:{},ttftMs:a,elapsedMs:a}),(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${al.gx.BAD_GATEWAY}`}).catch(()=>{});let c=`[${b3}/${b4}] returned an empty response (no usable choices/output)`;return cS({status:al.gx.BAD_GATEWAY,tokens:j,responseBody:f,providerRequest:b1||de,providerResponse:e?{_streamed:!0,_format:"sse-json",summary:f}:f,clientResponse:(0,ai.buildErrorBody)(al.gx.BAD_GATEWAY,c),claudeCacheMeta:dJ,claudeCacheUsageMeta:p,cacheSource:"upstream"}),cl(al.gx.BAD_GATEWAY,"malformed_translated_response"),(0,aN.uw)(b4,b3,cF,!1),(0,ai.A1)(al.gx.BAD_GATEWAY,c)}(0,m.f)({enabled:c_,body:a,headers:bN?.headers,translatedResponse:q,model:b4,apiKeyId:bP?.id??void 0,usage:j,log:bH}),(0,bs.tm)(cp,q,200),c0.logConvertedResponse(q),cS({status:200,tokens:j,responseBody:f,providerRequest:b1||de,providerResponse:e?{_streamed:!0,_format:"sse-json",summary:f}:f,clientResponse:q,claudeCacheMeta:dJ,claudeCacheUsageMeta:p,cacheSource:"upstream"}),bP?.id&&y>0&&(0,aP.n)(bP.id,y),await (0,a$.S)({apiKeyId:bP?.id,connectionId:d?.connectionId,provider:b3,model:b4,usage:j,estimatedCost:y,log:bH}),await (0,a_.w)({apiKeyId:bP?.id,model:b4,provider:b3}),(0,aO.Gn)(c1,{providerResponse:f,clientResponse:q});let C=(0,n.r)({provider:b3,model:b4,startTime:ca,responseUsage:x,estimatedCost:y,requestId:cO,compressionResponseMeta:dc});return cL&&(0,ad.ly)(q,cL),{success:!0,response:(0,o.r)(q,C)}}b$=await (0,p.S)(b$,{log:bH,provider:b3,model:b4});let dS=(0,P.k)({baseTimeoutMs:al.TG,provider:b3,model:b4,body:b1||de,maxTimeoutMs:ch.detected?Math.max(al.kT,ch.readinessMaxTimeoutMs):al.kT});dS.timeoutMs!==dS.baseTimeoutMs&&bH?.debug?.("STREAM",`adaptive readiness timeout=${dS.timeoutMs}ms base=${dS.baseTimeoutMs}ms reason=${dS.reasons.join(",")}`);let dT=await (0,N.XP)(b$,{timeoutMs:dS.timeoutMs,provider:b3,model:b4,log:bH});if(!1===dT.ok){let{response:a,reason:b}=dT;return a.status,dT.code,dT.type,(0,aN.uw)(b4,b3,bO,!1),(0,aN.E5)({model:b4,provider:b3,connectionId:bO,status:`FAILED ${a.status}`}).catch(()=>{}),cS({status:a.status,error:b,providerRequest:b1||de,clientResponse:(0,ai.buildErrorBody)(a.status,b),claudeCacheMeta:dJ,cacheSource:"upstream"}),cl(a.status,dT.code),{success:!1,status:a.status,error:b,errorType:dT.type,errorCode:dT.code,response:a}}b$=dT.response,bK&&await bK();let dU=(0,q.M)({providerHeaders:b$.headers,provider:b3,model:b4,pendingRequestId:cG,compressionResponseMeta:dc}),dV=(0,aR.bF)(dr,b1??null),dW=!1,dX=!1,dY=({status:b,usage:c,responseBody:e,providerPayload:f,clientPayload:g,error:h,errorCode:i,ttft:j})=>{try{process.stdout.write("[USAGE-DEBUG] >>> onStreamComplete ENTERED (stdout.write) <<< typeof="+typeof c+" status="+b+"\n"),console.log("[USAGE-DEBUG] >>> onStreamComplete ENTERED (console.log) <<<",typeof c,b);let k=b||200;if(dW)return;if(dW=!0,200!==k){if(dX)return;dX=!0}let l=(0,ax.ZC)(c),m=ce();if(200===k&&(0,A.kR)({provider:b3,connectionId:m,providerSpecificData:d?.providerSpecificData,log:bH}),200===k&&e)try{let a=e.choices,b=a?.[0]?.message;(0,bh.W)(b,b3,b4,{requestId:cO,messageIndex:0})}catch{}if(ci=ck(e)??ci,200===k&&(0,aX.L)({contextEditingEnabled:dd,provider:b3,responseBody:e,skillRequestId:cO,log:bH}),S.w({pendingRequestId:cG,model:b4,provider:b3,connectionId:m,providerResponse:f??e??void 0,clientResponse:g??e??void 0,status:k,error:h,errorCode:i}),c&&"object"==typeof c&&cQ(c,"stream"),console.log("[USAGE-DEBUG] onStreamComplete: streamUsage=",c?JSON.stringify(c):c,"provider=",b3,"model=",b4,"streamStatus=",k),(0,a2.K)(c,{provider:b3,model:b4,streamStatus:k,startTime:ca,ttft:j,streamErrorCode:i,connectionId:m,apiKeyInfo:bP,effectiveServiceTier:ci,isCombo:bT,comboStrategy:bS,endpoint:cq}),cS({status:k,error:h||void 0,tokens:c||{},responseBody:e??void 0,providerRequest:b1||de,providerResponse:f,clientResponse:g??e??void 0,claudeCacheMeta:dJ,claudeCacheUsageMeta:l,cacheSource:"upstream"}),(0,a3.H)({apiKeyId:bP?.id,provider:b3,model:b4,streamUsage:c,serviceTier:ci,calculateCost:aQ.calculateCost,recordCost:aP.n}),(0,a1.K)({apiKeyId:bP?.id,connectionId:d?.connectionId,provider:b3,model:b4,streamUsage:c,streamStatus:k,serviceTier:ci,calculateCost:aQ.calculateCost,log:bH}),c4&&c6?.enabled&&c6.maxTokens>0&&200===b){let b=(0,B.F7)(a);b&&(0,bA.B)(b,c4,cR);let c=(0,B.r7)(e??null);c&&(0,bA.B)(c,c4,cR)}(0,r.B)({enabled:c_,streamStatus:b,streamResponseBody:e,body:a,headers:bN?.headers,model:b4,apiKeyId:bP?.id??void 0,streamUsage:c,log:bH})}catch(a){console.error("[USAGE-DEBUG] onStreamComplete CRITICAL ERROR:",a?.message||a,a?.stack?.substring(0,2e3))}},dZ=S.G({isFailureCompletionRecorded:()=>dX,isStreamCompletionRecorded:()=>dW,onStreamComplete:dY,persistFailureUsage:cl,onStreamFailure:bL}),d$=dZ.handleStreamFailure;dy=dZ.onPipelineStreamError,dz=a=>d$({status:499,message:`Client disconnected: ${a.reason}`,code:"client_disconnected",type:"client_disconnected"});let d_=cD===J.h.OPENAI_RESPONSES&&cw===J.h.OPENAI&&!cs&&!cu,d0=b1||a;d_?(bH?.debug?.("STREAM","Responses translation mode: openai-responses → openai"),b2=(0,M.i5)("openai-responses","openai",b3,c0,dV,b4,bO,d0,dY,bP,d$,cv)):(0,I.nZ)(cD,cw)?(bH?.debug?.("STREAM",`Translation mode: ${cD} → ${cw}`),b2=(0,M.i5)(cD,cw,b3,c0,dV,b4,bO,d0,dY,bP,d$,cv,(0,O.gN)({userAgent:cW,thinkingMarkerHeader:cX}))):(bH?.debug?.("STREAM","Standard passthrough mode"),console.log("[USAGE-DEBUG] chatCore: about to pass onStreamComplete, typeof=","function","name=",dY?.name,"toString=",dY?.toString?.().slice(0,500)),b2=(0,M.l2)(b3,c0,dV,b4,bO,d0,dY,bP,d$,cw));let d1=(0,s.l)({providerResponse:b$,transformStream:b2,streamController:dA,createPiiTransform:bY,clientRawRequestHeaders:bN?.headers,clientResponseFormat:cw,echoModel:cL,responseHeaders:dU});return await (0,a_.w)({apiKeyId:bP?.id,model:b4,provider:b3}),await (0,a0.c)({requestId:cb,body:a,model:b4,provider:b3,apiKeyInfo:bP}),{success:!0,response:new Response(d1,{headers:dU})}}aA=(bH.then?(await bH)():bH)[0],d()}catch(a){d(a)}})},93940:(a,b,c)=>{c.d(b,{f:()=>g});var d=c(8919),e=c(22070);let f={isCacheableForWrite:d.FD,isSmallEnoughForSemanticCache:e.H,generateSignature:d.gR,setCachedResponse:d.yv};function g(a,b=f){if(!a.enabled||!b.isCacheableForWrite(a.body,a.headers)||!b.isSmallEnoughForSemanticCache(a.translatedResponse))return;let c=b.generateSignature(a.model,a.body.messages??a.body.input,a.body.temperature,a.body.top_p,a.apiKeyId??void 0),d=a.usage?.prompt_tokens+a.usage?.completion_tokens||0;b.setCachedResponse(c,a.model,a.translatedResponse,d),a.log?.debug?.("CACHE",`Stored response for ${a.model} (${d} tokens)`)}},94400:(a,b,c)=>{c.d(b,{HX:()=>i,LY:()=>d,_5:()=>g,_y:()=>f,eF:()=>h,jo:()=>e});let d=()=>null,e=()=>null,f=()=>null,g=()=>null,h=()=>null,i=()=>null},97584:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{M:()=>i});var e=c(55330),f=c(14046),g=c(2238),h=a([e]);async function i(a,b){let c=await (0,g.YA)(a);if(!c.enabled||"native"===c.mode)return(0,e.SB)(a);if("cliproxyapi"===c.mode)return b?.info?.("UPSTREAM_PROXY",`${a} routed through CLIProxyAPI (passthrough)`),(0,e.SB)("cliproxyapi");let d=(0,e.SB)(a),h=(0,e.SB)("cliproxyapi"),i=[429,500,502,503,504];try{let a=await (0,f.getCachedSettings)()||{};if("string"==typeof a.cliproxyapi_fallback_codes&&a.cliproxyapi_fallback_codes.trim()){let b=a.cliproxyapi_fallback_codes.split(",").map(a=>Number.parseInt(a.trim(),10)).filter(a=>!Number.isNaN(a));b.length>0&&(i=b)}}catch{}let j=Object.create(d);return j.execute=async c=>{let e,f;try{e=await d.execute(c)}catch(e){let d=e instanceof Error?e.message:String(e);b?.info?.("UPSTREAM_PROXY",`${a} native error (${d}), retrying via CLIProxyAPI`);try{return await h.execute(c)}catch(d){let c=d instanceof Error?d.message:String(d);throw b?.error?.("UPSTREAM_PROXY",`${a} CLIProxyAPI fallback also failed: ${c}`),d}}if(f=e.response.status,!i.includes(f)&&0!==f)return e;b?.info?.("UPSTREAM_PROXY",`${a} native failed (${e.response.status}), retrying via CLIProxyAPI`);try{return await h.execute(c)}catch(d){let c=d instanceof Error?d.message:String(d);throw b?.error?.("UPSTREAM_PROXY",`${a} CLIProxyAPI fallback also failed: ${c}`),d}},j}e=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},99328:(a,b,c)=>{},99482:(a,b,c)=>{c.d(b,{H:()=>d});function d(a){if(!a.apiKeyId||!a.streamUsage)return;let b=a.apiKeyId;a.calculateCost(a.provider,a.model,a.streamUsage,{serviceTier:a.serviceTier}).then(c=>{c>0&&a.recordCost(b,c)}).catch(()=>{})}},99718:(a,b,c)=>{new WeakMap},99751:(a,b,c)=>{c.d(b,{QN:()=>d,gN:()=>f});let d="x-omniroute-thinking-marker",e=["opencode"];function f(a){let b=function(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return"off"===b||"false"===b||"0"===b||"suppress"===b||"on"!==b&&"true"!==b&&"1"!==b&&"keep"!==b&&null}(a.thinkingMarkerHeader);if(null!==b)return b;var c=a.userAgent;if(!c||"string"!=typeof c)return!1;let d=c.toLowerCase();return e.some(a=>d.includes(a))}},99998:(a,b,c)=>{c.d(b,{c:()=>d});async function d(a){try{let{runOnResponse:b}=await c.e(5842).then(c.bind(c,65842));b({requestId:a.requestId,body:a.body,model:a.model,provider:a.provider,apiKeyInfo:a.apiKeyInfo,metadata:{}},{status:200}).catch(()=>{})}catch(a){}}}};
|