lanzz-router 0.5.113 → 0.5.114
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 +134 -134
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +4 -2
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/routes-manifest.json +12 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/users/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/users/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/users/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/member-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/member-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/member/quota/route.js +1 -1
- package/app/.next-cli-build/server/app/api/member/quota/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/member/usage/chart/route.js +9 -0
- package/app/.next-cli-build/server/app/api/member/usage/chart/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/member/usage/chart/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/member/usage/route.js +2 -2
- package/app/.next-cli-build/server/app/api/member/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/upstream-updates/route.js +1 -0
- package/app/.next-cli-build/server/app/api/upstream-updates/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/upstream-updates/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/users/usage/route.js +2 -2
- package/app/.next-cli-build/server/app/api/users/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/member/page.js +1 -1
- package/app/.next-cli-build/server/app/member/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/member/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +4 -2
- package/app/.next-cli-build/server/chunks/4689.js +1 -0
- package/app/.next-cli-build/server/chunks/6540.js +1 -1
- package/app/.next-cli-build/server/chunks/6877.js +1 -1
- package/app/.next-cli-build/server/chunks/7211.js +1 -1
- package/app/.next-cli-build/server/chunks/7857.js +1 -1
- package/app/.next-cli-build/server/chunks/7995.js +8 -8
- package/app/.next-cli-build/server/chunks/827.js +1 -1
- package/app/.next-cli-build/server/chunks/8363.js +1 -1
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/9604.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/bwGdUJjEUl5rLKLne6evS/_buildManifest.js +1 -0
- package/app/.next-cli-build/static/chunks/{1321-f0840bfc7d5fb572.js → 1321-a978e76347a9c45d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-778cd9a42b21dbeb.js +1 -0
- package/app/.next-cli-build/static/chunks/app/{api/auth/logout/route-623aab0eae7621dd.js → _global-error/page-87bd892b5707eb40.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/{member-login/route-623aab0eae7621dd.js → login/route-87bd892b5707eb40.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/{_global-error/page-623aab0eae7621dd.js → api/auth/logout/route-87bd892b5707eb40.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/{login/route-623aab0eae7621dd.js → member-login/route-87bd892b5707eb40.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-profiles/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/member/quota/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/member/usage/chart/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/member/usage/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/netlify-deploy/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/upstream-updates/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/users/usage/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/app/member/page-64e92b2d35c5eabc.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-87bd892b5707eb40.js +1 -0
- package/app/.next-cli-build/static/css/4f1815081803ad4c.css +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-2c7f64895d87e0f6.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-profiles/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/member/quota/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/member/usage/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/overrides/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/netlify-deploy/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/users/usage/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/member/page-cc7dfd2b1b2542fa.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-623aab0eae7621dd.js +0 -1
- package/app/.next-cli-build/static/css/9629ab5bd5b43cee.css +0 -1
- package/app/.next-cli-build/static/gFETsmw041ETqRuKG7h8T/_buildManifest.js +0 -1
- /package/app/.next-cli-build/static/{gFETsmw041ETqRuKG7h8T → bwGdUJjEUl5rLKLne6evS}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
# Lanzz Router - AI Router & Token Saver
|
|
2
|
-
|
|
3
|
-
**Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**
|
|
4
|
-
|
|
5
|
-
**Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/lanzz-router)
|
|
8
|
-
[](https://www.npmjs.com/package/lanzz-router)
|
|
9
|
-
[](https://github.com/fadhlanayti/lanzz-router/blob/main/LICENSE)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Why Lanzz Router?
|
|
14
|
-
|
|
15
|
-
**Stop wasting money, tokens and hitting limits:**
|
|
16
|
-
|
|
17
|
-
- Subscription quota expires unused every month
|
|
18
|
-
- Rate limits stop you mid-coding
|
|
19
|
-
- Tool outputs (git diff, grep, ls...) burn tokens fast
|
|
20
|
-
- Expensive APIs ($20-50/month per provider)
|
|
21
|
-
|
|
22
|
-
**Lanzz Router solves this:**
|
|
23
|
-
|
|
24
|
-
- **RTK Token Saver** - Auto-compress tool_result, save 20-40% tokens
|
|
25
|
-
- **Maximize subscriptions** - Track quota, use every bit before reset
|
|
26
|
-
- **Auto fallback** - Subscription → Cheap → Free, zero downtime
|
|
27
|
-
- **Multi-account** - Round-robin between accounts per provider
|
|
28
|
-
- **Multi-user** - Per-key assignment (everyone/team/user), token quotas, member dashboard
|
|
29
|
-
- **Universal** - Works with any OpenAI/Claude-compatible CLI
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Quick Start
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
npm install -g lanzz-router
|
|
37
|
-
lanzz-router
|
|
38
|
-
|
|
39
|
-
# Or run directly with npx
|
|
40
|
-
npx lanzz-router
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Dashboard opens at `http://localhost:20128`
|
|
44
|
-
|
|
45
|
-
**2. Connect a FREE provider (no signup needed):**
|
|
46
|
-
|
|
47
|
-
Dashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done!
|
|
48
|
-
|
|
49
|
-
**3. Use in your CLI tool:**
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
Claude Code/Codex/OpenClaw/Cursor/Cline Settings:
|
|
53
|
-
Endpoint: http://localhost:20128/v1
|
|
54
|
-
API Key: [copy from dashboard]
|
|
55
|
-
Model: kr/claude-sonnet-4.5
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
That's it! Start coding with FREE AI models.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## CLI Options
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
lanzz-router # Start with default settings
|
|
66
|
-
lanzz-router --port 8080 # Custom port
|
|
67
|
-
lanzz-router --no-browser # Don't open browser
|
|
68
|
-
lanzz-router --skip-update # Skip auto-update check
|
|
69
|
-
lanzz-router --help # Show all options
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**Dashboard**: `http://localhost:20128/dashboard`
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Multi-User & Token Quotas
|
|
77
|
-
|
|
78
|
-
Lanzz Router supports per-key user/team assignment and token quotas:
|
|
79
|
-
|
|
80
|
-
- **Create API keys** with assignment: `everyone`, `team:<name>`, or `user:<id>`
|
|
81
|
-
- **Set token limits** per key: lifetime, daily, or monthly auto-reset
|
|
82
|
-
- **Member dashboard** at `/member` — login with API key to see quota & usage
|
|
83
|
-
- **Admin dashboard** at `/dashboard` — manage all keys, set quotas
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Connect to a Remote Lanzz Router
|
|
88
|
-
|
|
89
|
-
Already running Lanzz Router on another machine? Point this machine's CLI tools at it:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
npx lanzz-router connect http://<server-host>:20128 # pick tools interactively
|
|
93
|
-
npx lanzz-router connect http://<server-host>:20128 --tools claude,codex # or choose up front
|
|
94
|
-
npx lanzz-router connect --reset --tools claude,codex # undo
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### Checking the current config
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
npx lanzz-router show # every supported tool
|
|
101
|
-
npx lanzz-router show claude # one tool
|
|
102
|
-
npx lanzz-router show claude codex # several
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Supported CLI Tools
|
|
108
|
-
|
|
109
|
-
Claude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider
|
|
110
|
-
|
|
111
|
-
Any tool supporting OpenAI/Claude-compatible API works.
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Data Location
|
|
116
|
-
|
|
117
|
-
- **macOS/Linux**: `~/.lanzz-router/db/data.sqlite`
|
|
118
|
-
- **Windows**: `%APPDATA%/lanzz-router/db/data.sqlite`
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Documentation
|
|
123
|
-
|
|
124
|
-
- **GitHub**: https://github.com/fadhlanayti/lanzz-router
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Acknowledgments
|
|
129
|
-
|
|
130
|
-
- Based on **[9Router](https://github.com/decolua/9router)** by decolua
|
|
131
|
-
|
|
132
|
-
## License
|
|
133
|
-
|
|
134
|
-
MIT License - see [LICENSE](LICENSE) for details.
|
|
1
|
+
# Lanzz Router - AI Router & Token Saver
|
|
2
|
+
|
|
3
|
+
**Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.**
|
|
4
|
+
|
|
5
|
+
**Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/lanzz-router)
|
|
8
|
+
[](https://www.npmjs.com/package/lanzz-router)
|
|
9
|
+
[](https://github.com/fadhlanayti/lanzz-router/blob/main/LICENSE)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Why Lanzz Router?
|
|
14
|
+
|
|
15
|
+
**Stop wasting money, tokens and hitting limits:**
|
|
16
|
+
|
|
17
|
+
- Subscription quota expires unused every month
|
|
18
|
+
- Rate limits stop you mid-coding
|
|
19
|
+
- Tool outputs (git diff, grep, ls...) burn tokens fast
|
|
20
|
+
- Expensive APIs ($20-50/month per provider)
|
|
21
|
+
|
|
22
|
+
**Lanzz Router solves this:**
|
|
23
|
+
|
|
24
|
+
- **RTK Token Saver** - Auto-compress tool_result, save 20-40% tokens
|
|
25
|
+
- **Maximize subscriptions** - Track quota, use every bit before reset
|
|
26
|
+
- **Auto fallback** - Subscription → Cheap → Free, zero downtime
|
|
27
|
+
- **Multi-account** - Round-robin between accounts per provider
|
|
28
|
+
- **Multi-user** - Per-key assignment (everyone/team/user), token quotas, member dashboard
|
|
29
|
+
- **Universal** - Works with any OpenAI/Claude-compatible CLI
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install -g lanzz-router
|
|
37
|
+
lanzz-router
|
|
38
|
+
|
|
39
|
+
# Or run directly with npx
|
|
40
|
+
npx lanzz-router
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Dashboard opens at `http://localhost:20128`
|
|
44
|
+
|
|
45
|
+
**2. Connect a FREE provider (no signup needed):**
|
|
46
|
+
|
|
47
|
+
Dashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done!
|
|
48
|
+
|
|
49
|
+
**3. Use in your CLI tool:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Claude Code/Codex/OpenClaw/Cursor/Cline Settings:
|
|
53
|
+
Endpoint: http://localhost:20128/v1
|
|
54
|
+
API Key: [copy from dashboard]
|
|
55
|
+
Model: kr/claude-sonnet-4.5
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
That's it! Start coding with FREE AI models.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## CLI Options
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
lanzz-router # Start with default settings
|
|
66
|
+
lanzz-router --port 8080 # Custom port
|
|
67
|
+
lanzz-router --no-browser # Don't open browser
|
|
68
|
+
lanzz-router --skip-update # Skip auto-update check
|
|
69
|
+
lanzz-router --help # Show all options
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Dashboard**: `http://localhost:20128/dashboard`
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Multi-User & Token Quotas
|
|
77
|
+
|
|
78
|
+
Lanzz Router supports per-key user/team assignment and token quotas:
|
|
79
|
+
|
|
80
|
+
- **Create API keys** with assignment: `everyone`, `team:<name>`, or `user:<id>`
|
|
81
|
+
- **Set token limits** per key: lifetime, daily, or monthly auto-reset
|
|
82
|
+
- **Member dashboard** at `/member` — login with API key to see quota & usage
|
|
83
|
+
- **Admin dashboard** at `/dashboard` — manage all keys, set quotas
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Connect to a Remote Lanzz Router
|
|
88
|
+
|
|
89
|
+
Already running Lanzz Router on another machine? Point this machine's CLI tools at it:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npx lanzz-router connect http://<server-host>:20128 # pick tools interactively
|
|
93
|
+
npx lanzz-router connect http://<server-host>:20128 --tools claude,codex # or choose up front
|
|
94
|
+
npx lanzz-router connect --reset --tools claude,codex # undo
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Checking the current config
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx lanzz-router show # every supported tool
|
|
101
|
+
npx lanzz-router show claude # one tool
|
|
102
|
+
npx lanzz-router show claude codex # several
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Supported CLI Tools
|
|
108
|
+
|
|
109
|
+
Claude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider
|
|
110
|
+
|
|
111
|
+
Any tool supporting OpenAI/Claude-compatible API works.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Data Location
|
|
116
|
+
|
|
117
|
+
- **macOS/Linux**: `~/.lanzz-router/db/data.sqlite`
|
|
118
|
+
- **Windows**: `%APPDATA%/lanzz-router/db/data.sqlite`
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Documentation
|
|
123
|
+
|
|
124
|
+
- **GitHub**: https://github.com/fadhlanayti/lanzz-router
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Acknowledgments
|
|
129
|
+
|
|
130
|
+
- Based on **[9Router](https://github.com/decolua/9router)** by decolua
|
|
131
|
+
|
|
132
|
+
## License
|
|
133
|
+
|
|
134
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
bwGdUJjEUl5rLKLne6evS
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"/api/media-providers/tts/minimax/voices/route": "/api/media-providers/tts/minimax/voices",
|
|
47
47
|
"/api/media-providers/tts/voices/route": "/api/media-providers/tts/voices",
|
|
48
48
|
"/api/member/quota/route": "/api/member/quota",
|
|
49
|
+
"/api/member/usage/chart/route": "/api/member/usage/chart",
|
|
49
50
|
"/api/member/usage/route": "/api/member/usage",
|
|
50
51
|
"/api/models/availability/route": "/api/models/availability",
|
|
51
52
|
"/api/models/catalog-sync/route": "/api/models/catalog-sync",
|
|
@@ -147,8 +148,8 @@
|
|
|
147
148
|
"/api/oauth/xiaomi-mimo/login/start/route": "/api/oauth/xiaomi-mimo/login/start",
|
|
148
149
|
"/api/oauth/xiaomi-mimo/login/status/route": "/api/oauth/xiaomi-mimo/login/status",
|
|
149
150
|
"/api/provider-nodes/route": "/api/provider-nodes",
|
|
150
|
-
"/api/providers/[id]/models/route": "/api/providers/[id]/models",
|
|
151
151
|
"/api/providers/[id]/overrides/route": "/api/providers/[id]/overrides",
|
|
152
|
+
"/api/providers/[id]/models/route": "/api/providers/[id]/models",
|
|
152
153
|
"/api/providers/[id]/route": "/api/providers/[id]",
|
|
153
154
|
"/api/providers/client/route": "/api/providers/client",
|
|
154
155
|
"/api/providers/route": "/api/providers",
|
|
@@ -172,6 +173,7 @@
|
|
|
172
173
|
"/api/settings/proxy-test/route": "/api/settings/proxy-test",
|
|
173
174
|
"/api/settings/route": "/api/settings",
|
|
174
175
|
"/api/translator/console-logs/stream/route": "/api/translator/console-logs/stream",
|
|
176
|
+
"/api/upstream-updates/route": "/api/upstream-updates",
|
|
175
177
|
"/api/usage/[connectionId]/claude-reset/route": "/api/usage/[connectionId]/claude-reset",
|
|
176
178
|
"/api/usage/[connectionId]/codex-reset-credits/route": "/api/usage/[connectionId]/codex-reset-credits",
|
|
177
179
|
"/api/usage/[connectionId]/route": "/api/usage/[connectionId]",
|
|
@@ -208,7 +210,7 @@
|
|
|
208
210
|
"/(dashboard)/dashboard/users/page": "/dashboard/users",
|
|
209
211
|
"/(dashboard)/dashboard/console-log/page": "/dashboard/console-log",
|
|
210
212
|
"/(dashboard)/dashboard/profile/page": "/dashboard/profile",
|
|
211
|
-
"/(dashboard)/dashboard/providers/[id]/page": "/dashboard/providers/[id]",
|
|
212
213
|
"/(dashboard)/dashboard/providers/page": "/dashboard/providers",
|
|
214
|
+
"/(dashboard)/dashboard/providers/[id]/page": "/dashboard/providers/[id]",
|
|
213
215
|
"/(dashboard)/dashboard/proxy-pools/page": "/dashboard/proxy-pools"
|
|
214
216
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/bwGdUJjEUl5rLKLne6evS/_buildManifest.js",
|
|
8
|
+
"static/bwGdUJjEUl5rLKLne6evS/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
11
|
"static/chunks/webpack-8e4add81f5de5a7c.js",
|
|
@@ -638,6 +638,12 @@
|
|
|
638
638
|
"routeKeys": {},
|
|
639
639
|
"namedRegex": "^/api/member/usage(?:/)?$"
|
|
640
640
|
},
|
|
641
|
+
{
|
|
642
|
+
"page": "/api/member/usage/chart",
|
|
643
|
+
"regex": "^/api/member/usage/chart(?:/)?$",
|
|
644
|
+
"routeKeys": {},
|
|
645
|
+
"namedRegex": "^/api/member/usage/chart(?:/)?$"
|
|
646
|
+
},
|
|
641
647
|
{
|
|
642
648
|
"page": "/api/models",
|
|
643
649
|
"regex": "^/api/models(?:/)?$",
|
|
@@ -1040,6 +1046,12 @@
|
|
|
1040
1046
|
"routeKeys": {},
|
|
1041
1047
|
"namedRegex": "^/api/tunnel/tailscale\\-install(?:/)?$"
|
|
1042
1048
|
},
|
|
1049
|
+
{
|
|
1050
|
+
"page": "/api/upstream-updates",
|
|
1051
|
+
"regex": "^/api/upstream\\-updates(?:/)?$",
|
|
1052
|
+
"routeKeys": {},
|
|
1053
|
+
"namedRegex": "^/api/upstream\\-updates(?:/)?$"
|
|
1054
|
+
},
|
|
1043
1055
|
{
|
|
1044
1056
|
"page": "/api/usage/chart",
|
|
1045
1057
|
"regex": "^/api/usage/chart(?:/)?$",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=4465,a.ids=[4465],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4484:(a,b,c)=>{Promise.resolve().then(c.bind(c,73180))},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40551:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5735),e=c(79286);function f(){return(0,d.jsx)(e.default,{})}},40610:a=>{"use strict";a.exports=require("node:dns")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63480:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["basic-chat",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,40551))),"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\(dashboard)\\dashboard\\basic-chat\\page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/basic-chat/page",pathname:"/dashboard/basic-chat",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},72271:a=>{"use strict";a.exports=require("@aws-sdk/credential-providers")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73180:(a,b,c)=>{"use strict";c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(50412);function g(){return globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():`chat_${Date.now()}_${Math.random().toString(16).slice(2)}`}function h(a){if("string"==typeof a)return a;if(null==a)return"";if(Array.isArray(a))return a.map(h).filter(Boolean).join(" ");if("object"==typeof a){if("string"==typeof a.message)return a.message;if("string"==typeof a.error)return a.error;try{return JSON.stringify(a)}catch{return String(a)}}return String(a)}function i(a=""){let b=h(a).replace(/\s+/g," ").trim();return b?b.length>52?`${b.slice(0,52).trimEnd()}…`:b:"New chat"}async function j(a){return await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error||Error("Failed to read file")),d.readAsDataURL(a)})}function k(){let[a,b]=(0,e.useState)([]),[c,k]=(0,e.useState)(!0),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(()=>[]),[p,q]=(0,e.useState)(()=>""),[r,s]=(0,e.useState)(()=>""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(()=>""),[x,y]=(0,e.useState)([]),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),L=(0,e.useRef)(null),M=(0,e.useRef)(null);(0,e.useRef)(!1);let N=(0,e.useRef)(null),O=(0,e.useRef)(null),P=(0,e.useMemo)(()=>{let b=new Map;for(let c of a)for(let a of c.models)b.set(a.id,{...a,providerId:c.providerId,providerName:c.providerName});return b},[a]),Q=(0,e.useMemo)(()=>a.find(a=>a.providerId===r)||a[0]||null,[a,r]),R=(0,e.useMemo)(()=>{if(t&&P.has(t))return P.get(t);if(p){let a=n.find(a=>a.id===p);if(a?.modelId&&P.has(a.modelId))return P.get(a.modelId)}return Q?.models?.[0]||null},[t,P,Q,n,p]),S=(0,e.useMemo)(()=>n.find(a=>a.id===p)||null,[n,p]),T=S?.messages||[],U=(0,e.useMemo)(()=>[...n].sort((a,b)=>new Date(b.updatedAt).getTime()-new Date(a.updatedAt).getTime()),[n]),V=!z&&!!R&&(v.trim().length>0||x.length>0),W=(a,b)=>{o(c=>c.map(c=>c.id===a?b({...c,messages:Array.isArray(c.messages)?c.messages.map(a=>({...a})):[]}):c))},X=a=>a?{id:g(),title:"New chat",providerId:a.providerId,providerName:a.providerName,modelId:a.id,modelName:a.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]}:null,Y=async a=>{let b=Array.from(a.target.files||[]);if(0===b.length)return;let c=b.filter(a=>a.type.startsWith("image/"));if(0===c.length){a.target.value="";return}let d=await Promise.all(c.map(async a=>({id:g(),name:a.name,type:a.type,size:a.size,dataUrl:await j(a)})));y(a=>[...a,...d]),a.target.value=""},Z=async()=>{let a=R||Q?.models?.[0]||null;if(!a)return;let b=v.trim();if(!b&&0===x.length)return;let c=p,d=n.find(a=>a.id===c);if(!d){if(!(d=X(a)))return;c=d.id,o(a=>[d,...a]),q(c)}let e={id:g(),role:"user",content:b,attachments:x.map(a=>({id:a.id,name:a.name,type:a.type,dataUrl:a.dataUrl})),createdAt:new Date().toISOString()},f=g(),j={id:f,role:"assistant",content:"",createdAt:new Date().toISOString(),status:"streaming"},k=[...d.messages||[],e,j];o(d=>d.map(d=>d.id===c?{...d,providerId:a.providerId,providerName:a.providerName,modelId:a.id,modelName:a.name,messages:k,updatedAt:new Date().toISOString(),title:"New chat"===d.title?i(b):d.title}:d)),w(""),y([]),A(!0),C(f),E(""),M.current?.abort(),M.current=new AbortController;let l=k.filter(a=>"assistant"!==a.role||a.id!==f).map(a=>({role:a.role,content:"user"===a.role?function(a){let b=h(a.content).trim(),c=Array.isArray(a.attachments)?a.attachments:[];if(0===c.length)return b;let d=[];for(let a of(b&&d.push({type:"text",text:b}),c))a?.dataUrl&&d.push({type:"image_url",image_url:{url:a.dataUrl}});return d.length>0?d:b}(a):a.content}));try{var r;let d,e=await fetch("/api/dashboard/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({model:a.requestModel||a.id,messages:l,stream:!0}),signal:M.current.signal});if(!e.ok){let a=await e.json().catch(()=>({}));throw Error(h(a.error||a.message||`Request failed (${e.status})`))}let g=e.body?.getReader();if(!g){let a=await e.json().catch(()=>({})),b=h(a?.choices?.[0]?.message?.content||a?.output_text||a?.error||a?.message||"");W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:b,status:"done"}:a),updatedAt:new Date().toISOString()}));return}let j=new TextDecoder,k="",m="";for(;;){let{value:a,done:b}=await g.read();if(b)break;let d=(k+=j.decode(a,{stream:!0})).split(/\r?\n/);for(let a of(k=d.pop()||"",d)){let b=a.trim();if(!b.startsWith("data:"))continue;let d=b.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),b=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];return[(b?.delta||{}).content,b?.message?.content,a.output_text,a.text].map(h).filter(Boolean)[0]||""}(a);if(!b)continue;m+=b,E(m),W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:m,status:"streaming"}:a),updatedAt:new Date().toISOString()}))}catch{}}}W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:m||a.content,status:"done"}:a),updatedAt:new Date().toISOString()})),r=c,d=i(b),W(r,a=>({...a,title:"New chat"===a.title?d:a.title,updatedAt:new Date().toISOString()}))}catch(a){if("AbortError"!==a.name){let b=h(a?.message||a);W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:a.content||`Error: ${b}`,status:"error"}:a),updatedAt:new Date().toISOString()})),m(b||"Failed to send message.")}}finally{A(!1),C(""),E(""),M.current=null}},$=R?`${R.name}`:"Select model",_=R?R.requestModel:"Choose from connected providers";return(0,d.jsx)("div",{className:"relative flex-1 flex flex-col h-full min-h-0 min-w-0 bg-[#212121] text-white overflow-hidden",children:(0,d.jsxs)("div",{className:"relative mx-auto flex flex-1 h-full min-h-0 w-full max-w-4xl flex-col",children:[(0,d.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 px-4 py-3 lg:px-6",children:[(0,d.jsxs)("div",{ref:N,className:"relative",children:[(0,d.jsx)("button",{type:"button",onClick:()=>I(a=>!a),className:"flex items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-left transition hover:bg-white/8",children:(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold text-white",children:$}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-white/70",children:"expand_more"})]}),(0,d.jsx)("p",{className:"truncate text-xs text-white/55",children:_})]})}),H?(0,d.jsxs)("div",{className:"absolute left-0 top-[calc(100%+10px)] z-30 w-[min(520px,calc(100vw-2rem))] overflow-hidden rounded-[20px] border border-white/10 bg-[#262626] shadow-2xl shadow-black/50",children:[(0,d.jsxs)("div",{className:"border-b border-white/10 px-4 py-3",children:[(0,d.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Models"}),(0,d.jsx)("p",{className:"text-sm text-white/75",children:"Only from connected providers"})]}),(0,d.jsx)("div",{className:"max-h-[60vh] overflow-y-auto p-2 custom-scrollbar",children:a.map(a=>(0,d.jsxs)("div",{className:"mb-2 rounded-[16px] border border-white/10 bg-black/20 p-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-2",children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-white",children:a.providerName}),(0,d.jsx)(f.Ex,{size:"sm",variant:"default",children:a.models.length})]}),(0,d.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:a.models.map(a=>{let b=a.id===t;return(0,d.jsx)("button",{type:"button",onClick:()=>(a=>{let b=P.get(a);if(!b)return;let c=n.find(a=>a.id===p);if(c&&c.messages.length>0){let a=X(b);if(!a)return;o(b=>[a,...b]),q(a.id)}else if(c)o(a=>a.map(a=>a.id===c.id?{...a,providerId:b.providerId,providerName:b.providerName,modelId:b.id,modelName:b.name}:a)),q(c.id);else{let a=X(b);if(!a)return;o(b=>[a,...b]),q(a.id)}s(b.providerId),u(b.id),I(!1)})(a.id),className:`rounded-[14px] border px-3 py-3 text-left transition ${b?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"truncate text-sm font-medium text-white",children:a.name}),(0,d.jsx)("p",{className:"truncate text-[11px] text-white/45",children:a.requestModel})]}),b?(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-blue-300",children:"check_circle"}):null]})},a.id)})})]},a.providerId))})]}):null]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>K(a=>!a),className:"rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/80 transition hover:bg-white/8",children:"History"}),(0,d.jsx)(f.$n,{variant:"ghost",size:"sm",icon:"delete",onClick:()=>{if(!p)return;let a=n.filter(a=>a.id!==p),b=a[0]||null;o(a),b?(q(b.id),s(b.providerId),u(b.modelId)):(q(""),s(""),u(""))},disabled:!p||0===n.length,children:"Clear"})]})]}),J?(0,d.jsxs)("div",{ref:O,className:"absolute right-4 top-[72px] z-20 w-[min(360px,calc(100vw-2rem))] rounded-[20px] border border-white/10 bg-[#262626] p-2 shadow-2xl shadow-black/50 lg:right-6",children:[(0,d.jsx)("div",{className:"px-3 py-2",children:(0,d.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Recent chats"})}),(0,d.jsx)("div",{className:"max-h-[48vh] space-y-2 overflow-y-auto p-1 custom-scrollbar",children:0===U.length?(0,d.jsx)("div",{className:"rounded-[16px] border border-dashed border-white/10 bg-white/5 p-4 text-sm text-white/55",children:"No conversations yet."}):U.map(a=>{let b=a.id===p,c=[...a.messages||[]].reverse().find(a=>"user"===a.role)||a.messages?.[0];return(0,d.jsx)("button",{type:"button",onClick:()=>{var b;let c;return b=a.id,void((c=n.find(a=>a.id===b))&&(q(b),s(c.providerId||r),u(c.modelId||t),K(!1)))},className:`w-full rounded-[16px] border px-3 py-3 text-left transition ${b?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-sm font-medium text-white",children:a.title}),(0,d.jsx)("p",{className:"mt-1 truncate text-xs text-white/50",children:h(c?.content)||"Empty chat"})]}),(0,d.jsx)("span",{className:"text-[10px] text-white/40 shrink-0",children:function(a){if(!a)return"Now";let b=new Date(a).getTime();if(Number.isNaN(b))return"Now";let c=Math.max(1,Math.round((Date.now()-b)/6e4));if(c<60)return`${c}m`;let d=Math.round(c/60);return d<24?`${d}h`:`${Math.round(d/24)}d`}(a.updatedAt)})]})},a.id)})})]}):null,l?(0,d.jsx)("div",{className:"mt-4 rounded-[18px] border border-rose-500/20 bg-rose-500/10 px-4 py-3 text-rose-100",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"error"}),(0,d.jsx)("p",{className:"text-sm leading-6",children:l})]})}):null,(0,d.jsxs)("div",{className:"flex flex-1 flex-col min-h-0",children:[(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto py-4 custom-scrollbar",children:[0===T.length?(0,d.jsx)("div",{className:"flex min-h-[50vh] items-center justify-center px-4 text-center",children:(0,d.jsxs)("div",{className:"max-w-xl space-y-4",children:[(0,d.jsx)("div",{className:"mx-auto flex size-16 items-center justify-center rounded-[20px] border border-white/10 bg-white/5 text-white/80",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[30px]",children:"chat"})}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h2",{className:"text-2xl font-semibold text-white",children:"Start a conversation"}),(0,d.jsx)("p",{className:"text-sm leading-6 text-white/60",children:"Simple chat interface to interact with any AI model from connected providers. Select a model and start chatting!"})]})]})}):null,(0,d.jsx)("div",{className:"mx-auto flex w-full max-w-3xl flex-col gap-4 px-4",children:T.map(a=>{let b="user"===a.role,c="assistant"===a.role,e=c&&a.id===B&&"streaming"===a.status,f=h(a.content)||(c?D:"");return(0,d.jsx)("div",{className:`flex w-full ${b?"justify-end":"justify-start"} mb-6`,children:(0,d.jsxs)("div",{className:`max-w-[min(88%,42rem)] ${b?"rounded-3xl bg-[#2f2f2f] px-5 py-3.5 text-white":"text-white/90"}`,children:[(0,d.jsx)("div",{className:"mb-1 flex items-center justify-between gap-3",children:(0,d.jsx)("span",{className:"text-xs font-semibold",children:b?"You":R?.name||"Assistant"})}),a.attachments?.length?(0,d.jsx)("div",{className:"mb-3 grid grid-cols-2 gap-2 sm:grid-cols-3 mt-2",children:a.attachments.map(a=>(0,d.jsx)("a",{href:a.dataUrl,target:"_blank",rel:"noreferrer",className:"overflow-hidden rounded-[18px] border border-white/10 bg-black/20",children:(0,d.jsx)("img",{src:a.dataUrl,alt:a.name,className:"h-28 w-full object-cover",loading:"lazy",decoding:"async"})},a.id))}):null,(0,d.jsxs)("div",{className:"whitespace-pre-wrap break-words text-[15px] leading-7",children:[f,c&&e&&!D?(0,d.jsx)("span",{className:"inline-block animate-pulse",children:"▋"}):null]})]})},a.id)})})]}),(0,d.jsxs)("div",{className:"shrink-0 pt-2",children:[x.length>0?(0,d.jsx)("div",{className:"mx-auto mb-3 flex w-full max-w-3xl flex-wrap gap-2 px-4",children:x.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2",children:[(0,d.jsx)("span",{className:"text-xs text-white/80 max-w-[12rem] truncate",children:a.name}),(0,d.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.id,void y(a=>a.filter(a=>a.id!==b))},className:"text-white/55 hover:text-white","aria-label":"Remove attachment",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]},a.id))}):null,(0,d.jsx)("div",{className:"mx-auto w-full max-w-3xl px-4 pb-2",children:(0,d.jsxs)("div",{className:"rounded-[26px] bg-[#2f2f2f] px-3 pt-3 pb-2 shadow-[0_0_15px_rgba(0,0,0,0.10)] ring-1 ring-white/5",children:[(0,d.jsx)("textarea",{value:v,onChange:a=>w(a.target.value),onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&(a.preventDefault(),V&&Z())},placeholder:"Message AI",rows:1,className:"w-full resize-none bg-transparent px-2 text-[15px] leading-6 text-white outline-none placeholder:text-white/40 custom-scrollbar max-h-[25vh] overflow-y-auto"}),(0,d.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>L.current?.click(),disabled:!R||c,className:"p-2 text-white/50 hover:text-white transition rounded-full hover:bg-white/5",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"attach_file"})}),(0,d.jsx)("input",{ref:L,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:Y}),(0,d.jsx)("span",{className:"text-xs font-medium text-white/30 truncate max-w-[120px]",children:R?R.name:"No model"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[z?(0,d.jsx)("button",{type:"button",onClick:()=>{M.current?.abort()},className:"p-2 text-white bg-white/10 hover:bg-white/20 transition rounded-full h-8 w-8 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop"})}):null,(0,d.jsx)("button",{onClick:Z,disabled:!V,className:`h-8 w-8 rounded-full flex items-center justify-center transition ${V?"bg-white text-black hover:opacity-90":"bg-white/10 text-white/30 cursor-not-allowed"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_upward"})})]})]})]})})]}),(0,d.jsx)("p",{className:"mx-auto mt-2 max-w-3xl px-4 pb-4 text-center text-[11px] text-white/30",children:"Model list is filtered from connected providers."})]})]})})}c(91431),c(92592)},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79286:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Fadhlan\\\\Desktop\\\\test\\\\router-custom\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\basic-chat\\\\BasicChatPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\(dashboard)\\dashboard\\basic-chat\\BasicChatPageClient.js","default")},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96868:(a,b,c)=>{Promise.resolve().then(c.bind(c,79286))}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1260,2430,7594,2116,9100,1892,6070,869,915,6457,4123,7857,6777,412,5568],()=>b(b.s=63480));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=4465,a.ids=[4465],a.modules={643:a=>{"use strict";a.exports=require("node:perf_hooks")},1708:a=>{"use strict";a.exports=require("node:process")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4484:(a,b,c)=>{Promise.resolve().then(c.bind(c,73180))},4573:a=>{"use strict";a.exports=require("node:buffer")},7066:a=>{"use strict";a.exports=require("node:tty")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},17415:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,57529))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["basic-chat",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,40551))),"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\(dashboard)\\dashboard\\basic-chat\\page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/basic-chat/page",pathname:"/dashboard/basic-chat",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40551:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5735),e=c(79286);function f(){return(0,d.jsx)(e.default,{})}},40610:a=>{"use strict";a.exports=require("node:dns")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71553:a=>{"use strict";a.exports=require("node:dns/promises")},71622:a=>{"use strict";a.exports=import("open")},72271:a=>{"use strict";a.exports=require("@aws-sdk/credential-providers")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73180:(a,b,c)=>{"use strict";c.d(b,{default:()=>k});var d=c(48249),e=c(67484),f=c(50412);function g(){return globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():`chat_${Date.now()}_${Math.random().toString(16).slice(2)}`}function h(a){if("string"==typeof a)return a;if(null==a)return"";if(Array.isArray(a))return a.map(h).filter(Boolean).join(" ");if("object"==typeof a){if("string"==typeof a.message)return a.message;if("string"==typeof a.error)return a.error;try{return JSON.stringify(a)}catch{return String(a)}}return String(a)}function i(a=""){let b=h(a).replace(/\s+/g," ").trim();return b?b.length>52?`${b.slice(0,52).trimEnd()}…`:b:"New chat"}async function j(a){return await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error||Error("Failed to read file")),d.readAsDataURL(a)})}function k(){let[a,b]=(0,e.useState)([]),[c,k]=(0,e.useState)(!0),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(()=>[]),[p,q]=(0,e.useState)(()=>""),[r,s]=(0,e.useState)(()=>""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(()=>""),[x,y]=(0,e.useState)([]),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),L=(0,e.useRef)(null),M=(0,e.useRef)(null);(0,e.useRef)(!1);let N=(0,e.useRef)(null),O=(0,e.useRef)(null),P=(0,e.useMemo)(()=>{let b=new Map;for(let c of a)for(let a of c.models)b.set(a.id,{...a,providerId:c.providerId,providerName:c.providerName});return b},[a]),Q=(0,e.useMemo)(()=>a.find(a=>a.providerId===r)||a[0]||null,[a,r]),R=(0,e.useMemo)(()=>{if(t&&P.has(t))return P.get(t);if(p){let a=n.find(a=>a.id===p);if(a?.modelId&&P.has(a.modelId))return P.get(a.modelId)}return Q?.models?.[0]||null},[t,P,Q,n,p]),S=(0,e.useMemo)(()=>n.find(a=>a.id===p)||null,[n,p]),T=S?.messages||[],U=(0,e.useMemo)(()=>[...n].sort((a,b)=>new Date(b.updatedAt).getTime()-new Date(a.updatedAt).getTime()),[n]),V=!z&&!!R&&(v.trim().length>0||x.length>0),W=(a,b)=>{o(c=>c.map(c=>c.id===a?b({...c,messages:Array.isArray(c.messages)?c.messages.map(a=>({...a})):[]}):c))},X=a=>a?{id:g(),title:"New chat",providerId:a.providerId,providerName:a.providerName,modelId:a.id,modelName:a.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]}:null,Y=async a=>{let b=Array.from(a.target.files||[]);if(0===b.length)return;let c=b.filter(a=>a.type.startsWith("image/"));if(0===c.length){a.target.value="";return}let d=await Promise.all(c.map(async a=>({id:g(),name:a.name,type:a.type,size:a.size,dataUrl:await j(a)})));y(a=>[...a,...d]),a.target.value=""},Z=async()=>{let a=R||Q?.models?.[0]||null;if(!a)return;let b=v.trim();if(!b&&0===x.length)return;let c=p,d=n.find(a=>a.id===c);if(!d){if(!(d=X(a)))return;c=d.id,o(a=>[d,...a]),q(c)}let e={id:g(),role:"user",content:b,attachments:x.map(a=>({id:a.id,name:a.name,type:a.type,dataUrl:a.dataUrl})),createdAt:new Date().toISOString()},f=g(),j={id:f,role:"assistant",content:"",createdAt:new Date().toISOString(),status:"streaming"},k=[...d.messages||[],e,j];o(d=>d.map(d=>d.id===c?{...d,providerId:a.providerId,providerName:a.providerName,modelId:a.id,modelName:a.name,messages:k,updatedAt:new Date().toISOString(),title:"New chat"===d.title?i(b):d.title}:d)),w(""),y([]),A(!0),C(f),E(""),M.current?.abort(),M.current=new AbortController;let l=k.filter(a=>"assistant"!==a.role||a.id!==f).map(a=>({role:a.role,content:"user"===a.role?function(a){let b=h(a.content).trim(),c=Array.isArray(a.attachments)?a.attachments:[];if(0===c.length)return b;let d=[];for(let a of(b&&d.push({type:"text",text:b}),c))a?.dataUrl&&d.push({type:"image_url",image_url:{url:a.dataUrl}});return d.length>0?d:b}(a):a.content}));try{var r;let d,e=await fetch("/api/dashboard/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({model:a.requestModel||a.id,messages:l,stream:!0}),signal:M.current.signal});if(!e.ok){let a=await e.json().catch(()=>({}));throw Error(h(a.error||a.message||`Request failed (${e.status})`))}let g=e.body?.getReader();if(!g){let a=await e.json().catch(()=>({})),b=h(a?.choices?.[0]?.message?.content||a?.output_text||a?.error||a?.message||"");W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:b,status:"done"}:a),updatedAt:new Date().toISOString()}));return}let j=new TextDecoder,k="",m="";for(;;){let{value:a,done:b}=await g.read();if(b)break;let d=(k+=j.decode(a,{stream:!0})).split(/\r?\n/);for(let a of(k=d.pop()||"",d)){let b=a.trim();if(!b.startsWith("data:"))continue;let d=b.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),b=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];return[(b?.delta||{}).content,b?.message?.content,a.output_text,a.text].map(h).filter(Boolean)[0]||""}(a);if(!b)continue;m+=b,E(m),W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:m,status:"streaming"}:a),updatedAt:new Date().toISOString()}))}catch{}}}W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:m||a.content,status:"done"}:a),updatedAt:new Date().toISOString()})),r=c,d=i(b),W(r,a=>({...a,title:"New chat"===a.title?d:a.title,updatedAt:new Date().toISOString()}))}catch(a){if("AbortError"!==a.name){let b=h(a?.message||a);W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:a.content||`Error: ${b}`,status:"error"}:a),updatedAt:new Date().toISOString()})),m(b||"Failed to send message.")}}finally{A(!1),C(""),E(""),M.current=null}},$=R?`${R.name}`:"Select model",_=R?R.requestModel:"Choose from connected providers";return(0,d.jsx)("div",{className:"relative flex-1 flex flex-col h-full min-h-0 min-w-0 bg-[#212121] text-white overflow-hidden",children:(0,d.jsxs)("div",{className:"relative mx-auto flex flex-1 h-full min-h-0 w-full max-w-4xl flex-col",children:[(0,d.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 px-4 py-3 lg:px-6",children:[(0,d.jsxs)("div",{ref:N,className:"relative",children:[(0,d.jsx)("button",{type:"button",onClick:()=>I(a=>!a),className:"flex items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-left transition hover:bg-white/8",children:(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold text-white",children:$}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-white/70",children:"expand_more"})]}),(0,d.jsx)("p",{className:"truncate text-xs text-white/55",children:_})]})}),H?(0,d.jsxs)("div",{className:"absolute left-0 top-[calc(100%+10px)] z-30 w-[min(520px,calc(100vw-2rem))] overflow-hidden rounded-[20px] border border-white/10 bg-[#262626] shadow-2xl shadow-black/50",children:[(0,d.jsxs)("div",{className:"border-b border-white/10 px-4 py-3",children:[(0,d.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Models"}),(0,d.jsx)("p",{className:"text-sm text-white/75",children:"Only from connected providers"})]}),(0,d.jsx)("div",{className:"max-h-[60vh] overflow-y-auto p-2 custom-scrollbar",children:a.map(a=>(0,d.jsxs)("div",{className:"mb-2 rounded-[16px] border border-white/10 bg-black/20 p-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-2",children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-white",children:a.providerName}),(0,d.jsx)(f.Ex,{size:"sm",variant:"default",children:a.models.length})]}),(0,d.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:a.models.map(a=>{let b=a.id===t;return(0,d.jsx)("button",{type:"button",onClick:()=>(a=>{let b=P.get(a);if(!b)return;let c=n.find(a=>a.id===p);if(c&&c.messages.length>0){let a=X(b);if(!a)return;o(b=>[a,...b]),q(a.id)}else if(c)o(a=>a.map(a=>a.id===c.id?{...a,providerId:b.providerId,providerName:b.providerName,modelId:b.id,modelName:b.name}:a)),q(c.id);else{let a=X(b);if(!a)return;o(b=>[a,...b]),q(a.id)}s(b.providerId),u(b.id),I(!1)})(a.id),className:`rounded-[14px] border px-3 py-3 text-left transition ${b?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"truncate text-sm font-medium text-white",children:a.name}),(0,d.jsx)("p",{className:"truncate text-[11px] text-white/45",children:a.requestModel})]}),b?(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-blue-300",children:"check_circle"}):null]})},a.id)})})]},a.providerId))})]}):null]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>K(a=>!a),className:"rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/80 transition hover:bg-white/8",children:"History"}),(0,d.jsx)(f.$n,{variant:"ghost",size:"sm",icon:"delete",onClick:()=>{if(!p)return;let a=n.filter(a=>a.id!==p),b=a[0]||null;o(a),b?(q(b.id),s(b.providerId),u(b.modelId)):(q(""),s(""),u(""))},disabled:!p||0===n.length,children:"Clear"})]})]}),J?(0,d.jsxs)("div",{ref:O,className:"absolute right-4 top-[72px] z-20 w-[min(360px,calc(100vw-2rem))] rounded-[20px] border border-white/10 bg-[#262626] p-2 shadow-2xl shadow-black/50 lg:right-6",children:[(0,d.jsx)("div",{className:"px-3 py-2",children:(0,d.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Recent chats"})}),(0,d.jsx)("div",{className:"max-h-[48vh] space-y-2 overflow-y-auto p-1 custom-scrollbar",children:0===U.length?(0,d.jsx)("div",{className:"rounded-[16px] border border-dashed border-white/10 bg-white/5 p-4 text-sm text-white/55",children:"No conversations yet."}):U.map(a=>{let b=a.id===p,c=[...a.messages||[]].reverse().find(a=>"user"===a.role)||a.messages?.[0];return(0,d.jsx)("button",{type:"button",onClick:()=>{var b;let c;return b=a.id,void((c=n.find(a=>a.id===b))&&(q(b),s(c.providerId||r),u(c.modelId||t),K(!1)))},className:`w-full rounded-[16px] border px-3 py-3 text-left transition ${b?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-sm font-medium text-white",children:a.title}),(0,d.jsx)("p",{className:"mt-1 truncate text-xs text-white/50",children:h(c?.content)||"Empty chat"})]}),(0,d.jsx)("span",{className:"text-[10px] text-white/40 shrink-0",children:function(a){if(!a)return"Now";let b=new Date(a).getTime();if(Number.isNaN(b))return"Now";let c=Math.max(1,Math.round((Date.now()-b)/6e4));if(c<60)return`${c}m`;let d=Math.round(c/60);return d<24?`${d}h`:`${Math.round(d/24)}d`}(a.updatedAt)})]})},a.id)})})]}):null,l?(0,d.jsx)("div",{className:"mt-4 rounded-[18px] border border-rose-500/20 bg-rose-500/10 px-4 py-3 text-rose-100",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"error"}),(0,d.jsx)("p",{className:"text-sm leading-6",children:l})]})}):null,(0,d.jsxs)("div",{className:"flex flex-1 flex-col min-h-0",children:[(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto py-4 custom-scrollbar",children:[0===T.length?(0,d.jsx)("div",{className:"flex min-h-[50vh] items-center justify-center px-4 text-center",children:(0,d.jsxs)("div",{className:"max-w-xl space-y-4",children:[(0,d.jsx)("div",{className:"mx-auto flex size-16 items-center justify-center rounded-[20px] border border-white/10 bg-white/5 text-white/80",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[30px]",children:"chat"})}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h2",{className:"text-2xl font-semibold text-white",children:"Start a conversation"}),(0,d.jsx)("p",{className:"text-sm leading-6 text-white/60",children:"Simple chat interface to interact with any AI model from connected providers. Select a model and start chatting!"})]})]})}):null,(0,d.jsx)("div",{className:"mx-auto flex w-full max-w-3xl flex-col gap-4 px-4",children:T.map(a=>{let b="user"===a.role,c="assistant"===a.role,e=c&&a.id===B&&"streaming"===a.status,f=h(a.content)||(c?D:"");return(0,d.jsx)("div",{className:`flex w-full ${b?"justify-end":"justify-start"} mb-6`,children:(0,d.jsxs)("div",{className:`max-w-[min(88%,42rem)] ${b?"rounded-3xl bg-[#2f2f2f] px-5 py-3.5 text-white":"text-white/90"}`,children:[(0,d.jsx)("div",{className:"mb-1 flex items-center justify-between gap-3",children:(0,d.jsx)("span",{className:"text-xs font-semibold",children:b?"You":R?.name||"Assistant"})}),a.attachments?.length?(0,d.jsx)("div",{className:"mb-3 grid grid-cols-2 gap-2 sm:grid-cols-3 mt-2",children:a.attachments.map(a=>(0,d.jsx)("a",{href:a.dataUrl,target:"_blank",rel:"noreferrer",className:"overflow-hidden rounded-[18px] border border-white/10 bg-black/20",children:(0,d.jsx)("img",{src:a.dataUrl,alt:a.name,className:"h-28 w-full object-cover",loading:"lazy",decoding:"async"})},a.id))}):null,(0,d.jsxs)("div",{className:"whitespace-pre-wrap break-words text-[15px] leading-7",children:[f,c&&e&&!D?(0,d.jsx)("span",{className:"inline-block animate-pulse",children:"▋"}):null]})]})},a.id)})})]}),(0,d.jsxs)("div",{className:"shrink-0 pt-2",children:[x.length>0?(0,d.jsx)("div",{className:"mx-auto mb-3 flex w-full max-w-3xl flex-wrap gap-2 px-4",children:x.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2",children:[(0,d.jsx)("span",{className:"text-xs text-white/80 max-w-[12rem] truncate",children:a.name}),(0,d.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.id,void y(a=>a.filter(a=>a.id!==b))},className:"text-white/55 hover:text-white","aria-label":"Remove attachment",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]},a.id))}):null,(0,d.jsx)("div",{className:"mx-auto w-full max-w-3xl px-4 pb-2",children:(0,d.jsxs)("div",{className:"rounded-[26px] bg-[#2f2f2f] px-3 pt-3 pb-2 shadow-[0_0_15px_rgba(0,0,0,0.10)] ring-1 ring-white/5",children:[(0,d.jsx)("textarea",{value:v,onChange:a=>w(a.target.value),onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&(a.preventDefault(),V&&Z())},placeholder:"Message AI",rows:1,className:"w-full resize-none bg-transparent px-2 text-[15px] leading-6 text-white outline-none placeholder:text-white/40 custom-scrollbar max-h-[25vh] overflow-y-auto"}),(0,d.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>L.current?.click(),disabled:!R||c,className:"p-2 text-white/50 hover:text-white transition rounded-full hover:bg-white/5",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"attach_file"})}),(0,d.jsx)("input",{ref:L,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:Y}),(0,d.jsx)("span",{className:"text-xs font-medium text-white/30 truncate max-w-[120px]",children:R?R.name:"No model"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[z?(0,d.jsx)("button",{type:"button",onClick:()=>{M.current?.abort()},className:"p-2 text-white bg-white/10 hover:bg-white/20 transition rounded-full h-8 w-8 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop"})}):null,(0,d.jsx)("button",{onClick:Z,disabled:!V,className:`h-8 w-8 rounded-full flex items-center justify-center transition ${V?"bg-white text-black hover:opacity-90":"bg-white/10 text-white/30 cursor-not-allowed"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_upward"})})]})]})]})})]}),(0,d.jsx)("p",{className:"mx-auto mt-2 max-w-3xl px-4 pb-4 text-center text-[11px] text-white/30",children:"Model list is filtered from connected providers."})]})]})})}c(91431),c(92592)},73429:a=>{"use strict";a.exports=require("node:util/types")},73496:a=>{"use strict";a.exports=require("http2")},74075:a=>{"use strict";a.exports=require("zlib")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79286:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"C:\\\\Users\\\\Fadhlan\\\\Desktop\\\\test\\\\router-custom\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\basic-chat\\\\BasicChatPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Fadhlan\\Desktop\\test\\router-custom\\src\\app\\(dashboard)\\dashboard\\basic-chat\\BasicChatPageClient.js","default")},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96868:(a,b,c)=>{Promise.resolve().then(c.bind(c,79286))}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1260,2430,7594,2116,9100,1892,6070,869,915,6457,4123,7857,6777,412,5568],()=>b(b.s=17415));module.exports=c})();
|