@yina-npm/openrouterx 0.4.38 → 0.4.52
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/README.md +1145 -300
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +6 -6
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/required-server-files.json +16 -3
- package/app/.next/routes-manifest.json +26 -24
- package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +24 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +10 -10
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +4 -4
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/user/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/user/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +2 -2
- package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/me/route.js +1 -1
- package/app/.next/server/app/api/auth/me/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/status/route.js +1 -1
- package/app/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js +10 -2
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/activate-account/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/activate-account/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +9 -0
- package/app/.next/server/app/api/{cloud/auth → cli-tools/deepseek-tui-settings}/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +3 -0
- package/app/.next/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/message/route.js +3 -3
- package/app/.next/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +4 -4
- package/app/.next/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
- package/app/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/disabled/route.js +1 -1
- package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/network-analysis/route.js +2 -2
- package/app/.next/server/app/api/network-analysis/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next/server/app/api/startup-notices/route.js +2 -2
- package/app/.next/server/app/api/startup-notices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +4 -4
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
- package/app/.next/server/app/api/usage/api-keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/users/[id]/route.js +1 -1
- package/app/.next/server/app/api/users/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/users/route.js +1 -1
- package/app/.next/server/app/api/users/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/search/route.js +1 -1
- package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +4 -4
- package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +4 -4
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +4 -4
- package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +5 -5
- package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +6 -6
- package/app/.next/server/chunks/1350.js +4 -4
- package/app/.next/server/chunks/1476.js +1 -0
- package/app/.next/server/chunks/2415.js +17 -0
- package/app/.next/server/chunks/2506.js +4 -4
- package/app/.next/server/chunks/2560.js +1 -1
- package/app/.next/server/chunks/2574.js +1 -0
- package/app/.next/server/chunks/2722.js +58 -0
- package/app/.next/server/chunks/3110.js +56 -5
- package/app/.next/server/chunks/3493.js +2 -2
- package/app/.next/server/chunks/3593.js +2 -2
- package/app/.next/server/chunks/412.js +5 -5
- package/app/.next/server/chunks/{9641.js → 4565.js} +2 -2
- package/app/.next/server/chunks/4664.js +1 -1
- package/app/.next/server/chunks/5217.js +1 -1
- package/app/.next/server/chunks/5330.js +7 -5
- package/app/.next/server/chunks/5681.js +1 -1
- package/app/.next/server/chunks/6001.js +1 -1
- package/app/.next/server/chunks/6393.js +1 -1
- package/app/.next/server/chunks/7177.js +1 -0
- package/app/.next/server/chunks/7595.js +1 -1
- package/app/.next/server/chunks/7828.js +1 -1
- package/app/.next/server/chunks/7930.js +3 -0
- package/app/.next/server/chunks/8574.js +1 -0
- package/app/.next/server/chunks/8651.js +9 -0
- package/app/.next/server/chunks/8750.js +1 -0
- package/app/.next/server/chunks/8760.js +1 -1
- package/app/.next/server/chunks/8895.js +25 -16
- package/app/.next/server/chunks/9095.js +1 -0
- package/app/.next/server/chunks/9718.js +1 -1
- package/app/.next/server/chunks/9856.js +1 -1
- package/app/.next/server/functions-config-manifest.json +2 -30
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +2 -2
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/Q5oB2dEL7XeWBhjwqT_vo/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1321-621ed3470478397e.js +1 -0
- package/app/.next/static/chunks/4072-cc92fb1222a2752b.js +3 -0
- package/app/.next/static/chunks/{5095-42d435b0583b2f98.js → 5095-c2bb7e2fc99ab8c3.js} +2 -2
- package/app/.next/static/chunks/5497-bebd4378b1048022.js +7 -0
- package/app/.next/static/chunks/6069-7c51e16aef293430.js +58 -0
- package/app/.next/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-efbd0b93d35d25cc.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-acbac7a67319955a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-7fabe6d07b1f8823.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/focus-ui/{page-fb59dea0e48968bf.js → page-329b3a170ddd28c6.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e43ee64cc1f1547c.js +59 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-e0f570e37fcc4d53.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-31a6e1cb19ebc4d8.js → page-c3234f9c82b1a78e.js} +2 -2
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-979e3e3663264d2b.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-5040868a50d977bf.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-18d6399108c458a6.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/me/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/status/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/activate-account/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/models/disabled/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/network-analysis/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/startup-notices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/api-keys/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/users/[id]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/users/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/info/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/version/shutdown/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/app/page-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/{main-2237af167d2c1c35.js → main-b8d198db3858ff3e.js} +3 -3
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-814b95c8fc310a6a.js +1 -0
- package/app/.next/static/css/402ee8646e1afa89.css +1 -0
- package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/app/node_modules/sql.js/dist/sql-wasm.js +185 -0
- package/app/node_modules/sql.js/dist/sql-wasm.wasm +0 -0
- package/app/node_modules/sql.js/package.json +58 -0
- package/app/package.json +5 -1
- package/app/public/i18n/literals/ar.json +176 -173
- package/app/public/i18n/literals/bn.json +176 -173
- package/app/public/i18n/literals/cs.json +176 -173
- package/app/public/i18n/literals/da.json +176 -173
- package/app/public/i18n/literals/de.json +176 -173
- package/app/public/i18n/literals/el.json +176 -173
- package/app/public/i18n/literals/es.json +176 -173
- package/app/public/i18n/literals/fi.json +176 -173
- package/app/public/i18n/literals/fr.json +176 -173
- package/app/public/i18n/literals/he.json +176 -173
- package/app/public/i18n/literals/hi.json +176 -173
- package/app/public/i18n/literals/hu.json +176 -173
- package/app/public/i18n/literals/id.json +176 -173
- package/app/public/i18n/literals/it.json +176 -173
- package/app/public/i18n/literals/ja.json +176 -173
- package/app/public/i18n/literals/ko.json +176 -173
- package/app/public/i18n/literals/nl.json +176 -173
- package/app/public/i18n/literals/no.json +176 -173
- package/app/public/i18n/literals/pl.json +176 -173
- package/app/public/i18n/literals/pt-BR.json +176 -173
- package/app/public/i18n/literals/pt-PT.json +176 -173
- package/app/public/i18n/literals/ro.json +176 -173
- package/app/public/i18n/literals/ru.json +176 -173
- package/app/public/i18n/literals/sv.json +176 -173
- package/app/public/i18n/literals/th.json +176 -173
- package/app/public/i18n/literals/tl.json +176 -173
- package/app/public/i18n/literals/tr.json +176 -173
- package/app/public/i18n/literals/uk.json +176 -173
- package/app/public/i18n/literals/ur.json +176 -173
- package/app/public/i18n/literals/vi.json +176 -173
- package/app/public/i18n/literals/zh-CN.json +356 -359
- package/app/public/i18n/literals/zh-TW.json +184 -181
- package/app/public/providers/amp.png +0 -0
- package/app/public/providers/deepseek-tui.png +0 -0
- package/app/public/providers/jcode.png +0 -0
- package/app/public/providers/xiaomi-tokenplan.png +0 -0
- package/app/server.js +1 -1
- package/app/src/lib/db/migrate.js +56 -18
- package/app/src/mitm/config.js +16 -1
- package/app/src/mitm/handlers/antigravity.js +2 -1
- package/app/src/mitm/handlers/base.js +4 -1
- package/app/src/mitm/handlers/kiro.js +3 -1
- package/app/src/mitm/logger.js +11 -1
- package/app/src/mitm/server.js +18 -15
- package/package.json +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js +0 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +0 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +0 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +0 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +0 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +0 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +0 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +0 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +0 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +0 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +0 -1
- package/app/.next/server/chunks/2343.js +0 -1
- package/app/.next/server/chunks/3855.js +0 -1
- package/app/.next/server/chunks/4126.js +0 -1
- package/app/.next/server/chunks/4922.js +0 -9
- package/app/.next/server/chunks/5434.js +0 -1
- package/app/.next/server/chunks/5627.js +0 -17
- package/app/.next/server/chunks/723.js +0 -44
- package/app/.next/server/chunks/8866.js +0 -1
- package/app/.next/server/chunks/9300.js +0 -3
- package/app/.next/server/chunks/9460.js +0 -1
- package/app/.next/static/9qtW6KlzV_D2b828CZp1A/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1321-634f2d25db77d618.js +0 -1
- package/app/.next/static/chunks/4072-91de6609dc7e6753.js +0 -3
- package/app/.next/static/chunks/5497-4a0f0c365aea0ea7.js +0 -7
- package/app/.next/static/chunks/5964-08d6048e026d4245.js +0 -44
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-211e322f002d5464.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-69469b6440aff8d0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-95d31a6372622fcf.js +0 -59
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-7ae37df256035f59.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-9d071b63170b7f71.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-7762d83be0982941.js +0 -4
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-f77dc916ed5a6f99.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/me/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/callback/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/start/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/oidc/test/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/auth/status/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/activate-account/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/models/disabled/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/network-analysis/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/startup-notices/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/api-keys/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/users/[id]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/users/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/info/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/search/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/version/shutdown/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/app/page-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-1879675a73caf73c.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1879675a73caf73c.js +0 -1
- package/app/.next/static/css/f6642f5333f94810.css +0 -1
- /package/app/.next/static/{9qtW6KlzV_D2b828CZp1A → Q5oB2dEL7XeWBhjwqT_vo}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=3493,exports.ids=[3493],exports.modules={3493:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(48249),e=c(67484),f=c(72738),g=c(42889);function h(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function i({quotas:a=[],compact:b=!1}){if(!a||0===a.length)return null;let c=b?"py-1 px-1.5":"py-2 px-3",e=b?"text-[11px]":"text-sm",f=b?"text-[11px]":"text-sm",g=b?"text-[10px] leading-tight":"text-xs";return(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsx)("table",{className:"w-full table-fixed text-left",children:(0,d.jsx)("tbody",{children:a.map((a,i)=>{let j=void 0!==a.remainingPercentage?Math.round(a.remainingPercentage):h(a.used,a.total),k=j>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:j>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},l=function(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"-"}}(a.resetAt),m=function(a){if(!a)return null;try{let b=new Date(a),c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()),e=new Date(d);e.setDate(e.getDate()+1);let f="";f=b>=d&&b<e?"Today":b>=e&&b<new Date(e.getTime()+864e5)?"Tomorrow":b.toLocaleDateString("en-US",{month:"short",day:"numeric"});let g=b.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${f}, ${g}`}catch{return null}}(a.resetAt);return(0,d.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,d.jsx)("td",{className:`${c} w-[30%]`,children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-[10px] shrink-0",children:k.emoji}),(0,d.jsx)("span",{className:`${e} font-medium text-text-primary truncate`,children:a.name})]})}),(0,d.jsx)("td",{className:`${c} w-[45%]`,children:(0,d.jsxs)("div",{className:b?"space-y-1":"space-y-1.5",children:[(0,d.jsx)("div",{className:`${b?"h-1":"h-1.5"} rounded-full overflow-hidden border ${k.bgLight} ${0===j?"border-black/10 dark:border-white/10":"border-transparent"}`,children:(0,d.jsx)("div",{className:`h-full transition-all duration-300 ${k.bg}`,style:{width:`${Math.min(j,100)}%`}})}),(0,d.jsxs)("div",{className:`flex items-center justify-between ${b?"text-[10px]":"text-xs"}`,children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[a.used.toLocaleString()," / ",a.total>0?a.total.toLocaleString():"∞"]}),(0,d.jsxs)("span",{className:`font-medium ${k.text}`,children:[j,"%"]})]})]})}),(0,d.jsx)("td",{className:`${c} w-[25%]`,children:"-"!==l||m?b?(0,d.jsx)("div",{className:`${f} text-text-primary font-medium truncate`,title:m||"",children:"-"!==l?`in ${l}`:m}):(0,d.jsxs)("div",{className:"space-y-0.5",children:["-"!==l&&(0,d.jsxs)("div",{className:`${f} text-text-primary font-medium`,children:["in ",l]}),m&&(0,d.jsx)("div",{className:`${g} text-text-muted`,children:m})]}):(0,d.jsx)("div",{className:`${f} text-text-muted italic`,children:"N/A"})})]},i)})})})})}var j=c(95514),k=c(17660),l=c(50412),m=c(96919),n=c(41371);let o=a=>m.wb.includes(a.provider)&&("oauth"===a.authType||m.jO.includes(a.provider)),p=Math.ceil(
|
|
2
|
-
Install: ${a.join(" or ")}`:"";throw Error(`${c.error||"Failed to activate Codex account"}${b}`)}let d=c.restart?.success?"Codex was restarted automatically.":c.restart?.reason?`Restart Codex manually: ${c.restart.reason}`:"Restart Codex to use it.",e=c.keychain?.success?"Keychain auth was updated.":c.keychain?.reason?`Keychain auth failed: ${c.keychain.reason}`:"",f=c.tokenWarning?` ${c.tokenWarning}`:"",g=`${c.account||a.email||a.name||"Account"} is now written to local Codex auth. ${e} ${d}${f}`.trim();c.keychain?.success&&c.restart?.success?ah.success(g,"Codex account activated"):ah.error(g,"Codex activation incomplete")}catch(a){ah.error(a.message||"Failed to activate Codex account","Codex activation failed")}finally{ag(null)}}},[af,ah]),aq=(0,e.useCallback)(async()=>{if(!J){K(!0),M(p);try{let a=(await aj()).filter(o);await r(a,ak),I(new Date)}catch(a){console.error("Error refreshing all providers:",a)}finally{K(!1)}}},[J,aj,ak]),ar=x.filter(o),as=ar.filter(a=>"all"===Z||a.provider===Z),at=a=>{let b=(z[a.id]?.quotas||[]).map(a=>a.resetAt?new Date(a.resetAt).getTime():1/0).filter(a=>Number.isFinite(a));return b.length>0?Math.min(...b):1/0},au=[...as].sort((a,b)=>{if(u){let c=+(!1===a.isActive),d=+(!1===b.isActive);if(c!==d)return c-d}if(_){let c=at(a)-at(b);if(0!==c)return c}let c=m.wb.indexOf(a.provider),d=m.wb.indexOf(b.provider);return c!==d?c-d:a.provider.localeCompare(b.provider)}),av=Number.isFinite(v)&&v>0?Math.floor(v)*Math.max(1,Math.floor(w||1)):null,aw=av?au.slice(0,av):au,ax=a=>{let b=z[a.id]?.quotas;return!!b?.length&&b.some(a=>!!a.total&&!(a.total<=0)&&5>=h(a.used,a.total))},ay=(0,e.useCallback)(async(a,b)=>{if(a.length&&!ad){ae(!0);try{await Promise.all(a.map(a=>fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})}))),y(c=>c.map(c=>a.includes(c.id)?{...c,isActive:b}:c))}catch(a){console.error("Error bulk toggling connections:",a)}finally{ae(!1)}}},[ad]),az=Array.from(new Set(ar.map(a=>a.provider))).sort(),aA="all"===Z?"All providers":Z;return(au.length,Object.values(z).filter(a=>a?.quotas?.length>0).length,Object.values(z).reduce((a,b)=>b?.quotas?a+ +!!b.quotas.some(a=>30>h(a.used,a.total)&&a.total>0):a,0),N||0!==au.length)?(0,d.jsxs)("div",{className:c?"space-y-4":"space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("div",{className:"flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-3",children:(0,d.jsx)("h2",{className:"text-xl font-semibold text-text-primary",children:t})}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>ac(a=>!a),className:"flex h-8 items-center justify-between gap-1 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-haspopup":"menu","aria-expanded":ab,title:"Filter quota providers",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:["all"===Z?(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"apps"}):(0,d.jsx)(f.A,{src:`/providers/${Z}.png`,alt:Z,size:18,className:"size-[18px] rounded object-contain",fallbackText:Z.slice(0,2).toUpperCase()}),(0,d.jsx)("span",{className:"truncate capitalize hidden lg:inline",children:aA})]}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"expand_more"})]}),ab&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"fixed inset-0 z-30 bg-transparent","aria-label":"Close provider filter",onClick:()=>ac(!1)}),(0,d.jsxs)("div",{className:"absolute left-0 z-40 mt-2 w-64 overflow-hidden rounded-2xl border border-black/10 bg-surface/95 p-1.5 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10 dark:bg-surface/95 sm:w-72",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{$("all"),ac(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${"all"===Z?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[22px]",children:"apps"}),(0,d.jsx)("span",{className:"font-medium",children:"All providers"}),"all"===Z&&(0,d.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]}),(0,d.jsx)("div",{className:"my-1 h-px bg-black/10 dark:bg-white/10"}),(0,d.jsx)("div",{className:"max-h-72 overflow-y-auto pr-1",children:az.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{$(a),ac(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${Z===a?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,d.jsx)(f.A,{src:`/providers/${a}.png`,alt:a,size:24,className:"size-6 rounded-md object-contain",fallbackText:a.slice(0,2).toUpperCase()}),(0,d.jsx)("span",{className:"font-medium capitalize",children:a}),Z===a&&(0,d.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]},a))})]})]})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>aa(a=>!a),className:`flex h-8 shrink-0 items-center gap-1 rounded-lg border px-2 text-xs transition-colors ${_?"border-amber-500/40 bg-amber-500/10 text-amber-500":"border-black/10 text-text-primary hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5"}`,title:"Sort accounts by earliest quota reset time",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"hourglass_top"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Expiring first"})]}),!a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{ay(au.filter(a=>(a.isActive??!0)&&ax(a)).map(a=>a.id),!1)},disabled:ad,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-red-500/30 px-2 text-xs text-red-500 transition-colors hover:bg-red-500/10 disabled:opacity-50",title:"Disable connections with depleted quota (within current filter)",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"block"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Turn off Empty"})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{ay(au.filter(a=>!(a.isActive??!0)&&!ax(a)).map(a=>a.id),!0)},disabled:ad,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-emerald-500/30 px-2 text-xs text-emerald-500 transition-colors hover:bg-emerald-500/10 disabled:opacity-50",title:"Enable connections that still have quota (within current filter)",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Turn on Available"})]})]}),(0,d.jsxs)("button",{onClick:()=>G(a=>!a),className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5",title:F?"Disable auto-refresh":"Enable auto-refresh",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px] ${F?"text-primary":"text-text-muted"}`,children:F?"toggle_on":"toggle_off"}),(0,d.jsx)("span",{className:"hidden text-text-primary sm:inline",children:"Auto-refresh"}),F&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted tabular-nums",children:["(",L,"s)"]})]}),(0,d.jsx)("button",{type:"button",onClick:aq,disabled:J,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5 disabled:opacity-50",title:"Refresh all",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px] ${J?"animate-spin":""}`,children:"refresh"})})]})]}),(0,d.jsx)("div",{className:q,children:aw.map(b=>{let c,e,g=z[b.id],h=B[b.id],l=D[b.id],m=!1===b.isActive,n=P===b.id||R===b.id,o=af===b.id;return(0,d.jsxs)(k.default,{padding:"none",className:`min-w-0 ${m?"opacity-60":""}`,children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-black/10 dark:border-white/10",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsx)("div",{className:"w-8 h-8 shrink-0 rounded-md flex items-center justify-center overflow-hidden",children:(0,d.jsx)(f.A,{src:`/providers/${b.provider}.png`,alt:b.provider,size:32,className:"object-contain",fallbackText:b.provider?.slice(0,2).toUpperCase()||"PR"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-primary capitalize truncate",children:b.provider}),(e=(c=a=>"string"==typeof a&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a))(b.email)?b.email:(c(b.name),b.name))?(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:e}):null]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[ai&&"codex"===b.provider&&(0,d.jsxs)("button",{type:"button",onClick:()=>ap(b),disabled:n||o,className:"h-8 inline-flex items-center gap-1 rounded-lg border border-emerald-500/30 px-2 text-xs font-medium text-emerald-600 hover:bg-emerald-500/10 transition-colors disabled:opacity-50 dark:text-emerald-400",title:"Activate this account in local Codex",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] ${o?"animate-pulse":""}`,children:"key"}),(0,d.jsx)("span",{className:"hidden xl:inline",children:"Activate"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>al(b.id,b.provider),disabled:h||n,className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 transition-colors disabled:opacity-50",title:"Refresh quota",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] text-text-muted ${h?"animate-spin":""}`,children:"refresh"})}),!a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",onClick:()=>{W(b),U(!0)},disabled:n,className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary transition-colors disabled:opacity-50",title:"Edit connection",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,d.jsx)("button",{type:"button",onClick:()=>am(b.id),disabled:n,className:"p-1.5 rounded-lg hover:bg-red-500/10 text-red-500 transition-colors disabled:opacity-50",title:"Delete connection",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] ${P===b.id?"animate-pulse":""}`,children:"delete"})}),(0,d.jsx)("div",{className:"inline-flex items-center pl-0.5",title:b.isActive??!0?"Disable connection":"Enable connection",children:(0,d.jsx)(j.default,{size:"sm",checked:b.isActive??!0,disabled:n,onChange:a=>an(b.id,a)})})]})]})]})}),(0,d.jsx)("div",{className:"px-2 py-1.5",children:h?(0,d.jsx)("div",{className:"text-center py-5 text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] animate-spin",children:"progress_activity"})}):l?(0,d.jsxs)("div",{className:"text-center py-5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] text-red-500",children:"error"}),(0,d.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:l})]}):g?.message?(0,d.jsx)("div",{className:"text-center py-5",children:(0,d.jsx)("p",{className:"text-xs text-text-muted",children:g.message})}):(0,d.jsx)(i,{quotas:g?.quotas,compact:!0})})]},b.id)})}),!a&&(0,d.jsx)(l.wI,{isOpen:T,connection:V,proxyPools:X,onSave:ao,onClose:()=>{U(!1),W(null)}})]}):(0,d.jsx)(k.default,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[64px] text-text-muted opacity-20",children:"cloud_off"}),(0,d.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-primary",children:"No Providers Connected"}),(0,d.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-md mx-auto",children:"Connect to providers with OAuth to track your API quota limits and usage."})]})})}}};
|
|
1
|
+
"use strict";exports.id=3493,exports.ids=[3493],exports.modules={3493:(a,b,c)=>{c.d(b,{A:()=>s});var d=c(48249),e=c(67484),f=c(72738),g=c(42889);function h(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function i({quotas:a=[],compact:b=!1}){if(!a||0===a.length)return null;let c=b?"py-1 px-1.5":"py-2 px-3",e=b?"text-[11px]":"text-sm",f=b?"text-[11px]":"text-sm",g=b?"text-[10px] leading-tight":"text-xs";return(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsx)("table",{className:"w-full table-fixed text-left",children:(0,d.jsx)("tbody",{children:a.map((a,i)=>{let j=void 0!==a.remainingPercentage?Math.round(a.remainingPercentage):h(a.used,a.total),k=j>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:j>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},l=function(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"-"}}(a.resetAt),m=function(a){if(!a)return null;try{let b=new Date(a),c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()),e=new Date(d);e.setDate(e.getDate()+1);let f="";f=b>=d&&b<e?"Today":b>=e&&b<new Date(e.getTime()+864e5)?"Tomorrow":b.toLocaleDateString("en-US",{month:"short",day:"numeric"});let g=b.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${f}, ${g}`}catch{return null}}(a.resetAt);return(0,d.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,d.jsx)("td",{className:`${c} w-[30%]`,children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-[10px] shrink-0",children:k.emoji}),(0,d.jsx)("span",{className:`${e} font-medium text-text-primary truncate`,children:a.name})]})}),(0,d.jsx)("td",{className:`${c} w-[45%]`,children:(0,d.jsxs)("div",{className:b?"space-y-1":"space-y-1.5",children:[(0,d.jsx)("div",{className:`${b?"h-1":"h-1.5"} rounded-full overflow-hidden border ${k.bgLight} ${0===j?"border-black/10 dark:border-white/10":"border-transparent"}`,children:(0,d.jsx)("div",{className:`h-full transition-all duration-300 ${k.bg}`,style:{width:`${Math.min(j,100)}%`}})}),(0,d.jsxs)("div",{className:`flex items-center justify-between ${b?"text-[10px]":"text-xs"}`,children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[a.used.toLocaleString()," / ",a.total>0?a.total.toLocaleString():"∞"]}),(0,d.jsxs)("span",{className:`font-medium ${k.text}`,children:[j,"%"]})]})]})}),(0,d.jsx)("td",{className:`${c} w-[25%]`,children:"-"!==l||m?b?(0,d.jsx)("div",{className:`${f} text-text-primary font-medium truncate`,title:m||"",children:"-"!==l?`in ${l}`:m}):(0,d.jsxs)("div",{className:"space-y-0.5",children:["-"!==l&&(0,d.jsxs)("div",{className:`${f} text-text-primary font-medium`,children:["in ",l]}),m&&(0,d.jsx)("div",{className:`${g} text-text-muted`,children:m})]}):(0,d.jsx)("div",{className:`${f} text-text-muted italic`,children:"N/A"})})]},i)})})})})}var j=c(95514),k=c(17660),l=c(50412),m=c(96919),n=c(41371);let o=a=>m.wb.includes(a.provider)&&("oauth"===a.authType||m.jO.includes(a.provider)),p=Math.ceil(1),q=a=>new Promise(b=>setTimeout(b,a));async function r(a,b){for(let c=0;c<a.length;c+=1){c>0&&await q(1e3);let d=a[c];await b(d.id,d.provider)}}function s({readOnly:a=!1,allowCodexActivation:b=!1,embedded:c=!1,gridClassName:q="grid grid-cols-1 md:grid-cols-2 gap-3",title:t="Provider Limits",activeFirst:u=!1,maxRows:v=null,maxColumns:w=4}){let[x,y]=(0,e.useState)([]),[z,A]=(0,e.useState)({}),[B,C]=(0,e.useState)({}),[D,E]=(0,e.useState)({}),[F,G]=(0,e.useState)(()=>!0),[H,I]=(0,e.useState)(null),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(p),[N,O]=(0,e.useState)(!0),[P,Q]=(0,e.useState)(null),[R,S]=(0,e.useState)(null),[T,U]=(0,e.useState)(!1),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)([]),[Z,$]=(0,e.useState)("all"),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(null),ah=(0,n.i)(),ai=!a||b;(0,e.useRef)(null),(0,e.useRef)(null);let aj=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/providers/client");if(!a.ok)throw Error("Failed to fetch connections");let b=(await a.json()).connections||[];return y(b),b}catch(a){return console.error("Error fetching connections:",a),y([]),[]}},[]),ak=(0,e.useCallback)(async(a,b)=>{C(b=>({...b,[a]:!0})),E(b=>({...b,[a]:null}));try{console.log(`[ProviderLimits] Fetching quota for ${b} (${a})`);let c=await fetch(`/api/usage/${a}`);if(!c.ok){let d=(await c.json().catch(()=>({}))).error||c.statusText;if(404===c.status)return void console.warn(`[ProviderLimits] Connection not found for ${b}, skipping`);if(401===c.status){console.warn(`[ProviderLimits] Auth error for ${b}:`,d),A(b=>({...b,[a]:{quotas:[],message:d}}));return}throw Error(`HTTP ${c.status}: ${d}`)}let d=await c.json();console.log(`[ProviderLimits] Got quota for ${b}:`,d);let e=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":b.quotas&&Object.entries(b.quotas).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])=>{c.push({name:a,used:b.used||0,total:b.total||0,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"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,resetAt:b.resetAt||null})})}}catch(b){return console.error(`Error parsing quota data for ${a}:`,b),[]}let d=(0,g.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(a.get(d)??999)-(a.get(e)??999)})}return c}(b,d);A(b=>({...b,[a]:{quotas:e,plan:d.plan||null,message:d.message||null,raw:d}}))}catch(c){console.error(`[ProviderLimits] Error fetching quota for ${b} (${a}):`,c),E(b=>({...b,[a]:c.message||"Failed to fetch quota"}))}finally{C(b=>({...b,[a]:!1}))}},[]);(0,e.useCallback)(async(a,b)=>{await ak(a,b),I(new Date)},[ak]),(0,e.useCallback)(async a=>{if(confirm("Delete this connection?")){Q(a);try{(await fetch(`/api/providers/${a}`,{method:"DELETE"})).ok&&(y(b=>b.filter(b=>b.id!==a)),A(b=>{let c={...b};return delete c[a],c}),C(b=>{let c={...b};return delete c[a],c}),E(b=>{let c={...b};return delete c[a],c}))}catch(a){console.error("Error deleting connection:",a)}finally{Q(null)}}},[]);let al=(0,e.useCallback)(async(a,b)=>{S(a);try{(await fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok&&y(c=>c.map(c=>c.id===a?{...c,isActive:b}:c))}catch(a){console.error("Error updating connection status:",a)}finally{S(null)}},[]),am=(0,e.useCallback)(async a=>{if(!V?.id)return;let b=V.id,c=V.provider;try{(await fetch(`/api/providers/${b}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok&&(await aj(),U(!1),W(null),m.wb.includes(c)&&await ak(b,c))}catch(a){console.error("Error saving connection:",a)}},[V,aj,ak]),an=(0,e.useCallback)(async a=>{if(a?.id&&!af){ag(a.id);try{let b=await fetch("/api/cli-tools/codex-settings/activate-account",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionId:a.id,restartCodex:!0})}),c=await b.json().catch(()=>({}));if(!b.ok){let a=Array.isArray(c.installHints)&&c.installHints.length>0?c.installHints:c.installCommand?[c.installCommand]:[],b=a.length?`
|
|
2
|
+
Install: ${a.join(" or ")}`:"";throw Error(`${c.error||"Failed to activate Codex account"}${b}`)}let d=c.restart?.success?"Codex was restarted automatically.":c.restart?.reason?`Restart Codex manually: ${c.restart.reason}`:"Restart Codex to use it.",e=c.keychain?.success?"Keychain auth was updated.":c.keychain?.reason?`Keychain auth failed: ${c.keychain.reason}`:"",f=c.tokenWarning?` ${c.tokenWarning}`:"",g=`${c.account||a.email||a.name||"Account"} is now written to local Codex auth. ${e} ${d}${f}`.trim();c.keychain?.success&&c.restart?.success?ah.success(g,"Codex account activated"):ah.error(g,"Codex activation incomplete")}catch(a){ah.error(a.message||"Failed to activate Codex account","Codex activation failed")}finally{ag(null)}}},[af,ah]),ao=(0,e.useCallback)(async()=>{if(!J){K(!0),M(p);try{let a=(await aj()).filter(o);await r(a,ak),I(new Date)}catch(a){console.error("Error refreshing all providers:",a)}finally{K(!1)}}},[J,aj,ak]),ap=x.filter(o),aq=ap.filter(a=>"all"===Z||a.provider===Z),ar=a=>{let b=(z[a.id]?.quotas||[]).map(a=>a.resetAt?new Date(a.resetAt).getTime():1/0).filter(a=>Number.isFinite(a));return b.length>0?Math.min(...b):1/0},as=[...aq].sort((a,b)=>{if(u){let c=+(!1===a.isActive),d=+(!1===b.isActive);if(c!==d)return c-d}if(_){let c=ar(a)-ar(b);if(0!==c)return c}let c=m.wb.indexOf(a.provider),d=m.wb.indexOf(b.provider);return c!==d?c-d:a.provider.localeCompare(b.provider)}),at=Number.isFinite(v)&&v>0?Math.floor(v)*Math.max(1,Math.floor(w||1)):null,au=at?as.slice(0,at):as,av=a=>{let b=z[a.id]?.quotas;return!!b?.length&&b.some(a=>!!a.total&&!(a.total<=0)&&5>=h(a.used,a.total))},aw=(0,e.useCallback)(async(a,b)=>{if(a.length&&!ad){ae(!0);try{await Promise.all(a.map(a=>fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})}))),y(c=>c.map(c=>a.includes(c.id)?{...c,isActive:b}:c))}catch(a){console.error("Error bulk toggling connections:",a)}finally{ae(!1)}}},[ad]),ax=Array.from(new Set(ap.map(a=>a.provider))).sort(),ay="all"===Z?"All providers":Z;return(as.length,Object.values(z).filter(a=>a?.quotas?.length>0).length,Object.values(z).reduce((a,b)=>b?.quotas?a+ +!!b.quotas.some(a=>30>h(a.used,a.total)&&a.total>0):a,0),N||0!==as.length)?(0,d.jsxs)("div",{className:c?"space-y-4":"space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("div",{className:"flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-3",children:(0,d.jsx)("h2",{className:"text-xl font-semibold text-text-primary",children:t})}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>ac(a=>!a),className:"flex h-8 items-center justify-between gap-1 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-haspopup":"menu","aria-expanded":ab,title:"Filter quota providers",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:["all"===Z?(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"apps"}):(0,d.jsx)(f.A,{src:`/providers/${Z}.png`,alt:Z,size:18,className:"size-[18px] rounded object-contain",fallbackText:Z.slice(0,2).toUpperCase()}),(0,d.jsx)("span",{className:"truncate capitalize hidden lg:inline",children:ay})]}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"expand_more"})]}),ab&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"fixed inset-0 z-30 bg-transparent","aria-label":"Close provider filter",onClick:()=>ac(!1)}),(0,d.jsxs)("div",{className:"absolute left-0 z-40 mt-2 w-64 overflow-hidden rounded-2xl border border-black/10 bg-surface/95 p-1.5 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10 dark:bg-surface/95 sm:w-72",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{$("all"),ac(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${"all"===Z?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[22px]",children:"apps"}),(0,d.jsx)("span",{className:"font-medium",children:"All providers"}),"all"===Z&&(0,d.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]}),(0,d.jsx)("div",{className:"my-1 h-px bg-black/10 dark:bg-white/10"}),(0,d.jsx)("div",{className:"max-h-72 overflow-y-auto pr-1",children:ax.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{$(a),ac(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${Z===a?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,d.jsx)(f.A,{src:`/providers/${a}.png`,alt:a,size:24,className:"size-6 rounded-md object-contain",fallbackText:a.slice(0,2).toUpperCase()}),(0,d.jsx)("span",{className:"font-medium capitalize",children:a}),Z===a&&(0,d.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]},a))})]})]})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>aa(a=>!a),className:`flex h-8 shrink-0 items-center gap-1 rounded-lg border px-2 text-xs transition-colors ${_?"border-amber-500/40 bg-amber-500/10 text-amber-500":"border-black/10 text-text-primary hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5"}`,title:"Sort accounts by earliest quota reset time",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"hourglass_top"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Expiring first"})]}),!a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{aw(as.filter(a=>(a.isActive??!0)&&av(a)).map(a=>a.id),!1)},disabled:ad,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-red-500/30 px-2 text-xs text-red-500 transition-colors hover:bg-red-500/10 disabled:opacity-50",title:"Disable connections with depleted quota (within current filter)",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"block"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Turn off Empty"})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{aw(as.filter(a=>!(a.isActive??!0)&&!av(a)).map(a=>a.id),!0)},disabled:ad,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-emerald-500/30 px-2 text-xs text-emerald-500 transition-colors hover:bg-emerald-500/10 disabled:opacity-50",title:"Enable connections that still have quota (within current filter)",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Turn on Available"})]})]}),(0,d.jsxs)("button",{onClick:()=>G(a=>!a),className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5",title:F?"Disable auto-refresh":"Enable auto-refresh",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px] ${F?"text-primary":"text-text-muted"}`,children:F?"toggle_on":"toggle_off"}),(0,d.jsx)("span",{className:"hidden text-text-primary sm:inline",children:"Auto-refresh"}),F&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted tabular-nums",children:["(",L,"s)"]})]}),(0,d.jsx)("button",{type:"button",onClick:ao,disabled:J,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5 disabled:opacity-50",title:"Refresh all",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px] ${J?"animate-spin":""}`,children:"refresh"})})]})]}),(0,d.jsx)("div",{className:q,children:au.map(b=>{let c,e,g=z[b.id],h=B[b.id],l=D[b.id],m=!1===b.isActive,n=P===b.id||R===b.id,o=af===b.id;return(0,d.jsxs)(k.default,{padding:"none",className:`min-w-0 ${m?"opacity-60":""}`,children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-black/10 dark:border-white/10",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsx)("div",{className:"w-8 h-8 shrink-0 rounded-md flex items-center justify-center overflow-hidden",children:(0,d.jsx)(f.A,{src:`/providers/${b.provider}.png`,alt:b.provider,size:32,className:"object-contain",fallbackText:b.provider?.slice(0,2).toUpperCase()||"PR"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-primary capitalize truncate",children:b.provider}),(e=(c=a=>"string"==typeof a&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a))(b.email)?b.email:(c(b.name),b.name))?(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:e}):null]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[ai&&"codex"===b.provider&&(0,d.jsxs)("button",{type:"button",onClick:()=>an(b),disabled:n||o,className:"h-8 inline-flex items-center gap-1 rounded-lg border border-emerald-500/30 px-2 text-xs font-medium text-emerald-600 hover:bg-emerald-500/10 transition-colors disabled:opacity-50 dark:text-emerald-400",title:"Activate this account in local Codex",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] ${o?"animate-pulse":""}`,children:"key"}),(0,d.jsx)("span",{children:"Activate"})]}),!a&&(0,d.jsx)("div",{className:"inline-flex items-center",title:b.isActive??!0?"Disable connection":"Enable connection",children:(0,d.jsx)(j.default,{size:"sm",checked:b.isActive??!0,disabled:n,onChange:a=>al(b.id,a)})})]})]})}),(0,d.jsx)("div",{className:"px-2 py-1.5",children:h?(0,d.jsx)("div",{className:"text-center py-5 text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] animate-spin",children:"progress_activity"})}):l?(0,d.jsxs)("div",{className:"text-center py-5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] text-red-500",children:"error"}),(0,d.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:l})]}):g?.message?(0,d.jsx)("div",{className:"text-center py-5",children:(0,d.jsx)("p",{className:"text-xs text-text-muted",children:g.message})}):(0,d.jsx)(i,{quotas:g?.quotas,compact:!0})})]},b.id)})}),!a&&(0,d.jsx)(l.wI,{isOpen:T,connection:V,proxyPools:X,onSave:am,onClose:()=>{U(!1),W(null)}})]}):(0,d.jsx)(k.default,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[64px] text-text-muted opacity-20",children:"cloud_off"}),(0,d.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-primary",children:"No Providers Connected"}),(0,d.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-md mx-auto",children:"Connect to providers with OAuth to track your API quota limits and usage."})]})})}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
exports.id=3593,exports.ids=[3593],exports.modules={53593:(a,b,c)=>{
|
|
1
|
+
"use strict";exports.id=3593,exports.ids=[3593],exports.modules={53593:(a,b,c)=>{c.d(b,{createSqlJsAdapter:()=>k});var d=c(73024),e=c.n(d),f=c(46293),g=c.n(f),h=c(63775);let i=null;async function j(){return i||(i=await g()())}async function k(a){let b=await j(),c=e().existsSync(a)?e().readFileSync(a):null,d=new b.Database(c);d.exec(h.oG);let f=!1,g=null;function i(){let b=d.export();e().writeFileSync(a,Buffer.from(b)),f=!1}function k(){f=!0,g&&clearTimeout(g),g=setTimeout(()=>{if(g=null,f)try{i()}catch(a){console.error("[sqljs] save failed:",a)}},100)}function l(a){if(!(!a||Array.isArray(a)&&0===a.length))return a}let m=()=>{if(f)try{i()}catch{}};return process.on("beforeExit",m),process.on("SIGINT",m),process.on("SIGTERM",m),{driver:"sql.js",run:function(a,b=[]){let c=d.prepare(a);try{c.bind(l(b)),c.step();let a=d.getRowsModified(),e=d.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0]??null;return k(),{changes:a,lastInsertRowid:e}}finally{c.free()}},get:function(a,b=[]){let c=d.prepare(a);try{if(c.bind(l(b)),c.step())return c.getAsObject();return}finally{c.free()}},all:function(a,b=[]){let c=d.prepare(a);try{c.bind(l(b));let a=[];for(;c.step();)a.push(c.getAsObject());return a}finally{c.free()}},exec:function(a){d.exec(a),k()},transaction:function(a){let b=`sp_${Math.random().toString(36).slice(2)}`;d.exec(`SAVEPOINT ${b}`);try{let c=a();return d.exec(`RELEASE ${b}`),k(),c}catch(a){try{d.exec(`ROLLBACK TO ${b}`),d.exec(`RELEASE ${b}`)}catch{}throw a}},close:function(){g&&clearTimeout(g),f&&i(),d.close()},raw:d}}},63775:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
3
|
PRAGMA synchronous = NORMAL;
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
@@ -6,4 +6,4 @@ PRAGMA mmap_size = 30000000;
|
|
|
6
6
|
PRAGMA cache_size = -64000;
|
|
7
7
|
PRAGMA foreign_keys = ON;
|
|
8
8
|
PRAGMA busy_timeout = 5000;
|
|
9
|
-
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},86649:(a,b,c)=>{a=c.nmd(a);var d=void 0,e=function(b){return d||(d=new Promise(function(d,e){var f,g=void 0!==b?b:{},h=g.onAbort;g.onAbort=function(a){e(Error(a)),h&&h(a)},g.postRun=g.postRun||[],g.postRun.push(function(){d(g)}),a=void 0,o||=void 0!==g?g:{};var i=!!globalThis.window,j=!!globalThis.WorkerGlobalScope,k=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type;o.onRuntimeInitialized=function(){function a(a,b){switch(typeof b){case"boolean":U(a,+!!b);break;case"number":P(a,b);break;case"string":R(a,b,-1,-1);break;case"object":if(null===b)Q(a);else if(null!=b.length){var c=bq(b.length);v.set(b,c),S(a,c,b.length,-1),br(c)}else W(a,"Wrong API use : tried to return a value of an unknown type ("+b+").",-1);break;default:Q(a)}}function b(a,b){for(var c=[],d=0;d<a;d+=1){var e=T(b+4*d,"i32"),f=K(e);if(1===f||2===f)e=O(e);else if(3===f)e=M(e);else if(4===f){e=L(f=e),f=N(f);for(var g=new Uint8Array(e),h=0;h<e;h+=1)g[h]=v[f+h];e=g}else e=null;c.push(e)}return c}function c(a,b){this.Qa=a,this.db=b,this.Oa=1,this.mb=[]}function d(a,b){if(this.db=b,this.fb=bf(a),null===this.fb)throw Error("Unable to allocate memory for the SQL string");this.lb=this.fb,this.$a=this.sb=null}function e(a){if(this.filename="dbfile_"+(0xffffffff*Math.random()>>>0),null!=a){var b=this.filename,c="/",d=b;if(c&&(c="string"==typeof c?c:aw(c),d=b?$(c+"/"+b):c),d=function(a,b=438){return aM(a,4095&b|32768,0)}(d,b=ak(!0,!0)),a){if("string"==typeof a){c=Array(a.length);for(var e=0,g=a.length;e<g;++e)c[e]=a.charCodeAt(e);a=c}aU(d,146|b),a$(c=aW(d,577),a,0,a.length,0),aX(c),aU(d,b)}}this.handleError(h(this.filename,f)),this.db=T(f,"i32"),Z(this.db),this.gb={},this.Sa={}}var f=bv(4),g=o.cwrap,h=g("sqlite3_open","number",["string","number"]),i=g("sqlite3_close_v2","number",["number"]),j=g("sqlite3_exec","number",["number","string","number","number","number"]),k=g("sqlite3_changes","number",["number"]),l=g("sqlite3_prepare_v2","number",["number","string","number","number","number"]),m=g("sqlite3_sql","string",["number"]),n=g("sqlite3_normalized_sql","string",["number"]),p=g("sqlite3_prepare_v2","number",["number","number","number","number","number"]),q=g("sqlite3_bind_text","number",["number","number","number","number","number"]),r=g("sqlite3_bind_blob","number",["number","number","number","number","number"]),s=g("sqlite3_bind_double","number",["number","number","number"]),t=g("sqlite3_bind_int","number",["number","number","number"]),u=g("sqlite3_bind_parameter_index","number",["number","string"]),w=g("sqlite3_step","number",["number"]),x=g("sqlite3_errmsg","string",["number"]),y=g("sqlite3_column_count","number",["number"]),z=g("sqlite3_data_count","number",["number"]),A=g("sqlite3_column_double","number",["number","number"]),B=g("sqlite3_column_text","string",["number","number"]),C=g("sqlite3_column_blob","number",["number","number"]),D=g("sqlite3_column_bytes","number",["number","number"]),E=g("sqlite3_column_type","number",["number","number"]),F=g("sqlite3_column_name","string",["number","number"]),G=g("sqlite3_reset","number",["number"]),H=g("sqlite3_clear_bindings","number",["number"]),I=g("sqlite3_finalize","number",["number"]),J=g("sqlite3_create_function_v2","number","number string number number number number number number number".split(" ")),K=g("sqlite3_value_type","number",["number"]),L=g("sqlite3_value_bytes","number",["number"]),M=g("sqlite3_value_text","string",["number"]),N=g("sqlite3_value_blob","number",["number"]),O=g("sqlite3_value_double","number",["number"]),P=g("sqlite3_result_double","",["number","number"]),Q=g("sqlite3_result_null","",["number"]),R=g("sqlite3_result_text","",["number","string","number","number"]),S=g("sqlite3_result_blob","",["number","number","number","number"]),U=g("sqlite3_result_int","",["number","number"]),W=g("sqlite3_result_error","",["number","string","number"]),X=g("sqlite3_aggregate_context","number",["number","number"]),Z=g("RegisterExtensionFunctions","number",["number"]),_=g("sqlite3_update_hook","number",["number","number","number"]);c.prototype.bind=function(a){if(!this.Qa)throw"Statement closed";return this.reset(),Array.isArray(a)?this.Gb(a):null==a||"object"!=typeof a||this.Hb(a)},c.prototype.step=function(){if(!this.Qa)throw"Statement closed";this.Oa=1;var a=w(this.Qa);switch(a){case 100:return!0;case 101:return!1;default:throw this.db.handleError(a)}},c.prototype.Ab=function(a){return null==a&&(a=this.Oa,this.Oa+=1),A(this.Qa,a)},c.prototype.Ob=function(a){if(null==a&&(a=this.Oa,this.Oa+=1),a=B(this.Qa,a),"function"!=typeof BigInt)throw Error("BigInt is not supported");return BigInt(a)},c.prototype.Tb=function(a){return null==a&&(a=this.Oa,this.Oa+=1),B(this.Qa,a)},c.prototype.getBlob=function(a){null==a&&(a=this.Oa,this.Oa+=1);var b=D(this.Qa,a);a=C(this.Qa,a);for(var c=new Uint8Array(b),d=0;d<b;d+=1)c[d]=v[a+d];return c},c.prototype.get=function(a,b){b=b||{},null!=a&&this.bind(a)&&this.step(),a=[];for(var c=z(this.Qa),d=0;d<c;d+=1)switch(E(this.Qa,d)){case 1:var e=b.useBigInt?this.Ob(d):this.Ab(d);a.push(e);break;case 2:a.push(this.Ab(d));break;case 3:a.push(this.Tb(d));break;case 4:a.push(this.getBlob(d));break;default:a.push(null)}return a},c.prototype.qb=function(){for(var a=[],b=y(this.Qa),c=0;c<b;c+=1)a.push(F(this.Qa,c));return a},c.prototype.zb=function(a,b){a=this.get(a,b),b=this.qb();for(var c={},d=0;d<b.length;d+=1)c[b[d]]=a[d];return c},c.prototype.Sb=function(){return m(this.Qa)},c.prototype.Pb=function(){return n(this.Qa)},c.prototype.run=function(a){return null!=a&&this.bind(a),this.step(),this.reset()},c.prototype.wb=function(a,b){null==b&&(b=this.Oa,this.Oa+=1),a=bf(a),this.mb.push(a),this.db.handleError(q(this.Qa,b,a,-1,0))},c.prototype.Fb=function(a,b){null==b&&(b=this.Oa,this.Oa+=1);var c=bq(a.length);v.set(a,c),this.mb.push(c),this.db.handleError(r(this.Qa,b,c,a.length,0))},c.prototype.vb=function(a,b){null==b&&(b=this.Oa,this.Oa+=1),this.db.handleError((a===(0|a)?t:s)(this.Qa,b,a))},c.prototype.Ib=function(a){null==a&&(a=this.Oa,this.Oa+=1),r(this.Qa,a,0,0,0)},c.prototype.xb=function(a,b){switch(null==b&&(b=this.Oa,this.Oa+=1),typeof a){case"string":this.wb(a,b);return;case"number":this.vb(a,b);return;case"bigint":this.wb(a.toString(),b);return;case"boolean":this.vb(a+0,b);return;case"object":if(null===a)return void this.Ib(b);if(null!=a.length)return void this.Fb(a,b)}throw"Wrong API use : tried to bind a value of an unknown type ("+a+")."},c.prototype.Hb=function(a){var b=this;return Object.keys(a).forEach(function(c){var d=u(b.Qa,c);0!==d&&b.xb(a[c],d)}),!0},c.prototype.Gb=function(a){for(var b=0;b<a.length;b+=1)this.xb(a[b],b+1);return!0},c.prototype.reset=function(){return this.freemem(),0===H(this.Qa)&&0===G(this.Qa)},c.prototype.freemem=function(){for(var a;void 0!==(a=this.mb.pop());)br(a)},c.prototype.Ya=function(){this.freemem();var a=0===I(this.Qa);return delete this.db.gb[this.Qa],this.Qa=0,a},d.prototype.next=function(){if(null===this.fb)return{done:!0};if(null!==this.$a&&(this.$a.Ya(),this.$a=null),!this.db.db)throw this.ob(),Error("Database closed");var a=bw(),b=bv(4);V(f),V(b);try{this.db.handleError(p(this.db.db,this.lb,-1,f,b)),this.lb=T(b,"i32");var d=T(f,"i32");if(0===d)return this.ob(),{done:!0};return this.$a=new c(d,this.db),this.db.gb[d]=this.$a,{value:this.$a,done:!1}}catch(a){throw this.sb=Y(this.lb),this.ob(),a}finally{bu(a)}},d.prototype.ob=function(){br(this.fb),this.fb=null},d.prototype.Qb=function(){return null!==this.sb?this.sb:Y(this.lb)},"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator&&(d.prototype[Symbol.iterator]=function(){return this}),e.prototype.run=function(a,b){if(!this.db)throw"Database closed";if(b){a=this.tb(a,b);try{a.step()}finally{a.Ya()}}else this.handleError(j(this.db,a,0,0,f));return this},e.prototype.exec=function(a,b,d){if(!this.db)throw"Database closed";var e=null,g=null,h=null;try{h=g=bf(a);var i=bv(4);for(a=[];0!==T(h,"i8");){V(f),V(i),this.handleError(p(this.db,h,-1,f,i));var j=T(f,"i32");if(h=T(i,"i32"),0!==j){var k=null;for(e=new c(j,this),null!=b&&e.bind(b);e.step();)null===k&&(k={columns:e.qb(),values:[]},a.push(k)),k.values.push(e.get(null,d));e.Ya()}}return a}catch(a){throw e&&e.Ya(),a}finally{g&&br(g)}},e.prototype.Mb=function(a,b,c,d,e){"function"==typeof b&&(d=c,c=b,b=void 0),a=this.tb(a,b);try{for(;a.step();)c(a.zb(null,e))}finally{a.Ya()}if("function"==typeof d)return d()},e.prototype.tb=function(a,b){if(V(f),this.handleError(l(this.db,a,-1,f,0)),0===(a=T(f,"i32")))throw"Nothing to prepare";var d=new c(a,this);return null!=b&&d.bind(b),this.gb[a]=d},e.prototype.Ub=function(a){return new d(a,this)},e.prototype.Nb=function(){Object.values(this.gb).forEach(function(a){a.Ya()}),Object.values(this.Sa).forEach(bh),this.Sa={},this.handleError(i(this.db));var a,b,c,d=(a=this.filename,b=aW(a,b=b||0),aZ(b,c=new Uint8Array(a=aS(a).size),0,a,0),aX(b),c);return this.handleError(h(this.filename,f)),this.db=T(f,"i32"),Z(this.db),d},e.prototype.close=function(){null!==this.db&&(Object.values(this.gb).forEach(function(a){a.Ya()}),Object.values(this.Sa).forEach(bh),this.Sa={},this.Za&&(bh(this.Za),this.Za=void 0),this.handleError(i(this.db)),aR("/"+this.filename),this.db=null)},e.prototype.handleError=function(a){if(0===a)return null;throw Error(a=x(this.db))},e.prototype.Rb=function(){return k(this.db)},e.prototype.Kb=function(c,d){Object.prototype.hasOwnProperty.call(this.Sa,c)&&(bh(this.Sa[c]),delete this.Sa[c]);var e=bl(function(c,e,f){e=b(e,f);try{var g=d.apply(null,e)}catch(a){W(c,a,-1);return}a(c,g)},"viii");return this.Sa[c]=e,this.handleError(J(this.db,c,d.length,1,0,e,0,0,0)),this},e.prototype.Jb=function(c,d){var e=d.init||function(){return null},f=d.finalize||function(a){return a},g=d.step;if(!g)throw"An aggregate function must have a step function in "+c;var h={};Object.hasOwnProperty.call(this.Sa,c)&&(bh(this.Sa[c]),delete this.Sa[c]),d=c+"__finalize",Object.hasOwnProperty.call(this.Sa,d)&&(bh(this.Sa[d]),delete this.Sa[d]);var i=bl(function(a,c,d){var f=X(a,1);Object.hasOwnProperty.call(h,f)||(h[f]=e()),c=b(c,d),c=[h[f]].concat(c);try{h[f]=g.apply(null,c)}catch(b){delete h[f],W(a,b,-1)}},"viii"),j=bl(function(b){var c=X(b,1);try{var d=f(h[c])}catch(a){delete h[c],W(b,a,-1);return}a(b,d),delete h[c]},"vi");return this.Sa[c]=i,this.Sa[d]=j,this.handleError(J(this.db,c,g.length-1,1,0,0,i,j,0)),this},e.prototype.Zb=function(a){return this.Za&&(_(this.db,0,0),bh(this.Za),this.Za=void 0),a&&(this.Za=bl(function(b,c,d,e,f){switch(c){case 18:b="insert";break;case 23:b="update";break;case 9:b="delete";break;default:throw"unknown operationCode in updateHook callback: "+c}if(d=Y(d),e=Y(e),f>Number.MAX_SAFE_INTEGER)throw"rowId too big to fit inside a Number";a(b,d,e,Number(f))},"viiiij"),_(this.db,this.Za,0)),this},c.prototype.bind=c.prototype.bind,c.prototype.step=c.prototype.step,c.prototype.get=c.prototype.get,c.prototype.getColumnNames=c.prototype.qb,c.prototype.getAsObject=c.prototype.zb,c.prototype.getSQL=c.prototype.Sb,c.prototype.getNormalizedSQL=c.prototype.Pb,c.prototype.run=c.prototype.run,c.prototype.reset=c.prototype.reset,c.prototype.freemem=c.prototype.freemem,c.prototype.free=c.prototype.Ya,d.prototype.next=d.prototype.next,d.prototype.getRemainingSQL=d.prototype.Qb,e.prototype.run=e.prototype.run,e.prototype.exec=e.prototype.exec,e.prototype.each=e.prototype.Mb,e.prototype.prepare=e.prototype.tb,e.prototype.iterateStatements=e.prototype.Ub,e.prototype.export=e.prototype.Nb,e.prototype.close=e.prototype.close,e.prototype.handleError=e.prototype.handleError,e.prototype.getRowsModified=e.prototype.Rb,e.prototype.create_function=e.prototype.Kb,e.prototype.create_aggregate=e.prototype.Jb,e.prototype.updateHook=e.prototype.Zb,o.Database=e};var l="./this.program",m=(a,b)=>{throw b},n=globalThis.document?.currentScript?.src;n=__filename;var o,p,q,r="";if(k){var s=c(73024);r=__dirname+"/",q=a=>(a=G(a)?new URL(a):a,s.readFileSync(a)),p=async a=>(a=G(a)?new URL(a):a,s.readFileSync(a,void 0)),1<process.argv.length&&(l=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),a.exports=o,m=(a,b)=>{throw process.exitCode=a,b}}else if(i||j){try{r=new URL(".",n).href}catch{}j&&(q=a=>{var b=new XMLHttpRequest;return b.open("GET",a,!1),b.responseType="arraybuffer",b.send(null),new Uint8Array(b.response)}),p=async a=>{if(G(a))return new Promise((b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0),d.responseType="arraybuffer",d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c(d.status)},d.onerror=c,d.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url)}}var t,u,v,w,x,y,z,A,B,C,D=console.log.bind(console),E=console.error.bind(console),F=!1,G=a=>a.startsWith("file://");function H(){var a=bx.buffer;v=new Int8Array(a),x=new Int16Array(a),w=new Uint8Array(a),new Uint16Array(a),y=new Int32Array(a),z=new Uint32Array(a),A=new Float32Array(a),B=new Float64Array(a),C=new BigInt64Array(a),new BigUint64Array(a)}function I(a){throw o.onAbort?.(a),E(a="Aborted("+a+")"),F=!0,new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.")}async function J(a){if(!t)try{var b=await p(a);return new Uint8Array(b)}catch{}if(a==a3&&t)a=new Uint8Array(t);else if(q)a=q(a);else throw"both async and sync fetching of the wasm failed";return a}async function K(a,b){try{var c=await J(a);return await WebAssembly.instantiate(c,b)}catch(a){E(`failed to asynchronously prepare wasm: ${a}`),I(a)}}async function L(a){if(!t&&!G(a3)&&!k)try{var b=fetch(a3,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(b,a)}catch(a){E(`wasm streaming compile failed: ${a}`),E("falling back to ArrayBuffer instantiation")}return K(a3,a)}class M{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`,this.status=a}}var N=a=>{for(;0<a.length;)a.shift()(o)},O=[],P=[],Q=()=>{var a=o.preRun.shift();P.push(a)},R=0,S=null;function T(a,b="i8"){switch(b.endsWith("*")&&(b="*"),b){case"i1":case"i8":return v[a];case"i16":return x[a>>1];case"i32":return y[a>>2];case"i64":return C[a>>3];case"float":return A[a>>2];case"double":return B[a>>3];case"*":return z[a>>2];default:I(`invalid type for getValue: ${b}`)}}var U=!0;function V(a){var b="i32";switch(b.endsWith("*")&&(b="*"),b){case"i1":case"i8":v[a]=0;break;case"i16":x[a>>1]=0;break;case"i32":y[a>>2]=0;break;case"i64":C[a>>3]=BigInt(0);break;case"float":A[a>>2]=0;break;case"double":B[a>>3]=0;break;case"*":z[a>>2]=0;break;default:I(`invalid type for setValue: ${b}`)}}var W=new TextDecoder,X=(a,b,c,d)=>{if(c=b+c,d)return c;for(;a[b]&&!(b>=c);)++b;return b},Y=(a,b,c)=>a?W.decode(w.subarray(a,X(w,a,b,c))):"",Z=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},$=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);return(a=Z(a.split("/").filter(a=>!!a),!b).join("/"))||b||(a="."),a&&c&&(a+="/"),(b?"/":"")+a},_=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);return(a=b[0],b=b[1],a||b)?a+(b&&=b.slice(0,-1)):"."},aa=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],ab=a=>{(ab=(()=>{if(k){var a=c(77598);return b=>a.randomFillSync(b)}return a=>crypto.getRandomValues(a)})())(a)},ac=a=>{var b=X(a,0);return W.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},ad=[],ae=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},af=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var g=a.codePointAt(f);if(127>=g){if(c>=d)break;b[c++]=g}else if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6,b[c++]=128|63&g}else if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12,b[c++]=128|g>>6&63,b[c++]=128|63&g}else{if(c+3>=d)break;b[c++]=240|g>>18,b[c++]=128|g>>12&63,b[c++]=128|g>>6&63,b[c++]=128|63&g,f++}}return b[c]=0,c-e},ag=[];function ah(a,b){ag[a]={input:[],output:[],eb:b},aK(a,ai)}var ai={open(a){var b=ag[a.node.rdev];if(!b)throw new as(43);a.tty=b,a.seekable=!1},close(a){a.tty.eb.fsync(a.tty)},fsync(a){a.tty.eb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.eb.Bb)throw new as(60);for(var e=0,f=0;f<d;f++){try{var g=a.tty.eb.Bb(a.tty)}catch(a){throw new as(29)}if(void 0===g&&0===e)throw new as(6);if(null==g)break;e++,b[c+f]=g}return e&&(a.node.atime=Date.now()),e},write(a,b,c,d){if(!a.tty||!a.tty.eb.ub)throw new as(60);try{for(var e=0;e<d;e++)a.tty.eb.ub(a.tty,b[c+e])}catch(a){throw new as(29)}return d&&(a.node.mtime=a.node.ctime=Date.now()),e}},aj={Wa:null,Xa:()=>aj.createNode(null,"/",16895,0),createNode(a,b,c,d){if(24576==(61440&c)||4096==(61440&c))throw new as(63);return aj.Wa||(aj.Wa={dir:{node:{Ta:aj.La.Ta,Ua:aj.La.Ua,lookup:aj.La.lookup,ib:aj.La.ib,rename:aj.La.rename,unlink:aj.La.unlink,rmdir:aj.La.rmdir,readdir:aj.La.readdir,symlink:aj.La.symlink},stream:{Va:aj.Ma.Va}},file:{node:{Ta:aj.La.Ta,Ua:aj.La.Ua},stream:{Va:aj.Ma.Va,read:aj.Ma.read,write:aj.Ma.write,jb:aj.Ma.jb,kb:aj.Ma.kb}},link:{node:{Ta:aj.La.Ta,Ua:aj.La.Ua,readlink:aj.La.readlink},stream:{}},yb:{node:{Ta:aj.La.Ta,Ua:aj.La.Ua},stream:aJ}}),aB((c=aA(a,b,c,d)).mode)?(c.La=aj.Wa.dir.node,c.Ma=aj.Wa.dir.stream,c.Na={}):32768==(61440&c.mode)?(c.La=aj.Wa.file.node,c.Ma=aj.Wa.file.stream,c.Ra=0,c.Na=null):40960==(61440&c.mode)?(c.La=aj.Wa.link.node,c.Ma=aj.Wa.link.stream):8192==(61440&c.mode)&&(c.La=aj.Wa.yb.node,c.Ma=aj.Wa.yb.stream),c.atime=c.mtime=c.ctime=Date.now(),a&&(a.Na[b]=c,a.atime=a.mtime=a.ctime=c.atime),c},fc:a=>a.Na?a.Na.subarray?a.Na.subarray(0,a.Ra):new Uint8Array(a.Na):new Uint8Array(0),La:{Ta(a){var b={};return b.dev=8192==(61440&a.mode)?a.id:1,b.ino=a.id,b.mode=a.mode,b.nlink=1,b.uid=0,b.gid=0,b.rdev=a.rdev,aB(a.mode)?b.size=4096:32768==(61440&a.mode)?b.size=a.Ra:40960==(61440&a.mode)?b.size=a.link.length:b.size=0,b.atime=new Date(a.atime),b.mtime=new Date(a.mtime),b.ctime=new Date(a.ctime),b.blksize=4096,b.blocks=Math.ceil(b.size/b.blksize),b},Ua(a,b){for(var c of["mode","atime","mtime","ctime"])null!=b[c]&&(a[c]=b[c]);void 0!==b.size&&(b=b.size,a.Ra!=b&&(0==b?(a.Na=null,a.Ra=0):(c=a.Na,a.Na=new Uint8Array(b),c&&a.Na.set(c.subarray(0,Math.min(b,a.Ra))),a.Ra=b)))},lookup(){throw aj.nb||(aj.nb=new as(44),aj.nb.stack="<generic error, no stack>"),aj.nb},ib:(a,b,c,d)=>aj.createNode(a,b,c,d),rename(a,b,c){try{var d=az(b,c)}catch(a){}if(d){if(aB(a.mode))for(var e in d.Na)throw new as(55);ay(d)}delete a.parent.Na[a.name],b.Na[c]=a,a.name=c,b.ctime=b.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,b){delete a.Na[b],a.ctime=a.mtime=Date.now()},rmdir(a,b){var c,d=az(a,b);for(c in d.Na)throw new as(55);delete a.Na[b],a.ctime=a.mtime=Date.now()},readdir:a=>[".","..",...Object.keys(a.Na)],symlink:(a,b,c)=>((a=aj.createNode(a,b,41471,0)).link=c,a),readlink(a){if(40960!=(61440&a.mode))throw new as(28);return a.link}},Ma:{read(a,b,c,d,e){var f=a.node.Na;if(e>=a.node.Ra)return 0;if(8<(a=Math.min(a.node.Ra-e,d))&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write(a,b,c,d,e,f){if(b.buffer===v.buffer&&(f=!1),!d)return 0;if((a=a.node).mtime=a.ctime=Date.now(),b.subarray&&(!a.Na||a.Na.subarray)){if(f)return a.Na=b.subarray(c,c+d),a.Ra=d;if(0===a.Ra&&0===e)return a.Na=b.slice(c,c+d),a.Ra=d;if(e+d<=a.Ra)return a.Na.set(b.subarray(c,c+d),e),d}f=e+d;var g=a.Na?a.Na.length:0;if(g>=f||(f=Math.max(f,g*(1048576>g?2:1.125)>>>0),0!=g&&(f=Math.max(f,256)),g=a.Na,a.Na=new Uint8Array(f),0<a.Ra&&a.Na.set(g.subarray(0,a.Ra),0)),a.Na.subarray&&b.subarray)a.Na.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.Na[e+f]=b[c+f];return a.Ra=Math.max(a.Ra,e+d),d},Va(a,b,c){if(1===c?b+=a.position:2===c&&32768==(61440&a.node.mode)&&(b+=a.node.Ra),0>b)throw new as(28);return b},jb(a,b,c,d,e){if(32768!=(61440&a.node.mode))throw new as(43);if(a=a.node.Na,2&e||!a||a.buffer!==v.buffer){e=!0;var f=bs(65536,d=65536*Math.ceil(b/65536));if(f&&w.fill(0,f,f+d),!(d=f))throw new as(48);a&&((0<c||c+b<a.length)&&(a=a.subarray?a.subarray(c,c+b):Array.prototype.slice.call(a,c,c+b)),v.set(a,d))}else e=!1,d=a.byteOffset;return{Xb:d,Eb:e}},kb:(a,b,c,d)=>(aj.Ma.write(a,b,0,d,c,!1),0)}},ak=(a,b)=>{var c=0;return a&&(c|=365),b&&(c|=146),c},al=null,am={},an=[],ao=1,ap=null,aq=!1,ar=!0,as=class{name="ErrnoError";constructor(a){this.Pa=a}},at=class{hb={};node=null;get flags(){return this.hb.flags}set flags(a){this.hb.flags=a}get position(){return this.hb.position}set position(a){this.hb.position=a}},au=class{La={};Ma={};bb=null;constructor(a,b,c,d){a||=this,this.parent=a,this.Xa=a.Xa,this.id=ao++,this.name=b,this.mode=c,this.rdev=d,this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365==(365&this.mode)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146==(146&this.mode)}set write(a){a?this.mode|=146:this.mode&=-147}};function av(a,b={}){if(!a)throw new as(44);b.pb??(b.pb=!0),"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(a=>!!a);for(var d=al,e="/",f=0;f<a.length;f++){var g=f===a.length-1;if(g&&b.parent)break;if("."!==a[f])if(".."===a[f])if(e=_(e),d===d.parent){a=e+"/"+a.slice(f+1).join("/"),c--;continue a}else d=d.parent;else{e=$(e+"/"+a[f]);try{d=az(d,a[f])}catch(a){if(44===a?.Pa&&g&&b.Wb)return{path:e};throw a}if(d.bb&&(!g||b.pb)&&(d=d.bb.root),40960==(61440&d.mode)&&(!g||b.ab)){if(!d.La.readlink)throw new as(52);"/"===(d=d.La.readlink(d)).charAt(0)||(d=_(e)+"/"+d),a=d+"/"+a.slice(f+1).join("/");continue a}}}return{path:e,node:d}}throw new as(32)}function aw(a){for(var b;;){if(a===a.parent)return a=a.Xa.Db,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name,a=a.parent}}function ax(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%ap.length}function ay(a){var b=ax(a.parent.id,a.name);if(ap[b]===a)ap[b]=a.cb;else for(b=ap[b];b;){if(b.cb===a){b.cb=a.cb;break}b=b.cb}}function az(a,b){var c=aB(a.mode)?(c=aC(a,"x"))?c:2*!a.La.lookup:54;if(c)throw new as(c);for(c=ap[ax(a.id,b)];c;c=c.cb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.La.lookup(a,b)}function aA(a,b,c,d){return b=ax((a=new au(a,b,c,d)).parent.id,a.name),a.cb=ap[b],ap[b]=a}function aB(a){return 16384==(61440&a)}function aC(a,b){return ar?0:b.includes("r")&&!(292&a.mode)||b.includes("w")&&!(146&a.mode)||b.includes("x")&&!(73&a.mode)?2:0}function aD(a,b){if(!aB(a.mode))return 54;try{return az(a,b),20}catch(a){}return aC(a,"wx")}function aE(a,b,c){try{var d=az(a,b)}catch(a){return a.Pa}if(a=aC(a,"wx"))return a;if(c){if(!aB(d.mode))return 54;if(d===d.parent||"/"===aw(d))return 10}else if(aB(d.mode))return 31;return 0}function aF(a){if(!a)throw new as(63);return a}function aG(a){if(!(a=an[a]))throw new as(8);return a}function aH(a,b=-1){if(a=Object.assign(new at,a),-1==b)a:{for(b=0;4096>=b;b++)if(!an[b])break a;throw new as(33)}return a.fd=b,an[b]=a}function aI(a,b,c){var d=a?.Ma.Ua;a=d?a:b,aF(d??=b.La.Ua),d(a,c)}var aJ={open(a){a.Ma=am[a.node.rdev].Ma,a.Ma.open?.(a)},Va(){throw new as(70)}};function aK(a,b){am[a]={Ma:b}}function aL(a,b){var c="/"===b;if(c&&al)throw new as(10);if(!c&&b){var d=av(b,{pb:!1});if(b=d.path,(d=d.node).bb)throw new as(10);if(!aB(d.mode))throw new as(54)}b={type:a,kc:{},Db:b,Vb:[]},(a=a.Xa(b)).Xa=b,b.root=a,c?al=a:d&&(d.bb=b,d.Xa&&d.Xa.Vb.push(b))}function aM(a,b,c){var d=av(a,{parent:!0}).node;if(!(a=aa(a)))throw new as(28);if("."===a||".."===a)throw new as(20);var e=aD(d,a);if(e)throw new as(e);if(!d.La.ib)throw new as(63);return d.La.ib(d,a,b,c)}function aN(a,b=511){return aM(a,1023&b|16384,0)}function aO(a,b,c){void 0===c&&(c=b,b=438),aM(a,8192|b,c)}function aP(a,b){if(!((...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){if("string"!=typeof(c=0<=d?a[d]:"/"))throw TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b,c="/"===c.charAt(0)}return b=Z(b.split("/").filter(a=>!!a),!c).join("/"),(c?"/":"")+b||"."})(a))throw new as(44);var c=av(b,{parent:!0}).node;if(!c)throw new as(44);var d=aD(c,b=aa(b));if(d)throw new as(d);if(!c.La.symlink)throw new as(63);c.La.symlink(c,b,a)}function aQ(a){var b=av(a,{parent:!0}).node,c=az(b,a=aa(a)),d=aE(b,a,!0);if(d)throw new as(d);if(!b.La.rmdir)throw new as(63);if(c.bb)throw new as(10);b.La.rmdir(b,a),ay(c)}function aR(a){var b=av(a,{parent:!0}).node;if(!b)throw new as(44);var c=az(b,a=aa(a)),d=aE(b,a,!1);if(d)throw new as(d);if(!b.La.unlink)throw new as(63);if(c.bb)throw new as(10);b.La.unlink(b,a),ay(c)}function aS(a,b){return aF((a=av(a,{ab:!b}).node).La.Ta)(a)}function aT(a,b,c,d){aI(a,b,{mode:4095&c|-4096&b.mode,ctime:Date.now(),Lb:d})}function aU(a,b){aT(null,a="string"==typeof a?av(a,{ab:!0}).node:a,b)}function aV(a,b,c){if(aB(b.mode))throw new as(31);if(32768!=(61440&b.mode))throw new as(28);var d=aC(b,"w");if(d)throw new as(d);aI(a,b,{size:c,timestamp:Date.now()})}function aW(a,b,c=438){if(""===a)throw new as(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if(void 0===d)throw Error(`Unknown file open mode: ${b}`);b=d}if(c=64&b?4095&c|32768:0,"object"==typeof a)d=a;else{var e=a.endsWith("/"),f=av(a,{ab:!(131072&b),Wb:!0});d=f.node,a=f.path}if(f=!1,64&b)if(d){if(128&b)throw new as(20)}else{if(e)throw new as(31);d=aM(a,511|c,0),f=!0}if(!d)throw new as(44);if(8192==(61440&d.mode)&&(b&=-513),65536&b&&!aB(d.mode))throw new as(54);if(!f&&(d?40960==(61440&d.mode)?e=32:(e=["r","w","rw"][3&b],512&b&&(e+="w"),e=aB(d.mode)&&("r"!==e||576&b)?31:aC(d,e)):e=44,e))throw new as(e);return 512&b&&!f&&aV(null,e="string"==typeof(e=d)?av(e,{ab:!0}).node:e,0),(b=aH({node:d,path:aw(d),flags:-131713&b,seekable:!0,position:0,Ma:d.Ma,Yb:[],error:!1})).Ma.open&&b.Ma.open(b),f&&aU(d,511&c),b}function aX(a){if(null===a.fd)throw new as(8);a.rb&&(a.rb=null);try{a.Ma.close&&a.Ma.close(a)}catch(a){throw a}finally{an[a.fd]=null}a.fd=null}function aY(a,b,c){if(null===a.fd)throw new as(8);if(!a.seekable||!a.Ma.Va)throw new as(70);if(0!=c&&1!=c&&2!=c)throw new as(28);a.position=a.Ma.Va(a,b,c),a.Yb=[]}function aZ(a,b,c,d,e){if(0>d||0>e)throw new as(28);if(null===a.fd||1==(2097155&a.flags))throw new as(8);if(aB(a.node.mode))throw new as(31);if(!a.Ma.read)throw new as(28);var f=void 0!==e;if(f){if(!a.seekable)throw new as(70)}else e=a.position;return b=a.Ma.read(a,b,c,d,e),f||(a.position+=b),b}function a$(a,b,c,d,e){if(0>d||0>e)throw new as(28);if(null===a.fd||0==(2097155&a.flags))throw new as(8);if(aB(a.node.mode))throw new as(31);if(!a.Ma.write)throw new as(28);a.seekable&&1024&a.flags&&aY(a,0,2);var f=void 0!==e;if(f){if(!a.seekable)throw new as(70)}else e=a.position;return b=a.Ma.write(a,b,c,d,e,void 0),f||(a.position+=b),b}function a_(a,b,c){a=$("/dev/"+a);var d=ak(!!b,!!c);a_.Cb??(a_.Cb=64);var e=a_.Cb++<<8;aK(e,{open(a){a.seekable=!1},close(){c?.buffer?.length&&c(10)},read(a,c,d,e){for(var f=0,g=0;g<e;g++){try{var h=b()}catch(a){throw new as(29)}if(void 0===h&&0===f)throw new as(6);if(null==h)break;f++,c[d+g]=h}return f&&(a.node.atime=Date.now()),f},write(a,b,d,e){for(var f=0;f<e;f++)try{c(b[d+f])}catch(a){throw new as(29)}return e&&(a.node.mtime=a.node.ctime=Date.now()),f}}),aO(a,d,e)}var a0={};function a1(a,b,c){if("/"===b.charAt(0))return b;if(a=-100===a?"/":aG(a).path,0==b.length){if(!c)throw new as(44);return a}return a+"/"+b}function a2(a,b){z[a>>2]=b.dev,z[a+4>>2]=b.mode,z[a+8>>2]=b.nlink,z[a+12>>2]=b.uid,z[a+16>>2]=b.gid,z[a+20>>2]=b.rdev,C[a+24>>3]=BigInt(b.size),y[a+32>>2]=4096,y[a+36>>2]=b.blocks;var c=b.atime.getTime(),d=b.mtime.getTime(),e=b.ctime.getTime();return C[a+40>>3]=BigInt(Math.floor(c/1e3)),z[a+48>>2]=c%1e3*1e6,C[a+56>>3]=BigInt(Math.floor(d/1e3)),z[a+64>>2]=d%1e3*1e6,C[a+72>>3]=BigInt(Math.floor(e/1e3)),z[a+80>>2]=e%1e3*1e6,C[a+88>>3]=BigInt(b.ino),0}var a3,a4,a5,a6=void 0,a7=()=>{var a=y[a6>>2];return a6+=4,a},a8=0,a9=[0,31,60,91,121,152,182,213,244,274,305,335],ba=[0,31,59,90,120,151,181,212,243,273,304,334],bb={},bc=a=>{u=a,U||0<a8||(o.onExit?.(a),F=!0),m(a,new M(a))},bd={},be=()=>{if(!a4){var a,b={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(a in bd)void 0===bd[a]?delete b[a]:b[a]=bd[a];var c=[];for(a in b)c.push(`${a}=${b[a]}`);a4=c}return a4},bf=a=>{var b=ae(a)+1,c=bq(b);return c&&af(a,w,c,b),c},bg=[],bh=a=>{a5.delete(by.get(a)),by.set(a,null),bg.push(a)},bi=a=>{let b=a.length;return[b%128|128,b>>7,...a]},bj={i:127,p:127,j:126,f:125,d:124,e:111},bk=a=>bi(Array.from(a,a=>bj[a])),bl=(a,b)=>{if(!a5){a5=new WeakMap;var c=by.length;if(a5)for(var d=0;d<0+c;d++){var e=by.get(d);e&&a5.set(e,d)}}if(c=a5.get(a)||0)return c;c=bg.length?bg.pop():by.grow(1);try{by.set(c,a)}catch(d){if(!(d instanceof TypeError))throw d;b=Uint8Array.of(0,97,115,109,1,0,0,0,1,...bi([1,96,...bk(b.slice(1)),...bk("v"===b[0]?"":b[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),b=new WebAssembly.Module(b),b=new WebAssembly.Instance(b,{e:{f:a}}).exports.f,by.set(c,b)}return a5.set(a,c),c};if(ap=Array(4096),aL(aj,"/"),aN("/tmp"),aN("/home"),aN("/home/web_user"),aN("/dev"),aK(259,{read:()=>0,write:(a,b,c,d)=>d,Va:()=>0}),aO("/dev/null",259),ah(1280,{Bb(){a:{if(!ad.length){var a=null;if(k){var b=Buffer.alloc(256),c=0,d=process.stdin.fd;try{c=s.readSync(d,b,0,256)}catch(a){if(a.toString().includes("EOF"))c=0;else throw a}0<c&&(a=b.slice(0,c).toString("utf-8"))}else globalThis.window?.prompt&&null!==(a=window.prompt("Input: "))&&(a+="\n");if(!a){a=null;break a}b=Array(ae(a)+1),a=af(a,b,0,b.length),b.length=a,ad=b}a=ad.shift()}return a},ub(a,b){null===b||10===b?(D(ac(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(D(ac(a.output)),a.output=[])},hc:()=>({bc:25856,dc:5,ac:191,cc:35387,$b:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ic:()=>0,jc:()=>[24,80]}),ah(1536,{ub(a,b){null===b||10===b?(E(ac(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(E(ac(a.output)),a.output=[])}}),aO("/dev/tty",1280),aO("/dev/tty1",1536),bm=new Uint8Array(1024),bn=0,a_("random",bo=()=>(0===bn&&(ab(bm),bn=bm.byteLength),bm[--bn])),a_("urandom",bo),aN("/dev/shm"),aN("/dev/shm/tmp"),aN("/proc"),bp=aN("/proc/self"),aN("/proc/self/fd"),aL({Xa(){var a=aA(bp,"fd",16895,73);return a.Ma={Va:aj.Ma.Va},a.La={lookup(a,b){var c=aG(a=+b);return(a={parent:null,Xa:{Db:"fake"},La:{readlink:()=>c.path},id:a+1}).parent=a},readdir:()=>Array.from(an.entries()).filter(([,a])=>a).map(([a])=>a.toString())},a}},"/proc/self/fd"),o.noExitRuntime&&(U=o.noExitRuntime),o.print&&(D=o.print),o.printErr&&(E=o.printErr),o.wasmBinary&&(t=o.wasmBinary),o.thisProgram&&(l=o.thisProgram),o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);0<o.preInit.length;)o.preInit.shift()();o.stackSave=()=>bw(),o.stackRestore=a=>bu(a),o.stackAlloc=a=>bv(a),o.cwrap=(a,b,c,d)=>{var e=!c||c.every(a=>"number"===a||"boolean"===a);return"string"!==b&&e&&!d?o["_"+a]:(...d)=>((a,b,c,d)=>{var e,f={string:a=>{var b=0;if(null!=a&&0!==a){b=ae(a)+1;var c=bv(b);af(a,w,c,b),b=c}return b},array:a=>{var b=bv(a.length);return v.set(a,b),b}};a=o["_"+a];var g=[],h=0;if(d)for(var i=0;i<d.length;i++){var j=f[c[i]];j?(0===h&&(h=bw()),g[i]=j(d[i])):g[i]=d[i]}return e=c=a(...g),0!==h&&bu(h),c="string"===b?Y(e):"boolean"===b?!!e:e})(a,b,c,d)},o.addFunction=bl,o.removeFunction=bh,o.UTF8ToString=Y,o.stringToNewUTF8=bf,o.writeArrayToMemory=(a,b)=>{v.set(a,b)};var bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz={a:(a,b,c,d)=>I(`Assertion failed: ${Y(a)}, at: `+[b?Y(b):"unknown filename",c,d?Y(d):"unknown function"]),i:function(a,b){try{return a=Y(a),aU(a,b),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},L:function(a,b,c){try{if(b=Y(b),b=a1(a,b),-8&c)return -28;var d=av(b,{ab:!0}).node;if(!d)return -44;return a="",4&c&&(a+="r"),2&c&&(a+="w"),1&c&&(a+="x"),a&&aC(d,a)?-2:0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},j:function(a,b){try{var c=aG(a);return aT(c,c.node,b,!1),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},h:function(a){try{var b=aG(a);return aI(b,b.node,{timestamp:Date.now(),Lb:!1}),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},b:function(a,b,c){a6=c;try{var d=aG(a);switch(b){case 0:var e=a7();if(0>e)break;for(;an[e];)e++;return function(a,b=-1){return a=aH(a,b),a.Ma?.ec?.(a),a}(d,e).fd;case 1:case 2:case 13:case 14:return 0;case 3:return d.flags;case 4:return e=a7(),d.flags|=e,0;case 12:return x[(e=a7())+0>>1]=2,0}return -28}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},g:function(a,b){try{var c=aG(a),d=c.node,e=c.Ma.Ta;a=e?c:d,e??=d.La.Ta,aF(e);var f=e(a);return a2(b,f)}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},H:function(a,b){b=-0x20000000000000>b||0x20000000000000<b?NaN:Number(b);try{if(isNaN(b))return -61;var c=aG(a);if(0>b||0==(2097155&c.flags))throw new as(28);return aV(c,c.node,b),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},G:function(a,b){try{if(0===b)return -28;var c=ae("/")+1;if(b<c)return -68;return af("/",w,a,b),c}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},K:function(a,b){try{return a=Y(a),a2(b,aS(a,!0))}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},C:function(a,b,c){try{return b=Y(b),b=a1(a,b),aN(b,c),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},J:function(a,b,c,d){try{return b=Y(b),b=a1(a,b,4096&d),a2(c,256&d?aS(b,!0):aS(b))}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},x:function(a,b,c,d){a6=d;try{b=Y(b),b=a1(a,b);var e=d?a7():0;return aW(b,c,e).fd}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},v:function(a,b,c,d){try{if(b=Y(b),b=a1(a,b),0>=d)return -28;var e=av(b).node;if(!e)throw new as(44);if(!e.La.readlink)throw new as(28);var f=e.La.readlink(e),g=Math.min(d,ae(f)),h=v[c+g];return af(f,w,c,d+1),v[c+g]=h,g}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},u:function(a){try{return a=Y(a),aQ(a),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},f:function(a,b){try{return a=Y(a),a2(b,aS(a))}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},r:function(a,b,c){try{if(b=Y(b),b=a1(a,b),c)if(512!==c)return -28;else aQ(b);else aR(b);return 0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},q:function(a,b,c){try{b=Y(b),b=a1(a,b,!0);var d,e,f=Date.now();if(c){var g=z[c>>2]+0x100000000*y[c+4>>2],h=y[c+8>>2];d=0x3fffffff==h?f:0x3ffffffe==h?null:1e3*g+h/1e6,c+=16,g=z[c>>2]+0x100000000*y[c+4>>2],h=y[c+8>>2],e=0x3fffffff==h?f:0x3ffffffe==h?null:1e3*g+h/1e6}else e=d=f;if(null!==(e??d)){a=d;var i=av(b,{ab:!0}).node;aF(i.La.Ua)(i,{atime:a,mtime:e})}return 0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},m:()=>I(""),l:()=>{U=!1,a8=0},A:function(a,b){a=new Date(1e3*(a=-0x20000000000000>a||0x20000000000000<a?NaN:Number(a))),y[b>>2]=a.getSeconds(),y[b+4>>2]=a.getMinutes(),y[b+8>>2]=a.getHours(),y[b+12>>2]=a.getDate(),y[b+16>>2]=a.getMonth(),y[b+20>>2]=a.getFullYear()-1900,y[b+24>>2]=a.getDay();var c=a.getFullYear();y[b+28>>2]=(0!=c%4||0==c%100&&0!=c%400?ba:a9)[a.getMonth()]+a.getDate()-1|0,y[b+36>>2]=-(60*a.getTimezoneOffset()),c=new Date(a.getFullYear(),6,1).getTimezoneOffset();var d=new Date(a.getFullYear(),0,1).getTimezoneOffset();y[b+32>>2]=0|(c!=d&&a.getTimezoneOffset()==Math.min(d,c))},y:function(a,b,c,d,e,f,g){e=-0x20000000000000>e||0x20000000000000<e?NaN:Number(e);try{var h=aG(d);if(0!=(2&b)&&0==(2&c)&&2!=(2097155&h.flags)||1==(2097155&h.flags))throw new as(2);if(!h.Ma.jb)throw new as(43);if(!a)throw new as(28);var i=h.Ma.jb(h,a,e,b,c),j=i.Xb;return y[f>>2]=i.Eb,z[g>>2]=j,0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},z:function(a,b,c,d,e,f){f=-0x20000000000000>f||0x20000000000000<f?NaN:Number(f);try{var g=aG(e);if(2&c){if(c=f,32768!=(61440&g.node.mode))throw new as(43);if(!(2&d)){var h=w.slice(a,a+b);g.Ma.kb&&g.Ma.kb(g,h,c,b,d)}}}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return-a.Pa}},n:(a,b)=>{if(bb[a]&&(clearTimeout(bb[a].id),delete bb[a]),!b)return 0;var c=setTimeout(()=>{delete bb[a];var b=()=>bt(a,performance.now());if(!F)try{b()}catch(a){a instanceof M||"unwind"==a||m(1,a)}finally{if(!(U||0<a8))try{u=b=u,bc(b)}catch(a){a instanceof M||"unwind"==a||m(1,a)}}},b);return bb[a]={id:c,lc:b},0},B:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=new Date(e,0,1).getTimezoneOffset();e=new Date(e,6,1).getTimezoneOffset(),z[a>>2]=60*Math.max(f,e),y[b>>2]=Number(f!=e),a=(b=a=>{var b=Math.abs(a);return`UTC${0<=a?"-":"+"}${String(Math.floor(b/60)).padStart(2,"0")}${String(b%60).padStart(2,"0")}`})(f),b=b(e),e<f?(af(a,w,c,17),af(b,w,d,17)):(af(a,w,d,17),af(b,w,c,17))},d:()=>Date.now(),s:()=>0x80000000,c:()=>performance.now(),o:a=>{var b=w.length;if(0x80000000<(a>>>=0))return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+0x6000000);a:{d=(Math.min(0x80000000,65536*Math.ceil(Math.max(a,d)/65536))-bx.buffer.byteLength+65535)/65536|0;try{bx.grow(d),H();var e=1;break a}catch(a){}e=void 0}if(e)return!0}return!1},E:(a,b)=>{var c,d=0,e=0;for(c of be()){var f=b+d;z[a+e>>2]=f,d+=af(c,w,f,1/0)+1,e+=4}return 0},F:(a,b)=>{var c=be();for(var d of(z[a>>2]=c.length,a=0,c))a+=ae(d)+1;return z[b>>2]=a,0},e:function(a){try{var b=aG(a);return aX(b),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return a.Pa}},p:function(a,b){try{var c=aG(a);return v[b]=c.tty?2:aB(c.mode)?3:40960==(61440&c.mode)?7:4,x[b+2>>1]=0,C[b+8>>3]=BigInt(0),C[b+16>>3]=BigInt(0),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return a.Pa}},w:function(a,b,c,d){try{a:{var e=aG(a);a=b;for(var f,g=b=0;g<c;g++){var h=z[a>>2],i=z[a+4>>2];a+=8;var j=aZ(e,v,h,i,f);if(0>j){var k=-1;break a}if(b+=j,j<i)break;void 0!==f&&(f+=j)}k=b}return z[d>>2]=k,0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return a.Pa}},D:function(a,b,c,d){b=-0x20000000000000>b||0x20000000000000<b?NaN:Number(b);try{if(isNaN(b))return 61;var e=aG(a);return aY(e,b,c),C[d>>3]=BigInt(e.position),e.rb&&0===b&&0===c&&(e.rb=null),0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return a.Pa}},I:function(a){try{var b=aG(a);return b.Ma?.fsync?.(b)}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return a.Pa}},t:function(a,b,c,d){try{a:{var e=aG(a);a=b;for(var f,g=b=0;g<c;g++){var h=z[a>>2],i=z[a+4>>2];a+=8;var j=a$(e,v,h,i,f);if(0>j){var k=-1;break a}if(b+=j,j<i)break;void 0!==f&&(f+=j)}k=b}return z[d>>2]=k,0}catch(a){if(void 0===a0||"ErrnoError"!==a.name)throw a;return a.Pa}},k:bc};return!async function(){function a(a){return o._sqlite3_free=(a=f=a.exports).P,o._sqlite3_value_text=a.Q,o._sqlite3_prepare_v2=a.R,o._sqlite3_step=a.S,o._sqlite3_reset=a.T,o._sqlite3_exec=a.U,o._sqlite3_finalize=a.V,o._sqlite3_column_name=a.W,o._sqlite3_column_text=a.X,o._sqlite3_column_type=a.Y,o._sqlite3_errmsg=a.Z,o._sqlite3_clear_bindings=a._,o._sqlite3_value_blob=a.$,o._sqlite3_value_bytes=a.aa,o._sqlite3_value_double=a.ba,o._sqlite3_value_int=a.ca,o._sqlite3_value_type=a.da,o._sqlite3_result_blob=a.ea,o._sqlite3_result_double=a.fa,o._sqlite3_result_error=a.ga,o._sqlite3_result_int=a.ha,o._sqlite3_result_int64=a.ia,o._sqlite3_result_null=a.ja,o._sqlite3_result_text=a.ka,o._sqlite3_aggregate_context=a.la,o._sqlite3_column_count=a.ma,o._sqlite3_data_count=a.na,o._sqlite3_column_blob=a.oa,o._sqlite3_column_bytes=a.pa,o._sqlite3_column_double=a.qa,o._sqlite3_bind_blob=a.ra,o._sqlite3_bind_double=a.sa,o._sqlite3_bind_int=a.ta,o._sqlite3_bind_text=a.ua,o._sqlite3_bind_parameter_index=a.va,o._sqlite3_sql=a.wa,o._sqlite3_normalized_sql=a.xa,o._sqlite3_changes=a.ya,o._sqlite3_close_v2=a.za,o._sqlite3_create_function_v2=a.Aa,o._sqlite3_update_hook=a.Ba,o._sqlite3_open=a.Ca,bq=o._malloc=a.Da,br=o._free=a.Ea,o._RegisterExtensionFunctions=a.Fa,bs=a.Ga,bt=a.Ha,bu=a.Ia,bv=a.Ja,bw=a.Ka,bx=a.M,by=a.O,H(),R--,o.monitorRunDependencies?.(R),0==R&&S&&(a=S,S=null,a()),f}R++,o.monitorRunDependencies?.(R);var b={a:bz};if(o.instantiateWasm)return new Promise(c=>{o.instantiateWasm(b,(b,d)=>{c(a(b,d))})});a3??=o.locateFile?o.locateFile("sql-wasm.wasm",r):r+"sql-wasm.wasm",a((await L(b)).instance)}(),!function a(){function b(){if(o.calledRun=!0,!F){if(!o.noFSInit&&!aq){var a,b;aq=!0,a??=o.stdin,b??=o.stdout,c??=o.stderr,a?a_("stdin",a):aP("/dev/tty","/dev/stdin"),b?a_("stdout",null,b):aP("/dev/tty","/dev/stdout"),c?a_("stderr",null,c):aP("/dev/tty1","/dev/stderr"),aW("/dev/stdin",0),aW("/dev/stdout",1),aW("/dev/stderr",1)}if(f.N(),ar=!1,o.onRuntimeInitialized?.(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;){var c=o.postRun.shift();O.push(c)}N(O)}}if(0<R)S=a;else{if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)Q();N(P),0<R?S=a:o.setStatus?(o.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>o.setStatus(""),1),b()},1)):b()}}(),g}))};a.exports=e,a.exports.default=e}};
|
|
9
|
+
`,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
|