tokenhop 1.0.1 → 1.0.3
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 +8 -8
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +29 -29
- package/app/.next-cli-build/required-server-files.json +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/[...missing]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +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 +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 +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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +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 +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/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.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 +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 +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 +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 +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 +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 +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 +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 +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 +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/settings/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.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 +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 +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/ui-kit/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ui-kit/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +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 +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tool-settings/[toolId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tool-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
- 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 +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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/headroom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/headroom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +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 +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/route.js +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/gateway/status/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/home/live-routes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/quota/route.js +1 -1
- package/app/.next-cli-build/server/app/api/home/quota/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/home/summary/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +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 +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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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 +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 +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]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +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 +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 +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 +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/settings/config/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/config/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +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/environment/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/shell/savings-milestone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shell/summary/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shell/summary/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +9 -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 +9 -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 +2 -2
- 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 +9 -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 +9 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/last-activity/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 +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/savings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +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 +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/embeddings/route.js +9 -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/[...model]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +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 +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 +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 +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 +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 +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 +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 +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/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/media-providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +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 +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/settings.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/ui-kit.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ui-kit.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/!KGRhc2hib2FyZCk/dashboard/ui-kit/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/ui-kit.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +11 -11
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +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 +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login/page.js +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 +5 -5
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +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/skills/[...slug]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +8 -8
- package/app/.next-cli-build/server/chunks/{6734.js → 1004.js} +1 -1
- package/app/.next-cli-build/server/chunks/{4037.js → 1215.js} +1 -1
- package/app/.next-cli-build/server/chunks/1533.js +1 -1
- package/app/.next-cli-build/server/chunks/2217.js +1 -1
- package/app/.next-cli-build/server/chunks/2380.js +3 -3
- package/app/.next-cli-build/server/chunks/24.js +1 -1
- package/app/.next-cli-build/server/chunks/2460.js +1 -1
- package/app/.next-cli-build/server/chunks/257.js +10 -0
- package/app/.next-cli-build/server/chunks/2592.js +1 -1
- package/app/.next-cli-build/server/chunks/2705.js +9 -0
- package/app/.next-cli-build/server/chunks/318.js +2 -10
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4334.js +1 -1
- package/app/.next-cli-build/server/chunks/5230.js +1 -0
- package/app/.next-cli-build/server/chunks/5260.js +1 -1
- package/app/.next-cli-build/server/chunks/5559.js +9 -0
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5649.js +1 -0
- package/app/.next-cli-build/server/chunks/5827.js +1 -1
- package/app/.next-cli-build/server/chunks/5869.js +9 -0
- package/app/.next-cli-build/server/chunks/5908.js +1 -0
- package/app/.next-cli-build/server/chunks/620.js +1 -1
- package/app/.next-cli-build/server/chunks/{1854.js → 6355.js} +1 -1
- package/app/.next-cli-build/server/chunks/6493.js +1 -0
- package/app/.next-cli-build/server/chunks/6496.js +1 -1
- package/app/.next-cli-build/server/chunks/7485.js +9 -0
- package/app/.next-cli-build/server/chunks/{3676.js → 7695.js} +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +1 -1
- package/app/.next-cli-build/server/chunks/7819.js +1 -1
- package/app/.next-cli-build/server/chunks/8171.js +1 -1
- package/app/.next-cli-build/server/chunks/8261.js +1 -0
- package/app/.next-cli-build/server/chunks/878.js +1 -0
- package/app/.next-cli-build/server/chunks/8895.js +10 -10
- package/app/.next-cli-build/server/chunks/8954.js +1 -0
- package/app/.next-cli-build/server/chunks/9016.js +9 -0
- package/app/.next-cli-build/server/chunks/9343.js +1 -1
- package/app/.next-cli-build/server/chunks/9421.js +1 -1
- package/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/app/.next-cli-build/server/chunks/9578.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/{198-0c7f5eadfd257db1.js → 198-7c5bbea89ef8bc14.js} +1 -1
- package/app/.next-cli-build/static/chunks/{3670-90f5cd325f460eb5.js → 3670-d6dc44bc181c9b8a.js} +1 -1
- package/app/.next-cli-build/static/chunks/{6174.f1da2912aec81c15.js → 6174.a18fedfa3d765b1e.js} +1 -1
- package/app/.next-cli-build/static/chunks/7899-a12f962af02edf7f.js +1 -0
- package/app/.next-cli-build/static/chunks/8105-71d1aea9708976db.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-084fc21b1dbae00d.js → page-1df6ad7d9adfc2a7.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-de53f51d191eec46.js → page-25d06b77bd1a5edb.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-243d3da0a2c6cbe9.js → page-5bb99ecaf48bde39.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ui-kit/{page-998f8c5a36dac961.js → page-1bc393f267badc04.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-96ebd2b46f1f8d39.js → layout-a94f45e334f1841b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/landing/{page-bcaea5febe1c68c0.js → page-98f05847e3372b16.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/{layout-c266f1acedfb4651.js → layout-29d74e164758a126.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-8693ccf029e9af63.js → webpack-1e19a4b05298b49d.js} +1 -1
- package/app/.next-cli-build/static/css/{9f0b95a0d0bc5e51.css → ffa1d9c3cbb4e959.css} +1 -1
- package/app/package.json +4 -5
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/1764.js +0 -1
- package/app/.next-cli-build/server/chunks/3306.js +0 -1
- package/app/.next-cli-build/server/chunks/3558.js +0 -1
- package/app/.next-cli-build/server/chunks/368.js +0 -1
- package/app/.next-cli-build/server/chunks/4199.js +0 -2
- package/app/.next-cli-build/server/chunks/4903.js +0 -1
- package/app/.next-cli-build/server/chunks/6000.js +0 -1
- package/app/.next-cli-build/server/chunks/6403.js +0 -1
- package/app/.next-cli-build/server/chunks/6565.js +0 -1
- package/app/.next-cli-build/server/chunks/7901.js +0 -1
- package/app/.next-cli-build/server/chunks/8372.js +0 -1
- package/app/.next-cli-build/server/chunks/9219.js +0 -1
- package/app/.next-cli-build/static/chunks/7899-83edd7bbf1a98c4a.js +0 -1
- package/app/.next-cli-build/static/chunks/8105-bdd81b911fed8537.js +0 -1
- /package/app/.next-cli-build/static/{J4xdfHpBUAMOCO5dsemSj → gdVYVwJMM6JES9Y1KPQyw}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{J4xdfHpBUAMOCO5dsemSj → gdVYVwJMM6JES9Y1KPQyw}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=3826,a.ids=[3826],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},16736:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(5735),e=c(91986),f=c(92082),g=c(50119);function h(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(f.CardSkeleton,{}),children:(0,d.jsx)(g.default,{})})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},22760:(a,b,c)=>{"use strict";c.d(b,{FK:()=>i,fz:()=>j});let d=["will-run-out","tight","on-track","idle"],e={"will-run-out":"err",tight:"warn","on-track":"muted",idle:"muted"},f={"will-run-out":"warning",tight:"hourglass_top","on-track":"check_circle",idle:"bedtime"};function g(a){if(!Number.isFinite(a)||a<0)return null;if(a<6e4)return"<1m";let b=Math.round(a/6e4);if(b<60)return`~${b}m`;let c=Math.round(a/36e5);if(c<24)return`~${c}h`;if(a>=6048e5)return`~${Math.round(a/864e5)}d`;let d=Math.floor(c/24),e=c%24;return 0===e?`~${d}d`:`~${d}d ${e}h`}function h(a){if(null==a)return null;let b="string"==typeof a?Date.parse(a):Number(a);return Number.isFinite(b)?b:null}function i(a,b=Date.now()){var c;if(!a||"unknown"===a.state||!(a.state in e))return null;let{state:d}=a,j=e[d],k=f[d],l="will-run-out"===d||"tight"===d?h(a.emptyAt):null,m=null==l?null:g(l-b),n=h(a.resetAt),o=null==n?null:g(n-b);return{state:d,tone:j,icon:k,emptyIn:m,resetsIn:o,burnRate:null==(c=Number.isFinite(a.burnPctPerHour)?a.burnPctPerHour:null)||!Number.isFinite(c)||c<=.1?"~0%/h":`~${c.toFixed(1)}%/h`,sampleWindow:g(Number(a.sampleSpanMs))??"<1m"}}function j(a){if(!Array.isArray(a))return null;let b=null;for(let c of a){let a=c?.forecast;if(!a)continue;let e=d.indexOf(a.state);if(!(e<0)){if(!b||e<b.rank){b={item:c,rank:e};continue}if(e===b.rank){let d=h(a.emptyAt),f=h(b.item.forecast.emptyAt);null!=d&&(null==f||d<f)&&(b={item:c,rank:e})}}}return b?{label:b.item.label,forecast:b.item.forecast}:null}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30803:(a,b,c)=>{"use strict";c.d(b,{A:()=>k});var d=c(48249),e=c(49885),f=c.n(e),g=c(71404),h=c(22760),i=c(32971);let j={err:"text-err",warn:"text-warn",muted:"text-muted"};function k({forecast:a,showReset:b=!1,className:c}){let e=(0,h.FK)(a);if(!e)return null;let{state:f,tone:l,icon:m,emptyIn:n,resetsIn:o,burnRate:p,sampleWindow:q}=e,r="muted"===l?void 0:"font-medium";return(0,d.jsx)(i.default,{text:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"Burn rate"})," ",(0,d.jsx)("span",{className:"tabular-nums",children:p})," ",(0,d.jsx)("span",{"aria-hidden":"true",children:"\xb7"})," ",(0,d.jsx)("span",{children:"Sample window"})," ",(0,d.jsx)("span",{className:"tabular-nums",children:q})]}),children:(0,d.jsxs)("span",{tabIndex:0,className:(0,g.cn)("-my-3 flex min-w-0 items-center gap-1.5 rounded py-3 text-xs focus-visible:shadow-focus",j[l],c),children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"material-symbols-outlined text-[14px] shrink-0",children:m}),"will-run-out"===f&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:r,children:"At this pace, empty in"})," ",n&&(0,d.jsx)("span",{className:"tabular-nums",children:n})]}),"tight"===f&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:r,children:"Cutting it close, empty in"})," ",n&&(0,d.jsx)("span",{className:"tabular-nums",children:n})]}),"on-track"===f&&(0,d.jsx)("span",{className:r,children:"On track"}),"idle"===f&&(0,d.jsx)("span",{className:r,children:"Idle lately"}),b&&o?(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("span",{"aria-hidden":"true",children:"\xb7"})," ",(0,d.jsx)("span",{children:"resets in"})," ",(0,d.jsx)("span",{className:"tabular-nums",children:o})]}):null]})})}k.propTypes={forecast:f().shape({state:f().string,emptyAt:f().string,resetAt:f().string,burnPctPerHour:f().number,sampleSpanMs:f().number}),showReset:f().bool,className:f().string}},31421:a=>{"use strict";a.exports=require("node:child_process")},32042:(a,b,c)=>{Promise.resolve().then(c.bind(c,50119)),Promise.resolve().then(c.bind(c,92082))},32467:a=>{"use strict";a.exports=require("node:http2")},32971:(a,b,c)=>{"use strict";c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(71404),i=c(28502),j=c(65365),k=c(56615);function l({text:a,children:b,position:c="top",variant:f="neutral",disabled:g=!1,className:m}){let n=(0,e.useRef)(null),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useRef)(null),{overlayId:r}=(0,k.uf)("signal-tooltip"),[s,t]=(0,e.useState)(!1),u=(0,i.eJ)(s,g,a),v=(0,j.p)(n,o,u,c);if((0,e.useCallback)(()=>{(0,i.eJ)(!0,g,a)&&(clearTimeout(q.current),clearTimeout(p.current),p.current=setTimeout(()=>t(!0),150))},[g,a]),(0,e.useCallback)(()=>{clearTimeout(p.current),clearTimeout(q.current),q.current=setTimeout(()=>t(!1),100)},[]),!(0,e.isValidElement)(b))throw Error("Tooltip: `children` must be a React element");let w="string"==typeof b.type,x=w&&!["button","a","input","select","textarea"].includes(b.type)&&void 0===b.props.tabIndex,y=(0,e.cloneElement)(b,{"aria-describedby":u?r:b.props["aria-describedby"],tabIndex:w&&x?0:b.props.tabIndex});return(0,d.jsxs)("span",{ref:n,className:"inline-flex",children:[y,u?(0,d.jsx)(k.ZL,{children:(0,d.jsx)("div",{ref:o,id:r,role:"tooltip",style:v,className:(0,h.cn)("signal-overlay-tip pointer-events-none fixed z-50 w-max max-w-56 whitespace-normal rounded-lg px-2 py-1 text-[11px] leading-snug",(0,i.lH)(f),m),children:a})}):null]})}l.propTypes={text:g().node,children:g().element.isRequired,position:g().oneOf(["top","bottom","start","end","left","right"]),variant:g().oneOf(Object.keys(i.h1)),disabled:g().bool,className:g().string}},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},40639:(a,b,c)=>{"use strict";c.d(b,{default:()=>ak});var d=c(48249),e=c(19099),f=c(41371),g=c(67484),h=c(66427);let i=[{value:"default",label:"Default quota order"},{value:"remaining-asc",label:"% quota: low to high"},{value:"remaining-desc",label:"% quota: high to low"}];function j(a){return a.name?.trim()||a.email?.trim()||a.displayName?.trim()||null}function k(a,b){let c=b[a.id]?.quotas?.[0];return c&&"number"==typeof c.remaining?c.remaining:1/0}function l(a){let b={};return a.forEach(a=>{b[a.id]=!0}),b}function m(a,b){let c=new Set(b.map(a=>a.id));return Object.fromEntries(Object.entries(a).filter(([a])=>c.has(a)))}async function n(a,b){return await a(b)}function o(a,b){}function p(a){if(!a)return"-";try{let b="string"==typeof a?new Date(a):a,c=new Date,d=b-c;if(d<=0)return"-";let e=Math.ceil(d/6e4);if(e<60)return`${e}m`;let f=Math.floor(e/60),g=e%60;if(f<24)return`${f}h ${g}m`;let h=Math.floor(f/24);return`${h}d ${f%24}h ${g}m`}catch(a){return"-"}}function q(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function r(a){return a?.remaining!==void 0?Math.max(0,Math.round(a.remaining)):a?.remainingPercentage!==void 0?Math.round(a.remainingPercentage):q(a?.used,a?.total)}function s(a){return a&&"object"==typeof a?String(a.modelKey||a.name||"").trim():""}function t(a,b,c=[]){let d=b?.[a]?.hidden;return Array.isArray(d)&&0!==d.length?new Set((c.length>0?function(a=[],b=[]){if(!Array.isArray(a)||0===a.length)return[];let c=new Set(b.map(s).filter(Boolean));return[...new Set(a.map(a=>String(a).trim()).filter(a=>c.has(a)))]}(d,c):d).map(String)):new Set}var u=c(22760);function v(a){if("number"!=typeof a||!Number.isFinite(a))throw Error(`getHealthBucket: expected a finite number, got ${a}`);let b=Math.min(100,Math.max(0,a));return b<=0?"empty":b<=45?"low":"healthy"}function w(a){if(!Array.isArray(a))return null;let b=null;for(let c of a){if(c?.unlimited===!0||c?.isCreditBalance===!0)continue;let a=r(c);Number.isFinite(a)&&(b=null===b?a:Math.min(b,a))}return b}function x(a){return!!Array.isArray(a)&&0!==a.length&&a.some(a=>a?.unlimited!==!0&&a?.isCreditBalance!==!0&&(a?.remaining!=null||a?.remainingPercentage!=null||a?.total>0)&&5>=r(a))}function y(a,b,c){let d=[];for(let e of a||[]){let a=e?.isActive??!0,f=x(b?.[e?.id]?.quotas);"off"===c&&a&&f&&d.push(e.id),"on"!==c||a||f||d.push(e.id)}return d}let z=new Set(["will-run-out","tight","on-track","idle"]);var A=c(49885),B=c.n(A),C=c(17660),D=c(516),E=c(51175),F=c(65365),G=c(30803);let H=a=>String(Math.round(Number(a)||0));function I({summary:a,nextReset:b,forecast:c,hasForecasts:e=!1,loading:f=!1}){let{healthy:g=0,low:h=0,empty:i=0,total:j=0}=a||{},k=j>0,l=b?.resetAt?p(b.resetAt):null,m=b&&l&&"-"!==l?`Next reset: ${b.label} in ${l}. Empty accounts are skipped automatically.`:"Empty accounts are skipped automatically.",n=c?.forecast?.state;return(0,d.jsx)(C.default,{padding:"none",className:"p-5 lg:p-6","data-testid":"quota-summary-card",role:"region","aria-label":"Quota summary",children:(0,d.jsxs)("div",{className:"flex flex-col gap-5 lg:flex-row lg:items-center lg:gap-8",children:[(0,d.jsxs)("div",{className:"flex items-center gap-6 sm:gap-8",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-muted",children:"Healthy"}),(0,d.jsx)("span",{className:"font-display text-3xl lg:text-4xl font-bold leading-none text-ok tabular-nums",children:f?"-":(0,d.jsx)(D.default,{value:g,format:H})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-muted",children:"Running low"}),(0,d.jsx)("span",{className:"font-display text-3xl lg:text-4xl font-bold leading-none text-warn tabular-nums",children:f?"-":(0,d.jsx)(D.default,{value:h,format:H})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-muted",children:"Empty"}),(0,d.jsx)("span",{className:"font-display text-3xl lg:text-4xl font-bold leading-none text-err tabular-nums",children:f?"-":(0,d.jsx)(D.default,{value:i,format:H})})]})]}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,d.jsx)("div",{role:"progressbar","aria-label":"Fleet quota runway","aria-valuemin":0,"aria-valuemax":j||1,"aria-valuenow":g,"aria-valuetext":`${g} healthy, ${h} running low, ${i} empty`,className:"flex h-3.5 w-full gap-1 overflow-hidden rounded-pill bg-raised p-0.5 shadow-[inset_0_0_0_1px_var(--signal-line)]",children:k?(0,d.jsxs)(d.Fragment,{children:[g>0&&(0,d.jsx)("span",{className:"h-full rounded-pill bg-ok transition-all duration-300",style:{flexGrow:g},title:`${g} healthy accounts`}),h>0&&(0,d.jsx)("span",{className:"h-full rounded-pill bg-warn transition-all duration-300",style:{flexGrow:h},title:`${h} running low accounts`}),i>0&&(0,d.jsx)("span",{className:"h-full rounded-pill bg-err transition-all duration-300",style:{flexGrow:i},title:`${i} empty accounts`})]}):(0,d.jsx)("span",{className:"h-full w-full rounded-pill bg-line/60"})}),(0,d.jsx)("p",{className:"text-xs text-muted leading-relaxed",children:m}),(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[!f&&e&&(0,d.jsx)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:"will-run-out"===n||"tight"===n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"truncate text-xs font-medium text-text",title:c.label,children:c.label}),(0,d.jsx)(G.A,{forecast:c.forecast,showReset:!0})]}):(0,d.jsx)("span",{className:"text-xs text-muted",children:"Every forecast is on track"})}),(0,d.jsxs)(F.default,{placement:"top","aria-label":"How forecasts work",trigger:(0,d.jsx)(E.default,{icon:"info","aria-label":"How forecasts work"}),children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-text",children:"How forecasts work"}),(0,d.jsxs)("div",{className:"mt-2 flex flex-col gap-1.5 text-xs text-muted",children:[(0,d.jsx)("p",{children:"Forecasts use how fast each quota dropped over the last two hours."}),(0,d.jsx)("p",{children:"We need at least 3 readings over 10 minutes. Until then, no forecast is shown."}),(0,d.jsx)("p",{children:"Readings come from quota checks that already run. Nothing extra is sent to providers."})]})]})]})]})]})})}I.propTypes={summary:B().shape({healthy:B().number,low:B().number,empty:B().number,total:B().number}),nextReset:B().shape({connectionId:B().string,label:B().string,resetAt:B().string}),forecast:B().shape({label:B().string,forecast:B().object}),hasForecasts:B().bool,loading:B().bool};var J=c(92592),K=c(99070),L=c(91099),M=c(83035),N=c(31023);let O=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"inactive",label:"Off"}];function P({providerFilter:a,onProviderChange:b,providerOptions:c=[],accountFilter:e,onAccountFilterChange:f,quotaSortMode:g="default",onQuotaSortModeChange:h,expiringFirst:j,onToggleExpiringFirst:k,onTurnOffEmpty:l,onTurnOnAvailable:m,bulkBusy:n=!1,emptyCount:o=0,availableCount:p=0}){let q=[{value:"all",label:"All providers"},...c.map(a=>({value:a,label:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)(M.default,{providerId:a,size:"sm"}),J.Q2[a]?.name||a]})}))];return(0,d.jsxs)("nav",{className:"flex flex-wrap items-center gap-3","aria-label":"Quota filters",children:[(0,d.jsx)(L.default,{options:q,value:a,onChange:b,size:"sm","aria-label":"Filter by provider"}),(0,d.jsx)(L.default,{options:O,value:e,onChange:f,size:"sm","aria-label":"Filter accounts by status"}),"codex"===a&&"function"==typeof h&&(0,d.jsx)(N.default,{label:"Sort Codex quotas by remaining",value:g,onChange:a=>h(a.target.value),options:i,className:"min-w-[210px]"}),(0,d.jsxs)("button",{type:"button",onClick:k,"aria-pressed":j,className:`inline-flex h-9 shrink-0 items-center gap-1.5 rounded-lg border px-3 text-xs font-semibold transition-colors duration-150 focus-visible:shadow-focus ${j?"border-warn/40 bg-warn-bg text-warn":"border-line bg-raised text-text hover:bg-line/60"}`,title:"Sort accounts by earliest quota reset time",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"hourglass_top"}),(0,d.jsx)("span",{children:"Expiring first"})]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(K.default,{variant:"ghost",size:"sm",disabled:n||0===o,onClick:l,title:"Disable connections with depleted quota on the current page",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"block"}),(0,d.jsx)("span",{children:"Turn off empty"}),o>0&&(0,d.jsxs)("span",{className:"font-mono text-[11px] opacity-70",children:["(",o,")"]})]}),(0,d.jsxs)(K.default,{variant:"ghost",size:"sm",disabled:n||0===p,onClick:m,title:"Enable connections that still have quota on the current page",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"check_circle"}),(0,d.jsx)("span",{children:"Turn on available"}),p>0&&(0,d.jsxs)("span",{className:"font-mono text-[11px] opacity-70",children:["(",p,")"]})]})]})]})}P.propTypes={providerFilter:B().string.isRequired,onProviderChange:B().func.isRequired,providerOptions:B().arrayOf(B().string),accountFilter:B().string.isRequired,onAccountFilterChange:B().func.isRequired,quotaSortMode:B().string,onQuotaSortModeChange:B().func,expiringFirst:B().bool.isRequired,onToggleExpiringFirst:B().func.isRequired,onTurnOffEmpty:B().func.isRequired,onTurnOnAvailable:B().func.isRequired,bulkBusy:B().bool,emptyCount:B().number,availableCount:B().number};var Q=c(24279),R=c(95514),S=c(74812),T=c(63069),U=c(65181);function V({quota:a,compact:b=!1,onHide:c}){let e=!0===a.unlimited,f=!0===a.isCreditBalance,g=r(a),h=e?"text-lime-ink dark:text-lime":f?"text-sky":g<=20?"text-err":g<=45?"text-warn":"text-ok",i=Number(a.used||0).toLocaleString(),j=a.total>0?Number(a.total).toLocaleString():"∞",k=e?`${i} used \xb7 Unlimited`:f?`Credit: ${Number(a.total).toFixed(2)} ${a.currency||""}`.trim():`${i} / ${j}`,l=e?"Unlimited":f?"":`${g}%`,m=p(a.resetAt),n=a.resetAt?function(a){if(!a)return null;try{let b,c=new Date(a);if(Number.isNaN(c.getTime()))return null;let d=new Date,e=new Date(d.getFullYear(),d.getMonth(),d.getDate()),f=new Date(e);f.setDate(f.getDate()+1);let g=new Date(f);g.setDate(g.getDate()+1),b=c>=e&&c<f?"Today":c>=f&&c<g?"Tomorrow":c.toLocaleDateString("en-US",{month:"short",day:"numeric"});let h=c.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${b}, ${h}`}catch{return null}}(a.resetAt):null,o=!1!==a.recurring,q="-"!==m?o?`in ${m}`:`expires in ${m}`:null;return(0,d.jsxs)("div",{className:"group flex min-w-0 flex-col gap-1.5","data-testid":"quota-row",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-baseline gap-2 text-[13px]",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-semibold text-text",children:a.name}),(0,d.jsx)("span",{className:`shrink-0 font-semibold tabular-nums ${h}`,children:l||k})]}),!e&&!f&&(0,d.jsx)(U.default,{value:g,kind:e?"unlimited":f?"credits":void 0,label:`${a.name} quota: ${g}% left`,valueText:`${g}% left`}),!e&&!f&&(0,d.jsx)(G.A,{forecast:a.forecast}),(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted",title:n||void 0,children:b?q||n||"N/A":(0,d.jsxs)(d.Fragment,{children:[q&&(0,d.jsx)("span",{className:"font-medium text-text",children:q}),q&&n&&" \xb7 ",n&&(0,d.jsx)("span",{children:n}),!q&&!n&&(0,d.jsx)("span",{className:"italic",children:"N/A"})]})}),"function"==typeof c&&(0,d.jsx)("button",{type:"button",onClick:()=>c(a),className:"-my-3 inline-flex size-10 shrink-0 items-center justify-center rounded-lg text-muted transition-[opacity,color,background-color] hover:bg-raised hover:text-text focus-visible:shadow-focus [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:group-hover:opacity-100 focus-visible:opacity-100",title:"Hide this quota row","aria-label":`Hide quota ${a.name}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"visibility_off"})})]}),(0,d.jsx)("span",{className:"sr-only",children:k})]})}function W({connection:a,quotas:b,hiddenQuotaRows:c,loading:e,error:f,message:g,rowBusy:h,autoPing:i,canAutoPing:k,codexResetCredits:l,canResetCodex:m,quotaSortLabel:n,onRefresh:o,onEdit:p,onDelete:q,onToggle:r,onToggleAutoPing:t,onResetCodex:u,onViewCodexCredits:y,onHideQuota:z,onShowQuota:A}){let B=J.Q2[a.provider]?.name||a.provider,D=j(a),F=a?a.name?.trim()&&a.email?.trim()&&a.name.trim()!==a.email.trim()?a.email.trim():a.name?.trim()&&a.displayName?.trim()&&a.name.trim()!==a.displayName.trim()?a.displayName.trim():null:null,G=function({isActive:a,quotas:b,error:c,loading:d}={}){let e=w(b);if((a??!0)===!1)return{label:0===e||x(b)?"Turned off \xb7 empty":"Turned off",variant:"neutral"};if(c)return{label:"Error",variant:"err"};if(d&&!b?.length)return{label:"Checking",variant:"neutral"};if(null===e)return b?.length?{label:"Active",variant:"ok"}:{label:"No data",variant:"neutral"};let f=v(e);return"empty"===f?{label:"Empty",variant:"err"}:"low"===f?{label:"Running low",variant:"warn"}:{label:"Active",variant:"ok"}}({isActive:a.isActive,quotas:b,error:f,loading:e});return(0,d.jsxs)(C.default,{padding:"none",className:"flex min-w-0 flex-col p-5","data-testid":"quota-account-card",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(M.default,{providerId:a.provider,status:"ok"===G.variant?"ok":"warn"===G.variant?"warn":"err"===G.variant?"err":"neutral"}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)("span",{className:"truncate text-[15px] font-semibold text-text",children:B}),D&&(0,d.jsx)("span",{className:"truncate text-xs text-muted",children:D}),F&&(0,d.jsx)("span",{className:"truncate text-[11px] text-subtle",children:F})]}),(0,d.jsx)(R.default,{checked:a.isActive??!0,disabled:h,onChange:b=>r(a.id,b),"aria-label":`${!1===a.isActive?"Enable":"Disable"} ${D||B} account`,title:a.isActive??!0?"Disable connection":"Enable connection"})]}),(0,d.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,d.jsx)(Q.default,{variant:G.variant,children:G.label}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)(E.default,{icon:"refresh",label:"Refresh quota",loading:e,disabled:h,onClick:()=>o(a.id,a.provider)}),(0,d.jsxs)(T.default,{trigger:(0,d.jsx)(E.default,{icon:"more_vert",label:`More actions for ${D||B}`,disabled:h}),children:[(0,d.jsx)(T.MenuItem,{icon:"edit",onSelect:()=>p(a),disabled:h,children:"Edit connection"}),"codex"===a.provider&&(0,d.jsxs)(T.MenuItem,{icon:"restart_alt",onSelect:()=>u(a),disabled:!m||e||h,children:["Use reset credit (",l," available)"]}),"codex"===a.provider&&(0,d.jsx)(T.MenuItem,{icon:"schedule",onSelect:()=>y(a),disabled:e||h,children:"View reset credit expiry"}),k&&(0,d.jsx)(T.MenuItem,{icon:"bolt",onSelect:()=>t(a.id,a.provider,!i),disabled:h,title:"Auto-ping keeps OAuth sessions active. Quota refresh runs separately.",children:i?"Disable auto-ping":"Enable auto-ping"}),(0,d.jsx)(T.MenuItem,{icon:"delete",danger:!0,onSelect:()=>q(a.id),disabled:h,children:"Delete connection"})]})]}),(0,d.jsxs)("div",{className:"mt-4 flex min-w-0 flex-1 flex-col gap-4",children:[e?(0,d.jsxs)("div",{className:"flex flex-col gap-3",role:"status","aria-label":"Loading quotas",children:[(0,d.jsx)(S.Skeleton,{className:"h-3 w-full"}),(0,d.jsx)(S.Skeleton,{className:"h-3 w-2/3"})]}):f?(0,d.jsxs)("div",{className:"flex flex-col items-center gap-1.5 py-5 text-center",role:"alert",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] text-err","aria-hidden":"true",children:"error"}),(0,d.jsx)("p",{className:"text-xs text-muted",children:f}),(0,d.jsx)("button",{type:"button",onClick:()=>o(a.id,a.provider),className:"min-h-10 rounded-lg border border-line bg-raised px-3 text-xs font-semibold text-text hover:bg-line/60 focus-visible:shadow-focus",children:"Retry refresh"})]}):g?(0,d.jsx)("p",{className:"py-5 text-center text-xs text-muted",children:g}):0===b.length?(0,d.jsx)("p",{className:"py-5 text-center text-xs text-muted",children:"No quota data available."}):(0,d.jsxs)(d.Fragment,{children:[n&&(0,d.jsx)("span",{className:"self-start rounded-md border border-line bg-raised px-2 py-1 text-[10px] text-muted",children:"Sorted by account remaining"}),b.map(b=>(0,d.jsx)(V,{quota:b,compact:!0,onHide:z?b=>z(a.provider,b):void 0},`${b.name}-${b.modelKey||""}-${s(b)}`))]}),c?.length>0&&(0,d.jsxs)("div",{className:"mt-auto flex min-w-0 items-center gap-1 border-t border-line pt-2 text-[10px] text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[14px]","aria-hidden":"true",children:"visibility_off"}),(0,d.jsx)("span",{className:"shrink-0",children:"Hidden:"}),(0,d.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto whitespace-nowrap pb-1",children:c.map(b=>(0,d.jsx)("button",{type:"button",onClick:()=>A(a.provider,b),className:"shrink-0 rounded-md border border-line px-1.5 py-0.5 transition-colors hover:bg-raised hover:text-text focus-visible:shadow-focus",title:"Show this quota row",children:b.name},s(b)))})]})]})]})}V.propTypes={quota:B().shape({name:B().string,used:B().number,total:B().number,remaining:B().number,remainingPercentage:B().number,unlimited:B().bool,isCreditBalance:B().bool,currency:B().string,resetAt:B().string,recurring:B().bool,forecast:B().object}).isRequired,compact:B().bool,onHide:B().func},W.propTypes={connection:B().shape({id:B().string.isRequired,provider:B().string.isRequired,name:B().string,email:B().string,displayName:B().string,isActive:B().bool,authType:B().string}).isRequired,quotas:B().arrayOf(B().object).isRequired,hiddenQuotaRows:B().arrayOf(B().object),loading:B().bool,error:B().string,message:B().string,rowBusy:B().bool,autoPing:B().bool,canAutoPing:B().bool,codexResetCredits:B().number,canResetCodex:B().bool,quotaSortLabel:B().bool,onRefresh:B().func.isRequired,onEdit:B().func.isRequired,onDelete:B().func.isRequired,onToggle:B().func.isRequired,onToggleAutoPing:B().func.isRequired,onResetCodex:B().func.isRequired,onViewCodexCredits:B().func.isRequired,onHideQuota:B().func,onShowQuota:B().func};let X=(0,g.memo)(W);function Y({to:a=null,className:b="",label:c="Next refresh in",countdownId:e}){let[f,h]=(0,g.useState)(()=>Date.now());if(!a)return null;let i=Math.max(0,Math.ceil((a-f)/1e3)),j=Math.ceil(i/60);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:`font-mono text-xs text-muted tabular-nums ${b}`,"aria-hidden":"true",children:[c," ",i,"s"]}),(0,d.jsxs)("span",{id:e,className:"sr-only","aria-live":"off",children:[c," ",j," minute",1===j?"":"s"]})]})}Y.propTypes={to:B().number,className:B().string,label:B().string,countdownId:B().string};var Z=c(9123);let $={claude:"claudeAutoPing",codex:"codexAutoPing"},_={"Content-Type":"application/json"};async function aa(a,b){if(a.ok)return a;let c=await a.json().catch(()=>({})),d=c.message||c.error||c.code||a.statusText||b;throw Error(`HTTP ${a.status}: ${d}`)}function ab(a){return b=>{let c={...b};return delete c[a],c}}var ac=c(26584),ad=c(73655),ae=c(85158),af=c(95145),ag=c(94248);function ah(a){if(!a)return"N/A";let b=new Date(a);return Number.isFinite(b.getTime())?b.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"}):"N/A"}function ai({state:a,onClose:b}){return(0,d.jsx)(af.default,{isOpen:!!a,onClose:b,title:"Codex reset credit expiry",description:a?j(a.connection)||"Codex account":void 0,size:"xl",children:a?.loading?(0,d.jsx)("p",{role:"status",className:"py-10 text-center text-sm text-muted",children:"Loading reset credits..."}):a?.error?(0,d.jsx)("p",{role:"alert",className:"rounded-xl border border-err bg-err-bg px-3 py-2 text-sm text-err",children:a.error}):a?.data?.credits?.length?(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between rounded-xl border border-line bg-raised px-3 py-2 text-xs text-muted",children:[(0,d.jsxs)("span",{children:[a.data.credits.length," reset credit",1===a.data.credits.length?"":"s"]}),(0,d.jsxs)("span",{children:[a.data.availableCount??0," available"]})]}),(0,d.jsx)("div",{className:"overflow-x-auto rounded-xl border border-line",children:(0,d.jsxs)("table",{className:"w-full min-w-[560px] text-start text-sm",children:[(0,d.jsx)("thead",{className:"bg-raised text-xs uppercase tracking-wide text-muted",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Status"}),(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Granted at"}),(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Expires at"}),(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Remaining"})]})}),(0,d.jsx)("tbody",{children:a.data.credits.map((a,b)=>(0,d.jsxs)("tr",{className:"border-t border-line",children:[(0,d.jsx)("td",{className:"px-3 py-2",children:(0,d.jsx)("span",{className:"rounded-full bg-coral-bg px-2 py-0.5 text-xs font-medium text-coral-ink",children:a.status||"unknown"})}),(0,d.jsx)("td",{className:"px-3 py-2 text-muted",children:ah(a.grantedAt)}),(0,d.jsx)("td",{className:"px-3 py-2 text-text",children:ah(a.expiresAt)}),(0,d.jsx)("td",{className:"px-3 py-2 font-medium text-text",children:function(a){if(!a)return"N/A";let b=new Date(a).getTime()-Date.now();if(!Number.isFinite(b))return"N/A";if(b<=0)return"Expired";let c=Math.ceil(b/36e5),d=Math.floor(c/24),e=c%24;return d>0?`${d}d ${e}h`:`${e}h`}(a.expiresAt)})]},`${a.status}-${a.expiresAt||b}`))})]})})]}):a?(0,d.jsx)("p",{className:"rounded-xl border border-line bg-raised px-3 py-8 text-center text-sm text-muted",children:"No reset credit details returned for this account."}):null})}function aj(a){let b=a?.raw?.resetCredits?.availableCount,c="number"==typeof b?b:Number(b);return Number.isFinite(c)?Math.max(0,c):0}function ak(){let[a,b]=(0,g.useState)("all"),[c,i]=(0,g.useState)("all"),[p,r]=(0,g.useState)("default"),[x,A]=(0,g.useState)(!1),[B,C]=(0,g.useState)(1),[D,E]=(0,g.useState)(20);(0,e.useRouter)();let F=(0,e.useSearchParams)();(0,g.useRef)(!1);let G=(0,g.useId)(),H=(0,f.i)(),{connections:J,quotaData:L,loading:M,errors:N,connectionsError:O,autoRefresh:Q,setAutoRefresh:S,refreshingAll:T,nextRefreshAt:U,connectionsLoading:V,initialQuotaLoaded:W,pagination:ah,totals:ak,providerOptions:al,fetchConnections:am,fetchQuota:an,invalidateQuota:ao,refreshProvider:ap,refreshAll:aq,retryLoad:ar,setQuotaData:as,setLoading:at,setErrors:au}=function({page:a,setPage:b,pageSize:c,accountFilter:d,providerFilter:e,notify:f}){let[i,j]=(0,g.useState)([]),[k,n]=(0,g.useState)({}),[p,r]=(0,g.useState)({}),[s,t]=(0,g.useState)({}),[u,v]=(0,g.useState)(null),[w,x]=(0,g.useState)(!0),[y,z]=(0,g.useState)(!1),[A,B]=(0,g.useState)(!1),[C,D]=(0,g.useState)(null),[E,F]=(0,g.useState)(!0),[G,H]=(0,g.useState)(!1),[I,J]=(0,g.useState)([]),[K,L]=(0,g.useState)({page:1,pageSize:c,total:0,totalPages:1}),[M,N]=(0,g.useState)({eligibleConnections:0,providerFilteredConnections:0}),O=(0,g.useRef)(null),P=(0,g.useRef)(!1),Q=(0,g.useRef)(0),R=(0,g.useRef)(0),S=(0,g.useRef)(new Map),T=(0,g.useRef)({page:a,pageSize:c,accountFilter:d,providerFilter:e}),U=T.current;(U.page!==a||U.pageSize!==c||U.accountFilter!==d||U.providerFilter!==e)&&(T.current={page:a,pageSize:c,accountFilter:d,providerFilter:e});let V=(0,g.useCallback)(a=>{let b=S.current;b.set(a,(b.get(a)||0)+1)},[]),W=(0,g.useCallback)(a=>{let b=new Set(a.map(a=>a.id));for(let a of S.current.keys())b.has(a)||V(a);r(b=>m(b,a)),t(b=>m(b,a)),n(b=>m(b,a))},[V]),X=(0,g.useRef)(null),Y=(0,g.useRef)(f);Y.current=f;let Z=(0,g.useRef)(b);Z.current=b,(0,g.useCallback)(()=>{O.current&&(clearInterval(O.current),O.current=null)},[]);let $=(0,g.useCallback)(async(b=a)=>{let f=R.current+1;R.current=f;try{var g;let a=new URLSearchParams({page:String(b),pageSize:String(c),accountStatus:d,sort:"priority"});"all"!==e&&a.set("provider",e);let h=await fetch(`/api/providers/client?${a.toString()}`);if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(`HTTP ${h.status}: ${a.error||h.statusText}`)}let i=await h.json();if(f!==R.current)return null;let k=i.connections||[],l=(g=i.pagination,g||{page:1,pageSize:c,total:0,totalPages:1}),m=function(a,b=0){return a||{eligibleConnections:b,providerFilteredConnections:b}}(i.totals,k.length);return j(k),v(null),J(i.providerOptions||[]),L(l),l.page!==b&&Z.current?.(l.page),N(m),k}catch(a){if(f!==R.current)return null;throw console.error("Error fetching connections:",a),j([]),v(a.message||"Failed to fetch connections"),J([]),L({page:1,pageSize:c,total:0,totalPages:1}),N({eligibleConnections:0,providerFilteredConnections:0}),a}},[d,a,c,e]),_=(0,g.useCallback)(async(a,b,{force:c=!1}={})=>{let d=T.current;V(a);let e=S.current.get(a),f=()=>T.current===d&&S.current.get(a)===e;r(b=>({...b,[a]:!0})),t(b=>({...b,[a]:null}));try{let d=`/api/usage/${a}${c?"?force=1":""}`,e=await fetch(d);if(!e.ok){let b=(await e.json().catch(()=>({}))).error||e.statusText;if(401===e.status&&f()){let c={quotas:[],message:b};n(b=>({...b,[a]:c}))}throw Error(`HTTP ${e.status}: ${b}`)}let g=await e.json(),i={quotas:function(a,b){if(!Array.isArray(a))return[];let c=b&&"object"==typeof b&&!Array.isArray(b)?b:null;return a.map(a=>{if(!a||"object"!=typeof a)return a;if(!0===a.unlimited||!0===a.isCreditBalance)return{...a,forecast:null};let b=a.quotaType??a.modelKey??a.name,d=c&&"string"==typeof b&&b?c[b]??null:null;return{...a,forecast:d}})}(function(a,b){if(!b||"object"!=typeof b)return[];let c=[];try{switch(a.toLowerCase()){case"github":default:b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"antigravity":if(b.quotas){let a=Object.entries(b.quotas),d=new Set(["gemini_weekly","claude_gpt_weekly"]),e=a.filter(([a])=>a.startsWith("gemini-")&&!a.includes("image")),f=a.filter(([a])=>a.startsWith("claude-")),g=a.filter(([a])=>a.includes("image")),h=a.filter(([a])=>d.has(a)),i=a.filter(([a])=>!a.startsWith("gemini-")&&!a.startsWith("claude-")&&!a.includes("image")&&!d.has(a));if(e.length>0){let a=e.reduce((a,b)=>(b[1].remainingPercentage??100)<(a[1].remainingPercentage??100)?b:a)[1];c.push({name:"Gemini (Flash / Pro)",modelKey:"gemini",used:a.used||0,total:a.total||0,resetAt:a.resetAt||null,remainingPercentage:a.remainingPercentage})}if(f.length>0){let a=f.reduce((a,b)=>(b[1].remainingPercentage??100)<(a[1].remainingPercentage??100)?b:a)[1];c.push({name:"Claude (Sonnet / Opus)",modelKey:"claude",used:a.used||0,total:a.total||0,resetAt:a.resetAt||null,remainingPercentage:a.remainingPercentage})}h.forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})}),g.forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})}),i.forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})})}break;case"codex":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{let d=a;"spark_session"===a?d="Spark (5h)":"spark_weekly"===a?d="Spark (Weekly)":"session"===a?d=b.windowMinutes>=6e3?"Weekly":"5h":"weekly"===a?d="Weekly":"review_session"===a?d="Review (5h)":"review_weekly"===a&&(d="Review (Weekly)"),c.push({name:d,quotaType:a,used:b.used||0,total:b.total||0,remaining:b.remaining,resetAt:b.resetAt||null})});break;case"kiro":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"qoder":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{("organization"!==a||b&&0!==(Number(b.total)||0))&&c.push({name:"user"===a?"Personal":"organization"===a?"Organization":a,used:b.used||0,total:b.total||0,unit:b.unit,resetAt:b.resetAt||null})});break;case"claude":b.message?c.push({name:"error",used:0,total:0,resetAt:null,message:b.message}):b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,remaining:void 0!==b.remaining?b.remaining:Math.max(0,(b.total||100)-(b.used||0)),remainingPercentage:void 0!==b.remainingPercentage?b.remainingPercentage:q(b.used,b.total),resetAt:b.resetAt||null})});break;case"vercel-ai-gateway":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"codebuddy-cn":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,recurring:!1!==b.recurring})});break;case"grok-cli":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"kimi":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"deepseek":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage,isCreditBalance:b.isCreditBalance??!0,currency:b.currency||(a.includes("(")?a.slice(a.indexOf("(")+1,a.indexOf(")")):"USD")})});break;case"groq":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"ollama":case"cursor":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"zed":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage,unlimited:b.unlimited})})}}catch(b){return console.error(`Error parsing quota data for ${a}:`,b),[]}if(a?.toLowerCase()==="claude"){let a={"session (5h)":0,"weekly (7d)":1,"weekly fable (7d)":2,"weekly opus (7d)":3,"weekly sonnet (7d)":4};return c.sort((b,c)=>(a[b.name]??99)-(a[c.name]??99)),c}let d=(0,h.KC)(a);if(d.length>0){let a=new Map(d.map((a,b)=>[a.id,b]));c.sort((b,c)=>{let d=b.modelKey||b.name,e=c.modelKey||c.name;return"gemini"===d&&(d="gemini-3.8-flash-high"),"claude"===d&&(d="claude-sonnet-4-6"),"gemini"===e&&(e="gemini-3.8-flash-high"),"claude"===e&&(e="claude-sonnet-4-6"),(a.get(d)??999)-(a.get(e)??999)})}return c}(b,g),g.forecasts),plan:g.plan||null,message:g.message||null,raw:g};if(!f())return null;return n(b=>({...b,[a]:i})),o(a,i),!0}catch(c){if(!f())return null;return console.error(`[Quota] Error fetching quota for ${b} (${a}):`,c),t(b=>({...b,[a]:c.message||"Failed to fetch quota"})),!1}finally{f()&&r(b=>({...b,[a]:!1}))}},[V]),aa=(0,g.useCallback)(async(a,b)=>{await _(a,b,{force:!0})},[_]),ab=(0,g.useCallback)(async(b=!1)=>{if(P.current)return;P.current=!0,B(!0),Q.current+=1;let c=Q.current,d=Math.round(10);try{let e=await $(a);if(!e)return;let f=e.filter(a=>b||"claude"!==a.provider||c%d==0);r(l(f)),W(e);let g=(await Promise.all(f.map(a=>_(a.id,a.provider,{force:b})))).filter(a=>!1===a).length,h={total:f.length,failed:g};return g>0&&Y.current?.error(`Quota refresh finished with ${g} of ${f.length} account${f.length>1?"s":""} failing.`,{action:{label:"Retry",onSelect:()=>ab(!0)}}),h}catch(a){console.error("Error refreshing quota:",a),Y.current?.error(`Quota refresh failed: ${a.message||"Failed to fetch connections"}`,{action:{label:"Retry",onSelect:()=>ab(!0)}});return}finally{P.current=!1,B(!1)}},[$,_,a,W]);X.current=ab;let ac=(0,g.useCallback)(async()=>{try{let b=await $(a);if(!b)return;r(l(b)),W(b),await Promise.all(b.map(a=>_(a.id,a.provider)))}catch{}},[$,_,a,W]);return{connections:i,quotaData:k,loading:p,errors:s,connectionsError:u,autoRefresh:w,setAutoRefresh:x,refreshingAll:A,nextRefreshAt:C,connectionsLoading:E,initialQuotaLoaded:G,pagination:K,totals:M,providerOptions:I,fetchConnections:$,fetchQuota:_,invalidateQuota:V,refreshProvider:aa,refreshAll:ab,retryLoad:ac,setQuotaData:n,setLoading:r,setErrors:t}}({page:B,setPage:C,pageSize:D,accountFilter:c,providerFilter:a,notify:H}),{deletingId:av,togglingId:aw,resettingLimitId:ax,resetConfirmState:ay,setResetConfirmState:az,resetCreditsState:aA,setResetCreditsState:aB,deleteConfirmState:aC,setDeleteConfirmState:aD,deleteError:aE,clearDeleteError:aF,bulkConfirmState:aG,setBulkConfirmState:aH,showEditModal:aI,setShowEditModal:aJ,selectedConnection:aK,setSelectedConnection:aL,proxyPools:aM,autoPingMaps:aN,quotaVisibility:aO,bulkToggling:aP,bulkSetActive:aQ,handleDeleteConnection:aR,handleToggleConnectionActive:aS,handleUpdateConnection:aT,toggleAutoPing:aU,handleResetCodexLimit:aV,handleViewCodexResetCredits:aW,handleHideQuota:aX,handleShowQuota:aY}=function({fetchConnections:a,fetchQuota:b,invalidateQuota:c,retryLoad:d,page:e,setQuotaData:f,setLoading:h,setErrors:i,notify:j}){let[k,l]=(0,g.useState)(null),[m,o]=(0,g.useState)(null),[p,q]=(0,g.useState)(null),[r,t]=(0,g.useState)(null),[u,v]=(0,g.useState)(null),[w,x]=(0,g.useState)(null),[y,z]=(0,g.useState)(null),A=(0,g.useCallback)(()=>z(null),[]),[B,C]=(0,g.useState)(null),[D,E]=(0,g.useState)(!1),[F,G]=(0,g.useState)(null),[H,I]=(0,g.useState)([]),[J,K]=(0,g.useState)({claude:{},codex:{}}),[L,M]=(0,g.useState)({}),[N,O]=(0,g.useState)(!1),P=(0,g.useRef)(j);P.current=j;let Q=(0,g.useCallback)((a,b)=>{P.current?.error(a,{action:{label:"Retry",onSelect:()=>{Promise.resolve().then(b).catch(()=>{})}}})},[]),R=(0,g.useCallback)(async b=>{try{await n(a,e),(0,Z.q0)()}catch(a){console.error(`Error refreshing after ${b}:`,a),Q(`${b} saved, but the list refresh failed: ${a.message}`,d)}},[Q,a,e,d]),S=(0,g.useCallback)(async()=>{try{let a=await fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),b=await (await aa(a,"Failed to load proxy pools")).json();b?.proxyPools&&I(b.proxyPools)}catch(a){Q(`Proxy pools failed to load: ${a.message}`,S)}},[Q]),T=(0,g.useCallback)(async()=>{try{let a=await fetch("/api/settings",{cache:"no-store"}),b=await (await aa(a,"Failed to load settings")).json();K({claude:b?.claudeAutoPing?.connections||{},codex:b?.codexAutoPing?.connections||{}}),M(b?.quotaVisibility||{})}catch(a){Q(`Quota settings failed to load: ${a.message}`,T)}},[Q]),U=(0,g.useCallback)(async(a,b)=>{if(a.length&&!N){O(!0);try{let c=(await Promise.allSettled(a.map(a=>fetch(`/api/providers/${a}`,{method:"PUT",headers:_,body:JSON.stringify({isActive:b})})))).filter(a=>"fulfilled"===a.status&&a.value.ok).length;if(c>0&&await R("Bulk update"),c!==a.length){let d=Error(`Failed to update ${a.length-c} of ${a.length} connection${a.length>1?"s":""}`);throw console.error("Error bulk toggling connections:",d),Q(`Bulk update failed: ${d.message}`,()=>U(a,b)),d}}finally{O(!1)}}},[N,Q,R]),V=(0,g.useCallback)(async a=>{l(a),z(null);try{try{await aa(await fetch(`/api/providers/${a}`,{method:"DELETE"}),"Failed to delete connection")}catch(b){throw console.error("Error deleting connection:",b),z(b.message),Q(`Delete failed: ${b.message}`,()=>V(a)),b}c(a),f(ab(a)),h(ab(a)),i(ab(a)),x(null),await R("Delete")}finally{l(null)}},[Q,c,R,i,h,f]),W=(0,g.useCallback)(async(a,b)=>{o(a);try{let c=await fetch(`/api/providers/${a}`,{method:"PUT",headers:_,body:JSON.stringify({isActive:b})});await aa(c,"Failed to update connection")}catch(c){console.error("Error updating connection status:",c),Q(`Failed to ${b?"enable":"disable"} connection: ${c.message}`,()=>W(a,b)),o(null);return}await R("Connection status"),o(null)},[Q,R]),X=(0,g.useCallback)(async a=>{if(!F?.id)return"No connection selected";let{id:c,provider:d}=F;try{let b=await fetch(`/api/providers/${c}`,{method:"PUT",headers:_,body:JSON.stringify(a)});await aa(b,"Failed to save connection")}catch(a){return console.error("Error saving connection:",a),P.current?.error(`Save failed: ${a.message}`),a.message}return E(!1),G(null),await R("Connection"),await b(c,d),null},[F,b,R]),Y=(0,g.useCallback)(async(a,b,c)=>{let d=$[b];if(!d)return;let e={...J[b]||{},[a]:c};K({...J,[b]:e});try{let a=await fetch("/api/settings",{cache:"no-store"}),b=await (await aa(a,"Failed to read settings")).json(),c={...b?.[d]||{},connections:e},f=await fetch("/api/settings",{method:"PATCH",headers:_,body:JSON.stringify({[d]:c})});await aa(f,"Failed to save auto-ping")}catch(d){console.error("Error toggling auto-ping:",d),K(J),Q(`Auto-ping ${c?"enable":"disable"} failed: ${d.message}`,()=>Y(a,b,c))}},[J,Q]),ac=(0,g.useCallback)(async(a,c)=>{if("codex"===c&&!p){q(a),i(b=>({...b,[a]:null}));try{try{let b=await fetch(`/api/usage/${a}/codex-reset-credits`,{method:"POST"});await aa(b,"Failed to reset Codex limit")}catch(b){throw console.error("Error resetting Codex limit:",b),i(c=>({...c,[a]:b.message})),Q(`Codex reset failed: ${b.message}`,()=>ac(a,c)),b}t(null),await b(a,c)}finally{q(null)}}},[Q,b,p,i]),ad=(0,g.useCallback)(async a=>{v({connection:a,loading:!0,error:null,data:null});try{let b=await fetch(`/api/usage/${a.id}/codex-reset-credits`,{cache:"no-store"}),c=await (await aa(b,"Failed to load Codex reset credits")).json(),d=Array.isArray(c.credits)?[...c.credits]:[],e=a=>a.expiresAt?new Date(a.expiresAt).getTime():1/0;d.sort((a,b)=>e(a)-e(b)),v({connection:a,loading:!1,error:null,data:{...c,credits:d}})}catch(b){v({connection:a,loading:!1,error:b.message,data:null})}},[]),ae=(0,g.useCallback)(async(a,b)=>{M(a);try{let b=await fetch("/api/settings",{method:"PATCH",headers:_,body:JSON.stringify({quotaVisibility:a})});await aa(b,"Failed to update quota visibility")}catch(c){console.error("Error updating quota visibility:",c),M(b),Q(`Visibility update failed: ${c.message}`,()=>ae(a,b))}},[Q]),af=(0,g.useCallback)((a,b,c)=>{let d=s(b);if(!a||!d)return;let e=L[a]||{},f=new Set(e.hidden||[]);c?f.add(d):f.delete(d),ae({...L,[a]:{...e,hidden:[...f]}},L)},[L,ae]);return{deletingId:k,togglingId:m,resettingLimitId:p,resetConfirmState:r,setResetConfirmState:t,resetCreditsState:u,setResetCreditsState:v,deleteConfirmState:w,setDeleteConfirmState:x,deleteError:y,clearDeleteError:A,bulkConfirmState:B,setBulkConfirmState:C,showEditModal:D,setShowEditModal:E,selectedConnection:F,setSelectedConnection:G,proxyPools:H,autoPingMaps:J,quotaVisibility:L,bulkToggling:N,bulkSetActive:U,handleDeleteConnection:V,handleToggleConnectionActive:W,handleUpdateConnection:X,toggleAutoPing:Y,handleResetCodexLimit:ac,handleViewCodexResetCredits:ad,handleHideQuota:(0,g.useCallback)((a,b)=>af(a,b,!0),[af]),handleShowQuota:(0,g.useCallback)((a,b)=>af(a,b,!1),[af])}}({fetchConnections:am,fetchQuota:an,invalidateQuota:ao,retryLoad:ar,page:B,setQuotaData:as,setLoading:at,setErrors:au,notify:H}),aZ=(0,g.useCallback)(a=>{aL(a),aJ(!0)},[aL,aJ]),a$=(0,g.useCallback)(a=>{aF(),aD(J.find(b=>b.id===a)||{id:a})},[aF,J,aD]),a_=(0,g.useCallback)(a=>{az({connection:a,count:aj(L[a.id])})},[L,az]);F?.get("refresh");let a0=(0,g.useMemo)(()=>(function(a,b,c,d,e){if("codex"===d&&"default"!==e)return[...a].sort((a,c)=>{let d=k(a,b),f=k(c,b),g="remaining-asc"===e?d-f:f-d;return 0!==g?g:(j(a)||"").localeCompare(j(c)||"")});if(!c){let b=new Map;for(let c of a){let a=c.provider||"";b.has(a)||b.set(a,[]),b.get(a).push(c)}return Array.from(b.values()).flat()}let f=a=>{let c=(b[a.id]?.quotas||[]).map(a=>a.resetAt?new Date(a.resetAt).getTime():1/0).filter(a=>Number.isFinite(a));return c.length>0?Math.min(...c):1/0};return[...a].sort((a,b)=>{let c=f(a)-f(b);return 0!==c?c:(a.provider||"").localeCompare(b.provider||"")||(j(a)||"").localeCompare(j(b)||"")})})(J,L,x,a,p),[J,L,x,a,p]),a1=(0,g.useMemo)(()=>{var a=a0.map(a=>({id:a.id,quotas:L[a.id]?.quotas||[]}));let b={healthy:0,low:0,empty:0,total:0};for(let c of a||[]){let a=w(c?.quotas);null!==a&&(b[v(a)]+=1,b.total+=1)}return b},[a0,L]),a2=(0,g.useMemo)(()=>(function(a,b,c=Date.now()){let d=null;for(let e of a||[]){let a=function(a,b=Date.now()){if(!Array.isArray(a))return null;let c=null;for(let d of a){if(!d?.resetAt)continue;let a=new Date(d.resetAt).getTime();Number.isFinite(a)&&!(a<=b)&&(null===c||a<new Date(c).getTime())&&(c=d.resetAt)}return c}(b?.[e?.id]?.quotas,c);a&&(!d||new Date(a).getTime()<new Date(d.resetAt).getTime())&&(d={connectionId:e.id,label:e.label||e.name||e.id,resetAt:a})}return d})(a0.map(a=>({id:a.id,label:j(a)||a.provider})),L),[a0,L]),a3=(0,g.useMemo)(()=>(function(a,b){let c=[];for(let d of a||[]){let a=b?.[d?.id]?.quotas;if(!Array.isArray(a))continue;let e=j(d)||d?.provider||d?.id;for(let b of a)!0!==b.unlimited&&!0!==b.isCreditBalance&&z.has(b?.forecast?.state)&&c.push({label:`${e} \xb7 ${b.name}`,forecast:b.forecast})}return{best:(0,u.fz)(c),hasForecasts:c.length>0}})(a0,L),[a0,L]),a4=(0,g.useMemo)(()=>y(a0,L,"off"),[a0,L]),a5=(0,g.useMemo)(()=>y(a0,L,"on"),[a0,L]),a6=ak.eligibleConnections>0,a7=a0.length>0,a8=(0,g.useCallback)(c=>{a!==c&&C(1),b(c)},[a]),a9=(0,g.useCallback)(a=>{c!==a&&C(1),i(a)},[c]);return(0,d.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"quota-page",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-3",children:[(0,d.jsxs)("div",{className:"inline-flex h-11 items-center gap-2 rounded-xl border border-line bg-raised px-3 text-sm text-text",children:[(0,d.jsx)("span",{className:"font-medium",children:"Auto-refresh"}),Q&&(0,d.jsx)(Y,{to:U,label:"Next refresh in",countdownId:G}),(0,d.jsx)(R.default,{size:"sm",checked:Q,onChange:S,"aria-label":"Toggle auto-refresh","aria-describedby":Q&&U?G:void 0})]}),(0,d.jsx)(K.default,{variant:"secondary",icon:"refresh",loading:T,onClick:()=>aq(!0),title:"Refresh all quotas",children:"Refresh all"})]}),(0,d.jsx)(I,{summary:a1,nextReset:a2,loading:V,forecast:a3.best,hasForecasts:a3.hasForecasts}),(0,d.jsx)(P,{providerFilter:a,onProviderChange:a8,providerOptions:al,accountFilter:c,onAccountFilterChange:a9,quotaSortMode:p,onQuotaSortModeChange:r,expiringFirst:x,onToggleExpiringFirst:()=>A(a=>!a),onTurnOffEmpty:()=>{0!==a4.length&&aH({action:"off",ids:a4,title:"Turn off empty accounts?",message:`This will disable ${a4.length} account${a4.length>1?"s":""} on this page that have depleted quota.`})},onTurnOnAvailable:()=>{aQ(a5,!0).catch(()=>{})},bulkBusy:aP,emptyCount:a4.length,availableCount:a5.length}),x&&(0,d.jsx)("div",{role:"status",className:"rounded-xl border border-warn/30 bg-warn-bg px-4 py-2.5 text-xs text-warn",children:"Expiring-first currently reorders accounts inside the current page. Cross-page ordering still follows backend pagination."}),!V&&O?(0,d.jsx)(ad.ErrorState,{message:O,onRetry:ar,title:"Could not load connections"}):V||a6?V||a7?(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-5",children:a0.map(a=>{let b=L[a.id],c=b?.quotas||[],e=function(a,b=[],c={}){if(!Array.isArray(b)||0===b.length)return[];let d=t(a,c,b);return 0===d.size?b:b.filter(a=>!d.has(s(a)))}(a.provider,c,aO),f=function(a,b=[],c={}){if(!Array.isArray(b)||0===b.length)return[];let d=t(a,c,b);return 0===d.size?[]:b.filter(a=>d.has(s(a)))}(a.provider,c,aO),g="codex"===a.provider,h=aj(b),i=ax===a.id,j=av===a.id||aw===a.id||i;return(0,d.jsx)(X,{connection:a,quotas:e,hiddenQuotaRows:f,loading:M[a.id],error:N[a.id],message:b?.message,rowBusy:j,autoPing:aN[a.provider]?.[a.id]===!0,canAutoPing:!!($[a.provider]&&"oauth"===a.authType),codexResetCredits:h,canResetCodex:g&&h>0,quotaSortLabel:g&&"default"!==p,onRefresh:ap,onEdit:aZ,onDelete:a$,onToggle:aS,onToggleAutoPing:aU,onResetCodex:a_,onViewCodexCredits:aW,onHideQuota:aX,onShowQuota:aY},a.id)})}):(0,d.jsx)(ac.default,{icon:"filter_alt_off",title:"No accounts match current filters",body:"all"===a?"Try changing the account status filter to see more accounts.":`No matching accounts found for ${a}. Try selecting All providers.`,action:(0,d.jsx)(K.default,{variant:"secondary",onClick:()=>{b("all"),i("all"),C(1)},children:"Reset filters"})}):(0,d.jsx)(ac.default,{icon:"cloud_off",title:"No providers connected",body:"Connect to providers with OAuth or API keys to track your quota limits and runway.",action:(0,d.jsx)(K.default,{href:"/dashboard/providers",variant:"primary",icon:"dns",children:"Go to Providers"})}),ah.total>D&&(0,d.jsx)(ae.A,{currentPage:ah.page,pageSize:D,totalItems:ah.total,onPageChange:C,onPageSizeChange:a=>{C(1),E(a)}}),(0,d.jsx)(af.ConfirmDialog,{isOpen:!!aC,onClose:()=>{av||(aD(null),aF())},onConfirm:async()=>{aC?.id&&await aR(aC.id)},title:"Delete connection?",message:`Delete ${j(aC||{})||"this connection"}? This cannot be undone.`,confirmText:"Delete",variant:"danger",loading:!!av,error:aE}),(0,d.jsx)(af.ConfirmDialog,{isOpen:!!aG,onClose:()=>aH(null),onConfirm:async()=>{aG?.ids?.length&&(await aQ(aG.ids,!1),aH(null))},title:aG?.title||"Turn off empty accounts?",message:aG?.message,confirmText:"Turn off empty",variant:"danger",loading:aP}),(0,d.jsx)(af.ConfirmDialog,{isOpen:!!ay,onClose:()=>{ax||az(null)},onConfirm:async()=>{let a=ay?.connection;a&&await aV(a.id,a.provider)},title:"Reset Codex limit?",message:`Use 1 Codex reset credit for ${j(ay?.connection||{})||"this account"}. This cannot be undone. Remaining credits: ${ay?.count??0}.`,confirmText:"Reset limit",variant:"danger",loading:!!ax}),(0,d.jsx)(ai,{state:aA,onClose:()=>aB(null)}),(0,d.jsx)(ag.default,{isOpen:aI,connection:aK,proxyPools:aM,onSave:aT,onClose:()=>{aJ(!1),aL(null)}})]})}ai.propTypes={state:B().shape({connection:B().object,loading:B().bool,error:B().string,data:B().shape({credits:B().array,availableCount:B().number})}),onClose:B().func.isRequired}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46193:a=>{"use strict";a.exports=require("node:string_decoder")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},50119:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/quota/QuotaPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/quota/QuotaPageClient.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65365:(a,b,c)=>{"use strict";c.d(b,{default:()=>k,p:()=>j});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(71404);c(28502);var i=c(56615);function j(a,b,c,d){let[f,g]=(0,e.useState)({top:0,left:0,visibility:"hidden"});return f}function k({trigger:a,children:b,open:c,onOpenChange:f,placement:g="bottom","aria-label":l,className:m}){let n=(0,e.useRef)(null),o=(0,e.useRef)(null),{overlayId:p}=(0,i.uf)("signal-popover"),[q,r]=(0,e.useState)(!1),s="boolean"==typeof c,t=s?c:q,u=(0,e.useCallback)(a=>s?f?.(a):r(a),[s,f]),v=j(n,o,t,g),w=(0,e.useCallback)(()=>{let a=o.current?.contains(document.activeElement)??!1;u(!1),a&&n.current?.focus?.()},[u]);if((0,i.s9)({onClose:w,containerRef:o,enabled:t,closeOnOutside:!1}),!(0,e.isValidElement)(a))throw Error("Popover: `trigger` must be a React element");return(0,d.jsxs)(d.Fragment,{children:[(0,e.cloneElement)(a,{ref:n,"aria-haspopup":"dialog","aria-expanded":t,"aria-controls":t?p:void 0,onClick:b=>{a.props.onClick?.(b),b.defaultPrevented||u(!t)}}),t?(0,d.jsx)(i.ZL,{children:(0,d.jsx)("div",{ref:o,id:p,role:"dialog","aria-label":l,style:v,className:(0,h.cn)("signal-overlay-pop fixed z-50 min-w-48 max-w-[min(24rem,calc(100vw-16px))] rounded-xl border border-line bg-panel p-4 text-text shadow-card",m),children:b})}):null]})}k.propTypes={trigger:g().element.isRequired,children:g().node,open:g().bool,onOpenChange:g().func,placement:g().oneOf(["top","bottom","start","end"]),"aria-label":g().string,className:g().string}},69929:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>z,handler:()=>B,routeModule:()=>A});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79409))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79346))),t=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70160))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v=(0,d.p)(()=>Promise.resolve().then(c.bind(c,55880))),w=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),x={children:["",{children:["(dashboard)",{children:["dashboard",{children:["quota",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,16736))),"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/quota/page.js"]}]},{"global-error":[w,"next/dist/client/components/builtin/global-error.js"]},[]]},{error:[s,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/error.js"],loading:[t,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/loading.js"],"global-error":[u,"next/dist/client/components/builtin/global-error.js"],"not-found":[v,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/not-found.js"]},[]]},{layout:[n,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/home/runner/work/tokenhop/tokenhop/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,y=(0,e.H)({tree:x,page:"/(dashboard)/dashboard/quota/page",pathname:"/dashboard/quota",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),z=y.__next_app__,A=y.routeModule,B=y.handler},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},71794:(a,b,c)=>{Promise.resolve().then(c.bind(c,40639)),Promise.resolve().then(c.bind(c,74812))},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79646:a=>{"use strict";a.exports=require("child_process")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,8666,2430,2217,2116,6561,9421,7819,6070,1152,915,7642,4123,4903,1533,6244,6849,1320,2592,6427,4685,1863],()=>b(b.s=69929));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=3826,a.ids=[3826],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},16736:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(5735),e=c(91986),f=c(92082),g=c(50119);function h(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(f.CardSkeleton,{}),children:(0,d.jsx)(g.default,{})})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},22760:(a,b,c)=>{"use strict";c.d(b,{FK:()=>i,fz:()=>j});let d=["will-run-out","tight","on-track","idle"],e={"will-run-out":"err",tight:"warn","on-track":"muted",idle:"muted"},f={"will-run-out":"warning",tight:"hourglass_top","on-track":"check_circle",idle:"bedtime"};function g(a){if(!Number.isFinite(a)||a<0)return null;if(a<6e4)return"<1m";let b=Math.round(a/6e4);if(b<60)return`~${b}m`;let c=Math.round(a/36e5);if(c<24)return`~${c}h`;if(a>=6048e5)return`~${Math.round(a/864e5)}d`;let d=Math.floor(c/24),e=c%24;return 0===e?`~${d}d`:`~${d}d ${e}h`}function h(a){if(null==a)return null;let b="string"==typeof a?Date.parse(a):Number(a);return Number.isFinite(b)?b:null}function i(a,b=Date.now()){var c;if(!a||"unknown"===a.state||!(a.state in e))return null;let{state:d}=a,j=e[d],k=f[d],l="will-run-out"===d||"tight"===d?h(a.emptyAt):null,m=null==l?null:g(l-b),n=h(a.resetAt),o=null==n?null:g(n-b);return{state:d,tone:j,icon:k,emptyIn:m,resetsIn:o,burnRate:null==(c=Number.isFinite(a.burnPctPerHour)?a.burnPctPerHour:null)||!Number.isFinite(c)||c<=.1?"~0%/h":`~${c.toFixed(1)}%/h`,sampleWindow:g(Number(a.sampleSpanMs))??"<1m"}}function j(a){if(!Array.isArray(a))return null;let b=null;for(let c of a){let a=c?.forecast;if(!a)continue;let e=d.indexOf(a.state);if(!(e<0)){if(!b||e<b.rank){b={item:c,rank:e};continue}if(e===b.rank){let d=h(a.emptyAt),f=h(b.item.forecast.emptyAt);null!=d&&(null==f||d<f)&&(b={item:c,rank:e})}}}return b?{label:b.item.label,forecast:b.item.forecast}:null}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30803:(a,b,c)=>{"use strict";c.d(b,{A:()=>k});var d=c(48249),e=c(49885),f=c.n(e),g=c(71404),h=c(22760),i=c(32971);let j={err:"text-err",warn:"text-warn",muted:"text-muted"};function k({forecast:a,showReset:b=!1,className:c}){let e=(0,h.FK)(a);if(!e)return null;let{state:f,tone:l,icon:m,emptyIn:n,resetsIn:o,burnRate:p,sampleWindow:q}=e,r="muted"===l?void 0:"font-medium";return(0,d.jsx)(i.default,{text:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"Burn rate"})," ",(0,d.jsx)("span",{className:"tabular-nums",children:p})," ",(0,d.jsx)("span",{"aria-hidden":"true",children:"\xb7"})," ",(0,d.jsx)("span",{children:"Sample window"})," ",(0,d.jsx)("span",{className:"tabular-nums",children:q})]}),children:(0,d.jsxs)("span",{tabIndex:0,className:(0,g.cn)("-my-3 flex min-w-0 items-center gap-1.5 rounded py-3 text-xs focus-visible:shadow-focus",j[l],c),children:[(0,d.jsx)("span",{"aria-hidden":"true",className:"material-symbols-outlined text-[14px] shrink-0",children:m}),"will-run-out"===f&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:r,children:"At this pace, empty in"})," ",n&&(0,d.jsx)("span",{className:"tabular-nums",children:n})]}),"tight"===f&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:r,children:"Cutting it close, empty in"})," ",n&&(0,d.jsx)("span",{className:"tabular-nums",children:n})]}),"on-track"===f&&(0,d.jsx)("span",{className:r,children:"On track"}),"idle"===f&&(0,d.jsx)("span",{className:r,children:"Idle lately"}),b&&o?(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsx)("span",{"aria-hidden":"true",children:"\xb7"})," ",(0,d.jsx)("span",{children:"resets in"})," ",(0,d.jsx)("span",{className:"tabular-nums",children:o})]}):null]})})}k.propTypes={forecast:f().shape({state:f().string,emptyAt:f().string,resetAt:f().string,burnPctPerHour:f().number,sampleSpanMs:f().number}),showReset:f().bool,className:f().string}},31421:a=>{"use strict";a.exports=require("node:child_process")},32042:(a,b,c)=>{Promise.resolve().then(c.bind(c,50119)),Promise.resolve().then(c.bind(c,92082))},32467:a=>{"use strict";a.exports=require("node:http2")},32971:(a,b,c)=>{"use strict";c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(71404),i=c(28502),j=c(65365),k=c(56615);function l({text:a,children:b,position:c="top",variant:f="neutral",disabled:g=!1,className:m}){let n=(0,e.useRef)(null),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useRef)(null),{overlayId:r}=(0,k.uf)("signal-tooltip"),[s,t]=(0,e.useState)(!1),u=(0,i.eJ)(s,g,a),v=(0,j.p)(n,o,u,c);if((0,e.useCallback)(()=>{(0,i.eJ)(!0,g,a)&&(clearTimeout(q.current),clearTimeout(p.current),p.current=setTimeout(()=>t(!0),150))},[g,a]),(0,e.useCallback)(()=>{clearTimeout(p.current),clearTimeout(q.current),q.current=setTimeout(()=>t(!1),100)},[]),!(0,e.isValidElement)(b))throw Error("Tooltip: `children` must be a React element");let w="string"==typeof b.type,x=w&&!["button","a","input","select","textarea"].includes(b.type)&&void 0===b.props.tabIndex,y=(0,e.cloneElement)(b,{"aria-describedby":u?r:b.props["aria-describedby"],tabIndex:w&&x?0:b.props.tabIndex});return(0,d.jsxs)("span",{ref:n,className:"inline-flex",children:[y,u?(0,d.jsx)(k.ZL,{children:(0,d.jsx)("div",{ref:o,id:r,role:"tooltip",style:v,className:(0,h.cn)("signal-overlay-tip pointer-events-none fixed z-50 w-max max-w-56 whitespace-normal rounded-lg px-2 py-1 text-[11px] leading-snug",(0,i.lH)(f),m),children:a})}):null]})}l.propTypes={text:g().node,children:g().element.isRequired,position:g().oneOf(["top","bottom","start","end","left","right"]),variant:g().oneOf(Object.keys(i.h1)),disabled:g().bool,className:g().string}},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},40639:(a,b,c)=>{"use strict";c.d(b,{default:()=>ak});var d=c(48249),e=c(19099),f=c(41371),g=c(67484),h=c(66427);let i=[{value:"default",label:"Default quota order"},{value:"remaining-asc",label:"% quota: low to high"},{value:"remaining-desc",label:"% quota: high to low"}];function j(a){return a.name?.trim()||a.email?.trim()||a.displayName?.trim()||null}function k(a,b){let c=b[a.id]?.quotas?.[0];return c&&"number"==typeof c.remaining?c.remaining:1/0}function l(a){let b={};return a.forEach(a=>{b[a.id]=!0}),b}function m(a,b){let c=new Set(b.map(a=>a.id));return Object.fromEntries(Object.entries(a).filter(([a])=>c.has(a)))}async function n(a,b){return await a(b)}function o(a,b){}function p(a){if(!a)return"-";try{let b="string"==typeof a?new Date(a):a,c=new Date,d=b-c;if(d<=0)return"-";let e=Math.ceil(d/6e4);if(e<60)return`${e}m`;let f=Math.floor(e/60),g=e%60;if(f<24)return`${f}h ${g}m`;let h=Math.floor(f/24);return`${h}d ${f%24}h ${g}m`}catch(a){return"-"}}function q(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function r(a){return a?.remaining!==void 0?Math.max(0,Math.round(a.remaining)):a?.remainingPercentage!==void 0?Math.round(a.remainingPercentage):q(a?.used,a?.total)}function s(a){return a&&"object"==typeof a?String(a.modelKey||a.name||"").trim():""}function t(a,b,c=[]){let d=b?.[a]?.hidden;return Array.isArray(d)&&0!==d.length?new Set((c.length>0?function(a=[],b=[]){if(!Array.isArray(a)||0===a.length)return[];let c=new Set(b.map(s).filter(Boolean));return[...new Set(a.map(a=>String(a).trim()).filter(a=>c.has(a)))]}(d,c):d).map(String)):new Set}var u=c(22760);function v(a){if("number"!=typeof a||!Number.isFinite(a))throw Error(`getHealthBucket: expected a finite number, got ${a}`);let b=Math.min(100,Math.max(0,a));return b<=0?"empty":b<=45?"low":"healthy"}function w(a){if(!Array.isArray(a))return null;let b=null;for(let c of a){if(c?.unlimited===!0||c?.isCreditBalance===!0)continue;let a=r(c);Number.isFinite(a)&&(b=null===b?a:Math.min(b,a))}return b}function x(a){return!!Array.isArray(a)&&0!==a.length&&a.some(a=>a?.unlimited!==!0&&a?.isCreditBalance!==!0&&(a?.remaining!=null||a?.remainingPercentage!=null||a?.total>0)&&5>=r(a))}function y(a,b,c){let d=[];for(let e of a||[]){let a=e?.isActive??!0,f=x(b?.[e?.id]?.quotas);"off"===c&&a&&f&&d.push(e.id),"on"!==c||a||f||d.push(e.id)}return d}let z=new Set(["will-run-out","tight","on-track","idle"]);var A=c(49885),B=c.n(A),C=c(17660),D=c(516),E=c(51175),F=c(65365),G=c(30803);let H=a=>String(Math.round(Number(a)||0));function I({summary:a,nextReset:b,forecast:c,hasForecasts:e=!1,loading:f=!1}){let{healthy:g=0,low:h=0,empty:i=0,total:j=0}=a||{},k=j>0,l=b?.resetAt?p(b.resetAt):null,m=b&&l&&"-"!==l?`Next reset: ${b.label} in ${l}. Empty accounts are skipped automatically.`:"Empty accounts are skipped automatically.",n=c?.forecast?.state;return(0,d.jsx)(C.default,{padding:"none",className:"p-5 lg:p-6","data-testid":"quota-summary-card",role:"region","aria-label":"Quota summary",children:(0,d.jsxs)("div",{className:"flex flex-col gap-5 lg:flex-row lg:items-center lg:gap-8",children:[(0,d.jsxs)("div",{className:"flex items-center gap-6 sm:gap-8",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-muted",children:"Healthy"}),(0,d.jsx)("span",{className:"font-display text-3xl lg:text-4xl font-bold leading-none text-ok tabular-nums",children:f?"-":(0,d.jsx)(D.default,{value:g,format:H})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-muted",children:"Running low"}),(0,d.jsx)("span",{className:"font-display text-3xl lg:text-4xl font-bold leading-none text-warn tabular-nums",children:f?"-":(0,d.jsx)(D.default,{value:h,format:H})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-muted",children:"Empty"}),(0,d.jsx)("span",{className:"font-display text-3xl lg:text-4xl font-bold leading-none text-err tabular-nums",children:f?"-":(0,d.jsx)(D.default,{value:i,format:H})})]})]}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-2",children:[(0,d.jsx)("div",{role:"progressbar","aria-label":"Fleet quota runway","aria-valuemin":0,"aria-valuemax":j||1,"aria-valuenow":g,"aria-valuetext":`${g} healthy, ${h} running low, ${i} empty`,className:"flex h-3.5 w-full gap-1 overflow-hidden rounded-pill bg-raised p-0.5 shadow-[inset_0_0_0_1px_var(--signal-line)]",children:k?(0,d.jsxs)(d.Fragment,{children:[g>0&&(0,d.jsx)("span",{className:"h-full rounded-pill bg-ok transition-all duration-300",style:{flexGrow:g},title:`${g} healthy accounts`}),h>0&&(0,d.jsx)("span",{className:"h-full rounded-pill bg-warn transition-all duration-300",style:{flexGrow:h},title:`${h} running low accounts`}),i>0&&(0,d.jsx)("span",{className:"h-full rounded-pill bg-err transition-all duration-300",style:{flexGrow:i},title:`${i} empty accounts`})]}):(0,d.jsx)("span",{className:"h-full w-full rounded-pill bg-line/60"})}),(0,d.jsx)("p",{className:"text-xs text-muted leading-relaxed",children:m}),(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[!f&&e&&(0,d.jsx)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:"will-run-out"===n||"tight"===n?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"truncate text-xs font-medium text-text",title:c.label,children:c.label}),(0,d.jsx)(G.A,{forecast:c.forecast,showReset:!0})]}):(0,d.jsx)("span",{className:"text-xs text-muted",children:"Every forecast is on track"})}),(0,d.jsxs)(F.default,{placement:"top","aria-label":"How forecasts work",trigger:(0,d.jsx)(E.default,{icon:"info","aria-label":"How forecasts work"}),children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-text",children:"How forecasts work"}),(0,d.jsxs)("div",{className:"mt-2 flex flex-col gap-1.5 text-xs text-muted",children:[(0,d.jsx)("p",{children:"Forecasts use how fast each quota dropped over the last two hours."}),(0,d.jsx)("p",{children:"We need at least 3 readings over 10 minutes. Until then, no forecast is shown."}),(0,d.jsx)("p",{children:"Readings come from quota checks that already run. Nothing extra is sent to providers."})]})]})]})]})]})})}I.propTypes={summary:B().shape({healthy:B().number,low:B().number,empty:B().number,total:B().number}),nextReset:B().shape({connectionId:B().string,label:B().string,resetAt:B().string}),forecast:B().shape({label:B().string,forecast:B().object}),hasForecasts:B().bool,loading:B().bool};var J=c(92592),K=c(99070),L=c(91099),M=c(83035),N=c(31023);let O=[{value:"all",label:"All"},{value:"active",label:"Active"},{value:"inactive",label:"Off"}];function P({providerFilter:a,onProviderChange:b,providerOptions:c=[],accountFilter:e,onAccountFilterChange:f,quotaSortMode:g="default",onQuotaSortModeChange:h,expiringFirst:j,onToggleExpiringFirst:k,onTurnOffEmpty:l,onTurnOnAvailable:m,bulkBusy:n=!1,emptyCount:o=0,availableCount:p=0}){let q=[{value:"all",label:"All providers"},...c.map(a=>({value:a,label:(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,d.jsx)(M.default,{providerId:a,size:"sm"}),J.Q2[a]?.name||a]})}))];return(0,d.jsxs)("nav",{className:"flex flex-wrap items-center gap-3","aria-label":"Quota filters",children:[(0,d.jsx)(L.default,{options:q,value:a,onChange:b,size:"sm","aria-label":"Filter by provider"}),(0,d.jsx)(L.default,{options:O,value:e,onChange:f,size:"sm","aria-label":"Filter accounts by status"}),"codex"===a&&"function"==typeof h&&(0,d.jsx)(N.default,{label:"Sort Codex quotas by remaining",value:g,onChange:a=>h(a.target.value),options:i,className:"min-w-[210px]"}),(0,d.jsxs)("button",{type:"button",onClick:k,"aria-pressed":j,className:`inline-flex h-9 shrink-0 items-center gap-1.5 rounded-lg border px-3 text-xs font-semibold transition-colors duration-150 focus-visible:shadow-focus ${j?"border-warn/40 bg-warn-bg text-warn":"border-line bg-raised text-text hover:bg-line/60"}`,title:"Sort accounts by earliest quota reset time",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"hourglass_top"}),(0,d.jsx)("span",{children:"Expiring first"})]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)(K.default,{variant:"ghost",size:"sm",disabled:n||0===o,onClick:l,title:"Disable connections with depleted quota on the current page",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"block"}),(0,d.jsx)("span",{children:"Turn off empty"}),o>0&&(0,d.jsxs)("span",{className:"font-mono text-[11px] opacity-70",children:["(",o,")"]})]}),(0,d.jsxs)(K.default,{variant:"ghost",size:"sm",disabled:n||0===p,onClick:m,title:"Enable connections that still have quota on the current page",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"check_circle"}),(0,d.jsx)("span",{children:"Turn on available"}),p>0&&(0,d.jsxs)("span",{className:"font-mono text-[11px] opacity-70",children:["(",p,")"]})]})]})]})}P.propTypes={providerFilter:B().string.isRequired,onProviderChange:B().func.isRequired,providerOptions:B().arrayOf(B().string),accountFilter:B().string.isRequired,onAccountFilterChange:B().func.isRequired,quotaSortMode:B().string,onQuotaSortModeChange:B().func,expiringFirst:B().bool.isRequired,onToggleExpiringFirst:B().func.isRequired,onTurnOffEmpty:B().func.isRequired,onTurnOnAvailable:B().func.isRequired,bulkBusy:B().bool,emptyCount:B().number,availableCount:B().number};var Q=c(24279),R=c(95514),S=c(74812),T=c(63069),U=c(65181);function V({quota:a,compact:b=!1,onHide:c}){let e=!0===a.unlimited,f=!0===a.isCreditBalance,g=r(a),h=e?"text-lime-ink dark:text-lime":f?"text-sky":g<=20?"text-err":g<=45?"text-warn":"text-ok",i=Number(a.used||0).toLocaleString(),j=a.total>0?Number(a.total).toLocaleString():"∞",k=e?`${i} used \xb7 Unlimited`:f?`Credit: ${Number(a.total).toFixed(2)} ${a.currency||""}`.trim():`${i} / ${j}`,l=e?"Unlimited":f?"":`${g}%`,m=p(a.resetAt),n=a.resetAt?function(a){if(!a)return null;try{let b,c=new Date(a);if(Number.isNaN(c.getTime()))return null;let d=new Date,e=new Date(d.getFullYear(),d.getMonth(),d.getDate()),f=new Date(e);f.setDate(f.getDate()+1);let g=new Date(f);g.setDate(g.getDate()+1),b=c>=e&&c<f?"Today":c>=f&&c<g?"Tomorrow":c.toLocaleDateString("en-US",{month:"short",day:"numeric"});let h=c.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${b}, ${h}`}catch{return null}}(a.resetAt):null,o=!1!==a.recurring,q="-"!==m?o?`in ${m}`:`expires in ${m}`:null;return(0,d.jsxs)("div",{className:"group flex min-w-0 flex-col gap-1.5","data-testid":"quota-row",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-baseline gap-2 text-[13px]",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-semibold text-text",children:a.name}),(0,d.jsx)("span",{className:`shrink-0 font-semibold tabular-nums ${h}`,children:l||k})]}),!e&&!f&&(0,d.jsx)(U.default,{value:g,kind:e?"unlimited":f?"credits":void 0,label:`${a.name} quota: ${g}% left`,valueText:`${g}% left`}),!e&&!f&&(0,d.jsx)(G.A,{forecast:a.forecast}),(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-muted",title:n||void 0,children:b?q||n||"N/A":(0,d.jsxs)(d.Fragment,{children:[q&&(0,d.jsx)("span",{className:"font-medium text-text",children:q}),q&&n&&" \xb7 ",n&&(0,d.jsx)("span",{children:n}),!q&&!n&&(0,d.jsx)("span",{className:"italic",children:"N/A"})]})}),"function"==typeof c&&(0,d.jsx)("button",{type:"button",onClick:()=>c(a),className:"-my-3 inline-flex size-10 shrink-0 items-center justify-center rounded-lg text-muted transition-[opacity,color,background-color] hover:bg-raised hover:text-text focus-visible:shadow-focus [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:group-hover:opacity-100 focus-visible:opacity-100",title:"Hide this quota row","aria-label":`Hide quota ${a.name}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[15px]","aria-hidden":"true",children:"visibility_off"})})]}),(0,d.jsx)("span",{className:"sr-only",children:k})]})}function W({connection:a,quotas:b,hiddenQuotaRows:c,loading:e,error:f,message:g,rowBusy:h,autoPing:i,canAutoPing:k,codexResetCredits:l,canResetCodex:m,quotaSortLabel:n,onRefresh:o,onEdit:p,onDelete:q,onToggle:r,onToggleAutoPing:t,onResetCodex:u,onViewCodexCredits:y,onHideQuota:z,onShowQuota:A}){let B=J.Q2[a.provider]?.name||a.provider,D=j(a),F=a?a.name?.trim()&&a.email?.trim()&&a.name.trim()!==a.email.trim()?a.email.trim():a.name?.trim()&&a.displayName?.trim()&&a.name.trim()!==a.displayName.trim()?a.displayName.trim():null:null,G=function({isActive:a,quotas:b,error:c,loading:d}={}){let e=w(b);if((a??!0)===!1)return{label:0===e||x(b)?"Turned off \xb7 empty":"Turned off",variant:"neutral"};if(c)return{label:"Error",variant:"err"};if(d&&!b?.length)return{label:"Checking",variant:"neutral"};if(null===e)return b?.length?{label:"Active",variant:"ok"}:{label:"No data",variant:"neutral"};let f=v(e);return"empty"===f?{label:"Empty",variant:"err"}:"low"===f?{label:"Running low",variant:"warn"}:{label:"Active",variant:"ok"}}({isActive:a.isActive,quotas:b,error:f,loading:e});return(0,d.jsxs)(C.default,{padding:"none",className:"flex min-w-0 flex-col p-5","data-testid":"quota-account-card",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(M.default,{providerId:a.provider,status:"ok"===G.variant?"ok":"warn"===G.variant?"warn":"err"===G.variant?"err":"neutral"}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)("span",{className:"truncate text-[15px] font-semibold text-text",children:B}),D&&(0,d.jsx)("span",{className:"truncate text-xs text-muted",children:D}),F&&(0,d.jsx)("span",{className:"truncate text-[11px] text-subtle",children:F})]}),(0,d.jsx)(R.default,{checked:a.isActive??!0,disabled:h,onChange:b=>r(a.id,b),"aria-label":`${!1===a.isActive?"Enable":"Disable"} ${D||B} account`,title:a.isActive??!0?"Disable connection":"Enable connection"})]}),(0,d.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,d.jsx)(Q.default,{variant:G.variant,children:G.label}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)(E.default,{icon:"refresh",label:"Refresh quota",loading:e,disabled:h,onClick:()=>o(a.id,a.provider)}),(0,d.jsxs)(T.default,{trigger:(0,d.jsx)(E.default,{icon:"more_vert",label:`More actions for ${D||B}`,disabled:h}),children:[(0,d.jsx)(T.MenuItem,{icon:"edit",onSelect:()=>p(a),disabled:h,children:"Edit connection"}),"codex"===a.provider&&(0,d.jsxs)(T.MenuItem,{icon:"restart_alt",onSelect:()=>u(a),disabled:!m||e||h,children:["Use reset credit (",l," available)"]}),"codex"===a.provider&&(0,d.jsx)(T.MenuItem,{icon:"schedule",onSelect:()=>y(a),disabled:e||h,children:"View reset credit expiry"}),k&&(0,d.jsx)(T.MenuItem,{icon:"bolt",onSelect:()=>t(a.id,a.provider,!i),disabled:h,title:"Auto-ping keeps OAuth sessions active. Quota refresh runs separately.",children:i?"Disable auto-ping":"Enable auto-ping"}),(0,d.jsx)(T.MenuItem,{icon:"delete",danger:!0,onSelect:()=>q(a.id),disabled:h,children:"Delete connection"})]})]}),(0,d.jsxs)("div",{className:"mt-4 flex min-w-0 flex-1 flex-col gap-4",children:[e?(0,d.jsxs)("div",{className:"flex flex-col gap-3",role:"status","aria-label":"Loading quotas",children:[(0,d.jsx)(S.Skeleton,{className:"h-3 w-full"}),(0,d.jsx)(S.Skeleton,{className:"h-3 w-2/3"})]}):f?(0,d.jsxs)("div",{className:"flex flex-col items-center gap-1.5 py-5 text-center",role:"alert",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] text-err","aria-hidden":"true",children:"error"}),(0,d.jsx)("p",{className:"text-xs text-muted",children:f}),(0,d.jsx)("button",{type:"button",onClick:()=>o(a.id,a.provider),className:"min-h-10 rounded-lg border border-line bg-raised px-3 text-xs font-semibold text-text hover:bg-line/60 focus-visible:shadow-focus",children:"Retry refresh"})]}):g?(0,d.jsx)("p",{className:"py-5 text-center text-xs text-muted",children:g}):0===b.length?(0,d.jsx)("p",{className:"py-5 text-center text-xs text-muted",children:"No quota data available."}):(0,d.jsxs)(d.Fragment,{children:[n&&(0,d.jsx)("span",{className:"self-start rounded-md border border-line bg-raised px-2 py-1 text-[10px] text-muted",children:"Sorted by account remaining"}),b.map(b=>(0,d.jsx)(V,{quota:b,compact:!0,onHide:z?b=>z(a.provider,b):void 0},`${b.name}-${b.modelKey||""}-${s(b)}`))]}),c?.length>0&&(0,d.jsxs)("div",{className:"mt-auto flex min-w-0 items-center gap-1 border-t border-line pt-2 text-[10px] text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 text-[14px]","aria-hidden":"true",children:"visibility_off"}),(0,d.jsx)("span",{className:"shrink-0",children:"Hidden:"}),(0,d.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto whitespace-nowrap pb-1",children:c.map(b=>(0,d.jsx)("button",{type:"button",onClick:()=>A(a.provider,b),className:"shrink-0 rounded-md border border-line px-1.5 py-0.5 transition-colors hover:bg-raised hover:text-text focus-visible:shadow-focus",title:"Show this quota row",children:b.name},s(b)))})]})]})]})}V.propTypes={quota:B().shape({name:B().string,used:B().number,total:B().number,remaining:B().number,remainingPercentage:B().number,unlimited:B().bool,isCreditBalance:B().bool,currency:B().string,resetAt:B().string,recurring:B().bool,forecast:B().object}).isRequired,compact:B().bool,onHide:B().func},W.propTypes={connection:B().shape({id:B().string.isRequired,provider:B().string.isRequired,name:B().string,email:B().string,displayName:B().string,isActive:B().bool,authType:B().string}).isRequired,quotas:B().arrayOf(B().object).isRequired,hiddenQuotaRows:B().arrayOf(B().object),loading:B().bool,error:B().string,message:B().string,rowBusy:B().bool,autoPing:B().bool,canAutoPing:B().bool,codexResetCredits:B().number,canResetCodex:B().bool,quotaSortLabel:B().bool,onRefresh:B().func.isRequired,onEdit:B().func.isRequired,onDelete:B().func.isRequired,onToggle:B().func.isRequired,onToggleAutoPing:B().func.isRequired,onResetCodex:B().func.isRequired,onViewCodexCredits:B().func.isRequired,onHideQuota:B().func,onShowQuota:B().func};let X=(0,g.memo)(W);function Y({to:a=null,className:b="",label:c="Next refresh in",countdownId:e}){let[f,h]=(0,g.useState)(()=>Date.now());if(!a)return null;let i=Math.max(0,Math.ceil((a-f)/1e3)),j=Math.ceil(i/60);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:`font-mono text-xs text-muted tabular-nums ${b}`,"aria-hidden":"true",children:[c," ",i,"s"]}),(0,d.jsxs)("span",{id:e,className:"sr-only","aria-live":"off",children:[c," ",j," minute",1===j?"":"s"]})]})}Y.propTypes={to:B().number,className:B().string,label:B().string,countdownId:B().string};var Z=c(9123);let $={claude:"claudeAutoPing",codex:"codexAutoPing"},_={"Content-Type":"application/json"};async function aa(a,b){if(a.ok)return a;let c=await a.json().catch(()=>({})),d=c.message||c.error||c.code||a.statusText||b;throw Error(`HTTP ${a.status}: ${d}`)}function ab(a){return b=>{let c={...b};return delete c[a],c}}var ac=c(26584),ad=c(73655),ae=c(85158),af=c(95145),ag=c(94248);function ah(a){if(!a)return"N/A";let b=new Date(a);return Number.isFinite(b.getTime())?b.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"}):"N/A"}function ai({state:a,onClose:b}){return(0,d.jsx)(af.default,{isOpen:!!a,onClose:b,title:"Codex reset credit expiry",description:a?j(a.connection)||"Codex account":void 0,size:"xl",children:a?.loading?(0,d.jsx)("p",{role:"status",className:"py-10 text-center text-sm text-muted",children:"Loading reset credits..."}):a?.error?(0,d.jsx)("p",{role:"alert",className:"rounded-xl border border-err bg-err-bg px-3 py-2 text-sm text-err",children:a.error}):a?.data?.credits?.length?(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between rounded-xl border border-line bg-raised px-3 py-2 text-xs text-muted",children:[(0,d.jsxs)("span",{children:[a.data.credits.length," reset credit",1===a.data.credits.length?"":"s"]}),(0,d.jsxs)("span",{children:[a.data.availableCount??0," available"]})]}),(0,d.jsx)("div",{className:"overflow-x-auto rounded-xl border border-line",children:(0,d.jsxs)("table",{className:"w-full min-w-[560px] text-start text-sm",children:[(0,d.jsx)("thead",{className:"bg-raised text-xs uppercase tracking-wide text-muted",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Status"}),(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Granted at"}),(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Expires at"}),(0,d.jsx)("th",{className:"px-3 py-2 font-medium",children:"Remaining"})]})}),(0,d.jsx)("tbody",{children:a.data.credits.map((a,b)=>(0,d.jsxs)("tr",{className:"border-t border-line",children:[(0,d.jsx)("td",{className:"px-3 py-2",children:(0,d.jsx)("span",{className:"rounded-full bg-coral-bg px-2 py-0.5 text-xs font-medium text-coral-ink",children:a.status||"unknown"})}),(0,d.jsx)("td",{className:"px-3 py-2 text-muted",children:ah(a.grantedAt)}),(0,d.jsx)("td",{className:"px-3 py-2 text-text",children:ah(a.expiresAt)}),(0,d.jsx)("td",{className:"px-3 py-2 font-medium text-text",children:function(a){if(!a)return"N/A";let b=new Date(a).getTime()-Date.now();if(!Number.isFinite(b))return"N/A";if(b<=0)return"Expired";let c=Math.ceil(b/36e5),d=Math.floor(c/24),e=c%24;return d>0?`${d}d ${e}h`:`${e}h`}(a.expiresAt)})]},`${a.status}-${a.expiresAt||b}`))})]})})]}):a?(0,d.jsx)("p",{className:"rounded-xl border border-line bg-raised px-3 py-8 text-center text-sm text-muted",children:"No reset credit details returned for this account."}):null})}function aj(a){let b=a?.raw?.resetCredits?.availableCount,c="number"==typeof b?b:Number(b);return Number.isFinite(c)?Math.max(0,c):0}function ak(){let[a,b]=(0,g.useState)("all"),[c,i]=(0,g.useState)("all"),[p,r]=(0,g.useState)("default"),[x,A]=(0,g.useState)(!1),[B,C]=(0,g.useState)(1),[D,E]=(0,g.useState)(20);(0,e.useRouter)();let F=(0,e.useSearchParams)();(0,g.useRef)(!1);let G=(0,g.useId)(),H=(0,f.i)(),{connections:J,quotaData:L,loading:M,errors:N,connectionsError:O,autoRefresh:Q,setAutoRefresh:S,refreshingAll:T,nextRefreshAt:U,connectionsLoading:V,initialQuotaLoaded:W,pagination:ah,totals:ak,providerOptions:al,fetchConnections:am,fetchQuota:an,invalidateQuota:ao,refreshProvider:ap,refreshAll:aq,retryLoad:ar,setQuotaData:as,setLoading:at,setErrors:au}=function({page:a,setPage:b,pageSize:c,accountFilter:d,providerFilter:e,notify:f}){let[i,j]=(0,g.useState)([]),[k,n]=(0,g.useState)({}),[p,r]=(0,g.useState)({}),[s,t]=(0,g.useState)({}),[u,v]=(0,g.useState)(null),[w,x]=(0,g.useState)(!0),[y,z]=(0,g.useState)(!1),[A,B]=(0,g.useState)(!1),[C,D]=(0,g.useState)(null),[E,F]=(0,g.useState)(!0),[G,H]=(0,g.useState)(!1),[I,J]=(0,g.useState)([]),[K,L]=(0,g.useState)({page:1,pageSize:c,total:0,totalPages:1}),[M,N]=(0,g.useState)({eligibleConnections:0,providerFilteredConnections:0}),O=(0,g.useRef)(null),P=(0,g.useRef)(!1),Q=(0,g.useRef)(0),R=(0,g.useRef)(0),S=(0,g.useRef)(new Map),T=(0,g.useRef)({page:a,pageSize:c,accountFilter:d,providerFilter:e}),U=T.current;(U.page!==a||U.pageSize!==c||U.accountFilter!==d||U.providerFilter!==e)&&(T.current={page:a,pageSize:c,accountFilter:d,providerFilter:e});let V=(0,g.useCallback)(a=>{let b=S.current;b.set(a,(b.get(a)||0)+1)},[]),W=(0,g.useCallback)(a=>{let b=new Set(a.map(a=>a.id));for(let a of S.current.keys())b.has(a)||V(a);r(b=>m(b,a)),t(b=>m(b,a)),n(b=>m(b,a))},[V]),X=(0,g.useRef)(null),Y=(0,g.useRef)(f);Y.current=f;let Z=(0,g.useRef)(b);Z.current=b,(0,g.useCallback)(()=>{O.current&&(clearInterval(O.current),O.current=null)},[]);let $=(0,g.useCallback)(async(b=a)=>{let f=R.current+1;R.current=f;try{var g;let a=new URLSearchParams({page:String(b),pageSize:String(c),accountStatus:d,sort:"priority"});"all"!==e&&a.set("provider",e);let h=await fetch(`/api/providers/client?${a.toString()}`);if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(`HTTP ${h.status}: ${a.error||h.statusText}`)}let i=await h.json();if(f!==R.current)return null;let k=i.connections||[],l=(g=i.pagination,g||{page:1,pageSize:c,total:0,totalPages:1}),m=function(a,b=0){return a||{eligibleConnections:b,providerFilteredConnections:b}}(i.totals,k.length);return j(k),v(null),J(i.providerOptions||[]),L(l),l.page!==b&&Z.current?.(l.page),N(m),k}catch(a){if(f!==R.current)return null;throw console.error("Error fetching connections:",a),j([]),v(a.message||"Failed to fetch connections"),J([]),L({page:1,pageSize:c,total:0,totalPages:1}),N({eligibleConnections:0,providerFilteredConnections:0}),a}},[d,a,c,e]),_=(0,g.useCallback)(async(a,b,{force:c=!1}={})=>{let d=T.current;V(a);let e=S.current.get(a),f=()=>T.current===d&&S.current.get(a)===e;r(b=>({...b,[a]:!0})),t(b=>({...b,[a]:null}));try{let d=`/api/usage/${a}${c?"?force=1":""}`,e=await fetch(d);if(!e.ok){let b=(await e.json().catch(()=>({}))).error||e.statusText;if(401===e.status&&f()){let c={quotas:[],message:b};n(b=>({...b,[a]:c}))}throw Error(`HTTP ${e.status}: ${b}`)}let g=await e.json(),i={quotas:function(a,b){if(!Array.isArray(a))return[];let c=b&&"object"==typeof b&&!Array.isArray(b)?b:null;return a.map(a=>{if(!a||"object"!=typeof a)return a;if(!0===a.unlimited||!0===a.isCreditBalance)return{...a,forecast:null};let b=a.quotaType??a.modelKey??a.name,d=c&&"string"==typeof b&&b?c[b]??null:null;return{...a,forecast:d}})}(function(a,b){if(!b||"object"!=typeof b)return[];let c=[];try{switch(a.toLowerCase()){case"github":default:b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"antigravity":if(b.quotas){let a=Object.entries(b.quotas),d=new Set(["gemini_weekly","claude_gpt_weekly"]),e=a.filter(([a])=>a.startsWith("gemini-")&&!a.includes("image")),f=a.filter(([a])=>a.startsWith("claude-")),g=a.filter(([a])=>a.includes("image")),h=a.filter(([a])=>d.has(a)),i=a.filter(([a])=>!a.startsWith("gemini-")&&!a.startsWith("claude-")&&!a.includes("image")&&!d.has(a));if(e.length>0){let a=e.reduce((a,b)=>(b[1].remainingPercentage??100)<(a[1].remainingPercentage??100)?b:a)[1];c.push({name:"Gemini (Flash / Pro)",modelKey:"gemini",used:a.used||0,total:a.total||0,resetAt:a.resetAt||null,remainingPercentage:a.remainingPercentage})}if(f.length>0){let a=f.reduce((a,b)=>(b[1].remainingPercentage??100)<(a[1].remainingPercentage??100)?b:a)[1];c.push({name:"Claude (Sonnet / Opus)",modelKey:"claude",used:a.used||0,total:a.total||0,resetAt:a.resetAt||null,remainingPercentage:a.remainingPercentage})}h.forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})}),g.forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})}),i.forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})})}break;case"codex":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{let d=a;"spark_session"===a?d="Spark (5h)":"spark_weekly"===a?d="Spark (Weekly)":"session"===a?d=b.windowMinutes>=6e3?"Weekly":"5h":"weekly"===a?d="Weekly":"review_session"===a?d="Review (5h)":"review_weekly"===a&&(d="Review (Weekly)"),c.push({name:d,quotaType:a,used:b.used||0,total:b.total||0,remaining:b.remaining,resetAt:b.resetAt||null})});break;case"kiro":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"qoder":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{("organization"!==a||b&&0!==(Number(b.total)||0))&&c.push({name:"user"===a?"Personal":"organization"===a?"Organization":a,used:b.used||0,total:b.total||0,unit:b.unit,resetAt:b.resetAt||null})});break;case"claude":b.message?c.push({name:"error",used:0,total:0,resetAt:null,message:b.message}):b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,remaining:void 0!==b.remaining?b.remaining:Math.max(0,(b.total||100)-(b.used||0)),remainingPercentage:void 0!==b.remainingPercentage?b.remainingPercentage:q(b.used,b.total),resetAt:b.resetAt||null})});break;case"vercel-ai-gateway":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"codebuddy-cn":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,recurring:!1!==b.recurring})});break;case"grok-cli":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"kimi":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"deepseek":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage,isCreditBalance:b.isCreditBalance??!0,currency:b.currency||(a.includes("(")?a.slice(a.indexOf("(")+1,a.indexOf(")")):"USD")})});break;case"groq":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"ollama":case"cursor":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"zed":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage,unlimited:b.unlimited})})}}catch(b){return console.error(`Error parsing quota data for ${a}:`,b),[]}if(a?.toLowerCase()==="claude"){let a={"session (5h)":0,"weekly (7d)":1,"weekly fable (7d)":2,"weekly opus (7d)":3,"weekly sonnet (7d)":4};return c.sort((b,c)=>(a[b.name]??99)-(a[c.name]??99)),c}let d=(0,h.KC)(a);if(d.length>0){let a=new Map(d.map((a,b)=>[a.id,b]));c.sort((b,c)=>{let d=b.modelKey||b.name,e=c.modelKey||c.name;return"gemini"===d&&(d="gemini-3.8-flash-high"),"claude"===d&&(d="claude-sonnet-4-6"),"gemini"===e&&(e="gemini-3.8-flash-high"),"claude"===e&&(e="claude-sonnet-4-6"),(a.get(d)??999)-(a.get(e)??999)})}return c}(b,g),g.forecasts),plan:g.plan||null,message:g.message||null,raw:g};if(!f())return null;return n(b=>({...b,[a]:i})),o(a,i),!0}catch(c){if(!f())return null;return console.error(`[Quota] Error fetching quota for ${b} (${a}):`,c),t(b=>({...b,[a]:c.message||"Failed to fetch quota"})),!1}finally{f()&&r(b=>({...b,[a]:!1}))}},[V]),aa=(0,g.useCallback)(async(a,b)=>{await _(a,b,{force:!0})},[_]),ab=(0,g.useCallback)(async(b=!1)=>{if(P.current)return;P.current=!0,B(!0),Q.current+=1;let c=Q.current,d=Math.round(10);try{let e=await $(a);if(!e)return;let f=e.filter(a=>b||"claude"!==a.provider||c%d==0);r(l(f)),W(e);let g=(await Promise.all(f.map(a=>_(a.id,a.provider,{force:b})))).filter(a=>!1===a).length,h={total:f.length,failed:g};return g>0&&Y.current?.error(`Quota refresh finished with ${g} of ${f.length} account${f.length>1?"s":""} failing.`,{action:{label:"Retry",onSelect:()=>ab(!0)}}),h}catch(a){console.error("Error refreshing quota:",a),Y.current?.error(`Quota refresh failed: ${a.message||"Failed to fetch connections"}`,{action:{label:"Retry",onSelect:()=>ab(!0)}});return}finally{P.current=!1,B(!1)}},[$,_,a,W]);X.current=ab;let ac=(0,g.useCallback)(async()=>{try{let b=await $(a);if(!b)return;r(l(b)),W(b),await Promise.all(b.map(a=>_(a.id,a.provider)))}catch{}},[$,_,a,W]);return{connections:i,quotaData:k,loading:p,errors:s,connectionsError:u,autoRefresh:w,setAutoRefresh:x,refreshingAll:A,nextRefreshAt:C,connectionsLoading:E,initialQuotaLoaded:G,pagination:K,totals:M,providerOptions:I,fetchConnections:$,fetchQuota:_,invalidateQuota:V,refreshProvider:aa,refreshAll:ab,retryLoad:ac,setQuotaData:n,setLoading:r,setErrors:t}}({page:B,setPage:C,pageSize:D,accountFilter:c,providerFilter:a,notify:H}),{deletingId:av,togglingId:aw,resettingLimitId:ax,resetConfirmState:ay,setResetConfirmState:az,resetCreditsState:aA,setResetCreditsState:aB,deleteConfirmState:aC,setDeleteConfirmState:aD,deleteError:aE,clearDeleteError:aF,bulkConfirmState:aG,setBulkConfirmState:aH,showEditModal:aI,setShowEditModal:aJ,selectedConnection:aK,setSelectedConnection:aL,proxyPools:aM,autoPingMaps:aN,quotaVisibility:aO,bulkToggling:aP,bulkSetActive:aQ,handleDeleteConnection:aR,handleToggleConnectionActive:aS,handleUpdateConnection:aT,toggleAutoPing:aU,handleResetCodexLimit:aV,handleViewCodexResetCredits:aW,handleHideQuota:aX,handleShowQuota:aY}=function({fetchConnections:a,fetchQuota:b,invalidateQuota:c,retryLoad:d,page:e,setQuotaData:f,setLoading:h,setErrors:i,notify:j}){let[k,l]=(0,g.useState)(null),[m,o]=(0,g.useState)(null),[p,q]=(0,g.useState)(null),[r,t]=(0,g.useState)(null),[u,v]=(0,g.useState)(null),[w,x]=(0,g.useState)(null),[y,z]=(0,g.useState)(null),A=(0,g.useCallback)(()=>z(null),[]),[B,C]=(0,g.useState)(null),[D,E]=(0,g.useState)(!1),[F,G]=(0,g.useState)(null),[H,I]=(0,g.useState)([]),[J,K]=(0,g.useState)({claude:{},codex:{}}),[L,M]=(0,g.useState)({}),[N,O]=(0,g.useState)(!1),P=(0,g.useRef)(j);P.current=j;let Q=(0,g.useCallback)((a,b)=>{P.current?.error(a,{action:{label:"Retry",onSelect:()=>{Promise.resolve().then(b).catch(()=>{})}}})},[]),R=(0,g.useCallback)(async b=>{try{await n(a,e),(0,Z.q0)()}catch(a){console.error(`Error refreshing after ${b}:`,a),Q(`${b} saved, but the list refresh failed: ${a.message}`,d)}},[Q,a,e,d]),S=(0,g.useCallback)(async()=>{try{let a=await fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),b=await (await aa(a,"Failed to load proxy pools")).json();b?.proxyPools&&I(b.proxyPools)}catch(a){Q(`Proxy pools failed to load: ${a.message}`,S)}},[Q]),T=(0,g.useCallback)(async()=>{try{let a=await fetch("/api/settings",{cache:"no-store"}),b=await (await aa(a,"Failed to load settings")).json();K({claude:b?.claudeAutoPing?.connections||{},codex:b?.codexAutoPing?.connections||{}}),M(b?.quotaVisibility||{})}catch(a){Q(`Quota settings failed to load: ${a.message}`,T)}},[Q]),U=(0,g.useCallback)(async(a,b)=>{if(a.length&&!N){O(!0);try{let c=(await Promise.allSettled(a.map(a=>fetch(`/api/providers/${a}`,{method:"PUT",headers:_,body:JSON.stringify({isActive:b})})))).filter(a=>"fulfilled"===a.status&&a.value.ok).length;if(c>0&&await R("Bulk update"),c!==a.length){let d=Error(`Failed to update ${a.length-c} of ${a.length} connection${a.length>1?"s":""}`);throw console.error("Error bulk toggling connections:",d),Q(`Bulk update failed: ${d.message}`,()=>U(a,b)),d}}finally{O(!1)}}},[N,Q,R]),V=(0,g.useCallback)(async a=>{l(a),z(null);try{try{await aa(await fetch(`/api/providers/${a}`,{method:"DELETE"}),"Failed to delete connection")}catch(b){throw console.error("Error deleting connection:",b),z(b.message),Q(`Delete failed: ${b.message}`,()=>V(a)),b}c(a),f(ab(a)),h(ab(a)),i(ab(a)),x(null),await R("Delete")}finally{l(null)}},[Q,c,R,i,h,f]),W=(0,g.useCallback)(async(a,b)=>{o(a);try{let c=await fetch(`/api/providers/${a}`,{method:"PUT",headers:_,body:JSON.stringify({isActive:b})});await aa(c,"Failed to update connection")}catch(c){console.error("Error updating connection status:",c),Q(`Failed to ${b?"enable":"disable"} connection: ${c.message}`,()=>W(a,b)),o(null);return}await R("Connection status"),o(null)},[Q,R]),X=(0,g.useCallback)(async a=>{if(!F?.id)return"No connection selected";let{id:c,provider:d}=F;try{let b=await fetch(`/api/providers/${c}`,{method:"PUT",headers:_,body:JSON.stringify(a)});await aa(b,"Failed to save connection")}catch(a){return console.error("Error saving connection:",a),P.current?.error(`Save failed: ${a.message}`),a.message}return E(!1),G(null),await R("Connection"),await b(c,d),null},[F,b,R]),Y=(0,g.useCallback)(async(a,b,c)=>{let d=$[b];if(!d)return;let e={...J[b]||{},[a]:c};K({...J,[b]:e});try{let a=await fetch("/api/settings",{cache:"no-store"}),b=await (await aa(a,"Failed to read settings")).json(),c={...b?.[d]||{},connections:e},f=await fetch("/api/settings",{method:"PATCH",headers:_,body:JSON.stringify({[d]:c})});await aa(f,"Failed to save auto-ping")}catch(d){console.error("Error toggling auto-ping:",d),K(J),Q(`Auto-ping ${c?"enable":"disable"} failed: ${d.message}`,()=>Y(a,b,c))}},[J,Q]),ac=(0,g.useCallback)(async(a,c)=>{if("codex"===c&&!p){q(a),i(b=>({...b,[a]:null}));try{try{let b=await fetch(`/api/usage/${a}/codex-reset-credits`,{method:"POST"});await aa(b,"Failed to reset Codex limit")}catch(b){throw console.error("Error resetting Codex limit:",b),i(c=>({...c,[a]:b.message})),Q(`Codex reset failed: ${b.message}`,()=>ac(a,c)),b}t(null),await b(a,c)}finally{q(null)}}},[Q,b,p,i]),ad=(0,g.useCallback)(async a=>{v({connection:a,loading:!0,error:null,data:null});try{let b=await fetch(`/api/usage/${a.id}/codex-reset-credits`,{cache:"no-store"}),c=await (await aa(b,"Failed to load Codex reset credits")).json(),d=Array.isArray(c.credits)?[...c.credits]:[],e=a=>a.expiresAt?new Date(a.expiresAt).getTime():1/0;d.sort((a,b)=>e(a)-e(b)),v({connection:a,loading:!1,error:null,data:{...c,credits:d}})}catch(b){v({connection:a,loading:!1,error:b.message,data:null})}},[]),ae=(0,g.useCallback)(async(a,b)=>{M(a);try{let b=await fetch("/api/settings",{method:"PATCH",headers:_,body:JSON.stringify({quotaVisibility:a})});await aa(b,"Failed to update quota visibility")}catch(c){console.error("Error updating quota visibility:",c),M(b),Q(`Visibility update failed: ${c.message}`,()=>ae(a,b))}},[Q]),af=(0,g.useCallback)((a,b,c)=>{let d=s(b);if(!a||!d)return;let e=L[a]||{},f=new Set(e.hidden||[]);c?f.add(d):f.delete(d),ae({...L,[a]:{...e,hidden:[...f]}},L)},[L,ae]);return{deletingId:k,togglingId:m,resettingLimitId:p,resetConfirmState:r,setResetConfirmState:t,resetCreditsState:u,setResetCreditsState:v,deleteConfirmState:w,setDeleteConfirmState:x,deleteError:y,clearDeleteError:A,bulkConfirmState:B,setBulkConfirmState:C,showEditModal:D,setShowEditModal:E,selectedConnection:F,setSelectedConnection:G,proxyPools:H,autoPingMaps:J,quotaVisibility:L,bulkToggling:N,bulkSetActive:U,handleDeleteConnection:V,handleToggleConnectionActive:W,handleUpdateConnection:X,toggleAutoPing:Y,handleResetCodexLimit:ac,handleViewCodexResetCredits:ad,handleHideQuota:(0,g.useCallback)((a,b)=>af(a,b,!0),[af]),handleShowQuota:(0,g.useCallback)((a,b)=>af(a,b,!1),[af])}}({fetchConnections:am,fetchQuota:an,invalidateQuota:ao,retryLoad:ar,page:B,setQuotaData:as,setLoading:at,setErrors:au,notify:H}),aZ=(0,g.useCallback)(a=>{aL(a),aJ(!0)},[aL,aJ]),a$=(0,g.useCallback)(a=>{aF(),aD(J.find(b=>b.id===a)||{id:a})},[aF,J,aD]),a_=(0,g.useCallback)(a=>{az({connection:a,count:aj(L[a.id])})},[L,az]);F?.get("refresh");let a0=(0,g.useMemo)(()=>(function(a,b,c,d,e){if("codex"===d&&"default"!==e)return[...a].sort((a,c)=>{let d=k(a,b),f=k(c,b),g="remaining-asc"===e?d-f:f-d;return 0!==g?g:(j(a)||"").localeCompare(j(c)||"")});if(!c){let b=new Map;for(let c of a){let a=c.provider||"";b.has(a)||b.set(a,[]),b.get(a).push(c)}return Array.from(b.values()).flat()}let f=a=>{let c=(b[a.id]?.quotas||[]).map(a=>a.resetAt?new Date(a.resetAt).getTime():1/0).filter(a=>Number.isFinite(a));return c.length>0?Math.min(...c):1/0};return[...a].sort((a,b)=>{let c=f(a)-f(b);return 0!==c?c:(a.provider||"").localeCompare(b.provider||"")||(j(a)||"").localeCompare(j(b)||"")})})(J,L,x,a,p),[J,L,x,a,p]),a1=(0,g.useMemo)(()=>{var a=a0.map(a=>({id:a.id,quotas:L[a.id]?.quotas||[]}));let b={healthy:0,low:0,empty:0,total:0};for(let c of a||[]){let a=w(c?.quotas);null!==a&&(b[v(a)]+=1,b.total+=1)}return b},[a0,L]),a2=(0,g.useMemo)(()=>(function(a,b,c=Date.now()){let d=null;for(let e of a||[]){let a=function(a,b=Date.now()){if(!Array.isArray(a))return null;let c=null;for(let d of a){if(!d?.resetAt)continue;let a=new Date(d.resetAt).getTime();Number.isFinite(a)&&!(a<=b)&&(null===c||a<new Date(c).getTime())&&(c=d.resetAt)}return c}(b?.[e?.id]?.quotas,c);a&&(!d||new Date(a).getTime()<new Date(d.resetAt).getTime())&&(d={connectionId:e.id,label:e.label||e.name||e.id,resetAt:a})}return d})(a0.map(a=>({id:a.id,label:j(a)||a.provider})),L),[a0,L]),a3=(0,g.useMemo)(()=>(function(a,b){let c=[];for(let d of a||[]){let a=b?.[d?.id]?.quotas;if(!Array.isArray(a))continue;let e=j(d)||d?.provider||d?.id;for(let b of a)!0!==b.unlimited&&!0!==b.isCreditBalance&&z.has(b?.forecast?.state)&&c.push({label:`${e} \xb7 ${b.name}`,forecast:b.forecast})}return{best:(0,u.fz)(c),hasForecasts:c.length>0}})(a0,L),[a0,L]),a4=(0,g.useMemo)(()=>y(a0,L,"off"),[a0,L]),a5=(0,g.useMemo)(()=>y(a0,L,"on"),[a0,L]),a6=ak.eligibleConnections>0,a7=a0.length>0,a8=(0,g.useCallback)(c=>{a!==c&&C(1),b(c)},[a]),a9=(0,g.useCallback)(a=>{c!==a&&C(1),i(a)},[c]);return(0,d.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"quota-page",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-3",children:[(0,d.jsxs)("div",{className:"inline-flex h-11 items-center gap-2 rounded-xl border border-line bg-raised px-3 text-sm text-text",children:[(0,d.jsx)("span",{className:"font-medium",children:"Auto-refresh"}),Q&&(0,d.jsx)(Y,{to:U,label:"Next refresh in",countdownId:G}),(0,d.jsx)(R.default,{size:"sm",checked:Q,onChange:S,"aria-label":"Toggle auto-refresh","aria-describedby":Q&&U?G:void 0})]}),(0,d.jsx)(K.default,{variant:"secondary",icon:"refresh",loading:T,onClick:()=>aq(!0),title:"Refresh all quotas",children:"Refresh all"})]}),(0,d.jsx)(I,{summary:a1,nextReset:a2,loading:V,forecast:a3.best,hasForecasts:a3.hasForecasts}),(0,d.jsx)(P,{providerFilter:a,onProviderChange:a8,providerOptions:al,accountFilter:c,onAccountFilterChange:a9,quotaSortMode:p,onQuotaSortModeChange:r,expiringFirst:x,onToggleExpiringFirst:()=>A(a=>!a),onTurnOffEmpty:()=>{0!==a4.length&&aH({action:"off",ids:a4,title:"Turn off empty accounts?",message:`This will disable ${a4.length} account${a4.length>1?"s":""} on this page that have depleted quota.`})},onTurnOnAvailable:()=>{aQ(a5,!0).catch(()=>{})},bulkBusy:aP,emptyCount:a4.length,availableCount:a5.length}),x&&(0,d.jsx)("div",{role:"status",className:"rounded-xl border border-warn/30 bg-warn-bg px-4 py-2.5 text-xs text-warn",children:"Expiring-first currently reorders accounts inside the current page. Cross-page ordering still follows backend pagination."}),!V&&O?(0,d.jsx)(ad.ErrorState,{message:O,onRetry:ar,title:"Could not load connections"}):V||a6?V||a7?(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-5",children:a0.map(a=>{let b=L[a.id],c=b?.quotas||[],e=function(a,b=[],c={}){if(!Array.isArray(b)||0===b.length)return[];let d=t(a,c,b);return 0===d.size?b:b.filter(a=>!d.has(s(a)))}(a.provider,c,aO),f=function(a,b=[],c={}){if(!Array.isArray(b)||0===b.length)return[];let d=t(a,c,b);return 0===d.size?[]:b.filter(a=>d.has(s(a)))}(a.provider,c,aO),g="codex"===a.provider,h=aj(b),i=ax===a.id,j=av===a.id||aw===a.id||i;return(0,d.jsx)(X,{connection:a,quotas:e,hiddenQuotaRows:f,loading:M[a.id],error:N[a.id],message:b?.message,rowBusy:j,autoPing:aN[a.provider]?.[a.id]===!0,canAutoPing:!!($[a.provider]&&"oauth"===a.authType),codexResetCredits:h,canResetCodex:g&&h>0,quotaSortLabel:g&&"default"!==p,onRefresh:ap,onEdit:aZ,onDelete:a$,onToggle:aS,onToggleAutoPing:aU,onResetCodex:a_,onViewCodexCredits:aW,onHideQuota:aX,onShowQuota:aY},a.id)})}):(0,d.jsx)(ac.default,{icon:"filter_alt_off",title:"No accounts match current filters",body:"all"===a?"Try changing the account status filter to see more accounts.":`No matching accounts found for ${a}. Try selecting All providers.`,action:(0,d.jsx)(K.default,{variant:"secondary",onClick:()=>{b("all"),i("all"),C(1)},children:"Reset filters"})}):(0,d.jsx)(ac.default,{icon:"cloud_off",title:"No providers connected",body:"Connect to providers with OAuth or API keys to track your quota limits and runway.",action:(0,d.jsx)(K.default,{href:"/dashboard/providers",variant:"primary",icon:"dns",children:"Go to Providers"})}),ah.total>D&&(0,d.jsx)(ae.A,{currentPage:ah.page,pageSize:D,totalItems:ah.total,onPageChange:C,onPageSizeChange:a=>{C(1),E(a)}}),(0,d.jsx)(af.ConfirmDialog,{isOpen:!!aC,onClose:()=>{av||(aD(null),aF())},onConfirm:async()=>{aC?.id&&await aR(aC.id)},title:"Delete connection?",message:`Delete ${j(aC||{})||"this connection"}? This cannot be undone.`,confirmText:"Delete",variant:"danger",loading:!!av,error:aE}),(0,d.jsx)(af.ConfirmDialog,{isOpen:!!aG,onClose:()=>aH(null),onConfirm:async()=>{aG?.ids?.length&&(await aQ(aG.ids,!1),aH(null))},title:aG?.title||"Turn off empty accounts?",message:aG?.message,confirmText:"Turn off empty",variant:"danger",loading:aP}),(0,d.jsx)(af.ConfirmDialog,{isOpen:!!ay,onClose:()=>{ax||az(null)},onConfirm:async()=>{let a=ay?.connection;a&&await aV(a.id,a.provider)},title:"Reset Codex limit?",message:`Use 1 Codex reset credit for ${j(ay?.connection||{})||"this account"}. This cannot be undone. Remaining credits: ${ay?.count??0}.`,confirmText:"Reset limit",variant:"danger",loading:!!ax}),(0,d.jsx)(ai,{state:aA,onClose:()=>aB(null)}),(0,d.jsx)(ag.default,{isOpen:aI,connection:aK,proxyPools:aM,onSave:aT,onClose:()=>{aJ(!1),aL(null)}})]})}ai.propTypes={state:B().shape({connection:B().object,loading:B().bool,error:B().string,data:B().shape({credits:B().array,availableCount:B().number})}),onClose:B().func.isRequired}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46193:a=>{"use strict";a.exports=require("node:string_decoder")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},50119:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/quota/QuotaPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/quota/QuotaPageClient.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65365:(a,b,c)=>{"use strict";c.d(b,{default:()=>k,p:()=>j});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(71404);c(28502);var i=c(56615);function j(a,b,c,d){let[f,g]=(0,e.useState)({top:0,left:0,visibility:"hidden"});return f}function k({trigger:a,children:b,open:c,onOpenChange:f,placement:g="bottom","aria-label":l,className:m}){let n=(0,e.useRef)(null),o=(0,e.useRef)(null),{overlayId:p}=(0,i.uf)("signal-popover"),[q,r]=(0,e.useState)(!1),s="boolean"==typeof c,t=s?c:q,u=(0,e.useCallback)(a=>s?f?.(a):r(a),[s,f]),v=j(n,o,t,g),w=(0,e.useCallback)(()=>{let a=o.current?.contains(document.activeElement)??!1;u(!1),a&&n.current?.focus?.()},[u]);if((0,i.s9)({onClose:w,containerRef:o,enabled:t,closeOnOutside:!1}),!(0,e.isValidElement)(a))throw Error("Popover: `trigger` must be a React element");return(0,d.jsxs)(d.Fragment,{children:[(0,e.cloneElement)(a,{ref:n,"aria-haspopup":"dialog","aria-expanded":t,"aria-controls":t?p:void 0,onClick:b=>{a.props.onClick?.(b),b.defaultPrevented||u(!t)}}),t?(0,d.jsx)(i.ZL,{children:(0,d.jsx)("div",{ref:o,id:p,role:"dialog","aria-label":l,style:v,className:(0,h.cn)("signal-overlay-pop fixed z-50 min-w-48 max-w-[min(24rem,calc(100vw-16px))] rounded-xl border border-line bg-panel p-4 text-text shadow-card",m),children:b})}):null]})}k.propTypes={trigger:g().element.isRequired,children:g().node,open:g().bool,onOpenChange:g().func,placement:g().oneOf(["top","bottom","start","end"]),"aria-label":g().string,className:g().string}},69929:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>z,handler:()=>B,routeModule:()=>A});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79409))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.bind(c,79346))),t=(0,d.p)(()=>Promise.resolve().then(c.bind(c,70160))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v=(0,d.p)(()=>Promise.resolve().then(c.bind(c,55880))),w=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),x={children:["",{children:["(dashboard)",{children:["dashboard",{children:["quota",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,16736))),"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/quota/page.js"]}]},{"global-error":[w,"next/dist/client/components/builtin/global-error.js"]},[]]},{error:[s,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/error.js"],loading:[t,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/loading.js"],"global-error":[u,"next/dist/client/components/builtin/global-error.js"],"not-found":[v,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/dashboard/not-found.js"]},[]]},{layout:[n,"/home/runner/work/tokenhop/tokenhop/src/app/(dashboard)/layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/home/runner/work/tokenhop/tokenhop/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,y=(0,e.H)({tree:x,page:"/(dashboard)/dashboard/quota/page",pathname:"/dashboard/quota",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),z=y.__next_app__,A=y.routeModule,B=y.handler},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},71794:(a,b,c)=>{Promise.resolve().then(c.bind(c,40639)),Promise.resolve().then(c.bind(c,74812))},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79646:a=>{"use strict";a.exports=require("child_process")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,8666,2430,2217,2116,6561,9421,7819,6070,1152,915,7642,4123,5649,1533,6244,6849,1320,2592,6427,4685,1863],()=>b(b.s=69929));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/lib/binding.js","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/explain.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-x64.node","../../../../../../node_modules/bundle-name/index.js","../../../../../../node_modules/bundle-name/package.json","../../../../../../node_modules/default-browser-id/index.js","../../../../../../node_modules/default-browser-id/package.json","../../../../../../node_modules/default-browser/index.js","../../../../../../node_modules/default-browser/package.json","../../../../../../node_modules/default-browser/windows.js","../../../../../../node_modules/define-lazy-prop/index.js","../../../../../../node_modules/define-lazy-prop/package.json","../../../../../../node_modules/is-docker/index.js","../../../../../../node_modules/is-docker/package.json","../../../../../../node_modules/is-in-ssh/index.js","../../../../../../node_modules/is-in-ssh/package.json","../../../../../../node_modules/is-inside-container/index.js","../../../../../../node_modules/is-inside-container/package.json","../../../../../../node_modules/is-wsl/index.js","../../../../../../node_modules/is-wsl/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/open/index.js","../../../../../../node_modules/open/package.json","../../../../../../node_modules/open/xdg-open","../../../../../../node_modules/powershell-utils/index.js","../../../../../../node_modules/powershell-utils/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/run-applescript/index.js","../../../../../../node_modules/run-applescript/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/wsl-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/package.json","../../../../../../node_modules/wsl-utils/package.json","../../../../../../node_modules/wsl-utils/utilities.js","../../../../../../package.json","../../../../../../src/shared/components/package.json","../../../../../package.json","../../../../chunks/1129.js","../../../../chunks/1152.js","../../../../chunks/1159.js","../../../../chunks/1204.js","../../../../chunks/1227.js","../../../../chunks/1245.js","../../../../chunks/1320.js","../../../../chunks/1336.js","../../../../chunks/1432.js","../../../../chunks/1452.js","../../../../chunks/1455.js","../../../../chunks/1487.js","../../../../chunks/1533.js","../../../../chunks/1764.js","../../../../chunks/1778.js","../../../../chunks/1794.js","../../../../chunks/1813.js","../../../../chunks/1854.js","../../../../chunks/1863.js","../../../../chunks/1930.js","../../../../chunks/1952.js","../../../../chunks/1994.js","../../../../chunks/1998.js","../../../../chunks/2051.js","../../../../chunks/206.js","../../../../chunks/2116.js","../../../../chunks/2217.js","../../../../chunks/2380.js","../../../../chunks/24.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2460.js","../../../../chunks/2592.js","../../../../chunks/2600.js","../../../../chunks/3016.js","../../../../chunks/3097.js","../../../../chunks/318.js","../../../../chunks/3225.js","../../../../chunks/3306.js","../../../../chunks/3340.js","../../../../chunks/3535.js","../../../../chunks/3546.js","../../../../chunks/3558.js","../../../../chunks/3593.js","../../../../chunks/3676.js","../../../../chunks/368.js","../../../../chunks/385.js","../../../../chunks/3859.js","../../../../chunks/3894.js","../../../../chunks/3919.js","../../../../chunks/392.js","../../../../chunks/3943.js","../../../../chunks/3966.js","../../../../chunks/4000.js","../../../../chunks/4033.js","../../../../chunks/4037.js","../../../../chunks/4072.js","../../../../chunks/4114.js","../../../../chunks/4123.js","../../../../chunks/4125.js","../../../../chunks/4152.js","../../../../chunks/4199.js","../../../../chunks/4247.js","../../../../chunks/4334.js","../../../../chunks/4406.js","../../../../chunks/4452.js","../../../../chunks/4492.js","../../../../chunks/4521.js","../../../../chunks/4547.js","../../../../chunks/4685.js","../../../../chunks/4730.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4780.js","../../../../chunks/4876.js","../../../../chunks/4892.js","../../../../chunks/4903.js","../../../../chunks/4954.js","../../../../chunks/499.js","../../../../chunks/5055.js","../../../../chunks/507.js","../../../../chunks/5081.js","../../../../chunks/5173.js","../../../../chunks/524.js","../../../../chunks/5258.js","../../../../chunks/5260.js","../../../../chunks/5335.js","../../../../chunks/539.js","../../../../chunks/5433.js","../../../../chunks/5497.js","../../../../chunks/5560.js","../../../../chunks/5573.js","../../../../chunks/5615.js","../../../../chunks/5699.js","../../../../chunks/5765.js","../../../../chunks/5781.js","../../../../chunks/5827.js","../../../../chunks/6000.js","../../../../chunks/6070.js","../../../../chunks/6103.js","../../../../chunks/620.js","../../../../chunks/6244.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6353.js","../../../../chunks/6403.js","../../../../chunks/6427.js","../../../../chunks/6496.js","../../../../chunks/6551.js","../../../../chunks/6561.js","../../../../chunks/6565.js","../../../../chunks/6588.js","../../../../chunks/6589.js","../../../../chunks/6703.js","../../../../chunks/6734.js","../../../../chunks/6763.js","../../../../chunks/6844.js","../../../../chunks/6849.js","../../../../chunks/698.js","../../../../chunks/7023.js","../../../../chunks/7184.js","../../../../chunks/7211.js","../../../../chunks/7247.js","../../../../chunks/737.js","../../../../chunks/7382.js","../../../../chunks/7469.js","../../../../chunks/7616.js","../../../../chunks/7642.js","../../../../chunks/7716.js","../../../../chunks/7774.js","../../../../chunks/7819.js","../../../../chunks/7828.js","../../../../chunks/7901.js","../../../../chunks/7914.js","../../../../chunks/7965.js","../../../../chunks/8037.js","../../../../chunks/8062.js","../../../../chunks/8171.js","../../../../chunks/8255.js","../../../../chunks/8372.js","../../../../chunks/8416.js","../../../../chunks/8432.js","../../../../chunks/8468.js","../../../../chunks/8469.js","../../../../chunks/8520.js","../../../../chunks/8624.js","../../../../chunks/8658.js","../../../../chunks/8666.js","../../../../chunks/8708.js","../../../../chunks/8823.js","../../../../chunks/8853.js","../../../../chunks/8895.js","../../../../chunks/8920.js","../../../../chunks/8988.js","../../../../chunks/9124.js","../../../../chunks/915.js","../../../../chunks/9219.js","../../../../chunks/9243.js","../../../../chunks/9326.js","../../../../chunks/9343.js","../../../../chunks/9421.js","../../../../chunks/9489.js","../../../../chunks/9578.js","../../../../chunks/9594.js","../../../../chunks/9613.js","../../../../chunks/965.js","../../../../chunks/9710.js","../../../../chunks/9713.js","../../../../chunks/9755.js","../../../../chunks/9850.js","../../../../chunks/9899.js","../../../../chunks/9994.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/lib/binding.js","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/explain.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/darwin-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linux-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/linuxmusl-x64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-arm64.node","../../../../../../node_modules/better-sqlite3/prebuilds/win32-x64.node","../../../../../../node_modules/bundle-name/index.js","../../../../../../node_modules/bundle-name/package.json","../../../../../../node_modules/default-browser-id/index.js","../../../../../../node_modules/default-browser-id/package.json","../../../../../../node_modules/default-browser/index.js","../../../../../../node_modules/default-browser/package.json","../../../../../../node_modules/default-browser/windows.js","../../../../../../node_modules/define-lazy-prop/index.js","../../../../../../node_modules/define-lazy-prop/package.json","../../../../../../node_modules/is-docker/index.js","../../../../../../node_modules/is-docker/package.json","../../../../../../node_modules/is-in-ssh/index.js","../../../../../../node_modules/is-in-ssh/package.json","../../../../../../node_modules/is-inside-container/index.js","../../../../../../node_modules/is-inside-container/package.json","../../../../../../node_modules/is-wsl/index.js","../../../../../../node_modules/is-wsl/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/open/index.js","../../../../../../node_modules/open/package.json","../../../../../../node_modules/open/xdg-open","../../../../../../node_modules/powershell-utils/index.js","../../../../../../node_modules/powershell-utils/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/run-applescript/index.js","../../../../../../node_modules/run-applescript/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/wsl-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/index.js","../../../../../../node_modules/wsl-utils/node_modules/powershell-utils/package.json","../../../../../../node_modules/wsl-utils/package.json","../../../../../../node_modules/wsl-utils/utilities.js","../../../../../../package.json","../../../../../../src/shared/components/package.json","../../../../../package.json","../../../../chunks/1004.js","../../../../chunks/1129.js","../../../../chunks/1152.js","../../../../chunks/1159.js","../../../../chunks/1204.js","../../../../chunks/1215.js","../../../../chunks/1227.js","../../../../chunks/1245.js","../../../../chunks/1320.js","../../../../chunks/1336.js","../../../../chunks/1432.js","../../../../chunks/1452.js","../../../../chunks/1455.js","../../../../chunks/1487.js","../../../../chunks/1533.js","../../../../chunks/1778.js","../../../../chunks/1794.js","../../../../chunks/1813.js","../../../../chunks/1863.js","../../../../chunks/1930.js","../../../../chunks/1952.js","../../../../chunks/1994.js","../../../../chunks/1998.js","../../../../chunks/2051.js","../../../../chunks/206.js","../../../../chunks/2116.js","../../../../chunks/2217.js","../../../../chunks/2380.js","../../../../chunks/24.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2460.js","../../../../chunks/257.js","../../../../chunks/2592.js","../../../../chunks/2600.js","../../../../chunks/2705.js","../../../../chunks/3016.js","../../../../chunks/3097.js","../../../../chunks/318.js","../../../../chunks/3225.js","../../../../chunks/3340.js","../../../../chunks/3535.js","../../../../chunks/3546.js","../../../../chunks/3593.js","../../../../chunks/385.js","../../../../chunks/3859.js","../../../../chunks/3894.js","../../../../chunks/3919.js","../../../../chunks/392.js","../../../../chunks/3943.js","../../../../chunks/3966.js","../../../../chunks/4000.js","../../../../chunks/4033.js","../../../../chunks/4072.js","../../../../chunks/4114.js","../../../../chunks/4123.js","../../../../chunks/4125.js","../../../../chunks/4152.js","../../../../chunks/4247.js","../../../../chunks/4334.js","../../../../chunks/4406.js","../../../../chunks/4452.js","../../../../chunks/4492.js","../../../../chunks/4521.js","../../../../chunks/4547.js","../../../../chunks/4685.js","../../../../chunks/4730.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4780.js","../../../../chunks/4876.js","../../../../chunks/4892.js","../../../../chunks/4954.js","../../../../chunks/499.js","../../../../chunks/5055.js","../../../../chunks/507.js","../../../../chunks/5081.js","../../../../chunks/5173.js","../../../../chunks/5230.js","../../../../chunks/524.js","../../../../chunks/5258.js","../../../../chunks/5260.js","../../../../chunks/5335.js","../../../../chunks/539.js","../../../../chunks/5433.js","../../../../chunks/5497.js","../../../../chunks/5559.js","../../../../chunks/5560.js","../../../../chunks/5573.js","../../../../chunks/5615.js","../../../../chunks/5649.js","../../../../chunks/5699.js","../../../../chunks/5765.js","../../../../chunks/5781.js","../../../../chunks/5827.js","../../../../chunks/5869.js","../../../../chunks/5908.js","../../../../chunks/6070.js","../../../../chunks/6103.js","../../../../chunks/620.js","../../../../chunks/6244.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6353.js","../../../../chunks/6355.js","../../../../chunks/6427.js","../../../../chunks/6493.js","../../../../chunks/6496.js","../../../../chunks/6551.js","../../../../chunks/6561.js","../../../../chunks/6588.js","../../../../chunks/6589.js","../../../../chunks/6703.js","../../../../chunks/6763.js","../../../../chunks/6844.js","../../../../chunks/6849.js","../../../../chunks/698.js","../../../../chunks/7023.js","../../../../chunks/7184.js","../../../../chunks/7211.js","../../../../chunks/7247.js","../../../../chunks/737.js","../../../../chunks/7382.js","../../../../chunks/7469.js","../../../../chunks/7485.js","../../../../chunks/7616.js","../../../../chunks/7642.js","../../../../chunks/7695.js","../../../../chunks/7716.js","../../../../chunks/7774.js","../../../../chunks/7819.js","../../../../chunks/7828.js","../../../../chunks/7914.js","../../../../chunks/7965.js","../../../../chunks/8037.js","../../../../chunks/8062.js","../../../../chunks/8171.js","../../../../chunks/8255.js","../../../../chunks/8261.js","../../../../chunks/8416.js","../../../../chunks/8432.js","../../../../chunks/8468.js","../../../../chunks/8469.js","../../../../chunks/8520.js","../../../../chunks/8624.js","../../../../chunks/8658.js","../../../../chunks/8666.js","../../../../chunks/8708.js","../../../../chunks/878.js","../../../../chunks/8823.js","../../../../chunks/8853.js","../../../../chunks/8895.js","../../../../chunks/8920.js","../../../../chunks/8954.js","../../../../chunks/8988.js","../../../../chunks/9016.js","../../../../chunks/9124.js","../../../../chunks/915.js","../../../../chunks/9243.js","../../../../chunks/9326.js","../../../../chunks/9343.js","../../../../chunks/9421.js","../../../../chunks/9489.js","../../../../chunks/9578.js","../../../../chunks/9594.js","../../../../chunks/9613.js","../../../../chunks/965.js","../../../../chunks/9710.js","../../../../chunks/9713.js","../../../../chunks/9755.js","../../../../chunks/9850.js","../../../../chunks/9899.js","../../../../chunks/9994.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|