@rabbi696/ezrouter 0.5.80 → 0.5.82
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 +5 -5
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/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/error-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_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.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli/providers/codex/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/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-native/readiness/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.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/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.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/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/import/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/combos/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/convoy/rules/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/internal/codex-native/lease/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/refresh-profile/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 +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/routing-health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/token-saver/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tool-disclosure/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +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 +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 +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 +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/error-logs/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/alpha/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/alpha/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +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/codex/alpha/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/memories/trace_summarize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/codex/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +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/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +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 +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 +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/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.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.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 +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/convoy.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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- 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 +6 -6
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- 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 +5 -5
- 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 +5 -5
- 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 +3 -3
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- 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 +3 -3
- 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 +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- 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 +3 -3
- 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/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +5 -5
- package/app/.next-cli-build/server/chunks/1133.js +1 -1
- package/app/.next-cli-build/server/chunks/2031.js +1 -1
- package/app/.next-cli-build/server/chunks/{1729.js → 3350.js} +1 -1
- package/app/.next-cli-build/server/chunks/369.js +3 -3
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/476.js +1 -1
- package/app/.next-cli-build/server/chunks/5210.js +1 -1
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5767.js +1 -1
- package/app/.next-cli-build/server/chunks/7281.js +1 -1
- package/app/.next-cli-build/server/chunks/7362.js +1 -1
- package/app/.next-cli-build/server/chunks/{9356.js → 7456.js} +6 -6
- package/app/.next-cli-build/server/chunks/7591.js +1 -1
- package/app/.next-cli-build/server/chunks/7775.js +1 -1
- package/app/.next-cli-build/server/chunks/8129.js +1 -1
- package/app/.next-cli-build/server/chunks/8901.js +83 -83
- package/app/.next-cli-build/server/chunks/921.js +1 -1
- package/app/.next-cli-build/server/chunks/9212.js +1 -1
- package/app/.next-cli-build/server/chunks/9998.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-aef9d88eaa02d5d8.js → 1321-2741af0e123f6706.js} +1 -1
- package/app/CHANGELOG.md +15 -0
- package/app/package.json +1 -1
- package/app/public/CHANGELOG.md +15 -0
- package/package.json +1 -1
- /package/app/.next-cli-build/static/{ElCqrJEVTDRtII0ncscm8 → T6EjgXMV7YffLF_i7j-EZ}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{ElCqrJEVTDRtII0ncscm8 → T6EjgXMV7YffLF_i7j-EZ}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=1133,exports.ids=[1133],exports.modules={1133:(a,b,c)=>{c.r(b),c.d(b,{configureQuotaAutoPing:()=>A,runQuotaAutoPingTick:()=>x,startQuotaAutoPing:()=>y,stopQuotaAutoPing:()=>z}),c(30369);var d=c(89718),e=c(98594),f=c(49485),g=c(99356),h=c(92675),i=c(89843),j=c(39326),k=c(83352);let l=c(30869).oc,m={claude:{getUsage:(a,b,c)=>(0,e.g)(a,c),sendPing:t},codex:{getUsage:f.Tl,getModels:f.oH,sendPing:v}},n=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{},pingCache:{}};function o(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function p(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function q(a){if(!a||!0===a.unlimited)return!1;let b=p(a.remaining);if(null!==b)return b<=0;let c=p(a.used),d=p(a.total);return null!==d&&d>0&&null!==c&&c>=d}function r(a,b,c=Date.now(),d=null){if(!b)return!1;let e=new Date(a.lastPingAt).getTime(),f=p(d,-1/0),g=Math.max(Number.isFinite(e)?e:-1/0,f);return Number.isFinite(g)&&c-g<b}function s(a,b){return Object.entries(a||{}).some(([a,c])=>a!==b&&!String(a).toLowerCase().includes("session")&&q(c))}async function t(a,b,c,d){let e=await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...h.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c);if(!e.ok){try{await e.body?.cancel?.()}catch{}return!1}return await u(e),!0}async function u(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function v(a,b,c,d,e){let f=e.getExecutor("codex"),{response:g}=await f.execute({model:c,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,idToken:a.idToken,providerSpecificData:a.providerSpecificData},proxyOptions:d,log:console,body:{model:c,input:[{type:"message",role:"user",content:[{type:"input_text",text:b.pingText}]}],instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await u(g),!0}async function w(a,b,c,d,e,f=n){var g;let h=(g=a.id,`${b}:${g}`),i=f.resetCache[h];if(!c.pingWhenResetAtSlides&&i&&Date.now()<new Date(i).getTime()-l.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<l.failureCooldownMs}(f,h))return;let j=await e.resolveConnectionProxyConfig(a.providerSpecificData),k={connectionProxyEnabled:!0===j.connectionProxyEnabled,connectionProxyUrl:j.connectionProxyUrl||"",connectionNoProxy:j.connectionNoProxy||"",vercelRelayUrl:j.vercelRelayUrl||"",strictProxy:!1},m=a;try{m=(await e.refreshAndUpdateCredentials(m,!1,k)).connection}catch(c){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let p=await d.getUsage(m.accessToken,m.providerSpecificData,k,m.idToken),t=p?.quotas||{},u=t?.[c.quotaKey],v=u?.resetAt,x=Date.now(),y=function(a,b,c,d,e,f,g){let h,i;return!0===b.pingInactiveSession&&d&&!d.resetAt&&!q(d)&&(h=Object.entries(c||{}).filter(([a])=>String(a).toLowerCase().startsWith("weekly"))).length>0&&h.every(([,a])=>!q(a))&&!s(c,b.quotaKey)&&(!(i=String(a.providerSpecificData?.proxyPoolId??"").trim())||"__none__"===i||e?.proxyUnavailable!==!0&&e?.source!=="unavailable"&&String(e?.proxyPoolId??"").trim()===i&&!!e?.proxyPool)&&!r(a,b.inactiveMinPingIntervalMs,f,g)}(m,c,t,u,j,x,f.pingCache?.[h]),z=null;if(v){if(f.resetCache[h]=v,c.skipWhenBlockingQuotaExhausted&&s(t,c.quotaKey)||q(u))return;z=o(v);let a=m.lastPingedResetKey||o(m.lastPingedResetAt);if(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-l.pingLeadMs}(c,i,v,x)||r(m,c.minPingIntervalMs,x)||a===z)return}else if(!y)return;let A="codex"===b?(await d.getModels(m.accessToken,k,m.providerSpecificData))[0]?.slug:c.pingModel;if(!A){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: no supported model available`);return}if(!("codex"===b?await d.sendPing(m,c,A,k,e):await d.sendPing(m,c,k,e))){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: ping failed (${v?`reset ${v}`:"inactive session"})`);return}y&&((f.pingCache??={})[h]=Date.now()),delete f.failureCache[h],await e.updateProviderConnection(m.id,{...v?{lastPingedResetAt:v,lastPingedResetKey:z}:{},lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),y&&delete f.pingCache[h],console.log(`[AutoPing] ${b}:${m.id}: ping sent (${v?`reset ${v}`:"inactive session"})`)}async function x(a={getSettings:d.mt,getProviderConnections:d.getProviderConnections,updateProviderConnection:d.updateProviderConnection,resolveConnectionProxyConfig:j.B,refreshAndUpdateCredentials:k.refreshAndUpdateCredentials,proxyAwareFetch:i.proxyAwareFetch,getExecutor:g.SB},b=n){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(l.providers)){let g=m[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await w(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function y(){!n.interval&&(console.log("[AutoPing] scheduler started"),x().catch(()=>{}),n.interval=setInterval(()=>{x().catch(()=>{})},l.tickIntervalMs),n.interval.unref&&n.interval.unref())}function z(){n.interval&&(clearInterval(n.interval),n.interval=null,console.log("[AutoPing] scheduler stopped"))}function A(a){Object.values(l.providers).some(b=>Object.values(a?.[b.settingsKey]?.connections||{}).some(Boolean))?y():z()}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@rabbi696/ezrouter",installCmd:"npm i -g @rabbi696/ezrouter",installCmdLatest:"npm i -g @rabbi696/ezrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20126},h={maxLines:200,pollIntervalMs:1e3,streamTimeoutMs:5e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingInactiveSession:!0,inactiveMinPingIntervalMs:18e6,pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},83352:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>o,refreshAndUpdateCredentials:()=>n}),c(30369);var d=c(89718),e=c(60827),f=c(99356),g=c(39326),h=c(40615);let i=[/validation_required/i,/verify your account/i];function j(a){return`modelError_${a||"__all"}`}function k(a){return`modelErrorCode_${a||"__all"}`}var l=c(6165);let m=["expired","authentication","unauthorized","401","re-authorize"];async function n(a,b=!1,c=null){let e=(0,f.SB)(a.provider),g={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(g)))return{connection:a,refreshed:!1};let h=await e.refreshCredentials(g,console,c);if(!h){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let i={updatedAt:new Date().toISOString()};h.accessToken&&(i.accessToken=h.accessToken),h.refreshToken&&(i.refreshToken=h.refreshToken),h.idToken&&(i.idToken=h.idToken),h.lastRefreshAt&&(i.lastRefreshAt=h.lastRefreshAt),h.expiresIn?(i.expiresAt=new Date(Date.now()+1e3*h.expiresIn).toISOString(),i.expiresIn=h.expiresIn):h.expiresAt&&(i.expiresAt=h.expiresAt);let j={...h.providerSpecificData||{},...h.copilotToken?{copilotToken:h.copilotToken}:{},...h.copilotTokenExpiresAt?{copilotTokenExpiresAt:h.copilotTokenExpiresAt}:{}};return Object.keys(j).length>0&&(i.providerSpecificData={...a.providerSpecificData||{},...j}),await (0,d.updateProviderConnection)(a.id,i),{connection:{...a,...i,providerSpecificData:i.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function o(a,{params:b}){let c;try{let{connectionId:f}=await b,o="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,d.Mc)(f)))return Response.json({error:"Connection not found"},{status:404});let p="oauth"===c.authType,q=("apikey"===c.authType||"api_key"===c.authType)&&h.jO.includes(c.provider);if(!p&&!q)return Response.json({message:"Usage not available for this connection"});let r=await (0,g.B)(c.providerSpecificData),s={connectionProxyEnabled:!0===r.connectionProxyEnabled,connectionProxyUrl:r.connectionProxyUrl||"",connectionNoProxy:r.connectionNoProxy||"",vercelRelayUrl:r.vercelRelayUrl||"",strictProxy:!1};if(p)try{c=(await n(c,!1,s)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let t=await (0,e.my)(c,s,{force:o}),u=(0,l.wi)(c.provider,t);if(u&&(0,d.updateProviderConnection)(c.id,{lastQuotaSnapshot:u}).catch(()=>{}),p&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return m.some(a=>b.includes(a))}(t)&&c.refreshToken)try{c=(await n(c,!0,s)).connection,t=await (0,e.my)(c,s,{force:o})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(function(a,b,c=Date.now()){if(a?.provider!=="antigravity"||!b?.quotas)return b;let d=!0===a.antigravityValidationRequired;for(let[e,f]of Object.entries(b.quotas)){let b=a[`modelLock_${e}`]||a.modelLock___all,g=b?new Date(b).getTime():NaN,h=Number.isFinite(g)&&g>c;if(!d&&!h)continue;let l=a[j(e)]||a[j(null)]||a.lastError||"",m=a[k(e)]||a[k(null)]||a.errorCode||null;f.reportedRemainingPercentage=f.remainingPercentage,f.reportedResetAt=f.resetAt,f.remainingPercentage=0,f.used=f.total,f.resetAt=d?null:b,f.runtimeLimited=!0,f.runtimeLimitLabel=d?"account blocked":function(a,b=null){let c,d="string"==typeof a?a:JSON.stringify(a||"");return(c="string"==typeof d?d:JSON.stringify(d||""),i.some(a=>a.test(c)))?"account blocked":429===b||/quota|capacity|resource_exhausted/i.test(d)?"runtime limit":"temporarily unavailable"}(l,m),f.runtimeLimitReason=l.slice(0,240),f.runtimeActionUrl=d&&a.antigravityValidationUrl||null}return b}(c,t))}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}}};
|
|
1
|
+
"use strict";exports.id=1133,exports.ids=[1133],exports.modules={1133:(a,b,c)=>{c.r(b),c.d(b,{configureQuotaAutoPing:()=>A,runQuotaAutoPingTick:()=>x,startQuotaAutoPing:()=>y,stopQuotaAutoPing:()=>z}),c(30369);var d=c(89718),e=c(98594),f=c(49485),g=c(47456),h=c(92675),i=c(89843),j=c(39326),k=c(83352);let l=c(30869).oc,m={claude:{getUsage:(a,b,c)=>(0,e.g)(a,c),sendPing:t},codex:{getUsage:f.Tl,getModels:f.oH,sendPing:v}},n=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{},pingCache:{}};function o(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function p(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function q(a){if(!a||!0===a.unlimited)return!1;let b=p(a.remaining);if(null!==b)return b<=0;let c=p(a.used),d=p(a.total);return null!==d&&d>0&&null!==c&&c>=d}function r(a,b,c=Date.now(),d=null){if(!b)return!1;let e=new Date(a.lastPingAt).getTime(),f=p(d,-1/0),g=Math.max(Number.isFinite(e)?e:-1/0,f);return Number.isFinite(g)&&c-g<b}function s(a,b){return Object.entries(a||{}).some(([a,c])=>a!==b&&!String(a).toLowerCase().includes("session")&&q(c))}async function t(a,b,c,d){let e=await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...h.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c);if(!e.ok){try{await e.body?.cancel?.()}catch{}return!1}return await u(e),!0}async function u(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function v(a,b,c,d,e){let f=e.getExecutor("codex"),{response:g}=await f.execute({model:c,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,idToken:a.idToken,providerSpecificData:a.providerSpecificData},proxyOptions:d,log:console,body:{model:c,input:[{type:"message",role:"user",content:[{type:"input_text",text:b.pingText}]}],instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await u(g),!0}async function w(a,b,c,d,e,f=n){var g;let h=(g=a.id,`${b}:${g}`),i=f.resetCache[h];if(!c.pingWhenResetAtSlides&&i&&Date.now()<new Date(i).getTime()-l.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<l.failureCooldownMs}(f,h))return;let j=await e.resolveConnectionProxyConfig(a.providerSpecificData),k={connectionProxyEnabled:!0===j.connectionProxyEnabled,connectionProxyUrl:j.connectionProxyUrl||"",connectionNoProxy:j.connectionNoProxy||"",vercelRelayUrl:j.vercelRelayUrl||"",strictProxy:!1},m=a;try{m=(await e.refreshAndUpdateCredentials(m,!1,k)).connection}catch(c){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let p=await d.getUsage(m.accessToken,m.providerSpecificData,k,m.idToken),t=p?.quotas||{},u=t?.[c.quotaKey],v=u?.resetAt,x=Date.now(),y=function(a,b,c,d,e,f,g){let h,i;return!0===b.pingInactiveSession&&d&&!d.resetAt&&!q(d)&&(h=Object.entries(c||{}).filter(([a])=>String(a).toLowerCase().startsWith("weekly"))).length>0&&h.every(([,a])=>!q(a))&&!s(c,b.quotaKey)&&(!(i=String(a.providerSpecificData?.proxyPoolId??"").trim())||"__none__"===i||e?.proxyUnavailable!==!0&&e?.source!=="unavailable"&&String(e?.proxyPoolId??"").trim()===i&&!!e?.proxyPool)&&!r(a,b.inactiveMinPingIntervalMs,f,g)}(m,c,t,u,j,x,f.pingCache?.[h]),z=null;if(v){if(f.resetCache[h]=v,c.skipWhenBlockingQuotaExhausted&&s(t,c.quotaKey)||q(u))return;z=o(v);let a=m.lastPingedResetKey||o(m.lastPingedResetAt);if(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-l.pingLeadMs}(c,i,v,x)||r(m,c.minPingIntervalMs,x)||a===z)return}else if(!y)return;let A="codex"===b?(await d.getModels(m.accessToken,k,m.providerSpecificData))[0]?.slug:c.pingModel;if(!A){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: no supported model available`);return}if(!("codex"===b?await d.sendPing(m,c,A,k,e):await d.sendPing(m,c,k,e))){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: ping failed (${v?`reset ${v}`:"inactive session"})`);return}y&&((f.pingCache??={})[h]=Date.now()),delete f.failureCache[h],await e.updateProviderConnection(m.id,{...v?{lastPingedResetAt:v,lastPingedResetKey:z}:{},lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),y&&delete f.pingCache[h],console.log(`[AutoPing] ${b}:${m.id}: ping sent (${v?`reset ${v}`:"inactive session"})`)}async function x(a={getSettings:d.mt,getProviderConnections:d.getProviderConnections,updateProviderConnection:d.updateProviderConnection,resolveConnectionProxyConfig:j.B,refreshAndUpdateCredentials:k.refreshAndUpdateCredentials,proxyAwareFetch:i.proxyAwareFetch,getExecutor:g.SB},b=n){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(l.providers)){let g=m[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await w(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function y(){!n.interval&&(console.log("[AutoPing] scheduler started"),x().catch(()=>{}),n.interval=setInterval(()=>{x().catch(()=>{})},l.tickIntervalMs),n.interval.unref&&n.interval.unref())}function z(){n.interval&&(clearInterval(n.interval),n.interval=null,console.log("[AutoPing] scheduler stopped"))}function A(a){Object.values(l.providers).some(b=>Object.values(a?.[b.settingsKey]?.connections||{}).some(Boolean))?y():z()}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@rabbi696/ezrouter",installCmd:"npm i -g @rabbi696/ezrouter",installCmdLatest:"npm i -g @rabbi696/ezrouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20126},h={maxLines:200,pollIntervalMs:1e3,streamTimeoutMs:5e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingInactiveSession:!0,inactiveMinPingIntervalMs:18e6,pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},83352:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>o,refreshAndUpdateCredentials:()=>n}),c(30369);var d=c(89718),e=c(60827),f=c(47456),g=c(39326),h=c(40615);let i=[/validation_required/i,/verify your account/i];function j(a){return`modelError_${a||"__all"}`}function k(a){return`modelErrorCode_${a||"__all"}`}var l=c(6165);let m=["expired","authentication","unauthorized","401","re-authorize"];async function n(a,b=!1,c=null){let e=(0,f.SB)(a.provider),g={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(g)))return{connection:a,refreshed:!1};let h=await e.refreshCredentials(g,console,c);if(!h){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let i={updatedAt:new Date().toISOString()};h.accessToken&&(i.accessToken=h.accessToken),h.refreshToken&&(i.refreshToken=h.refreshToken),h.idToken&&(i.idToken=h.idToken),h.lastRefreshAt&&(i.lastRefreshAt=h.lastRefreshAt),h.expiresIn?(i.expiresAt=new Date(Date.now()+1e3*h.expiresIn).toISOString(),i.expiresIn=h.expiresIn):h.expiresAt&&(i.expiresAt=h.expiresAt);let j={...h.providerSpecificData||{},...h.copilotToken?{copilotToken:h.copilotToken}:{},...h.copilotTokenExpiresAt?{copilotTokenExpiresAt:h.copilotTokenExpiresAt}:{}};return Object.keys(j).length>0&&(i.providerSpecificData={...a.providerSpecificData||{},...j}),await (0,d.updateProviderConnection)(a.id,i),{connection:{...a,...i,providerSpecificData:i.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function o(a,{params:b}){let c;try{let{connectionId:f}=await b,o="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,d.Mc)(f)))return Response.json({error:"Connection not found"},{status:404});let p="oauth"===c.authType,q=("apikey"===c.authType||"api_key"===c.authType)&&h.jO.includes(c.provider);if(!p&&!q)return Response.json({message:"Usage not available for this connection"});let r=await (0,g.B)(c.providerSpecificData),s={connectionProxyEnabled:!0===r.connectionProxyEnabled,connectionProxyUrl:r.connectionProxyUrl||"",connectionNoProxy:r.connectionNoProxy||"",vercelRelayUrl:r.vercelRelayUrl||"",strictProxy:!1};if(p)try{c=(await n(c,!1,s)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let t=await (0,e.my)(c,s,{force:o}),u=(0,l.wi)(c.provider,t);if(u&&(0,d.updateProviderConnection)(c.id,{lastQuotaSnapshot:u}).catch(()=>{}),p&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return m.some(a=>b.includes(a))}(t)&&c.refreshToken)try{c=(await n(c,!0,s)).connection,t=await (0,e.my)(c,s,{force:o})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(function(a,b,c=Date.now()){if(a?.provider!=="antigravity"||!b?.quotas)return b;let d=!0===a.antigravityValidationRequired;for(let[e,f]of Object.entries(b.quotas)){let b=a[`modelLock_${e}`]||a.modelLock___all,g=b?new Date(b).getTime():NaN,h=Number.isFinite(g)&&g>c;if(!d&&!h)continue;let l=a[j(e)]||a[j(null)]||a.lastError||"",m=a[k(e)]||a[k(null)]||a.errorCode||null;f.reportedRemainingPercentage=f.remainingPercentage,f.reportedResetAt=f.resetAt,f.remainingPercentage=0,f.used=f.total,f.resetAt=d?null:b,f.runtimeLimited=!0,f.runtimeLimitLabel=d?"account blocked":function(a,b=null){let c,d="string"==typeof a?a:JSON.stringify(a||"");return(c="string"==typeof d?d:JSON.stringify(d||""),i.some(a=>a.test(c)))?"account blocked":429===b||/quota|capacity|resource_exhausted/i.test(d)?"runtime limit":"temporarily unavailable"}(l,m),f.runtimeLimitReason=l.slice(0,240),f.runtimeActionUrl=d&&a.antigravityValidationUrl||null}return b}(c,t))}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2031,exports.ids=[2031,7753],exports.modules={48595:(a,b,c)=>{c.d(b,{UY:()=>g,oc:()=>h});var d=c(90053),e=c(63995),f=c(13161);Object.entries(e.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(f.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),d.rE;let g={maxLines:200,pollIntervalMs:1e3,streamTimeoutMs:5e3},h={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingInactiveSession:!0,inactiveMinPingIntervalMs:18e6,pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},63995:(a,b,c)=>{c.d(b,{Q2:()=>m});var d=c(15094);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.baseUrlField?{baseUrlField:a.baseUrlField}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.models?{models:a.models}:{},...a.authModes?{authModes:a.authModes}:{},...a.features?{features:{...a.features}}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m={...h,...i,...j,...k,...l};Object.values(m).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(m).reduce((a,b)=>(a[b.id]=b.alias,a),{}),d.A.filter(a=>a.features?.usage).map(a=>a.id),d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},72031:(a,b,c)=>{c.r(b),c.d(b,{configureQuotaAutoPing:()=>W,runQuotaAutoPingTick:()=>T,startQuotaAutoPing:()=>U,stopQuotaAutoPing:()=>V}),c(58901);var d=c(70321),e=c(55511),f=c(26762),g=c(15251);let h=a=>g.xq[a]?.usage||{};function i(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}function j(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}let k="2023-06-01",l=new Map,m=new Map;function n(a,b){for(l.delete(a),l.set(a,b);l.size>128;)l.delete(l.keys().next().value)}function o(a,b,c,d){if("number"==typeof c&&Number.isFinite(c)&&!Object.keys(a).some(a=>a.toLowerCase()===b.toLowerCase())){let e,f;a[b]=(f=100-(e=Math.min(100,Math.max(0,c))),{used:e,total:100,remaining:f,remainingPercentage:f,resetAt:i(d),unlimited:!1})}}async function p(a,b,c){try{let d=await (0,f.Fm)("https://api.anthropic.com/api/oauth/usage",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":k},signal:AbortSignal.timeout(5e3)},b);if(d.ok){let a=function(a){let b={};for(let[c,d]of(o(b,"session (5h)",a?.five_hour?.utilization,a?.five_hour?.resets_at),o(b,"weekly (7d)",a?.seven_day?.utilization,a?.seven_day?.resets_at),Object.entries(a||{})))c.startsWith("seven_day_")&&d&&"object"==typeof d&&o(b,`weekly ${c.slice(10)} (7d)`,d.utilization,d.resets_at);for(let c of[...Array.isArray(a?.limits)?a.limits:[],...Array.isArray(a?.rate_limits)?a.rate_limits:[]]){let a=String(c?.group||"").toLowerCase(),d=String(c?.kind||"").toLowerCase();if("session"===d||"session"===a){o(b,"session (5h)",c.percent,c.resets_at);continue}if("weekly_scoped"===d||"weekly"===a){let a=c?.scope?.model?.display_name||c?.scope?.surface?.display_name;o(b,a?`weekly ${a} (7d)`:"weekly (7d)",c.percent,c.resets_at)}}return{plan:"Claude Code",extraUsage:a?.extra_usage??null,quotas:b}}(await d.json());return n(c,{value:a,expiresAt:Date.now()+65e3,retryAt:0}),a}if(429===d.status){let a,b=Date.now(),e=l.get(c),f=e?.value||{message:"Claude usage is rate limited. Retry later."};return n(c,{value:f,expiresAt:e?.expiresAt||0,retryAt:b+(a=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c);if(Number.isFinite(d))return d>=0?1e3*d:null;let e=Date.parse(c);return Number.isFinite(e)?Math.max(0,e-b):null}(d.headers.get("retry-after"),b),null===a&&d.headers.forEach((c,d)=>{if(!/^anthropic-ratelimit-.+-reset$/i.test(d))return;let e=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c),e=Number.isFinite(d)?d<1e12?1e3*d:d:Date.parse(c);return Number.isFinite(e)&&e>b&&e<=864e13?e-b:null}(c,b);null!==e&&(null===a||e>a)&&(a=e)}),Math.min(18e5,Math.max(18e4,a??18e4)))}),f}if(401===d.status)return{message:"Claude authentication expired (401). Re-authorize or refresh the connection."};if(404===d.status||405===d.status){let d=await q(a,b);return d.cacheable&&n(c,{value:d.value,expiresAt:Date.now()+65e3,retryAt:0}),d.value}return{message:`Claude connected. Usage endpoint returned HTTP ${d.status}.`}}catch{return{message:"Claude connected. Unable to fetch usage."}}}async function q(a,b=null){try{let c=await (0,f.Fm)("https://api.anthropic.com/api/organizations/current",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":k}},b);if(c.ok){let d=await c.json();if(d.organization_id){let c=await (0,f.Fm)("https://api.anthropic.com/api/organizations/{org_id}/usage".replace("{org_id}",d.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":k}},b);if(c.ok){let a=await c.json();return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,quotas:a}}}return{cacheable:!1,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!1,value:{message:"Claude connected. Usage endpoint requires OAuth."}}}catch(a){return{cacheable:!1,value:{message:`Claude connected. Error checking usage: ${a.message}`}}}}var r=c(53261);let s={usageUrl:h("codex").url,resetCreditsUrl:h("codex").resetCreditsUrl,resetCreditsConsumeUrl:h("codex").resetCreditsConsumeUrl};function t(a,b={},c={},d=null){let e={Authorization:`Bearer ${a}`,Accept:"application/json",originator:"codex_cli_rs",...c},f=(0,r.a)(b,d);return f&&(e["ChatGPT-Account-ID"]=f),e}function u(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function v(a){let b=Math.max(0,Math.min(100,j(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:i(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function w(a,b,c){let d=u(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=v(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=v(f),g=!0),g}async function x(a,b={},c=null,d=null){var e,g,h;[b,c]=(e=b,!(g=c)&&(h=e)&&"object"==typeof h&&("connectionProxyEnabled"in h||"connectionProxyUrl"in h||"connectionNoProxy"in h||"vercelRelayUrl"in h||"strictProxy"in h)?(0,r.a)(e,d)?[e,e]:[{},e]:[e||{},g]);try{let e=await (0,f.Fm)(s.usageUrl,{method:"GET",headers:t(a,b,{},d)},c);if(!e.ok)return{message:`Codex connected. Usage API temporarily unavailable (${e.status}).`};let g=await e.json(),h=g.rate_limit||g.rate_limits||g.rate_limits_by_limit_id?.codex||{},i=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(g),k=function(a){if(a.spark_rate_limit||a.gpt_5_3_codex_spark_rate_limit)return a.spark_rate_limit||a.gpt_5_3_codex_spark_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b["gpt-5.3-codex-spark"]||b.gpt_5_3_codex_spark||b.spark||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return b.includes("spark")||b.includes("5.3-codex-spark")})||null}(g),l=Math.max(0,j(g.rate_limit_reset_credits?.available_count,0)),m={};return w(m,"",h),w(m,"review",i),w(m,"spark",k),{plan:g.plan_type||g.summary?.plan||"unknown",limitReached:u(h)?.limit_reached||!1,reviewLimitReached:u(i)?.limit_reached||!1,sparkLimitReached:u(k)?.limit_reached||!1,resetCredits:{availableCount:l},quotas:m}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function y(a,b=null,c=null,d=null){let e=new URL(h("codex").modelsUrl||"https://chatgpt.com/backend-api/codex/models");h("codex").clientVersion&&e.searchParams.set("client_version",h("codex").clientVersion);let g=t(a,c,{},d),i=await (0,f.Fm)(e,{method:"GET",headers:g},b);if(!i.ok)return[];let j=await i.json();return(Array.isArray(j?.models)?j.models:[]).filter(a=>a?.supported_in_api!==!1&&"string"==typeof a?.slug&&a.slug).sort((a,b)=>Number(a.priority||0)-Number(b.priority||0))}var z=c(95659),A=c(74570),B=c(97753);function C(a){return null==a?"":String(a).trim()}async function D(a={}){try{let b=C(a?.proxyPoolId),c="__none__"===b?"":b,d=function(a={}){let b=a?.connectionProxyEnabled===!0,c=C(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:C(a?.connectionNoProxy)}}(a);if(c){let a=await (0,B.hr)(c),b=C(a?.proxyUrl),d=C(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:d,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:d,strictProxy:!0===a.strictProxy}}}if(d.connectionProxyEnabled&&d.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...d};return{source:"none",proxyPoolId:c||null,proxyPool:null,...d}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}g.sr.github?.apiVersion,g.sr.github?.userAgent,c(10793),h("antigravity"),A.XP,A.Of,c(43835),h("minimax").urls,h("minimax-cn").urls,c(83382);let E=h("grok-cli"),F=E.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits";async function G(a,b=!1,c=null){let e=(0,z.SB)(a.provider),f={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(f)))return{connection:a,refreshed:!1};let g=await e.refreshCredentials(f,console,c);if(!g){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let h={updatedAt:new Date().toISOString()};g.accessToken&&(h.accessToken=g.accessToken),g.refreshToken&&(h.refreshToken=g.refreshToken),g.idToken&&(h.idToken=g.idToken),g.lastRefreshAt&&(h.lastRefreshAt=g.lastRefreshAt),g.expiresIn?(h.expiresAt=new Date(Date.now()+1e3*g.expiresIn).toISOString(),h.expiresIn=g.expiresIn):g.expiresAt&&(h.expiresAt=g.expiresAt);let i={...g.providerSpecificData||{},...g.copilotToken?{copilotToken:g.copilotToken}:{},...g.copilotTokenExpiresAt?{copilotTokenExpiresAt:g.copilotTokenExpiresAt}:{}};return Object.keys(i).length>0&&(h.providerSpecificData={...a.providerSpecificData||{},...i}),await (0,d.updateProviderConnection)(a.id,h),{connection:{...a,...h,providerSpecificData:h.providerSpecificData||a.providerSpecificData},refreshed:!0}}E.userUrl,"string"==typeof F&&F.includes("?")&&F.replace(/\?.*$/,""),h("cursor").usageUrl,h("cursor").planUrl,c(63814),h("glm").url,h("glm-cn").url,h("vercel-ai-gateway").url,c(63995);let H=c(48595).oc,I={claude:{getUsage:(a,b,c)=>(function(a,b=null,c={}){let d,f=c?.force===!0,g=(0,e.createHash)("sha256").update(String(a??"")).digest("hex"),h=l.get(g),i=Date.now();return!f&&h&&(i<h.expiresAt||i<h.retryAt)?Promise.resolve(h.value):!f&&m.has(g)?m.get(g):m.size>=128?Promise.resolve({message:"Claude usage refresh is busy. Retry shortly."}):(d=p(a,b,g).finally(()=>{m.get(g)===d&&m.delete(g)}),m.set(g,d),d)})(a,c),sendPing:P},codex:{getUsage:x,getModels:y,sendPing:R}},J=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{},pingCache:{}};function K(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function L(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function M(a){if(!a||!0===a.unlimited)return!1;let b=L(a.remaining);if(null!==b)return b<=0;let c=L(a.used),d=L(a.total);return null!==d&&d>0&&null!==c&&c>=d}function N(a,b,c=Date.now(),d=null){if(!b)return!1;let e=new Date(a.lastPingAt).getTime(),f=L(d,-1/0),g=Math.max(Number.isFinite(e)?e:-1/0,f);return Number.isFinite(g)&&c-g<b}function O(a,b){return Object.entries(a||{}).some(([a,c])=>a!==b&&!String(a).toLowerCase().includes("session")&&M(c))}async function P(a,b,c,d){let e=await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...A.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c);if(!e.ok){try{await e.body?.cancel?.()}catch{}return!1}return await Q(e),!0}async function Q(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function R(a,b,c,d,e){let f=e.getExecutor("codex"),{response:g}=await f.execute({model:c,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,idToken:a.idToken,providerSpecificData:a.providerSpecificData},proxyOptions:d,log:console,body:{model:c,input:[{type:"message",role:"user",content:[{type:"input_text",text:b.pingText}]}],instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await Q(g),!0}async function S(a,b,c,d,e,f=J){var g;let h=(g=a.id,`${b}:${g}`),i=f.resetCache[h];if(!c.pingWhenResetAtSlides&&i&&Date.now()<new Date(i).getTime()-H.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<H.failureCooldownMs}(f,h))return;let j=await e.resolveConnectionProxyConfig(a.providerSpecificData),k={connectionProxyEnabled:!0===j.connectionProxyEnabled,connectionProxyUrl:j.connectionProxyUrl||"",connectionNoProxy:j.connectionNoProxy||"",vercelRelayUrl:j.vercelRelayUrl||"",strictProxy:!1},l=a;try{l=(await e.refreshAndUpdateCredentials(l,!1,k)).connection}catch(c){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let m=await d.getUsage(l.accessToken,l.providerSpecificData,k,l.idToken),n=m?.quotas||{},o=n?.[c.quotaKey],p=o?.resetAt,q=Date.now(),r=function(a,b,c,d,e,f,g){let h,i;return!0===b.pingInactiveSession&&d&&!d.resetAt&&!M(d)&&(h=Object.entries(c||{}).filter(([a])=>String(a).toLowerCase().startsWith("weekly"))).length>0&&h.every(([,a])=>!M(a))&&!O(c,b.quotaKey)&&(!(i=String(a.providerSpecificData?.proxyPoolId??"").trim())||"__none__"===i||e?.proxyUnavailable!==!0&&e?.source!=="unavailable"&&String(e?.proxyPoolId??"").trim()===i&&!!e?.proxyPool)&&!N(a,b.inactiveMinPingIntervalMs,f,g)}(l,c,n,o,j,q,f.pingCache?.[h]),s=null;if(p){if(f.resetCache[h]=p,c.skipWhenBlockingQuotaExhausted&&O(n,c.quotaKey)||M(o))return;s=K(p);let a=l.lastPingedResetKey||K(l.lastPingedResetAt);if(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-H.pingLeadMs}(c,i,p,q)||N(l,c.minPingIntervalMs,q)||a===s)return}else if(!r)return;let t="codex"===b?(await d.getModels(l.accessToken,k,l.providerSpecificData))[0]?.slug:c.pingModel;if(!t){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${l.id}: no supported model available`);return}if(!("codex"===b?await d.sendPing(l,c,t,k,e):await d.sendPing(l,c,k,e))){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${l.id}: ping failed (${p?`reset ${p}`:"inactive session"})`);return}r&&((f.pingCache??={})[h]=Date.now()),delete f.failureCache[h],await e.updateProviderConnection(l.id,{...p?{lastPingedResetAt:p,lastPingedResetKey:s}:{},lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),r&&delete f.pingCache[h],console.log(`[AutoPing] ${b}:${l.id}: ping sent (${p?`reset ${p}`:"inactive session"})`)}async function T(a={getSettings:d.mt,getProviderConnections:d.getProviderConnections,updateProviderConnection:d.updateProviderConnection,resolveConnectionProxyConfig:D,refreshAndUpdateCredentials:G,proxyAwareFetch:f.Fm,getExecutor:z.SB},b=J){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(H.providers)){let g=I[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await S(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function U(){!J.interval&&(console.log("[AutoPing] scheduler started"),T().catch(()=>{}),J.interval=setInterval(()=>{T().catch(()=>{})},H.tickIntervalMs),J.interval.unref&&J.interval.unref())}function V(){J.interval&&(clearInterval(J.interval),J.interval=null,console.log("[AutoPing] scheduler stopped"))}function W(a){Object.values(H.providers).some(b=>Object.values(a?.[b.settingsKey]?.connections||{}).some(Boolean))?U():V()}},97753:(a,b,c)=>{c.d(b,{createProviderConnection:()=>d.iE,hr:()=>d.hr});var d=c(70321)}};
|
|
1
|
+
"use strict";exports.id=2031,exports.ids=[2031,7753],exports.modules={48595:(a,b,c)=>{c.d(b,{UY:()=>g,oc:()=>h});var d=c(90053),e=c(63995),f=c(13161);Object.entries(e.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(f.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),d.rE;let g={maxLines:200,pollIntervalMs:1e3,streamTimeoutMs:5e3},h={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingInactiveSession:!0,inactiveMinPingIntervalMs:18e6,pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},63995:(a,b,c)=>{c.d(b,{Q2:()=>m});var d=c(15094);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.baseUrlField?{baseUrlField:a.baseUrlField}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.models?{models:a.models}:{},...a.authModes?{authModes:a.authModes}:{},...a.features?{features:{...a.features}}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m={...h,...i,...j,...k,...l};Object.values(m).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(m).reduce((a,b)=>(a[b.id]=b.alias,a),{}),d.A.filter(a=>a.features?.usage).map(a=>a.id),d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},72031:(a,b,c)=>{c.r(b),c.d(b,{configureQuotaAutoPing:()=>W,runQuotaAutoPingTick:()=>T,startQuotaAutoPing:()=>U,stopQuotaAutoPing:()=>V}),c(58901);var d=c(70321),e=c(55511),f=c(26762),g=c(15251);let h=a=>g.xq[a]?.usage||{};function i(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}function j(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}let k="2023-06-01",l=new Map,m=new Map;function n(a,b){for(l.delete(a),l.set(a,b);l.size>128;)l.delete(l.keys().next().value)}function o(a,b,c,d){if("number"==typeof c&&Number.isFinite(c)&&!Object.keys(a).some(a=>a.toLowerCase()===b.toLowerCase())){let e,f;a[b]=(f=100-(e=Math.min(100,Math.max(0,c))),{used:e,total:100,remaining:f,remainingPercentage:f,resetAt:i(d),unlimited:!1})}}async function p(a,b,c){try{let d=await (0,f.Fm)("https://api.anthropic.com/api/oauth/usage",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":k},signal:AbortSignal.timeout(5e3)},b);if(d.ok){let a=function(a){let b={};for(let[c,d]of(o(b,"session (5h)",a?.five_hour?.utilization,a?.five_hour?.resets_at),o(b,"weekly (7d)",a?.seven_day?.utilization,a?.seven_day?.resets_at),Object.entries(a||{})))c.startsWith("seven_day_")&&d&&"object"==typeof d&&o(b,`weekly ${c.slice(10)} (7d)`,d.utilization,d.resets_at);for(let c of[...Array.isArray(a?.limits)?a.limits:[],...Array.isArray(a?.rate_limits)?a.rate_limits:[]]){let a=String(c?.group||"").toLowerCase(),d=String(c?.kind||"").toLowerCase();if("session"===d||"session"===a){o(b,"session (5h)",c.percent,c.resets_at);continue}if("weekly_scoped"===d||"weekly"===a){let a=c?.scope?.model?.display_name||c?.scope?.surface?.display_name;o(b,a?`weekly ${a} (7d)`:"weekly (7d)",c.percent,c.resets_at)}}return{plan:"Claude Code",extraUsage:a?.extra_usage??null,quotas:b}}(await d.json());return n(c,{value:a,expiresAt:Date.now()+65e3,retryAt:0}),a}if(429===d.status){let a,b=Date.now(),e=l.get(c),f=e?.value||{message:"Claude usage is rate limited. Retry later."};return n(c,{value:f,expiresAt:e?.expiresAt||0,retryAt:b+(a=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c);if(Number.isFinite(d))return d>=0?1e3*d:null;let e=Date.parse(c);return Number.isFinite(e)?Math.max(0,e-b):null}(d.headers.get("retry-after"),b),null===a&&d.headers.forEach((c,d)=>{if(!/^anthropic-ratelimit-.+-reset$/i.test(d))return;let e=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c),e=Number.isFinite(d)?d<1e12?1e3*d:d:Date.parse(c);return Number.isFinite(e)&&e>b&&e<=864e13?e-b:null}(c,b);null!==e&&(null===a||e>a)&&(a=e)}),Math.min(18e5,Math.max(18e4,a??18e4)))}),f}if(401===d.status)return{message:"Claude authentication expired (401). Re-authorize or refresh the connection."};if(404===d.status||405===d.status){let d=await q(a,b);return d.cacheable&&n(c,{value:d.value,expiresAt:Date.now()+65e3,retryAt:0}),d.value}return{message:`Claude connected. Usage endpoint returned HTTP ${d.status}.`}}catch{return{message:"Claude connected. Unable to fetch usage."}}}async function q(a,b=null){try{let c=await (0,f.Fm)("https://api.anthropic.com/api/organizations/current",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":k}},b);if(c.ok){let d=await c.json();if(d.organization_id){let c=await (0,f.Fm)("https://api.anthropic.com/api/organizations/{org_id}/usage".replace("{org_id}",d.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":k}},b);if(c.ok){let a=await c.json();return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,quotas:a}}}return{cacheable:!1,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!1,value:{message:"Claude connected. Usage endpoint requires OAuth."}}}catch(a){return{cacheable:!1,value:{message:`Claude connected. Error checking usage: ${a.message}`}}}}var r=c(53261);let s={usageUrl:h("codex").url,resetCreditsUrl:h("codex").resetCreditsUrl,resetCreditsConsumeUrl:h("codex").resetCreditsConsumeUrl};function t(a,b={},c={},d=null){let e={Authorization:`Bearer ${a}`,Accept:"application/json",originator:"codex_cli_rs",...c},f=(0,r.a)(b,d);return f&&(e["ChatGPT-Account-ID"]=f),e}function u(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function v(a){let b=Math.max(0,Math.min(100,j(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:i(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function w(a,b,c){let d=u(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=v(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=v(f),g=!0),g}async function x(a,b={},c=null,d=null){var e,g,h;[b,c]=(e=b,!(g=c)&&(h=e)&&"object"==typeof h&&("connectionProxyEnabled"in h||"connectionProxyUrl"in h||"connectionNoProxy"in h||"vercelRelayUrl"in h||"strictProxy"in h)?(0,r.a)(e,d)?[e,e]:[{},e]:[e||{},g]);try{let e=await (0,f.Fm)(s.usageUrl,{method:"GET",headers:t(a,b,{},d)},c);if(!e.ok)return{message:`Codex connected. Usage API temporarily unavailable (${e.status}).`};let g=await e.json(),h=g.rate_limit||g.rate_limits||g.rate_limits_by_limit_id?.codex||{},i=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(g),k=function(a){if(a.spark_rate_limit||a.gpt_5_3_codex_spark_rate_limit)return a.spark_rate_limit||a.gpt_5_3_codex_spark_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b["gpt-5.3-codex-spark"]||b.gpt_5_3_codex_spark||b.spark||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return b.includes("spark")||b.includes("5.3-codex-spark")})||null}(g),l=Math.max(0,j(g.rate_limit_reset_credits?.available_count,0)),m={};return w(m,"",h),w(m,"review",i),w(m,"spark",k),{plan:g.plan_type||g.summary?.plan||"unknown",limitReached:u(h)?.limit_reached||!1,reviewLimitReached:u(i)?.limit_reached||!1,sparkLimitReached:u(k)?.limit_reached||!1,resetCredits:{availableCount:l},quotas:m}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function y(a,b=null,c=null,d=null){let e=new URL(h("codex").modelsUrl||"https://chatgpt.com/backend-api/codex/models");h("codex").clientVersion&&e.searchParams.set("client_version",h("codex").clientVersion);let g=t(a,c,{},d),i=await (0,f.Fm)(e,{method:"GET",headers:g},b);if(!i.ok)return[];let j=await i.json();return(Array.isArray(j?.models)?j.models:[]).filter(a=>a?.supported_in_api!==!1&&"string"==typeof a?.slug&&a.slug).sort((a,b)=>Number(a.priority||0)-Number(b.priority||0))}var z=c(24566),A=c(74570),B=c(97753);function C(a){return null==a?"":String(a).trim()}async function D(a={}){try{let b=C(a?.proxyPoolId),c="__none__"===b?"":b,d=function(a={}){let b=a?.connectionProxyEnabled===!0,c=C(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:C(a?.connectionNoProxy)}}(a);if(c){let a=await (0,B.hr)(c),b=C(a?.proxyUrl),d=C(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:d,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:d,strictProxy:!0===a.strictProxy}}}if(d.connectionProxyEnabled&&d.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...d};return{source:"none",proxyPoolId:c||null,proxyPool:null,...d}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}g.sr.github?.apiVersion,g.sr.github?.userAgent,c(10793),h("antigravity"),A.XP,A.Of,c(43835),h("minimax").urls,h("minimax-cn").urls,c(83382);let E=h("grok-cli"),F=E.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits";async function G(a,b=!1,c=null){let e=(0,z.SB)(a.provider),f={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(f)))return{connection:a,refreshed:!1};let g=await e.refreshCredentials(f,console,c);if(!g){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let h={updatedAt:new Date().toISOString()};g.accessToken&&(h.accessToken=g.accessToken),g.refreshToken&&(h.refreshToken=g.refreshToken),g.idToken&&(h.idToken=g.idToken),g.lastRefreshAt&&(h.lastRefreshAt=g.lastRefreshAt),g.expiresIn?(h.expiresAt=new Date(Date.now()+1e3*g.expiresIn).toISOString(),h.expiresIn=g.expiresIn):g.expiresAt&&(h.expiresAt=g.expiresAt);let i={...g.providerSpecificData||{},...g.copilotToken?{copilotToken:g.copilotToken}:{},...g.copilotTokenExpiresAt?{copilotTokenExpiresAt:g.copilotTokenExpiresAt}:{}};return Object.keys(i).length>0&&(h.providerSpecificData={...a.providerSpecificData||{},...i}),await (0,d.updateProviderConnection)(a.id,h),{connection:{...a,...h,providerSpecificData:h.providerSpecificData||a.providerSpecificData},refreshed:!0}}E.userUrl,"string"==typeof F&&F.includes("?")&&F.replace(/\?.*$/,""),h("cursor").usageUrl,h("cursor").planUrl,c(63814),h("glm").url,h("glm-cn").url,h("vercel-ai-gateway").url,c(63995);let H=c(48595).oc,I={claude:{getUsage:(a,b,c)=>(function(a,b=null,c={}){let d,f=c?.force===!0,g=(0,e.createHash)("sha256").update(String(a??"")).digest("hex"),h=l.get(g),i=Date.now();return!f&&h&&(i<h.expiresAt||i<h.retryAt)?Promise.resolve(h.value):!f&&m.has(g)?m.get(g):m.size>=128?Promise.resolve({message:"Claude usage refresh is busy. Retry shortly."}):(d=p(a,b,g).finally(()=>{m.get(g)===d&&m.delete(g)}),m.set(g,d),d)})(a,c),sendPing:P},codex:{getUsage:x,getModels:y,sendPing:R}},J=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{},pingCache:{}};function K(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function L(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function M(a){if(!a||!0===a.unlimited)return!1;let b=L(a.remaining);if(null!==b)return b<=0;let c=L(a.used),d=L(a.total);return null!==d&&d>0&&null!==c&&c>=d}function N(a,b,c=Date.now(),d=null){if(!b)return!1;let e=new Date(a.lastPingAt).getTime(),f=L(d,-1/0),g=Math.max(Number.isFinite(e)?e:-1/0,f);return Number.isFinite(g)&&c-g<b}function O(a,b){return Object.entries(a||{}).some(([a,c])=>a!==b&&!String(a).toLowerCase().includes("session")&&M(c))}async function P(a,b,c,d){let e=await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...A.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c);if(!e.ok){try{await e.body?.cancel?.()}catch{}return!1}return await Q(e),!0}async function Q(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function R(a,b,c,d,e){let f=e.getExecutor("codex"),{response:g}=await f.execute({model:c,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,idToken:a.idToken,providerSpecificData:a.providerSpecificData},proxyOptions:d,log:console,body:{model:c,input:[{type:"message",role:"user",content:[{type:"input_text",text:b.pingText}]}],instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await Q(g),!0}async function S(a,b,c,d,e,f=J){var g;let h=(g=a.id,`${b}:${g}`),i=f.resetCache[h];if(!c.pingWhenResetAtSlides&&i&&Date.now()<new Date(i).getTime()-H.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<H.failureCooldownMs}(f,h))return;let j=await e.resolveConnectionProxyConfig(a.providerSpecificData),k={connectionProxyEnabled:!0===j.connectionProxyEnabled,connectionProxyUrl:j.connectionProxyUrl||"",connectionNoProxy:j.connectionNoProxy||"",vercelRelayUrl:j.vercelRelayUrl||"",strictProxy:!1},l=a;try{l=(await e.refreshAndUpdateCredentials(l,!1,k)).connection}catch(c){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let m=await d.getUsage(l.accessToken,l.providerSpecificData,k,l.idToken),n=m?.quotas||{},o=n?.[c.quotaKey],p=o?.resetAt,q=Date.now(),r=function(a,b,c,d,e,f,g){let h,i;return!0===b.pingInactiveSession&&d&&!d.resetAt&&!M(d)&&(h=Object.entries(c||{}).filter(([a])=>String(a).toLowerCase().startsWith("weekly"))).length>0&&h.every(([,a])=>!M(a))&&!O(c,b.quotaKey)&&(!(i=String(a.providerSpecificData?.proxyPoolId??"").trim())||"__none__"===i||e?.proxyUnavailable!==!0&&e?.source!=="unavailable"&&String(e?.proxyPoolId??"").trim()===i&&!!e?.proxyPool)&&!N(a,b.inactiveMinPingIntervalMs,f,g)}(l,c,n,o,j,q,f.pingCache?.[h]),s=null;if(p){if(f.resetCache[h]=p,c.skipWhenBlockingQuotaExhausted&&O(n,c.quotaKey)||M(o))return;s=K(p);let a=l.lastPingedResetKey||K(l.lastPingedResetAt);if(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-H.pingLeadMs}(c,i,p,q)||N(l,c.minPingIntervalMs,q)||a===s)return}else if(!r)return;let t="codex"===b?(await d.getModels(l.accessToken,k,l.providerSpecificData))[0]?.slug:c.pingModel;if(!t){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${l.id}: no supported model available`);return}if(!("codex"===b?await d.sendPing(l,c,t,k,e):await d.sendPing(l,c,k,e))){f.failureCache[h]=Date.now(),console.warn(`[AutoPing] ${b}:${l.id}: ping failed (${p?`reset ${p}`:"inactive session"})`);return}r&&((f.pingCache??={})[h]=Date.now()),delete f.failureCache[h],await e.updateProviderConnection(l.id,{...p?{lastPingedResetAt:p,lastPingedResetKey:s}:{},lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),r&&delete f.pingCache[h],console.log(`[AutoPing] ${b}:${l.id}: ping sent (${p?`reset ${p}`:"inactive session"})`)}async function T(a={getSettings:d.mt,getProviderConnections:d.getProviderConnections,updateProviderConnection:d.updateProviderConnection,resolveConnectionProxyConfig:D,refreshAndUpdateCredentials:G,proxyAwareFetch:f.Fm,getExecutor:z.SB},b=J){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(H.providers)){let g=I[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await S(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function U(){!J.interval&&(console.log("[AutoPing] scheduler started"),T().catch(()=>{}),J.interval=setInterval(()=>{T().catch(()=>{})},H.tickIntervalMs),J.interval.unref&&J.interval.unref())}function V(){J.interval&&(clearInterval(J.interval),J.interval=null,console.log("[AutoPing] scheduler stopped"))}function W(a){Object.values(H.providers).some(b=>Object.values(a?.[b.settingsKey]?.connections||{}).some(Boolean))?U():V()}},97753:(a,b,c)=>{c.d(b,{createProviderConnection:()=>d.iE,hr:()=>d.hr});var d=c(70321)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=1729,exports.ids=[1729],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,QB:()=>d.QB,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw,wV:()=>d.wV});var d=c(5129)},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Ib:()=>e,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(87252);function e(a,b=Date.now()){let c;if(!a)return null;let d="string"==typeof a?a:JSON.stringify(a);if(c=d.match(/"?retry[_-]?delay"?\s*[:=]\s*"?\s*([0-9]+(?:\.[0-9]+)?)\s*s/i))return Math.round(1e3*parseFloat(c[1]));if(c=d.match(/"?(?:resets?_at|x-?ratelimit-?reset|ratelimit-?reset)"?\s*[:=]\s*"?\s*([0-9]{9,})/i)){let a=parseInt(c[1],10);a<1e12&&(a*=1e3);let d=a-b;return d>0?d:null}return(c=d.match(/"?retry[_-]?after"?\s*[:=]\s*"?\s*([0-9]+)\b/i))?1e3*parseInt(c[1],10):null}function f(a,b,c=0){let g=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"",h=g.includes("invalid_encrypted_content")||g.includes("encrypted content")&&(g.includes("could not be verified")||g.includes("could not be decrypted or parsed"));if(400===a&&h)return{shouldFallback:!1,cooldownMs:0};if(d.t2.find(b=>b.status===a&&!1===b.fallback))return{shouldFallback:!1,cooldownMs:0,newBackoffLevel:c};for(let f of d.t2)if(f.pattern&&g&&f.pattern.test(g)||f.text&&g&&g.includes(f.text)||f.status&&f.status===a){if(f.permanent||!1===f.fallback)return{shouldFallback:!1,cooldownMs:0};if(f.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a,b){let c=function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),f=e(b);return null!=f&&f>0?Math.min(Math.max(f,c),d.fh):c}(a,b),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:f.cooldownMs}}return{shouldFallback:!1,cooldownMs:0}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=Date.now(),d=a=>{if(!a)return!1;let b=new Date(a).getTime();return Number.isFinite(b)&&b>c};return d(a[j(b)])||d(a[i])}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},60290:(a,b,c)=>{c.d(b,{C8:()=>t,DR:()=>s,IK:()=>m,Ps:()=>h,Qn:()=>q,SA:()=>p,UH:()=>k,Uc:()=>n,Ur:()=>g,Z1:()=>j,cI:()=>r,eo:()=>o,gx:()=>d,pH:()=>l,v1:()=>e,xM:()=>i}),c(87252);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,PAYLOAD_TOO_LARGE:413,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,sessionAffinityMaxSize:5e3,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20};function f(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}function g(){return{firstActionTimeoutMs:f("COMBO_RESPONSE_FIRST_ACTION_TIMEOUT_MS",5e3),maxBytes:f("COMBO_RESPONSE_PREFLIGHT_MAX_BYTES",65536)}}let h=process.env.SEARXNG_URL?.trim()||"http://localhost:8888/search",i=f("STREAM_STALL_TIMEOUT_MS",36e4),j=f("STREAM_FIRST_CHUNK_TIMEOUT_MS",3e4),k=(()=>{let a=process.env.SSE_KEEPALIVE_MS;if(null==a||""===a)return 1e4;let b=parseInt(a,10);return Number.isFinite(b)&&b>=0?b:1e4})(),l=f("FETCH_CONNECT_TIMEOUT_MS",6e4);f("RESPONSE_BODY_TIMEOUT_MS",3e5);let m=f("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),n=64e3,o=32e3,p="x-9router-token-saver",q={maxTokenLength:160,maxAttempts:32,headers:{requestedModel:"X-9Router-Requested-Model",routePath:"X-9Router-Route-Path",resolvedProvider:"X-9Router-Resolved-Provider",resolvedModel:"X-9Router-Resolved-Model",fallbackCount:"X-9Router-Fallback-Count",attemptedModels:"X-9Router-Attempted-Models"}},r={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function s(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let t=["Please write a 5-10 word title for the following conversation:"]},67677:(a,b,c)=>{c.d(b,{Gh:()=>k,IF:()=>p,O9:()=>g,OF:()=>o,WL:()=>h,_6:()=>j,_L:()=>m,bC:()=>n,f5:()=>l,lm:()=>f});var d=c(19956);let e="1"===process.env.LOG_USAGE_VERBOSE,f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function g(a){if(!a||"object"!=typeof a)return a;let b={...a};return void 0!==b.input_tokens&&(b.input_tokens+=2e3),void 0!==b.prompt_tokens&&(b.prompt_tokens+=2e3),void 0!==b.total_tokens?b.total_tokens+=2e3:void 0!==b.prompt_tokens&&void 0!==b.completion_tokens&&(b.total_tokens=b.prompt_tokens+b.completion_tokens),b}function h(a,b){if(!a||"object"!=typeof a)return a;let c={[d.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"],[d.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"],[d.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"]},e=c[b];b===d.h.GEMINI_CLI||b===d.h.ANTIGRAVITY?e=c[d.h.GEMINI]:b===d.h.OPENAI_RESPONSE?e=c[d.h.OPENAI_RESPONSES]:e||(e=c.default);let f={};for(let b of e)void 0!==a[b]&&(f[b]=a[b]);return f}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)},d=(a,c)=>{if(null==c||""===c)return;let d=Number(c);Number.isFinite(d)&&d>=0&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),d("cost_usd",a?.cost_usd),d("cost_in_usd",a?.cost_in_usd),d("cost_in_usd_ticks",a?.cost_in_usd_ticks),a?.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details&&(b.prompt_tokens_details=a.prompt_tokens_details),a?.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(b.completion_tokens_details=a.completion_tokens_details),0===Object.keys(b).length)?null:b}function j(a){let b;if(!a||"object"!=typeof a||Array.isArray(a))return null;let c=a=>Number.isFinite(Number(a))?Number(a):0,d=c(a.completion_tokens??a.output_tokens),e=c(a.reasoning_tokens),f=c(a.cache_creation_input_tokens??a.prompt_tokens_details?.cache_creation_tokens),g=c(a.prompt_tokens??a.input_tokens);void 0===a.cached_tokens&&(void 0!==a.cache_read_input_tokens||void 0!==a.cache_creation_input_tokens)?g=g+(b=c(a.cache_read_input_tokens))+f:b=c(a.cached_tokens??a.prompt_tokens_details?.cached_tokens);let h={prompt_tokens:g,completion_tokens:d,total_tokens:g+d,cached_tokens:b,cache_creation_input_tokens:f},i=b=>{if(null===a[b]||void 0===a[b]||""===a[b])return;let c=Number(a[b]);Number.isFinite(c)&&c>=0&&(h[b]=c)};return i("cost_usd"),i("cost_in_usd"),i("cost_in_usd_ticks"),e>0&&(h.reasoning_tokens=e),h}function k(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function l(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage&&"object"==typeof a.message.usage){let b=a.message.usage;return i({prompt_tokens:b.input_tokens||0,completion_tokens:b.output_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens,cost_usd:b.cost_usd,cost_in_usd:b.cost_in_usd,cost_in_usd_ticks:b.cost_in_usd_ticks})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage)return i({prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens,cost_usd:a.usage.cost_usd,cost_in_usd:a.usage.cost_in_usd,cost_in_usd_ticks:a.usage.cost_in_usd_ticks});if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage,c=b.input_tokens_details?.cached_tokens;return i({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:c,reasoning_tokens:b.output_tokens_details?.reasoning_tokens,cost_usd:b.cost_usd,cost_in_usd:b.cost_in_usd,cost_in_usd_ticks:b.cost_in_usd_ticks,prompt_tokens_details:c?{cached_tokens:c}:void 0})}if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return i({prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens||a.usage.prompt_cache_hit_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,cost_usd:a.usage.cost_usd,cost_in_usd:a.usage.cost_in_usd,cost_in_usd_ticks:a.usage.cost_in_usd_ticks,prompt_tokens_details:a.usage.prompt_tokens_details,completion_tokens_details:a.usage.completion_tokens_details});let b=a.usageMetadata||a.response?.usageMetadata;return b&&"object"==typeof b?i({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount}):!0===a.done&&"number"==typeof a.prompt_eval_count?i({prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0)}):null}function m(a,b){if(!a)return b||null;if(!b)return a;let c={...a};for(let[a,d]of Object.entries(b))"number"==typeof d&&Number.isFinite(d)?c[a]=Math.max("number"==typeof c[a]?c[a]:0,d):d&&"object"==typeof d&&(c[a]=d);return c}function n(a){if(!a||"object"!=typeof a)return 0;try{let b=JSON.stringify(a).length;return Math.ceil(b/4)}catch(a){return 0}}function o(a,b,c=d.h.OPENAI){var e,f;return e=n(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===d.h.CLAUDE?g({input_tokens:e,output_tokens:f,estimated:!0}):g({prompt_tokens:e,completion_tokens:f,total_tokens:e+f,estimated:!0})}function p(a,b,c=null,d=null,g=null){if(!b||"object"!=typeof b||!e)return;let h=a?.toUpperCase()||"UNKNOWN",i=b?.prompt_tokens||b?.input_tokens||0,j=b?.completion_tokens||b?.output_tokens||0,k=d?d.slice(0,8)+"...":"unknown",l=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${f.green}[USAGE] ${h} | in=${i} | out=${j} | account=${k}${f.reset}`;b.estimated&&(l+=` ${f.yellow}(estimated)${f.reset}`);let m=b.cache_read_input_tokens||b.cached_tokens||b.prompt_tokens_details?.cached_tokens;m&&(l+=` | cache_read=${m}`);let n=b.cache_creation_input_tokens;n&&(l+=` | cache_create=${n}`);let o=b.reasoning_tokens;o&&(l+=` | reasoning=${o}`),console.log(l)}},87252:(a,b,c)=>{c.d(b,{Dp:()=>g,EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},413:{type:"invalid_request_error",code:"context_length_exceeded"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",413:"Your input exceeds the context window of this model",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:18e5,maxLevel:15},g=42e4,h=26784e5,i=[{text:"monthly_request_count",cooldownMs:216e5},{text:"monthly limit",cooldownMs:216e5},{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:413,fallback:!1},{status:429,backoff:!0}]},89865:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(87252);function e(a,b,c){let e;return new Response(JSON.stringify((e=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:e.type,code:c??e.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c,e="";try{e=await a.text()}catch{e=""}let g="";try{let a=JSON.parse(e);g=a.error?.message||a.message||a.error||e,c=a.error?.code||a.code}catch{g=e}let h=("string"==typeof g?g:JSON.stringify(g))||d.O[a.status]||`Upstream error: ${a.status}`;if(b&&"function"==typeof b.parseError)try{let d=b.parseError(a,e);if(d&&"object"==typeof d){let b=d.message&&d.message!==e?d.message:h;return{statusCode:d.status||a.status,message:b,resetsAtMs:d.resetsAtMs,code:d.code??c}}}catch{}return{statusCode:a.status,message:h,code:c}}function g(a,b,c,d){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b,d)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};
|
|
1
|
+
"use strict";exports.id=3350,exports.ids=[3350],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,QB:()=>d.QB,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw,wV:()=>d.wV});var d=c(5129)},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Ib:()=>e,Qo:()=>g,S5:()=>m,hk:()=>f,kJ:()=>l});var d=c(87252);function e(a,b=Date.now()){let c;if(!a)return null;let d="string"==typeof a?a:JSON.stringify(a);if(c=d.match(/"?retry[_-]?delay"?\s*[:=]\s*"?\s*([0-9]+(?:\.[0-9]+)?)\s*s/i))return Math.round(1e3*parseFloat(c[1]));if(c=d.match(/"?(?:resets?_at|x-?ratelimit-?reset|ratelimit-?reset)"?\s*[:=]\s*"?\s*([0-9]{9,})/i)){let a=parseInt(c[1],10);a<1e12&&(a*=1e3);let d=a-b;return d>0?d:null}return(c=d.match(/"?retry[_-]?after"?\s*[:=]\s*"?\s*([0-9]+)\b/i))?1e3*parseInt(c[1],10):null}function f(a,b,c=0){let g=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"",h=g.includes("invalid_encrypted_content")||g.includes("encrypted content")&&(g.includes("could not be verified")||g.includes("could not be decrypted or parsed"));if(400===a&&h)return{shouldFallback:!1,cooldownMs:0};if(d.t2.find(b=>b.status===a&&!1===b.fallback))return{shouldFallback:!1,cooldownMs:0,newBackoffLevel:c};for(let f of d.t2)if(f.pattern&&g&&f.pattern.test(g)||f.text&&g&&g.includes(f.text)||f.status&&f.status===a){if(f.permanent||!1===f.fallback)return{shouldFallback:!1,cooldownMs:0};if(f.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a,b){let c=function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),f=e(b);return null!=f&&f>0?Math.min(Math.max(f,c),d.fh):c}(a,b),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:f.cooldownMs}}return{shouldFallback:!1,cooldownMs:0}}function g(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=Date.now(),d=a=>{if(!a)return!1;let b=new Date(a).getTime();return Number.isFinite(b)&&b>c};return d(a[j(b)])||d(a[i])}function l(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function m(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},60290:(a,b,c)=>{c.d(b,{C8:()=>t,DR:()=>s,IK:()=>m,Ps:()=>h,Qn:()=>q,SA:()=>p,UH:()=>k,Uc:()=>n,Ur:()=>g,Z1:()=>j,cI:()=>r,eo:()=>o,gx:()=>d,pH:()=>l,v1:()=>e,xM:()=>i}),c(87252);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,PAYLOAD_TOO_LARGE:413,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,sessionAffinityMaxSize:5e3,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20};function f(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}function g(){return{firstActionTimeoutMs:f("COMBO_RESPONSE_FIRST_ACTION_TIMEOUT_MS",5e3),maxBytes:f("COMBO_RESPONSE_PREFLIGHT_MAX_BYTES",65536)}}let h=process.env.SEARXNG_URL?.trim()||"http://localhost:8888/search",i=f("STREAM_STALL_TIMEOUT_MS",36e4),j=f("STREAM_FIRST_CHUNK_TIMEOUT_MS",3e4),k=(()=>{let a=process.env.SSE_KEEPALIVE_MS;if(null==a||""===a)return 1e4;let b=parseInt(a,10);return Number.isFinite(b)&&b>=0?b:1e4})(),l=f("FETCH_CONNECT_TIMEOUT_MS",6e4);f("RESPONSE_BODY_TIMEOUT_MS",3e5);let m=f("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),n=64e3,o=32e3,p="x-9router-token-saver",q={maxTokenLength:160,maxAttempts:32,headers:{requestedModel:"X-9Router-Requested-Model",routePath:"X-9Router-Route-Path",resolvedProvider:"X-9Router-Resolved-Provider",resolvedModel:"X-9Router-Resolved-Model",fallbackCount:"X-9Router-Fallback-Count",attemptedModels:"X-9Router-Attempted-Models"}},r={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function s(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let t=["Please write a 5-10 word title for the following conversation:"]},67677:(a,b,c)=>{c.d(b,{Gh:()=>k,IF:()=>p,O9:()=>g,OF:()=>o,WL:()=>h,_6:()=>j,_L:()=>m,bC:()=>n,f5:()=>l,lm:()=>f});var d=c(19956);let e="1"===process.env.LOG_USAGE_VERBOSE,f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function g(a){if(!a||"object"!=typeof a)return a;let b={...a};return void 0!==b.input_tokens&&(b.input_tokens+=2e3),void 0!==b.prompt_tokens&&(b.prompt_tokens+=2e3),void 0!==b.total_tokens?b.total_tokens+=2e3:void 0!==b.prompt_tokens&&void 0!==b.completion_tokens&&(b.total_tokens=b.prompt_tokens+b.completion_tokens),b}function h(a,b){if(!a||"object"!=typeof a)return a;let c={[d.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"],[d.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"],[d.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated","cost_usd","cost_in_usd","cost_in_usd_ticks"]},e=c[b];b===d.h.GEMINI_CLI||b===d.h.ANTIGRAVITY?e=c[d.h.GEMINI]:b===d.h.OPENAI_RESPONSE?e=c[d.h.OPENAI_RESPONSES]:e||(e=c.default);let f={};for(let b of e)void 0!==a[b]&&(f[b]=a[b]);return f}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)},d=(a,c)=>{if(null==c||""===c)return;let d=Number(c);Number.isFinite(d)&&d>=0&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),d("cost_usd",a?.cost_usd),d("cost_in_usd",a?.cost_in_usd),d("cost_in_usd_ticks",a?.cost_in_usd_ticks),a?.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details&&(b.prompt_tokens_details=a.prompt_tokens_details),a?.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(b.completion_tokens_details=a.completion_tokens_details),0===Object.keys(b).length)?null:b}function j(a){let b;if(!a||"object"!=typeof a||Array.isArray(a))return null;let c=a=>Number.isFinite(Number(a))?Number(a):0,d=c(a.completion_tokens??a.output_tokens),e=c(a.reasoning_tokens),f=c(a.cache_creation_input_tokens??a.prompt_tokens_details?.cache_creation_tokens),g=c(a.prompt_tokens??a.input_tokens);void 0===a.cached_tokens&&(void 0!==a.cache_read_input_tokens||void 0!==a.cache_creation_input_tokens)?g=g+(b=c(a.cache_read_input_tokens))+f:b=c(a.cached_tokens??a.prompt_tokens_details?.cached_tokens);let h={prompt_tokens:g,completion_tokens:d,total_tokens:g+d,cached_tokens:b,cache_creation_input_tokens:f},i=b=>{if(null===a[b]||void 0===a[b]||""===a[b])return;let c=Number(a[b]);Number.isFinite(c)&&c>=0&&(h[b]=c)};return i("cost_usd"),i("cost_in_usd"),i("cost_in_usd_ticks"),e>0&&(h.reasoning_tokens=e),h}function k(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function l(a){if(!a||"object"!=typeof a)return null;if("message_start"===a.type&&a.message?.usage&&"object"==typeof a.message.usage){let b=a.message.usage;return i({prompt_tokens:b.input_tokens||0,completion_tokens:b.output_tokens||0,cache_read_input_tokens:b.cache_read_input_tokens,cache_creation_input_tokens:b.cache_creation_input_tokens,cost_usd:b.cost_usd,cost_in_usd:b.cost_in_usd,cost_in_usd_ticks:b.cost_in_usd_ticks})}if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage)return i({prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens,cost_usd:a.usage.cost_usd,cost_in_usd:a.usage.cost_in_usd,cost_in_usd_ticks:a.usage.cost_in_usd_ticks});if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage,c=b.input_tokens_details?.cached_tokens;return i({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:c,reasoning_tokens:b.output_tokens_details?.reasoning_tokens,cost_usd:b.cost_usd,cost_in_usd:b.cost_in_usd,cost_in_usd_ticks:b.cost_in_usd_ticks,prompt_tokens_details:c?{cached_tokens:c}:void 0})}if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return i({prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens||a.usage.prompt_cache_hit_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,cost_usd:a.usage.cost_usd,cost_in_usd:a.usage.cost_in_usd,cost_in_usd_ticks:a.usage.cost_in_usd_ticks,prompt_tokens_details:a.usage.prompt_tokens_details,completion_tokens_details:a.usage.completion_tokens_details});let b=a.usageMetadata||a.response?.usageMetadata;return b&&"object"==typeof b?i({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount}):!0===a.done&&"number"==typeof a.prompt_eval_count?i({prompt_tokens:a.prompt_eval_count||0,completion_tokens:a.eval_count||0,total_tokens:(a.prompt_eval_count||0)+(a.eval_count||0)}):null}function m(a,b){if(!a)return b||null;if(!b)return a;let c={...a};for(let[a,d]of Object.entries(b))"number"==typeof d&&Number.isFinite(d)?c[a]=Math.max("number"==typeof c[a]?c[a]:0,d):d&&"object"==typeof d&&(c[a]=d);return c}function n(a){if(!a||"object"!=typeof a)return 0;try{let b=JSON.stringify(a).length;return Math.ceil(b/4)}catch(a){return 0}}function o(a,b,c=d.h.OPENAI){var e,f;return e=n(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===d.h.CLAUDE?g({input_tokens:e,output_tokens:f,estimated:!0}):g({prompt_tokens:e,completion_tokens:f,total_tokens:e+f,estimated:!0})}function p(a,b,c=null,d=null,g=null){if(!b||"object"!=typeof b||!e)return;let h=a?.toUpperCase()||"UNKNOWN",i=b?.prompt_tokens||b?.input_tokens||0,j=b?.completion_tokens||b?.output_tokens||0,k=d?d.slice(0,8)+"...":"unknown",l=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${f.green}[USAGE] ${h} | in=${i} | out=${j} | account=${k}${f.reset}`;b.estimated&&(l+=` ${f.yellow}(estimated)${f.reset}`);let m=b.cache_read_input_tokens||b.cached_tokens||b.prompt_tokens_details?.cached_tokens;m&&(l+=` | cache_read=${m}`);let n=b.cache_creation_input_tokens;n&&(l+=` | cache_create=${n}`);let o=b.reasoning_tokens;o&&(l+=` | reasoning=${o}`),console.log(l)}},87252:(a,b,c)=>{c.d(b,{Dp:()=>g,EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},413:{type:"invalid_request_error",code:"context_length_exceeded"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",413:"Your input exceeds the context window of this model",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:18e5,maxLevel:15},g=42e4,h=26784e5,i=[{text:"monthly_request_count",cooldownMs:216e5},{text:"monthly limit",cooldownMs:216e5},{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:413,fallback:!1},{status:429,backoff:!0}]},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252),e=c(60290);function f(a,b,c){let e;return new Response(JSON.stringify((e=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:e.type,code:c??e.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function g(a,b=null){let c,f="";try{f=await a.text()}catch{f=""}let h="",i=null,j=!1;try{let a=JSON.parse(f);if(h=a.error?.message||a.message||a.error||f,c=a.error?.code||a.code,i=a.error?.metadata?.provider_name||null,"string"==typeof h){let a=/^Invalid URL:\s*(.*)$/.exec(h);a&&(j=""===a[1].trim())}}catch{h=f}let k="string"==typeof h?h:JSON.stringify(h);if((i||j)&&(a.status===e.gx.BAD_GATEWAY||a.status===e.gx.SERVER_ERROR||502===a.status||500===a.status)){let a=i?`OpenRouter upstream "${i}" returned an invalid routing URL — its endpoint is misconfigured on OpenRouter's side`:"Upstream returned an invalid (empty) routing URL";k=`${k} — ${a}. Try a different model, or set \`provider: { allow_fallbacks: true }\` to opt into OpenRouter's automatic upstream fallback.`}let l=k||d.O[a.status]||`Upstream error: ${a.status}`;if(b&&"function"==typeof b.parseError)try{let d=b.parseError(a,f);if(d&&"object"==typeof d){let b=d.message&&d.message!==f?d.message:l;return{statusCode:d.status||a.status,message:b,resetsAtMs:d.resetsAtMs,code:d.code??c}}}catch{}return{statusCode:a.status,message:l,code:c}}function h(a,b,c,d){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b,d)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
data: [DONE]
|
|
8
8
|
|
|
9
|
-
`))}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}};return new ReadableStream({async pull(a){if(!b.isConnected()){g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){b.handleComplete(),a.close();return}a.enqueue(e)}catch(l){let f=b.isConnected(),h=l?.message||"";h.includes("already closed")||h.includes("Invalid state")||b.handleError(l),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let i=l?.message||"",j=l?.code||l?.cause?.code||"",k="AbortError"===l.name||i.includes("aborted")||i.includes("socket hang up")||i.includes("ECONNRESET")||i.includes("ETIMEDOUT")||i.includes("EPIPE")||"ECONNRESET"===j||"ETIMEDOUT"===j||"EPIPE"===j||"UND_ERR_SOCKET"===j;try{!f||k||c?(g(a),a.close()):a.error(l)}catch(a){}}},cancel(a){b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(y).pipeThrough(b).pipeThrough(A),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},w,f)}},21479:(a,b,c)=>{c.d(b,{wk:()=>bD});var d=c(17717),e=c(2547),f=c(94454),g=c(19956),h=c(25830),i=c(15575),j=c(85640);let k="u">typeof process&&process.versions?.node&&!0,l="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",m=null,n=null,o=null;async function p(){if(k&&l&&!m)try{m=await Promise.resolve().then(c.t.bind(c,29021,19)),o=(n=await Promise.resolve().then(c.t.bind(c,33873,19))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function q(a,b,c){if(await p(),!m||!o)return null;try{m.existsSync(o)||m.mkdirSync(o,{recursive:!0,mode:448});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,g=n.join(o,f);return m.mkdirSync(g,{recursive:!0,mode:448}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function r(a,b,c){if(m&&a)try{let d=n.join(a,b);m.writeFileSync(d,JSON.stringify(c,null,2),{mode:384})}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let s=new Set(["authorization","proxy-authorization","cookie","set-cookie","x-api-key","api-key","x-goog-api-key"]);function t(a){return a?Object.fromEntries(Array.from("function"==typeof a.entries?a.entries():Object.entries(a),([a,b])=>{let c=a.toLowerCase();return[a,s.has(c)||c.includes("token")||c.includes("secret")?"[REDACTED]":b]})):{}}async function u(a,b,c){if(!l)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await q(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){r(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:t(c),body:b})},logRawRequest(a,b={}){r(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:t(b),body:a})},logOpenAIRequest(a){r(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){r(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:t(b),body:c})},logProviderResponse(a,b,c,e){r(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:t(c),body:e})},appendProviderChunk(a){if(m&&d)try{let b=n.join(d,"5_res_provider.txt");m.appendFileSync(b,a,{mode:384})}catch(a){}},appendOpenAIChunk(a){if(m&&d)try{let b=n.join(d,"6_res_openai.txt");m.appendFileSync(b,a,{mode:384})}catch(a){}},logConvertedResponse(a){r(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(m&&d)try{let b=n.join(d,"7_res_client.txt");m.appendFileSync(b,a,{mode:384})}catch(a){}},logError(a,b=null){r(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}var v=c(27335),w=c(4630),x=c(89865),y=c(60290),z=c(2735),A=c(47370),B=c(99356),C=c(13247),D=c(6755),E=c(67677);let F=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function G(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of F)void 0!==a[b]&&(c[b]=a[b]);return c}function H(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},pxpipe:a.pxpipe||void 0,status:a.status||"success",...b}}function I({usage:a,latency:b}){let c=a||{},d=c.prompt_tokens??c.input_tokens??0,e=c.completion_tokens??c.output_tokens??0,f=c.cache_read_input_tokens??c.cached_tokens??c.prompt_tokens_details?.cached_tokens??0,g=c.cache_creation_input_tokens??0,h=`IN ${d}`;if(f||g){let a=[];f&&a.push(`↻${f}`),g&&a.push(`+${g}`),h+=` (CACHE ${a.join(" ")})`}let i=b?.ttft?` \xb7 TTFT ${b.ttft}ms`:"";return`DONE ${b?.total??0}ms${i} \xb7 ${h} \xb7 OUT ${e}`}function J({provider:a,model:b,tokens:c,connectionId:d,apiKey:e,endpoint:f,requestedModel:g,status:h,label:i="USAGE",silent:j=!1}){if(!c||"object"!=typeof c)return;let k=c.input_tokens??c.prompt_tokens??0,l=c.output_tokens??c.completion_tokens??0;if(0===k&&0===l)return;if(!j){let b=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),c=d?` | account=${d.slice(0,8)}...`:"";console.log(`${D.lm.green}[${b}] 📊 [${i}] ${a.toUpperCase()} | in=${k} | out=${l}${c}${D.lm.reset}`)}let m=(0,E._6)(c)||{prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};(0,A.sZ)({provider:a||"unknown",model:b||"unknown",tokens:m,timestamp:new Date().toISOString(),connectionId:d||void 0,apiKey:e||void 0,endpoint:f||null,requestedModel:g||void 0,status:h||"ok"}).catch(()=>{})}var K=c(89568);function L(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!e)return;let f=e[1].trim();if("[DONE]"!==f){try{c=JSON.parse(f)}catch{return}(0,K.rY)(b,{event:d?.[1]?.trim()||c.type,data:c})}}let M={input_tokens:0,output_tokens:0,total_tokens:0};async function N(a){let b=(0,K.lJ)();if(!a||"function"!=typeof a.getReader)return{...(0,K.Hd)(b,{error:O("invalid_stream","response stream is unavailable")}).response,usage:{...M}};let c=a.getReader(),d=new TextDecoder,e="",f=null;try{for(;;){let{done:a,value:f}=await c.read();if(a)break;let g=(e+=d.decode(f,{stream:!0})).split("\n\n");for(let a of(e=g.pop()||"",g))L(a,b)}e.trim()&&L(e,b)}catch(a){f=a}finally{c.releaseLock()}b.finalized||(0,K.Hd)(b,{error:O(f?"stream_read_error":"stream_disconnected",f?.message||"stream closed before a terminal response event")});let g=b.terminalResponse;return{...g,usage:g.usage||{...M}}}function O(a,b){return{type:"stream_error",code:a,message:b}}var P=c(18226),Q=c(98173),R=c(45136);let S=a=>w.xq[a]?.format===g.h.OPENAI_RESPONSES;function T(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function U(a,b=null){let c=a?.choices?.[0];if(!c)return a;let d=c.message||{},e=[],f=d.reasoning_content||d.reasoning;"string"==typeof f&&f.length>0&&e.push({type:P.Du.REASONING,summary:[{type:P.Du.SUMMARY_TEXT,text:f}]});let g="string"==typeof d.content?d.content:"";for(let a of(g.length>0&&e.push({type:P.Du.MESSAGE,role:P.z7.ASSISTANT,content:[{type:P.Du.OUTPUT_TEXT,text:g,annotations:[]}]}),d.tool_calls||[])){let c=a.function||{},d=b?.has(c.name);e.push({type:d?P.Du.CUSTOM_TOOL_CALL:P.Du.FUNCTION_CALL,id:`${d?"ctc":"fc"}_${a.id||""}`,call_id:a.id||"",name:c.name||"",...d?{input:function(a){let b="string"==typeof a?a:JSON.stringify(a||{});try{let a=JSON.parse(b);if(a&&"object"==typeof a&&"string"==typeof a.input)return a.input}catch{}return b}(c.arguments)}:{arguments:"string"==typeof c.arguments?c.arguments:JSON.stringify(c.arguments||{})}})}let h=a.usage||{};return{id:`resp_${a.id||""}`.replace(/^resp_chatcmpl-/,"resp_"),object:"response",created_at:a.created||Math.floor(Date.now()/1e3),model:a.model||"unknown",status:"completed",background:!1,error:null,output:e,usage:{input_tokens:h.prompt_tokens||h.input_tokens||0,output_tokens:h.completion_tokens||h.output_tokens||0,total_tokens:h.total_tokens||(h.prompt_tokens||0)+(h.completion_tokens||0)}}}function V(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function W(a,b){let c=[],d=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let e=a.slice(5).trim();if(e&&"[DONE]"!==e)try{let a=JSON.parse(e);a?.error?d=a.error:c.push(a)}catch{}}if(d)return{error:d};if(0===c.length)return null;let e=c[0],f=[],g=[],h=new Map,i="stop",j=null;for(let a of c){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&f.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&g.push(c.reasoning_content),b?.finish_reason&&(i=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(j=a.usage),Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;h.has(b)||h.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=h.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let k={role:"assistant",content:f.join("")||(h.size>0?null:"")};g.length>0&&(k.reasoning_content=g.join("")),h.size>0&&(k.tool_calls=[...h.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a));let l={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created||Math.floor(Date.now()/1e3),model:e.model||b||"unknown",choices:[{index:0,message:k,finish_reason:i}]};return j&&(l.usage=j),l}async function X({providerResponse:a,sourceFormat:b,targetFormat:c,provider:d,model:e,body:f,stream:h,translatedBody:i,finalBody:j,requestStartTime:k,connectionId:l,apiKey:m,clientRawRequest:n,onRequestSuccess:o,customToolNames:p,trackDone:q,appendLog:r,reqTag:s,log:t}){let u=a.headers.get("content-type")||"";if(!(u.includes("text/event-stream")||""===u&&S(d)))return null;q();let v={provider:d,model:e,connectionId:l,request:G(f,h),providerRequest:j||i||null},w=[g.h.ANTIGRAVITY,g.h.GEMINI,g.h.GEMINI_CLI,g.h.VERTEX].includes(c);if(S(d)||c===g.h.OPENAI_RESPONSES||w)try{let c,f;if(w){let b=function(a,b){let c={},d=[],e=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let f=a.slice(5).trim();if(f&&"[DONE]"!==f)try{let a=JSON.parse(f);a?.error?e=a.error:d.push(...(0,R.o)(a,c)||[])}catch{}}return e?{error:e}:0===d.length?null:W(d.map(a=>`data: ${JSON.stringify(a)}`).join("\n"),b)}(await a.text(),e);if(!b)return(0,x.A1)(y.gx.BAD_GATEWAY,"Invalid Gemini SSE response for non-streaming request");if(b.error)return(0,x.A1)(y.gx.BAD_GATEWAY,b.error.message||"Upstream SSE stream failed");c=U(b,p)}else c=await N(a.body);o&&await o();let h=c.usage||{};r({tokens:h,status:"200 OK"}),J({provider:d,model:e,tokens:h,connectionId:l,apiKey:m,endpoint:n?.endpoint,silent:!0}),t?.line&&t.line(s,"\uD83D\uDCCA",I({usage:h,latency:{total:Date.now()-k}}));let i=(h.input_tokens||0)+(h.cache_read_input_tokens||h.cached_tokens||0)+(h.cache_creation_input_tokens||0),{msgItem:j,textContent:q}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=T(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:T(c)}}(c.output),u=Date.now()-k;if((0,A.ox)(H({...v,latency:{ttft:u,total:u},tokens:{prompt_tokens:i,completion_tokens:h.output_tokens||0},response:{content:q,thinking:null,finish_reason:c.status||"unknown"},status:"success"},{endpoint:n?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let z=h.cache_read_input_tokens||h.cached_tokens||0,B=h.cache_creation_input_tokens||0,C=(h.input_tokens||0)+z+B,D=h.output_tokens||0,E=z>0||B>0?{prompt_tokens_details:{...z>0?{cached_tokens:z}:{},...B>0?{cache_creation_tokens:B}:{}}}:{},F=(c.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),G=F.length>0;if(b===g.h.ANTIGRAVITY||b===g.h.GEMINI||b===g.h.GEMINI_CLI)f={response:{candidates:[{content:{role:"model",parts:[{text:q||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:C,candidatesTokenCount:D,totalTokenCount:C+D},modelVersion:e,responseId:c.id||`resp_${Date.now()}`}};else if(b===g.h.CLAUDE){let a=[];for(let b of(c.output||[]).filter(a=>a?.type==="reasoning")){let c=(b.summary||[]).map(a=>a.text||"").join("");c&&a.push({type:"thinking",thinking:c})}for(let b of(q&&a.push({type:"text",text:q}),F))a.push({type:"tool_use",id:b.id,name:b.function.name,input:V(b.function.arguments)});0===a.length&&a.push({type:"text",text:""});let b="completed"===c.status||"done"===c.status;f={id:(c.id||`msg_${Date.now()}`).replace(/^resp_/,""),type:"message",role:"assistant",model:c.model||e,content:a,stop_reason:G?"tool_use":b?"end_turn":c.status||"end_turn",stop_sequence:null,usage:{input_tokens:C,output_tokens:D}}}else{let a={role:"assistant",content:q||(G?null:"")};G&&(a.tool_calls=F);let b="completed"===c.status||"done"===c.status,d=G?"tool_calls":b?"stop":c.status||"stop";f={id:c.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:c.created_at||Math.floor(Date.now()/1e3),model:c.model||e,choices:[{index:0,message:a,finish_reason:d}],usage:{prompt_tokens:C,completion_tokens:D,total_tokens:C+D,...E}}}return{success:!0,response:new Response(JSON.stringify(f),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,x.A1)(y.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let c,f=await a.text(),h=W(f,e);if(!h)return(0,x.A1)(y.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(h.error)return(0,x.A1)(y.gx.BAD_GATEWAY,h.error.message||"Upstream SSE stream failed");o&&await o();let i=h.usage||{};r({tokens:i,status:"200 OK"}),J({provider:d,model:e,tokens:i,connectionId:l,apiKey:m,endpoint:n?.endpoint,silent:!0}),t?.line&&t.line(s,"\uD83D\uDCCA",I({usage:i,latency:{total:Date.now()-k}}));let j=Date.now()-k;if((0,A.ox)(H({...v,latency:{ttft:j,total:j},tokens:i,response:{content:h.choices?.[0]?.message?.content||null,thinking:h.choices?.[0]?.message?.reasoning_content||null,finish_reason:h.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:n?.endpoint||null})).catch(()=>{}),i&&Object.keys(i).length>0&&(h.usage=i),h?.choices)for(let a of h.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;return c=b===g.h.OPENAI_RESPONSES?U(h,p):b===g.h.CLAUDE?function(a){if(!a?.choices?.[0])return a;let b=a.choices[0],c=b.message||{},d=[],e=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";for(let a of(e&&d.push({type:"thinking",thinking:e}),"string"==typeof c.content&&c.content.length>0&&d.push({type:"text",text:c.content}),c.tool_calls||[])){let b=a.function||{};d.push({type:"tool_use",id:a.id||`toolu_${Date.now()}_${d.length}`,name:b.name||a.name||"",input:V(b.arguments||a.arguments)})}0===d.length&&d.push({type:"text",text:""});let f=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:d,stop_reason:(0,Q.Q)(b.finish_reason,g.h.CLAUDE),stop_sequence:null,usage:{input_tokens:f.prompt_tokens||f.input_tokens||0,output_tokens:f.completion_tokens||f.output_tokens||0}}}(h):h,{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,x.A1)(y.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}var Y=c(68057),Z=c(66451),$=c(87252),_=c(10089);function aa(a){if(!a?.choices?.[0])return a;let b=a.choices[0],c=b.message||{},d=[],e=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";for(let a of(e&&d.push({type:"thinking",thinking:e}),"string"==typeof c.content&&c.content.length>0&&d.push({type:"text",text:c.content}),c.tool_calls||[])){let b=a.function||{};d.push({type:"tool_use",id:a.id||`toolu_${Date.now()}_${d.length}`,name:b.name||a.name||"",input:function(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}(b.arguments||a.arguments)})}0===d.length&&d.push({type:"text",text:""});let f=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:d,stop_reason:(0,Q.Q)(b.finish_reason,g.h.CLAUDE),stop_sequence:null,usage:{input_tokens:f.prompt_tokens||f.input_tokens||0,output_tokens:f.completion_tokens||f.output_tokens||0}}}function ab(a,b=null){let c=a?.choices?.[0];if(!c)return a;let d=c.message||{},e=[],f=d.reasoning_content||d.reasoning;"string"==typeof f&&f.length>0&&e.push({type:P.Du.REASONING,summary:[{type:P.Du.SUMMARY_TEXT,text:f}]});let g="string"==typeof d.content?d.content:"";for(let a of(g.length>0&&e.push({type:P.Du.MESSAGE,role:P.z7.ASSISTANT,content:[{type:P.Du.OUTPUT_TEXT,text:g,annotations:[]}]}),d.tool_calls||[])){let c=a.function||{},d=b?.has(c.name);e.push({type:d?P.Du.CUSTOM_TOOL_CALL:P.Du.FUNCTION_CALL,id:`${d?"ctc":"fc"}_${a.id||""}`,call_id:a.id||"",name:c.name||"",...d?{input:function(a){let b="string"==typeof a?a:JSON.stringify(a||{});try{let a=JSON.parse(b);if(a&&"object"==typeof a&&"string"==typeof a.input)return a.input}catch{}return b}(c.arguments)}:{arguments:"string"==typeof c.arguments?c.arguments:JSON.stringify(c.arguments||{})}})}let h=a?.usage||{};return{id:String(a?.id||`resp_${Date.now()}`).replace(/^chatcmpl-/,"resp_"),object:"response",created_at:a?.created||Math.floor(Date.now()/1e3),model:a?.model||"unknown",status:"completed",output:e,usage:{input_tokens:h.prompt_tokens||h.input_tokens||0,output_tokens:h.completion_tokens||h.output_tokens||0,total_tokens:h.total_tokens||(h.prompt_tokens||h.input_tokens||0)+(h.completion_tokens||h.output_tokens||0)}}}async function ac({body:a,modelInfo:b,credentials:c,providerResponse:d,sourceFormat:f,targetFormat:h,reqLogger:i,toolNameMap:j,trackDone:k,appendLog:l,reqTag:m="",log:n=null,customToolNames:o=null}){let{provider:p,model:q}=b,r=Date.now();try{let s=await d.json(),t=f===g.h.CLAUDE,u=f===g.h.OPENAI_RESPONSES,v=function(a,b,c,d=null){if(b===c){if(b===g.h.OPENAI)for(let b of a?.choices||[]){let a=b?.message;a?.reasoning&&"string"==typeof a.reasoning&&!a.reasoning_content&&(a.reasoning_content=a.reasoning,delete a.reasoning)}return a}if(b===g.h.OPENAI_RESPONSES&&c!==g.h.OPENAI_RESPONSES){let b=function(a){let b=Array.isArray(a?.output)?a.output:[],c="",d="",e=[];for(let a of b)if(a?.type===P.Du.MESSAGE)for(let b of a.content||[])b?.type===P.Du.OUTPUT_TEXT&&"string"==typeof b.text&&(c+=b.text);else if(a?.type===P.Du.REASONING)for(let b of a.summary||[])b?.type===P.Du.SUMMARY_TEXT&&"string"==typeof b.text&&(d+=b.text);else if(a?.type===P.Du.FUNCTION_CALL||a?.type===P.Du.CUSTOM_TOOL_CALL){let b=a.type===P.Du.CUSTOM_TOOL_CALL;e.push({id:a.call_id||a.id||`call_${e.length}`,type:"function",function:{name:a.name||"",arguments:b?JSON.stringify({input:a.input||""}):"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})}let f={role:"assistant"};c&&(f.content=c),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=e),f.content||f.tool_calls||(f.content="");let g=a?.usage||{};return{id:String(a?.id||`chatcmpl-${Date.now()}`).replace(/^resp_/,"chatcmpl-"),object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||"unknown",choices:[{index:0,message:f,finish_reason:e.length>0?"tool_calls":"stop"}],usage:{prompt_tokens:g.prompt_tokens||g.input_tokens||0,completion_tokens:g.completion_tokens||g.output_tokens||0,total_tokens:g.total_tokens||(g.prompt_tokens||g.input_tokens||0)+(g.completion_tokens||g.output_tokens||0)}}}(a);if(c===g.h.OPENAI)return b;if(c===g.h.CLAUDE)return aa(b)}if(b===g.h.OPENAI&&c===g.h.OPENAI_RESPONSES)return ab(a,d);if(b===g.h.OPENAI&&c===g.h.CLAUDE)return aa(a);if(b===g.h.OPENAI)return a;if(b===g.h.GEMINI||b===g.h.ANTIGRAVITY||b===g.h.GEMINI_CLI||b===g.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let e=b.candidates[0],f=e.content,h=b.usageMetadata||a.usageMetadata,i="",j="",k=[];if(f?.parts)for(let a of f.parts){!0===a.thought&&a.text?j+=a.text:void 0!==a.text&&(i+=a.text),a.functionCall&&k.push({id:`call_${a.functionCall.name}_${Date.now()}_${k.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let b=a.inlineData||a.inline_data;if(b?.data){let a=b.mimeType||b.mime_type||"image/png";i+=`
|
|
9
|
+
`))}});return function(a,b,c=null){let d=a.readable.getReader(),e=a.writable.getWriter(),f=!1,g=a=>{if(!f&&c){f=!0;try{let b=c();b&&a.enqueue(b)}catch{}}};return new ReadableStream({async pull(a){if(!b.isConnected()){g(a),a.close();return}try{let{done:c,value:e}=await d.read();if(c){b.handleComplete(),a.close();return}a.enqueue(e)}catch(l){let f=b.isConnected(),h=l?.message||"";h.includes("already closed")||h.includes("Invalid state")||b.handleError(l),d.cancel().catch(()=>{}),e.abort().catch(()=>{});let i=l?.message||"",j=l?.code||l?.cause?.code||"",k="AbortError"===l.name||i.includes("aborted")||i.includes("socket hang up")||i.includes("ECONNRESET")||i.includes("ETIMEDOUT")||i.includes("EPIPE")||"ECONNRESET"===j||"ETIMEDOUT"===j||"EPIPE"===j||"UND_ERR_SOCKET"===j;try{!f||k||c?(g(a),a.close()):a.error(l)}catch(a){}}},cancel(a){b.handleDisconnect(a||"cancelled"),d.cancel(),e.abort()}})}({readable:a.body.pipeThrough(y).pipeThrough(b).pipeThrough(A),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},w,f)}},21479:(a,b,c)=>{c.d(b,{wk:()=>bD});var d=c(17717),e=c(2547),f=c(94454),g=c(19956),h=c(25830),i=c(15575),j=c(85640);let k="u">typeof process&&process.versions?.node&&!0,l="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",m=null,n=null,o=null;async function p(){if(k&&l&&!m)try{m=await Promise.resolve().then(c.t.bind(c,29021,19)),o=(n=await Promise.resolve().then(c.t.bind(c,33873,19))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function q(a,b,c){if(await p(),!m||!o)return null;try{m.existsSync(o)||m.mkdirSync(o,{recursive:!0,mode:448});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,g=n.join(o,f);return m.mkdirSync(g,{recursive:!0,mode:448}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function r(a,b,c){if(m&&a)try{let d=n.join(a,b);m.writeFileSync(d,JSON.stringify(c,null,2),{mode:384})}catch(a){console.log(`[LOG] Failed to write ${b}:`,a.message)}}let s=new Set(["authorization","proxy-authorization","cookie","set-cookie","x-api-key","api-key","x-goog-api-key"]);function t(a){return a?Object.fromEntries(Array.from("function"==typeof a.entries?a.entries():Object.entries(a),([a,b])=>{let c=a.toLowerCase();return[a,s.has(c)||c.includes("token")||c.includes("secret")?"[REDACTED]":b]})):{}}async function u(a,b,c){if(!l)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await q(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){r(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:t(c),body:b})},logRawRequest(a,b={}){r(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:t(b),body:a})},logOpenAIRequest(a){r(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){r(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:t(b),body:c})},logProviderResponse(a,b,c,e){r(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:t(c),body:e})},appendProviderChunk(a){if(m&&d)try{let b=n.join(d,"5_res_provider.txt");m.appendFileSync(b,a,{mode:384})}catch(a){}},appendOpenAIChunk(a){if(m&&d)try{let b=n.join(d,"6_res_openai.txt");m.appendFileSync(b,a,{mode:384})}catch(a){}},logConvertedResponse(a){r(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(m&&d)try{let b=n.join(d,"7_res_client.txt");m.appendFileSync(b,a,{mode:384})}catch(a){}},logError(a,b=null){r(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}var v=c(27335),w=c(4630),x=c(89865),y=c(60290),z=c(2735),A=c(47370),B=c(47456),C=c(13247),D=c(6755),E=c(67677);let F=["temperature","top_p","top_k","max_tokens","max_completion_tokens","thinking","reasoning","enable_thinking","presence_penalty","frequency_penalty","seed","stop","tools","tool_choice","response_format","prediction","store","metadata","n","logprobs","top_logprobs","logit_bias","user","parallel_tool_calls"];function G(a,b){let c={messages:a.messages||[],model:a.model,stream:b};for(let b of F)void 0!==a[b]&&(c[b]=a[b]);return c}function H(a,b={}){return{provider:a.provider||"unknown",model:a.model||"unknown",connectionId:a.connectionId||void 0,timestamp:new Date().toISOString(),latency:a.latency||{ttft:0,total:0},tokens:a.tokens||{prompt_tokens:0,completion_tokens:0},request:a.request,providerRequest:a.providerRequest||null,providerResponse:a.providerResponse||null,response:a.response||{},pxpipe:a.pxpipe||void 0,status:a.status||"success",...b}}function I({usage:a,latency:b}){let c=a||{},d=c.prompt_tokens??c.input_tokens??0,e=c.completion_tokens??c.output_tokens??0,f=c.cache_read_input_tokens??c.cached_tokens??c.prompt_tokens_details?.cached_tokens??0,g=c.cache_creation_input_tokens??0,h=`IN ${d}`;if(f||g){let a=[];f&&a.push(`↻${f}`),g&&a.push(`+${g}`),h+=` (CACHE ${a.join(" ")})`}let i=b?.ttft?` \xb7 TTFT ${b.ttft}ms`:"";return`DONE ${b?.total??0}ms${i} \xb7 ${h} \xb7 OUT ${e}`}function J({provider:a,model:b,tokens:c,connectionId:d,apiKey:e,endpoint:f,requestedModel:g,status:h,label:i="USAGE",silent:j=!1}){if(!c||"object"!=typeof c)return;let k=c.input_tokens??c.prompt_tokens??0,l=c.output_tokens??c.completion_tokens??0;if(0===k&&0===l)return;if(!j){let b=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}),c=d?` | account=${d.slice(0,8)}...`:"";console.log(`${D.lm.green}[${b}] 📊 [${i}] ${a.toUpperCase()} | in=${k} | out=${l}${c}${D.lm.reset}`)}let m=(0,E._6)(c)||{prompt_tokens:c.prompt_tokens??c.input_tokens??0,completion_tokens:c.completion_tokens??c.output_tokens??0};(0,A.sZ)({provider:a||"unknown",model:b||"unknown",tokens:m,timestamp:new Date().toISOString(),connectionId:d||void 0,apiKey:e||void 0,endpoint:f||null,requestedModel:g||void 0,status:h||"ok"}).catch(()=>{})}var K=c(89568);function L(a,b){let c;if(!a.trim())return;let d=a.match(/^event:\s*(.+)$/m),e=a.match(/^data:\s*(.+)$/m);if(!e)return;let f=e[1].trim();if("[DONE]"!==f){try{c=JSON.parse(f)}catch{return}(0,K.rY)(b,{event:d?.[1]?.trim()||c.type,data:c})}}let M={input_tokens:0,output_tokens:0,total_tokens:0};async function N(a){let b=(0,K.lJ)();if(!a||"function"!=typeof a.getReader)return{...(0,K.Hd)(b,{error:O("invalid_stream","response stream is unavailable")}).response,usage:{...M}};let c=a.getReader(),d=new TextDecoder,e="",f=null;try{for(;;){let{done:a,value:f}=await c.read();if(a)break;let g=(e+=d.decode(f,{stream:!0})).split("\n\n");for(let a of(e=g.pop()||"",g))L(a,b)}e.trim()&&L(e,b)}catch(a){f=a}finally{c.releaseLock()}b.finalized||(0,K.Hd)(b,{error:O(f?"stream_read_error":"stream_disconnected",f?.message||"stream closed before a terminal response event")});let g=b.terminalResponse;return{...g,usage:g.usage||{...M}}}function O(a,b){return{type:"stream_error",code:a,message:b}}var P=c(18226),Q=c(98173),R=c(45136);let S=a=>w.xq[a]?.format===g.h.OPENAI_RESPONSES;function T(a){if(!a?.content||!Array.isArray(a.content))return"";let b=a.content.find(a=>"output_text"===a.type);if("string"==typeof b?.text)return b.text;let c=a.content.find(a=>"string"==typeof a.text);return"string"==typeof c?.text?c.text:""}function U(a,b=null){let c=a?.choices?.[0];if(!c)return a;let d=c.message||{},e=[],f=d.reasoning_content||d.reasoning;"string"==typeof f&&f.length>0&&e.push({type:P.Du.REASONING,summary:[{type:P.Du.SUMMARY_TEXT,text:f}]});let g="string"==typeof d.content?d.content:"";for(let a of(g.length>0&&e.push({type:P.Du.MESSAGE,role:P.z7.ASSISTANT,content:[{type:P.Du.OUTPUT_TEXT,text:g,annotations:[]}]}),d.tool_calls||[])){let c=a.function||{},d=b?.has(c.name);e.push({type:d?P.Du.CUSTOM_TOOL_CALL:P.Du.FUNCTION_CALL,id:`${d?"ctc":"fc"}_${a.id||""}`,call_id:a.id||"",name:c.name||"",...d?{input:function(a){let b="string"==typeof a?a:JSON.stringify(a||{});try{let a=JSON.parse(b);if(a&&"object"==typeof a&&"string"==typeof a.input)return a.input}catch{}return b}(c.arguments)}:{arguments:"string"==typeof c.arguments?c.arguments:JSON.stringify(c.arguments||{})}})}let h=a.usage||{};return{id:`resp_${a.id||""}`.replace(/^resp_chatcmpl-/,"resp_"),object:"response",created_at:a.created||Math.floor(Date.now()/1e3),model:a.model||"unknown",status:"completed",background:!1,error:null,output:e,usage:{input_tokens:h.prompt_tokens||h.input_tokens||0,output_tokens:h.completion_tokens||h.output_tokens||0,total_tokens:h.total_tokens||(h.prompt_tokens||0)+(h.completion_tokens||0)}}}function V(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function W(a,b){let c=[],d=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let e=a.slice(5).trim();if(e&&"[DONE]"!==e)try{let a=JSON.parse(e);a?.error?d=a.error:c.push(a)}catch{}}if(d)return{error:d};if(0===c.length)return null;let e=c[0],f=[],g=[],h=new Map,i="stop",j=null;for(let a of c){let b=a?.choices?.[0],c=b?.delta||{};if("string"==typeof c.content&&c.content.length>0&&f.push(c.content),"string"==typeof c.reasoning_content&&c.reasoning_content.length>0&&g.push(c.reasoning_content),b?.finish_reason&&(i=b.finish_reason),a?.usage&&"object"==typeof a.usage&&(j=a.usage),Array.isArray(c.tool_calls))for(let a of c.tool_calls){let b=a.index??0;h.has(b)||h.set(b,{id:a.id||"",type:"function",function:{name:"",arguments:""}});let c=h.get(b);a.id&&(c.id=a.id),a.function?.name&&(c.function.name+=a.function.name),a.function?.arguments&&(c.function.arguments+=a.function.arguments)}}let k={role:"assistant",content:f.join("")||(h.size>0?null:"")};g.length>0&&(k.reasoning_content=g.join("")),h.size>0&&(k.tool_calls=[...h.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>a));let l={id:e.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:e.created||Math.floor(Date.now()/1e3),model:e.model||b||"unknown",choices:[{index:0,message:k,finish_reason:i}]};return j&&(l.usage=j),l}async function X({providerResponse:a,sourceFormat:b,targetFormat:c,provider:d,model:e,body:f,stream:h,translatedBody:i,finalBody:j,requestStartTime:k,connectionId:l,apiKey:m,clientRawRequest:n,onRequestSuccess:o,customToolNames:p,trackDone:q,appendLog:r,reqTag:s,log:t}){let u=a.headers.get("content-type")||"";if(!(u.includes("text/event-stream")||""===u&&S(d)))return null;q();let v={provider:d,model:e,connectionId:l,request:G(f,h),providerRequest:j||i||null},w=[g.h.ANTIGRAVITY,g.h.GEMINI,g.h.GEMINI_CLI,g.h.VERTEX].includes(c);if(S(d)||c===g.h.OPENAI_RESPONSES||w)try{let c,f;if(w){let b=function(a,b){let c={},d=[],e=null;for(let b of String(a||"").split("\n")){let a=b.trim();if(!a.startsWith("data:"))continue;let f=a.slice(5).trim();if(f&&"[DONE]"!==f)try{let a=JSON.parse(f);a?.error?e=a.error:d.push(...(0,R.o)(a,c)||[])}catch{}}return e?{error:e}:0===d.length?null:W(d.map(a=>`data: ${JSON.stringify(a)}`).join("\n"),b)}(await a.text(),e);if(!b)return(0,x.A1)(y.gx.BAD_GATEWAY,"Invalid Gemini SSE response for non-streaming request");if(b.error)return(0,x.A1)(y.gx.BAD_GATEWAY,b.error.message||"Upstream SSE stream failed");c=U(b,p)}else c=await N(a.body);o&&await o();let h=c.usage||{};r({tokens:h,status:"200 OK"}),J({provider:d,model:e,tokens:h,connectionId:l,apiKey:m,endpoint:n?.endpoint,silent:!0}),t?.line&&t.line(s,"\uD83D\uDCCA",I({usage:h,latency:{total:Date.now()-k}}));let i=(h.input_tokens||0)+(h.cache_read_input_tokens||h.cached_tokens||0)+(h.cache_creation_input_tokens||0),{msgItem:j,textContent:q}=function(a){if(!Array.isArray(a))return{msgItem:null,textContent:null};let b=a.filter(a=>a?.type==="message");if(0===b.length)return{msgItem:null,textContent:null};for(let a=b.length-1;a>=0;a--){let c=T(b[a]);if(c.length>0)return{msgItem:b[a],textContent:c}}let c=b[b.length-1];return{msgItem:c,textContent:T(c)}}(c.output),u=Date.now()-k;if((0,A.ox)(H({...v,latency:{ttft:u,total:u},tokens:{prompt_tokens:i,completion_tokens:h.output_tokens||0},response:{content:q,thinking:null,finish_reason:c.status||"unknown"},status:"success"},{endpoint:n?.endpoint||null})).catch(()=>{}),b===g.h.OPENAI_RESPONSES)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})};let z=h.cache_read_input_tokens||h.cached_tokens||0,B=h.cache_creation_input_tokens||0,C=(h.input_tokens||0)+z+B,D=h.output_tokens||0,E=z>0||B>0?{prompt_tokens_details:{...z>0?{cached_tokens:z}:{},...B>0?{cache_creation_tokens:B}:{}}}:{},F=(c.output||[]).filter(a=>"function_call"===a.type).map((a,b)=>({id:a.call_id||`call_${a.name}_${Date.now()}_${b}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})),G=F.length>0;if(b===g.h.ANTIGRAVITY||b===g.h.GEMINI||b===g.h.GEMINI_CLI)f={response:{candidates:[{content:{role:"model",parts:[{text:q||""}]},finishReason:"STOP",index:0}],usageMetadata:{promptTokenCount:C,candidatesTokenCount:D,totalTokenCount:C+D},modelVersion:e,responseId:c.id||`resp_${Date.now()}`}};else if(b===g.h.CLAUDE){let a=[];for(let b of(c.output||[]).filter(a=>a?.type==="reasoning")){let c=(b.summary||[]).map(a=>a.text||"").join("");c&&a.push({type:"thinking",thinking:c})}for(let b of(q&&a.push({type:"text",text:q}),F))a.push({type:"tool_use",id:b.id,name:b.function.name,input:V(b.function.arguments)});0===a.length&&a.push({type:"text",text:""});let b="completed"===c.status||"done"===c.status;f={id:(c.id||`msg_${Date.now()}`).replace(/^resp_/,""),type:"message",role:"assistant",model:c.model||e,content:a,stop_reason:G?"tool_use":b?"end_turn":c.status||"end_turn",stop_sequence:null,usage:{input_tokens:C,output_tokens:D}}}else{let a={role:"assistant",content:q||(G?null:"")};G&&(a.tool_calls=F);let b="completed"===c.status||"done"===c.status,d=G?"tool_calls":b?"stop":c.status||"stop";f={id:c.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:c.created_at||Math.floor(Date.now()/1e3),model:c.model||e,choices:[{index:0,message:a,finish_reason:d}],usage:{prompt_tokens:C,completion_tokens:D,total_tokens:C+D,...E}}}return{success:!0,response:new Response(JSON.stringify(f),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Responses API SSE→JSON failed:",a),(0,x.A1)(y.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}try{let c,f=await a.text(),h=W(f,e);if(!h)return(0,x.A1)(y.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");if(h.error)return(0,x.A1)(y.gx.BAD_GATEWAY,h.error.message||"Upstream SSE stream failed");o&&await o();let i=h.usage||{};r({tokens:i,status:"200 OK"}),J({provider:d,model:e,tokens:i,connectionId:l,apiKey:m,endpoint:n?.endpoint,silent:!0}),t?.line&&t.line(s,"\uD83D\uDCCA",I({usage:i,latency:{total:Date.now()-k}}));let j=Date.now()-k;if((0,A.ox)(H({...v,latency:{ttft:j,total:j},tokens:i,response:{content:h.choices?.[0]?.message?.content||null,thinking:h.choices?.[0]?.message?.reasoning_content||null,finish_reason:h.choices?.[0]?.finish_reason||"unknown"},status:"success"},{endpoint:n?.endpoint||null})).catch(()=>{}),i&&Object.keys(i).length>0&&(h.usage=i),h?.choices)for(let a of h.choices)a?.message?.reasoning_content&&a.message.content&&delete a.message.reasoning_content;return c=b===g.h.OPENAI_RESPONSES?U(h,p):b===g.h.CLAUDE?function(a){if(!a?.choices?.[0])return a;let b=a.choices[0],c=b.message||{},d=[],e=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";for(let a of(e&&d.push({type:"thinking",thinking:e}),"string"==typeof c.content&&c.content.length>0&&d.push({type:"text",text:c.content}),c.tool_calls||[])){let b=a.function||{};d.push({type:"tool_use",id:a.id||`toolu_${Date.now()}_${d.length}`,name:b.name||a.name||"",input:V(b.arguments||a.arguments)})}0===d.length&&d.push({type:"text",text:""});let f=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:d,stop_reason:(0,Q.Q)(b.finish_reason,g.h.CLAUDE),stop_sequence:null,usage:{input_tokens:f.prompt_tokens||f.input_tokens||0,output_tokens:f.completion_tokens||f.output_tokens||0}}}(h):h,{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(a){return console.error("[ChatCore] Chat Completions SSE→JSON failed:",a),(0,x.A1)(y.gx.BAD_GATEWAY,"Failed to convert streaming response to JSON")}}var Y=c(68057),Z=c(66451),$=c(87252),_=c(10089);function aa(a){if(!a?.choices?.[0])return a;let b=a.choices[0],c=b.message||{},d=[],e=c.reasoning_content||c.provider_specific_fields?.reasoning_content||"";for(let a of(e&&d.push({type:"thinking",thinking:e}),"string"==typeof c.content&&c.content.length>0&&d.push({type:"text",text:c.content}),c.tool_calls||[])){let b=a.function||{};d.push({type:"tool_use",id:a.id||`toolu_${Date.now()}_${d.length}`,name:b.name||a.name||"",input:function(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}(b.arguments||a.arguments)})}0===d.length&&d.push({type:"text",text:""});let f=a.usage||{};return{id:String(a.id||`msg_${Date.now()}`).replace(/^chatcmpl-/,""),type:"message",role:"assistant",model:a.model||"unknown",content:d,stop_reason:(0,Q.Q)(b.finish_reason,g.h.CLAUDE),stop_sequence:null,usage:{input_tokens:f.prompt_tokens||f.input_tokens||0,output_tokens:f.completion_tokens||f.output_tokens||0}}}function ab(a,b=null){let c=a?.choices?.[0];if(!c)return a;let d=c.message||{},e=[],f=d.reasoning_content||d.reasoning;"string"==typeof f&&f.length>0&&e.push({type:P.Du.REASONING,summary:[{type:P.Du.SUMMARY_TEXT,text:f}]});let g="string"==typeof d.content?d.content:"";for(let a of(g.length>0&&e.push({type:P.Du.MESSAGE,role:P.z7.ASSISTANT,content:[{type:P.Du.OUTPUT_TEXT,text:g,annotations:[]}]}),d.tool_calls||[])){let c=a.function||{},d=b?.has(c.name);e.push({type:d?P.Du.CUSTOM_TOOL_CALL:P.Du.FUNCTION_CALL,id:`${d?"ctc":"fc"}_${a.id||""}`,call_id:a.id||"",name:c.name||"",...d?{input:function(a){let b="string"==typeof a?a:JSON.stringify(a||{});try{let a=JSON.parse(b);if(a&&"object"==typeof a&&"string"==typeof a.input)return a.input}catch{}return b}(c.arguments)}:{arguments:"string"==typeof c.arguments?c.arguments:JSON.stringify(c.arguments||{})}})}let h=a?.usage||{};return{id:String(a?.id||`resp_${Date.now()}`).replace(/^chatcmpl-/,"resp_"),object:"response",created_at:a?.created||Math.floor(Date.now()/1e3),model:a?.model||"unknown",status:"completed",output:e,usage:{input_tokens:h.prompt_tokens||h.input_tokens||0,output_tokens:h.completion_tokens||h.output_tokens||0,total_tokens:h.total_tokens||(h.prompt_tokens||h.input_tokens||0)+(h.completion_tokens||h.output_tokens||0)}}}async function ac({body:a,modelInfo:b,credentials:c,providerResponse:d,sourceFormat:f,targetFormat:h,reqLogger:i,toolNameMap:j,trackDone:k,appendLog:l,reqTag:m="",log:n=null,customToolNames:o=null}){let{provider:p,model:q}=b,r=Date.now();try{let b=await d.json(),s=f===g.h.CLAUDE,t=f===g.h.OPENAI_RESPONSES,u=function(a,b,c,d=null){if(b===c){if(b===g.h.OPENAI)for(let b of a?.choices||[]){let a=b?.message;a?.reasoning&&"string"==typeof a.reasoning&&!a.reasoning_content&&(a.reasoning_content=a.reasoning,delete a.reasoning)}return a}if(b===g.h.OPENAI_RESPONSES&&c!==g.h.OPENAI_RESPONSES){let b=function(a){let b=Array.isArray(a?.output)?a.output:[],c="",d="",e=[];for(let a of b)if(a?.type===P.Du.MESSAGE)for(let b of a.content||[])b?.type===P.Du.OUTPUT_TEXT&&"string"==typeof b.text&&(c+=b.text);else if(a?.type===P.Du.REASONING)for(let b of a.summary||[])b?.type===P.Du.SUMMARY_TEXT&&"string"==typeof b.text&&(d+=b.text);else if(a?.type===P.Du.FUNCTION_CALL||a?.type===P.Du.CUSTOM_TOOL_CALL){let b=a.type===P.Du.CUSTOM_TOOL_CALL;e.push({id:a.call_id||a.id||`call_${e.length}`,type:"function",function:{name:a.name||"",arguments:b?JSON.stringify({input:a.input||""}):"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})}let f={role:"assistant"};c&&(f.content=c),d&&(f.reasoning_content=d),e.length>0&&(f.tool_calls=e),f.content||f.tool_calls||(f.content="");let g=a?.usage||{};return{id:String(a?.id||`chatcmpl-${Date.now()}`).replace(/^resp_/,"chatcmpl-"),object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||"unknown",choices:[{index:0,message:f,finish_reason:e.length>0?"tool_calls":"stop"}],usage:{prompt_tokens:g.prompt_tokens||g.input_tokens||0,completion_tokens:g.completion_tokens||g.output_tokens||0,total_tokens:g.total_tokens||(g.prompt_tokens||g.input_tokens||0)+(g.completion_tokens||g.output_tokens||0)}}}(a);if(c===g.h.OPENAI)return b;if(c===g.h.CLAUDE)return aa(b)}if(b===g.h.OPENAI&&c===g.h.OPENAI_RESPONSES)return ab(a,d);if(b===g.h.OPENAI&&c===g.h.CLAUDE)return aa(a);if(b===g.h.OPENAI)return a;if(b===g.h.GEMINI||b===g.h.ANTIGRAVITY||b===g.h.GEMINI_CLI||b===g.h.VERTEX){let b=a.response||a;if(!b?.candidates?.[0])return a;let e=b.candidates[0],f=e.content,h=b.usageMetadata||a.usageMetadata,i="",j="",k=[];if(f?.parts)for(let a of f.parts){!0===a.thought&&a.text?j+=a.text:void 0!==a.text&&(i+=a.text),a.functionCall&&k.push({id:`call_${a.functionCall.name}_${Date.now()}_${k.length}`,type:"function",function:{name:a.functionCall.name,arguments:JSON.stringify(a.functionCall.args||{})}});let b=a.inlineData||a.inline_data;if(b?.data){let a=b.mimeType||b.mime_type||"image/png";i+=`
|
|
10
10
|

|
|
11
|
-
`}}let l={role:"assistant"};i&&(l.content=i),j&&(l.reasoning_content=j),k.length>0&&(l.tool_calls=k),l.content||l.tool_calls||(l.content="");let m=(e.finishReason||"stop").toLowerCase();"stop"===m&&k.length>0&&(m="tool_calls");let n={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:l,finish_reason:m}]};return h&&(n.usage={prompt_tokens:(h.promptTokenCount||0)+(h.thoughtsTokenCount||0),completion_tokens:h.candidatesTokenCount||0,total_tokens:h.totalTokenCount||0},h.thoughtsTokenCount>0&&(n.usage.completion_tokens_details={reasoning_tokens:h.thoughtsTokenCount})),c===g.h.OPENAI_RESPONSES?ab(n,d):n}if(b===g.h.CLAUDE){if(a.choices||a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];if(Array.isArray(a.content))for(let e of a.content)"text"===e.type?b+=e.text||"":"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.usage||{};return{id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:(0,Q.Q)(a.stop_reason,g.h.OPENAI)||"stop"}],usage:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0,total_tokens:(f.input_tokens||0)+(f.output_tokens||0)}}}return b===g.h.OLLAMA?(0,Y._)(a):a}(
|
|
11
|
+
`}}let l={role:"assistant"};i&&(l.content=i),j&&(l.reasoning_content=j),k.length>0&&(l.tool_calls=k),l.content||l.tool_calls||(l.content="");let m=(e.finishReason||"stop").toLowerCase();"stop"===m&&k.length>0&&(m="tool_calls");let n={id:`chatcmpl-${b.responseId||Date.now()}`,object:"chat.completion",created:Math.floor(new Date(b.createTime||Date.now()).getTime()/1e3),model:b.modelVersion||"gemini",choices:[{index:0,message:l,finish_reason:m}]};return h&&(n.usage={prompt_tokens:(h.promptTokenCount||0)+(h.thoughtsTokenCount||0),completion_tokens:h.candidatesTokenCount||0,total_tokens:h.totalTokenCount||0},h.thoughtsTokenCount>0&&(n.usage.completion_tokens_details={reasoning_tokens:h.thoughtsTokenCount})),c===g.h.OPENAI_RESPONSES?ab(n,d):n}if(b===g.h.CLAUDE){if(a.choices||a.content&&!Array.isArray(a.content))return a;let b="",c="",d=[];if(Array.isArray(a.content))for(let e of a.content)"text"===e.type?b+=e.text||"":"thinking"===e.type?c+=e.thinking||"":"tool_use"===e.type&&d.push({id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.input||{})}});let e={role:"assistant"};b&&(e.content=b),c&&(e.reasoning_content=c),d.length>0&&(e.tool_calls=d),e.content||e.tool_calls||(e.content="");let f=a.usage||{};return{id:`chatcmpl-${a.id||Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a.model||"claude",choices:[{index:0,message:e,finish_reason:(0,Q.Q)(a.stop_reason,g.h.OPENAI)||"stop"}],usage:{prompt_tokens:f.input_tokens||0,completion_tokens:f.output_tokens||0,total_tokens:(f.input_tokens||0)+(f.output_tokens||0)}}}return b===g.h.OLLAMA?(0,Y._)(a):a}(b,h,f,o);if((0,e.nZ)(h,f)&&i?.appendConvertedChunk?.(JSON.stringify(u)),s&&j&&(u=(0,_.kR)(u,j)),!function(a,b,c){if(b)return(Array.isArray(a?.content)?a.content:[]).some(a=>a?.type==="text"&&"string"==typeof a.text&&a.text.trim().length>0||a?.type==="tool_use"||a?.type==="thinking");if(c)return Array.isArray(a?.output)&&a.output.length>0;let d=a?.choices?.[0]?.message,e=Array.isArray(d?.tool_calls)&&d.tool_calls.length>0,f="string"==typeof d?.content?d.content.trim().length>0:Array.isArray(d?.content)&&d.content.length>0,g="string"==typeof d?.reasoning_content&&d.reasoning_content.trim().length>0;return e||f||g}(u,s,t))return n?.warn&&n.warn("CHATCORE",`${p}/${q} returned HTTP 200 with empty content — locking for ${$.Dp/1e3}s`),(0,x.A1)(y.gx.SERVICE_UNAVAILABLE,`[${p}/${q}] Provider returned empty response content (cooldown: ${$.Dp/1e3}s)`);k();let v=function(a){if(!a||"object"!=typeof a)return null;if(a.usage?.input_tokens!==void 0)return{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens,cost_usd:a.usage.cost_usd,cost_in_usd:a.usage.cost_in_usd,cost_in_usd_ticks:a.usage.cost_in_usd_ticks};if(a.usage?.prompt_tokens!==void 0)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,cost_usd:a.usage.cost_usd,cost_in_usd:a.usage.cost_in_usd,cost_in_usd_ticks:a.usage.cost_in_usd_ticks};let b=a.usageMetadata||a.response?.usageMetadata;return b?{prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,cached_tokens:b.cachedContentTokenCount||0,reasoning_tokens:b.thoughtsTokenCount||0}:null}(u);l({tokens:v,status:"200 OK"}),J({provider:p,model:q,tokens:v,connectionId:c?.connectionId,apiKey:c?.apiKey,endpoint:c?.endpoint,silent:!0}),n?.line&&n.line(m,"\uD83D\uDCCA",I({usage:v,latency:{total:Date.now()-r}}));let w=s?Array.isArray(u.content)?u.content.map(a=>a.text||("tool_use"===a.type?`[tool: ${a.name}]`:"")).filter(Boolean).join(" "):"":u.choices?.[0]?.message?.content||"",z=s?Array.isArray(u.content)&&u.content.find(a=>"thinking"===a.type)?.thinking||null:u.choices?.[0]?.message?.reasoning_content||null,B=Date.now()-r;return(0,A.ox)(H({provider:p,model:q,connectionId:c?.connectionId,latency:{ttft:B,total:B},tokens:v,request:G(a,!1),response:{content:w,thinking:z,finish_reason:u.choices?.[0]?.finish_reason||u.stop_reason||"stop"},status:"success"},{endpoint:c?.endpoint||null})).catch(()=>{}),u.model=(0,Z.ff)({requestedModel:a.model,provider:p,model:q}),new Response(JSON.stringify(u),{status:y.gx.OK,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}catch(a){return n?.error&&n.error("NON_STREAMING",`Error parsing response: ${a.message}`),(0,x.A1)(y.gx.BAD_GATEWAY,`Invalid upstream response format: ${a.message}`)}}var ad=c(48330),ae=c(4905);let af={[g.h.OPENAI_RESPONSES]:g.h.OPENAI_RESPONSES,[g.h.CLAUDE]:g.h.CLAUDE,[g.h.ANTIGRAVITY]:g.h.ANTIGRAVITY,[g.h.GEMINI]:g.h.ANTIGRAVITY,[g.h.GEMINI_CLI]:g.h.ANTIGRAVITY};async function ag({providerResponse:a,provider:b,model:c,sourceFormat:d,targetFormat:f,userAgent:h,body:j,stream:k,translatedBody:l,finalBody:m,requestStartTime:n,connectionId:o,apiKey:p,clientRawRequest:q,onRequestSuccess:r,reqLogger:s,toolNameMap:t,customToolNames:u,streamController:v,onStreamComplete:x,streamDetailId:z,pxpipe:B,reqTag:C,log:E}){r&&Promise.resolve().then(r).catch(a=>{console.error("[ChatCore] onRequestSuccess failed:",a?.message||a)});let F=(a.headers.get("content-type")||"").toLowerCase();if(F&&!F.includes("text/event-stream")&&!F.includes("application/json")){let d=await a.text().catch(()=>""),e=d.match(/<title>([^<]+)<\/title>/i),f=(e?.[1]||"").replace(/<[^>]*>/g,"").replace(/[\r\n]+/g," ").trim().slice(0,160)||(d.length<200?d.replace(/<[^>]*>/g,"").trim().slice(0,160):`Upstream returned non-SSE response (${F})`),g=a.status||502;return E?.errorLine?E.errorLine(C,"✗",`BLOCKED ${g} \xb7 ${b}/${c} \xb7 non-SSE (${F})
|
|
12
12
|
${f}`):console.warn(`[STREAM] ${b} | ${c} | blocked pipe: ${f} [${g}]`),v?.handleError?.(Error(`upstream non-SSE: ${g}`)),{success:!1,response:new Response(JSON.stringify({error:{message:`[${g}]: ${f}`}}),{status:g,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}let I=function({provider:a,sourceFormat:b,targetFormat:c,userAgent:d,reqLogger:f,toolNameMap:h,customToolNames:i,model:j,connectionId:k,body:l,onStreamComplete:m,apiKey:n}){let o=d?.toLowerCase().includes("droid")||d?.toLowerCase().includes("codex-cli");if(w.xq[a]?.format===g.h.OPENAI_RESPONSES&&c===g.h.OPENAI_RESPONSES&&!o){let c=af[b]||g.h.OPENAI;return(0,D.i5)(g.h.OPENAI_RESPONSES,c,a,f,h,j,k,l,m,n,i)}return(0,e.nZ)(c,b)?(0,D.i5)(c,b,a,f,h,j,k,l,m,n,i):(0,D.l2)(a,f,j,k,l,m,n)}({provider:b,sourceFormat:d,targetFormat:f,userAgent:h,reqLogger:s,toolNameMap:t,customToolNames:u,model:c,connectionId:o,body:j,onStreamComplete:x,apiKey:p}),J=d===g.h.OPENAI_RESPONSES&&f===g.h.OPENAI_RESPONSES?ad.Hr:null,K=w.xq[b]?.stallTimeoutMs||y.xM,L=(0,i.Jb)(a,I,v,J,K);return(0,A.ox)(H({provider:b,model:c,connectionId:o,latency:{ttft:0,total:Date.now()-n},tokens:{prompt_tokens:0,completion_tokens:0},request:G(j,k),providerRequest:m||l||null,providerResponse:"[Streaming - raw response not captured]",response:{content:"[Streaming in progress...]",thinking:null,type:"streaming"},pxpipe:B,status:"success"},{id:z})).catch(a=>{console.error("[RequestDetail] Failed to save streaming request:",a.message)}),{success:!0,response:new Response(L,{headers:ae.RK})}}let ah={claude:["claude","anthropic"],"gemini-cli":["gemini-cli"],antigravity:["antigravity"],codex:["codex"]};function ai(a={},b={}){let c=(a["user-agent"]||"").toLowerCase(),d=(a["x-app"]||"").toLowerCase(),e=(a["openai-intent"]||"").toLowerCase(),f=(a["x-initiator"]||a["X-Initiator"]||"").toLowerCase();return"antigravity"===b.userAgent?"antigravity":c.includes("githubcopilotchat")||"conversation-panel"===e||"user"===f?"github-copilot":c.includes("claude-cli")||c.includes("claude-code")||"cli"===d?"claude":c.includes("gemini-cli")?"gemini-cli":c.includes("codex-cli")||c.includes("codex_cli_rs")||c.includes("codex_exec")?"codex":c.includes("deepseek-tui")?"deepseek-tui":null}let aj=[{triggers:["mcp__exa__web_search_exa","mcp__exa__web_fetch_exa"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:["mcp__tavily__tavily_search","mcp__tavily__tavily_extract"],strip:["WebSearch","WebFetch","mcp__workspace__web_fetch"]},{triggers:[/^mcp__browsermcp__/],strip:[/^mcp__Claude_in_Chrome__/]}];function ak(a){return a?.name||a?.function?.name||""}function al(a,b){return"string"==typeof b?a===b:b instanceof RegExp&&b.test(a)}function am(a,b){return b.endsWith("*")?a.startsWith(b.slice(0,-1)):b.includes("__")?a===b||a.startsWith(b+"__"):a.startsWith(`mcp__${b}__`)}var an=c(98076),ao=c(87694),ap=c(4739);function aq(a,b,c){try{if(!a||!c||"object"!=typeof a)return;if(function(a){if(!a||"object"!=typeof a||"string"!=typeof a.systemPrompt)return!1;let b=a.conversationState;return!!b&&"object"==typeof b&&(Array.isArray(b.history)||!!(b.currentMessage&&"object"==typeof b.currentMessage))}(a)||b===g.h.KIRO)return void function(a,b){try{let c="string"==typeof a.systemPrompt?a.systemPrompt:"",d=a.conversationState,e=d&&Array.isArray(d.history)?d.history.find(a=>a&&a.userInputMessage)?.userInputMessage??null:null;if(!e&&d?.currentMessage?.userInputMessage&&(e=d.currentMessage.userInputMessage),e&&"string"==typeof e.content&&c&&!ar(c,b)){let a=e.content;(a===c||a.startsWith(c)&&!a.startsWith(`${c}
|
|
13
13
|
|
|
14
14
|
`))&&(c="")}if(c&&ar(c,b))return;let f=c?`${c}
|
|
@@ -69,6 +69,6 @@ ${e.length} files in ${g.length} dirs:
|
|
|
69
69
|
${b}${c.stack?`
|
|
70
70
|
${c.stack}`:""}`),(0,x.A1)(y.gx.BAD_GATEWAY,b)}if(!aX.noAuth&&(aa.status===y.gx.UNAUTHORIZED||aa.status===y.gx.FORBIDDEN))try{let a=await (0,j.qZ)(async()=>{let a=await aX.refreshCredentials(c,k);return a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,k);if(a?.accessToken||a?.copilotToken){if(k?.line&&k.line(as,"\uD83D\uDD11",`TOKEN REFRESHED \xb7 ${af}/${ao}`),Object.assign(c,a),l)try{await l(a)}catch(a){k?.warn?.("TOKEN",`onCredentialsRefreshed failed: ${a.message}`)}try{let a=await aX.execute({model:ao,body:$,stream:aG,credentials:c,signal:aZ.signal,log:k,proxyOptions:a$});a.response.ok&&(aa=a.response,ab=a.url,a_=a.responseFormat||az)}catch{k?.warn?.("TOKEN",`${af.toUpperCase()} | retry after refresh failed`)}}else k?.warn?.("TOKEN",`${af.toUpperCase()} | refresh failed`)}catch(a){k?.warn?.("TOKEN",`${af.toUpperCase()} | refresh threw: ${a.message}`)}if(!aa.ok){(0,A.uw)(ao,af,q,!1,!0);let{statusCode:b,message:c,resetsAtMs:d}=await (0,x.zL)(aa,aX);(0,A.E5)({model:ao,provider:af,connectionId:q,status:`FAILED ${b}`}).catch(()=>{}),(0,A.ox)(H({provider:af,model:ao,connectionId:q,latency:{ttft:0,total:Date.now()-ap},tokens:{prompt_tokens:0,completion_tokens:0},request:G(a,aG),providerRequest:ae||$||null,response:{error:c,status:b,thinking:null},pxpipe:aW,status:"error"})).catch(()=>{});let e=(0,x.lR)(Error(c),af,ao,b);if(k?.errorLine){let a=ab?`
|
|
71
71
|
URL: ${ab}`:"";k.errorLine(as,"✗",`ERROR ${b} \xb7 ${af}/${ao} \xb7 ${Date.now()-ap}ms${a}
|
|
72
|
-
${e}`)}return aL.logError(Error(c),ae||$),(0,x.A1)(b,e,d)}let a1={provider:af,model:ao,body:a,stream:aG,translatedBody:$,finalBody:ae,requestStartTime:ap,connectionId:q,apiKey:s,clientRawRequest:p,onRequestSuccess:m,onEmptyStream:n,pxpipe:aW,reqTag:as,log:k},a2=a=>(0,A.E5)({model:ao,provider:af,connectionId:q,...a}).catch(()=>{}),a3=()=>(0,A.uw)(ao,af,q,!1);if(!aE&&aF){let a=await X({...a1,providerResponse:aa,sourceFormat:at,trackDone:a3,appendLog:a2});if(a)return aZ.handleComplete(),a}if(!aG){let a=await ac({...a1,providerResponse:aa,sourceFormat:at,targetFormat:a_,reqLogger:aL,toolNameMap:_,trackDone:a3,appendLog:a2});return aZ.handleComplete(),a}let{onStreamComplete:a4,onStreamAborted:a5,streamDetailId:a6}=function({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:h,translatedBody:i,clientRawRequest:j,pxpipe:k,reqTag:l,log:m}){let n=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(o,p,q,{aborted:r=!1}={})=>{let s={ttft:q?q-e:Date.now()-e,total:Date.now()-e},t=o?.content||(r?"[Aborted streaming response]":"[Empty streaming response]"),u=o?.thinking||null;(0,A.ox)(H({provider:a,model:b,connectionId:c,latency:s,tokens:p||{prompt_tokens:0,completion_tokens:0},request:G(f,g),providerRequest:h||i||null,providerResponse:t,response:{content:t,thinking:u,type:"streaming"},pxpipe:k,status:r?"aborted":"success"},{id:n})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),J({provider:a,model:b,tokens:p,connectionId:c,apiKey:d,endpoint:j?.endpoint,label:r?"STREAM USAGE (aborted)":"STREAM USAGE",silent:!0}),m?.line&&m.line(l,"\uD83D\uDCCA",I({usage:p,latency:s}))},streamDetailId:n}}({...a1});return ag({...a1,providerResponse:aa,sourceFormat:at,targetFormat:a_,userAgent:r,reqLogger:aL,toolNameMap:_,streamController:aZ,onStreamComplete:a4,onStreamAborted:a5,streamDetailId:a6})}},30369:(a,b,c)=>{c.d(b,{SB:()=>d.SB}),c(89843),c(4630),c(28730),c(60290),c(27335),c(19956),c(2547),c(17717),c(66451),c(49263),c(85640),c(18129),c(21479),c(15575);var d=c(
|
|
72
|
+
${e}`)}return aL.logError(Error(c),ae||$),(0,x.A1)(b,e,d)}let a1={provider:af,model:ao,body:a,stream:aG,translatedBody:$,finalBody:ae,requestStartTime:ap,connectionId:q,apiKey:s,clientRawRequest:p,onRequestSuccess:m,onEmptyStream:n,pxpipe:aW,reqTag:as,log:k},a2=a=>(0,A.E5)({model:ao,provider:af,connectionId:q,...a}).catch(()=>{}),a3=()=>(0,A.uw)(ao,af,q,!1);if(!aE&&aF){let a=await X({...a1,providerResponse:aa,sourceFormat:at,trackDone:a3,appendLog:a2});if(a)return aZ.handleComplete(),a}if(!aG){let a=await ac({...a1,providerResponse:aa,sourceFormat:at,targetFormat:a_,reqLogger:aL,toolNameMap:_,trackDone:a3,appendLog:a2});return aZ.handleComplete(),a}let{onStreamComplete:a4,onStreamAborted:a5,streamDetailId:a6}=function({provider:a,model:b,connectionId:c,apiKey:d,requestStartTime:e,body:f,stream:g,finalBody:h,translatedBody:i,clientRawRequest:j,pxpipe:k,reqTag:l,log:m}){let n=`${Date.now()}-${Math.random().toString(36).slice(2,11)}`;return{onStreamComplete:(o,p,q,{aborted:r=!1}={})=>{let s={ttft:q?q-e:Date.now()-e,total:Date.now()-e},t=o?.content||(r?"[Aborted streaming response]":"[Empty streaming response]"),u=o?.thinking||null;(0,A.ox)(H({provider:a,model:b,connectionId:c,latency:s,tokens:p||{prompt_tokens:0,completion_tokens:0},request:G(f,g),providerRequest:h||i||null,providerResponse:t,response:{content:t,thinking:u,type:"streaming"},pxpipe:k,status:r?"aborted":"success"},{id:n})).catch(a=>{console.error("[RequestDetail] Failed to update streaming content:",a.message)}),J({provider:a,model:b,tokens:p,connectionId:c,apiKey:d,endpoint:j?.endpoint,label:r?"STREAM USAGE (aborted)":"STREAM USAGE",silent:!0}),m?.line&&m.line(l,"\uD83D\uDCCA",I({usage:p,latency:s}))},streamDetailId:n}}({...a1});return ag({...a1,providerResponse:aa,sourceFormat:at,targetFormat:a_,userAgent:r,reqLogger:aL,toolNameMap:_,streamController:aZ,onStreamComplete:a4,onStreamAborted:a5,streamDetailId:a6})}},30369:(a,b,c)=>{c.d(b,{SB:()=>d.SB}),c(89843),c(4630),c(28730),c(60290),c(27335),c(19956),c(2547),c(17717),c(66451),c(49263),c(85640),c(18129),c(21479),c(15575);var d=c(47456);c(89865),c(6755)},48330:(a,b,c)=>{c.d(b,{Hr:()=>k,nu:()=>i,u9:()=>l,yx:()=>h});var d=c(19956),e=c(89568),f=c(45894);let g=new Set(["response.completed","response.done","response.incomplete","response.failed","response.error","error"]);function h(a,b){return a||(b&&"string"==typeof b.type?b.type:null)}function i(a,b){let c=h(a,b);if(g.has(c))return!0;let d=b?.response?.status;return"completed"===d||"failed"===d}let j=new TextEncoder;function k(a=null){let b=l(a);return b?(a&&(a.doneSent=!0),j.encode(`${b}data: [DONE]
|
|
73
73
|
|
|
74
74
|
`)):a?.finalized&&!a.doneSent?(a.doneSent=!0,j.encode("data: [DONE]\n\n")):null}function l(a=null){let b=a||(0,e.lJ)(),c=(0,e.Hd)(b,{error:{type:"stream_error",code:"stream_disconnected",message:"stream closed before response.completed"}});return c.accepted?(0,f.v8)({event:"response.failed",data:{type:"response.failed",response:c.response}},d.h.OPENAI_RESPONSES):""}},66451:(a,b,c)=>{c.d(b,{PN:()=>k,Xh:()=>l,ff:()=>i,g2:()=>j,js:()=>n,sc:()=>m});var d=c(45502),e=c(27335);let f={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(f[a.id]=a.id,a.alias&&(f[a.alias]=a.id),a.aliases||[]))f[b]=a.id;let g={"grok-build":"gcli/grok-build"},h=new Map;for(let a of d.A)a.noAuth&&a.modelsFetcher&&a.alias&&h.set(a.id,a.alias);function i({requestedModel:a,provider:b,model:c}){if(!a||a.includes("/"))return a;let d=h.get(b);return d?`${d}/${c}`:a}function j(a){return f[a]||a}function k(a){if(!a)return null;let b=[];for(let[c,d]of Object.entries(e.PROVIDER_MODELS))Array.isArray(d)&&d.some(b=>b&&b.id===a)&&b.push(c);if(0===b.length)return null;if(1===b.length)return j(b[0]);let c=b.find(b=>a.startsWith(b));return c?j(c):null}function l(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:j(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function m(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:j(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:j(c.provider),model:c.model}:null}async function n(a,b){let c=l(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=m(c.model,d)||m(c.model,g);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return"default"===b||"auto"===b?"cursor":o.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let o=[[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^grok-/,"xai"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},89568:(a,b,c)=>{c.d(b,{Hd:()=>t,lJ:()=>s,rY:()=>u});let d={"response.completed":"completed","response.done":"completed","response.incomplete":"incomplete","response.failed":"failed","response.error":"failed",error:"failed"},e=new Set(["function_call","custom_tool_call"]);function f(a){if(void 0!==a)return JSON.parse(JSON.stringify(a))}function g(a){return Number.isInteger(a)&&a>=0?a:null}function h(a,b){return"string"!=typeof b||""===b?a||"":!a||b.startsWith(a)?b:a.startsWith(b)?a:b}function i(a,b,c){if(!b||"object"!=typeof b)return a;let d={...a||{},...f(b)};return c&&!d.type&&(d.type=c),"string"==typeof b.text&&(d.text=h(a?.text,b.text)),d}function j(a,b,c,d,e){a[d].push(...b[d]),a[d].sort((a,b)=>a.order-b.order),a[c]=h(a[c],b[c]);let f=a[d].map(a=>a.value).join("");a[e]=h(f,a[c])}function k(a,b,c,d,e,f){let g=new Set([...a[c].keys(),...b[c].keys(),...a[d].keys(),...b[d].keys(),...a[e].keys(),...b[e].keys()]);for(let[c,e]of b[d]){let b=a[d].get(c)||[];b.push(...e),a[d].set(c,b)}for(let[c,d]of b[e])a[e].set(c,i(a[e].get(c),d,f));for(let b of g)!function(a,b,c,d,e,f){let g=a[c].get(e)||[];g.sort((a,b)=>a.order-b.order);let j=g.map(a=>a.value).join(""),k=a[d].get(e),l=i(a[b].get(e),k,f)||{type:f};l.text=h(j,k?.text),a[b].set(e,l)}(a,c,d,e,b,f)}function l(a,b,c=null){let d,e=(d=b?.item,{outputIndex:g(b?.output_index),itemId:b?.item_id||d?.id||null,callId:b?.call_id||d?.call_id||null}),f=[],h=[],i=a=>{a&&!f.includes(a)&&f.push(a)},m=a=>{a&&!h.includes(a)&&h.push(a)};e.itemId&&(m(a.itemsById.get(e.itemId)),m(a.itemsByCallId.get(e.itemId))),e.callId&&(m(a.itemsByCallId.get(e.callId)),m(a.itemsById.get(e.callId)));let n=null!==e.outputIndex?a.itemsByOutputIndex.get(e.outputIndex):null;for(let b of(n&&(e.itemId&&n.id&&e.itemId!==n.id||e.callId&&n.callId&&e.callId!==n.callId)?a.outputOrderConflict=!0:i(n),h))i(b);let o=null!==e.outputIndex||e.itemId||e.callId;0===f.length&&c&&!o&&i(a.implicitItemsByType.get(c));let p=f[0]||function(a,b=null){let c=a.nextItemOrder++,d={order:c,aliasOrders:new Set([c]),outputIndex:null,id:null,callId:null,type:b,name:"",role:null,status:null,arguments:"",input:"",argumentFragments:[],inputFragments:[],argumentsSnapshot:"",inputSnapshot:"",content:new Map,summary:new Map,contentFragments:new Map,summaryFragments:new Map,contentSnapshots:new Map,summarySnapshots:new Map,raw:{}};return a.items.push(d),d}(a,c);for(let b=1;b<f.length;b++)p=function(a,b,c){if(!c||c===b)return b;for(let a of(b.outputIndex??=c.outputIndex,b.id||=c.id,b.callId||=c.callId,b.type||=c.type,b.name||=c.name,b.role||=c.role,b.status||=c.status,c.aliasOrders))b.aliasOrders.add(a);j(b,c,"argumentsSnapshot","argumentFragments","arguments"),j(b,c,"inputSnapshot","inputFragments","input"),b.raw={...c.raw,...b.raw},k(b,c,"content","contentFragments","contentSnapshots","output_text"),k(b,c,"summary","summaryFragments","summarySnapshots","summary_text");for(let[d,e]of a.itemsByOutputIndex)e===c&&a.itemsByOutputIndex.set(d,b);for(let[d,e]of a.itemsById)e===c&&a.itemsById.set(d,b);for(let[d,e]of a.itemsByCallId)e===c&&a.itemsByCallId.set(d,b);for(let[d,e]of a.implicitItemsByType)e===c&&a.implicitItemsByType.set(d,b);return a.items=a.items.filter(a=>a!==c),b}(a,p,f[b]);return null!==e.outputIndex&&(p.outputIndex??=e.outputIndex,a.itemsByOutputIndex.set(e.outputIndex,p)),e.itemId&&(p.id||=e.itemId,a.itemsById.set(e.itemId,p)),e.callId&&(p.callId||=e.callId,a.itemsByCallId.set(e.callId,p)),p.type||=c,c&&a.implicitItemsByType.set(c,p),p}function m(a,b,c=null,d=null,e=!1){if(!b||"object"!=typeof b)return null;let i=d?.item_id||b.id,j=d?.call_id||b.call_id,k=i&&(a.itemsById.get(i)||a.itemsByCallId.get(i))||j&&(a.itemsByCallId.get(j)||a.itemsById.get(j))||null,n=g(c),p=l(a,{output_index:e?k?.outputIndex??n:n,item_id:i,call_id:j,item:b},b.type||null),{content:q,summary:r,arguments:s,input:t,...u}=f(b);return p.raw={...p.raw,...u},p.type=b.type||p.type,p.id=b.id||p.id,p.callId=b.call_id||p.callId,p.name=b.name||p.name,p.role=b.role||p.role,p.status=b.status||p.status,Array.isArray(q)?q.forEach((a,b)=>{o(p,p.content,p.contentFragments,p.contentSnapshots,b,a,"output_text")}):"string"==typeof q&&o(p,p.content,p.contentFragments,p.contentSnapshots,0,{type:"output_text",text:q},"output_text"),Array.isArray(r)&&r.forEach((a,b)=>{o(p,p.summary,p.summaryFragments,p.summarySnapshots,b,a,"summary_text")}),"string"==typeof s&&s&&(p.argumentsSnapshot=h(p.argumentsSnapshot,s),p.arguments=h(p.arguments,p.argumentsSnapshot)),"string"==typeof t&&t&&(p.inputSnapshot=h(p.inputSnapshot,t),p.input=h(p.input,p.inputSnapshot)),p}function n(a,b){b&&"object"==typeof b&&(b.id&&(a.id=b.id),b.object&&(a.object=b.object),b.created_at&&(a.createdAt=b.created_at),b.model&&(a.model=b.model),b.usage&&"object"==typeof b.usage&&(a.usage=function(a,b){let c={...f(a)||{}};for(let[a,d]of Object.entries(b||{}))null!=d&&("object"!=typeof d||Array.isArray(d)?c[a]=d:c[a]={...c[a]||{},...f(d)});return"number"==typeof c.input_tokens&&"number"==typeof c.output_tokens&&void 0===b.total_tokens&&(c.total_tokens=c.input_tokens+c.output_tokens),c}(a.usage,b.usage)),Array.isArray(b.output)&&b.output.forEach((b,c)=>m(a,b,c,null,!0)))}function o(a,b,c,d,e,f,g){d.set(e,i(d.get(e),f,g));let j=(c.get(e)||[]).sort((a,b)=>a.order-b.order).map(a=>a.value).join(""),k=d.get(e),l=i(b.get(e),k,g)||{type:g};l.text=h(j,k?.text),b.set(e,l)}function p(a,b,c,d,e,f){return o(a,b,c,d,g(e.content_index??e.summary_index)??0,e.part||{type:f,text:e.text},f),a}function q(a,b,c,d,e,f,j){let k=g(f.content_index??f.summary_index)??0;if("string"!=typeof f.delta||!f.delta)return b;let l=d.get(k)||[];l.push({order:a.nextDeltaOrder++,value:f.delta}),d.set(k,l);let m=l.sort((a,b)=>a.order-b.order).map(a=>a.value).join(""),n=e.get(k),o=i(c.get(k),n,j)||{type:j};return o.text=h(m,n?.text),c.set(k,o),b}function r(a){return[...a.entries()].sort((a,b)=>a[0]-b[0]).map(([,a])=>f(a))}function s({id:a="",createdAt:b=0,model:c=""}={}){return{id:a,object:"response",createdAt:b,model:c,usage:null,items:[],itemsByOutputIndex:new Map,itemsById:new Map,itemsByCallId:new Map,implicitItemsByType:new Map,nextItemOrder:0,nextDeltaOrder:0,outputOrderConflict:!1,sawEvent:!1,finalized:!1,terminalType:null,terminalResponse:null,doneSent:!1}}function t(a,{eventType:b="response.failed",response:c=null,status:g=null,error:h=null,incompleteDetails:i=null}={}){if(!a||a.finalized)return{accepted:!1,type:a?.terminalType||b,response:a?.terminalResponse||null};n(a,c);let j=g||c?.status||d[b]||"failed",k={...f(c)||{},id:c?.id||a.id||`resp_${Date.now()}`,object:c?.object||a.object||"response",created_at:c?.created_at||a.createdAt||Math.floor(Date.now()/1e3),status:j,output:function(a,b=null){return a?[...a.items].sort((a,b)=>null!==a.outputIndex&&null!==b.outputIndex?a.outputIndex-b.outputIndex:null!==a.outputIndex?-1:null!==b.outputIndex?1:a.order-b.order).map(a=>(function(a,b=null){let c=f(a.raw)||{};return a.type&&(c.type=a.type),(a.id||e.has(a.type))&&(c.id=a.id||(a.id?a.id:a.callId?`fc_${a.callId}`:null!==a.outputIndex?`fc_output_${a.outputIndex}`:`fc_${a.order}`)),a.role&&(c.role=a.role),a.status&&(c.status=a.status),b&&(!c.status||"in_progress"===c.status)&&(c.status="completed"===b?"completed":"incomplete"),"message"===a.type?(c.role||="assistant",c.content=r(a.content)):"reasoning"===a.type?(c.summary=r(a.summary),a.content.size>0&&(c.content=r(a.content))):"function_call"===a.type?(a.callId||=c.call_id||a.id||`call_output_${a.outputIndex??a.order}`,c.call_id=a.callId,c.name=a.name||c.name||"",c.arguments=a.arguments||c.arguments||""):"custom_tool_call"===a.type&&(a.callId||=c.call_id||a.id||`call_output_${a.outputIndex??a.order}`,c.call_id=a.callId,c.name=a.name||c.name||"",c.input=a.input||c.input||""),c})(a,b)):[]}(a,j)};return a.model&&!k.model&&(k.model=a.model),a.usage&&(k.usage=f(a.usage)),h&&!k.error&&(k.error=f(h)),"failed"!==j||k.error||(k.error={type:"server_error",code:"response_failed",message:"response failed without error details"}),i&&!k.incomplete_details&&(k.incomplete_details=f(i)),a.finalized=!0,a.terminalType=b,a.terminalResponse=k,{accepted:!0,type:b,response:k}}function u(a,b){let{type:c,data:e}=function(a){if(!a||"object"!=typeof a)return{type:null,data:null};let b=a.data&&"object"==typeof a.data?a.data:a;return{type:b.type||a.type||a.event||null,data:b}}(b);if(!a||!c||!e)return{accepted:!1,type:c,data:e};if(a.finalized)return{accepted:!1,type:c,data:e,response:a.terminalResponse};a.sawEvent=!0,e.response&&n(a,e.response);let g=null;switch(c){case"response.output_item.added":case"response.output_item.done":g=m(a,e.item,e.output_index,e);break;case"response.content_part.added":case"response.content_part.done":case"response.output_text.done":p(g=l(a,e,"message"),g.content,g.contentFragments,g.contentSnapshots,e,"output_text");break;case"response.output_text.delta":g=l(a,e,"message"),q(a,g,g.content,g.contentFragments,g.contentSnapshots,e,"output_text");break;case"response.reasoning_summary_part.added":case"response.reasoning_summary_part.done":case"response.reasoning_summary_text.done":p(g=l(a,e,"reasoning"),g.summary,g.summaryFragments,g.summarySnapshots,e,"summary_text");break;case"response.reasoning_summary_text.delta":g=l(a,e,"reasoning"),q(a,g,g.summary,g.summaryFragments,g.summarySnapshots,e,"summary_text");break;case"response.reasoning_text.delta":g=l(a,e,"reasoning"),q(a,g,g.content,g.contentFragments,g.contentSnapshots,e,"reasoning_text");break;case"response.reasoning_text.done":p(g=l(a,e,"reasoning"),g.content,g.contentFragments,g.contentSnapshots,e,"reasoning_text");break;case"response.function_call_arguments.delta":if(g=l(a,e,"function_call"),"string"==typeof e.delta&&e.delta){g.argumentFragments.push({order:a.nextDeltaOrder++,value:e.delta});let b=g.argumentFragments.map(a=>a.value).join("");g.arguments=h(b,g.argumentsSnapshot)}break;case"response.function_call_arguments.done":g=l(a,e,"function_call"),"string"==typeof e.name&&e.name&&(g.name=e.name),g.argumentsSnapshot=h(g.argumentsSnapshot,e.arguments),g.arguments=h(g.arguments,g.argumentsSnapshot);break;case"response.custom_tool_call_input.delta":if(g=l(a,e,"custom_tool_call"),"string"==typeof e.delta&&e.delta){g.inputFragments.push({order:a.nextDeltaOrder++,value:e.delta});let b=g.inputFragments.map(a=>a.value).join("");g.input=h(b,g.inputSnapshot)}break;case"response.custom_tool_call_input.done":(g=l(a,e,"custom_tool_call")).inputSnapshot=h(g.inputSnapshot,e.input),g.input=h(g.input,g.inputSnapshot)}if(Object.hasOwn(d,c)){let b="error"===c?{type:"server_error",code:e.code||"response_error",message:e.message||"response stream error",...void 0!==e.param?{param:e.param}:{}}:null,h=t(a,{eventType:c,response:e.response,status:"response.done"===c&&e.response?.status||d[c],error:e.error||e.response?.error||b,incompleteDetails:e.response?.incomplete_details});return{...h,data:h.accepted?{...f(e),type:c,response:h.response}:e,item:g}}return{accepted:!0,type:c,data:e,item:g}}},98076:(a,b,c)=>{c.d(b,{Lg:()=>i,vC:()=>k});let d=new Set(["a","an","the","is","it","in","on","at","to","for","of","and","or","but","with","from","by","as","this","that","can","will","be","are","was","were","has","have","had","do","does","did","not","no","if","its","your","my","get","set","use","via"]);function e(a){return a?a.toLowerCase().replace(/[^a-z0-9\s_]/g," ").split(/\s+/).filter(a=>a.length>1&&!d.has(a)):[]}function f(a){return a?.name||a?.function?.name||""}function g(a,b=[]){let c=new Set(b);for(let b of(c.add("ToolSearch"),a?.messages||[])){for(let a of b?.tool_calls||[]){let b=a?.function?.name||a?.name;b&&c.add(b)}for(let a of Array.isArray(b?.content)?b.content:[])a?.type==="tool_use"&&a.name&&c.add(a.name)}let d=a?.tool_choice?.name||a?.tool_choice?.function?.name;return d&&c.add(d),c}let h=new Map;function i(a,b,c,d={}){var k;let l;if(!Array.isArray(a)||0===a.length)return{tools:a,stats:null};let m=d.maxTools??20,n=d.minScore??0,o=d.alwaysInclude||[];if(a.length<=m)return{tools:a,stats:null};if(!c){let c=g(b,o),d=[...a.filter(a=>c.has(f(a))),...a.filter(a=>!c.has(f(a)))].slice(0,m);return{tools:d,stats:{before:a.length,after:d.length,stripped:a.length-d.length}}}let{index:p}=function(a,b){let c=b.map(f).sort().join("|"),d=h.get(a);if(d&&d.toolSetId===c)return d.lastSeen=Date.now(),d;!function(){if(h.size<500)return;let a=Date.now()-72e5;for(let[b,c]of h)c.lastSeen<a&&h.delete(b);if(h.size>=500){let a=[...h.entries()].sort((a,b)=>a[1].lastSeen-b[1].lastSeen);for(let b=0;b<a.length/2;b++)h.delete(a[b][0])}}();let g={toolSetId:c,index:function(a){let b=a.map((a,b)=>{let c,d,g,h,i,j=e((c=f(a),d=a?.description||a?.function?.description||"",g=a?.input_schema||a?.function?.parameters||{},h=Object.keys(g?.properties||{}),[...i=c.replace(/^mcp__[^_]+__/,"").split(/_+/).filter(Boolean),...i,...i,...c.match(/^mcp__([^_]+)__/)?.[1]?.split(/_+/)||[],d,...h].join(" "))),k={};for(let a of j)k[a]=(k[a]||0)+1;return{i:b,tf:k,dl:j.length}}),c={};for(let a of b)for(let b of Object.keys(a.tf))c[b]=(c[b]||0)+1;let d=b.length,g=d?b.reduce((a,b)=>a+b.dl,0)/d:1;return{docs:b,df:c,N:d,avgdl:g}}(b),tools:b,lastSeen:Date.now()};return h.set(a,g),g}(c,a),q=g(b,o),r=e(function(a){let b=Array.isArray(a?.messages)?a.messages:[];for(let a=b.length-1;a>=0;a--){let c=b[a];if(c?.role==="user"){if("string"==typeof c.content)return c.content;if(Array.isArray(c.content))return c.content.filter(a=>a?.type==="text"||"string"==typeof a?.text).map(a=>a.text||"").join(" ")}}return""}(b)),s=[],t=[];for(let b=0;b<a.length;b++)q.has(f(a[b]))?s.push({tool:a[b],score:1/0}):t.push({tool:a[b],i:b});let u=Math.max(0,m-s.length);if(0===r.length)l=t.slice(0,u).map(a=>a.tool);else{let a=function(a,b){let{docs:c,df:d,N:e,avgdl:f}=a,g=Array(e).fill(0);for(let a of b){let b=d[a]||0;if(0===b)continue;let h=Math.log((e-b+.5)/(b+.5)+1);for(let b of c){let c=b.tf[a]||0;0!==c&&(g[b.i]+=2.5*c*h/(c+1.5*(.25+.75*b.dl/f)))}}return g}(p,r);t.sort((b,c)=>(a[c.i]||0)-(a[b.i]||0)),l=t.filter(b=>(a[b.i]||0)>=n).slice(0,u).map(a=>a.tool)}let v=[...s.map(a=>a.tool),...l],w=new Set(v.map(f)),x={before:a.length,after:v.length,stripped:a.length-v.length,keptNames:v.map(f),strippedNames:a.filter(a=>!w.has(f(a))).map(f)};return k={connectionId:c,...x},j.unshift({ts:Date.now(),...k}),j.length>50&&(j.length=50),{tools:v,stats:x}}let j=[];function k(){return j.slice()}}};
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
data: ${d}
|
|
5
5
|
|
|
6
6
|
`)}catch{}}}),f.stderr.on("data",b=>console.log(`[mcp:${a}]`,b.toString().trim())),f.on("exit",c=>{console.log(`[mcp:${a}] exited`,c),b.delete(a)}),c}a.exports={getOrSpawn:j,registerSession:function(a,b){let c=j(a),d=e.randomUUID();return c.sessions.set(d,b),d},unregisterSession:function(a,b){let c=h().get(a);if(c&&(c.sessions.delete(b),0===c.sessions.size)){try{c.proc.kill()}catch{}h().delete(a)}},sendToChild:function(a,b){let c=h().get(a);if(!c?.proc?.stdin?.writable)throw Error(`Bridge not running: ${a}`);c.proc.stdin.write(`${JSON.stringify(b)}
|
|
7
|
-
`)},isRunning:function(a){let b=h().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:i,killAllBridges:function(){let a=h();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>n,v:()=>m});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"ezrouter"):g().join(i().homedir(),".ezrouter")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>w,Zh:()=>v});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(89718),j=c(17302),k=c(96182),l=c(76476),m=c(17113),n=c(16329);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///Volumes/Files/Projects/EzRouter/EzRouter/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,k.initDbHooks)(i.mt,i.Xx)}catch{}process.setMaxListeners(20);let o=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function p(){var a;await (0,i.bI)();let b=await (0,i.mt)();b.tunnelEnabled&&!o.tunnelAutoResumed&&(o.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),s("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!o.tailscaleAutoResumed&&(o.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,j.Al)().catch(()=>{}),b.mitmEnabled&&((0,l.v)().catch(()=>{}),q(b)),v(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(5502),c.e(1522),c.e(4646),c.e(1329),c.e(3904),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(9884),c.e(7353),c.e(9276),c.e(2547),c.e(
|
|
7
|
+
`)},isRunning:function(a){let b=h().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:i,killAllBridges:function(){let a=h();for(let[b,c]of a){try{c.proc.kill()}catch{}a.delete(b)}}}},28286:a=>{a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},76476:(a,b,c)=>{c.d(b,{N:()=>n,v:()=>m});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"ezrouter"):g().join(i().homedir(),".ezrouter")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},94123:(a,b,c)=>{c.d(b,{Ay:()=>w,Zh:()=>v});var d=c(21820),e=c.n(d),f=c(1932),g=c(33873),h=c(29021),i=c(89718),j=c(17302),k=c(96182),l=c(76476),m=c(17113),n=c(16329);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///Volumes/Files/Projects/EzRouter/EzRouter/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,k.initDbHooks)(i.mt,i.Xx)}catch{}process.setMaxListeners(20);let o=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function p(){var a;await (0,i.bI)();let b=await (0,i.mt)();b.tunnelEnabled&&!o.tunnelAutoResumed&&(o.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),s("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),b.tailscaleEnabled&&!o.tailscaleAutoResumed&&(o.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),b.tunnelEnabled&&(0,j.Al)().catch(()=>{}),b.mitmEnabled&&((0,l.v)().catch(()=>{}),q(b)),v(b),a=b,[a?.claudeAutoPing,a?.codexAutoPing].some(a=>Object.values(a?.connections||{}).some(Boolean))&&Promise.all([c.e(7774),c.e(5502),c.e(1522),c.e(4646),c.e(1329),c.e(3904),c.e(8851),c.e(8946),c.e(8129),c.e(3148),c.e(9884),c.e(7353),c.e(9276),c.e(2547),c.e(7456),c.e(369),c.e(1133),c.e(3350)]).then(c.bind(c,1133)).then(({startQuotaAutoPing:a})=>a()).catch(a=>console.log("[AutoPing] scheduler start failed:",a.message)),Promise.all([c.e(5502),c.e(1522),c.e(8946),c.e(8129),c.e(8034)]).then(c.bind(c,3256)).then(({startBackgroundTokenRefresh:a})=>a()).catch(a=>console.log("[BackgroundTokenRefresh] scheduler start failed:",a.message))}async function q(a){if(!o.mitmStartInProgress){o.mitmStartInProgress=!0;try{if(!a.mitmEnabled||(await (0,k.getMitmStatus)()).running)return;let b=await (0,k.loadEncryptedPassword)();if(!b&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let c=(await (0,i.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,k.startMitm)(c?.key||"sk_ezrouter",b),console.log("[InitApp] MITM auto-started");try{await (0,k.restoreToolDNS)(b),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{o.mitmStartInProgress=!1}}}let r=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function s(a){let b=(0,j.Qn)();if(!(await (0,i.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=r.test(a);if(!(0,j.nN)()){if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,j.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function t(a){let b=(0,j.oN)();if(!(await (0,i.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,j.hp)():(0,j.Kp)()))return;if((0,j.si)()&&b.activeLocalPort){try{await (0,j.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=r.test(a);if(!c&&Date.now()-b.lastRestartAt<j.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,j.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,j.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function u(){let a=e().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!j.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}function v(a){if(a?.tunnelEnabled||a?.tailscaleEnabled){!o.watchdogInterval&&(o.watchdogInterval=setInterval(()=>{s("watchdog").catch(()=>{}),t("watchdog").catch(()=>{})},j.DA),o.watchdogInterval.unref&&o.watchdogInterval.unref()),!o.networkMonitorInterval&&(o.lastNetworkFingerprint=u(),o.lastWatchdogTick=Date.now(),o.lastOnline=null,o.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-o.lastWatchdogTick;o.lastWatchdogTick=a;let c=u(),d=c!==o.lastNetworkFingerprint,e=b>6*j.rI;d&&(o.lastNetworkFingerprint=c);let f=await (0,j.u7)(),g=!1===o.lastOnline;if(o.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,j.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";s(h).catch(()=>{}),t(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},j.rI),o.networkMonitorInterval.unref&&o.networkMonitorInterval.unref());return}o.watchdogInterval&&(clearInterval(o.watchdogInterval),o.watchdogInterval=null),o.networkMonitorInterval&&(clearInterval(o.networkMonitorInterval),o.networkMonitorInterval=null,o.lastNetworkFingerprint=null,o.lastOnline=null)}let w=async function a(){try{o.signalHandlersRegistered||((0,n.Bb)(()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}try{(0,m.killAllBridges)()}catch{}(0,j.ss)()},-100),process.on("exit",()=>{try{(0,k.removeAllDNSEntriesSync)()}catch{}}),o.signalHandlersRegistered=!0),(0,j.X$)(()=>{s("unexpected-exit").catch(()=>{})}),setTimeout(()=>{p().catch(a=>console.error("[InitApp] deferred startup failed:",a.message))},3e3)}catch(a){console.error("[InitApp] Error:",a)}}}};
|