@jheavenknows/bluerouter 5.2.25 → 5.2.30
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 +19 -18
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/routes-manifest.json +6 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/cluster/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/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 +2 -2
- 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 +2 -2
- 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/local-ai-report/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/personalcloudprovider/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- 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/resource-monitor/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
- 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 +2 -2
- 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 +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- 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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +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/branding/[asset]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/upload/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
- 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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/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/cli-tools/qwen-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cluster/config/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +2 -2
- 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/ai-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +1 -1
- 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/local-ai-report/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/dashboard/token-saver/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/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 +2 -2
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/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 +2 -2
- 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/auto-import/route.js +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-authorize/route.js +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/personal-cloud-providers/[id]/api-key-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js +6 -0
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/pricing/catalog/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/recalculate/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/provider-nodes/validate/route.js +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/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/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 +2 -2
- 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/resource-monitor/[id]/route.js +2 -2
- package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js +2 -2
- package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/route.js +3 -3
- package/app/.next-cli-build/server/app/api/resource-monitor/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/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js +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 +2 -2
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/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/info/route.js +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/restart/route.js +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 +2 -2
- 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 +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +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 +7 -7
- 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 +7 -7
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +2 -2
- 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 +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
- 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 +7 -7
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
- 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 +7 -7
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
- 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 +9 -9
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.meta +6 -5
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +26 -24
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/{dashboard → !KGRhc2hib2FyZCk/dashboard}/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/{dashboard → !KGRhc2hib2FyZCk/dashboard}/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/{dashboard → !KGRhc2hib2FyZCk/dashboard}/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/{dashboard.segment.rsc → !KGRhc2hib2FyZCk/dashboard.segment.rsc} +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +26 -24
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
- 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 +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +6 -6
- 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 +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +2 -2
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +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 +2 -2
- 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 +7 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
- 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 +6 -6
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next-cli-build/server/app/page.js +2 -2
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +19 -18
- package/app/.next-cli-build/server/chunks/1340.js +7 -7
- package/app/.next-cli-build/server/chunks/3110.js +1 -1
- package/app/.next-cli-build/server/chunks/3433.js +3 -3
- package/app/.next-cli-build/server/chunks/402.js +1 -1
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/4790.js +2 -2
- package/app/.next-cli-build/server/chunks/541.js +3 -3
- package/app/.next-cli-build/server/chunks/5810.js +8 -8
- package/app/.next-cli-build/server/chunks/6328.js +1 -1
- package/app/.next-cli-build/server/chunks/6759.js +1 -1
- package/app/.next-cli-build/server/chunks/6811.js +1 -1
- package/app/.next-cli-build/server/chunks/689.js +1 -1
- package/app/.next-cli-build/server/chunks/6956.js +1 -1
- package/app/.next-cli-build/server/chunks/7341.js +1 -1
- package/app/.next-cli-build/server/chunks/8352.js +1 -1
- package/app/.next-cli-build/server/chunks/8491.js +2 -2
- 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/static/Mz3kUglmPQGIt583Sd6NW/_buildManifest.js +1 -0
- package/app/.next-cli-build/static/chunks/{5263-b285738dbf895e8d.js → 5263-0de8f5d0c9d73bae.js} +1 -1
- package/app/.next-cli-build/static/chunks/5497-6a03b79691097f3c.js +15 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-6c83bcac76e31968.js +1 -0
- package/app/.next-cli-build/static/chunks/app/_global-error/page-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/[asset]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/upload/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/qwen-settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/config/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/heartbeat/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/command/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/snapshot/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/sync/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/ai-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/analyze/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/local-ai-report/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/token-saver/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/caveman-test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/api-key-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/import-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/usage/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/client/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/monitor/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/permissions/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/routing/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/catalog/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/recalculate/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-health/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/[id]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/ai-models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/analyze/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/history/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/restart/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-984d38fbe7bdf873.js +1 -0
- package/app/.next-cli-build/static/css/523ea6b99dc712e8.css +1 -0
- 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/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +0 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +0 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-828b7c16e48c6a4c.js +0 -15
- package/app/.next-cli-build/static/chunks/app/_global-error/page-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/[asset]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/upload/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/qwen-settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/config/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/heartbeat/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/command/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/snapshot/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/sync/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/ai-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/analyze/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/local-ai-report/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/token-saver/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/caveman-test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/api-key-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/import-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/usage/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/client/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/monitor/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/permissions/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/routing/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/recalculate/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-health/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/[id]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/ai-models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/analyze/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/history/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/restart/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-74ec61bef7cabf20.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-aefd4d11ef2fe811.js +0 -1
- package/app/.next-cli-build/static/css/f1d41e3ef47a71f4.css +0 -1
- package/app/.next-cli-build/static/n5LDAYuYpBpiXMs2P-P_M/_buildManifest.js +0 -1
- /package/app/.next-cli-build/static/{n5LDAYuYpBpiXMs2P-P_M → Mz3kUglmPQGIt583Sd6NW}/_ssgManifest.js +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.2.14-to-5.2.15-5.2.15-20260723-164803 → upgrade-5.2.24-to-5.2.25-5.2.25-20260724-094021}/data.sqlite +0 -0
- /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.2.15-to-5.2.16-5.2.16-20260723-171926 → upgrade-5.2.25-to-5.2.29-5.2.29-20260724-101807}/data.sqlite +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=3471,a.ids=[3471],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},18011:(a,b,c)=>{Promise.resolve().then(c.bind(c,97759))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{"use strict";a.exports=require("process")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41204:a=>{"use strict";a.exports=require("string_decoder")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},46293:a=>{"use strict";a.exports=require("sql.js")},50047:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"D:\\\\bluerouter\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\profile\\\\page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\page.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52355:(a,b,c)=>{Promise.resolve().then(c.bind(c,50047))},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{"use strict";a.exports=import("pg")},66136:a=>{"use strict";a.exports=require("timers")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},78285:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>O,handler:()=>Q,routeModule:()=>P});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(14965),o=c(63747),p=c(24235),q=c(23938),r=c(261),s=c(66758),t=c(77243),u=c(26713),v=c(37527),w=c(22820),x=c(88216),y=c(47929),z=c(79551),A=c(71797),B=c(89125),C=c(86439),D=c(77068),E=c(27269),F=c(37525),G=c(61287),H=c(81494),I=c(70722),J=c(70753),K=c(43954),L=c(17891),M={};for(let a in G)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(M[a]=()=>G[a]);c.d(b,M);let N={children:["",{children:["(dashboard)",{children:["dashboard",{children:["profile",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,50047)),"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,30508)),"D:\\bluerouter\\src\\app\\(dashboard)\\layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,32059)),"D:\\bluerouter\\src\\app\\layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,O={require:c,loadChunk:()=>Promise.resolve()},P=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/profile/page",pathname:"/dashboard/profile",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:N},distDir:".next-cli-build",relativeProjectDir:""});async function Q(a,b,d){var M,R,S,T,U;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),P.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,h.getRequestMeta)(a,"minimalMode"),W="/(dashboard)/dashboard/profile/page";"/index"===W&&(W="/");let X=await P.prepare(a,b,{srcPage:W,multiZoneDraftMode:!1});if(!X)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,r.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,K.isInterceptionRouteAppPath)(ai)?null:P.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=a.headers["user-agent"]||"",aw=(0,u.getBotType)(av),ax=(0,q.isHtmlBotRequest)(a),ay=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],az=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[t.RSC_HEADER]),aA=(0,s.getIsPossibleServerAction)(a),aB=(0,m.checkIsAppPPREnabled)(al.experimental.ppr),aC=a.headers[y.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let e=parseInt(aC,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,E.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&aB&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),f=await (0,E.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aD=!0===P.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===a.headers[t.NEXT_INSTANT_PREFETCH_HEADER]||!(0,n.f)(a.headers[t.RSC_HEADER])&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(t.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(M=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:M.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===P.isDev,aI=!1,aJ=aF?(0,h.getRequestMeta)(a,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,q.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===P.isDev||!aO||"string"==typeof aJ||(aP&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,L.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,o.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(P.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),P.isDev||ah||!aO||!az||aL||(0,k.d)(a.headers);let aW={...G,tree:N,handler:Q,routeModule:P,__next_app__:O};ad&&ae&&(0,p.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=a.method||"GET",aY=(0,g.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(a,b,am,!1):b.end("This page could not be found"),null);try{let k,m=P.getVaryHeader(ai,an);b.setHeader("Vary",m);let n=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return P.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aY.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aX} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aX} ${W}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await P.getIncrementalCache(a,al,ag,V);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,j.T)(aW),params:$,routeModule:P,page:W,postponed:f,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof f||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),P.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,D.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>P.onRequestError(a,b,d,e,ak),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await n(e,k),{metadata:m}=l,{cacheControl:o,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aO&&(null==o?void 0:o.revalidate)===0&&!P.isDev&&!aF){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:o}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===P.isDev,m=c||b.writableEnded;try{var n;let f;if(ar&&aj&&!g&&!V)return(null==ak?void 0:ak.render404)?await ak.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(at&&(f=(0,w.parseFallbackField)(at.fallback)),!0===al.experimental.partialFallbacks&&(null==at?void 0:at.fallback)===null&&!aT&&aS.length>0&&(f=w.FallbackMode.PRERENDER),f===w.FallbackMode.PRERENDER&&(0,u.isBot)(av)&&(!aF||ax)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ar=!0),ar&&(f!==w.FallbackMode.NOT_FOUND||g)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),!V&&f!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aV&&!m&&!ah&&_&&(l||!au)){if((l||at)&&f===w.FallbackMode.NOT_FOUND){if(al.adapterPath)return await a0();throw new C.NoFallbackError}if(aF&&(al.cacheComponents?!aL:!az)){let b=l&&"string"==typeof(null==at?void 0:at.fallback)?at.fallback:aq,f=(l||aG)&&(null==at?void 0:at.fallbackRouteParams)?(0,o.createOpaqueFallbackRouteParams)(at.fallbackRouteParams):aI?(0,o.getFallbackRouteParams)(aq,P):null;aG&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await P.handleResponse({cacheKey:b,req:a,nextConfig:al,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ag,isRoutePPREnabled:aF,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:V});if(null===g)return null;if(g)return V||!aF||!(aS.length>0)||!0!==al.experimental.partialFallbacks||!aU||!p||ar||aI||aD||aE||ay||(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(aU,p,aF,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:a_.length>0?(0,o.createOpaqueFallbackRouteParams)(a_):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let s=ar||i||!aJ?void 0:aJ;if(aP&&!V&&p&&(aL||aA)&&!k){let b=await p.get(ai,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(s=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(ai,p,aF,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aG||aH)&&void 0!==s)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let t=!P.isDev&&_&&(null==at?void 0:at.fallbackRouteParams)?(0,o.getPlaceholderFallbackRouteParams)($,at.fallbackRouteParams):null,y=t&&t.length>0?t:null==at?void 0:at.fallbackRouteParams,z=null!=t&&t.length>0,A=null;if(al.cacheComponents&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,h.getRequestMeta)(a,"resolvedRouteParamKeys");b&&b.size>0&&(A=at.fallbackRouteParams.filter(a=>!b.has(a.paramName)))}let B=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||z||aG&&!au)&&y?(0,o.createOpaqueFallbackRouteParams)(y):A&&A.length>0&&A.length<((null==at||null==(n=at.fallbackRouteParams)?void 0:n.length)??0)?(0,o.createOpaqueFallbackRouteParams)(A):aI?(0,o.getFallbackRouteParams)(aq,P):null;if((l||aG)&&al.cacheComponents&&!au&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,o.createOpaqueFallbackRouteParams)(y??at.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:s,fallbackRouteParams:B,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}},s=async c=>{var f,g,i,j,k,l;let m,n=await P.handleResponse({cacheKey:aU,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ar,isRoutePPREnabled:aF,req:a,nextConfig:al,prerenderManifest:ag,waitUntil:d.waitUntil,isMinimalMode:V});if(ah&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),P.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!n){if(aU)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof n.value.postponed;az&&!aA&&ao&&b.setHeader(y.NEXT_NAV_DEPLOYMENT_ID_HEADER,ao),aO&&!aL&&(!o||ay)&&(V||b.setHeader("x-nextjs-cache",ar?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=n;if(aJ)m={revalidate:0,expire:void 0};else if(aL)m={revalidate:0,expire:void 0};else if(!P.isDev)if(ah)m={revalidate:0,expire:void 0};else if(aO){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});m={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??al.expireTime}}else m={revalidate:y.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(m={revalidate:0,expire:void 0});if(n.cacheControl=m,"string"==typeof aM&&(null==p?void 0:p.kind)===v.CachedRouteKind.APP_PAGE&&p.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=p.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];V&&aO&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=p.segmentData.get(aM);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let s=aP?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(s){let b=(0,h.getRequestMeta)(a,"initURL")??a.url,c=b?(null==(l=(0,F.parseUrl)(b))?void 0:l.pathname)??b:void 0;if(await s(n,{url:c}))return null}if(p.headers){let a={...p.headers};for(let[c,d]of(V&&aO||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=p.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(V&&aO&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!p.status||az&&aF||(b.statusCode=p.status),!V&&p.status&&H.RedirectStatusCode[p.status]&&az&&(b.statusCode=200),o&&!aL&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),az&&!ah){if(void 0===p.rscData){if(p.html.contentType!==t.RSC_CONTENT_TYPE_HEADER)if(al.cacheComponents)return b.statusCode=404,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl});else throw Object.defineProperty(new I.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:p.html,cacheControl:n.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(p.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let w=p.html;if(aE&&aG){let c=!0===P.isDev?crypto.randomUUID():null;return w.pipeThrough(await (0,A.createInstantTestScriptInsertionTransformStream)(c)),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})}if(!o||V||az)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:n.cacheControl});if(aG||aH)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let C=new TransformStream;return w.push(C.readable),q({span:c,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(C.writable)}).catch(a=>{C.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!a$||!aZ)return k=aY.getActiveScopeSpan(),await aY.withPropagatedContext(a.headers,()=>aY.trace(i.BaseServerSpan.handleRequest,{spanName:`${aX} ${W}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aX,"http.target":a.url}},s),void 0,!a$);await s(aZ)}catch(b){throw b instanceof C.NoFallbackError||await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}}},79428:a=>{"use strict";a.exports=require("buffer")},79748:a=>{"use strict";a.exports=require("fs/promises")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},97759:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>u});var d=c(48249),e=c(67484),f=c(34716),g=c(50412);let h={enabled:!1,fileLoggingEnabled:!1,type:"mysql",host:"",port:"",database:"",username:"",password:"",ssl:!1,createDatabase:!1,logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:!1,logErrors:!0,retentionDays:30,payloadRotationEnabled:!1,payloadRetentionDays:60,payloadRotationIntervalHours:24,payloadRotationBatchSize:500,payloadRotationMaxBatches:20};function i({label:a,value:b,onChange:c,type:e="text",placeholder:f="",disabled:g=!1,min:h,max:j,step:k}){return(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:a}),(0,d.jsx)("input",{type:e,value:b||"",placeholder:f,disabled:g,min:h,max:j,step:k,onChange:a=>c(a.target.value),className:"w-full rounded border border-border bg-surface px-2 py-1.5 text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50"})]})}function j({label:a,checked:b,onChange:c,disabled:e=!1}){return(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-text-main",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!b,disabled:e,onChange:a=>c(a.target.checked)}),a]})}function k(){let[a,b]=(0,e.useState)(h),[c,f]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),q=a=>b(b=>({...b,...a})),r=async()=>{f(!0),n(null);try{let a=await fetch("/api/cli-tools/antigravity-mitm/prompt-log-db"),c=await a.json();if(!a.ok)throw Error(c.error||"Failed to load config");b({...h,...c.config||{}})}catch(a){n(a.message||"Failed to load config")}finally{f(!1)}},s=async()=>{f(!0),n(null),l(null);try{let c=await fetch("/api/cli-tools/antigravity-mitm/prompt-log-db",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:a})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to save config");b({...h,...d.config||{}}),l("Saved")}catch(a){n(a.message||"Failed to save config")}finally{f(!1)}},t=async(b,c={})=>{if(!c.confirm||window.confirm("Delete expired full request/response payloads now? Prompt log rows, previews, token/model/provider metadata, and analytics are kept. This action cannot restore deleted payload JSON.")){f(!0),n(null),l(null),b.includes("payload-rotation")&&p(null);try{let d=await fetch("/api/cli-tools/antigravity-mitm/prompt-log-db",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:b,config:a,confirm:!0===c.confirm})}),e=await d.json();if(!d.ok)throw Error(e.error||"Action failed");b.includes("payload-rotation")&&p(e),l(e.message||e.init?.message||"OK")}catch(a){n(a.message||"Action failed")}finally{f(!1)}}},u="postgres"===a.type||"mysql"===a.type;return(0,d.jsx)(g.Zp,{title:"Request Logging",subtitle:"Control local request files and database-backed prompt logs",icon:"receipt_long",children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsxs)(g.Ex,{variant:a.fileLoggingEnabled?"success":"default",children:["Local files: ",a.fileLoggingEnabled?"Enabled":"Disabled"]}),(0,d.jsxs)(g.Ex,{variant:a.enabled?"success":"default",children:["Database: ",a.enabled?"Enabled":"Disabled"]})]}),(0,d.jsx)("div",{className:"rounded-lg border border-yellow-500/30 bg-yellow-500/10 p-3 text-xs text-yellow-700 dark:text-yellow-300",children:'Prompt logs may contain source code, selected code, internal URLs, user prompts, and provider responses. Checked stages store full raw JSON; prompt/response text columns keep only short previews. Per-combo "hide content" still redacts raw JSON.'}),(0,d.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Database type"}),(0,d.jsxs)("select",{value:a.type,disabled:c,onChange:b=>{let c=b.target.value;q({type:c,port:"postgres"===c?a.port||"5432":"mysql"===c?a.port||"3306":a.port})},className:"w-full rounded border border-border bg-surface px-2 py-1.5 text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"mysql",children:"MySQL / MariaDB"}),(0,d.jsx)("option",{value:"postgres",children:"PostgreSQL"})]})]})}),u&&(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,d.jsx)(i,{label:"Host",value:a.host,placeholder:"127.0.0.1",onChange:a=>q({host:a}),disabled:c}),(0,d.jsx)(i,{label:"Port",value:a.port,placeholder:"postgres"===a.type?"5432":"3306",onChange:a=>q({port:a}),disabled:c}),(0,d.jsx)(i,{label:"Database",value:a.database,placeholder:"bluerouter_logs",onChange:a=>q({database:a}),disabled:c}),(0,d.jsx)(i,{label:"Username",value:a.username,placeholder:"bluerouter",onChange:a=>q({username:a}),disabled:c}),(0,d.jsx)(i,{label:"Password",type:"password",value:a.password,placeholder:"Leave as ******** to keep existing password",onChange:a=>q({password:a}),disabled:c}),(0,d.jsxs)("div",{className:"flex flex-col justify-end gap-2",children:[(0,d.jsx)(j,{label:"Use SSL",checked:a.ssl,onChange:a=>q({ssl:a}),disabled:c}),(0,d.jsx)(j,{label:"Create database if missing",checked:a.createDatabase,onChange:a=>q({createDatabase:a}),disabled:c})]})]}),(0,d.jsxs)("div",{className:"grid gap-2 rounded-lg border border-border bg-surface/40 p-3 md:grid-cols-2",children:[(0,d.jsx)(j,{label:"Save request/response to local files",checked:a.fileLoggingEnabled,onChange:a=>q({fileLoggingEnabled:a}),disabled:c}),(0,d.jsx)(j,{label:"Save request/response to Prompt Log Database",checked:a.enabled,onChange:a=>q({enabled:a}),disabled:c}),(0,d.jsx)(j,{label:"Log client request JSON",checked:a.logClientRequest,onChange:a=>q({logClientRequest:a}),disabled:c}),(0,d.jsx)(j,{label:"Log normalized/source request JSON",checked:a.logSourceRequest,onChange:a=>q({logSourceRequest:a}),disabled:c}),(0,d.jsx)(j,{label:"Log target/provider request JSON",checked:a.logTargetRequest,onChange:a=>q({logTargetRequest:a}),disabled:c}),(0,d.jsx)(j,{label:"Log provider response JSON",checked:a.logProviderResponse,onChange:a=>q({logProviderResponse:a}),disabled:c}),(0,d.jsx)(j,{label:"Log errors",checked:a.logErrors,onChange:a=>q({logErrors:a}),disabled:c})]}),(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-background p-3 text-xs text-text-muted",children:["Local files are written under ",(0,d.jsx)("code",{children:"DATA_DIR/logs/requests"}),". Disabling local files stops new request/response dump files; existing files are kept."]}),(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-border bg-surface/40 p-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text-main",children:"Full payload rotation"}),(0,d.jsxs)("div",{className:"mt-1 text-xs text-text-muted",children:["Deletes expired full request/response JSON only. Rows in ",(0,d.jsx)("code",{children:"prompt_logs"}),", short previews, model/provider/token metadata, and dashboard analytics remain available."]})]}),(0,d.jsx)(j,{label:"Enable automatic payload rotation",checked:a.payloadRotationEnabled,onChange:a=>q({payloadRotationEnabled:a}),disabled:c}),(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsx)(i,{label:"Keep full payload for (days)",type:"number",min:1,max:3650,step:1,value:String(a.payloadRetentionDays||60),onChange:a=>q({payloadRetentionDays:Number(a)||60}),disabled:c}),(0,d.jsx)(i,{label:"Automatic run interval (hours)",type:"number",min:1,max:168,step:1,value:String(a.payloadRotationIntervalHours||24),onChange:a=>q({payloadRotationIntervalHours:Number(a)||24}),disabled:c}),(0,d.jsx)(i,{label:"Prompt-log rows per transaction",type:"number",min:50,max:5e3,step:50,value:String(a.payloadRotationBatchSize||500),onChange:a=>q({payloadRotationBatchSize:Number(a)||500}),disabled:c}),(0,d.jsx)(i,{label:"Max transactions per run",type:"number",min:1,max:200,step:1,value:String(a.payloadRotationMaxBatches||20),onChange:a=>q({payloadRotationMaxBatches:Number(a)||20}),disabled:c})]}),(0,d.jsxs)("div",{className:"rounded-lg border border-blue-500/30 bg-blue-500/10 p-3 text-xs text-blue-700 dark:text-blue-300",children:["MySQL: payload hashes are detached from expired ",(0,d.jsx)("code",{children:"prompt_logs"})," rows, then rows in ",(0,d.jsx)("code",{children:"prompt_log_payloads"})," are deleted only when no prompt log still references them. Each batch uses a transaction and a database advisory lock to prevent overlapping rotation jobs."]}),(0,d.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-xs text-amber-700 dark:text-amber-300",children:["Deleting rows frees reusable space inside InnoDB, but ",(0,d.jsx)("code",{children:"prompt_log_payloads.ibd"})," normally does not shrink immediately. Do not run ",(0,d.jsx)("code",{children:"OPTIMIZE TABLE"})," on a very large table without checking temporary disk space and a maintenance window."]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>t("preview-payload-rotation"),loading:c,children:"Preview expired payloads"}),(0,d.jsx)(g.$n,{size:"sm",variant:"danger",onClick:()=>t("run-payload-rotation",{confirm:!0}),loading:c,children:"Delete expired payloads now"})]}),o&&(0,d.jsxs)("div",{className:"grid gap-2 rounded-lg border border-border bg-background p-3 text-xs md:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Cutoff:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:o.cutoff?new Date(o.cutoff).toLocaleString():"-"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Prompt-log rows:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(o.promptLogRows??o.promptLogRowsUpdated??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===o.payloadRowsDeleted?"Payload rows past retention:":"Payload rows deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(o.payloadRowsDeleted??o.payloadRowsPastRetention??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===o.payloadBytesDeleted?"Estimated payload size:":"Payload size deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:function(a){let b=Number(a||0);if(!Number.isFinite(b)||b<=0)return"0 B";let c=["B","KB","MB","GB","TB"],d=Math.min(c.length-1,Math.floor(Math.log(b)/Math.log(1024))),e=b/1024**d;return`${e.toFixed(e>=10||0===d?1:2)} ${c[d]}`}(o.payloadBytesDeleted??o.payloadBytesPastRetention??o.referencedPayloadBytes)})]}),o.hasMore?(0,d.jsx)("div",{className:"md:col-span-2 lg:col-span-4 text-amber-600",children:"More expired rows remain because the per-run batch limit was reached."}):null]}),(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:"Save the settings after enabling automatic rotation. Preview and manual deletion use the values currently shown in this form."})]}),u&&(0,d.jsxs)("div",{className:"rounded-lg border border-blue-500/30 bg-blue-500/10 p-3 text-xs text-blue-700 dark:text-blue-300",children:["Prompt logs now support MySQL/MariaDB and PostgreSQL only. MySQL/MariaDB requires ",(0,d.jsx)("code",{children:"mysql2"}),"; PostgreSQL requires ",(0,d.jsx)("code",{children:"pg"}),"."]}),k&&(0,d.jsx)("div",{className:"rounded-lg border border-green-500/30 bg-green-500/10 p-2 text-xs text-green-600",children:k}),m&&(0,d.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 p-2 text-xs text-red-500",children:m}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:r,loading:c,children:"Reload"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>t("test"),loading:c,children:"Test connection"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>t("init"),loading:c,children:"Initialize schema"}),(0,d.jsx)(g.$n,{size:"sm",onClick:s,loading:c,children:"Save"}),(0,d.jsx)(g.$n,{size:"sm",variant:"success",onClick:()=>t("save-and-init"),loading:c,children:"Save & initialize"})]})]})})}let l="(|(sAMAccountName={{username}})(userPrincipalName={{username}})(mail={{username}}))",m="image/svg+xml,image/png,image/webp,image/jpeg,image/gif",n=`${m},image/x-icon,image/vnd.microsoft.icon,.ico`;function o({status:a}){if(!a?.message)return null;let b="error"===a.type?"text-red-600 bg-red-50 border-red-200":"text-green-700 bg-green-50 border-green-200";return(0,d.jsx)("div",{className:`mt-3 rounded-xl border px-4 py-3 text-sm ${b}`,children:a.message})}function p({icon:a,title:b,desc:c,children:e}){return(0,d.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-6 shadow-sm",children:[(0,d.jsxs)("div",{className:"mb-5 flex items-start gap-3",children:[a&&(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:a}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-bold text-text-main",children:b}),c&&(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:c})]})]}),e]})}function q({label:a,hint:b,children:c}){return(0,d.jsxs)("label",{className:"block",children:[(0,d.jsx)("span",{className:"mb-1 block text-sm font-semibold text-text-main",children:a}),c,b&&(0,d.jsx)("span",{className:"mt-1 block text-xs text-text-muted",children:b})]})}function r(a){return(0,d.jsx)("input",{...a,className:`w-full rounded-xl border border-border bg-background px-3 py-2 text-sm outline-none focus:border-primary ${a.className||""}`})}function s(a){return(0,d.jsx)("textarea",{...a,className:`w-full rounded-xl border border-border bg-background px-3 py-2 text-sm outline-none focus:border-primary ${a.className||""}`})}function t({title:a,desc:b,checked:c,onChange:e,disabled:f}){return(0,d.jsxs)("div",{className:"flex items-start justify-between gap-4 rounded-xl border border-border bg-background px-4 py-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text-main",children:a}),b&&(0,d.jsx)("div",{className:"mt-1 text-xs text-text-muted",children:b})]}),(0,d.jsx)("button",{type:"button",disabled:f,onClick:()=>e(!c),className:`relative mt-0.5 h-6 w-11 rounded-full transition disabled:opacity-50 ${c?"bg-primary":"bg-border"}`,children:(0,d.jsx)("span",{className:`absolute top-0.5 h-5 w-5 rounded-full bg-white transition ${c?"left-5":"left-0.5"}`})})]})}function u(){let[a,b]=(0,e.useState)({}),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)({current:"",new:"",confirm:""}),[j,u]=(0,e.useState)({type:"",message:""}),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)({type:"",message:""}),B=(0,e.useRef)(null),[C,D]=(0,e.useState)("admin"),[E,F]=(0,e.useState)({type:"",message:""}),[G,H]=(0,e.useState)({ldapEnabled:!1,ldapUrl:"",ldapBindDn:"",ldapBindPassword:"",ldapUserBaseDn:"",ldapUserSearchFilter:l,ldapUserNameAttribute:"sAMAccountName",ldapUserDisplayAttribute:"displayName",ldapUserEmailAttribute:"mail",ldapLoginAllowedGroupDn:"",ldapAdminGroupDn:"",ldapMonitorAdminGroupDn:"",ldapAiGatewaysMonitorsGroupDn:"",ldapNestedGroups:!0,ldapAllowedUsers:[],ldapTlsRejectUnauthorized:!0,ldapConnectTimeoutMs:8e3}),[I,J]=(0,e.useState)({type:"",message:""}),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(""),[Q,R]=(0,e.useState)([]),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)({authMode:"password",oidcIssuerUrl:"",oidcClientId:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC"}),[W,X]=(0,e.useState)(""),[Y,Z]=(0,e.useState)({type:"",message:""}),[$,_]=(0,e.useState)(!1),[aa,ab]=(0,e.useState)(!1),[ac,ad]=(0,e.useState)({type:"",message:""}),ae=(0,f.useBranding)(),[af,ag]=(0,e.useState)(""),[ah,ai]=(0,e.useState)(""),[aj,ak]=(0,e.useState)(""),[al,am]=(0,e.useState)({type:"",message:""}),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)(!1),[ar,as]=(0,e.useState)(!1),[at,au]=(0,e.useState)(!1),av=(0,e.useRef)(null),aw=(0,e.useRef)(null),ax=async()=>{g(!0);try{let a=await fetch("/api/settings",{cache:"no-store"}),c=await a.json();b(c),D(c.localLoginUsername||"admin"),H({ldapEnabled:!0===c.ldapEnabled,ldapUrl:c.ldapUrl||"",ldapBindDn:c.ldapBindDn||"",ldapBindPassword:"",ldapUserBaseDn:c.ldapUserBaseDn||c.ldapBaseDn||"",ldapUserSearchFilter:c.ldapUserSearchFilter||l,ldapUserNameAttribute:c.ldapUserNameAttribute||"sAMAccountName",ldapUserDisplayAttribute:c.ldapUserDisplayAttribute||"displayName",ldapUserEmailAttribute:c.ldapUserEmailAttribute||"mail",ldapLoginAllowedGroupDn:c.ldapLoginAllowedGroupDn||"",ldapAdminGroupDn:c.ldapAdminGroupDn||"",ldapMonitorAdminGroupDn:c.ldapMonitorAdminGroupDn||"",ldapAiGatewaysMonitorsGroupDn:c.ldapAiGatewaysMonitorsGroupDn||"",ldapNestedGroups:!1!==c.ldapNestedGroups,ldapAllowedUsers:Array.isArray(c.ldapAllowedUsers)?c.ldapAllowedUsers:[],ldapTlsRejectUnauthorized:!1!==c.ldapTlsRejectUnauthorized,ldapConnectTimeoutMs:c.ldapConnectTimeoutMs||8e3}),V({authMode:c.authMode||"password",oidcIssuerUrl:c.oidcIssuerUrl||"",oidcClientId:c.oidcClientId||"",oidcScopes:c.oidcScopes||"openid profile email",oidcLoginLabel:c.oidcLoginLabel||"Sign in with OIDC"}),ag(c.siteTitle||""),ai(c.siteShortName||""),ak(c.siteDescription||""),("oidc"===c.authMode||"both"===c.authMode)&&ab(!0)}catch(a){console.log("Failed to fetch settings:",a)}finally{g(!1)}},ay=async a=>{let c=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await c.json().catch(()=>({}));if(!c.ok)throw Error(d.error||"Failed to save settings");return b(a=>({...a,...d})),d},az=async c=>{ad({type:"",message:""});let d=!1!==a.sidebarAdvancedToolsVisible;b(a=>({...a,sidebarAdvancedToolsVisible:c}));try{let a=await ay({sidebarAdvancedToolsVisible:c}),d=!1!==a.sidebarAdvancedToolsVisible;b(a=>({...a,sidebarAdvancedToolsVisible:d})),ad({type:"success",message:d?"Advanced tools are visible in the sidebar.":"Advanced tools are hidden from the sidebar."})}catch(a){b(a=>({...a,sidebarAdvancedToolsVisible:d})),ad({type:"error",message:a.message||"Failed to save sidebar setting."})}},aA=async a=>{a.preventDefault(),F({type:"",message:""});try{let a=await ay({localLoginUsername:C});D(a.localLoginUsername||C||"admin"),F({type:"success",message:"Local account name saved."})}catch(a){F({type:"error",message:a.message})}},aB=async a=>{if(a.preventDefault(),h.new!==h.confirm)return void u({type:"error",message:"Passwords do not match"});w(!0),u({type:"",message:""});try{await ay({currentPassword:h.current,newPassword:h.new}),u({type:"success",message:"Password updated successfully"}),i({current:"",new:"",confirm:""})}catch(a){u({type:"error",message:a.message||"Failed to update password"})}finally{w(!1)}},aC=async()=>{y(!0),A({type:"",message:""});try{let a=await fetch("/api/settings/database");if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||"Failed to export database")}let b=await a.json(),c=JSON.stringify(b,null,2),d=new Blob([c],{type:"application/json"}),e=URL.createObjectURL(d),f=document.createElement("a"),g=new Date().toISOString().replace(/[.:]/g,"-");f.href=e,f.download=`bluerouter-backup-${g}.json`,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(e),A({type:"success",message:"Database backup downloaded."})}catch(a){A({type:"error",message:a.message||"Failed to export database."})}finally{y(!1)}},aD=async a=>{let b=a.target.files?.[0];if(b){y(!0),A({type:"",message:""});try{let a=await b.text(),c=JSON.parse(a),d=await fetch("/api/settings/database",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||"Failed to import database");await ax();let f=e.resourceMonitorImported?`Restored ${e.resourceMonitorServerCount||0} Resource Monitor server(s) and ${e.resourceMonitorHistoryCount||0} history sample(s).`:"Legacy backup: current Resource Monitor data was kept.",g=e.brandingImported?`Restored ${e.brandingAssetCount||0} branding asset(s).`:"Current logo and favicon were kept.";A({type:"success",message:`Database imported successfully. ${f} ${g}`})}catch(a){A({type:"error",message:a.message||"Invalid backup file."})}finally{B.current&&(B.current.value=""),y(!1)}}},aE=(a,b)=>H(c=>({...c,[a]:b})),aF=async a=>{a?.preventDefault?.(),L(!0),J({type:"",message:""});try{let a={...G,ldapBaseDn:G.ldapUserBaseDn,ldapAllowedUsers:G.ldapAllowedUsers};a.ldapBindPassword||delete a.ldapBindPassword;let b=await ay(a);H(a=>({...a,ldapBindPassword:"",ldapEnabled:!0===b.ldapEnabled,ldapUserBaseDn:b.ldapUserBaseDn||b.ldapBaseDn||a.ldapUserBaseDn,ldapLoginAllowedGroupDn:b.ldapLoginAllowedGroupDn||"",ldapAdminGroupDn:b.ldapAdminGroupDn||"",ldapMonitorAdminGroupDn:b.ldapMonitorAdminGroupDn||"",ldapAiGatewaysMonitorsGroupDn:b.ldapAiGatewaysMonitorsGroupDn||"",ldapNestedGroups:!1!==b.ldapNestedGroups,ldapAllowedUsers:Array.isArray(b.ldapAllowedUsers)?b.ldapAllowedUsers:a.ldapAllowedUsers})),J({type:"success",message:"LDAP settings saved."})}catch(a){J({type:"error",message:a.message||"Failed to save LDAP settings"})}finally{L(!1)}},aG=async()=>{N(!0),J({type:"",message:""});try{await aF();let a=await fetch("/api/auth/ldap/test",{method:"POST"}),b=await a.json().catch(()=>({}));a.ok&&b.ok?J({type:"success",message:b.message||"LDAP connection OK."}):J({type:"error",message:b.error||"LDAP test failed."})}catch(a){J({type:"error",message:a.message||"LDAP test failed."})}finally{N(!1)}},aH=async()=>{T(!0),J({type:"",message:""});try{await aF();let a=await fetch(`/api/auth/ldap/users?q=${encodeURIComponent(O)}`,{cache:"no-store"}),b=await a.json().catch(()=>({}));a.ok?(R(b.users||[]),J({type:"success",message:`Loaded ${(b.users||[]).length} LDAP user(s).`})):J({type:"error",message:b.error||"Failed to load LDAP users."})}catch(a){J({type:"error",message:a.message||"Failed to load LDAP users."})}finally{T(!1)}},aI=a=>{let b=String(a||"").trim();b&&H(a=>{let c=new Set(a.ldapAllowedUsers||[]);return c.has(b)?c.delete(b):c.add(b),{...a,ldapAllowedUsers:[...c]}})},aJ=async(b=U.authMode||"password")=>{let c=U.oidcIssuerUrl.trim(),d=U.oidcClientId.trim(),e=U.oidcScopes.trim(),f=U.oidcLoginLabel.trim(),g=W.trim();if("password"!==b&&(!c||!d||!g)&&!a.oidcConfigured)return void Z({type:"error",message:"Issuer URL, client ID, and client secret are required to enable OIDC."});_(!0),Z({type:"",message:""});try{let a={authMode:b,oidcIssuerUrl:c,oidcClientId:d,oidcScopes:e||"openid profile email",oidcLoginLabel:f||"Sign in with OIDC"};g&&(a.oidcClientSecret=g);let h=await ay(a);V({authMode:h.authMode||b,oidcIssuerUrl:h.oidcIssuerUrl||c,oidcClientId:h.oidcClientId||d,oidcScopes:h.oidcScopes||e||"openid profile email",oidcLoginLabel:h.oidcLoginLabel||f||"Sign in with OIDC"}),X(""),Z({type:"success",message:"OIDC settings saved."})}catch(a){Z({type:"error",message:a.message||"Failed to save OIDC settings"})}finally{_(!1)}},aK=async(a,b)=>{if(!b)return;if(b.size>1048576)return void am({type:"error",message:"File exceeds 1 MB limit."});let c="logo"===a?aq:as;c(!0),am({type:"",message:""});try{let c=new FormData;c.append("asset",a),c.append("file",b);let d=await fetch("/api/branding/upload",{method:"POST",body:c}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||"Upload failed");(0,f.notifyBrandingChanged)(),am({type:"success",message:`${"logo"===a?"Logo":"Favicon"} uploaded.`})}catch(a){am({type:"error",message:a.message||"Upload failed."})}finally{c(!1)}},aL=async a=>{let b=a.target.files?.[0];await aK("logo",b),av.current&&(av.current.value="")},aM=async a=>{let b=a.target.files?.[0];await aK("favicon",b),aw.current&&(aw.current.value="")},aN=async a=>{a.preventDefault(),ao(!0),am({type:"",message:""});try{await ay({siteTitle:af.trim(),siteShortName:ah.trim(),siteDescription:aj.trim()}),(0,f.notifyBrandingChanged)(),am({type:"success",message:"Branding text saved."})}catch(a){am({type:"error",message:a.message||"Failed to save branding."})}finally{ao(!1)}},aO=async a=>{am({type:"",message:""});try{let b=await fetch(`/api/branding?asset=${a}`,{method:"DELETE"}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error||"Failed to remove asset");(0,f.notifyBrandingChanged)(),am({type:"success",message:`${"logo"===a?"Logo":"Favicon"} removed.`})}catch(a){am({type:"error",message:a.message||"Failed to remove asset."})}},aP=async()=>{au(!0),am({type:"",message:""});try{let a=await fetch("/api/branding",{method:"DELETE"});if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||"Failed to reset branding")}await ay({siteTitle:"",siteShortName:"",siteDescription:""}),ag(""),ai(""),ak(""),(0,f.notifyBrandingChanged)(),am({type:"success",message:"Branding reset to defaults."})}catch(a){am({type:"error",message:a.message||"Failed to reset branding."})}finally{au(!1)}};return c?(0,d.jsx)("div",{className:"p-8 text-text-muted",children:"Loading settings..."}):(0,d.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 p-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-3xl font-bold text-text-main",children:"Settings"}),(0,d.jsx)("p",{className:"mt-1 text-text-muted",children:"Configure dashboard preferences, request logging, database backup, and authentication."})]}),(0,d.jsxs)(p,{icon:"view_sidebar",title:"Sidebar tools",desc:"Show or hide advanced dashboard tools to keep the sidebar clean.",children:[(0,d.jsx)(t,{title:"Show Advanced tools",desc:"When disabled, Media / Web, AI Traffic Gateway, CLI Tools, Proxy Pools, Skills, Console Log and Translator are hidden from the sidebar. Core admin pages remain visible.",checked:!1!==a.sidebarAdvancedToolsVisible,onChange:az}),(0,d.jsx)(o,{status:ac})]}),(0,d.jsxs)(p,{icon:"palette",title:"Branding",desc:"Customize site title, logo and favicon shown in the dashboard, browser tab and login page. Max 1 MB per file.",children:[(0,d.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-sm font-semibold text-text-main",children:"Logo"}),(0,d.jsxs)("div",{className:"flex items-center gap-4 rounded-xl border border-border bg-background p-4",children:[(0,d.jsx)("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-border bg-surface",children:ae?.logoUrl?(0,d.jsx)("img",{src:ae.logoUrl,alt:"Current logo",className:"max-h-full max-w-full object-contain"}):(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted",children:"hub"})}),(0,d.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"Shown in the dashboard sidebar and login page. SVG, PNG, WebP, JPEG, GIF."}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",disabled:ap,onClick:()=>av.current?.click(),className:"rounded-xl bg-primary px-3 py-1.5 text-xs font-semibold text-white disabled:opacity-50",children:ap?"Uploading...":ae?.logoUrl?"Replace logo":"Upload logo"}),ae?.logoUrl?(0,d.jsx)("button",{type:"button",onClick:()=>aO("logo"),className:"rounded-xl border border-border px-3 py-1.5 text-xs font-semibold text-text-main hover:border-red-300 hover:text-red-600",children:"Remove"}):null]})]}),(0,d.jsx)("input",{ref:av,type:"file",accept:m,className:"hidden",onChange:aL})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-sm font-semibold text-text-main",children:"Favicon"}),(0,d.jsxs)("div",{className:"flex items-center gap-4 rounded-xl border border-border bg-background p-4",children:[(0,d.jsx)("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-border bg-surface",children:ae?.faviconUrl?(0,d.jsx)("img",{src:ae.faviconUrl,alt:"Current favicon",className:"max-h-10 max-w-10 object-contain"}):(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted",children:"public"})}),(0,d.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"Shown in the browser tab. ICO, SVG, PNG, WebP, JPEG, GIF."}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",disabled:ar,onClick:()=>aw.current?.click(),className:"rounded-xl bg-primary px-3 py-1.5 text-xs font-semibold text-white disabled:opacity-50",children:ar?"Uploading...":ae?.faviconUrl?"Replace favicon":"Upload favicon"}),ae?.faviconUrl?(0,d.jsx)("button",{type:"button",onClick:()=>aO("favicon"),className:"rounded-xl border border-border px-3 py-1.5 text-xs font-semibold text-text-main hover:border-red-300 hover:text-red-600",children:"Remove"}):null]})]}),(0,d.jsx)("input",{ref:aw,type:"file",accept:n,className:"hidden",onChange:aM})]})]})]}),(0,d.jsxs)("form",{onSubmit:aN,className:"space-y-3",children:[(0,d.jsx)(q,{label:"Site title",hint:"Shown in browser tab and login page. Leave blank for default.",children:(0,d.jsx)(r,{value:af,onChange:a=>ag(a.target.value),placeholder:"AI Router Gateway"})}),(0,d.jsx)(q,{label:"Company short name",hint:"Shown in dashboard sidebar and login hero text. Defaults to site title/sidebar default or 'Fujinet' on login.",children:(0,d.jsx)(r,{value:ah,onChange:a=>ai(a.target.value),placeholder:"Fujinet"})}),(0,d.jsx)(q,{label:"Description",hint:"Used for browser metadata.",children:(0,d.jsx)(s,{rows:3,value:aj,onChange:a=>ak(a.target.value),placeholder:"AI Infrastructure Management"})}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"submit",disabled:an,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:an?"Saving...":"Save branding text"}),(0,d.jsx)("button",{type:"button",disabled:at,onClick:aP,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main hover:border-red-300 hover:text-red-600 disabled:opacity-50",children:at?"Resetting...":"Reset to defaults"})]})]})]}),(0,d.jsx)(o,{status:al})]}),(0,d.jsx)(p,{icon:"shield",title:"Dashboard Login",desc:"Local account remains available even when LDAP is enabled.",children:(0,d.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,d.jsxs)("form",{onSubmit:aA,className:"space-y-3",children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Local account"}),(0,d.jsx)(q,{label:"Local username",children:(0,d.jsx)(r,{value:C,onChange:a=>D(a.target.value)})}),(0,d.jsx)("button",{className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white",children:"Save account"}),(0,d.jsx)(o,{status:E})]}),(0,d.jsxs)("form",{onSubmit:aB,className:"space-y-3",children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Local password"}),a.hasPassword&&(0,d.jsx)(q,{label:"Current password",children:(0,d.jsx)(r,{type:"password",value:h.current,onChange:a=>i({...h,current:a.target.value}),required:!0})}),(0,d.jsx)(q,{label:"New password",children:(0,d.jsx)(r,{type:"password",value:h.new,onChange:a=>i({...h,new:a.target.value}),required:!0})}),(0,d.jsx)(q,{label:"Confirm password",children:(0,d.jsx)(r,{type:"password",value:h.confirm,onChange:a=>i({...h,confirm:a.target.value}),required:!0})}),(0,d.jsx)("button",{disabled:v,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:a.hasPassword?"Update Password":"Set Password"}),(0,d.jsx)(o,{status:j})]})]})}),(0,d.jsx)("div",{id:"request-logging",className:"scroll-mt-6",children:(0,d.jsx)(k,{})}),(0,d.jsxs)(p,{icon:"database",title:"Database Backup",desc:"Export or restore configuration, Linux Resource Monitor data, logo and favicon.",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,d.jsx)("button",{onClick:aC,disabled:x,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:"Download Backup"}),(0,d.jsx)("button",{onClick:()=>B.current?.click(),disabled:x,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main hover:border-primary/50 disabled:opacity-50",children:"Import Backup"}),(0,d.jsx)("input",{ref:B,type:"file",accept:"application/json",className:"hidden",onChange:aD})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Backup files contain API credentials, Resource Monitor agent tokens and embedded branding images. Store them securely. Legacy backups keep current Resource Monitor and branding files."}),(0,d.jsx)(o,{status:z})]}),(0,d.jsx)(p,{icon:"corporate_fare",title:"LDAP / Active Directory Login",desc:"Search users from a User Base DN, restrict login by group DN, and grant admin by group DN. The old Selected LDAP users list is kept as a manual admin list.",children:(0,d.jsxs)("form",{onSubmit:aF,className:"space-y-5",children:[(0,d.jsx)("div",{className:"flex flex-wrap gap-3",children:(0,d.jsx)("button",{type:"button",onClick:()=>aE("ldapEnabled",!G.ldapEnabled),className:`rounded-xl px-3 py-2 text-sm font-semibold ${G.ldapEnabled?"bg-primary text-white":"border border-border text-text-muted"}`,children:G.ldapEnabled?"Enabled":"Disabled"})}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(q,{label:"LDAP URL",children:(0,d.jsx)(r,{value:G.ldapUrl,onChange:a=>aE("ldapUrl",a.target.value),placeholder:"ldap://dc01.company.local:389"})}),(0,d.jsx)(q,{label:"LDAP User Base DN",hint:"OU/container/domain where user objects are searched. Do not use a group DN here.",children:(0,d.jsx)(r,{value:G.ldapUserBaseDn,onChange:a=>aE("ldapUserBaseDn",a.target.value),placeholder:"OU=Users,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP Bind DN",children:(0,d.jsx)(r,{value:G.ldapBindDn,onChange:a=>aE("ldapBindDn",a.target.value),placeholder:"CN=svc-bluerouter,OU=Service Accounts,DC=company,DC=local"})}),(0,d.jsx)(q,{label:"LDAP Bind Password",children:(0,d.jsx)(r,{type:"password",value:G.ldapBindPassword,onChange:a=>aE("ldapBindPassword",a.target.value),placeholder:a.ldapHasBindPassword?"Saved — leave blank to keep":"Service account password"})}),(0,d.jsx)(q,{label:"LDAP Login Allowed Group DN",hint:"Only members of this group can log in. Leave blank to allow any valid LDAP user.",children:(0,d.jsx)(r,{value:G.ldapLoginAllowedGroupDn,onChange:a=>aE("ldapLoginAllowedGroupDn",a.target.value),placeholder:"CN=Apikeys_Groups,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP Admin Group DN",hint:"Members of this group get full admin dashboard access.",children:(0,d.jsx)(r,{value:G.ldapAdminGroupDn,onChange:a=>aE("ldapAdminGroupDn",a.target.value),placeholder:"CN=BlueRouter_Admins,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP Monitor Admin Group DN",hint:"Members can use only Endpoint, API Keys, Usage, Analytics, Quota Tracker and Prompt Logs with admin-like permissions inside those tabs.",children:(0,d.jsx)(r,{value:G.ldapMonitorAdminGroupDn,onChange:a=>aE("ldapMonitorAdminGroupDn",a.target.value),placeholder:"CN=BlueRouter_Monitor_Admins,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP AI Gateways Monitors Group DN",hint:"Members log in as regular users but the Analytics page aggregates statistics for every API key that has an owner, instead of only their own keys.",children:(0,d.jsx)(r,{value:G.ldapAiGatewaysMonitorsGroupDn,onChange:a=>aE("ldapAiGatewaysMonitorsGroupDn",a.target.value),placeholder:"CN=BlueRouter_AI_Gateways_Monitors,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})})]}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(q,{label:"User search filter",hint:"Use {{username}} placeholder.",children:(0,d.jsx)(r,{value:G.ldapUserSearchFilter,onChange:a=>aE("ldapUserSearchFilter",a.target.value)})}),(0,d.jsx)(q,{label:"Login group mode",hint:"Nested groups uses AD matching rule 1.2.840.113556.1.4.1941.",children:(0,d.jsx)(t,{title:"Nested group membership",desc:"Recommended for Active Directory nested groups.",checked:G.ldapNestedGroups,onChange:a=>aE("ldapNestedGroups",a)})}),(0,d.jsx)(q,{label:"Username attribute",children:(0,d.jsx)(r,{value:G.ldapUserNameAttribute,onChange:a=>aE("ldapUserNameAttribute",a.target.value)})}),(0,d.jsx)(q,{label:"Display attribute",children:(0,d.jsx)(r,{value:G.ldapUserDisplayAttribute,onChange:a=>aE("ldapUserDisplayAttribute",a.target.value)})}),(0,d.jsx)(q,{label:"Email attribute",children:(0,d.jsx)(r,{value:G.ldapUserEmailAttribute,onChange:a=>aE("ldapUserEmailAttribute",a.target.value)})}),(0,d.jsx)(q,{label:"Connect timeout ms",children:(0,d.jsx)(r,{type:"number",value:G.ldapConnectTimeoutMs,onChange:a=>aE("ldapConnectTimeoutMs",a.target.value)})})]}),(0,d.jsx)(t,{title:"Reject invalid TLS certificates",desc:"Disable only for test/self-signed LDAP TLS.",checked:G.ldapTlsRejectUnauthorized,onChange:a=>aE("ldapTlsRejectUnauthorized",a)}),(0,d.jsxs)("div",{className:"rounded-2xl border border-border bg-background p-4",children:[(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Manual admin users / LDAP owner list"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Users loaded here come from Login Allowed Group DN when set. Selected users are also treated as manual admins for backward compatibility."})]}),(0,d.jsxs)("div",{className:"mb-3 flex gap-2",children:[(0,d.jsx)(r,{value:O,onChange:a=>P(a.target.value),placeholder:"Search users..."}),(0,d.jsx)("button",{type:"button",onClick:aH,disabled:S,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main disabled:opacity-50",children:S?"Loading...":"Load users"})]}),Q.length>0&&(0,d.jsx)("div",{className:"max-h-72 overflow-auto rounded-xl border border-border",children:Q.map(a=>{let b=G.ldapAllowedUsers.includes(a.username);return(0,d.jsxs)("button",{type:"button",onClick:()=>aI(a.username),className:`flex w-full items-center justify-between gap-3 border-b border-border px-3 py-2 text-left text-sm last:border-b-0 ${b?"bg-primary/10":"bg-background hover:bg-surface"}`,children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"font-semibold text-text-main",children:a.displayName||a.username}),(0,d.jsxs)("span",{className:"ml-2 text-text-muted",children:[a.username,a.email?` \xb7 ${a.email}`:""]})]}),(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:b?"check_circle":"radio_button_unchecked"})]},a.dn||a.username)})}),(0,d.jsxs)("div",{className:"mt-3",children:[(0,d.jsxs)("div",{className:"mb-2 text-sm font-semibold text-text-main",children:["Selected manual admin users (",G.ldapAllowedUsers.length,")"]}),0===G.ldapAllowedUsers.length?(0,d.jsx)("div",{className:"text-sm text-text-muted",children:"No users selected."}):(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:G.ldapAllowedUsers.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>aI(a),className:"rounded-full border border-primary/30 bg-primary/10 px-3 py-1 text-xs text-primary",children:[a," \xd7"]},a))})]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,d.jsx)("button",{type:"button",onClick:aG,disabled:M,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main disabled:opacity-50",children:M?"Testing...":"Save & test LDAP"}),(0,d.jsx)("button",{type:"submit",disabled:K,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:K?"Saving...":"Save LDAP settings"})]}),(0,d.jsx)(o,{status:I})]})}),(0,d.jsxs)(p,{icon:"lock_open",title:"OIDC Dashboard Login",desc:"oidc"===a.authMode?"OIDC active":"both"===a.authMode?"Password + OIDC active":"Optional SSO via Authentik/Keycloak/Google",children:[(0,d.jsx)("button",{type:"button",onClick:()=>ab(a=>!a),className:"mb-4 rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main",children:aa?"Hide OIDC settings":"Show OIDC settings"}),aa&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"grid gap-3 md:grid-cols-3",children:[{value:"password",title:"Password/LDAP",desc:"Keep local and LDAP login."},{value:"oidc",title:"OIDC only",desc:"Disable local/LDAP login when configured."},{value:"both",title:"Both",desc:"Allow either OIDC or local/LDAP."}].map(a=>{let b=U.authMode===a.value;return(0,d.jsxs)("button",{type:"button",onClick:()=>V(b=>({...b,authMode:a.value})),className:`rounded-xl border p-3 text-left ${b?"border-primary bg-primary/10":"border-border bg-background hover:border-primary/40"}`,children:[(0,d.jsx)("div",{className:"font-semibold text-text-main",children:a.title}),(0,d.jsx)("div",{className:"mt-1 text-xs text-text-muted",children:a.desc})]},a.value)})}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(q,{label:"Issuer URL",children:(0,d.jsx)(r,{value:U.oidcIssuerUrl,onChange:a=>V({...U,oidcIssuerUrl:a.target.value})})}),(0,d.jsx)(q,{label:"Client ID",children:(0,d.jsx)(r,{value:U.oidcClientId,onChange:a=>V({...U,oidcClientId:a.target.value})})}),(0,d.jsx)(q,{label:"Client Secret",children:(0,d.jsx)(r,{type:"password",value:W,onChange:a=>X(a.target.value),placeholder:a.oidcConfigured?"Saved — leave blank to keep":"Client secret"})}),(0,d.jsx)(q,{label:"Scopes",children:(0,d.jsx)(r,{value:U.oidcScopes,onChange:a=>V({...U,oidcScopes:a.target.value})})}),(0,d.jsx)(q,{label:"Login label",children:(0,d.jsx)(r,{value:U.oidcLoginLabel,onChange:a=>V({...U,oidcLoginLabel:a.target.value})})})]}),(0,d.jsx)("button",{type:"button",onClick:()=>aJ(),disabled:$,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:$?"Saving...":"Save OIDC settings"}),(0,d.jsx)(o,{status:Y})]})]})]})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,319,1361,1568,402,5681,4404,6064,6328,1340],()=>b(b.s=78285));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=3471,a.ids=[3471],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},17899:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>O,handler:()=>Q,routeModule:()=>P});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(14965),o=c(63747),p=c(24235),q=c(23938),r=c(261),s=c(66758),t=c(77243),u=c(26713),v=c(37527),w=c(22820),x=c(88216),y=c(47929),z=c(79551),A=c(71797),B=c(89125),C=c(86439),D=c(77068),E=c(27269),F=c(37525),G=c(61287),H=c(81494),I=c(70722),J=c(70753),K=c(43954),L=c(17891),M={};for(let a in G)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(M[a]=()=>G[a]);c.d(b,M);let N={children:["",{children:["(dashboard)",{children:["dashboard",{children:["profile",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,50047)),"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,30508)),"D:\\bluerouter\\src\\app\\(dashboard)\\layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,32059)),"D:\\bluerouter\\src\\app\\layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,O={require:c,loadChunk:()=>Promise.resolve()},P=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/profile/page",pathname:"/dashboard/profile",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:N},distDir:".next-cli-build",relativeProjectDir:""});async function Q(a,b,d){var M,R,S,T,U;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),P.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,h.getRequestMeta)(a,"minimalMode"),W="/(dashboard)/dashboard/profile/page";"/index"===W&&(W="/");let X=await P.prepare(a,b,{srcPage:W,multiZoneDraftMode:!1});if(!X)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,r.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,K.isInterceptionRouteAppPath)(ai)?null:P.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=a.headers["user-agent"]||"",aw=(0,u.getBotType)(av),ax=(0,q.isHtmlBotRequest)(a),ay=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],az=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[t.RSC_HEADER]),aA=(0,s.getIsPossibleServerAction)(a),aB=(0,m.checkIsAppPPREnabled)(al.experimental.ppr),aC=a.headers[y.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let e=parseInt(aC,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,E.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&aB&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),f=await (0,E.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aD=!0===P.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===a.headers[t.NEXT_INSTANT_PREFETCH_HEADER]||!(0,n.f)(a.headers[t.RSC_HEADER])&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(t.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(M=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:M.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===P.isDev,aI=!1,aJ=aF?(0,h.getRequestMeta)(a,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,q.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===P.isDev||!aO||"string"==typeof aJ||(aP&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,L.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,o.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(P.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),P.isDev||ah||!aO||!az||aL||(0,k.d)(a.headers);let aW={...G,tree:N,handler:Q,routeModule:P,__next_app__:O};ad&&ae&&(0,p.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=a.method||"GET",aY=(0,g.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(a,b,am,!1):b.end("This page could not be found"),null);try{let k,m=P.getVaryHeader(ai,an);b.setHeader("Vary",m);let n=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return P.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aY.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aX} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aX} ${W}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await P.getIncrementalCache(a,al,ag,V);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,j.T)(aW),params:$,routeModule:P,page:W,postponed:f,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof f||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),P.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,D.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>P.onRequestError(a,b,d,e,ak),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await n(e,k),{metadata:m}=l,{cacheControl:o,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aO&&(null==o?void 0:o.revalidate)===0&&!P.isDev&&!aF){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:o}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===P.isDev,m=c||b.writableEnded;try{var n;let f;if(ar&&aj&&!g&&!V)return(null==ak?void 0:ak.render404)?await ak.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(at&&(f=(0,w.parseFallbackField)(at.fallback)),!0===al.experimental.partialFallbacks&&(null==at?void 0:at.fallback)===null&&!aT&&aS.length>0&&(f=w.FallbackMode.PRERENDER),f===w.FallbackMode.PRERENDER&&(0,u.isBot)(av)&&(!aF||ax)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ar=!0),ar&&(f!==w.FallbackMode.NOT_FOUND||g)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),!V&&f!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aV&&!m&&!ah&&_&&(l||!au)){if((l||at)&&f===w.FallbackMode.NOT_FOUND){if(al.adapterPath)return await a0();throw new C.NoFallbackError}if(aF&&(al.cacheComponents?!aL:!az)){let b=l&&"string"==typeof(null==at?void 0:at.fallback)?at.fallback:aq,f=(l||aG)&&(null==at?void 0:at.fallbackRouteParams)?(0,o.createOpaqueFallbackRouteParams)(at.fallbackRouteParams):aI?(0,o.getFallbackRouteParams)(aq,P):null;aG&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await P.handleResponse({cacheKey:b,req:a,nextConfig:al,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ag,isRoutePPREnabled:aF,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:V});if(null===g)return null;if(g)return V||!aF||!(aS.length>0)||!0!==al.experimental.partialFallbacks||!aU||!p||ar||aI||aD||aE||ay||(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(aU,p,aF,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:a_.length>0?(0,o.createOpaqueFallbackRouteParams)(a_):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let s=ar||i||!aJ?void 0:aJ;if(aP&&!V&&p&&(aL||aA)&&!k){let b=await p.get(ai,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(s=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(ai,p,aF,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aG||aH)&&void 0!==s)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let t=!P.isDev&&_&&(null==at?void 0:at.fallbackRouteParams)?(0,o.getPlaceholderFallbackRouteParams)($,at.fallbackRouteParams):null,y=t&&t.length>0?t:null==at?void 0:at.fallbackRouteParams,z=null!=t&&t.length>0,A=null;if(al.cacheComponents&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,h.getRequestMeta)(a,"resolvedRouteParamKeys");b&&b.size>0&&(A=at.fallbackRouteParams.filter(a=>!b.has(a.paramName)))}let B=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||z||aG&&!au)&&y?(0,o.createOpaqueFallbackRouteParams)(y):A&&A.length>0&&A.length<((null==at||null==(n=at.fallbackRouteParams)?void 0:n.length)??0)?(0,o.createOpaqueFallbackRouteParams)(A):aI?(0,o.getFallbackRouteParams)(aq,P):null;if((l||aG)&&al.cacheComponents&&!au&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,o.createOpaqueFallbackRouteParams)(y??at.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:s,fallbackRouteParams:B,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}},s=async c=>{var f,g,i,j,k,l;let m,n=await P.handleResponse({cacheKey:aU,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ar,isRoutePPREnabled:aF,req:a,nextConfig:al,prerenderManifest:ag,waitUntil:d.waitUntil,isMinimalMode:V});if(ah&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),P.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!n){if(aU)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof n.value.postponed;az&&!aA&&ao&&b.setHeader(y.NEXT_NAV_DEPLOYMENT_ID_HEADER,ao),aO&&!aL&&(!o||ay)&&(V||b.setHeader("x-nextjs-cache",ar?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=n;if(aJ)m={revalidate:0,expire:void 0};else if(aL)m={revalidate:0,expire:void 0};else if(!P.isDev)if(ah)m={revalidate:0,expire:void 0};else if(aO){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});m={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??al.expireTime}}else m={revalidate:y.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(m={revalidate:0,expire:void 0});if(n.cacheControl=m,"string"==typeof aM&&(null==p?void 0:p.kind)===v.CachedRouteKind.APP_PAGE&&p.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=p.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];V&&aO&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=p.segmentData.get(aM);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let s=aP?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(s){let b=(0,h.getRequestMeta)(a,"initURL")??a.url,c=b?(null==(l=(0,F.parseUrl)(b))?void 0:l.pathname)??b:void 0;if(await s(n,{url:c}))return null}if(p.headers){let a={...p.headers};for(let[c,d]of(V&&aO||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=p.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(V&&aO&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!p.status||az&&aF||(b.statusCode=p.status),!V&&p.status&&H.RedirectStatusCode[p.status]&&az&&(b.statusCode=200),o&&!aL&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),az&&!ah){if(void 0===p.rscData){if(p.html.contentType!==t.RSC_CONTENT_TYPE_HEADER)if(al.cacheComponents)return b.statusCode=404,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl});else throw Object.defineProperty(new I.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:p.html,cacheControl:n.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(p.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let w=p.html;if(aE&&aG){let c=!0===P.isDev?crypto.randomUUID():null;return w.pipeThrough(await (0,A.createInstantTestScriptInsertionTransformStream)(c)),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})}if(!o||V||az)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:n.cacheControl});if(aG||aH)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let C=new TransformStream;return w.push(C.readable),q({span:c,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(C.writable)}).catch(a=>{C.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!a$||!aZ)return k=aY.getActiveScopeSpan(),await aY.withPropagatedContext(a.headers,()=>aY.trace(i.BaseServerSpan.handleRequest,{spanName:`${aX} ${W}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aX,"http.target":a.url}},s),void 0,!a$);await s(aZ)}catch(b){throw b instanceof C.NoFallbackError||await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}}},18011:(a,b,c)=>{Promise.resolve().then(c.bind(c,97759))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{"use strict";a.exports=require("process")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34631:a=>{"use strict";a.exports=require("tls")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41204:a=>{"use strict";a.exports=require("string_decoder")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},46293:a=>{"use strict";a.exports=require("sql.js")},50047:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"D:\\\\bluerouter\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\profile\\\\page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\page.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52355:(a,b,c)=>{Promise.resolve().then(c.bind(c,50047))},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{"use strict";a.exports=import("pg")},66136:a=>{"use strict";a.exports=require("timers")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79428:a=>{"use strict";a.exports=require("buffer")},79748:a=>{"use strict";a.exports=require("fs/promises")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},97759:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>u});var d=c(48249),e=c(67484),f=c(34716),g=c(50412);let h={enabled:!1,fileLoggingEnabled:!1,type:"mysql",host:"",port:"",database:"",username:"",password:"",ssl:!1,createDatabase:!1,logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:!1,logErrors:!0,retentionDays:30,payloadRotationEnabled:!1,payloadRetentionDays:60,payloadRotationIntervalHours:24,payloadRotationBatchSize:500,payloadRotationMaxBatches:20};function i({label:a,value:b,onChange:c,type:e="text",placeholder:f="",disabled:g=!1,min:h,max:j,step:k}){return(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:a}),(0,d.jsx)("input",{type:e,value:b||"",placeholder:f,disabled:g,min:h,max:j,step:k,onChange:a=>c(a.target.value),className:"w-full rounded border border-border bg-surface px-2 py-1.5 text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50"})]})}function j({label:a,checked:b,onChange:c,disabled:e=!1}){return(0,d.jsxs)("label",{className:"flex items-center gap-2 text-xs text-text-main",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!b,disabled:e,onChange:a=>c(a.target.checked)}),a]})}function k(){let[a,b]=(0,e.useState)(h),[c,f]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),q=a=>b(b=>({...b,...a})),r=async()=>{f(!0),n(null);try{let a=await fetch("/api/cli-tools/antigravity-mitm/prompt-log-db"),c=await a.json();if(!a.ok)throw Error(c.error||"Failed to load config");b({...h,...c.config||{}})}catch(a){n(a.message||"Failed to load config")}finally{f(!1)}},s=async()=>{f(!0),n(null),l(null);try{let c=await fetch("/api/cli-tools/antigravity-mitm/prompt-log-db",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:a})}),d=await c.json();if(!c.ok)throw Error(d.error||"Failed to save config");b({...h,...d.config||{}}),l("Saved")}catch(a){n(a.message||"Failed to save config")}finally{f(!1)}},t=async(b,c={})=>{if(!c.confirm||window.confirm("Delete expired full request/response payloads now? Prompt log rows, previews, token/model/provider metadata, and analytics are kept. This action cannot restore deleted payload JSON.")){f(!0),n(null),l(null),b.includes("payload-rotation")&&p(null);try{let d=await fetch("/api/cli-tools/antigravity-mitm/prompt-log-db",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:b,config:a,confirm:!0===c.confirm})}),e=await d.json();if(!d.ok)throw Error(e.error||"Action failed");b.includes("payload-rotation")&&p(e),l(e.message||e.init?.message||"OK")}catch(a){n(a.message||"Action failed")}finally{f(!1)}}},u="postgres"===a.type||"mysql"===a.type;return(0,d.jsx)(g.Zp,{title:"Request Logging",subtitle:"Control local request files and database-backed prompt logs",icon:"receipt_long",children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsxs)(g.Ex,{variant:a.fileLoggingEnabled?"success":"default",children:["Local files: ",a.fileLoggingEnabled?"Enabled":"Disabled"]}),(0,d.jsxs)(g.Ex,{variant:a.enabled?"success":"default",children:["Database: ",a.enabled?"Enabled":"Disabled"]})]}),(0,d.jsx)("div",{className:"rounded-lg border border-yellow-500/30 bg-yellow-500/10 p-3 text-xs text-yellow-700 dark:text-yellow-300",children:'Prompt logs may contain source code, selected code, internal URLs, user prompts, and provider responses. Checked stages store full raw JSON; prompt/response text columns keep only short previews. Per-combo "hide content" still redacts raw JSON.'}),(0,d.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Database type"}),(0,d.jsxs)("select",{value:a.type,disabled:c,onChange:b=>{let c=b.target.value;q({type:c,port:"postgres"===c?a.port||"5432":"mysql"===c?a.port||"3306":a.port})},className:"w-full rounded border border-border bg-surface px-2 py-1.5 text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"mysql",children:"MySQL / MariaDB"}),(0,d.jsx)("option",{value:"postgres",children:"PostgreSQL"})]})]})}),u&&(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,d.jsx)(i,{label:"Host",value:a.host,placeholder:"127.0.0.1",onChange:a=>q({host:a}),disabled:c}),(0,d.jsx)(i,{label:"Port",value:a.port,placeholder:"postgres"===a.type?"5432":"3306",onChange:a=>q({port:a}),disabled:c}),(0,d.jsx)(i,{label:"Database",value:a.database,placeholder:"bluerouter_logs",onChange:a=>q({database:a}),disabled:c}),(0,d.jsx)(i,{label:"Username",value:a.username,placeholder:"bluerouter",onChange:a=>q({username:a}),disabled:c}),(0,d.jsx)(i,{label:"Password",type:"password",value:a.password,placeholder:"Leave as ******** to keep existing password",onChange:a=>q({password:a}),disabled:c}),(0,d.jsxs)("div",{className:"flex flex-col justify-end gap-2",children:[(0,d.jsx)(j,{label:"Use SSL",checked:a.ssl,onChange:a=>q({ssl:a}),disabled:c}),(0,d.jsx)(j,{label:"Create database if missing",checked:a.createDatabase,onChange:a=>q({createDatabase:a}),disabled:c})]})]}),(0,d.jsxs)("div",{className:"grid gap-2 rounded-lg border border-border bg-surface/40 p-3 md:grid-cols-2",children:[(0,d.jsx)(j,{label:"Save request/response to local files",checked:a.fileLoggingEnabled,onChange:a=>q({fileLoggingEnabled:a}),disabled:c}),(0,d.jsx)(j,{label:"Save request/response to Prompt Log Database",checked:a.enabled,onChange:a=>q({enabled:a}),disabled:c}),(0,d.jsx)(j,{label:"Log client request JSON",checked:a.logClientRequest,onChange:a=>q({logClientRequest:a}),disabled:c}),(0,d.jsx)(j,{label:"Log normalized/source request JSON",checked:a.logSourceRequest,onChange:a=>q({logSourceRequest:a}),disabled:c}),(0,d.jsx)(j,{label:"Log target/provider request JSON",checked:a.logTargetRequest,onChange:a=>q({logTargetRequest:a}),disabled:c}),(0,d.jsx)(j,{label:"Log provider response JSON",checked:a.logProviderResponse,onChange:a=>q({logProviderResponse:a}),disabled:c}),(0,d.jsx)(j,{label:"Log errors",checked:a.logErrors,onChange:a=>q({logErrors:a}),disabled:c})]}),(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-background p-3 text-xs text-text-muted",children:["Local files are written under ",(0,d.jsx)("code",{children:"DATA_DIR/logs/requests"}),". Disabling local files stops new request/response dump files; existing files are kept."]}),(0,d.jsxs)("div",{className:"space-y-3 rounded-xl border border-border bg-surface/40 p-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text-main",children:"Full payload rotation"}),(0,d.jsxs)("div",{className:"mt-1 text-xs text-text-muted",children:["Deletes expired full request/response JSON only. Rows in ",(0,d.jsx)("code",{children:"prompt_logs"}),", short previews, model/provider/token metadata, and dashboard analytics remain available."]})]}),(0,d.jsx)(j,{label:"Enable automatic payload rotation",checked:a.payloadRotationEnabled,onChange:a=>q({payloadRotationEnabled:a}),disabled:c}),(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsx)(i,{label:"Keep full payload for (days)",type:"number",min:1,max:3650,step:1,value:String(a.payloadRetentionDays||60),onChange:a=>q({payloadRetentionDays:Number(a)||60}),disabled:c}),(0,d.jsx)(i,{label:"Automatic run interval (hours)",type:"number",min:1,max:168,step:1,value:String(a.payloadRotationIntervalHours||24),onChange:a=>q({payloadRotationIntervalHours:Number(a)||24}),disabled:c}),(0,d.jsx)(i,{label:"Prompt-log rows per transaction",type:"number",min:50,max:5e3,step:50,value:String(a.payloadRotationBatchSize||500),onChange:a=>q({payloadRotationBatchSize:Number(a)||500}),disabled:c}),(0,d.jsx)(i,{label:"Max transactions per run",type:"number",min:1,max:200,step:1,value:String(a.payloadRotationMaxBatches||20),onChange:a=>q({payloadRotationMaxBatches:Number(a)||20}),disabled:c})]}),(0,d.jsxs)("div",{className:"rounded-lg border border-blue-500/30 bg-blue-500/10 p-3 text-xs text-blue-700 dark:text-blue-300",children:["MySQL: payload hashes are detached from expired ",(0,d.jsx)("code",{children:"prompt_logs"})," rows, then rows in ",(0,d.jsx)("code",{children:"prompt_log_payloads"})," are deleted only when no prompt log still references them. Each batch uses a transaction and a database advisory lock to prevent overlapping rotation jobs."]}),(0,d.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-xs text-amber-700 dark:text-amber-300",children:["Deleting rows frees reusable space inside InnoDB, but ",(0,d.jsx)("code",{children:"prompt_log_payloads.ibd"})," normally does not shrink immediately. Do not run ",(0,d.jsx)("code",{children:"OPTIMIZE TABLE"})," on a very large table without checking temporary disk space and a maintenance window."]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>t("preview-payload-rotation"),loading:c,children:"Preview expired payloads"}),(0,d.jsx)(g.$n,{size:"sm",variant:"danger",onClick:()=>t("run-payload-rotation",{confirm:!0}),loading:c,children:"Delete expired payloads now"})]}),o&&(0,d.jsxs)("div",{className:"grid gap-2 rounded-lg border border-border bg-background p-3 text-xs md:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Cutoff:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:o.cutoff?new Date(o.cutoff).toLocaleString():"-"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Prompt-log rows:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(o.promptLogRows??o.promptLogRowsUpdated??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===o.payloadRowsDeleted?"Payload rows past retention:":"Payload rows deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(o.payloadRowsDeleted??o.payloadRowsPastRetention??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===o.payloadBytesDeleted?"Estimated payload size:":"Payload size deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:function(a){let b=Number(a||0);if(!Number.isFinite(b)||b<=0)return"0 B";let c=["B","KB","MB","GB","TB"],d=Math.min(c.length-1,Math.floor(Math.log(b)/Math.log(1024))),e=b/1024**d;return`${e.toFixed(e>=10||0===d?1:2)} ${c[d]}`}(o.payloadBytesDeleted??o.payloadBytesPastRetention??o.referencedPayloadBytes)})]}),o.hasMore?(0,d.jsx)("div",{className:"md:col-span-2 lg:col-span-4 text-amber-600",children:"More expired rows remain because the per-run batch limit was reached."}):null]}),(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:"Save the settings after enabling automatic rotation. Preview and manual deletion use the values currently shown in this form."})]}),u&&(0,d.jsxs)("div",{className:"rounded-lg border border-blue-500/30 bg-blue-500/10 p-3 text-xs text-blue-700 dark:text-blue-300",children:["Prompt logs now support MySQL/MariaDB and PostgreSQL only. MySQL/MariaDB requires ",(0,d.jsx)("code",{children:"mysql2"}),"; PostgreSQL requires ",(0,d.jsx)("code",{children:"pg"}),"."]}),k&&(0,d.jsx)("div",{className:"rounded-lg border border-green-500/30 bg-green-500/10 p-2 text-xs text-green-600",children:k}),m&&(0,d.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 p-2 text-xs text-red-500",children:m}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:r,loading:c,children:"Reload"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>t("test"),loading:c,children:"Test connection"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>t("init"),loading:c,children:"Initialize schema"}),(0,d.jsx)(g.$n,{size:"sm",onClick:s,loading:c,children:"Save"}),(0,d.jsx)(g.$n,{size:"sm",variant:"success",onClick:()=>t("save-and-init"),loading:c,children:"Save & initialize"})]})]})})}let l="(|(sAMAccountName={{username}})(userPrincipalName={{username}})(mail={{username}}))",m="image/svg+xml,image/png,image/webp,image/jpeg,image/gif",n=`${m},image/x-icon,image/vnd.microsoft.icon,.ico`;function o({status:a}){if(!a?.message)return null;let b="error"===a.type?"text-red-600 bg-red-50 border-red-200":"text-green-700 bg-green-50 border-green-200";return(0,d.jsx)("div",{className:`mt-3 rounded-xl border px-4 py-3 text-sm ${b}`,children:a.message})}function p({icon:a,title:b,desc:c,children:e}){return(0,d.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-6 shadow-sm",children:[(0,d.jsxs)("div",{className:"mb-5 flex items-start gap-3",children:[a&&(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:a}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-bold text-text-main",children:b}),c&&(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:c})]})]}),e]})}function q({label:a,hint:b,children:c}){return(0,d.jsxs)("label",{className:"block",children:[(0,d.jsx)("span",{className:"mb-1 block text-sm font-semibold text-text-main",children:a}),c,b&&(0,d.jsx)("span",{className:"mt-1 block text-xs text-text-muted",children:b})]})}function r(a){return(0,d.jsx)("input",{...a,className:`w-full rounded-xl border border-border bg-background px-3 py-2 text-sm outline-none focus:border-primary ${a.className||""}`})}function s(a){return(0,d.jsx)("textarea",{...a,className:`w-full rounded-xl border border-border bg-background px-3 py-2 text-sm outline-none focus:border-primary ${a.className||""}`})}function t({title:a,desc:b,checked:c,onChange:e,disabled:f}){return(0,d.jsxs)("div",{className:"flex items-start justify-between gap-4 rounded-xl border border-border bg-background px-4 py-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-text-main",children:a}),b&&(0,d.jsx)("div",{className:"mt-1 text-xs text-text-muted",children:b})]}),(0,d.jsx)("button",{type:"button",disabled:f,onClick:()=>e(!c),className:`relative mt-0.5 h-6 w-11 rounded-full transition disabled:opacity-50 ${c?"bg-primary":"bg-border"}`,children:(0,d.jsx)("span",{className:`absolute top-0.5 h-5 w-5 rounded-full bg-white transition ${c?"left-5":"left-0.5"}`})})]})}function u(){let[a,b]=(0,e.useState)({}),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)({current:"",new:"",confirm:""}),[j,u]=(0,e.useState)({type:"",message:""}),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)({type:"",message:""}),B=(0,e.useRef)(null),[C,D]=(0,e.useState)("admin"),[E,F]=(0,e.useState)({type:"",message:""}),[G,H]=(0,e.useState)({ldapEnabled:!1,ldapUrl:"",ldapBindDn:"",ldapBindPassword:"",ldapUserBaseDn:"",ldapUserSearchFilter:l,ldapUserNameAttribute:"sAMAccountName",ldapUserDisplayAttribute:"displayName",ldapUserEmailAttribute:"mail",ldapLoginAllowedGroupDn:"",ldapAdminGroupDn:"",ldapMonitorAdminGroupDn:"",ldapAiGatewaysMonitorsGroupDn:"",ldapNestedGroups:!0,ldapAllowedUsers:[],ldapTlsRejectUnauthorized:!0,ldapConnectTimeoutMs:8e3}),[I,J]=(0,e.useState)({type:"",message:""}),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(""),[Q,R]=(0,e.useState)([]),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)({authMode:"password",oidcIssuerUrl:"",oidcClientId:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC"}),[W,X]=(0,e.useState)(""),[Y,Z]=(0,e.useState)({type:"",message:""}),[$,_]=(0,e.useState)(!1),[aa,ab]=(0,e.useState)(!1),[ac,ad]=(0,e.useState)({type:"",message:""}),ae=(0,f.useBranding)(),[af,ag]=(0,e.useState)(""),[ah,ai]=(0,e.useState)(""),[aj,ak]=(0,e.useState)(""),[al,am]=(0,e.useState)({type:"",message:""}),[an,ao]=(0,e.useState)(!1),[ap,aq]=(0,e.useState)(!1),[ar,as]=(0,e.useState)(!1),[at,au]=(0,e.useState)(!1),av=(0,e.useRef)(null),aw=(0,e.useRef)(null),ax=async()=>{g(!0);try{let a=await fetch("/api/settings",{cache:"no-store"}),c=await a.json();b(c),D(c.localLoginUsername||"admin"),H({ldapEnabled:!0===c.ldapEnabled,ldapUrl:c.ldapUrl||"",ldapBindDn:c.ldapBindDn||"",ldapBindPassword:"",ldapUserBaseDn:c.ldapUserBaseDn||c.ldapBaseDn||"",ldapUserSearchFilter:c.ldapUserSearchFilter||l,ldapUserNameAttribute:c.ldapUserNameAttribute||"sAMAccountName",ldapUserDisplayAttribute:c.ldapUserDisplayAttribute||"displayName",ldapUserEmailAttribute:c.ldapUserEmailAttribute||"mail",ldapLoginAllowedGroupDn:c.ldapLoginAllowedGroupDn||"",ldapAdminGroupDn:c.ldapAdminGroupDn||"",ldapMonitorAdminGroupDn:c.ldapMonitorAdminGroupDn||"",ldapAiGatewaysMonitorsGroupDn:c.ldapAiGatewaysMonitorsGroupDn||"",ldapNestedGroups:!1!==c.ldapNestedGroups,ldapAllowedUsers:Array.isArray(c.ldapAllowedUsers)?c.ldapAllowedUsers:[],ldapTlsRejectUnauthorized:!1!==c.ldapTlsRejectUnauthorized,ldapConnectTimeoutMs:c.ldapConnectTimeoutMs||8e3}),V({authMode:c.authMode||"password",oidcIssuerUrl:c.oidcIssuerUrl||"",oidcClientId:c.oidcClientId||"",oidcScopes:c.oidcScopes||"openid profile email",oidcLoginLabel:c.oidcLoginLabel||"Sign in with OIDC"}),ag(c.siteTitle||""),ai(c.siteShortName||""),ak(c.siteDescription||""),("oidc"===c.authMode||"both"===c.authMode)&&ab(!0)}catch(a){console.log("Failed to fetch settings:",a)}finally{g(!1)}},ay=async a=>{let c=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await c.json().catch(()=>({}));if(!c.ok)throw Error(d.error||"Failed to save settings");return b(a=>({...a,...d})),d},az=async c=>{ad({type:"",message:""});let d=!1!==a.sidebarAdvancedToolsVisible;b(a=>({...a,sidebarAdvancedToolsVisible:c}));try{let a=await ay({sidebarAdvancedToolsVisible:c}),d=!1!==a.sidebarAdvancedToolsVisible;b(a=>({...a,sidebarAdvancedToolsVisible:d})),ad({type:"success",message:d?"Advanced tools are visible in the sidebar.":"Advanced tools are hidden from the sidebar."})}catch(a){b(a=>({...a,sidebarAdvancedToolsVisible:d})),ad({type:"error",message:a.message||"Failed to save sidebar setting."})}},aA=async a=>{a.preventDefault(),F({type:"",message:""});try{let a=await ay({localLoginUsername:C});D(a.localLoginUsername||C||"admin"),F({type:"success",message:"Local account name saved."})}catch(a){F({type:"error",message:a.message})}},aB=async a=>{if(a.preventDefault(),h.new!==h.confirm)return void u({type:"error",message:"Passwords do not match"});w(!0),u({type:"",message:""});try{await ay({currentPassword:h.current,newPassword:h.new}),u({type:"success",message:"Password updated successfully"}),i({current:"",new:"",confirm:""})}catch(a){u({type:"error",message:a.message||"Failed to update password"})}finally{w(!1)}},aC=async()=>{y(!0),A({type:"",message:""});try{let a=await fetch("/api/settings/database");if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||"Failed to export database")}let b=await a.json(),c=JSON.stringify(b,null,2),d=new Blob([c],{type:"application/json"}),e=URL.createObjectURL(d),f=document.createElement("a"),g=new Date().toISOString().replace(/[.:]/g,"-");f.href=e,f.download=`bluerouter-backup-${g}.json`,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(e),A({type:"success",message:"Database backup downloaded."})}catch(a){A({type:"error",message:a.message||"Failed to export database."})}finally{y(!1)}},aD=async a=>{let b=a.target.files?.[0];if(b){y(!0),A({type:"",message:""});try{let a=await b.text(),c=JSON.parse(a),d=await fetch("/api/settings/database",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||"Failed to import database");await ax();let f=e.resourceMonitorImported?`Restored ${e.resourceMonitorServerCount||0} Resource Monitor server(s) and ${e.resourceMonitorHistoryCount||0} history sample(s).`:"Legacy backup: current Resource Monitor data was kept.",g=e.brandingImported?`Restored ${e.brandingAssetCount||0} branding asset(s).`:"Current logo and favicon were kept.";A({type:"success",message:`Database imported successfully. ${f} ${g}`})}catch(a){A({type:"error",message:a.message||"Invalid backup file."})}finally{B.current&&(B.current.value=""),y(!1)}}},aE=(a,b)=>H(c=>({...c,[a]:b})),aF=async a=>{a?.preventDefault?.(),L(!0),J({type:"",message:""});try{let a={...G,ldapBaseDn:G.ldapUserBaseDn,ldapAllowedUsers:G.ldapAllowedUsers};a.ldapBindPassword||delete a.ldapBindPassword;let b=await ay(a);H(a=>({...a,ldapBindPassword:"",ldapEnabled:!0===b.ldapEnabled,ldapUserBaseDn:b.ldapUserBaseDn||b.ldapBaseDn||a.ldapUserBaseDn,ldapLoginAllowedGroupDn:b.ldapLoginAllowedGroupDn||"",ldapAdminGroupDn:b.ldapAdminGroupDn||"",ldapMonitorAdminGroupDn:b.ldapMonitorAdminGroupDn||"",ldapAiGatewaysMonitorsGroupDn:b.ldapAiGatewaysMonitorsGroupDn||"",ldapNestedGroups:!1!==b.ldapNestedGroups,ldapAllowedUsers:Array.isArray(b.ldapAllowedUsers)?b.ldapAllowedUsers:a.ldapAllowedUsers})),J({type:"success",message:"LDAP settings saved."})}catch(a){J({type:"error",message:a.message||"Failed to save LDAP settings"})}finally{L(!1)}},aG=async()=>{N(!0),J({type:"",message:""});try{await aF();let a=await fetch("/api/auth/ldap/test",{method:"POST"}),b=await a.json().catch(()=>({}));a.ok&&b.ok?J({type:"success",message:b.message||"LDAP connection OK."}):J({type:"error",message:b.error||"LDAP test failed."})}catch(a){J({type:"error",message:a.message||"LDAP test failed."})}finally{N(!1)}},aH=async()=>{T(!0),J({type:"",message:""});try{await aF();let a=await fetch(`/api/auth/ldap/users?q=${encodeURIComponent(O)}`,{cache:"no-store"}),b=await a.json().catch(()=>({}));a.ok?(R(b.users||[]),J({type:"success",message:`Loaded ${(b.users||[]).length} LDAP user(s).`})):J({type:"error",message:b.error||"Failed to load LDAP users."})}catch(a){J({type:"error",message:a.message||"Failed to load LDAP users."})}finally{T(!1)}},aI=a=>{let b=String(a||"").trim();b&&H(a=>{let c=new Set(a.ldapAllowedUsers||[]);return c.has(b)?c.delete(b):c.add(b),{...a,ldapAllowedUsers:[...c]}})},aJ=async(b=U.authMode||"password")=>{let c=U.oidcIssuerUrl.trim(),d=U.oidcClientId.trim(),e=U.oidcScopes.trim(),f=U.oidcLoginLabel.trim(),g=W.trim();if("password"!==b&&(!c||!d||!g)&&!a.oidcConfigured)return void Z({type:"error",message:"Issuer URL, client ID, and client secret are required to enable OIDC."});_(!0),Z({type:"",message:""});try{let a={authMode:b,oidcIssuerUrl:c,oidcClientId:d,oidcScopes:e||"openid profile email",oidcLoginLabel:f||"Sign in with OIDC"};g&&(a.oidcClientSecret=g);let h=await ay(a);V({authMode:h.authMode||b,oidcIssuerUrl:h.oidcIssuerUrl||c,oidcClientId:h.oidcClientId||d,oidcScopes:h.oidcScopes||e||"openid profile email",oidcLoginLabel:h.oidcLoginLabel||f||"Sign in with OIDC"}),X(""),Z({type:"success",message:"OIDC settings saved."})}catch(a){Z({type:"error",message:a.message||"Failed to save OIDC settings"})}finally{_(!1)}},aK=async(a,b)=>{if(!b)return;if(b.size>1048576)return void am({type:"error",message:"File exceeds 1 MB limit."});let c="logo"===a?aq:as;c(!0),am({type:"",message:""});try{let c=new FormData;c.append("asset",a),c.append("file",b);let d=await fetch("/api/branding/upload",{method:"POST",body:c}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||"Upload failed");(0,f.notifyBrandingChanged)(),am({type:"success",message:`${"logo"===a?"Logo":"Favicon"} uploaded.`})}catch(a){am({type:"error",message:a.message||"Upload failed."})}finally{c(!1)}},aL=async a=>{let b=a.target.files?.[0];await aK("logo",b),av.current&&(av.current.value="")},aM=async a=>{let b=a.target.files?.[0];await aK("favicon",b),aw.current&&(aw.current.value="")},aN=async a=>{a.preventDefault(),ao(!0),am({type:"",message:""});try{await ay({siteTitle:af.trim(),siteShortName:ah.trim(),siteDescription:aj.trim()}),(0,f.notifyBrandingChanged)(),am({type:"success",message:"Branding text saved."})}catch(a){am({type:"error",message:a.message||"Failed to save branding."})}finally{ao(!1)}},aO=async a=>{am({type:"",message:""});try{let b=await fetch(`/api/branding?asset=${a}`,{method:"DELETE"}),c=await b.json().catch(()=>({}));if(!b.ok)throw Error(c.error||"Failed to remove asset");(0,f.notifyBrandingChanged)(),am({type:"success",message:`${"logo"===a?"Logo":"Favicon"} removed.`})}catch(a){am({type:"error",message:a.message||"Failed to remove asset."})}},aP=async()=>{au(!0),am({type:"",message:""});try{let a=await fetch("/api/branding",{method:"DELETE"});if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||"Failed to reset branding")}await ay({siteTitle:"",siteShortName:"",siteDescription:""}),ag(""),ai(""),ak(""),(0,f.notifyBrandingChanged)(),am({type:"success",message:"Branding reset to defaults."})}catch(a){am({type:"error",message:a.message||"Failed to reset branding."})}finally{au(!1)}};return c?(0,d.jsx)("div",{className:"p-8 text-text-muted",children:"Loading settings..."}):(0,d.jsxs)("div",{className:"mx-auto max-w-6xl space-y-6 p-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-3xl font-bold text-text-main",children:"Settings"}),(0,d.jsx)("p",{className:"mt-1 text-text-muted",children:"Configure dashboard preferences, request logging, database backup, and authentication."})]}),(0,d.jsxs)(p,{icon:"view_sidebar",title:"Sidebar tools",desc:"Show or hide advanced dashboard tools to keep the sidebar clean.",children:[(0,d.jsx)(t,{title:"Show Advanced tools",desc:"When disabled, Media / Web, AI Traffic Gateway, CLI Tools, Proxy Pools, Skills, Console Log and Translator are hidden from the sidebar. Core admin pages remain visible.",checked:!1!==a.sidebarAdvancedToolsVisible,onChange:az}),(0,d.jsx)(o,{status:ac})]}),(0,d.jsxs)(p,{icon:"palette",title:"Branding",desc:"Customize site title, logo and favicon shown in the dashboard, browser tab and login page. Max 1 MB per file.",children:[(0,d.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-sm font-semibold text-text-main",children:"Logo"}),(0,d.jsxs)("div",{className:"flex items-center gap-4 rounded-xl border border-border bg-background p-4",children:[(0,d.jsx)("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-border bg-surface",children:ae?.logoUrl?(0,d.jsx)("img",{src:ae.logoUrl,alt:"Current logo",className:"max-h-full max-w-full object-contain"}):(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted",children:"hub"})}),(0,d.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"Shown in the dashboard sidebar and login page. SVG, PNG, WebP, JPEG, GIF."}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",disabled:ap,onClick:()=>av.current?.click(),className:"rounded-xl bg-primary px-3 py-1.5 text-xs font-semibold text-white disabled:opacity-50",children:ap?"Uploading...":ae?.logoUrl?"Replace logo":"Upload logo"}),ae?.logoUrl?(0,d.jsx)("button",{type:"button",onClick:()=>aO("logo"),className:"rounded-xl border border-border px-3 py-1.5 text-xs font-semibold text-text-main hover:border-red-300 hover:text-red-600",children:"Remove"}):null]})]}),(0,d.jsx)("input",{ref:av,type:"file",accept:m,className:"hidden",onChange:aL})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-sm font-semibold text-text-main",children:"Favicon"}),(0,d.jsxs)("div",{className:"flex items-center gap-4 rounded-xl border border-border bg-background p-4",children:[(0,d.jsx)("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-border bg-surface",children:ae?.faviconUrl?(0,d.jsx)("img",{src:ae.faviconUrl,alt:"Current favicon",className:"max-h-10 max-w-10 object-contain"}):(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted",children:"public"})}),(0,d.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"Shown in the browser tab. ICO, SVG, PNG, WebP, JPEG, GIF."}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",disabled:ar,onClick:()=>aw.current?.click(),className:"rounded-xl bg-primary px-3 py-1.5 text-xs font-semibold text-white disabled:opacity-50",children:ar?"Uploading...":ae?.faviconUrl?"Replace favicon":"Upload favicon"}),ae?.faviconUrl?(0,d.jsx)("button",{type:"button",onClick:()=>aO("favicon"),className:"rounded-xl border border-border px-3 py-1.5 text-xs font-semibold text-text-main hover:border-red-300 hover:text-red-600",children:"Remove"}):null]})]}),(0,d.jsx)("input",{ref:aw,type:"file",accept:n,className:"hidden",onChange:aM})]})]})]}),(0,d.jsxs)("form",{onSubmit:aN,className:"space-y-3",children:[(0,d.jsx)(q,{label:"Site title",hint:"Shown in browser tab and login page. Leave blank for default.",children:(0,d.jsx)(r,{value:af,onChange:a=>ag(a.target.value),placeholder:"AI Router Gateway"})}),(0,d.jsx)(q,{label:"Company short name",hint:"Shown in dashboard sidebar and login hero text. Defaults to site title/sidebar default or 'Fujinet' on login.",children:(0,d.jsx)(r,{value:ah,onChange:a=>ai(a.target.value),placeholder:"Fujinet"})}),(0,d.jsx)(q,{label:"Description",hint:"Used for browser metadata.",children:(0,d.jsx)(s,{rows:3,value:aj,onChange:a=>ak(a.target.value),placeholder:"AI Infrastructure Management"})}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"submit",disabled:an,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:an?"Saving...":"Save branding text"}),(0,d.jsx)("button",{type:"button",disabled:at,onClick:aP,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main hover:border-red-300 hover:text-red-600 disabled:opacity-50",children:at?"Resetting...":"Reset to defaults"})]})]})]}),(0,d.jsx)(o,{status:al})]}),(0,d.jsx)(p,{icon:"shield",title:"Dashboard Login",desc:"Local account remains available even when LDAP is enabled.",children:(0,d.jsxs)("div",{className:"grid gap-6 lg:grid-cols-2",children:[(0,d.jsxs)("form",{onSubmit:aA,className:"space-y-3",children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Local account"}),(0,d.jsx)(q,{label:"Local username",children:(0,d.jsx)(r,{value:C,onChange:a=>D(a.target.value)})}),(0,d.jsx)("button",{className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white",children:"Save account"}),(0,d.jsx)(o,{status:E})]}),(0,d.jsxs)("form",{onSubmit:aB,className:"space-y-3",children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Local password"}),a.hasPassword&&(0,d.jsx)(q,{label:"Current password",children:(0,d.jsx)(r,{type:"password",value:h.current,onChange:a=>i({...h,current:a.target.value}),required:!0})}),(0,d.jsx)(q,{label:"New password",children:(0,d.jsx)(r,{type:"password",value:h.new,onChange:a=>i({...h,new:a.target.value}),required:!0})}),(0,d.jsx)(q,{label:"Confirm password",children:(0,d.jsx)(r,{type:"password",value:h.confirm,onChange:a=>i({...h,confirm:a.target.value}),required:!0})}),(0,d.jsx)("button",{disabled:v,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:a.hasPassword?"Update Password":"Set Password"}),(0,d.jsx)(o,{status:j})]})]})}),(0,d.jsx)("div",{id:"request-logging",className:"scroll-mt-6",children:(0,d.jsx)(k,{})}),(0,d.jsxs)(p,{icon:"database",title:"Database Backup",desc:"Export or restore configuration, Linux Resource Monitor data, logo and favicon.",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,d.jsx)("button",{onClick:aC,disabled:x,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:"Download Backup"}),(0,d.jsx)("button",{onClick:()=>B.current?.click(),disabled:x,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main hover:border-primary/50 disabled:opacity-50",children:"Import Backup"}),(0,d.jsx)("input",{ref:B,type:"file",accept:"application/json",className:"hidden",onChange:aD})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Backup files contain API credentials, Resource Monitor agent tokens and embedded branding images. Store them securely. Legacy backups keep current Resource Monitor and branding files."}),(0,d.jsx)(o,{status:z})]}),(0,d.jsx)(p,{icon:"corporate_fare",title:"LDAP / Active Directory Login",desc:"Search users from a User Base DN, restrict login by group DN, and grant admin by group DN. The old Selected LDAP users list is kept as a manual admin list.",children:(0,d.jsxs)("form",{onSubmit:aF,className:"space-y-5",children:[(0,d.jsx)("div",{className:"flex flex-wrap gap-3",children:(0,d.jsx)("button",{type:"button",onClick:()=>aE("ldapEnabled",!G.ldapEnabled),className:`rounded-xl px-3 py-2 text-sm font-semibold ${G.ldapEnabled?"bg-primary text-white":"border border-border text-text-muted"}`,children:G.ldapEnabled?"Enabled":"Disabled"})}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(q,{label:"LDAP URL",children:(0,d.jsx)(r,{value:G.ldapUrl,onChange:a=>aE("ldapUrl",a.target.value),placeholder:"ldap://dc01.company.local:389"})}),(0,d.jsx)(q,{label:"LDAP User Base DN",hint:"OU/container/domain where user objects are searched. Do not use a group DN here.",children:(0,d.jsx)(r,{value:G.ldapUserBaseDn,onChange:a=>aE("ldapUserBaseDn",a.target.value),placeholder:"OU=Users,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP Bind DN",children:(0,d.jsx)(r,{value:G.ldapBindDn,onChange:a=>aE("ldapBindDn",a.target.value),placeholder:"CN=svc-bluerouter,OU=Service Accounts,DC=company,DC=local"})}),(0,d.jsx)(q,{label:"LDAP Bind Password",children:(0,d.jsx)(r,{type:"password",value:G.ldapBindPassword,onChange:a=>aE("ldapBindPassword",a.target.value),placeholder:a.ldapHasBindPassword?"Saved — leave blank to keep":"Service account password"})}),(0,d.jsx)(q,{label:"LDAP Login Allowed Group DN",hint:"Only members of this group can log in. Leave blank to allow any valid LDAP user.",children:(0,d.jsx)(r,{value:G.ldapLoginAllowedGroupDn,onChange:a=>aE("ldapLoginAllowedGroupDn",a.target.value),placeholder:"CN=Apikeys_Groups,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP Admin Group DN",hint:"Members of this group get full admin dashboard access.",children:(0,d.jsx)(r,{value:G.ldapAdminGroupDn,onChange:a=>aE("ldapAdminGroupDn",a.target.value),placeholder:"CN=BlueRouter_Admins,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP Monitor Admin Group DN",hint:"Members can use only Endpoint, API Keys, Usage, Analytics, Quota Tracker and Prompt Logs with admin-like permissions inside those tabs.",children:(0,d.jsx)(r,{value:G.ldapMonitorAdminGroupDn,onChange:a=>aE("ldapMonitorAdminGroupDn",a.target.value),placeholder:"CN=BlueRouter_Monitor_Admins,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(q,{label:"LDAP AI Gateways Monitors Group DN",hint:"Members log in as regular users but the Analytics page aggregates statistics for every API key that has an owner, instead of only their own keys.",children:(0,d.jsx)(r,{value:G.ldapAiGatewaysMonitorsGroupDn,onChange:a=>aE("ldapAiGatewaysMonitorsGroupDn",a.target.value),placeholder:"CN=BlueRouter_AI_Gateways_Monitors,OU=AppGroups,OU=xxx,DC=xx,DC=vn"})})]}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(q,{label:"User search filter",hint:"Use {{username}} placeholder.",children:(0,d.jsx)(r,{value:G.ldapUserSearchFilter,onChange:a=>aE("ldapUserSearchFilter",a.target.value)})}),(0,d.jsx)(q,{label:"Login group mode",hint:"Nested groups uses AD matching rule 1.2.840.113556.1.4.1941.",children:(0,d.jsx)(t,{title:"Nested group membership",desc:"Recommended for Active Directory nested groups.",checked:G.ldapNestedGroups,onChange:a=>aE("ldapNestedGroups",a)})}),(0,d.jsx)(q,{label:"Username attribute",children:(0,d.jsx)(r,{value:G.ldapUserNameAttribute,onChange:a=>aE("ldapUserNameAttribute",a.target.value)})}),(0,d.jsx)(q,{label:"Display attribute",children:(0,d.jsx)(r,{value:G.ldapUserDisplayAttribute,onChange:a=>aE("ldapUserDisplayAttribute",a.target.value)})}),(0,d.jsx)(q,{label:"Email attribute",children:(0,d.jsx)(r,{value:G.ldapUserEmailAttribute,onChange:a=>aE("ldapUserEmailAttribute",a.target.value)})}),(0,d.jsx)(q,{label:"Connect timeout ms",children:(0,d.jsx)(r,{type:"number",value:G.ldapConnectTimeoutMs,onChange:a=>aE("ldapConnectTimeoutMs",a.target.value)})})]}),(0,d.jsx)(t,{title:"Reject invalid TLS certificates",desc:"Disable only for test/self-signed LDAP TLS.",checked:G.ldapTlsRejectUnauthorized,onChange:a=>aE("ldapTlsRejectUnauthorized",a)}),(0,d.jsxs)("div",{className:"rounded-2xl border border-border bg-background p-4",children:[(0,d.jsxs)("div",{className:"mb-3",children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Manual admin users / LDAP owner list"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Users loaded here come from Login Allowed Group DN when set. Selected users are also treated as manual admins for backward compatibility."})]}),(0,d.jsxs)("div",{className:"mb-3 flex gap-2",children:[(0,d.jsx)(r,{value:O,onChange:a=>P(a.target.value),placeholder:"Search users..."}),(0,d.jsx)("button",{type:"button",onClick:aH,disabled:S,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main disabled:opacity-50",children:S?"Loading...":"Load users"})]}),Q.length>0&&(0,d.jsx)("div",{className:"max-h-72 overflow-auto rounded-xl border border-border",children:Q.map(a=>{let b=G.ldapAllowedUsers.includes(a.username);return(0,d.jsxs)("button",{type:"button",onClick:()=>aI(a.username),className:`flex w-full items-center justify-between gap-3 border-b border-border px-3 py-2 text-left text-sm last:border-b-0 ${b?"bg-primary/10":"bg-background hover:bg-surface"}`,children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"font-semibold text-text-main",children:a.displayName||a.username}),(0,d.jsxs)("span",{className:"ml-2 text-text-muted",children:[a.username,a.email?` \xb7 ${a.email}`:""]})]}),(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:b?"check_circle":"radio_button_unchecked"})]},a.dn||a.username)})}),(0,d.jsxs)("div",{className:"mt-3",children:[(0,d.jsxs)("div",{className:"mb-2 text-sm font-semibold text-text-main",children:["Selected manual admin users (",G.ldapAllowedUsers.length,")"]}),0===G.ldapAllowedUsers.length?(0,d.jsx)("div",{className:"text-sm text-text-muted",children:"No users selected."}):(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:G.ldapAllowedUsers.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>aI(a),className:"rounded-full border border-primary/30 bg-primary/10 px-3 py-1 text-xs text-primary",children:[a," \xd7"]},a))})]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,d.jsx)("button",{type:"button",onClick:aG,disabled:M,className:"rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main disabled:opacity-50",children:M?"Testing...":"Save & test LDAP"}),(0,d.jsx)("button",{type:"submit",disabled:K,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:K?"Saving...":"Save LDAP settings"})]}),(0,d.jsx)(o,{status:I})]})}),(0,d.jsxs)(p,{icon:"lock_open",title:"OIDC Dashboard Login",desc:"oidc"===a.authMode?"OIDC active":"both"===a.authMode?"Password + OIDC active":"Optional SSO via Authentik/Keycloak/Google",children:[(0,d.jsx)("button",{type:"button",onClick:()=>ab(a=>!a),className:"mb-4 rounded-xl border border-border px-4 py-2 text-sm font-semibold text-text-main",children:aa?"Hide OIDC settings":"Show OIDC settings"}),aa&&(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"grid gap-3 md:grid-cols-3",children:[{value:"password",title:"Password/LDAP",desc:"Keep local and LDAP login."},{value:"oidc",title:"OIDC only",desc:"Disable local/LDAP login when configured."},{value:"both",title:"Both",desc:"Allow either OIDC or local/LDAP."}].map(a=>{let b=U.authMode===a.value;return(0,d.jsxs)("button",{type:"button",onClick:()=>V(b=>({...b,authMode:a.value})),className:`rounded-xl border p-3 text-left ${b?"border-primary bg-primary/10":"border-border bg-background hover:border-primary/40"}`,children:[(0,d.jsx)("div",{className:"font-semibold text-text-main",children:a.title}),(0,d.jsx)("div",{className:"mt-1 text-xs text-text-muted",children:a.desc})]},a.value)})}),(0,d.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,d.jsx)(q,{label:"Issuer URL",children:(0,d.jsx)(r,{value:U.oidcIssuerUrl,onChange:a=>V({...U,oidcIssuerUrl:a.target.value})})}),(0,d.jsx)(q,{label:"Client ID",children:(0,d.jsx)(r,{value:U.oidcClientId,onChange:a=>V({...U,oidcClientId:a.target.value})})}),(0,d.jsx)(q,{label:"Client Secret",children:(0,d.jsx)(r,{type:"password",value:W,onChange:a=>X(a.target.value),placeholder:a.oidcConfigured?"Saved — leave blank to keep":"Client secret"})}),(0,d.jsx)(q,{label:"Scopes",children:(0,d.jsx)(r,{value:U.oidcScopes,onChange:a=>V({...U,oidcScopes:a.target.value})})}),(0,d.jsx)(q,{label:"Login label",children:(0,d.jsx)(r,{value:U.oidcLoginLabel,onChange:a=>V({...U,oidcLoginLabel:a.target.value})})})]}),(0,d.jsx)("button",{type:"button",onClick:()=>aJ(),disabled:$,className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:$?"Saving...":"Save OIDC settings"}),(0,d.jsx)(o,{status:Y})]})]})]})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,319,1361,1568,402,5681,4404,6064,6328,1340],()=>b(b.s=17899));module.exports=c})();
|