@jheavenknows/bluerouter 2.0.35 → 2.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +7 -7
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/required-server-files.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_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 +2 -2
- 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_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_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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_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_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_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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- 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_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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_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_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_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_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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +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.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/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/cli-tools/all-statuses/route.js +4 -4
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- 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/autostart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/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/cline-settings/route.js +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/copilot-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +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/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +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/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/dashboard/analytics/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/rotate/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/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +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/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/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/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +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/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/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/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-health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-health/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/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +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/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +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/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/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/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +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.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/tunnel/tailscale-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/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/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/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/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/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +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/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/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_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/page.js +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 +7 -7
- package/app/.next-cli-build/server/chunks/3110.js +1 -1
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/4803.js +1 -1
- package/app/.next-cli-build/server/chunks/5087.js +1 -1
- package/app/.next-cli-build/server/chunks/5199.js +1 -1
- package/app/.next-cli-build/server/chunks/5681.js +1 -1
- package/app/.next-cli-build/server/chunks/5901.js +2 -2
- package/app/.next-cli-build/server/chunks/6663.js +1 -1
- package/app/.next-cli-build/server/chunks/7130.js +1 -1
- package/app/.next-cli-build/server/chunks/7153.js +1 -1
- package/app/.next-cli-build/server/chunks/7774.js +2 -2
- package/app/.next-cli-build/server/chunks/7795.js +2 -2
- package/app/.next-cli-build/server/chunks/7965.js +1 -1
- package/app/.next-cli-build/server/chunks/8520.js +1 -1
- package/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/{1321-9fed2320c736236c.js → 1321-dd77c9408c6e8818.js} +1 -1
- package/app/.next-cli-build/static/chunks/{3794-e569667691edc8f7.js → 3794-cef5038dc7aa126a.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-5fffb98c7f2d1852.js → page-541350d30a713a9e.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9ae277b4cec2c31d.js +3 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-0cf8abbb69a8a288.js → page-9e80977106840c3e.js} +1 -1
- package/app/.next-cli-build/static/chunks/{main-eb1b86e4183e86c5.js → main-80a34745801ef1a2.js} +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/jwt-secret +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/machine-id +1 -1
- package/app/cli/.build-home/AppData/Roaming/nextjs-nodejs/Config/config.json +3 -3
- package/app/node_modules/@next/env/package.json +2 -2
- package/app/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
- package/app/node_modules/baseline-browser-mapping/package.json +1 -1
- package/app/node_modules/next/dist/build/swc/index.js +1 -1
- package/app/node_modules/next/dist/build/webpack-config.js +3 -3
- package/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +1 -1
- package/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/app/node_modules/next/dist/server/config.js +1 -1
- package/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/app/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/app/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/app/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/app/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/app/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/app/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/app/node_modules/next/package.json +15 -15
- package/app/package.json +1 -1
- package/app/server.js +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-25b42b91a3499c7c.js +0 -3
- /package/app/.next-cli-build/static/{WCUidriJTkYCwYemRo-eO → 7iUvy3V5r7ZH09Ps9Ypl5}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{WCUidriJTkYCwYemRo-eO → 7iUvy3V5r7ZH09Ps9Ypl5}/_ssgManifest.js +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-2.0.29-to-2.0.30-2.0.30-20260612-153436 → upgrade-2.0.16-to-2.0.17-2.0.17-20260611-205800}/data.sqlite +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-2.0.30-to-2.0.31-2.0.31-20260612-155301 → upgrade-2.0.17-to-2.0.18-2.0.18-20260611-213830}/data.sqlite +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-2.0.31-to-2.0.32-2.0.32-20260612-155802 → upgrade-2.0.18-to-2.0.19-2.0.19-20260612-070646}/data.sqlite +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-2.0.32-to-2.0.34-2.0.34-20260612-162239 → upgrade-2.0.19-to-2.0.20-2.0.20-20260612-071743}/data.sqlite +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-2.0.34-to-2.0.35-2.0.35-20260612-173455 → upgrade-2.0.20-to-2.0.36-2.0.36-20260612-192253}/data.sqlite +0 -0
package/app/.next-cli-build/static/chunks/{3794-e569667691edc8f7.js → 3794-cef5038dc7aa126a.js}
RENAMED
|
@@ -29,4 +29,4 @@
|
|
|
29
29
|
}
|
|
30
30
|
body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
|
|
31
31
|
`.replace(/\n\s*/g,"");function i(){return(0,u.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:l.icon,children:(0,u.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},83180:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={djb2Hash:function(){return a},hexHash:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function a(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r)|0;return t>>>0}function u(e){return a(e).toString(36).slice(0,5)}},83861:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(52431);let n=r(93294),a=r(42);(0,n.appBootstrap)(e=>{let{hydrate:t}=r(55448);r(74036),r(57121),t(a,e)}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},84035:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"prefetch",{enumerable:!0,get:function(){return o}});let n=r(28720),a=r(26452),u=r(57705),l=r(77565);function o(e,t,r,o,i){let s=(0,n.createPrefetchURL)(e);if(null===s)return;let c=(0,a.createCacheKey)(s.href,t);(0,u.schedulePrefetchTask)(c,r,o,l.PrefetchPriority.Default,i)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},84344:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"forbidden",{enumerable:!0,get:function(){return n}}),r(87016).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},84536:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return d},getCacheKeyForDynamicParam:function(){return p},getParamValueFromCacheKey:function(){return y},getRenderedPathname:function(){return s},getRenderedSearch:function(){return i},parseDynamicParamFromURLPart:function(){return f},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return h}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(78237),l=r(63534),o=r(15563);function i(e){let t=e.headers.get(o.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:h(new URL(e.url)).search}function s(e){return e.headers.get(o.NEXT_REWRITTEN_PATH_HEADER)??h(new URL(e.url)).pathname}function c(e){try{return encodeURIComponent(decodeURIComponent(e))}catch{return e}}function f(e,t,r){switch(e){case"c":return r<t.length?t.slice(r).map(e=>c(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r<t.length?t.slice(r).map((e,t)=>0===t?c(e.slice(n)):c(e)):[]}case"oc":return r<t.length?t.slice(r).map(e=>c(e)):null;case"d":if(r>=t.length)return"";return c(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return c(t[r].slice(n))}default:return""}}function d(e){return!(e===l.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function p(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function h(e){let t=new URL(e);return t.searchParams.delete(o.NEXT_RSC_UNION_QUERY),t}function y(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},86869:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return n}}),r(95155);let n=()=>null},86897:(e,t)=>{"use strict";var r=Symbol.for("react.transitional.element");function n(e,t,n){var a=null;if(void 0!==n&&(a=""+n),void 0!==t.key&&(a=""+t.key),"key"in t)for(var u in n={},t)"key"!==u&&(n[u]=t[u]);else n=t;return{$$typeof:r,type:e,key:a,ref:void 0!==(t=n.ref)?t:null,props:n}}t.Fragment=Symbol.for("react.fragment"),t.jsx=n,t.jsxs=n},87016:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={HTTPAccessErrorStatus:function(){return a},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return l},getAccessFallbackErrorTypeByStatus:function(){return s},getAccessFallbackHTTPStatus:function(){return i},isHTTPAccessFallbackError:function(){return o}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let a={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},u=new Set(Object.values(a)),l="NEXT_HTTP_ERROR_FALLBACK";function o(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===l&&u.has(Number(r))}function i(e){return Number(e.digest.split(";")[1])}function s(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87491:(e,t,r)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverActionReducer",{enumerable:!0,get:function(){return M}});let a=r(77304),u=r(4060),l=r(15563),o=r(94454),i=r(77197),s=r(74616),c=r(67841),f=r(29453),d=r(60398),p=r(4103),h=r(23159),y=r(95888),_=r(48512),g=r(1262),v=r(12506),m=r(57705),b=r(53887),E=r(97797),R=r(7103),P=r(20354),S=r(68378),O=r(61840),T=r(28720),j=r(22120),w=r(28796),A=r(80882),C=i.createFromFetch;async function x(e,t,{actionId:r,actionArgs:s}){let f,d,h,y,_=(0,i.createTemporaryReferenceSet)(),v=(0,g.extractInfoFromServerReferenceId)(r),m=(0,g.omitUnusedArgs)(s,v),P=await (0,i.encodeReply)(m,{temporaryReferences:_}),S={Accept:l.RSC_CONTENT_TYPE_HEADER,[l.ACTION_HEADER]:r,[l.NEXT_ROUTER_STATE_TREE_HEADER]:(0,p.prepareFlightRouterStateForRequest)(e.tree)},T=(0,b.getDeploymentId)();T&&(S["x-deployment-id"]=T),t&&(S[l.NEXT_URL]=t);let j=await fetch(e.canonicalUrl,{method:"POST",headers:S,body:P});if("1"===j.headers.get(l.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${r}" was not found on the server.
|
|
32
|
-
Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let A=j.headers.get("x-action-redirect"),[M,N]=A?.split(";")||[];switch(N){case"push":f="push";break;case"replace":f="replace";break;default:f=void 0}let D=!!j.headers.get(l.NEXT_IS_PRERENDER_HEADER),I=O.ActionDidNotRevalidate;try{let e=j.headers.get("x-action-revalidated");if(e){let t=JSON.parse(e);(t===O.ActionDidRevalidateStaticAndDynamic||t===O.ActionDidRevalidateDynamicOnly)&&(I=t)}}catch{}let F=M?(0,c.assignLocation)(M,new URL(e.canonicalUrl,window.location.href)):void 0,L=j.headers.get("content-type"),U=!!(L&&L.startsWith(l.RSC_CONTENT_TYPE_HEADER));if(!U&&!F)throw Object.defineProperty(Error(j.status>=400&&"text/plain"===L?await j.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let k=!1;if(U){let e=F?(0,w.processFetch)(j).then(({response:e})=>e):Promise.resolve(j),t=await C(e,{callServer:a.callServer,findSourceMapURL:u.findSourceMapURL,temporaryReferences:_,debugChannel:n&&n(S)});d=F?void 0:t.a,k=t.i;let r=j.headers.get(R.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;if(void 0!==r&&r!==(0,E.getNavigationBuildId)());else{let e=(0,p.normalizeFlightData)(t.f);""!==e&&(h=e,y=t.q)}}else d=void 0,h=void 0,y=void 0;return{actionResult:d,actionFlightData:h,actionFlightDataRenderedSearch:y,redirectLocation:F,redirectType:f,revalidationKind:I,isPrerender:D,couldBeIntercepted:k}}function M(e,t){let{resolve:r,reject:n}=t,a=(e.previousNextUrl||e.nextUrl)&&(0,d.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null;return x(e,a,t).then(async({revalidationKind:u,actionResult:l,actionFlightData:o,actionFlightDataRenderedSearch:i,redirectLocation:c,redirectType:d,isPrerender:p,couldBeIntercepted:h})=>{u!==O.ActionDidNotRevalidate&&((0,A.invalidateBfCache)(),t.didRevalidate=!0,u===O.ActionDidRevalidateStaticAndDynamic&&(0,v.invalidateEntirePrefetchCache)(a,e.tree),(0,m.startRevalidationCooldown)());let g=d||"push";if(void 0!==c)if((0,T.isExternalURL)(c))return n(N(c.href,g)),(0,P.completeHardNavigation)(e,c,g);else{let e=(0,f.createHrefFromUrl)(c,!1);n(N((0,_.hasBasePath)(e)?(0,y.removeBasePath)(e):e,g))}else r(l);if(void 0===c&&u===O.ActionDidNotRevalidate&&void 0===o)return e;if(void 0===o&&void 0!==c)return(0,P.completeHardNavigation)(e,c,g);if("string"==typeof o)return(0,P.completeHardNavigation)(e,new URL(o,location.origin),g);let b=new URL(e.canonicalUrl,location.origin),E=e.renderedSearch,R=void 0!==c?c:b,w=e.tree,C=s.ScrollBehavior.Default,x=u===O.ActionDidNotRevalidate?j.FreshnessPolicy.Default:j.FreshnessPolicy.RefreshAll;if(void 0!==o&&void 0!==i){let t=(0,f.createHrefFromUrl)(R),r=Date.now(),n=(0,P.convertServerPatchToFullTree)(r,w,o,i,A.UnknownDynamicStaleTime),u=n.metadataVaryPath;return null!==u&&(0,S.discoverKnownRoute)(r,R.pathname,a,null,n.routeTree,u,h,t,p,!1),(0,P.navigateToKnownRoute)(r,e,R,t,n,b,E,e.cache,w,x,a,C,g,null,null)}return(0,P.navigate)(e,R,b,E,e.cache,w,a,x,C,g)},t=>(n(t),e))}function N(e,t){let r=(0,h.getRedirectError)(e,t);return r.handled=!0,r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},89226:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={compareAppPaths:function(){return i},normalizeAppPath:function(){return o},normalizeRscURL:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(21315),l=r(78237);function o(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,l.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function i(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function s(e){return e.replace(/\.rsc($|\?)/,"$1")}},90484:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={MetadataBoundary:function(){return o},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(45653),l={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},o=l[u.METADATA_BOUNDARY_NAME.slice(0)],i=l[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=l[u.OUTLET_BOUNDARY_NAME.slice(0)],c=l[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},90603:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},92512:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={refreshDynamicData:function(){return d},refreshReducer:function(){return f}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(74616),l=r(20354),o=r(12506),i=r(60398),s=r(22120),c=r(80882);function f(e,t){{let t=e.nextUrl,r=e.tree;(0,o.invalidateSegmentCacheEntries)(t,r)}return d(e,s.FreshnessPolicy.RefreshAll)}function d(e,t){(0,c.invalidateBfCache)();let r=e.nextUrl,n=(0,i.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||r:null,a=e.canonicalUrl,o=new URL(a,location.origin),s=e.renderedSearch,f=e.tree,d=u.ScrollBehavior.NoScroll,p=Date.now(),h=(0,l.convertServerPatchToFullTree)(p,f,null,s,c.UnknownDynamicStaleTime);return(0,l.navigateToKnownRoute)(p,e,o,a,h,o,s,e.cache,f,t,n,d,"replace",null,null)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},93294:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"appBootstrap",{enumerable:!0,get:function(){return u}});let n=r(24281),a=r(3584);function u(e){var t,r;let u=(0,n.getAssetPrefix)();t=self.__next_s,r=()=>{e(u)},t&&t.length?t.reduce((e,[t,r])=>e.then(()=>new Promise((e,n)=>{let u=document.createElement("script");r&&(0,a.setAttributesFromProps)(u,r),t?(u.src=t,u.onload=()=>e(),u.onerror=n):r&&(u.innerHTML=r.children,setTimeout(e)),document.head.appendChild(u)})),Promise.resolve()).catch(e=>{console.error(e)}).then(()=>{r()}):r()}window.next={version:"16.2.9",appDir:!0},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},93350:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(95155),l=r(12115);class o extends l.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,l.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,r])=>{e.setAttribute(t,r)})}render(){let{hasError:e}=this.state;return(this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let r=0;r<e.attributes.length;r++){let n=e.attributes[r];t[n.name]=n.value}return t}(document.documentElement)),e)?(0,u.jsx)("html",{ref:this.htmlRef,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:this.rootHtml}}):this.props.children}}let i=o;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},94454:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={UnrecognizedActionError:function(){return a},unstable_isUnrecognizedActionError:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});class a extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function u(e){return!!(e&&"object"==typeof e&&e instanceof a)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95155:(e,t,r)=>{"use strict";e.exports=r(86897)},95888:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(48512),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97797:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={getNavigationBuildId:function(){return l},setNavigationBuildId:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let a="";function u(e){a=e}function l(){return a}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97880:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let a=t[0],u=r.segment;if(Array.isArray(a)&&Array.isArray(u)){if(a[0]!==u[0]||a[2]!==u[2])return!0}else if(a!==u)return!0;let l=((t[4]??0)&n.PrefetchHint.IsRootLayout)!=0,o=(r.prefetchHints&n.PrefetchHint.IsRootLayout)!=0;if(l)return!o;if(o)return!0;let i=r.slots,s=t[1];if(null!==i)for(let t in i){let r=i[t],n=s[t];if(void 0===n||e(n,r))return!0}return!1}}});let n=r(76731);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},98080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return o},getBotType:function(){return c},isBot:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(24382),l=/Googlebot(?!-)|Googlebot$/i,o=u.HTML_LIMITED_BOT_UA_RE.source;function i(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return l.test(e)||i(e)}function c(e){return l.test(e)?"dom":i(e)?"html":void 0}},98127:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let r=new WeakMap;function n(e){let t=r.get(e);if(t)return t;let n=Promise.resolve(e);return r.set(e,n),n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99062:(e,t,r)=>{"use strict";var n=r(47650),a={stream:!0},u=Object.prototype.hasOwnProperty,l=new Map;function o(e){var t=r(e);return"function"!=typeof t.then||"fulfilled"===t.status?null:(t.then(function(e){t.status="fulfilled",t.value=e},function(e){t.status="rejected",t.reason=e}),t)}function i(){}function s(e){for(var t=e[1],n=[],a=0;a<t.length;){var u=t[a++],s=t[a++],c=l.get(u);void 0===c?(f.set(u,s),s=r.e(u),n.push(s),c=l.set.bind(l,u,null),s.then(c,i),l.set(u,s)):null!==c&&n.push(c)}return 4===e.length?0===n.length?o(e[0]):Promise.all(n).then(function(){return o(e[0])}):0<n.length?Promise.all(n):null}function c(e){var t=r(e[0]);if(4===e.length&&"function"==typeof t.then)if("fulfilled"===t.status)t=t.value;else throw t.reason;return"*"===e[2]?t:""===e[2]?t.__esModule?t.default:t:u.call(t,e[2])?t[e[2]]:void 0}var f=new Map,d=r.u;r.u=function(e){var t=f.get(e);return void 0!==t?t:d(e)};var p=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,h=Symbol.for("react.transitional.element"),y=Symbol.for("react.lazy"),_=Symbol.iterator,g=Symbol.asyncIterator,v=Array.isArray,m=Object.getPrototypeOf,b=Object.prototype,E=new WeakMap;function R(e,t,r){E.has(e)||E.set(e,{id:t,originalBind:e.bind,bound:r})}function P(e,t,r){this.status=e,this.value=t,this.reason=r}function S(e){switch(e.status){case"resolved_model":F(e);break;case"resolved_module":L(e)}switch(e.status){case"fulfilled":return e.value;case"pending":case"blocked":case"halted":throw e;default:throw e.reason}}function O(){return new P("pending",null,null)}function T(e,t,r,n){for(var a=0;a<t.length;a++){var u=t[a];"function"==typeof u?u(r):B(e,u,r,n)}}function j(e,t,r){for(var n=0;n<t.length;n++){var a=t[n];"function"==typeof a?a(r):V(e,a.handler,r)}}function w(e,t){var r=t.handler.chunk;if(null===r)return null;if(r===e)return t.handler;if(null!==(t=r.value))for(r=0;r<t.length;r++){var n=t[r];if("function"!=typeof n&&null!==(n=w(e,n)))return n}return null}function A(e,t,r,n){switch(t.status){case"fulfilled":T(e,r,t.value,t);break;case"blocked":for(var a=0;a<r.length;a++){var u=r[a];if("function"!=typeof u){var l=w(t,u);if(null!==l)switch(B(e,u,l.value,t),r.splice(a,1),a--,null!==n&&-1!==(u=n.indexOf(u))&&n.splice(u,1),t.status){case"fulfilled":T(e,r,t.value,t);return;case"rejected":null!==n&&j(e,n,t.reason);return}}}case"pending":if(t.value)for(e=0;e<r.length;e++)t.value.push(r[e]);else t.value=r;if(t.reason){if(n)for(r=0;r<n.length;r++)t.reason.push(n[r])}else t.reason=n;break;case"rejected":n&&j(e,n,t.reason)}}function C(e,t,r){if("pending"!==t.status&&"blocked"!==t.status)t.reason.error(r);else{var n=t.reason;t.status="rejected",t.reason=r,null!==n&&j(e,n,r)}}function x(e,t,r){return new P("resolved_model",(r?'{"done":true,"value":':'{"done":false,"value":')+t+"}",e)}function M(e,t,r,n){N(e,t,(n?'{"done":true,"value":':'{"done":false,"value":')+r+"}")}function N(e,t,r){if("pending"!==t.status)t.reason.enqueueModel(r);else{var n=t.value,a=t.reason;t.status="resolved_model",t.value=r,t.reason=e,null!==n&&(F(t),A(e,t,n,a))}}function D(e,t,r){if("pending"===t.status||"blocked"===t.status){var n=t.value,a=t.reason;t.status="resolved_module",t.value=r,t.reason=null,null!==n&&(L(t),A(e,t,n,a))}}P.prototype=Object.create(Promise.prototype),P.prototype.then=function(e,t){switch(this.status){case"resolved_model":F(this);break;case"resolved_module":L(this)}switch(this.status){case"fulfilled":"function"==typeof e&&e(this.value);break;case"pending":case"blocked":"function"==typeof e&&(null===this.value&&(this.value=[]),this.value.push(e)),"function"==typeof t&&(null===this.reason&&(this.reason=[]),this.reason.push(t));break;case"halted":break;default:"function"==typeof t&&t(this.reason)}};var I=null;function F(e){var t=I;I=null;var r=e.value,n=e.reason;e.status="blocked",e.value=null,e.reason=null;try{var a=ei(n,r),u=e.value;if(null!==u)for(e.value=null,e.reason=null,r=0;r<u.length;r++){var l=u[r];"function"==typeof l?l(a):B(n,l,a,e)}if(null!==I){if(I.errored)throw I.reason;if(0<I.deps){I.value=a,I.chunk=e;return}}e.status="fulfilled",e.value=a,e.reason=null}catch(t){e.status="rejected",e.reason=t}finally{I=t}}function L(e){try{var t=c(e.value);e.status="fulfilled",e.value=t,e.reason=null}catch(t){e.status="rejected",e.reason=t}}function U(e,t){e._closed=!0,e._closedReason=t,e._chunks.forEach(function(r){"pending"===r.status?C(e,r,t):"fulfilled"===r.status&&null!==r.reason&&r.reason.error(t)})}function k(e){return{$$typeof:y,_payload:e,_init:S}}function H(e,t){var r=e._chunks,n=r.get(t);return n||(e._closed?e._allowPartialStream?((e=n=O()).status="halted",e.value=null,e.reason=null):n=new P("rejected",null,e._closedReason):n=O(),r.set(t,n)),n}function B(e,t,r){var n=t.handler,a=t.parentObject,l=t.key,o=t.map,i=t.path;try{for(var s=1;s<i.length;s++){for(;"object"==typeof r&&null!==r&&r.$$typeof===y;){var c=r._payload;if(c===n.chunk)r=n.value;else{switch(c.status){case"resolved_model":F(c);break;case"resolved_module":L(c)}switch(c.status){case"fulfilled":r=c.value;continue;case"blocked":var f=w(c,t);if(null!==f){r=f.value;continue}case"pending":i.splice(0,s-1),null===c.value?c.value=[t]:c.value.push(t),null===c.reason?c.reason=[t]:c.reason.push(t);return;case"halted":return;default:V(e,t.handler,c.reason);return}}}var d=i[s];if("object"==typeof r&&null!==r&&u.call(r,d))r=r[d];else throw Error("Invalid reference.")}for(;"object"==typeof r&&null!==r&&r.$$typeof===y;){var p=r._payload;if(p===n.chunk)r=n.value;else{switch(p.status){case"resolved_model":F(p);break;case"resolved_module":L(p)}if("fulfilled"===p.status){r=p.value;continue}break}}var _=o(e,r,a,l);if("__proto__"!==l&&(a[l]=_),""===l&&null===n.value&&(n.value=_),a[0]===h&&"object"==typeof n.value&&null!==n.value&&n.value.$$typeof===h){var g=n.value;"3"===l&&(g.props=_)}}catch(r){V(e,t.handler,r);return}n.deps--,0===n.deps&&null!==(t=n.chunk)&&"blocked"===t.status&&(r=t.value,t.status="fulfilled",t.value=n.value,t.reason=n.reason,null!==r&&T(e,r,n.value,t))}function V(e,t,r){t.errored||(t.errored=!0,t.value=null,t.reason=r,null!==(t=t.chunk)&&"blocked"===t.status&&C(e,t,r))}function X(e,t,r,n,a,u){return I?(n=I,n.deps++):n=I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1},t={handler:n,parentObject:t,key:r,map:a,path:u},null===e.value?e.value=[t]:e.value.push(t),null===e.reason?e.reason=[t]:e.reason.push(t),null}function $(e,t,r,n){if(!e._serverReferenceConfig)return function(e,t){function r(){var e=Array.prototype.slice.call(arguments);return a?"fulfilled"===a.status?t(n,a.value.concat(e)):Promise.resolve(a).then(function(r){return t(n,r.concat(e))}):t(n,e)}var n=e.id,a=e.bound;return R(r,n,a),r}(t,e._callServer);var a=function(e,t){var r="",n=e[t];if(n)r=n.name;else{var a=t.lastIndexOf("#");if(-1!==a&&(r=t.slice(a+1),n=e[t.slice(0,a)]),!n)throw Error('Could not find the module "'+t+'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.')}return n.async?[n.id,n.chunks,r,1]:[n.id,n.chunks,r]}(e._serverReferenceConfig,t.id),u=s(a);if(u)t.bound&&(u=Promise.all([u,t.bound]));else{if(!t.bound)return R(u=c(a),t.id,t.bound),u;u=Promise.resolve(t.bound)}if(I){var l=I;l.deps++}else l=I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1};return u.then(function(){var u=c(a);if(t.bound){var o=t.bound.value.slice(0);o.unshift(null),u=u.bind.apply(u,o)}R(u,t.id,t.bound),"__proto__"!==n&&(r[n]=u),""===n&&null===l.value&&(l.value=u),r[0]===h&&"object"==typeof l.value&&null!==l.value&&l.value.$$typeof===h&&(o=l.value,"3"===n)&&(o.props=u),l.deps--,0===l.deps&&null!==(u=l.chunk)&&"blocked"===u.status&&(o=u.value,u.status="fulfilled",u.value=l.value,u.reason=null,null!==o&&T(e,o,l.value,u))},function(t){if(!l.errored){l.errored=!0,l.value=null,l.reason=t;var r=l.chunk;null!==r&&"blocked"===r.status&&C(e,r,t)}}),null}function G(e,t,r,n,a){var u=parseInt((t=t.split(":"))[0],16);switch((u=H(e,u)).status){case"resolved_model":F(u);break;case"resolved_module":L(u)}switch(u.status){case"fulfilled":u=u.value;for(var l=1;l<t.length;l++){for(;"object"==typeof u&&null!==u&&u.$$typeof===y;){switch((u=u._payload).status){case"resolved_model":F(u);break;case"resolved_module":L(u)}switch(u.status){case"fulfilled":u=u.value;break;case"blocked":case"pending":return X(u,r,n,e,a,t.slice(l-1));case"halted":return I?(e=I,e.deps++):I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1},null;default:return I?(I.errored=!0,I.value=null,I.reason=u.reason):I={parent:null,chunk:null,value:null,reason:u.reason,deps:0,errored:!0},null}}u=u[t[l]]}for(;"object"==typeof u&&null!==u&&u.$$typeof===y;){switch((t=u._payload).status){case"resolved_model":F(t);break;case"resolved_module":L(t)}if("fulfilled"===t.status){u=t.value;continue}break}return a(e,u,r,n);case"pending":case"blocked":return X(u,r,n,e,a,t);case"halted":return I?(e=I,e.deps++):I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1},null;default:return I?(I.errored=!0,I.value=null,I.reason=u.reason):I={parent:null,chunk:null,value:null,reason:u.reason,deps:0,errored:!0},null}}function K(e,t){return new Map(t)}function Y(e,t){return new Set(t)}function q(e,t){return new Blob(t.slice(1),{type:t[0]})}function z(e,t){e=new FormData;for(var r=0;r<t.length;r++)e.append(t[r][0],t[r][1]);return e}function W(e,t){return t[Symbol.iterator]()}function Q(e,t){return t}function J(){throw Error('Trying to call a function from "use server" but the callServer option was not implemented in your router runtime.')}function Z(e,t,r,n,a,u,l,o){var i=new Map;this._bundlerConfig=e,this._serverReferenceConfig=t,this._moduleLoading=r,this._callServer=void 0!==n?n:J,this._encodeFormAction=a,this._nonce=u,this._chunks=i,this._stringDecoder=new TextDecoder,this._closed=!1,this._closedReason=null,this._allowPartialStream=o,this._tempRefs=l}function ee(e,t,r){var n=(e=e._chunks).get(t);n&&"pending"!==n.status?n.reason.enqueueValue(r):(r=new P("fulfilled",r,null),e.set(t,r))}function et(e,t,r,n){var a=e._chunks,u=a.get(t);u?"pending"===u.status&&(t=u.value,u.status="fulfilled",u.value=r,u.reason=n,null!==t&&T(e,t,u.value,u)):(e=new P("fulfilled",r,n),a.set(t,e))}function er(e,t,r){var n=null,a=!1;r=new ReadableStream({type:r,start:function(e){n=e}});var u=null;et(e,t,r,{enqueueValue:function(e){null===u?n.enqueue(e):u.then(function(){n.enqueue(e)})},enqueueModel:function(t){if(null===u){var r=new P("resolved_model",t,e);F(r),"fulfilled"===r.status?n.enqueue(r.value):(r.then(function(e){return n.enqueue(e)},function(e){return n.error(e)}),u=r)}else{r=u;var a=O();a.then(function(e){return n.enqueue(e)},function(e){return n.error(e)}),u=a,r.then(function(){u===a&&(u=null),N(e,a,t)})}},close:function(){if(!a)if(a=!0,null===u)n.close();else{var e=u;u=null,e.then(function(){return n.close()})}},error:function(e){if(!a)if(a=!0,null===u)n.error(e);else{var t=u;u=null,t.then(function(){return n.error(e)})}}})}function en(){return this}function ea(e,t,r){var n=[],a=!1,u=0,l={};l[g]=function(){var e,t=0;return(e={next:e=function(e){if(void 0!==e)throw Error("Values cannot be passed to next() of AsyncIterables passed to Client Components.");if(t===n.length){if(a)return new P("fulfilled",{done:!0,value:void 0},null);n[t]=O()}return n[t++]}})[g]=en,e},et(e,t,r?l[g]():l,{enqueueValue:function(t){if(u===n.length)n[u]=new P("fulfilled",{done:!1,value:t},null);else{var r=n[u],a=r.value,l=r.reason;r.status="fulfilled",r.value={done:!1,value:t},r.reason=null,null!==a&&A(e,r,a,l)}u++},enqueueModel:function(t){u===n.length?n[u]=x(e,t,!1):M(e,n[u],t,!1),u++},close:function(t){if(!a)for(a=!0,u===n.length?n[u]=x(e,t,!0):M(e,n[u],t,!0),u++;u<n.length;)M(e,n[u++],'"$undefined"',!0)},error:function(t){if(!a)for(a=!0,u===n.length&&(n[u]=O());u<n.length;)C(e,n[u++],t)}})}function eu(){var e=Error("An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.");return e.stack="Error: "+e.message,e}function el(e,t){for(var r=e.length,n=t.length,a=0;a<r;a++)n+=e[a].byteLength;n=new Uint8Array(n);for(var u=a=0;u<r;u++){var l=e[u];n.set(l,a),a+=l.byteLength}return n.set(t,a),n}function eo(e,t,r,n,a,u){ee(e,t,a=new a((r=0===r.length&&0==n.byteOffset%u?n:el(r,n)).buffer,r.byteOffset,r.byteLength/u))}function ei(e,t){return function e(t,r,n,a){if("string"==typeof r)return"$"===r[0]?function(e,t,r,n){if("$"===n[0]){if("$"===n)return null!==I&&"0"===r&&(I={parent:I,chunk:null,value:null,reason:null,deps:0,errored:!1}),h;switch(n[1]){case"$":return n.slice(1);case"L":return k(e=H(e,t=parseInt(n.slice(2),16)));case"@":return H(e,t=parseInt(n.slice(2),16));case"S":return Symbol.for(n.slice(2));case"h":return G(e,n=n.slice(2),t,r,$);case"T":if(t="$"+n.slice(2),null==(e=e._tempRefs))throw Error("Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.");return e.get(t);case"Q":return G(e,n=n.slice(2),t,r,K);case"W":return G(e,n=n.slice(2),t,r,Y);case"B":return G(e,n=n.slice(2),t,r,q);case"K":return G(e,n=n.slice(2),t,r,z);case"Z":return eu();case"i":return G(e,n=n.slice(2),t,r,W);case"I":return 1/0;case"-":return"$-0"===n?-0:-1/0;case"N":return NaN;case"u":return;case"D":return new Date(Date.parse(n.slice(2)));case"n":return BigInt(n.slice(2));default:return G(e,n=n.slice(1),t,r,Q)}}return n}(t,n,a,r):r;if("object"!=typeof r||null===r)return r;if(v(r)){for(var u=0;u<r.length;u++)r[u]=e(t,r[u],r,""+u);return r[0]===h?(r[0]===h?(t={$$typeof:h,type:r[1],key:r[2],ref:null,props:r[3]},null!==I&&(I=(r=I).parent,r.errored?t=k(t=new P("rejected",null,r.reason)):0<r.deps&&(u=new P("blocked",null,null),r.value=t,r.chunk=u,t=k(u)))):t=r,t):r}for(u in r)"__proto__"===u?delete r[u]:void 0!==(n=e(t,r[u],r,u))?r[u]=n:delete r[u];return r}(e,t=JSON.parse(t),{"":t},"")}function es(e){e._allowPartialStream?(e._closed=!0,e._chunks.forEach(function(e){"pending"===e.status?(e.status="halted",e.value=null,e.reason=null):"fulfilled"===e.status&&null!==e.reason&&e.reason.close('"$undefined"')})):U(e,Error("Connection closed."))}function ec(e){return new Z(null,null,null,e&&e.callServer?e.callServer:void 0,void 0,void 0,e&&e.temporaryReferences?e.temporaryReferences:void 0,!!e&&!!e.unstable_allowPartialStream&&e.unstable_allowPartialStream)}function ef(e,t,r){function n(t){U(e,t)}var u={_rowState:0,_rowID:0,_rowTag:0,_rowLength:0,_buffer:[]},l=t.getReader();l.read().then(function t(o){var i=o.value;if(o.done)return r();var c=0,f=u._rowState;o=u._rowID;for(var d=u._rowTag,h=u._rowLength,y=u._buffer,_=i.length;c<_;){var g=-1;switch(f){case 0:58===(g=i[c++])?f=1:o=o<<4|(96<g?g-87:g-48);continue;case 1:84===(f=i[c])||65===f||79===f||111===f||98===f||85===f||83===f||115===f||76===f||108===f||71===f||103===f||77===f||109===f||86===f?(d=f,f=2,c++):64<f&&91>f||35===f||114===f||120===f?(d=f,f=3,c++):(d=0,f=3);continue;case 2:44===(g=i[c++])?f=4:h=h<<4|(96<g?g-87:g-48);continue;case 3:g=i.indexOf(10,c);break;case 4:(g=c+h)>i.length&&(g=-1)}var v=i.byteOffset+c;if(-1<g)h=new Uint8Array(i.buffer,v,g-c),98===d?ee(e,o,g===_?h:h.slice()):function(e,t,r,n,u,l){switch(n){case 65:ee(e,r,el(u,l).buffer);return;case 79:eo(e,r,u,l,Int8Array,1);return;case 111:ee(e,r,0===u.length?l:el(u,l));return;case 85:eo(e,r,u,l,Uint8ClampedArray,1);return;case 83:eo(e,r,u,l,Int16Array,2);return;case 115:eo(e,r,u,l,Uint16Array,2);return;case 76:eo(e,r,u,l,Int32Array,4);return;case 108:eo(e,r,u,l,Uint32Array,4);return;case 71:eo(e,r,u,l,Float32Array,4);return;case 103:eo(e,r,u,l,Float64Array,8);return;case 77:eo(e,r,u,l,BigInt64Array,8);return;case 109:eo(e,r,u,l,BigUint64Array,8);return;case 86:eo(e,r,u,l,DataView,1);return}t=e._stringDecoder;for(var o="",i=0;i<u.length;i++)o+=t.decode(u[i],a);switch(u=o+=t.decode(l),n){case 73:var c=e,f=r,d=u,h=c._chunks,y=h.get(f);d=ei(c,d);var _=function(e,t){if(e){var r=e[t[0]];if(e=r&&r[t[2]])r=e.name;else{if(!(e=r&&r["*"]))throw Error('Could not find the module "'+t[0]+'" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.');r=t[2]}return 4===t.length?[e.id,e.chunks,r,1]:[e.id,e.chunks,r]}return t}(c._bundlerConfig,d);if(d=s(_)){if(y){var g=y;g.status="blocked"}else g=new P("blocked",null,null),h.set(f,g);d.then(function(){return D(c,g,_)},function(e){return C(c,g,e)})}else y?D(c,y,_):(y=new P("resolved_module",_,null),h.set(f,y));break;case 72:switch(r=u[0],e=ei(e,u=u.slice(1)),u=p.d,r){case"D":u.D(e);break;case"C":"string"==typeof e?u.C(e):u.C(e[0],e[1]);break;case"L":r=e[0],n=e[1],3===e.length?u.L(r,n,e[2]):u.L(r,n);break;case"m":"string"==typeof e?u.m(e):u.m(e[0],e[1]);break;case"X":"string"==typeof e?u.X(e):u.X(e[0],e[1]);break;case"S":"string"==typeof e?u.S(e):u.S(e[0],0===e[1]?void 0:e[1],3===e.length?e[2]:void 0);break;case"M":"string"==typeof e?u.M(e):u.M(e[0],e[1])}break;case 69:l=(n=e._chunks).get(r),u=JSON.parse(u),(t=eu()).digest=u.digest,l?C(e,l,t):(e=new P("rejected",null,t),n.set(r,e));break;case 84:(n=(e=e._chunks).get(r))&&"pending"!==n.status?n.reason.enqueueValue(u):(u=new P("fulfilled",u,null),e.set(r,u));break;case 78:case 68:case 74:case 87:throw Error("Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client.");case 82:er(e,r,void 0);break;case 114:er(e,r,"bytes");break;case 88:ea(e,r,!1);break;case 120:ea(e,r,!0);break;case 67:(r=e._chunks.get(r))&&"fulfilled"===r.status&&r.reason.close(""===u?'"$undefined"':u);break;default:(l=(n=e._chunks).get(r))?N(e,l,u):(e=new P("resolved_model",u,e),n.set(r,e))}}(e,u,o,d,y,h),c=g,3===f&&c++,h=o=d=f=0,y.length=0;else{i=new Uint8Array(i.buffer,v,i.byteLength-c),98===d?(h-=i.byteLength,ee(e,o,i)):(y.push(i),h-=i.byteLength);break}}return u._rowState=f,u._rowID=o,u._rowTag=d,u._rowLength=h,l.read().then(t).catch(n)}).catch(n)}t.createFromFetch=function(e,t){var r=ec(t);return e.then(function(e){ef(r,e.body,es.bind(null,r))},function(e){U(r,e)}),H(r,0)},t.createFromReadableStream=function(e,t){return ef(t=ec(t),e,es.bind(null,t)),H(t,0)},t.createServerReference=function(e,t){function r(){var r=Array.prototype.slice.call(arguments);return t(e,r)}return R(r,e,null),r},t.createTemporaryReferenceSet=function(){return new Map},t.encodeReply=function(e,t){return new Promise(function(r,n){var a=function(e,t,r,n){function a(e,t){t=new Blob([new Uint8Array(t.buffer,t.byteOffset,t.byteLength)]);var r=o++;return null===s&&(s=new FormData),s.append(""+r,t),"$"+e+r.toString(16)}function u(e,d){if(null===d)return null;if("object"==typeof d){switch(d.$$typeof){case h:if(void 0!==t&&-1===e.indexOf(":")){var p,R,P,S,O,T=c.get(this);if(void 0!==T)return t.set(T+":"+e,d),"$T"}if(void 0!==t&&f===d)return f=null,"$T";throw Error("React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.");case y:T=d._payload;var j=d._init;null===s&&(s=new FormData),i++;try{var w=j(T),A=o++,C=l(w,A);return s.append(""+A,C),"$"+A.toString(16)}catch(e){if("object"==typeof e&&null!==e&&"function"==typeof e.then){i++;var x=o++;return T=function(){try{var e=l(d,x),t=s;t.append(""+x,e),i--,0===i&&r(t)}catch(e){n(e)}},e.then(T,T),"$"+x.toString(16)}return n(e),null}finally{i--}}if(T=c.get(d),"function"==typeof d.then){if(void 0!==T)if(f!==d)return T;else f=null;null===s&&(s=new FormData),i++;var M=o++;return e="$@"+M.toString(16),c.set(d,e),d.then(function(e){try{var t=c.get(e),a=void 0!==t?JSON.stringify(t):l(e,M);(e=s).append(""+M,a),i--,0===i&&r(e)}catch(e){n(e)}},n),e}if(void 0!==T)if(f!==d)return T;else f=null;else -1===e.indexOf(":")&&void 0!==(T=c.get(this))&&(e=T+":"+e,c.set(d,e),void 0!==t&&t.set(e,d));if(v(d))return d;if(d instanceof FormData){null===s&&(s=new FormData);var N=s,D="_"+(e=o++)+"_";return d.forEach(function(e,t){N.append(D+t,e)}),"$K"+e.toString(16)}if(d instanceof Map)return e=o++,T=l(Array.from(d),e),null===s&&(s=new FormData),s.append(""+e,T),"$Q"+e.toString(16);if(d instanceof Set)return e=o++,T=l(Array.from(d),e),null===s&&(s=new FormData),s.append(""+e,T),"$W"+e.toString(16);if(d instanceof ArrayBuffer)return e=new Blob([d]),T=o++,null===s&&(s=new FormData),s.append(""+T,e),"$A"+T.toString(16);if(d instanceof Int8Array)return a("O",d);if(d instanceof Uint8Array)return a("o",d);if(d instanceof Uint8ClampedArray)return a("U",d);if(d instanceof Int16Array)return a("S",d);if(d instanceof Uint16Array)return a("s",d);if(d instanceof Int32Array)return a("L",d);if(d instanceof Uint32Array)return a("l",d);if(d instanceof Float32Array)return a("G",d);if(d instanceof Float64Array)return a("g",d);if(d instanceof BigInt64Array)return a("M",d);if(d instanceof BigUint64Array)return a("m",d);if(d instanceof DataView)return a("V",d);if("function"==typeof Blob&&d instanceof Blob)return null===s&&(s=new FormData),e=o++,s.append(""+e,d),"$B"+e.toString(16);if(e=null===(p=d)||"object"!=typeof p?null:"function"==typeof(p=_&&p[_]||p["@@iterator"])?p:null)return(T=e.call(d))===d?(e=o++,T=l(Array.from(T),e),null===s&&(s=new FormData),s.append(""+e,T),"$i"+e.toString(16)):Array.from(T);if("function"==typeof ReadableStream&&d instanceof ReadableStream)return function(e){try{var t,a,l,c,f,d,p,h=e.getReader({mode:"byob"})}catch(c){return t=e.getReader(),null===s&&(s=new FormData),a=s,i++,l=o++,t.read().then(function e(o){if(o.done)a.append(""+l,"C"),0==--i&&r(a);else try{var s=JSON.stringify(o.value,u);a.append(""+l,s),t.read().then(e,n)}catch(e){n(e)}},n),"$R"+l.toString(16)}return c=h,null===s&&(s=new FormData),f=s,i++,d=o++,p=[],c.read(new Uint8Array(1024)).then(function e(t){t.done?(t=o++,f.append(""+t,new Blob(p)),f.append(""+d,'"$o'+t.toString(16)+'"'),f.append(""+d,"C"),0==--i&&r(f)):(p.push(t.value),c.read(new Uint8Array(1024)).then(e,n))},n),"$r"+d.toString(16)}(d);if("function"==typeof(e=d[g]))return R=d,P=e.call(d),null===s&&(s=new FormData),S=s,i++,O=o++,R=R===P,P.next().then(function e(t){if(t.done){if(void 0===t.value)S.append(""+O,"C");else try{var a=JSON.stringify(t.value,u);S.append(""+O,"C"+a)}catch(e){n(e);return}0==--i&&r(S)}else try{var l=JSON.stringify(t.value,u);S.append(""+O,l),P.next().then(e,n)}catch(e){n(e)}},n),"$"+(R?"x":"X")+O.toString(16);if((e=m(d))!==b&&(null===e||null!==m(e))){if(void 0===t)throw Error("Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.");return"$T"}return d}if("string"==typeof d)return"Z"===d[d.length-1]&&this[e]instanceof Date?"$D"+d:e="$"===d[0]?"$"+d:d;if("boolean"==typeof d)return d;if("number"==typeof d)return Number.isFinite(d)?0===d&&-1/0==1/d?"$-0":d:1/0===d?"$Infinity":-1/0===d?"$-Infinity":"$NaN";if(void 0===d)return"$undefined";if("function"==typeof d){if(void 0!==(T=E.get(d)))return void 0!==(e=c.get(d))||(e=JSON.stringify({id:T.id,bound:T.bound},u),null===s&&(s=new FormData),T=o++,s.set(""+T,e),e="$h"+T.toString(16),c.set(d,e)),e;if(void 0!==t&&-1===e.indexOf(":")&&void 0!==(T=c.get(this)))return t.set(T+":"+e,d),"$T";throw Error("Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.")}if("symbol"==typeof d){if(void 0!==t&&-1===e.indexOf(":")&&void 0!==(T=c.get(this)))return t.set(T+":"+e,d),"$T";throw Error("Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.")}if("bigint"==typeof d)return"$n"+d.toString(10);throw Error("Type "+typeof d+" is not supported as an argument to a Server Function.")}function l(e,r){return"object"==typeof e&&null!==e&&(r="$"+r.toString(16),c.set(e,r),void 0!==t&&t.set(r,e)),f=e,JSON.stringify(e,u)}var o=1,i=0,s=null,c=new WeakMap,f=e,d=l(e,0);return null===s?r(d):(s.set("0",d),0===i&&r(s)),function(){0<i&&(i=0,null===s?r(d):r(s))}}(e,t&&t.temporaryReferences?t.temporaryReferences:void 0,r,n);if(t&&t.signal){var u=t.signal;if(u.aborted)a(u.reason);else{var l=function(){a(u.reason),u.removeEventListener("abort",l)};u.addEventListener("abort",l)}}})},t.registerServerReference=function(e,t){return R(e,t,null),e}},99297:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return n}});class r extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class n extends URLSearchParams{append(){throw new r}delete(){throw new r}set(){throw new r}sort(){throw new r}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99786:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return n}});var r,n=((r={})[r.SeeOther=303]="SeeOther",r[r.TemporaryRedirect=307]="TemporaryRedirect",r[r.PermanentRedirect=308]="PermanentRedirect",r);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]);
|
|
32
|
+
Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let A=j.headers.get("x-action-redirect"),[M,N]=A?.split(";")||[];switch(N){case"push":f="push";break;case"replace":f="replace";break;default:f=void 0}let D=!!j.headers.get(l.NEXT_IS_PRERENDER_HEADER),I=O.ActionDidNotRevalidate;try{let e=j.headers.get("x-action-revalidated");if(e){let t=JSON.parse(e);(t===O.ActionDidRevalidateStaticAndDynamic||t===O.ActionDidRevalidateDynamicOnly)&&(I=t)}}catch{}let F=M?(0,c.assignLocation)(M,new URL(e.canonicalUrl,window.location.href)):void 0,L=j.headers.get("content-type"),U=!!(L&&L.startsWith(l.RSC_CONTENT_TYPE_HEADER));if(!U&&!F)throw Object.defineProperty(Error(j.status>=400&&"text/plain"===L?await j.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let k=!1;if(U){let e=F?(0,w.processFetch)(j).then(({response:e})=>e):Promise.resolve(j),t=await C(e,{callServer:a.callServer,findSourceMapURL:u.findSourceMapURL,temporaryReferences:_,debugChannel:n&&n(S)});d=F?void 0:t.a,k=t.i;let r=j.headers.get(R.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;if(void 0!==r&&r!==(0,E.getNavigationBuildId)());else{let e=(0,p.normalizeFlightData)(t.f);""!==e&&(h=e,y=t.q)}}else d=void 0,h=void 0,y=void 0;return{actionResult:d,actionFlightData:h,actionFlightDataRenderedSearch:y,redirectLocation:F,redirectType:f,revalidationKind:I,isPrerender:D,couldBeIntercepted:k}}function M(e,t){let{resolve:r,reject:n}=t,a=(e.previousNextUrl||e.nextUrl)&&(0,d.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null;return x(e,a,t).then(async({revalidationKind:u,actionResult:l,actionFlightData:o,actionFlightDataRenderedSearch:i,redirectLocation:c,redirectType:d,isPrerender:p,couldBeIntercepted:h})=>{u!==O.ActionDidNotRevalidate&&((0,A.invalidateBfCache)(),t.didRevalidate=!0,u===O.ActionDidRevalidateStaticAndDynamic&&(0,v.invalidateEntirePrefetchCache)(a,e.tree),(0,m.startRevalidationCooldown)());let g=d||"push";if(void 0!==c)if((0,T.isExternalURL)(c))return n(N(c.href,g)),(0,P.completeHardNavigation)(e,c,g);else{let e=(0,f.createHrefFromUrl)(c,!1);n(N((0,_.hasBasePath)(e)?(0,y.removeBasePath)(e):e,g))}else r(l);if(void 0===c&&u===O.ActionDidNotRevalidate&&void 0===o)return e;if(void 0===o&&void 0!==c)return(0,P.completeHardNavigation)(e,c,g);if("string"==typeof o)return(0,P.completeHardNavigation)(e,new URL(o,location.origin),g);let b=new URL(e.canonicalUrl,location.origin),E=e.renderedSearch,R=void 0!==c?c:b,w=e.tree,C=s.ScrollBehavior.Default,x=u===O.ActionDidNotRevalidate?j.FreshnessPolicy.Default:j.FreshnessPolicy.RefreshAll;if(void 0!==o&&void 0!==i){let t=(0,f.createHrefFromUrl)(R),r=Date.now(),n=(0,P.convertServerPatchToFullTree)(r,w,o,i,A.UnknownDynamicStaleTime),u=n.metadataVaryPath;return null!==u&&(0,S.discoverKnownRoute)(r,R.pathname,a,null,n.routeTree,u,h,t,p,!1),(0,P.navigateToKnownRoute)(r,e,R,t,n,b,E,e.cache,w,x,a,C,g,null,null)}return(0,P.navigate)(e,R,b,E,e.cache,w,a,x,C,g)},t=>(n(t),e))}function N(e,t){let r=(0,h.getRedirectError)(e,t);return r.handled=!0,r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},89226:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={compareAppPaths:function(){return i},normalizeAppPath:function(){return o},normalizeRscURL:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(21315),l=r(78237);function o(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,l.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function i(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function s(e){return e.replace(/\.rsc($|\?)/,"$1")}},90484:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={MetadataBoundary:function(){return o},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(45653),l={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},o=l[u.METADATA_BOUNDARY_NAME.slice(0)],i=l[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=l[u.OUTLET_BOUNDARY_NAME.slice(0)],c=l[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},90603:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},92512:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={refreshDynamicData:function(){return d},refreshReducer:function(){return f}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(74616),l=r(20354),o=r(12506),i=r(60398),s=r(22120),c=r(80882);function f(e,t){{let t=e.nextUrl,r=e.tree;(0,o.invalidateSegmentCacheEntries)(t,r)}return d(e,s.FreshnessPolicy.RefreshAll)}function d(e,t){(0,c.invalidateBfCache)();let r=e.nextUrl,n=(0,i.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||r:null,a=e.canonicalUrl,o=new URL(a,location.origin),s=e.renderedSearch,f=e.tree,d=u.ScrollBehavior.NoScroll,p=Date.now(),h=(0,l.convertServerPatchToFullTree)(p,f,null,s,c.UnknownDynamicStaleTime);return(0,l.navigateToKnownRoute)(p,e,o,a,h,o,s,e.cache,f,t,n,d,"replace",null,null)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},93294:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"appBootstrap",{enumerable:!0,get:function(){return u}});let n=r(24281),a=r(3584);function u(e){var t,r;let u=(0,n.getAssetPrefix)();t=self.__next_s,r=()=>{e(u)},t&&t.length?t.reduce((e,[t,r])=>e.then(()=>new Promise((e,n)=>{let u=document.createElement("script");r&&(0,a.setAttributesFromProps)(u,r),t?(u.src=t,u.onload=()=>e(),u.onerror=n):r&&(u.innerHTML=r.children,setTimeout(e)),document.head.appendChild(u)})),Promise.resolve()).catch(e=>{console.error(e)}).then(()=>{r()}):r()}window.next={version:"16.2.7",appDir:!0},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},93350:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(95155),l=r(12115);class o extends l.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,l.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,r])=>{e.setAttribute(t,r)})}render(){let{hasError:e}=this.state;return(this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let r=0;r<e.attributes.length;r++){let n=e.attributes[r];t[n.name]=n.value}return t}(document.documentElement)),e)?(0,u.jsx)("html",{ref:this.htmlRef,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:this.rootHtml}}):this.props.children}}let i=o;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},94454:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={UnrecognizedActionError:function(){return a},unstable_isUnrecognizedActionError:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});class a extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function u(e){return!!(e&&"object"==typeof e&&e instanceof a)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95155:(e,t,r)=>{"use strict";e.exports=r(86897)},95888:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(48512),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97797:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={getNavigationBuildId:function(){return l},setNavigationBuildId:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let a="";function u(e){a=e}function l(){return a}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97880:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let a=t[0],u=r.segment;if(Array.isArray(a)&&Array.isArray(u)){if(a[0]!==u[0]||a[2]!==u[2])return!0}else if(a!==u)return!0;let l=((t[4]??0)&n.PrefetchHint.IsRootLayout)!=0,o=(r.prefetchHints&n.PrefetchHint.IsRootLayout)!=0;if(l)return!o;if(o)return!0;let i=r.slots,s=t[1];if(null!==i)for(let t in i){let r=i[t],n=s[t];if(void 0===n||e(n,r))return!0}return!1}}});let n=r(76731);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},98080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return o},getBotType:function(){return c},isBot:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(24382),l=/Googlebot(?!-)|Googlebot$/i,o=u.HTML_LIMITED_BOT_UA_RE.source;function i(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return l.test(e)||i(e)}function c(e){return l.test(e)?"dom":i(e)?"html":void 0}},98127:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let r=new WeakMap;function n(e){let t=r.get(e);if(t)return t;let n=Promise.resolve(e);return r.set(e,n),n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99062:(e,t,r)=>{"use strict";var n=r(47650),a={stream:!0},u=Object.prototype.hasOwnProperty,l=new Map;function o(e){var t=r(e);return"function"!=typeof t.then||"fulfilled"===t.status?null:(t.then(function(e){t.status="fulfilled",t.value=e},function(e){t.status="rejected",t.reason=e}),t)}function i(){}function s(e){for(var t=e[1],n=[],a=0;a<t.length;){var u=t[a++],s=t[a++],c=l.get(u);void 0===c?(f.set(u,s),s=r.e(u),n.push(s),c=l.set.bind(l,u,null),s.then(c,i),l.set(u,s)):null!==c&&n.push(c)}return 4===e.length?0===n.length?o(e[0]):Promise.all(n).then(function(){return o(e[0])}):0<n.length?Promise.all(n):null}function c(e){var t=r(e[0]);if(4===e.length&&"function"==typeof t.then)if("fulfilled"===t.status)t=t.value;else throw t.reason;return"*"===e[2]?t:""===e[2]?t.__esModule?t.default:t:u.call(t,e[2])?t[e[2]]:void 0}var f=new Map,d=r.u;r.u=function(e){var t=f.get(e);return void 0!==t?t:d(e)};var p=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,h=Symbol.for("react.transitional.element"),y=Symbol.for("react.lazy"),_=Symbol.iterator,g=Symbol.asyncIterator,v=Array.isArray,m=Object.getPrototypeOf,b=Object.prototype,E=new WeakMap;function R(e,t,r){E.has(e)||E.set(e,{id:t,originalBind:e.bind,bound:r})}function P(e,t,r){this.status=e,this.value=t,this.reason=r}function S(e){switch(e.status){case"resolved_model":F(e);break;case"resolved_module":L(e)}switch(e.status){case"fulfilled":return e.value;case"pending":case"blocked":case"halted":throw e;default:throw e.reason}}function O(){return new P("pending",null,null)}function T(e,t,r,n){for(var a=0;a<t.length;a++){var u=t[a];"function"==typeof u?u(r):B(e,u,r,n)}}function j(e,t,r){for(var n=0;n<t.length;n++){var a=t[n];"function"==typeof a?a(r):V(e,a.handler,r)}}function w(e,t){var r=t.handler.chunk;if(null===r)return null;if(r===e)return t.handler;if(null!==(t=r.value))for(r=0;r<t.length;r++){var n=t[r];if("function"!=typeof n&&null!==(n=w(e,n)))return n}return null}function A(e,t,r,n){switch(t.status){case"fulfilled":T(e,r,t.value,t);break;case"blocked":for(var a=0;a<r.length;a++){var u=r[a];if("function"!=typeof u){var l=w(t,u);if(null!==l)switch(B(e,u,l.value,t),r.splice(a,1),a--,null!==n&&-1!==(u=n.indexOf(u))&&n.splice(u,1),t.status){case"fulfilled":T(e,r,t.value,t);return;case"rejected":null!==n&&j(e,n,t.reason);return}}}case"pending":if(t.value)for(e=0;e<r.length;e++)t.value.push(r[e]);else t.value=r;if(t.reason){if(n)for(r=0;r<n.length;r++)t.reason.push(n[r])}else t.reason=n;break;case"rejected":n&&j(e,n,t.reason)}}function C(e,t,r){if("pending"!==t.status&&"blocked"!==t.status)t.reason.error(r);else{var n=t.reason;t.status="rejected",t.reason=r,null!==n&&j(e,n,r)}}function x(e,t,r){return new P("resolved_model",(r?'{"done":true,"value":':'{"done":false,"value":')+t+"}",e)}function M(e,t,r,n){N(e,t,(n?'{"done":true,"value":':'{"done":false,"value":')+r+"}")}function N(e,t,r){if("pending"!==t.status)t.reason.enqueueModel(r);else{var n=t.value,a=t.reason;t.status="resolved_model",t.value=r,t.reason=e,null!==n&&(F(t),A(e,t,n,a))}}function D(e,t,r){if("pending"===t.status||"blocked"===t.status){var n=t.value,a=t.reason;t.status="resolved_module",t.value=r,t.reason=null,null!==n&&(L(t),A(e,t,n,a))}}P.prototype=Object.create(Promise.prototype),P.prototype.then=function(e,t){switch(this.status){case"resolved_model":F(this);break;case"resolved_module":L(this)}switch(this.status){case"fulfilled":"function"==typeof e&&e(this.value);break;case"pending":case"blocked":"function"==typeof e&&(null===this.value&&(this.value=[]),this.value.push(e)),"function"==typeof t&&(null===this.reason&&(this.reason=[]),this.reason.push(t));break;case"halted":break;default:"function"==typeof t&&t(this.reason)}};var I=null;function F(e){var t=I;I=null;var r=e.value,n=e.reason;e.status="blocked",e.value=null,e.reason=null;try{var a=ei(n,r),u=e.value;if(null!==u)for(e.value=null,e.reason=null,r=0;r<u.length;r++){var l=u[r];"function"==typeof l?l(a):B(n,l,a,e)}if(null!==I){if(I.errored)throw I.reason;if(0<I.deps){I.value=a,I.chunk=e;return}}e.status="fulfilled",e.value=a,e.reason=null}catch(t){e.status="rejected",e.reason=t}finally{I=t}}function L(e){try{var t=c(e.value);e.status="fulfilled",e.value=t,e.reason=null}catch(t){e.status="rejected",e.reason=t}}function U(e,t){e._closed=!0,e._closedReason=t,e._chunks.forEach(function(r){"pending"===r.status?C(e,r,t):"fulfilled"===r.status&&null!==r.reason&&r.reason.error(t)})}function k(e){return{$$typeof:y,_payload:e,_init:S}}function H(e,t){var r=e._chunks,n=r.get(t);return n||(e._closed?e._allowPartialStream?((e=n=O()).status="halted",e.value=null,e.reason=null):n=new P("rejected",null,e._closedReason):n=O(),r.set(t,n)),n}function B(e,t,r){var n=t.handler,a=t.parentObject,l=t.key,o=t.map,i=t.path;try{for(var s=1;s<i.length;s++){for(;"object"==typeof r&&null!==r&&r.$$typeof===y;){var c=r._payload;if(c===n.chunk)r=n.value;else{switch(c.status){case"resolved_model":F(c);break;case"resolved_module":L(c)}switch(c.status){case"fulfilled":r=c.value;continue;case"blocked":var f=w(c,t);if(null!==f){r=f.value;continue}case"pending":i.splice(0,s-1),null===c.value?c.value=[t]:c.value.push(t),null===c.reason?c.reason=[t]:c.reason.push(t);return;case"halted":return;default:V(e,t.handler,c.reason);return}}}var d=i[s];if("object"==typeof r&&null!==r&&u.call(r,d))r=r[d];else throw Error("Invalid reference.")}for(;"object"==typeof r&&null!==r&&r.$$typeof===y;){var p=r._payload;if(p===n.chunk)r=n.value;else{switch(p.status){case"resolved_model":F(p);break;case"resolved_module":L(p)}if("fulfilled"===p.status){r=p.value;continue}break}}var _=o(e,r,a,l);if("__proto__"!==l&&(a[l]=_),""===l&&null===n.value&&(n.value=_),a[0]===h&&"object"==typeof n.value&&null!==n.value&&n.value.$$typeof===h){var g=n.value;"3"===l&&(g.props=_)}}catch(r){V(e,t.handler,r);return}n.deps--,0===n.deps&&null!==(t=n.chunk)&&"blocked"===t.status&&(r=t.value,t.status="fulfilled",t.value=n.value,t.reason=n.reason,null!==r&&T(e,r,n.value,t))}function V(e,t,r){t.errored||(t.errored=!0,t.value=null,t.reason=r,null!==(t=t.chunk)&&"blocked"===t.status&&C(e,t,r))}function X(e,t,r,n,a,u){return I?(n=I,n.deps++):n=I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1},t={handler:n,parentObject:t,key:r,map:a,path:u},null===e.value?e.value=[t]:e.value.push(t),null===e.reason?e.reason=[t]:e.reason.push(t),null}function $(e,t,r,n){if(!e._serverReferenceConfig)return function(e,t){function r(){var e=Array.prototype.slice.call(arguments);return a?"fulfilled"===a.status?t(n,a.value.concat(e)):Promise.resolve(a).then(function(r){return t(n,r.concat(e))}):t(n,e)}var n=e.id,a=e.bound;return R(r,n,a),r}(t,e._callServer);var a=function(e,t){var r="",n=e[t];if(n)r=n.name;else{var a=t.lastIndexOf("#");if(-1!==a&&(r=t.slice(a+1),n=e[t.slice(0,a)]),!n)throw Error('Could not find the module "'+t+'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.')}return n.async?[n.id,n.chunks,r,1]:[n.id,n.chunks,r]}(e._serverReferenceConfig,t.id),u=s(a);if(u)t.bound&&(u=Promise.all([u,t.bound]));else{if(!t.bound)return R(u=c(a),t.id,t.bound),u;u=Promise.resolve(t.bound)}if(I){var l=I;l.deps++}else l=I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1};return u.then(function(){var u=c(a);if(t.bound){var o=t.bound.value.slice(0);o.unshift(null),u=u.bind.apply(u,o)}R(u,t.id,t.bound),"__proto__"!==n&&(r[n]=u),""===n&&null===l.value&&(l.value=u),r[0]===h&&"object"==typeof l.value&&null!==l.value&&l.value.$$typeof===h&&(o=l.value,"3"===n)&&(o.props=u),l.deps--,0===l.deps&&null!==(u=l.chunk)&&"blocked"===u.status&&(o=u.value,u.status="fulfilled",u.value=l.value,u.reason=null,null!==o&&T(e,o,l.value,u))},function(t){if(!l.errored){l.errored=!0,l.value=null,l.reason=t;var r=l.chunk;null!==r&&"blocked"===r.status&&C(e,r,t)}}),null}function G(e,t,r,n,a){var u=parseInt((t=t.split(":"))[0],16);switch((u=H(e,u)).status){case"resolved_model":F(u);break;case"resolved_module":L(u)}switch(u.status){case"fulfilled":u=u.value;for(var l=1;l<t.length;l++){for(;"object"==typeof u&&null!==u&&u.$$typeof===y;){switch((u=u._payload).status){case"resolved_model":F(u);break;case"resolved_module":L(u)}switch(u.status){case"fulfilled":u=u.value;break;case"blocked":case"pending":return X(u,r,n,e,a,t.slice(l-1));case"halted":return I?(e=I,e.deps++):I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1},null;default:return I?(I.errored=!0,I.value=null,I.reason=u.reason):I={parent:null,chunk:null,value:null,reason:u.reason,deps:0,errored:!0},null}}u=u[t[l]]}for(;"object"==typeof u&&null!==u&&u.$$typeof===y;){switch((t=u._payload).status){case"resolved_model":F(t);break;case"resolved_module":L(t)}if("fulfilled"===t.status){u=t.value;continue}break}return a(e,u,r,n);case"pending":case"blocked":return X(u,r,n,e,a,t);case"halted":return I?(e=I,e.deps++):I={parent:null,chunk:null,value:null,reason:null,deps:1,errored:!1},null;default:return I?(I.errored=!0,I.value=null,I.reason=u.reason):I={parent:null,chunk:null,value:null,reason:u.reason,deps:0,errored:!0},null}}function K(e,t){return new Map(t)}function Y(e,t){return new Set(t)}function q(e,t){return new Blob(t.slice(1),{type:t[0]})}function z(e,t){e=new FormData;for(var r=0;r<t.length;r++)e.append(t[r][0],t[r][1]);return e}function W(e,t){return t[Symbol.iterator]()}function Q(e,t){return t}function J(){throw Error('Trying to call a function from "use server" but the callServer option was not implemented in your router runtime.')}function Z(e,t,r,n,a,u,l,o){var i=new Map;this._bundlerConfig=e,this._serverReferenceConfig=t,this._moduleLoading=r,this._callServer=void 0!==n?n:J,this._encodeFormAction=a,this._nonce=u,this._chunks=i,this._stringDecoder=new TextDecoder,this._closed=!1,this._closedReason=null,this._allowPartialStream=o,this._tempRefs=l}function ee(e,t,r){var n=(e=e._chunks).get(t);n&&"pending"!==n.status?n.reason.enqueueValue(r):(r=new P("fulfilled",r,null),e.set(t,r))}function et(e,t,r,n){var a=e._chunks,u=a.get(t);u?"pending"===u.status&&(t=u.value,u.status="fulfilled",u.value=r,u.reason=n,null!==t&&T(e,t,u.value,u)):(e=new P("fulfilled",r,n),a.set(t,e))}function er(e,t,r){var n=null,a=!1;r=new ReadableStream({type:r,start:function(e){n=e}});var u=null;et(e,t,r,{enqueueValue:function(e){null===u?n.enqueue(e):u.then(function(){n.enqueue(e)})},enqueueModel:function(t){if(null===u){var r=new P("resolved_model",t,e);F(r),"fulfilled"===r.status?n.enqueue(r.value):(r.then(function(e){return n.enqueue(e)},function(e){return n.error(e)}),u=r)}else{r=u;var a=O();a.then(function(e){return n.enqueue(e)},function(e){return n.error(e)}),u=a,r.then(function(){u===a&&(u=null),N(e,a,t)})}},close:function(){if(!a)if(a=!0,null===u)n.close();else{var e=u;u=null,e.then(function(){return n.close()})}},error:function(e){if(!a)if(a=!0,null===u)n.error(e);else{var t=u;u=null,t.then(function(){return n.error(e)})}}})}function en(){return this}function ea(e,t,r){var n=[],a=!1,u=0,l={};l[g]=function(){var e,t=0;return(e={next:e=function(e){if(void 0!==e)throw Error("Values cannot be passed to next() of AsyncIterables passed to Client Components.");if(t===n.length){if(a)return new P("fulfilled",{done:!0,value:void 0},null);n[t]=O()}return n[t++]}})[g]=en,e},et(e,t,r?l[g]():l,{enqueueValue:function(t){if(u===n.length)n[u]=new P("fulfilled",{done:!1,value:t},null);else{var r=n[u],a=r.value,l=r.reason;r.status="fulfilled",r.value={done:!1,value:t},r.reason=null,null!==a&&A(e,r,a,l)}u++},enqueueModel:function(t){u===n.length?n[u]=x(e,t,!1):M(e,n[u],t,!1),u++},close:function(t){if(!a)for(a=!0,u===n.length?n[u]=x(e,t,!0):M(e,n[u],t,!0),u++;u<n.length;)M(e,n[u++],'"$undefined"',!0)},error:function(t){if(!a)for(a=!0,u===n.length&&(n[u]=O());u<n.length;)C(e,n[u++],t)}})}function eu(){var e=Error("An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.");return e.stack="Error: "+e.message,e}function el(e,t){for(var r=e.length,n=t.length,a=0;a<r;a++)n+=e[a].byteLength;n=new Uint8Array(n);for(var u=a=0;u<r;u++){var l=e[u];n.set(l,a),a+=l.byteLength}return n.set(t,a),n}function eo(e,t,r,n,a,u){ee(e,t,a=new a((r=0===r.length&&0==n.byteOffset%u?n:el(r,n)).buffer,r.byteOffset,r.byteLength/u))}function ei(e,t){return function e(t,r,n,a){if("string"==typeof r)return"$"===r[0]?function(e,t,r,n){if("$"===n[0]){if("$"===n)return null!==I&&"0"===r&&(I={parent:I,chunk:null,value:null,reason:null,deps:0,errored:!1}),h;switch(n[1]){case"$":return n.slice(1);case"L":return k(e=H(e,t=parseInt(n.slice(2),16)));case"@":return H(e,t=parseInt(n.slice(2),16));case"S":return Symbol.for(n.slice(2));case"h":return G(e,n=n.slice(2),t,r,$);case"T":if(t="$"+n.slice(2),null==(e=e._tempRefs))throw Error("Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.");return e.get(t);case"Q":return G(e,n=n.slice(2),t,r,K);case"W":return G(e,n=n.slice(2),t,r,Y);case"B":return G(e,n=n.slice(2),t,r,q);case"K":return G(e,n=n.slice(2),t,r,z);case"Z":return eu();case"i":return G(e,n=n.slice(2),t,r,W);case"I":return 1/0;case"-":return"$-0"===n?-0:-1/0;case"N":return NaN;case"u":return;case"D":return new Date(Date.parse(n.slice(2)));case"n":return BigInt(n.slice(2));default:return G(e,n=n.slice(1),t,r,Q)}}return n}(t,n,a,r):r;if("object"!=typeof r||null===r)return r;if(v(r)){for(var u=0;u<r.length;u++)r[u]=e(t,r[u],r,""+u);return r[0]===h?(r[0]===h?(t={$$typeof:h,type:r[1],key:r[2],ref:null,props:r[3]},null!==I&&(I=(r=I).parent,r.errored?t=k(t=new P("rejected",null,r.reason)):0<r.deps&&(u=new P("blocked",null,null),r.value=t,r.chunk=u,t=k(u)))):t=r,t):r}for(u in r)"__proto__"===u?delete r[u]:void 0!==(n=e(t,r[u],r,u))?r[u]=n:delete r[u];return r}(e,t=JSON.parse(t),{"":t},"")}function es(e){e._allowPartialStream?(e._closed=!0,e._chunks.forEach(function(e){"pending"===e.status?(e.status="halted",e.value=null,e.reason=null):"fulfilled"===e.status&&null!==e.reason&&e.reason.close('"$undefined"')})):U(e,Error("Connection closed."))}function ec(e){return new Z(null,null,null,e&&e.callServer?e.callServer:void 0,void 0,void 0,e&&e.temporaryReferences?e.temporaryReferences:void 0,!!e&&!!e.unstable_allowPartialStream&&e.unstable_allowPartialStream)}function ef(e,t,r){function n(t){U(e,t)}var u={_rowState:0,_rowID:0,_rowTag:0,_rowLength:0,_buffer:[]},l=t.getReader();l.read().then(function t(o){var i=o.value;if(o.done)return r();var c=0,f=u._rowState;o=u._rowID;for(var d=u._rowTag,h=u._rowLength,y=u._buffer,_=i.length;c<_;){var g=-1;switch(f){case 0:58===(g=i[c++])?f=1:o=o<<4|(96<g?g-87:g-48);continue;case 1:84===(f=i[c])||65===f||79===f||111===f||98===f||85===f||83===f||115===f||76===f||108===f||71===f||103===f||77===f||109===f||86===f?(d=f,f=2,c++):64<f&&91>f||35===f||114===f||120===f?(d=f,f=3,c++):(d=0,f=3);continue;case 2:44===(g=i[c++])?f=4:h=h<<4|(96<g?g-87:g-48);continue;case 3:g=i.indexOf(10,c);break;case 4:(g=c+h)>i.length&&(g=-1)}var v=i.byteOffset+c;if(-1<g)h=new Uint8Array(i.buffer,v,g-c),98===d?ee(e,o,g===_?h:h.slice()):function(e,t,r,n,u,l){switch(n){case 65:ee(e,r,el(u,l).buffer);return;case 79:eo(e,r,u,l,Int8Array,1);return;case 111:ee(e,r,0===u.length?l:el(u,l));return;case 85:eo(e,r,u,l,Uint8ClampedArray,1);return;case 83:eo(e,r,u,l,Int16Array,2);return;case 115:eo(e,r,u,l,Uint16Array,2);return;case 76:eo(e,r,u,l,Int32Array,4);return;case 108:eo(e,r,u,l,Uint32Array,4);return;case 71:eo(e,r,u,l,Float32Array,4);return;case 103:eo(e,r,u,l,Float64Array,8);return;case 77:eo(e,r,u,l,BigInt64Array,8);return;case 109:eo(e,r,u,l,BigUint64Array,8);return;case 86:eo(e,r,u,l,DataView,1);return}t=e._stringDecoder;for(var o="",i=0;i<u.length;i++)o+=t.decode(u[i],a);switch(u=o+=t.decode(l),n){case 73:var c=e,f=r,d=u,h=c._chunks,y=h.get(f);d=ei(c,d);var _=function(e,t){if(e){var r=e[t[0]];if(e=r&&r[t[2]])r=e.name;else{if(!(e=r&&r["*"]))throw Error('Could not find the module "'+t[0]+'" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.');r=t[2]}return 4===t.length?[e.id,e.chunks,r,1]:[e.id,e.chunks,r]}return t}(c._bundlerConfig,d);if(d=s(_)){if(y){var g=y;g.status="blocked"}else g=new P("blocked",null,null),h.set(f,g);d.then(function(){return D(c,g,_)},function(e){return C(c,g,e)})}else y?D(c,y,_):(y=new P("resolved_module",_,null),h.set(f,y));break;case 72:switch(r=u[0],e=ei(e,u=u.slice(1)),u=p.d,r){case"D":u.D(e);break;case"C":"string"==typeof e?u.C(e):u.C(e[0],e[1]);break;case"L":r=e[0],n=e[1],3===e.length?u.L(r,n,e[2]):u.L(r,n);break;case"m":"string"==typeof e?u.m(e):u.m(e[0],e[1]);break;case"X":"string"==typeof e?u.X(e):u.X(e[0],e[1]);break;case"S":"string"==typeof e?u.S(e):u.S(e[0],0===e[1]?void 0:e[1],3===e.length?e[2]:void 0);break;case"M":"string"==typeof e?u.M(e):u.M(e[0],e[1])}break;case 69:l=(n=e._chunks).get(r),u=JSON.parse(u),(t=eu()).digest=u.digest,l?C(e,l,t):(e=new P("rejected",null,t),n.set(r,e));break;case 84:(n=(e=e._chunks).get(r))&&"pending"!==n.status?n.reason.enqueueValue(u):(u=new P("fulfilled",u,null),e.set(r,u));break;case 78:case 68:case 74:case 87:throw Error("Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client.");case 82:er(e,r,void 0);break;case 114:er(e,r,"bytes");break;case 88:ea(e,r,!1);break;case 120:ea(e,r,!0);break;case 67:(r=e._chunks.get(r))&&"fulfilled"===r.status&&r.reason.close(""===u?'"$undefined"':u);break;default:(l=(n=e._chunks).get(r))?N(e,l,u):(e=new P("resolved_model",u,e),n.set(r,e))}}(e,u,o,d,y,h),c=g,3===f&&c++,h=o=d=f=0,y.length=0;else{i=new Uint8Array(i.buffer,v,i.byteLength-c),98===d?(h-=i.byteLength,ee(e,o,i)):(y.push(i),h-=i.byteLength);break}}return u._rowState=f,u._rowID=o,u._rowTag=d,u._rowLength=h,l.read().then(t).catch(n)}).catch(n)}t.createFromFetch=function(e,t){var r=ec(t);return e.then(function(e){ef(r,e.body,es.bind(null,r))},function(e){U(r,e)}),H(r,0)},t.createFromReadableStream=function(e,t){return ef(t=ec(t),e,es.bind(null,t)),H(t,0)},t.createServerReference=function(e,t){function r(){var r=Array.prototype.slice.call(arguments);return t(e,r)}return R(r,e,null),r},t.createTemporaryReferenceSet=function(){return new Map},t.encodeReply=function(e,t){return new Promise(function(r,n){var a=function(e,t,r,n){function a(e,t){t=new Blob([new Uint8Array(t.buffer,t.byteOffset,t.byteLength)]);var r=o++;return null===s&&(s=new FormData),s.append(""+r,t),"$"+e+r.toString(16)}function u(e,d){if(null===d)return null;if("object"==typeof d){switch(d.$$typeof){case h:if(void 0!==t&&-1===e.indexOf(":")){var p,R,P,S,O,T=c.get(this);if(void 0!==T)return t.set(T+":"+e,d),"$T"}if(void 0!==t&&f===d)return f=null,"$T";throw Error("React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.");case y:T=d._payload;var j=d._init;null===s&&(s=new FormData),i++;try{var w=j(T),A=o++,C=l(w,A);return s.append(""+A,C),"$"+A.toString(16)}catch(e){if("object"==typeof e&&null!==e&&"function"==typeof e.then){i++;var x=o++;return T=function(){try{var e=l(d,x),t=s;t.append(""+x,e),i--,0===i&&r(t)}catch(e){n(e)}},e.then(T,T),"$"+x.toString(16)}return n(e),null}finally{i--}}if(T=c.get(d),"function"==typeof d.then){if(void 0!==T)if(f!==d)return T;else f=null;null===s&&(s=new FormData),i++;var M=o++;return e="$@"+M.toString(16),c.set(d,e),d.then(function(e){try{var t=c.get(e),a=void 0!==t?JSON.stringify(t):l(e,M);(e=s).append(""+M,a),i--,0===i&&r(e)}catch(e){n(e)}},n),e}if(void 0!==T)if(f!==d)return T;else f=null;else -1===e.indexOf(":")&&void 0!==(T=c.get(this))&&(e=T+":"+e,c.set(d,e),void 0!==t&&t.set(e,d));if(v(d))return d;if(d instanceof FormData){null===s&&(s=new FormData);var N=s,D="_"+(e=o++)+"_";return d.forEach(function(e,t){N.append(D+t,e)}),"$K"+e.toString(16)}if(d instanceof Map)return e=o++,T=l(Array.from(d),e),null===s&&(s=new FormData),s.append(""+e,T),"$Q"+e.toString(16);if(d instanceof Set)return e=o++,T=l(Array.from(d),e),null===s&&(s=new FormData),s.append(""+e,T),"$W"+e.toString(16);if(d instanceof ArrayBuffer)return e=new Blob([d]),T=o++,null===s&&(s=new FormData),s.append(""+T,e),"$A"+T.toString(16);if(d instanceof Int8Array)return a("O",d);if(d instanceof Uint8Array)return a("o",d);if(d instanceof Uint8ClampedArray)return a("U",d);if(d instanceof Int16Array)return a("S",d);if(d instanceof Uint16Array)return a("s",d);if(d instanceof Int32Array)return a("L",d);if(d instanceof Uint32Array)return a("l",d);if(d instanceof Float32Array)return a("G",d);if(d instanceof Float64Array)return a("g",d);if(d instanceof BigInt64Array)return a("M",d);if(d instanceof BigUint64Array)return a("m",d);if(d instanceof DataView)return a("V",d);if("function"==typeof Blob&&d instanceof Blob)return null===s&&(s=new FormData),e=o++,s.append(""+e,d),"$B"+e.toString(16);if(e=null===(p=d)||"object"!=typeof p?null:"function"==typeof(p=_&&p[_]||p["@@iterator"])?p:null)return(T=e.call(d))===d?(e=o++,T=l(Array.from(T),e),null===s&&(s=new FormData),s.append(""+e,T),"$i"+e.toString(16)):Array.from(T);if("function"==typeof ReadableStream&&d instanceof ReadableStream)return function(e){try{var t,a,l,c,f,d,p,h=e.getReader({mode:"byob"})}catch(c){return t=e.getReader(),null===s&&(s=new FormData),a=s,i++,l=o++,t.read().then(function e(o){if(o.done)a.append(""+l,"C"),0==--i&&r(a);else try{var s=JSON.stringify(o.value,u);a.append(""+l,s),t.read().then(e,n)}catch(e){n(e)}},n),"$R"+l.toString(16)}return c=h,null===s&&(s=new FormData),f=s,i++,d=o++,p=[],c.read(new Uint8Array(1024)).then(function e(t){t.done?(t=o++,f.append(""+t,new Blob(p)),f.append(""+d,'"$o'+t.toString(16)+'"'),f.append(""+d,"C"),0==--i&&r(f)):(p.push(t.value),c.read(new Uint8Array(1024)).then(e,n))},n),"$r"+d.toString(16)}(d);if("function"==typeof(e=d[g]))return R=d,P=e.call(d),null===s&&(s=new FormData),S=s,i++,O=o++,R=R===P,P.next().then(function e(t){if(t.done){if(void 0===t.value)S.append(""+O,"C");else try{var a=JSON.stringify(t.value,u);S.append(""+O,"C"+a)}catch(e){n(e);return}0==--i&&r(S)}else try{var l=JSON.stringify(t.value,u);S.append(""+O,l),P.next().then(e,n)}catch(e){n(e)}},n),"$"+(R?"x":"X")+O.toString(16);if((e=m(d))!==b&&(null===e||null!==m(e))){if(void 0===t)throw Error("Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.");return"$T"}return d}if("string"==typeof d)return"Z"===d[d.length-1]&&this[e]instanceof Date?"$D"+d:e="$"===d[0]?"$"+d:d;if("boolean"==typeof d)return d;if("number"==typeof d)return Number.isFinite(d)?0===d&&-1/0==1/d?"$-0":d:1/0===d?"$Infinity":-1/0===d?"$-Infinity":"$NaN";if(void 0===d)return"$undefined";if("function"==typeof d){if(void 0!==(T=E.get(d)))return void 0!==(e=c.get(d))||(e=JSON.stringify({id:T.id,bound:T.bound},u),null===s&&(s=new FormData),T=o++,s.set(""+T,e),e="$h"+T.toString(16),c.set(d,e)),e;if(void 0!==t&&-1===e.indexOf(":")&&void 0!==(T=c.get(this)))return t.set(T+":"+e,d),"$T";throw Error("Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.")}if("symbol"==typeof d){if(void 0!==t&&-1===e.indexOf(":")&&void 0!==(T=c.get(this)))return t.set(T+":"+e,d),"$T";throw Error("Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.")}if("bigint"==typeof d)return"$n"+d.toString(10);throw Error("Type "+typeof d+" is not supported as an argument to a Server Function.")}function l(e,r){return"object"==typeof e&&null!==e&&(r="$"+r.toString(16),c.set(e,r),void 0!==t&&t.set(r,e)),f=e,JSON.stringify(e,u)}var o=1,i=0,s=null,c=new WeakMap,f=e,d=l(e,0);return null===s?r(d):(s.set("0",d),0===i&&r(s)),function(){0<i&&(i=0,null===s?r(d):r(s))}}(e,t&&t.temporaryReferences?t.temporaryReferences:void 0,r,n);if(t&&t.signal){var u=t.signal;if(u.aborted)a(u.reason);else{var l=function(){a(u.reason),u.removeEventListener("abort",l)};u.addEventListener("abort",l)}}})},t.registerServerReference=function(e,t){return R(e,t,null),e}},99297:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return n}});class r extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class n extends URLSearchParams{append(){throw new r}delete(){throw new r}set(){throw new r}sort(){throw new r}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99786:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return n}});var r,n=((r={})[r.SeeOther=303]="SeeOther",r[r.TemporaryRedirect=307]="TemporaryRedirect",r[r.PermanentRedirect=308]="PermanentRedirect",r);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3649],{20061:(e,t,n)=>{Promise.resolve().then(n.bind(n,47295))},47295:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>L});var a=n(95155),r=n(12115),l=n(44923),s=n(87256),o=n(39768),i=n(82639),d=n(35497),c=n(11059),m=n(28777),u=n(52679);let x=/^[a-zA-Z0-9_.\-]+$/,b=[{value:"global",label:"To\xe0n cục / h\xe0nh vi hiện tại",description:"Giữ h\xe0nh vi hiện tại: mọi request d\xf9ng chung v\xf2ng xoay combo to\xe0n cục."},{value:"client_ip",label:"IP client",description:"Giữ c\xf9ng model khởi đầu cho c\xf9ng IP client cho đến khi hết TTL."},{value:"client_session",label:"IP client + phi\xean chat",description:"Ph\xf9 hợp nhất cho c\xf4ng cụ chat. Giữ c\xf9ng model cho c\xf9ng m\xe1y v\xe0 c\xf9ng phi\xean chat."}],p=[{value:"fallback",label:"Ưu ti\xean fallback",description:"Thử model trong combo theo đ\xfang thứ tự hiển thị, lỗi th\xec fallback."},{value:"round-robin",label:"Round Robin",description:"Lu\xe2n phi\xean model đang bật được thử đầu ti\xean. C\xe1c t\xf9y chọn giữ d\xednh b\xean dưới vẫn được \xe1p dụng."},{value:"least-latency",label:"Độ trễ thấp nhất",description:"Ưu ti\xean target c\xf3 điểm health/độ trễ tốt nhất. Hữu \xedch cho LAN Ollama."},{value:"p2c",label:"P2C",description:"Power of Two Choices: lấy mẫu hai target khỏe rồi chọn target \xedt bận hơn."}],h=Object.freeze({temperature:.3,top_p:.95,max_tokens:4096,reasoning_budget:0,thinkingMode:"off"}),g=[{value:"inherit",label:"Theo request gốc",description:"Kh\xf4ng inject tham số thinking."},{value:"off",label:"Tắt thinking",description:"Gửi chat_template_kwargs.enable_thinking = false."},{value:"on",label:"Bật thinking",description:"Gửi chat_template_kwargs.enable_thinking = true."}];function f(e,t){return Object.prototype.hasOwnProperty.call(e||{},t)}function y(e,{min:t,max:n,precision:a=3}={}){if(null==e||""===e)return;let r=Number(e);if(Number.isFinite(r))return Number(Math.min(n,Math.max(t,r)).toFixed(a))}function v(e,{min:t,max:n}={}){let a=y(e,{min:t,max:n,precision:0});return void 0===a?void 0:Math.trunc(a)}function j(e={}){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{},n={};if(f(t,"temperature")){let e=y(t.temperature,{min:0,max:2});void 0!==e&&(n.temperature=e)}if(f(t,"top_p")){let e=y(t.top_p,{min:0,max:1});void 0!==e&&(n.top_p=e)}let a=t.max_tokens??t.maxTokens??t.max_token;if(f(t,"max_tokens")||f(t,"maxTokens")||f(t,"max_token")){let e=v(a,{min:1,max:262144});void 0!==e&&(n.max_tokens=e)}let r=t.reasoning_budget??t.reasoningBudget??t["reasoning-budget"];if(f(t,"reasoning_budget")||f(t,"reasoningBudget")||f(t,"reasoning-budget")){let e=v(r,{min:0,max:262144});void 0!==e&&(n.reasoning_budget=e)}let l=function(e){if(!0===e)return"on";if(!1===e)return"off";let t=k(e).toLowerCase();return["on","true","1","enable","enabled"].includes(t)?"on":["off","false","0","disable","disabled"].includes(t)?"off":void 0}(t.thinkingMode??t.thinking);return l&&(n.thinkingMode=l),n}function k(e){return String(e||"").trim()}function N(e={}){return Array.isArray(e.disabledModels)?[...new Set(e.disabledModels.map(e=>k(e)).filter(Boolean))]:[]}function w(e={}){let t=e.fallbackStrategy||"fallback";return{...e,fallbackStrategy:t,stickyScope:e.stickyScope||"global",stickyTtlMinutes:Number(e.stickyTtlMinutes||120),stickyFallbackToClientIp:!1!==e.stickyFallbackToClientIp,lanHealthEnabled:!1!==e.lanHealthEnabled,healthCheckPath:e.healthCheckPath||"/api/tags",healthCheckIntervalMs:Number(e.healthCheckIntervalMs||15e3),requiredTags:Array.isArray(e.requiredTags)?e.requiredTags:[],modelTagRules:e.modelTagRules||e.modelTags||e.tagRules||{},disabledModels:N(e),requestOverrides:j(e.requestOverrides||{})}}function C(e={}){let t={...e};t.disabledModels=N(e),"fallback"===(t.fallbackStrategy||"fallback")&&delete t.fallbackStrategy,t.disabledModels.length||delete t.disabledModels,t.requiredTags?.length||delete t.requiredTags;let n=j(t.requestOverrides||{});return Object.keys(n).length?t.requestOverrides=n:delete t.requestOverrides,t.modelTagRules&&0!==Object.keys(t.modelTagRules).length||delete t.modelTagRules,"/api/tags"===t.healthCheckPath&&delete t.healthCheckPath,15e3===Number(t.healthCheckIntervalMs)&&delete t.healthCheckIntervalMs,!0===t.lanHealthEnabled&&delete t.lanHealthEnabled,Object.keys(t).length?t:null}function _(e=[]){return Array.isArray(e)?e.join(", "):String(e||"")}function T(e=""){return String(e||"").split(/[\n,;]+/).map(e=>e.trim()).filter(Boolean)}function S(e={}){return e&&"object"==typeof e?Object.entries(e).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(", "):String(t||"")}`).join("\n"):""}function $(e){return"string"==typeof e?e:e&&"object"==typeof e&&(e.value||e.model||e.id)||""}function O(e={}){let t=k(e.provider);return k(e.providerSpecificData?.prefix)||k(e.prefix)||k((0,u.wG)(t))||t}function M(e={}){return k(e.email)||k(e.accountName)||k(e.displayName)||k(e.name)||k(e.providerSpecificData?.nodeName)||k(e.id)}function E(e){return e&&"object"==typeof e?k(e.connectionId||e.connection_id):""}function q(e){let t=$(e),n=E(e);return t?n?`${t}@@${n}`:t:""}function I(e){return"string"==typeof e?e:e&&"object"==typeof e?k(e.label)||k(e.displayName)||k(e.name)||$(e):""}function P(e){if(!e||"object"!=typeof e)return $(e);let t=$(e);return t?Object.fromEntries(Object.entries({model:t,connectionId:E(e)||void 0,label:I(e)||void 0,provider:k(e.provider)||void 0,accountName:k(e.accountName||e.account_name)||void 0,weight:Number(e.weight||0)>0?Number(e.weight):void 0}).filter(([,e])=>void 0!==e&&""!==e)):""}function R(e,t=!0){let n=P(e),a=q(n);return{value:a,enabled:t,target:n,label:I(n)||a,subtitle:function(e){if(!e||"object"!=typeof e)return"";let t=E(e),n=$(e);return t?`T\xe0i khoản cố định • ${t}${n?` • ${n}`:""}`:""}(n)}}function A(e={}){return k(e.defaultModel)||k(e.providerSpecificData?.defaultModel)||k(e.model)||""}function B(e,t,n,a=""){let r=k(n);!r||t.has(r)||(t.add(r),e.push({value:r,label:k(a)||r}))}function D(e={},t={}){let n=[],a=new Set,r=k(e.provider),l=[...new Set([O(e),k((0,u.wG)(r)),r].filter(Boolean))];for(let e of(0,m.KC)(r)||[])e?.type&&"llm"!==e.type||B(n,a,e.id,e.name||e.id);for(let[e,r]of Object.entries(t||{})){let t=k(r),s=l.find(e=>e&&t.startsWith(`${e}/`));if(!s)continue;let o=t.slice(s.length+1);B(n,a,o,e||o)}return B(n,a,A(e),"Model mặc định"),n}function F(e={},{disabledModels:t=[],requestOverrides:n}={}){let a={...e},r=[...new Set((t||[]).map(e=>k(e)).filter(Boolean))];if(r.length>0?a.disabledModels=r:delete a.disabledModels,void 0!==n){let e=j(n||{});Object.keys(e).length?a.requestOverrides=e:delete a.requestOverrides}return C(a)}function L(){let[e,t]=(0,r.useState)([]),[n,l]=(0,r.useState)(!0),[s,o]=(0,r.useState)(!1),[i,m]=(0,r.useState)(null),[u,x]=(0,r.useState)([]),[b,p]=(0,r.useState)(!1),[h,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)({}),[v,j]=(0,r.useState)(null),{copied:k,copy:N}=(0,c.C)();(0,r.useEffect)(()=>{_()},[]);let _=async()=>{try{let e=await fetch("/api/dashboard/combos",{cache:"no-store"}),n=await e.json();e.ok&&(t(n.combos||[]),y(n.comboStrategies||{}))}catch(e){console.log("Error fetching combo data:",e)}finally{l(!1)}},T=async()=>{if(!b&&!h){g(!0);try{let e=await fetch("/api/providers",{cache:"no-store"}),t=await e.json();e.ok&&(x(t.connections||[]),p(!0))}catch(e){console.log("Error loading provider accounts:",e)}finally{g(!1)}}},S=async()=>{o(!0),T()},$=async e=>{m(e),T()},O=async e=>{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:e})}),y(e)},M=async e=>{let{disabledModels:t=[],requestOverrides:n,...a}=e;try{let e=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(e.ok){let e=F({},{disabledModels:t,requestOverrides:n});e&&await O({...f,[a.name]:e}),await _(),o(!1)}else{let t=await e.json();alert(t.error||"Tạo combo thất bại")}}catch(e){console.log("Error creating combo:",e)}},E=async(e,t)=>{let{disabledModels:n=[],requestOverrides:a,...r}=t,l=i?.name;try{let t=await fetch(`/api/combos/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(t.ok){let e={...f};l&&l!==r.name&&e[l]&&(e[r.name]=e[l],delete e[l]);let t=F(e[r.name]||{},{disabledModels:n,requestOverrides:a});t?e[r.name]=t:delete e[r.name],await O(e),await _(),m(null)}else{let e=await t.json();alert(e.error||"Cập nhật combo thất bại")}}catch(e){console.log("Error updating combo:",e)}},q=async n=>{let a=e.find(e=>e.id===n);j({title:"X\xf3a combo",message:"Bạn c\xf3 chắc muốn x\xf3a combo n\xe0y?",onConfirm:async()=>{j(null);try{if((await fetch(`/api/combos/${n}`,{method:"DELETE"})).ok){if(a?.name&&f[a.name]){let e={...f};delete e[a.name],await O(e)}t(e=>e.filter(e=>e.id!==n))}}catch(e){console.log("Error deleting combo:",e)}}})},I=async(e,t)=>{try{let n={...f};if(t)n[e]=w(n[e]);else{let t=function(e={}){return C({...e,fallbackStrategy:"fallback"})}(n[e]||{});t?n[e]=t:delete n[e]}await O(n)}catch(e){console.log("Error updating combo strategy:",e)}},P=async(e,t)=>{try{let n={...f},a=C({...w(n[e]),...t});a?n[e]=a:delete n[e],await O(n)}catch(e){console.log("Error updating combo routing settings:",e)}};return n?(0,a.jsx)("div",{className:"grid gap-4",children:[1,2,3].map(e=>(0,a.jsx)("div",{className:"h-36 animate-pulse rounded-2xl border border-border bg-surface"},e))}):(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Combo model"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model với fallback, round-robin, độ trễ thấp nhất, P2C v\xe0 routing theo trạng th\xe1i health của LAN Ollama."})]}),(0,a.jsxs)("button",{type:"button",onClick:S,className:"inline-flex items-center justify-center gap-2 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Tạo combo"]})]}),0===e.length?(0,a.jsxs)("div",{className:"rounded-2xl border border-dashed border-border bg-surface p-12 text-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted",children:"layers"}),(0,a.jsx)("h2",{className:"mt-3 text-lg font-semibold text-text-main",children:"Chưa c\xf3 combo n\xe0o"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model c\xf3 hỗ trợ fallback."}),(0,a.jsx)("button",{type:"button",onClick:S,className:"mt-4 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:"Tạo combo"})]}):(0,a.jsx)("div",{className:"grid gap-4",children:e.map(e=>(0,a.jsx)(G,{combo:e,copied:k,onCopy:N,onEdit:()=>$(e),onDelete:()=>q(e.id),comboStrategy:f[e.name]||{},onToggleRoundRobin:t=>I(e.name,t),onUpdateComboStrategy:t=>P(e.name,t)},e.id))}),(0,a.jsx)(J,{isOpen:s,comboStrategy:{},onClose:()=>o(!1),onSave:M,activeProviders:u,providersLoading:h}),(0,a.jsx)(J,{isOpen:!!i,combo:i,comboStrategy:f[i?.name]||{},onClose:()=>m(null),onSave:e=>E(i.id,e),activeProviders:u,providersLoading:h}),(0,a.jsx)(d.uo,{isOpen:!!v,onClose:()=>j(null),onConfirm:v?.onConfirm,title:v?.title||"X\xe1c nhận",message:v?.message,variant:"danger"})]})}function G({combo:e,copied:t,onCopy:n,onEdit:l,onDelete:s,comboStrategy:o={},onToggleRoundRobin:i,onUpdateComboStrategy:d}){let c=w(o||{}),m=c.fallbackStrategy||"fallback",u=p.find(e=>e.value===m)||p[0],x=c.stickyScope||"global",h=b.find(e=>e.value===x)||b[0],g=N(o),[f,y]=(0,r.useState)(_(c.requiredTags)),[v,k]=(0,r.useState)(S(c.modelTagRules));return(0,r.useEffect)(()=>{y(_(c.requiredTags)),k(S(c.modelTagRules))},[e.name,JSON.stringify(c.requiredTags||[]),JSON.stringify(c.modelTagRules||{})]),(0,a.jsxs)("div",{className:"rounded-2xl border border-border bg-surface p-5",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"layers"}),(0,a.jsx)("h3",{className:"truncate text-lg font-semibold text-text-main",children:e.name})]}),(0,a.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:[(e.models||[]).length," model đang bật",g.length>0?` • ${g.length} đ\xe3 tắt`:""]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(H,{icon:t===`combo-${e.id}`?"check":"content_copy",title:"Copy t\xean combo",onClick:()=>n(e.name,`combo-${e.id}`)}),(0,a.jsx)(H,{icon:"edit",title:"Chỉnh sửa",onClick:l}),(0,a.jsx)(H,{icon:"delete",title:"X\xf3a",onClick:s,danger:!0})]})]}),(0,a.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[0===(e.models||[]).length?(0,a.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:"Chưa c\xf3 model đang bật"}):(e.models||[]).slice(0,5).map((e,t)=>(0,a.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 font-mono text-xs text-text-main",children:I(e)},`${q(e)}-${t}`)),(e.models||[]).length>5&&(0,a.jsxs)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:["+",e.models.length-5," model nữa"]}),g.length>0&&(0,a.jsxs)("span",{className:"rounded-lg bg-red-500/10 px-2 py-1 text-xs text-red-500",children:[g.length," đ\xe3 tắt"]}),(function(e={}){let t=j(e),n=[];return void 0!==t.temperature&&n.push(`temp ${t.temperature}`),void 0!==t.top_p&&n.push(`top_p ${t.top_p}`),void 0!==t.max_tokens&&n.push(`max ${t.max_tokens}`),void 0!==t.reasoning_budget&&n.push(`reasoning ${t.reasoning_budget}`),"off"===t.thinkingMode&&n.push("thinking off"),"on"===t.thinkingMode&&n.push("thinking on"),n})(c.requestOverrides).map(e=>(0,a.jsx)("span",{className:"rounded-lg bg-primary/10 px-2 py-1 text-xs font-medium text-primary",children:e},e))]}),(0,a.jsxs)("div",{className:"mt-5 rounded-xl border border-border bg-background p-4",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"font-semibold text-text-main",children:"Chiến lược routing"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:u.description})]}),(0,a.jsx)("select",{value:m,onChange:e=>d({fallbackStrategy:e.target.value}),className:"rounded-lg border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:p.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))})]}),(0,a.jsx)(K,{value:c.requestOverrides||{},onChange:e=>d({requestOverrides:e}),compact:!0}),("least-latency"===m||"p2c"===m)&&(0,a.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 text-sm text-text-muted",children:[(0,a.jsx)("input",{type:"checkbox",checked:!1!==c.lanHealthEnabled,onChange:e=>d({lanHealthEnabled:e.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"font-medium text-text-main",children:"Routing theo trạng th\xe1i health LAN"}),(0,a.jsx)("span",{className:"mt-1 block text-xs",children:"D\xf9ng dữ liệu health v\xe0 circuit breaker khi xếp hạng target trong combo."})]})]}),(0,a.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Đường dẫn health"}),(0,a.jsx)("input",{value:c.healthCheckPath||"/api/tags",onChange:e=>d({healthCheckPath:e.target.value||"/api/tags"}),placeholder:"/api/tags",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chu kỳ kiểm tra (ms)"}),(0,a.jsx)("input",{type:"number",min:"1000",value:c.healthCheckIntervalMs||15e3,onChange:e=>d({healthCheckIntervalMs:Number(e.target.value)||15e3}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,a.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Tag endpoint bắt buộc"}),(0,a.jsx)("input",{value:f,onChange:e=>y(e.target.value),onBlur:()=>d({requiredTags:T(f)}),onKeyDown:e=>"Enter"===e.key&&e.currentTarget.blur(),placeholder:"gpu, vram:8gb",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Mọi endpoint được route đều phải c\xf3 c\xe1c tag n\xe0y."})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Quy tắc tag theo model"}),(0,a.jsx)("textarea",{value:v,onChange:e=>k(e.target.value),onBlur:()=>d({modelTagRules:function(e=""){let t={};for(let n of String(e||"").split(/\n+/)){let e=n.trim();if(!e)continue;let a=e.indexOf(":");if(-1===a)continue;let r=e.slice(0,a).trim(),l=T(e.slice(a+1));r&&l.length&&(t[r]=l)}return t}(v)}),placeholder:"qwen3:32b: gpu, vram:16gb\nqwen3:8b: model_support:qwen3:8b",rows:3,className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]})]})]}),"round-robin"===m&&(0,a.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"sticky_note_2"}),"Round Robin giữ d\xednh"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,a.jsx)("input",{type:"checkbox",checked:"round-robin"===m,onChange:e=>i(e.target.checked),className:"h-3.5 w-3.5 accent-primary"}),"Bật"]})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chế độ giữ d\xednh"}),(0,a.jsx)("select",{value:x,onChange:e=>d({stickyScope:e.target.value}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary",children:b.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:h.description})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"TTL giữ d\xednh (ph\xfat)"}),(0,a.jsx)("input",{type:"number",min:"1",value:c.stickyTtlMinutes||120,onChange:e=>d({stickyTtlMinutes:Number(e.target.value)||120}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,a.jsxs)("label",{className:"mt-3 flex items-start gap-2 text-xs text-text-muted",children:[(0,a.jsx)("input",{type:"checkbox",checked:!1!==c.stickyFallbackToClientIp,onChange:e=>d({stickyFallbackToClientIp:e.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),"Nếu thiếu chat session id, fallback về IP client thay v\xec xoay to\xe0n cục."]})]})]})]})}function H({icon:e,title:t,onClick:n,danger:r=!1}){return(0,a.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),n?.()},className:`rounded-lg p-2 transition ${r?"text-red-500 hover:bg-red-500/10":"text-text-muted hover:bg-background hover:text-primary"}`,title:t,"aria-label":t,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:e})})}function z({id:e,index:t,model:n,subtitle:l="",enabled:i,isFirst:d,isLast:c,onEdit:m,onMoveUp:u,onMoveDown:x,onRemove:b,onToggleEnabled:p}){let{attributes:h,listeners:g,setNodeRef:f,transform:y,isDragging:v}=(0,s.gl)({id:e}),j={transform:o.Ks.Transform.toString(y),opacity:v?.4:1,zIndex:v?999:void 0},[k,N]=(0,r.useState)(!1),[w,C]=(0,r.useState)(n);(0,r.useEffect)(()=>{C(n)},[n]);let _=()=>{let e=w.trim();e&&e!==n?m(e):C(n),N(!1)};return(0,a.jsxs)("div",{ref:f,style:j,className:`flex items-center gap-3 rounded-xl border p-3 transition ${i?"border-border bg-background":"border-red-200 bg-red-50/70 opacity-75 dark:border-red-500/30 dark:bg-red-500/10"}`,children:[(0,a.jsx)("button",{type:"button",className:"cursor-grab text-text-muted active:cursor-grabbing",...h,...g,title:"K\xe9o để sắp xếp lại",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"drag_indicator"})}),(0,a.jsx)("span",{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold ${i?"bg-primary/10 text-primary":"bg-red-100 text-red-600 dark:bg-red-500/20 dark:text-red-300"}`,children:t+1}),k?(0,a.jsx)("input",{autoFocus:!0,value:w,onChange:e=>C(e.target.value),onBlur:_,onKeyDown:e=>{"Enter"===e.key&&_(),"Escape"===e.key&&(C(n),N(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-background px-2 py-1 font-mono text-xs text-text-main outline-none"}):(0,a.jsxs)("button",{type:"button",onClick:()=>N(!0),className:"min-w-0 flex-1 text-left",title:"Bấm để sửa model",children:[(0,a.jsx)("span",{className:`block truncate font-mono text-xs ${i?"text-text-main":"text-text-muted line-through"}`,children:n}),l?(0,a.jsx)("span",{className:"mt-0.5 block truncate text-[11px] text-text-muted",children:l}):null]}),(0,a.jsx)("button",{type:"button",onClick:p,className:`rounded-lg p-1.5 transition ${i?"text-green-600 hover:bg-green-500/10":"text-red-500 hover:bg-red-500/10"}`,title:i?"Tắt model trong combo":"Bật model trong combo",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:i?"toggle_on":"toggle_off"})}),(0,a.jsx)("button",{type:"button",onClick:u,disabled:d,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển l\xean",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_upward"})}),(0,a.jsx)("button",{type:"button",onClick:x,disabled:c,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển xuống",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_downward"})}),(0,a.jsx)("button",{type:"button",onClick:b,className:"rounded-lg p-1.5 text-red-500 transition hover:bg-red-500/10",title:"X\xf3a",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]})}function K({value:e={},onChange:t,compact:n=!1}){let r=j(e),l=void 0!==r.temperature,s=void 0!==r.top_p,o=void 0!==r.max_tokens,i=void 0!==r.reasoning_budget,d=r.thinkingMode||"inherit",c=e=>{t?.(j({...r,...e}))},m=(e,n,a)=>{if(!n){let n={...r};delete n[e],t?.(j(n));return}c({[e]:a})};return(0,a.jsxs)("div",{className:n?"mt-4 rounded-xl border border-sky-500/15 bg-surface p-3":"rounded-xl border border-sky-500/15 bg-sky-500/5 p-4",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-sky-500",children:"tune"}),"Tham số request OpenAI-compatible"]}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:["Chỉ inject khi target route tới provider ",(0,a.jsx)("span",{className:"font-mono",children:"openai-compatible-*"}),". Bỏ chọn nghĩa l\xe0 giữ nguy\xean request client gửi l\xean."]})]}),!function(e={}){return Object.keys(j(e)).length>0}(r)?(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-background px-2 py-1 text-[11px] font-semibold text-text-muted",children:"Kh\xf4ng inject"}):(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-1 text-[11px] font-semibold text-primary",children:"Đang override"})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-5",children:[(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${l?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["Temperature",(0,a.jsx)("input",{type:"checkbox",checked:l,onChange:e=>m("temperature",e.target.checked,h.temperature),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"0",max:"2",step:"0.05",disabled:!l,value:l?r.temperature:h.temperature,onChange:e=>c({temperature:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"0 = ổn định, 2 = s\xe1ng tạo."})]}),(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${s?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["top_p",(0,a.jsx)("input",{type:"checkbox",checked:s,onChange:e=>m("top_p",e.target.checked,h.top_p),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"0",max:"1",step:"0.01",disabled:!s,value:s?r.top_p:h.top_p,onChange:e=>c({top_p:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"0.9–0.95 thường hợp coder/chat."})]}),(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${o?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["max_tokens",(0,a.jsx)("input",{type:"checkbox",checked:o,onChange:e=>m("max_tokens",e.target.checked,h.max_tokens),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"1",max:"262144",step:"1",disabled:!o,value:o?r.max_tokens:h.max_tokens,onChange:e=>c({max_tokens:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Giới hạn output cho request."})]}),(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${i?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["reasoning_budget",(0,a.jsx)("input",{type:"checkbox",checked:i,onChange:e=>m("reasoning_budget",e.target.checked,h.reasoning_budget),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"0",max:"262144",step:"1",disabled:!i,value:i?r.reasoning_budget:h.reasoning_budget,onChange:e=>c({reasoning_budget:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"0 thường d\xf9ng khi tắt thinking."})]}),(0,a.jsxs)("label",{className:"rounded-lg border border-border bg-background p-3",children:[(0,a.jsx)("span",{className:"mb-2 block text-xs font-medium text-text-main",children:"Thinking"}),(0,a.jsx)("select",{value:d,onChange:e=>c({thinkingMode:"inherit"===e.target.value?void 0:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary",children:g.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:g.find(e=>e.value===d)?.description||g[0].description})]})]})]})}function J({isOpen:e,combo:t,comboStrategy:n={},onClose:o,onSave:c,activeProviders:m,providersLoading:b=!1,kindFilter:p=null}){let[g,f]=(0,r.useState)(t?.name||""),[y,v]=(0,r.useState)([]),[w,C]=(0,r.useState)(!1),[_,T]=(0,r.useState)(!1),[S,$]=(0,r.useState)(""),[E,I]=(0,r.useState)({}),[B,F]=(0,r.useState)(""),[L,G]=(0,r.useState)(""),[H,X]=(0,r.useState)(()=>t?j(n?.requestOverrides||{}):j(h)),U=n||{},W=(0,l.FR)((0,l.MS)(l.AN,{activationConstraint:{distance:5}}),(0,l.MS)(l.uN,{coordinateGetter:s.JR}));(0,r.useEffect)(()=>{e&&(f(t?.name||""),v(function(e,t={}){let n=(e?.models||[]).map(e=>R(e,!0)).filter(e=>e.value),a=new Set(n.map(e=>e.value));return[...n,...N(t).filter(e=>!a.has(e)).map(e=>R(e,!1)).filter(e=>e.value)]}(t,U)),$(""),F(""),G(""),X(t?j(U.requestOverrides||{}):j(h)))},[e,t?.id,t?.name]),(0,r.useEffect)(()=>{e&&Q()},[e]);let Q=async()=>{try{let e=await fetch("/api/models/alias",{cache:"no-store"});if(!e.ok)return;let t=await e.json();I(t.aliases||{})}catch(e){console.error("Error fetching modal data:",e)}},V=y.map((e,t)=>({uid:`item-${t}-${e.value}`,row:e})),Z=y.map(e=>e.value),Y=y.filter(e=>e.enabled).length,ee=y.filter(e=>!e.enabled).length,et=(m||[]).filter(e=>e?.isActive!==!1),en=et.find(e=>e.id===B)||null,ea=en?D(en,E):[],er=ea[0]?.value||(en?A(en):""),el=e=>e.trim()?x.test(e)?($(""),!0):($("Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."),!1):($("Bắt buộc nhập t\xean"),!1),es=async()=>{if(!el(g))return;let{models:e,disabledModels:t}=function(e=[]){let t=[],n=new Set;for(let a of e){let e=k(a?.value||q(a?.target));!e||n.has(e)||(n.add(e),t.push({...a,value:e,enabled:a?.enabled!==!1,target:P(a?.target||a?.value)}))}return{models:t.filter(e=>e.enabled).map(e=>e.target).filter(Boolean),disabledModels:t.filter(e=>!e.enabled).map(e=>e.value)}}(y);T(!0),await c({name:g.trim(),models:e,disabledModels:t,requestOverrides:j(H)}),T(!1)};if(!e)return null;let eo=!!t;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/45 p-4 backdrop-blur-[1px]",children:(0,a.jsxs)("div",{className:"flex max-h-[88vh] w-full max-w-3xl flex-col overflow-hidden rounded-2xl border border-border bg-white shadow-2xl dark:bg-zinc-950",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between border-b border-border px-5 py-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:eo?"Chỉnh sửa combo":"Tạo combo"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Chọn model, tắt tạm thời khi cần v\xe0 sắp xếp thứ tự ưu ti\xean fallback đang bật."})]}),(0,a.jsx)("button",{type:"button",onClick:o,className:"rounded-lg p-1 text-text-muted transition hover:bg-surface hover:text-text-main",children:(0,a.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),(0,a.jsxs)("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto bg-white px-5 py-4 dark:bg-zinc-950",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-2 block text-sm font-semibold text-text-main",children:"T\xean"}),(0,a.jsx)("input",{value:g,onChange:e=>{let t=e.target.value;f(t),t?el(t):$("")},placeholder:"premium-coding",className:`w-full rounded-xl border bg-white px-4 py-2.5 text-text-main outline-none transition focus:border-primary dark:bg-zinc-900 ${S?"border-red-400":"border-border"}`}),(0,a.jsx)("span",{className:`mt-1 block text-xs ${S?"text-red-500":"text-text-muted"}`,children:S||"Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."})]}),(0,a.jsx)(K,{value:H,onChange:X,defaultEnabled:!eo}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Danh s\xe1ch model"}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:[Y," đang bật",ee>0?`, ${ee} đ\xe3 tắt`:"",". Model đ\xe3 tắt vẫn nằm trong combo nhưng kh\xf4ng được route."]})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>C(!0),className:"inline-flex items-center gap-1 rounded-lg border border-border px-3 py-1.5 text-xs font-medium text-primary hover:border-primary/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Th\xeam model"]})]}),(0,a.jsxs)("div",{className:"mb-4 rounded-xl border border-primary/15 bg-primary/5 p-3",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"account_tree"}),"Th\xeam target theo provider account"]}),(0,a.jsx)("p",{className:"mb-3 text-xs text-text-muted",children:"Cố định bước combo n\xe0y v\xe0o một provider account cụ thể. Danh s\xe1ch account chỉ được load khi mở modal để trang combo nhẹ hơn."}),(0,a.jsxs)("div",{className:"grid gap-2 md:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)_auto]",children:[(0,a.jsxs)("select",{value:B,onChange:e=>{let t=e.target.value,n=et.find(e=>e.id===t),a=n?D(n,E):[];F(t),G(a[0]?.value||A(n||{})||"")},className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 text-xs text-text-main outline-none focus:border-primary",children:[(0,a.jsx)("option",{value:"",children:b?"Đang tải provider account...":"Chọn provider account"}),et.map(e=>{let t=O(e),n=M(e),r=n&&n!==t?`${t} / ${n}`:t;return(0,a.jsx)("option",{value:e.id,children:r},e.id)})]}),(0,a.jsxs)("select",{value:L,onChange:e=>G(e.target.value),disabled:!B||0===ea.length,className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:cursor-not-allowed disabled:opacity-60",children:[(0,a.jsx)("option",{value:"",children:B?ea.length>0?"Chọn model":"Kh\xf4ng t\xecm thấy model của provider":"Chọn account trước"}),ea.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},`${e.value}-${e.label}`))]}),(0,a.jsxs)("button",{type:"button",onClick:()=>{if(!en)return;let e=function(e,t){let n=O(e),a=function(e={}){let t=k(e.provider),n=O(e);return(0,u.mq)(t)||(0,u.gb)(t)?n||t:t||n}(e),r=M(e),l=k(t||A(e));if(!n||!e?.id||!l)return null;let s=l.includes("/"),o=s?l:`${n}/${l}`,i=s&&l.startsWith(`${n}/`)?l.slice(n.length+1):l,d=r&&r!==a?`${a}/${r}/${i}`:`${a}/${i}`;return{model:o,connectionId:e.id,provider:a||n,accountName:r||void 0,label:d}}(en,L||er);if(!e)return void alert("H\xe3y chọn provider account v\xe0 model cho target cố định n\xe0y.");let t=R(e,!0);v(e=>{let n=e.findIndex(e=>e.value===t.value);if(-1!==n){let a=[...e];return a[n]={...a[n],...t,enabled:!0},a}return[...e,t]}),G("")},disabled:!B||!L,className:"inline-flex items-center justify-center gap-1 rounded-lg bg-primary px-3 py-2 text-xs font-semibold text-white disabled:opacity-50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add_link"}),"Th\xeam account"]})]})]}),0===y.length?(0,a.jsxs)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined",children:"layers"}),(0,a.jsx)("p",{className:"mt-2 text-sm",children:"Chưa th\xeam model n\xe0o"})]}):(0,a.jsx)(l.Mp,{sensors:W,collisionDetection:l.fp,modifiers:[i.FN,i.gj],onDragEnd:e=>{let{active:t,over:n}=e;if(n&&t.id!==n.id){let e=V.findIndex(e=>e.uid===t.id),a=V.findIndex(e=>e.uid===n.id);-1!==e&&-1!==a&&v(t=>(0,s.be)(t,e,a))}},children:(0,a.jsx)(s.gB,{items:V.map(e=>e.uid),strategy:s._G,children:(0,a.jsx)("div",{className:"space-y-3",children:V.map(({uid:e,row:t},n)=>(0,a.jsx)(z,{id:e,index:n,model:t.label||t.value,subtitle:t.subtitle,enabled:t.enabled,isFirst:0===n,isLast:n===y.length-1,onEdit:e=>{let t=e.trim();if(!t)return;let a=[...y],r=a[n];if(r?.target&&"object"==typeof r.target){let e=P({...r.target,model:t});a[n]=R(e,!1!==r.enabled)}else a[n]=R(t,r?.enabled!==!1);v(a)},onMoveUp:()=>{if(0===n)return;let e=[...y];[e[n-1],e[n]]=[e[n],e[n-1]],v(e)},onMoveDown:()=>{if(n===y.length-1)return;let e=[...y];[e[n],e[n+1]]=[e[n+1],e[n]],v(e)},onToggleEnabled:()=>{let e=[...y];e[n]={...e[n],enabled:!e[n].enabled},v(e)},onRemove:()=>v(y.filter((e,t)=>t!==n))},e))})})})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-3 border-t border-border bg-white px-5 py-4 dark:bg-zinc-950",children:[(0,a.jsx)("button",{type:"button",onClick:o,className:"rounded-xl border border-border px-4 py-2 text-sm font-medium text-text-main hover:bg-surface",children:"Hủy"}),(0,a.jsx)("button",{type:"button",onClick:es,disabled:_,className:"rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90 disabled:opacity-50",children:_?"Đang lưu...":eo?"Lưu":"Tạo"})]})]})}),(0,a.jsx)(d.rq,{isOpen:w,onClose:()=>C(!1),onSelect:e=>{let t=e.value;v(e=>{let n=e.findIndex(e=>e.value===t);if(-1!==n){let t=[...e];return t[n]={...t[n],enabled:!0},t}return[...e,R(t,!0)]})},onDeselect:e=>{v(t=>t.filter(t=>t.value!==e.value))},activeProviders:m,modelAliases:E,title:"Th\xeam model v\xe0o combo",kindFilter:p,addedModelValues:Z,closeOnSelect:!1})]})}}},e=>{e.O(0,[2574,3862,1051,7055,1321,5497,8441,3794,7358],()=>e(e.s=20061)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3649],{20061:(e,t,n)=>{Promise.resolve().then(n.bind(n,47295))},47295:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>F});var a=n(95155),r=n(12115),l=n(44923),s=n(87256),o=n(39768),i=n(82639),d=n(35497),c=n(11059),m=n(28777),u=n(52679);let x=/^[a-zA-Z0-9_.\-]+$/,b=[{value:"global",label:"To\xe0n cục / h\xe0nh vi hiện tại",description:"Giữ h\xe0nh vi hiện tại: mọi request d\xf9ng chung v\xf2ng xoay combo to\xe0n cục."},{value:"client_ip",label:"IP client",description:"Giữ c\xf9ng model khởi đầu cho c\xf9ng IP client cho đến khi hết TTL."},{value:"client_session",label:"IP client + phi\xean chat",description:"Ph\xf9 hợp nhất cho c\xf4ng cụ chat. Giữ c\xf9ng model cho c\xf9ng m\xe1y v\xe0 c\xf9ng phi\xean chat."}],p=[{value:"fallback",label:"Ưu ti\xean fallback",description:"Thử model trong combo theo đ\xfang thứ tự hiển thị, lỗi th\xec fallback."},{value:"round-robin",label:"Round Robin",description:"Lu\xe2n phi\xean model đang bật được thử đầu ti\xean. C\xe1c t\xf9y chọn giữ d\xednh b\xean dưới vẫn được \xe1p dụng."},{value:"least-latency",label:"Độ trễ thấp nhất",description:"Ưu ti\xean target c\xf3 điểm health/độ trễ tốt nhất. Hữu \xedch cho LAN Ollama."},{value:"p2c",label:"P2C",description:"Power of Two Choices: lấy mẫu hai target khỏe rồi chọn target \xedt bận hơn."}],h=Object.freeze({temperature:.3,top_p:.95,max_tokens:4096,reasoning_budget:0,thinkingMode:"off"}),g=[{value:"inherit",label:"Theo request gốc",description:"Kh\xf4ng inject tham số thinking."},{value:"off",label:"Tắt thinking",description:"Gửi chat_template_kwargs.enable_thinking = false."},{value:"on",label:"Bật thinking",description:"Gửi chat_template_kwargs.enable_thinking = true."}];function f(e,t){return Object.prototype.hasOwnProperty.call(e||{},t)}function y(e,{min:t,max:n,precision:a=3}={}){if(null==e||""===e)return;let r=Number(e);if(Number.isFinite(r))return Number(Math.min(n,Math.max(t,r)).toFixed(a))}function v(e,{min:t,max:n}={}){let a=y(e,{min:t,max:n,precision:0});return void 0===a?void 0:Math.trunc(a)}function j(e={}){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{},n={};if(f(t,"temperature")){let e=y(t.temperature,{min:0,max:2});void 0!==e&&(n.temperature=e)}if(f(t,"top_p")){let e=y(t.top_p,{min:0,max:1});void 0!==e&&(n.top_p=e)}let a=t.max_tokens??t.maxTokens??t.max_token;if(f(t,"max_tokens")||f(t,"maxTokens")||f(t,"max_token")){let e=v(a,{min:1,max:262144});void 0!==e&&(n.max_tokens=e)}let r=t.reasoning_budget??t.reasoningBudget??t["reasoning-budget"];if(f(t,"reasoning_budget")||f(t,"reasoningBudget")||f(t,"reasoning-budget")){let e=v(r,{min:0,max:262144});void 0!==e&&(n.reasoning_budget=e)}let l=function(e){if(!0===e)return"on";if(!1===e)return"off";let t=k(e).toLowerCase();return["on","true","1","enable","enabled"].includes(t)?"on":["off","false","0","disable","disabled"].includes(t)?"off":void 0}(t.thinkingMode??t.thinking);return l&&(n.thinkingMode=l),n}function k(e){return String(e||"").trim()}function N(e={}){return Array.isArray(e.disabledModels)?[...new Set(e.disabledModels.map(e=>k(e)).filter(Boolean))]:[]}function w(e={}){let t=e.fallbackStrategy||"fallback";return{...e,fallbackStrategy:t,stickyScope:e.stickyScope||"global",stickyTtlMinutes:Number(e.stickyTtlMinutes||120),stickyFallbackToClientIp:!1!==e.stickyFallbackToClientIp,lanHealthEnabled:!1!==e.lanHealthEnabled,healthCheckPath:e.healthCheckPath||"/api/tags",healthCheckIntervalMs:Number(e.healthCheckIntervalMs||15e3),requiredTags:Array.isArray(e.requiredTags)?e.requiredTags:[],modelTagRules:e.modelTagRules||e.modelTags||e.tagRules||{},disabledModels:N(e),requestOverrides:j(e.requestOverrides||{})}}function C(e={}){let t={...e};t.disabledModels=N(e),"fallback"===(t.fallbackStrategy||"fallback")&&delete t.fallbackStrategy,t.disabledModels.length||delete t.disabledModels,t.requiredTags?.length||delete t.requiredTags;let n=j(t.requestOverrides||{});return Object.keys(n).length?t.requestOverrides=n:delete t.requestOverrides,t.modelTagRules&&0!==Object.keys(t.modelTagRules).length||delete t.modelTagRules,"/api/tags"===t.healthCheckPath&&delete t.healthCheckPath,15e3===Number(t.healthCheckIntervalMs)&&delete t.healthCheckIntervalMs,!0===t.lanHealthEnabled&&delete t.lanHealthEnabled,Object.keys(t).length?t:null}function _(e=[]){return Array.isArray(e)?e.join(", "):String(e||"")}function T(e=""){return String(e||"").split(/[\n,;]+/).map(e=>e.trim()).filter(Boolean)}function S(e={}){return e&&"object"==typeof e?Object.entries(e).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(", "):String(t||"")}`).join("\n"):""}function $(e){return"string"==typeof e?e:e&&"object"==typeof e&&(e.value||e.model||e.id)||""}function M(e={}){let t=k(e.provider);return k(e.providerSpecificData?.prefix)||k(e.prefix)||k((0,u.wG)(t))||t}function O(e={}){return k(e.email)||k(e.accountName)||k(e.displayName)||k(e.name)||k(e.providerSpecificData?.nodeName)||k(e.id)}function E(e){return e&&"object"==typeof e?k(e.connectionId||e.connection_id):""}function q(e){let t=$(e),n=E(e);return t?n?`${t}@@${n}`:t:""}function I(e){return"string"==typeof e?e:e&&"object"==typeof e?k(e.label)||k(e.displayName)||k(e.name)||$(e):""}function P(e){if(!e||"object"!=typeof e)return $(e);let t=$(e);return t?Object.fromEntries(Object.entries({model:t,connectionId:E(e)||void 0,label:I(e)||void 0,provider:k(e.provider)||void 0,accountName:k(e.accountName||e.account_name)||void 0,weight:Number(e.weight||0)>0?Number(e.weight):void 0}).filter(([,e])=>void 0!==e&&""!==e)):""}function R(e,t=!0){let n=P(e),a=q(n);return{value:a,enabled:t,target:n,label:I(n)||a,subtitle:function(e){if(!e||"object"!=typeof e)return"";let t=E(e),n=$(e);return t?`T\xe0i khoản cố định • ${t}${n?` • ${n}`:""}`:""}(n)}}function A(e={}){return k(e.defaultModel)||k(e.providerSpecificData?.defaultModel)||k(e.model)||""}function B(e,t,n,a=""){let r=k(n);!r||t.has(r)||(t.add(r),e.push({value:r,label:k(a)||r}))}function D(e={},t={}){let n=[],a=new Set,r=k(e.provider),l=[...new Set([M(e),k((0,u.wG)(r)),r].filter(Boolean))];for(let e of(0,m.KC)(r)||[])e?.type&&"llm"!==e.type||B(n,a,e.id,e.name||e.id);for(let[e,r]of Object.entries(t||{})){let t=k(r),s=l.find(e=>e&&t.startsWith(`${e}/`));if(!s)continue;let o=t.slice(s.length+1);B(n,a,o,e||o)}return B(n,a,A(e),"Model mặc định"),n}function L(e={},{disabledModels:t=[],requestOverrides:n}={}){let a={...e},r=[...new Set((t||[]).map(e=>k(e)).filter(Boolean))];if(r.length>0?a.disabledModels=r:delete a.disabledModels,void 0!==n){let e=j(n||{});Object.keys(e).length?a.requestOverrides=e:delete a.requestOverrides}return C(a)}function F(){let[e,t]=(0,r.useState)([]),[n,l]=(0,r.useState)(!0),[s,o]=(0,r.useState)(!1),[i,m]=(0,r.useState)(null),[u,x]=(0,r.useState)([]),[b,p]=(0,r.useState)(!1),[h,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)({}),[v,j]=(0,r.useState)(null),{copied:k,copy:N}=(0,c.C)();(0,r.useEffect)(()=>{_()},[]);let _=async()=>{try{let e=await fetch("/api/dashboard/combos",{cache:"no-store"}),n=await e.json();e.ok&&(t(n.combos||[]),y(n.comboStrategies||{}))}catch(e){console.log("Error fetching combo data:",e)}finally{l(!1)}},T=async()=>{if(!b&&!h){g(!0);try{let e=await fetch("/api/providers",{cache:"no-store"}),t=await e.json();e.ok&&(x(t.connections||[]),p(!0))}catch(e){console.log("Error loading provider accounts:",e)}finally{g(!1)}}},S=async()=>{o(!0),T()},$=async e=>{m(e),T()},M=async e=>{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:e})}),y(e)},O=async e=>{let{disabledModels:t=[],requestOverrides:n,...a}=e;try{let e=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(e.ok){let e=L({},{disabledModels:t,requestOverrides:n});e&&await M({...f,[a.name]:e}),await _(),o(!1)}else{let t=await e.json();alert(t.error||"Tạo combo thất bại")}}catch(e){console.log("Error creating combo:",e)}},E=async(e,t)=>{let{disabledModels:n=[],requestOverrides:a,...r}=t,l=i?.name;try{let t=await fetch(`/api/combos/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(t.ok){let e={...f};l&&l!==r.name&&e[l]&&(e[r.name]=e[l],delete e[l]);let t=L(e[r.name]||{},{disabledModels:n,requestOverrides:a});t?e[r.name]=t:delete e[r.name],await M(e),await _(),m(null)}else{let e=await t.json();alert(e.error||"Cập nhật combo thất bại")}}catch(e){console.log("Error updating combo:",e)}},q=async n=>{let a=e.find(e=>e.id===n);j({title:"X\xf3a combo",message:"Bạn c\xf3 chắc muốn x\xf3a combo n\xe0y?",onConfirm:async()=>{j(null);try{if((await fetch(`/api/combos/${n}`,{method:"DELETE"})).ok){if(a?.name&&f[a.name]){let e={...f};delete e[a.name],await M(e)}t(e=>e.filter(e=>e.id!==n))}}catch(e){console.log("Error deleting combo:",e)}}})},I=async(e,t)=>{try{let n={...f};if(t)n[e]=w(n[e]);else{let t=function(e={}){return C({...e,fallbackStrategy:"fallback"})}(n[e]||{});t?n[e]=t:delete n[e]}await M(n)}catch(e){console.log("Error updating combo strategy:",e)}},P=async(e,t)=>{try{let n={...f},a=C({...w(n[e]),...t});a?n[e]=a:delete n[e],await M(n)}catch(e){console.log("Error updating combo routing settings:",e)}};return n?(0,a.jsx)("div",{className:"grid gap-4",children:[1,2,3].map(e=>(0,a.jsx)("div",{className:"h-36 animate-pulse rounded-2xl border border-border bg-surface"},e))}):(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Combo model"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model với fallback, round-robin, độ trễ thấp nhất, P2C v\xe0 routing theo trạng th\xe1i health của LAN Ollama."})]}),(0,a.jsxs)("button",{type:"button",onClick:S,className:"inline-flex items-center justify-center gap-2 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Tạo combo"]})]}),0===e.length?(0,a.jsxs)("div",{className:"rounded-2xl border border-dashed border-border bg-surface p-12 text-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted",children:"layers"}),(0,a.jsx)("h2",{className:"mt-3 text-lg font-semibold text-text-main",children:"Chưa c\xf3 combo n\xe0o"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model c\xf3 hỗ trợ fallback."}),(0,a.jsx)("button",{type:"button",onClick:S,className:"mt-4 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:"Tạo combo"})]}):(0,a.jsx)("div",{className:"grid gap-4",children:e.map(e=>(0,a.jsx)(G,{combo:e,copied:k,onCopy:N,onEdit:()=>$(e),onDelete:()=>q(e.id),comboStrategy:f[e.name]||{},onToggleRoundRobin:t=>I(e.name,t),onUpdateComboStrategy:t=>P(e.name,t)},e.id))}),(0,a.jsx)(J,{isOpen:s,comboStrategy:{},onClose:()=>o(!1),onSave:O,activeProviders:u,providersLoading:h}),(0,a.jsx)(J,{isOpen:!!i,combo:i,comboStrategy:f[i?.name]||{},onClose:()=>m(null),onSave:e=>E(i.id,e),activeProviders:u,providersLoading:h}),(0,a.jsx)(d.uo,{isOpen:!!v,onClose:()=>j(null),onConfirm:v?.onConfirm,title:v?.title||"X\xe1c nhận",message:v?.message,variant:"danger"})]})}function G({combo:e,copied:t,onCopy:n,onEdit:l,onDelete:s,comboStrategy:o={},onToggleRoundRobin:i,onUpdateComboStrategy:d}){let c=w(o||{}),m=c.fallbackStrategy||"fallback",u=p.find(e=>e.value===m)||p[0],x=c.stickyScope||"global",h=b.find(e=>e.value===x)||b[0],g=N(o),[f,y]=(0,r.useState)(_(c.requiredTags)),[v,k]=(0,r.useState)(S(c.modelTagRules));return(0,r.useEffect)(()=>{y(_(c.requiredTags)),k(S(c.modelTagRules))},[e.name,JSON.stringify(c.requiredTags||[]),JSON.stringify(c.modelTagRules||{})]),(0,a.jsxs)("div",{className:"rounded-2xl border border-border bg-surface p-5",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"layers"}),(0,a.jsx)("h3",{className:"truncate text-lg font-semibold text-text-main",children:e.name})]}),(0,a.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:[(e.models||[]).length," model đang bật",g.length>0?` • ${g.length} đ\xe3 tắt`:""]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(H,{icon:t===`combo-${e.id}`?"check":"content_copy",title:"Copy t\xean combo",onClick:()=>n(e.name,`combo-${e.id}`)}),(0,a.jsx)(H,{icon:"edit",title:"Chỉnh sửa",onClick:l}),(0,a.jsx)(H,{icon:"delete",title:"X\xf3a",onClick:s,danger:!0})]})]}),(0,a.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[0===(e.models||[]).length?(0,a.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:"Chưa c\xf3 model đang bật"}):(e.models||[]).slice(0,5).map((e,t)=>(0,a.jsx)("span",{className:"rounded-lg bg-background px-2 py-1 font-mono text-xs text-text-main",children:I(e)},`${q(e)}-${t}`)),(e.models||[]).length>5&&(0,a.jsxs)("span",{className:"rounded-lg bg-background px-2 py-1 text-xs text-text-muted",children:["+",e.models.length-5," model nữa"]}),g.length>0&&(0,a.jsxs)("span",{className:"rounded-lg bg-red-500/10 px-2 py-1 text-xs text-red-500",children:[g.length," đ\xe3 tắt"]}),(function(e={}){let t=j(e),n=[];return void 0!==t.temperature&&n.push(`temp ${t.temperature}`),void 0!==t.top_p&&n.push(`top_p ${t.top_p}`),void 0!==t.max_tokens&&n.push(`max ${t.max_tokens}`),void 0!==t.reasoning_budget&&n.push(`reasoning ${t.reasoning_budget}`),"off"===t.thinkingMode&&n.push("thinking off"),"on"===t.thinkingMode&&n.push("thinking on"),n})(c.requestOverrides).map(e=>(0,a.jsx)("span",{className:"rounded-lg bg-primary/10 px-2 py-1 text-xs font-medium text-primary",children:e},e))]}),(0,a.jsxs)("div",{className:"mt-5 rounded-xl border border-border bg-background p-4",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"font-semibold text-text-main",children:"Chiến lược routing"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:u.description})]}),(0,a.jsx)("select",{value:m,onChange:e=>d({fallbackStrategy:e.target.value}),className:"rounded-lg border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:p.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))})]}),(0,a.jsx)(K,{value:c.requestOverrides||{},onChange:e=>d({requestOverrides:e}),compact:!0}),("least-latency"===m||"p2c"===m)&&(0,a.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 text-sm text-text-muted",children:[(0,a.jsx)("input",{type:"checkbox",checked:!1!==c.lanHealthEnabled,onChange:e=>d({lanHealthEnabled:e.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),(0,a.jsxs)("span",{children:[(0,a.jsx)("span",{className:"font-medium text-text-main",children:"Routing theo trạng th\xe1i health LAN"}),(0,a.jsx)("span",{className:"mt-1 block text-xs",children:"D\xf9ng dữ liệu health v\xe0 circuit breaker khi xếp hạng target trong combo."})]})]}),(0,a.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Đường dẫn health"}),(0,a.jsx)("input",{value:c.healthCheckPath||"/api/tags",onChange:e=>d({healthCheckPath:e.target.value||"/api/tags"}),placeholder:"/api/tags",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chu kỳ kiểm tra (ms)"}),(0,a.jsx)("input",{type:"number",min:"1000",value:c.healthCheckIntervalMs||15e3,onChange:e=>d({healthCheckIntervalMs:Number(e.target.value)||15e3}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,a.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Tag endpoint bắt buộc"}),(0,a.jsx)("input",{value:f,onChange:e=>y(e.target.value),onBlur:()=>d({requiredTags:T(f)}),onKeyDown:e=>"Enter"===e.key&&e.currentTarget.blur(),placeholder:"gpu, vram:8gb",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Mọi endpoint được route đều phải c\xf3 c\xe1c tag n\xe0y."})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Quy tắc tag theo model"}),(0,a.jsx)("textarea",{value:v,onChange:e=>k(e.target.value),onBlur:()=>d({modelTagRules:function(e=""){let t={};for(let n of String(e||"").split(/\n+/)){let e=n.trim();if(!e)continue;let a=e.indexOf(":");if(-1===a)continue;let r=e.slice(0,a).trim(),l=T(e.slice(a+1));r&&l.length&&(t[r]=l)}return t}(v)}),placeholder:"qwen3:32b: gpu, vram:16gb\nqwen3:8b: model_support:qwen3:8b",rows:3,className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]})]})]}),"round-robin"===m&&(0,a.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-surface p-3",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"sticky_note_2"}),"Round Robin giữ d\xednh"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-xs text-text-muted",children:[(0,a.jsx)("input",{type:"checkbox",checked:"round-robin"===m,onChange:e=>i(e.target.checked),className:"h-3.5 w-3.5 accent-primary"}),"Bật"]})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Chế độ giữ d\xednh"}),(0,a.jsx)("select",{value:x,onChange:e=>d({stickyScope:e.target.value}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary",children:b.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:h.description})]}),(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"TTL giữ d\xednh (ph\xfat)"}),(0,a.jsx)("input",{type:"number",min:"1",value:c.stickyTtlMinutes||120,onChange:e=>d({stickyTtlMinutes:Number(e.target.value)||120}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,a.jsxs)("label",{className:"mt-3 flex items-start gap-2 text-xs text-text-muted",children:[(0,a.jsx)("input",{type:"checkbox",checked:!1!==c.stickyFallbackToClientIp,onChange:e=>d({stickyFallbackToClientIp:e.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),"Nếu thiếu chat session id, fallback về IP client thay v\xec xoay to\xe0n cục."]})]})]})]})}function H({icon:e,title:t,onClick:n,danger:r=!1}){return(0,a.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),n?.()},className:`rounded-lg p-2 transition ${r?"text-red-500 hover:bg-red-500/10":"text-text-muted hover:bg-background hover:text-primary"}`,title:t,"aria-label":t,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:e})})}function z({id:e,index:t,model:n,subtitle:l="",enabled:i,isFirst:d,isLast:c,onEdit:m,onMoveUp:u,onMoveDown:x,onRemove:b,onToggleEnabled:p}){let{attributes:h,listeners:g,setNodeRef:f,transform:y,isDragging:v}=(0,s.gl)({id:e}),j={transform:o.Ks.Transform.toString(y),opacity:v?.4:1,zIndex:v?999:void 0},[k,N]=(0,r.useState)(!1),[w,C]=(0,r.useState)(n);(0,r.useEffect)(()=>{C(n)},[n]);let _=()=>{let e=w.trim();e&&e!==n?m(e):C(n),N(!1)};return(0,a.jsxs)("div",{ref:f,style:j,className:`flex items-center gap-3 rounded-xl border p-3 transition ${i?"border-border bg-background":"border-red-200 bg-red-50/70 opacity-75 dark:border-red-500/30 dark:bg-red-500/10"}`,children:[(0,a.jsx)("button",{type:"button",className:"cursor-grab text-text-muted active:cursor-grabbing",...h,...g,title:"K\xe9o để sắp xếp lại",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"drag_indicator"})}),(0,a.jsx)("span",{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold ${i?"bg-primary/10 text-primary":"bg-red-100 text-red-600 dark:bg-red-500/20 dark:text-red-300"}`,children:t+1}),k?(0,a.jsx)("input",{autoFocus:!0,value:w,onChange:e=>C(e.target.value),onBlur:_,onKeyDown:e=>{"Enter"===e.key&&_(),"Escape"===e.key&&(C(n),N(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-background px-2 py-1 font-mono text-xs text-text-main outline-none"}):(0,a.jsxs)("button",{type:"button",onClick:()=>N(!0),className:"min-w-0 flex-1 text-left",title:"Bấm để sửa model",children:[(0,a.jsx)("span",{className:`block truncate font-mono text-xs ${i?"text-text-main":"text-text-muted line-through"}`,children:n}),l?(0,a.jsx)("span",{className:"mt-0.5 block truncate text-[11px] text-text-muted",children:l}):null]}),(0,a.jsx)("button",{type:"button",onClick:p,className:`rounded-lg p-1.5 transition ${i?"text-green-600 hover:bg-green-500/10":"text-red-500 hover:bg-red-500/10"}`,title:i?"Tắt model trong combo":"Bật model trong combo",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:i?"toggle_on":"toggle_off"})}),(0,a.jsx)("button",{type:"button",onClick:u,disabled:d,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển l\xean",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_upward"})}),(0,a.jsx)("button",{type:"button",onClick:x,disabled:c,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển xuống",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_downward"})}),(0,a.jsx)("button",{type:"button",onClick:b,className:"rounded-lg p-1.5 text-red-500 transition hover:bg-red-500/10",title:"X\xf3a",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]})}function K({value:e={},onChange:t,compact:n=!1}){let r=j(e),l=void 0!==r.temperature,s=void 0!==r.top_p,o=void 0!==r.max_tokens,i=void 0!==r.reasoning_budget,d=r.thinkingMode||"inherit",c=e=>{t?.(j({...r,...e}))},m=(e,n,a)=>{if(!n){let n={...r};delete n[e],t?.(j(n));return}c({[e]:a})};return(0,a.jsxs)("div",{className:n?"mt-4 rounded-xl border border-sky-500/15 bg-surface p-3":"rounded-xl border border-sky-500/15 bg-sky-500/5 p-4",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-sky-500",children:"tune"}),"Tham số request OpenAI-compatible"]}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:["Chỉ inject khi target route tới provider ",(0,a.jsx)("span",{className:"font-mono",children:"openai-compatible-*"}),". Server Type của custom provider quyết định mapping: llama.cpp d\xf9ng ",(0,a.jsx)("span",{className:"font-mono",children:"reasoning_budget"}),", vLLM d\xf9ng ",(0,a.jsx)("span",{className:"font-mono",children:"thinking_token_budget"}),", generic kh\xf4ng nhận thinking/budget."]})]}),!function(e={}){return Object.keys(j(e)).length>0}(r)?(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-background px-2 py-1 text-[11px] font-semibold text-text-muted",children:"Kh\xf4ng inject"}):(0,a.jsx)("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-1 text-[11px] font-semibold text-primary",children:"Đang override"})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-2 xl:grid-cols-5",children:[(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${l?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["Temperature",(0,a.jsx)("input",{type:"checkbox",checked:l,onChange:e=>m("temperature",e.target.checked,h.temperature),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"0",max:"2",step:"0.05",disabled:!l,value:l?r.temperature:h.temperature,onChange:e=>c({temperature:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"0 = ổn định, 2 = s\xe1ng tạo."})]}),(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${s?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["top_p",(0,a.jsx)("input",{type:"checkbox",checked:s,onChange:e=>m("top_p",e.target.checked,h.top_p),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"0",max:"1",step:"0.01",disabled:!s,value:s?r.top_p:h.top_p,onChange:e=>c({top_p:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"0.9–0.95 thường hợp coder/chat."})]}),(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${o?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["max_tokens",(0,a.jsx)("input",{type:"checkbox",checked:o,onChange:e=>m("max_tokens",e.target.checked,h.max_tokens),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"1",max:"262144",step:"1",disabled:!o,value:o?r.max_tokens:h.max_tokens,onChange:e=>c({max_tokens:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Giới hạn output cho request."})]}),(0,a.jsxs)("label",{className:`rounded-lg border p-3 transition ${i?"border-primary/30 bg-background":"border-border bg-background/60"}`,children:[(0,a.jsxs)("span",{className:"mb-2 flex items-center justify-between gap-2 text-xs font-medium text-text-main",children:["reasoning_budget",(0,a.jsx)("input",{type:"checkbox",checked:i,onChange:e=>m("reasoning_budget",e.target.checked,h.reasoning_budget),className:"h-3.5 w-3.5 accent-primary"})]}),(0,a.jsx)("input",{type:"number",min:"0",max:"262144",step:"1",disabled:!i,value:i?r.reasoning_budget:h.reasoning_budget,onChange:e=>c({reasoning_budget:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary disabled:opacity-50"}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Gi\xe1 trị trừu tượng; runtime sẽ map đ\xfang field theo Server Type."})]}),(0,a.jsxs)("label",{className:"rounded-lg border border-border bg-background p-3",children:[(0,a.jsx)("span",{className:"mb-2 block text-xs font-medium text-text-main",children:"Thinking"}),(0,a.jsx)("select",{value:d,onChange:e=>c({thinkingMode:"inherit"===e.target.value?void 0:e.target.value}),className:"w-full rounded-lg border border-border bg-surface px-2 py-1.5 text-sm text-text-main outline-none focus:border-primary",children:g.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,a.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:g.find(e=>e.value===d)?.description||g[0].description})]})]})]})}function J({isOpen:e,combo:t,comboStrategy:n={},onClose:o,onSave:c,activeProviders:m,providersLoading:b=!1,kindFilter:p=null}){let[g,f]=(0,r.useState)(t?.name||""),[y,v]=(0,r.useState)([]),[w,C]=(0,r.useState)(!1),[_,T]=(0,r.useState)(!1),[S,$]=(0,r.useState)(""),[E,I]=(0,r.useState)({}),[B,L]=(0,r.useState)(""),[F,G]=(0,r.useState)(""),[H,X]=(0,r.useState)(()=>t?j(n?.requestOverrides||{}):j(h)),U=n||{},W=(0,l.FR)((0,l.MS)(l.AN,{activationConstraint:{distance:5}}),(0,l.MS)(l.uN,{coordinateGetter:s.JR}));(0,r.useEffect)(()=>{e&&(f(t?.name||""),v(function(e,t={}){let n=(e?.models||[]).map(e=>R(e,!0)).filter(e=>e.value),a=new Set(n.map(e=>e.value));return[...n,...N(t).filter(e=>!a.has(e)).map(e=>R(e,!1)).filter(e=>e.value)]}(t,U)),$(""),L(""),G(""),X(t?j(U.requestOverrides||{}):j(h)))},[e,t?.id,t?.name]),(0,r.useEffect)(()=>{e&&Q()},[e]);let Q=async()=>{try{let e=await fetch("/api/models/alias",{cache:"no-store"});if(!e.ok)return;let t=await e.json();I(t.aliases||{})}catch(e){console.error("Error fetching modal data:",e)}},V=y.map((e,t)=>({uid:`item-${t}-${e.value}`,row:e})),Z=y.map(e=>e.value),Y=y.filter(e=>e.enabled).length,ee=y.filter(e=>!e.enabled).length,et=(m||[]).filter(e=>e?.isActive!==!1),en=et.find(e=>e.id===B)||null,ea=en?D(en,E):[],er=ea[0]?.value||(en?A(en):""),el=e=>e.trim()?x.test(e)?($(""),!0):($("Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."),!1):($("Bắt buộc nhập t\xean"),!1),es=async()=>{if(!el(g))return;let{models:e,disabledModels:t}=function(e=[]){let t=[],n=new Set;for(let a of e){let e=k(a?.value||q(a?.target));!e||n.has(e)||(n.add(e),t.push({...a,value:e,enabled:a?.enabled!==!1,target:P(a?.target||a?.value)}))}return{models:t.filter(e=>e.enabled).map(e=>e.target).filter(Boolean),disabledModels:t.filter(e=>!e.enabled).map(e=>e.value)}}(y);T(!0),await c({name:g.trim(),models:e,disabledModels:t,requestOverrides:j(H)}),T(!1)};if(!e)return null;let eo=!!t;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/45 p-4 backdrop-blur-[1px]",children:(0,a.jsxs)("div",{className:"flex max-h-[88vh] w-full max-w-3xl flex-col overflow-hidden rounded-2xl border border-border bg-white shadow-2xl dark:bg-zinc-950",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between border-b border-border px-5 py-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:eo?"Chỉnh sửa combo":"Tạo combo"}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Chọn model, tắt tạm thời khi cần v\xe0 sắp xếp thứ tự ưu ti\xean fallback đang bật."})]}),(0,a.jsx)("button",{type:"button",onClick:o,className:"rounded-lg p-1 text-text-muted transition hover:bg-surface hover:text-text-main",children:(0,a.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),(0,a.jsxs)("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto bg-white px-5 py-4 dark:bg-zinc-950",children:[(0,a.jsxs)("label",{className:"block",children:[(0,a.jsx)("span",{className:"mb-2 block text-sm font-semibold text-text-main",children:"T\xean"}),(0,a.jsx)("input",{value:g,onChange:e=>{let t=e.target.value;f(t),t?el(t):$("")},placeholder:"premium-coding",className:`w-full rounded-xl border bg-white px-4 py-2.5 text-text-main outline-none transition focus:border-primary dark:bg-zinc-900 ${S?"border-red-400":"border-border"}`}),(0,a.jsx)("span",{className:`mt-1 block text-xs ${S?"text-red-500":"text-text-muted"}`,children:S||"Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."})]}),(0,a.jsx)(K,{value:H,onChange:X,defaultEnabled:!eo}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Danh s\xe1ch model"}),(0,a.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:[Y," đang bật",ee>0?`, ${ee} đ\xe3 tắt`:"",". Model đ\xe3 tắt vẫn nằm trong combo nhưng kh\xf4ng được route."]})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>C(!0),className:"inline-flex items-center gap-1 rounded-lg border border-border px-3 py-1.5 text-xs font-medium text-primary hover:border-primary/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Th\xeam model"]})]}),(0,a.jsxs)("div",{className:"mb-4 rounded-xl border border-primary/15 bg-primary/5 p-3",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"account_tree"}),"Th\xeam target theo provider account"]}),(0,a.jsx)("p",{className:"mb-3 text-xs text-text-muted",children:"Cố định bước combo n\xe0y v\xe0o một provider account cụ thể. Danh s\xe1ch account chỉ được load khi mở modal để trang combo nhẹ hơn."}),(0,a.jsxs)("div",{className:"grid gap-2 md:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)_auto]",children:[(0,a.jsxs)("select",{value:B,onChange:e=>{let t=e.target.value,n=et.find(e=>e.id===t),a=n?D(n,E):[];L(t),G(a[0]?.value||A(n||{})||"")},className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 text-xs text-text-main outline-none focus:border-primary",children:[(0,a.jsx)("option",{value:"",children:b?"Đang tải provider account...":"Chọn provider account"}),et.map(e=>{let t=M(e),n=O(e),r=n&&n!==t?`${t} / ${n}`:t;return(0,a.jsx)("option",{value:e.id,children:r},e.id)})]}),(0,a.jsxs)("select",{value:F,onChange:e=>G(e.target.value),disabled:!B||0===ea.length,className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:cursor-not-allowed disabled:opacity-60",children:[(0,a.jsx)("option",{value:"",children:B?ea.length>0?"Chọn model":"Kh\xf4ng t\xecm thấy model của provider":"Chọn account trước"}),ea.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},`${e.value}-${e.label}`))]}),(0,a.jsxs)("button",{type:"button",onClick:()=>{if(!en)return;let e=function(e,t){let n=M(e),a=function(e={}){let t=k(e.provider),n=M(e);return(0,u.mq)(t)||(0,u.gb)(t)?n||t:t||n}(e),r=O(e),l=k(t||A(e));if(!n||!e?.id||!l)return null;let s=l.includes("/"),o=s?l:`${n}/${l}`,i=s&&l.startsWith(`${n}/`)?l.slice(n.length+1):l,d=r&&r!==a?`${a}/${r}/${i}`:`${a}/${i}`;return{model:o,connectionId:e.id,provider:a||n,accountName:r||void 0,label:d}}(en,F||er);if(!e)return void alert("H\xe3y chọn provider account v\xe0 model cho target cố định n\xe0y.");let t=R(e,!0);v(e=>{let n=e.findIndex(e=>e.value===t.value);if(-1!==n){let a=[...e];return a[n]={...a[n],...t,enabled:!0},a}return[...e,t]}),G("")},disabled:!B||!F,className:"inline-flex items-center justify-center gap-1 rounded-lg bg-primary px-3 py-2 text-xs font-semibold text-white disabled:opacity-50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add_link"}),"Th\xeam account"]})]})]}),0===y.length?(0,a.jsxs)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined",children:"layers"}),(0,a.jsx)("p",{className:"mt-2 text-sm",children:"Chưa th\xeam model n\xe0o"})]}):(0,a.jsx)(l.Mp,{sensors:W,collisionDetection:l.fp,modifiers:[i.FN,i.gj],onDragEnd:e=>{let{active:t,over:n}=e;if(n&&t.id!==n.id){let e=V.findIndex(e=>e.uid===t.id),a=V.findIndex(e=>e.uid===n.id);-1!==e&&-1!==a&&v(t=>(0,s.be)(t,e,a))}},children:(0,a.jsx)(s.gB,{items:V.map(e=>e.uid),strategy:s._G,children:(0,a.jsx)("div",{className:"space-y-3",children:V.map(({uid:e,row:t},n)=>(0,a.jsx)(z,{id:e,index:n,model:t.label||t.value,subtitle:t.subtitle,enabled:t.enabled,isFirst:0===n,isLast:n===y.length-1,onEdit:e=>{let t=e.trim();if(!t)return;let a=[...y],r=a[n];if(r?.target&&"object"==typeof r.target){let e=P({...r.target,model:t});a[n]=R(e,!1!==r.enabled)}else a[n]=R(t,r?.enabled!==!1);v(a)},onMoveUp:()=>{if(0===n)return;let e=[...y];[e[n-1],e[n]]=[e[n],e[n-1]],v(e)},onMoveDown:()=>{if(n===y.length-1)return;let e=[...y];[e[n],e[n+1]]=[e[n+1],e[n]],v(e)},onToggleEnabled:()=>{let e=[...y];e[n]={...e[n],enabled:!e[n].enabled},v(e)},onRemove:()=>v(y.filter((e,t)=>t!==n))},e))})})})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-3 border-t border-border bg-white px-5 py-4 dark:bg-zinc-950",children:[(0,a.jsx)("button",{type:"button",onClick:o,className:"rounded-xl border border-border px-4 py-2 text-sm font-medium text-text-main hover:bg-surface",children:"Hủy"}),(0,a.jsx)("button",{type:"button",onClick:es,disabled:_,className:"rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90 disabled:opacity-50",children:_?"Đang lưu...":eo?"Lưu":"Tạo"})]})]})}),(0,a.jsx)(d.rq,{isOpen:w,onClose:()=>C(!1),onSelect:e=>{let t=e.value;v(e=>{let n=e.findIndex(e=>e.value===t);if(-1!==n){let t=[...e];return t[n]={...t[n],enabled:!0},t}return[...e,R(t,!0)]})},onDeselect:e=>{v(t=>t.filter(t=>t.value!==e.value))},activeProviders:m,modelAliases:E,title:"Th\xeam model v\xe0o combo",kindFilter:p,addedModelValues:Z,closeOnSelect:!1})]})}}},e=>{e.O(0,[2574,3862,1051,7055,1321,5497,8441,3794,7358],()=>e(e.s=20061)),_N_E=e.O()}]);
|